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 +796 -629 1.3.5 → 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.5\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-22T10:29:06+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:8732
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:8746
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:4163
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:5116
138 +#: includes/class-cache.php:5268
139 139 msgid "Purge All"
140 140 msgstr ""
141 141
142 -#: includes/class-cache.php:5120
142 +#: includes/class-cache.php:5272
143 143 msgid "Purge Page / Static Cache"
144 144 msgstr ""
145 145
146 -#: includes/class-cache.php:5124
146 +#: includes/class-cache.php:5276
147 147 msgid "Purge CSS / JS Cache"
148 148 msgstr ""
149 149
150 -#: includes/class-cache.php:5128
150 +#: includes/class-cache.php:5280
151 151 msgid "Purge Object Cache"
152 152 msgstr ""
153 153
154 -#: includes/class-cache.php:5132
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:5379
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:5385
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:5606
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:5613
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:5616
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:5686
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:5692
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:5766
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:5769
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:5799
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:5856
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:5857
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:5859
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:5874
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:5966
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:5981
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:5982
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:5999
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:6017
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:6018
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:6029
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:6033
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:8224
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:8231
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:8286
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:8293
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:8296
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:8297
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:8298
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:8299
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:8300
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:8301
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:8302
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:8304
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:8815
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."
@@ -747,15 +748,15 @@
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:741
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:754
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,9 +1086,9 @@
1084 1086 msgstr ""
1085 1087
1086 1088 #: includes/class-video-facade.php:153
1087 1089 #: includes/class-video-facade.php:199
1088 -#: includes/class-video-facade.php:303
1090 +#: includes/class-video-facade.php:309
1089 1091 msgid "Play video"
1090 1092 msgstr ""
1091 1093
1092 1094 #: includes/modules/AIPrivacy/AIPrivacyModule.php:49
@@ -1093,25 +1095,25 @@
1093 1095 msgid "AI Privacy"
1094 1096 msgstr ""
1095 1097
1096 1098 #: includes/modules/AIPrivacy/AIPrivacyModule.php:51
1097 -msgid "Decide whether AI features may use your visitors' data, and what the consent banner says. Applies even before you install Pro."
1099 +msgid "Choose whether AI features may use visitor data, with or without Pro."
1098 1100 msgstr ""
1099 1101
1100 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:70
1101 -msgid "Require consent before AI data collection"
1102 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1103 +msgid "Ask visitors for consent"
1102 1104 msgstr ""
1103 1105
1104 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:71
1105 -msgid "When ON, AI-powered features only record data after a visitor accepts the consent banner. When OFF, they collect from every visitor — only legal in regions without GDPR-style consent rules. The setting applies even if Pro is not installed (so a later Pro upgrade respects whichever choice you made): privacy is a fundamental right, not a paid feature."
1106 +#: 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."
1106 1108 msgstr ""
1107 1109
1108 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:76
1110 +#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1109 1111 msgid "Consent banner text"
1110 1112 msgstr ""
1111 1113
1112 -#: includes/modules/AIPrivacy/AIPrivacyModule.php:77
1113 -msgid "Shown in the cookie consent banner. Keep it factual — what you collect (page navigation, performance metrics) and why."
1114 +#: 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."
1114 1116 msgstr ""
1115 1117
1116 1118 #: includes/modules/Bloat/BloatModule.php:38
1117 1119 msgid "Bloat Control"
@@ -1117,260 +1119,316 @@
1117 1119 msgid "Bloat Control"
1118 1120 msgstr ""
1119 1121
1120 1122 #: includes/modules/Bloat/BloatModule.php:40
1121 -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."
1122 1124 msgstr ""
1123 1125
1124 -#: includes/modules/Bloat/BloatModule.php:49
1125 -msgid "Disable Dashicons on Frontend"
1126 -msgstr ""
1127 -
1128 1126 #: includes/modules/Bloat/BloatModule.php:50
1129 -msgid "Drop the dashicons stylesheet from non-admin pages. Most themes do not need it. Saves ~45 KB per visitor."
1127 +msgid "Disable emojis"
1130 1128 msgstr ""
1131 1129
1132 -#: includes/modules/Bloat/BloatModule.php:55
1133 -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."
1134 1132 msgstr ""
1135 1133
1136 1134 #: includes/modules/Bloat/BloatModule.php:56
1137 -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"
1138 1136 msgstr ""
1139 1137
1140 -#: includes/modules/Bloat/BloatModule.php:61
1141 -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."
1142 1140 msgstr ""
1143 1141
1144 1142 #: includes/modules/Bloat/BloatModule.php:62
1145 -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"
1146 1144 msgstr ""
1147 1145
1148 -#: includes/modules/Bloat/BloatModule.php:67
1149 -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."
1150 1148 msgstr ""
1151 1149
1152 1150 #: includes/modules/Bloat/BloatModule.php:68
1153 -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"
1154 1152 msgstr ""
1155 1153
1156 -#: includes/modules/Bloat/BloatModule.php:73
1157 -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."
1158 1156 msgstr ""
1159 1157
1160 1158 #: includes/modules/Bloat/BloatModule.php:74
1161 -msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins."
1159 +msgid "Disable XML-RPC"
1162 1160 msgstr ""
1163 1161
1164 -#: includes/modules/Bloat/BloatModule.php:79
1165 -msgid "Strip Block-Editor Styles on Frontend"
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."
1166 1164 msgstr ""
1167 1165
1168 1166 #: includes/modules/Bloat/BloatModule.php:80
1169 -msgid "Drop editor-only stylesheets (wp-editor, wp-components, and friends) from anonymous pages. A plugin that enqueues them on the frontend usually does so by accident — they can add hundreds of KB of render-blocking CSS. Frontend block styles (wp-block-library) are never touched."
1167 +msgid "Remove jQuery Migrate"
1170 1168 msgstr ""
1171 1169
1172 -#: includes/modules/Bloat/BloatModule.php:85
1173 -msgid "Restrict REST API to Logged-In Users"
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."
1174 1172 msgstr ""
1175 1173
1176 1174 #: includes/modules/Bloat/BloatModule.php:86
1177 -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."
1175 +msgid "Remove editor styles for visitors"
1178 1176 msgstr ""
1179 1177
1180 -#: includes/modules/Bloat/BloatModule.php:239
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
1181 1231 msgid "Feeds are disabled."
1182 1232 msgstr ""
1183 1233
1184 -#: includes/modules/Bloat/BloatModule.php:288
1234 +#: includes/modules/Bloat/BloatModule.php:450
1185 1235 msgid "Anonymous REST access is disabled on this site."
1186 1236 msgstr ""
1187 1237
1188 1238 #: includes/modules/BrowserCache/BrowserCacheModule.php:32
1189 -#: includes/modules/Migration/MigrationModule.php:551
1239 +#: includes/modules/Migration/MigrationModule.php:552
1190 1240 msgid "Browser Cache"
1191 1241 msgstr ""
1192 1242
1193 1243 #: includes/modules/BrowserCache/BrowserCacheModule.php:34
1194 -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."
1195 1245 msgstr ""
1196 1246
1197 -#: includes/modules/BrowserCache/BrowserCacheModule.php:43
1247 +#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1198 1248 msgid "Enable browser cache headers"
1199 1249 msgstr ""
1200 1250
1201 -#: includes/modules/BrowserCache/BrowserCacheModule.php:44
1202 -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."
1203 1253 msgstr ""
1204 1254
1205 -#: includes/modules/BrowserCache/BrowserCacheModule.php:51
1206 -msgid "Static asset TTL (seconds)"
1255 +#: includes/modules/BrowserCache/BrowserCacheModule.php:52
1256 +msgid "File lifetime (seconds)"
1207 1257 msgstr ""
1208 1258
1209 -#: includes/modules/BrowserCache/BrowserCacheModule.php:53
1210 -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."
1211 1261 msgstr ""
1212 1262
1213 -#: includes/modules/BrowserCache/BrowserCacheModule.php:61
1214 -msgid "HTML TTL (seconds)"
1263 +#: includes/modules/BrowserCache/BrowserCacheModule.php:62
1264 +msgid "Page lifetime (seconds)"
1215 1265 msgstr ""
1216 1266
1217 -#: includes/modules/BrowserCache/BrowserCacheModule.php:63
1218 -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."
1219 1269 msgstr ""
1220 1270
1221 -#: includes/modules/BrowserCache/BrowserCacheModule.php:127
1271 +#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1222 1272 msgid "Browser cache is enabled but not active on the server"
1223 1273 msgstr ""
1224 1274
1225 -#: includes/modules/BrowserCache/BrowserCacheModule.php:128
1275 +#: includes/modules/BrowserCache/BrowserCacheModule.php:129
1226 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."
1227 1277 msgstr ""
1228 1278
1229 -#: includes/modules/BrowserCache/BrowserCacheModule.php:132
1230 -#: includes/modules/Gzip/GzipModule.php:163
1279 +#: includes/modules/BrowserCache/BrowserCacheModule.php:133
1280 +#: includes/modules/Gzip/GzipModule.php:164
1231 1281 msgid "Go to the snippet"
1232 1282 msgstr ""
1233 1283
1234 -#: includes/modules/Cache/CacheModule.php:130
1235 -#: includes/modules/Migration/MigrationModule.php:547
1284 +#: includes/modules/Cache/CacheModule.php:169
1285 +#: includes/modules/Migration/MigrationModule.php:548
1236 1286 msgid "Page Cache"
1237 1287 msgstr ""
1238 1288
1239 -#: includes/modules/Cache/CacheModule.php:132
1240 -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."
1241 1291 msgstr ""
1242 1292
1243 -#: includes/modules/Cache/CacheModule.php:158
1244 -msgid "Cache Expiry (hours)"
1293 +#: includes/modules/Cache/CacheModule.php:198
1294 +msgid "Cache expiry (hours)"
1245 1295 msgstr ""
1246 1296
1247 -#: includes/modules/Cache/CacheModule.php:160
1248 -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)."
1249 1299 msgstr ""
1250 1300
1251 -#: includes/modules/Cache/CacheModule.php:190
1301 +#: includes/modules/Cache/CacheModule.php:230
1252 1302 msgid "Excluded URLs"
1253 1303 msgstr ""
1254 1304
1255 -#: includes/modules/Cache/CacheModule.php:191
1256 -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."
1257 1307 msgstr ""
1258 1308
1259 -#: includes/modules/Cache/CacheModule.php:200
1260 -msgid "Excluded Cookies"
1309 +#: includes/modules/Cache/CacheModule.php:240
1310 +msgid "Excluded cookies"
1261 1311 msgstr ""
1262 1312
1263 -#: includes/modules/Cache/CacheModule.php:201
1264 -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."
1265 1315 msgstr ""
1266 1316
1267 -#: includes/modules/Cache/CacheModule.php:207
1268 -msgid "Bypass User Agents"
1317 +#: includes/modules/Cache/CacheModule.php:247
1318 +msgid "Excluded browsers and bots"
1269 1319 msgstr ""
1270 1320
1271 -#: includes/modules/Cache/CacheModule.php:208
1272 -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."
1273 1323 msgstr ""
1274 1324
1275 -#: includes/modules/Cache/CacheModule.php:219
1276 -msgid "Ignored Query Parameters"
1325 +#: includes/modules/Cache/CacheModule.php:259
1326 +msgid "Ignored query parameters"
1277 1327 msgstr ""
1278 1328
1279 -#: includes/modules/Cache/CacheModule.php:220
1280 -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."
1281 1331 msgstr ""
1282 1332
1283 -#: includes/modules/Cache/CacheModule.php:225
1284 -msgid "Purge After Updates"
1333 +#: includes/modules/Cache/CacheModule.php:266
1334 +msgid "Clear cache after updates"
1285 1335 msgstr ""
1286 1336
1287 -#: includes/modules/Cache/CacheModule.php:226
1288 -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."
1289 1339 msgstr ""
1290 1340
1291 -#: includes/modules/Cache/CacheModule.php:231
1292 -msgid "Separate Mobile Cache"
1341 +#: includes/modules/Cache/CacheModule.php:272
1342 +msgid "Separate mobile cache"
1293 1343 msgstr ""
1294 1344
1295 -#: includes/modules/Cache/CacheModule.php:232
1296 -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."
1297 1347 msgstr ""
1298 1348
1299 -#: includes/modules/Cache/CacheModule.php:264
1300 -msgid "Cache In Front Of This Site"
1349 +#: includes/modules/Cache/CacheModule.php:305
1350 +msgid "CDN or proxy in front"
1301 1351 msgstr ""
1302 1352
1303 -#: includes/modules/Cache/CacheModule.php:265
1304 -msgid "Ask a CDN or proxy in front of your site not to store pages xSpeed refused to cache. Leave it on Detect automatically unless you know what is in front of you; the marked providers ignore origin headers until you configure them to respect it."
1353 +#: 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."
1305 1355 msgstr ""
1306 1356
1307 -#: includes/modules/Cache/CacheModule.php:266
1357 +#: includes/modules/Cache/CacheModule.php:308
1308 1358 msgid "Cache in front of this site"
1309 1359 msgstr ""
1310 1360
1311 -#: includes/modules/Cache/CacheModule.php:267
1361 +#: includes/modules/Cache/CacheModule.php:309
1312 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."
1313 1363 msgstr ""
1314 1364
1315 -#: includes/modules/Cache/CacheModule.php:273
1316 -msgid "Custom Edge Headers"
1365 +#: includes/modules/Cache/CacheModule.php:315
1366 +msgid "Custom CDN headers"
1317 1367 msgstr ""
1318 1368
1319 -#: includes/modules/Cache/CacheModule.php:275
1320 -msgid "One header per line, as Name: value — for example \"Surrogate-Control: no-store\". Lines starting with # are ignored."
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."
1321 1371 msgstr ""
1322 1372
1323 -#: includes/modules/Cache/CacheModule.php:276
1373 +#: includes/modules/Cache/CacheModule.php:319
1324 1374 msgid "Custom edge headers"
1325 1375 msgstr ""
1326 1376
1327 -#: includes/modules/Cache/CacheModule.php:277
1377 +#: includes/modules/Cache/CacheModule.php:320
1328 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."
1329 1379 msgstr ""
1330 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 +
1331 1389 #: includes/modules/CacheCoverage/CacheCoverageModule.php:36
1332 1390 msgid "Advanced Cache"
1333 1391 msgstr ""
1334 1392
1335 1393 #: includes/modules/CacheCoverage/CacheCoverageModule.php:38
1336 -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."
1337 1395 msgstr ""
1338 1396
1339 1397 #: includes/modules/Cdn/CdnModule.php:30
1340 -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."
1341 1399 msgstr ""
1342 1400
1343 -#: includes/modules/Cdn/CdnModule.php:39
1401 +#: includes/modules/Cdn/CdnModule.php:40
1344 1402 msgid "Enable CDN"
1345 1403 msgstr ""
1346 1404
1347 -#: includes/modules/Cdn/CdnModule.php:40
1348 -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."
1349 1407 msgstr ""
1350 1408
1351 -#: includes/modules/Cdn/CdnModule.php:45
1409 +#: includes/modules/Cdn/CdnModule.php:46
1352 1410 msgid "CDN URL"
1353 1411 msgstr ""
1354 1412
1355 -#: includes/modules/Cdn/CdnModule.php:46
1356 -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."
1357 1415 msgstr ""
1358 1416
1359 -#: includes/modules/Cdn/CdnModule.php:53
1360 -msgid "Included File Extensions"
1417 +#: includes/modules/Cdn/CdnModule.php:54
1418 +msgid "File types to serve"
1361 1419 msgstr ""
1362 1420
1363 -#: includes/modules/Cdn/CdnModule.php:54
1364 -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."
1365 1423 msgstr ""
1366 1424
1367 -#: includes/modules/Cdn/CdnModule.php:61
1368 -msgid "Excluded Patterns"
1425 +#: includes/modules/Cdn/CdnModule.php:62
1426 +msgid "Excluded paths"
1369 1427 msgstr ""
1370 1428
1371 -#: includes/modules/Cdn/CdnModule.php:62
1372 -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."
1373 1431 msgstr ""
1374 1432
1375 1433 #: includes/modules/Cloudflare/CloudflareModule.php:77
1376 1434 msgid "Cloudflare"
@@ -1376,75 +1434,75 @@
1376 1434 msgid "Cloudflare"
1377 1435 msgstr ""
1378 1436
1379 1437 #: includes/modules/Cloudflare/CloudflareModule.php:79
1380 -msgid "Connect a Cloudflare zone for automatic edge purging when xSpeed clears its cache, plus a dev-mode toggle."
1438 +msgid "Clear the Cloudflare cache whenever xSpeed clears its own cache."
1381 1439 msgstr ""
1382 1440
1383 -#: includes/modules/Cloudflare/CloudflareModule.php:102
1384 -msgid "Enable Cloudflare integration"
1385 -msgstr ""
1386 -
1387 1441 #: includes/modules/Cloudflare/CloudflareModule.php:103
1388 -msgid "Use the credentials below to verify your zone and run purges."
1442 +msgid "Connect Cloudflare"
1389 1443 msgstr ""
1390 1444
1391 -#: includes/modules/Cloudflare/CloudflareModule.php:113
1392 -msgid "Authentication"
1445 +#: includes/modules/Cloudflare/CloudflareModule.php:104
1446 +msgid "Lets xSpeed clear the Cloudflare cache for your domain, using the details below."
1393 1447 msgstr ""
1394 1448
1395 1449 #: includes/modules/Cloudflare/CloudflareModule.php:114
1396 -msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email."
1450 +msgid "Authentication"
1397 1451 msgstr ""
1398 1452
1399 -#: includes/modules/Cloudflare/CloudflareModule.php:120
1400 -msgid "API Token"
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."
1401 1455 msgstr ""
1402 1456
1403 1457 #: includes/modules/Cloudflare/CloudflareModule.php:121
1404 -msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions."
1458 +msgid "API Token"
1405 1459 msgstr ""
1406 1460
1407 -#: includes/modules/Cloudflare/CloudflareModule.php:129
1408 -msgid "Account Email"
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."
1409 1463 msgstr ""
1410 1464
1411 1465 #: includes/modules/Cloudflare/CloudflareModule.php:130
1412 -msgid "Only used when Authentication is set to Global API Key."
1466 +msgid "Account email"
1413 1467 msgstr ""
1414 1468
1415 -#: includes/modules/Cloudflare/CloudflareModule.php:136
1416 -msgid "Global API Key"
1469 +#: includes/modules/Cloudflare/CloudflareModule.php:131
1470 +msgid "The email address of your Cloudflare account."
1417 1471 msgstr ""
1418 1472
1419 1473 #: includes/modules/Cloudflare/CloudflareModule.php:137
1420 -msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1474 +msgid "Global API Key"
1421 1475 msgstr ""
1422 1476
1423 -#: includes/modules/Cloudflare/CloudflareModule.php:143
1424 -msgid "Zone ID"
1477 +#: includes/modules/Cloudflare/CloudflareModule.php:138
1478 +msgid "Find it at dash.cloudflare.com → My Profile → API Tokens → Global API Key."
1425 1479 msgstr ""
1426 1480
1427 1481 #: includes/modules/Cloudflare/CloudflareModule.php:144
1428 -msgid "The 32-character hex Zone ID from your domain overview page."
1482 +msgid "Zone ID"
1429 1483 msgstr ""
1430 1484
1431 -#: includes/modules/Cloudflare/CloudflareModule.php:150
1432 -msgid "Auto-purge Cloudflare on xSpeed purge"
1485 +#: includes/modules/Cloudflare/CloudflareModule.php:145
1486 +msgid "The 32-character Zone ID shown on your domain overview page in Cloudflare."
1433 1487 msgstr ""
1434 1488
1435 1489 #: includes/modules/Cloudflare/CloudflareModule.php:151
1436 -msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too."
1490 +msgid "Clear Cloudflare with xSpeed"
1437 1491 msgstr ""
1438 1492
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."
1495 +msgstr ""
1496 +
1439 1497 #. translators: %d: number of URLs that changed at once.
1440 -#: includes/modules/Cloudflare/CloudflareModule.php:480
1498 +#: includes/modules/Cloudflare/CloudflareModule.php:481
1441 1499 #, php-format
1442 1500 msgid "Purging the whole Cloudflare zone: %d URLs changed at once, too many to purge individually"
1443 1501 msgstr ""
1444 1502
1445 1503 #. translators: %d: number of URLs.
1446 -#: includes/modules/Cloudflare/CloudflareModule.php:541
1504 +#: includes/modules/Cloudflare/CloudflareModule.php:542
1447 1505 #, php-format
1448 1506 msgid "Skipped a queued Cloudflare purge of %d URL: the connection is no longer available"
1449 1507 msgid_plural "Skipped a queued Cloudflare purge of %d URLs: the connection is no longer available"
1450 1508 msgstr[0] ""
@@ -1450,9 +1508,9 @@
1450 1508 msgstr[0] ""
1451 1509 msgstr[1] ""
1452 1510
1453 1511 #. translators: %d: number of URLs purged.
1454 -#: includes/modules/Cloudflare/CloudflareModule.php:572
1512 +#: includes/modules/Cloudflare/CloudflareModule.php:573
1455 1513 #, php-format
1456 1514 msgid "Purged %d URL from the Cloudflare edge cache"
1457 1515 msgid_plural "Purged %d URLs from the Cloudflare edge cache"
1458 1516 msgstr[0] ""
@@ -1458,62 +1516,62 @@
1458 1516 msgstr[0] ""
1459 1517 msgstr[1] ""
1460 1518
1461 1519 #. translators: 1: number of URLs, 2: failure reason.
1462 -#: includes/modules/Cloudflare/CloudflareModule.php:588
1520 +#: includes/modules/Cloudflare/CloudflareModule.php:589
1463 1521 #, php-format
1464 1522 msgid "Cloudflare URL purge failed (%1$d URL(s)): %2$s"
1465 1523 msgstr ""
1466 1524
1467 -#: includes/modules/Cloudflare/CloudflareModule.php:590
1468 -#: includes/modules/Cloudflare/CloudflareModule.php:657
1525 +#: includes/modules/Cloudflare/CloudflareModule.php:591
1526 +#: includes/modules/Cloudflare/CloudflareModule.php:658
1469 1527 msgid "unknown error"
1470 1528 msgstr ""
1471 1529
1472 -#: includes/modules/Cloudflare/CloudflareModule.php:606
1530 +#: includes/modules/Cloudflare/CloudflareModule.php:607
1473 1531 msgid "the Cloudflare integration is switched off"
1474 1532 msgstr ""
1475 1533
1476 -#: includes/modules/Cloudflare/CloudflareModule.php:609
1534 +#: includes/modules/Cloudflare/CloudflareModule.php:610
1477 1535 msgid "no zone ID or API credentials are configured"
1478 1536 msgstr ""
1479 1537
1480 1538 #. translators: %s: what asked for the purge.
1481 -#: includes/modules/Cloudflare/CloudflareModule.php:645
1539 +#: includes/modules/Cloudflare/CloudflareModule.php:646
1482 1540 #, php-format
1483 1541 msgid "Purged the Cloudflare edge cache (%s)"
1484 1542 msgstr ""
1485 1543
1486 1544 #. translators: 1: what asked for the purge, 2: failure reason.
1487 -#: includes/modules/Cloudflare/CloudflareModule.php:655
1545 +#: includes/modules/Cloudflare/CloudflareModule.php:656
1488 1546 #, php-format
1489 1547 msgid "Cloudflare purge failed (%1$s): %2$s"
1490 1548 msgstr ""
1491 1549
1492 -#: includes/modules/Cloudflare/CloudflareModule.php:727
1550 +#: includes/modules/Cloudflare/CloudflareModule.php:728
1493 1551 msgid "Cloudflare is not fully configured."
1494 1552 msgstr ""
1495 1553
1496 -#: includes/modules/Cloudflare/CloudflareModule.php:728
1554 +#: includes/modules/Cloudflare/CloudflareModule.php:729
1497 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."
1498 1556 msgstr ""
1499 1557
1500 -#: includes/modules/Cloudflare/CloudflareModule.php:741
1558 +#: includes/modules/Cloudflare/CloudflareModule.php:742
1501 1559 msgid "Cloudflare purge is failing."
1502 1560 msgstr ""
1503 1561
1504 1562 #. translators: %s: the Cloudflare API error message, or empty.
1505 -#: includes/modules/Cloudflare/CloudflareModule.php:744
1563 +#: includes/modules/Cloudflare/CloudflareModule.php:745
1506 1564 #, php-format
1507 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."
1508 1566 msgstr ""
1509 1567
1510 -#: includes/modules/Cloudflare/CloudflareModule.php:753
1568 +#: includes/modules/Cloudflare/CloudflareModule.php:754
1511 1569 msgid "Cloudflare credentials were rejected."
1512 1570 msgstr ""
1513 1571
1514 1572 #. translators: %s: the Cloudflare API error message, or empty.
1515 -#: includes/modules/Cloudflare/CloudflareModule.php:756
1573 +#: includes/modules/Cloudflare/CloudflareModule.php:757
1516 1574 #, php-format
1517 1575 msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed."
1518 1576 msgstr ""
1519 1577
@@ -1521,28 +1579,54 @@
1521 1579 msgid "Database"
1522 1580 msgstr ""
1523 1581
1524 1582 #: includes/modules/Database/DatabaseModule.php:32
1525 -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."
1526 1584 msgstr ""
1527 1585
1528 -#: includes/modules/Database/DatabaseModule.php:49
1529 -msgid "Auto-Cleanup Schedule"
1586 +#: includes/modules/Database/DatabaseModule.php:50
1587 +msgid "Automatic cleanup"
1530 1588 msgstr ""
1531 1589
1532 -#: includes/modules/Database/DatabaseModule.php:50
1533 -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."
1534 1592 msgstr ""
1535 1593
1536 -#: includes/modules/Database/DatabaseModule.php:56
1537 -msgid "Auto-Cleanup Types"
1594 +#: includes/modules/Database/DatabaseModule.php:57
1595 +msgid "What to clean automatically"
1538 1596 msgstr ""
1539 1597
1540 -#: includes/modules/Database/DatabaseModule.php:57
1541 -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."
1542 1600 msgstr ""
1543 1601
1544 -#: 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
1545 1629 msgid "Provide at least one cleanup type."
1546 1630 msgstr ""
1547 1631
1548 1632 #: includes/modules/Fonts/FontsModule.php:35
@@ -1549,29 +1633,29 @@
1549 1633 msgid "Fonts"
1550 1634 msgstr ""
1551 1635
1552 1636 #: includes/modules/Fonts/FontsModule.php:37
1553 -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."
1554 1638 msgstr ""
1555 1639
1556 -#: includes/modules/Fonts/FontsModule.php:46
1557 -msgid "Add font-display: swap"
1640 +#: includes/modules/Fonts/FontsModule.php:47
1641 +msgid "Show text while fonts load"
1558 1642 msgstr ""
1559 1643
1560 -#: includes/modules/Fonts/FontsModule.php:47
1561 -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."
1562 1646 msgstr ""
1563 1647
1564 -#: includes/modules/Fonts/FontsModule.php:53
1565 -msgid "Preload Font URLs"
1648 +#: includes/modules/Fonts/FontsModule.php:54
1649 +msgid "Fonts to preload"
1566 1650 msgstr ""
1567 1651
1568 -#: includes/modules/Fonts/FontsModule.php:54
1569 -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."
1570 1654 msgstr ""
1571 1655
1572 1656 #: includes/modules/Gzip/GzipModule.php:35
1573 -#: includes/modules/Migration/MigrationModule.php:553
1657 +#: includes/modules/Migration/MigrationModule.php:554
1574 1658 msgid "Compression"
1575 1659 msgstr ""
1576 1660
1577 1661 #: includes/modules/Gzip/GzipModule.php:36
@@ -1578,56 +1662,56 @@
1578 1662 msgid "GZIP"
1579 1663 msgstr ""
1580 1664
1581 1665 #: includes/modules/Gzip/GzipModule.php:38
1582 -msgid "Compress responses to reduce transfer size."
1666 +msgid "Compresses pages and files so they download faster."
1583 1667 msgstr ""
1584 1668
1585 -#: includes/modules/Gzip/GzipModule.php:52
1586 -msgid "Enable GZIP Compression"
1669 +#: includes/modules/Gzip/GzipModule.php:53
1670 +msgid "Enable Gzip compression"
1587 1671 msgstr ""
1588 1672
1589 -#: includes/modules/Gzip/GzipModule.php:74
1590 -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."
1591 1675 msgstr ""
1592 1676
1593 -#: includes/modules/Gzip/GzipModule.php:77
1594 -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."
1595 1679 msgstr ""
1596 1680
1597 -#: includes/modules/Gzip/GzipModule.php:79
1598 -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."
1599 1683 msgstr ""
1600 1684
1601 -#: includes/modules/Gzip/GzipModule.php:154
1685 +#: includes/modules/Gzip/GzipModule.php:155
1602 1686 msgid "GZIP requires server config on nginx"
1603 1687 msgstr ""
1604 1688
1605 -#: includes/modules/Gzip/GzipModule.php:155
1689 +#: includes/modules/Gzip/GzipModule.php:156
1606 1690 msgid "GZIP is being served by nginx"
1607 1691 msgstr ""
1608 1692
1609 -#: includes/modules/Gzip/GzipModule.php:157
1693 +#: includes/modules/Gzip/GzipModule.php:158
1610 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."
1611 1695 msgstr ""
1612 1696
1613 -#: includes/modules/Gzip/GzipModule.php:158
1697 +#: includes/modules/Gzip/GzipModule.php:159
1614 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."
1615 1699 msgstr ""
1616 1700
1617 -#: includes/modules/Gzip/GzipModule.php:186
1701 +#: includes/modules/Gzip/GzipModule.php:187
1618 1702 msgid "GZIP enabled but not active on the server"
1619 1703 msgstr ""
1620 1704
1621 -#: includes/modules/Gzip/GzipModule.php:187
1705 +#: includes/modules/Gzip/GzipModule.php:188
1622 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."
1623 1707 msgstr ""
1624 1708
1625 -#: includes/modules/Gzip/GzipModule.php:197
1709 +#: includes/modules/Gzip/GzipModule.php:198
1626 1710 msgid "GZIP requires server config on this server"
1627 1711 msgstr ""
1628 1712
1629 -#: includes/modules/Gzip/GzipModule.php:198
1713 +#: includes/modules/Gzip/GzipModule.php:199
1630 1714 msgid "xSpeed can only auto-configure GZIP on Apache and LiteSpeed (via .htaccess). Paste the snippet below into your server config and reload."
1631 1715 msgstr ""
1632 1716
1633 1717 #: includes/modules/Health/HealthModule.php:66
@@ -1654,82 +1738,90 @@
1654 1738 #: includes/modules/Health/HealthModule.php:139
1655 1739 msgid "Enable the page cache in the xSpeed dashboard to start serving cached HTML for non-logged-in visitors."
1656 1740 msgstr ""
1657 1741
1658 -#: includes/modules/Health/HealthModule.php:152
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
1659 1751 msgid "xSpeed is serving cache hits through PHP"
1660 1752 msgstr ""
1661 1753
1662 -#: includes/modules/Health/HealthModule.php:154
1754 +#: includes/modules/Health/HealthModule.php:161
1663 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."
1664 1756 msgstr ""
1665 1757
1666 -#: includes/modules/Health/HealthModule.php:156
1667 -#: includes/modules/Health/HealthModule.php:193
1758 +#: includes/modules/Health/HealthModule.php:163
1759 +#: includes/modules/Health/HealthModule.php:202
1668 1760 msgid "xSpeed static rewrite is off (Separate Mobile Cache)"
1669 1761 msgstr ""
1670 1762
1671 -#: includes/modules/Health/HealthModule.php:158
1672 -#: includes/modules/Health/HealthModule.php:195
1763 +#: includes/modules/Health/HealthModule.php:165
1764 +#: includes/modules/Health/HealthModule.php:204
1673 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."
1674 1766 msgstr ""
1675 1767
1676 -#: includes/modules/Health/HealthModule.php:160
1768 +#: includes/modules/Health/HealthModule.php:169
1677 1769 msgid "xSpeed .htaccess rewrite block is missing"
1678 1770 msgstr ""
1679 1771
1680 -#: includes/modules/Health/HealthModule.php:162
1772 +#: includes/modules/Health/HealthModule.php:171
1681 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."
1682 1774 msgstr ""
1683 1775
1684 -#: includes/modules/Health/HealthModule.php:187
1776 +#: includes/modules/Health/HealthModule.php:196
1685 1777 msgid "xSpeed nginx static rewrite is active"
1686 1778 msgstr ""
1687 1779
1688 -#: includes/modules/Health/HealthModule.php:189
1780 +#: includes/modules/Health/HealthModule.php:198
1689 1781 msgid "nginx is serving cache hits directly — PHP is bypassed (~5-15ms TTFB). No action needed."
1690 1782 msgstr ""
1691 1783
1692 -#: includes/modules/Health/HealthModule.php:199
1784 +#: includes/modules/Health/HealthModule.php:208
1693 1785 msgid "xSpeed is serving cache hits through PHP (pages contain nonces)"
1694 1786 msgstr ""
1695 1787
1696 -#: includes/modules/Health/HealthModule.php:201
1788 +#: includes/modules/Health/HealthModule.php:210
1697 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."
1698 1790 msgstr ""
1699 1791
1700 -#: includes/modules/Health/HealthModule.php:210
1792 +#: includes/modules/Health/HealthModule.php:219
1701 1793 msgid "xSpeed could not verify the nginx static rewrite"
1702 1794 msgstr ""
1703 1795
1704 1796 #. translators: %s: the reason the probe could not complete.
1705 -#: includes/modules/Health/HealthModule.php:215
1797 +#: includes/modules/Health/HealthModule.php:224
1706 1798 #, php-format
1707 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"
1708 1800 msgstr ""
1709 1801
1710 -#: includes/modules/Health/HealthModule.php:223
1802 +#: includes/modules/Health/HealthModule.php:232
1711 1803 msgid "xSpeed nginx server config required"
1712 1804 msgstr ""
1713 1805
1714 -#: includes/modules/Health/HealthModule.php:225
1806 +#: includes/modules/Health/HealthModule.php:234
1715 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:"
1716 1808 msgstr ""
1717 1809
1718 -#: includes/modules/Health/HealthModule.php:234
1810 +#: includes/modules/Health/HealthModule.php:243
1719 1811 msgid "xSpeed PHP drop-in cache active"
1720 1812 msgstr ""
1721 1813
1722 -#: includes/modules/Health/HealthModule.php:236
1814 +#: includes/modules/Health/HealthModule.php:245
1723 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."
1724 1816 msgstr ""
1725 1817
1726 -#: includes/modules/Health/HealthModule.php:242
1818 +#: includes/modules/Health/HealthModule.php:251
1727 1819 msgid "Health"
1728 1820 msgstr ""
1729 1821
1730 -#: includes/modules/Health/HealthModule.php:244
1731 -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."
1732 1824 msgstr ""
1733 1825
1734 1826 #: includes/modules/Heartbeat/HeartbeatModule.php:38
1735 1827 msgid "Heartbeat"
@@ -1735,41 +1827,41 @@
1735 1827 msgid "Heartbeat"
1736 1828 msgstr ""
1737 1829
1738 1830 #: includes/modules/Heartbeat/HeartbeatModule.php:40
1739 -msgid "Control the WordPress Heartbeat API per context."
1831 +msgid "Controls how often WordPress checks in with your server in the background."
1740 1832 msgstr ""
1741 1833
1742 -#: includes/modules/Heartbeat/HeartbeatModule.php:64
1834 +#: includes/modules/Heartbeat/HeartbeatModule.php:65
1743 1835 msgid "Dashboard"
1744 1836 msgstr ""
1745 1837
1746 -#: includes/modules/Heartbeat/HeartbeatModule.php:65
1747 -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."
1748 1840 msgstr ""
1749 1841
1750 -#: includes/modules/Heartbeat/HeartbeatModule.php:72
1842 +#: includes/modules/Heartbeat/HeartbeatModule.php:73
1751 1843 msgid "Editor"
1752 1844 msgstr ""
1753 1845
1754 -#: includes/modules/Heartbeat/HeartbeatModule.php:73
1755 -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."
1756 1848 msgstr ""
1757 1849
1758 -#: includes/modules/Heartbeat/HeartbeatModule.php:80
1850 +#: includes/modules/Heartbeat/HeartbeatModule.php:81
1759 1851 msgid "Frontend"
1760 1852 msgstr ""
1761 1853
1762 -#: includes/modules/Heartbeat/HeartbeatModule.php:81
1763 -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."
1764 1856 msgstr ""
1765 1857
1766 -#: includes/modules/Heartbeat/HeartbeatModule.php:88
1767 -msgid "Throttle Frequency"
1858 +#: includes/modules/Heartbeat/HeartbeatModule.php:89
1859 +msgid "Throttle interval"
1768 1860 msgstr ""
1769 1861
1770 -#: includes/modules/Heartbeat/HeartbeatModule.php:89
1771 -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."
1772 1864 msgstr ""
1773 1865
1774 1866 #: includes/modules/Lazy/LazyModule.php:42
1775 1867 msgid "Media Optimization"
@@ -1779,67 +1871,75 @@
1779 1871 msgid "Lazy Loading"
1780 1872 msgstr ""
1781 1873
1782 1874 #: includes/modules/Lazy/LazyModule.php:45
1783 -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."
1784 1876 msgstr ""
1785 1877
1786 -#: includes/modules/Lazy/LazyModule.php:59
1787 -msgid "Lazy-load Images"
1788 -msgstr ""
1789 -
1790 1878 #: includes/modules/Lazy/LazyModule.php:60
1791 -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"
1792 1880 msgstr ""
1793 1881
1794 -#: includes/modules/Lazy/LazyModule.php:65
1795 -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."
1796 1884 msgstr ""
1797 1885
1798 1886 #: includes/modules/Lazy/LazyModule.php:66
1799 -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"
1800 1888 msgstr ""
1801 1889
1802 -#: includes/modules/Lazy/LazyModule.php:71
1803 -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."
1804 1892 msgstr ""
1805 1893
1806 1894 #: includes/modules/Lazy/LazyModule.php:72
1807 -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"
1808 1896 msgstr ""
1809 1897
1810 -#: includes/modules/Lazy/LazyModule.php:77
1811 -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."
1812 1900 msgstr ""
1813 1901
1814 1902 #: includes/modules/Lazy/LazyModule.php:78
1815 -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"
1816 1904 msgstr ""
1817 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 +
1818 1914 #: includes/modules/Lazy/LazyModule.php:85
1819 -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."
1820 1916 msgstr ""
1821 1917
1822 -#: includes/modules/Lazy/LazyModule.php:86
1823 -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"
1824 1920 msgstr ""
1825 1921
1826 -#: includes/modules/Lazy/LazyModule.php:91
1827 -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."
1828 1924 msgstr ""
1829 1925
1830 -#: includes/modules/Lazy/LazyModule.php:92
1831 -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"
1832 1928 msgstr ""
1833 1929
1834 -#: includes/modules/Lazy/LazyModule.php:98
1835 -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."
1836 1932 msgstr ""
1837 1933
1838 -#: includes/modules/Lazy/LazyModule.php:99
1839 -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"
1840 1936 msgstr ""
1841 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 +
1842 1942 #. translators: %s: command name.
1843 1943 #: includes/modules/Mcp/Cli_Bridge.php:128
1844 1944 #, php-format
1845 1945 msgid "Unknown command: %s. Call list_commands to see what is available."
@@ -1850,86 +1950,91 @@
1850 1950 msgid "MCP Server"
1851 1951 msgstr ""
1852 1952
1853 1953 #: includes/modules/Mcp/McpModule.php:151
1854 -msgid "Let Claude or another AI agent run this site — purge, check stats, change settings. This is the only thing you connect an AI to, and it is free with no API key."
1954 +msgid "Let Claude or another AI assistant clear the cache, check stats and change settings."
1855 1955 msgstr ""
1856 1956
1857 -#: includes/modules/Mcp/McpModule.php:440
1957 +#: includes/modules/Mcp/McpModule.php:450
1858 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."
1859 1959 msgstr ""
1860 1960
1861 -#: includes/modules/Mcp/McpModule.php:1307
1961 +#: includes/modules/Mcp/McpModule.php:1319
1862 1962 msgid "Invalid or expired attach request."
1863 1963 msgstr ""
1864 1964
1865 -#: includes/modules/Mcp/McpModule.php:1423
1965 +#: includes/modules/Mcp/McpModule.php:1435
1866 1966 msgid "You must be an administrator to authorize an AI agent to control this site."
1867 1967 msgstr ""
1868 1968
1869 -#: includes/modules/Mcp/McpModule.php:1430
1969 +#: includes/modules/Mcp/McpModule.php:1442
1870 1970 msgid "Security check failed. Please try connecting again."
1871 1971 msgstr ""
1872 1972
1973 +#: includes/modules/Mcp/McpModule.php:1538
1873 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
1874 1979 msgid "Read-only — inspect cache status and settings."
1875 1980 msgstr ""
1876 1981
1877 -#: includes/modules/Mcp/McpModule.php:1558
1982 +#: includes/modules/Mcp/McpModule.php:1633
1878 1983 msgid "Read & write — purge caches, toggle caching, and change settings."
1879 1984 msgstr ""
1880 1985
1881 -#: includes/modules/Mcp/McpModule.php:1559
1986 +#: includes/modules/Mcp/McpModule.php:1634
1882 1987 msgid "An AI agent"
1883 1988 msgstr ""
1884 1989
1885 -#: includes/modules/Mcp/McpModule.php:1578
1990 +#: includes/modules/Mcp/McpModule.php:1653
1886 1991 msgid "Authorize AI access"
1887 1992 msgstr ""
1888 1993
1889 -#: includes/modules/Mcp/McpModule.php:1589
1994 +#: includes/modules/Mcp/McpModule.php:1664
1890 1995 msgid "Connect to xSpeed"
1891 1996 msgstr ""
1892 1997
1893 1998 #. translators: %s: AI client name.
1894 -#: includes/modules/Mcp/McpModule.php:1591
1999 +#: includes/modules/Mcp/McpModule.php:1666
1895 2000 #, php-format
1896 2001 msgid "%s wants to manage the cache on this site."
1897 2002 msgstr ""
1898 2003
1899 -#: includes/modules/Mcp/McpModule.php:1592
2004 +#: includes/modules/Mcp/McpModule.php:1667
1900 2005 msgid "Site"
1901 2006 msgstr ""
1902 2007
1903 -#: includes/modules/Mcp/McpModule.php:1593
2008 +#: includes/modules/Mcp/McpModule.php:1668
1904 2009 msgid "Signed in as"
1905 2010 msgstr ""
1906 2011
1907 -#: includes/modules/Mcp/McpModule.php:1594
2012 +#: includes/modules/Mcp/McpModule.php:1669
1908 2013 msgid "Access"
1909 2014 msgstr ""
1910 2015
1911 -#: includes/modules/Mcp/McpModule.php:1599
2016 +#: includes/modules/Mcp/McpModule.php:1674
1912 2017 msgid "Deny"
1913 2018 msgstr ""
1914 2019
1915 -#: includes/modules/Mcp/McpModule.php:1600
2020 +#: includes/modules/Mcp/McpModule.php:1675
1916 2021 msgid "Approve"
1917 2022 msgstr ""
1918 2023
1919 -#: includes/modules/Mcp/McpModule.php:1610
2024 +#: includes/modules/Mcp/McpModule.php:1685
1920 2025 msgid "Authorization error"
1921 2026 msgstr ""
1922 2027
1923 -#: includes/modules/Mcp/McpModule.php:1613
2028 +#: includes/modules/Mcp/McpModule.php:1688
1924 2029 msgid "Could not authorize"
1925 2030 msgstr ""
1926 2031
1927 -#: includes/modules/Mcp/McpModule.php:1843
2032 +#: includes/modules/Mcp/McpModule.php:1918
1928 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."
1929 2034 msgstr ""
1930 2035
1931 -#: includes/modules/Mcp/McpModule.php:1844
2036 +#: includes/modules/Mcp/McpModule.php:1919
1932 2037 msgid "No AI assistant is connected. This module counts as on once you connect one."
1933 2038 msgstr ""
1934 2039
1935 2040 #: includes/modules/Mcp/Mcp_Auth.php:57
@@ -1935,17 +2040,17 @@
1935 2040 #: includes/modules/Mcp/Mcp_Auth.php:57
1936 2041 msgid "Too many failed attempts. Try again later."
1937 2042 msgstr ""
1938 2043
1939 -#: includes/modules/Mcp/Mcp_Hub.php:771
2044 +#: includes/modules/Mcp/Mcp_Hub.php:871
1940 2045 msgid "Connect this site to xSpeed Hub to run a free speed test."
1941 2046 msgstr ""
1942 2047
1943 -#: includes/modules/Mcp/Mcp_Hub.php:797
2048 +#: includes/modules/Mcp/Mcp_Hub.php:897
1944 2049 msgid "Could not reach xSpeed Hub. Please try again."
1945 2050 msgstr ""
1946 2051
1947 -#: includes/modules/Mcp/Mcp_Hub.php:820
2052 +#: includes/modules/Mcp/Mcp_Hub.php:920
1948 2053 #: assets/admin.js
1949 2054 msgid "The test could not be started."
1950 2055 msgstr ""
1951 2056
@@ -1986,155 +2091,160 @@
1986 2091 #: includes/modules/Mcp/Mcp_OAuth.php:395
1987 2092 msgid "PKCE with code_challenge_method=S256 is required."
1988 2093 msgstr ""
1989 2094
1990 -#: includes/modules/Mcp/Mcp_Pairing.php:451
2095 +#: includes/modules/Mcp/Mcp_Pairing.php:474
1991 2096 msgid "No active MCP connection to change. Connect first."
1992 2097 msgstr ""
1993 2098
1994 2099 #. translators: %s: tool name.
1995 -#: includes/modules/Mcp/Mcp_Tools.php:931
2100 +#: includes/modules/Mcp/Mcp_Tools.php:988
2101 +#: includes/modules/Mcp/Mcp_Tools.php:1026
1996 2102 #, php-format
1997 2103 msgid "Unknown tool: %s"
1998 2104 msgstr ""
1999 2105
2000 2106 #. translators: %s: tool name.
2001 -#: includes/modules/Mcp/Mcp_Tools.php:959
2107 +#: includes/modules/Mcp/Mcp_Tools.php:1047
2002 2108 #, php-format
2003 2109 msgid "This MCP connection is read-only; the \"%s\" tool changes state and is not permitted. Reconnect with write access to use it."
2004 2110 msgstr ""
2005 2111
2006 2112 #. translators: %s: comma-separated list of valid purge types.
2007 -#: includes/modules/Mcp/Mcp_Tools.php:1240
2113 +#: includes/modules/Mcp/Mcp_Tools.php:1334
2008 2114 #, php-format
2009 2115 msgid "Invalid purge type. Expected one of: %s"
2010 2116 msgstr ""
2011 2117
2012 -#: includes/modules/Mcp/Mcp_Tools.php:1249
2013 -#: includes/modules/Mcp/Mcp_Tools.php:2261
2118 +#: includes/modules/Mcp/Mcp_Tools.php:1343
2119 +#: includes/modules/Mcp/Mcp_Tools.php:2355
2014 2120 msgid "AI assistant"
2015 2121 msgstr ""
2016 2122
2017 -#: includes/modules/Mcp/Mcp_Tools.php:1298
2123 +#: includes/modules/Mcp/Mcp_Tools.php:1392
2018 2124 msgid "The \"enabled\" parameter is required (true or false)."
2019 2125 msgstr ""
2020 2126
2021 -#: includes/modules/Mcp/Mcp_Tools.php:1378
2022 -#: includes/modules/Mcp/Mcp_Tools.php:1432
2127 +#: includes/modules/Mcp/Mcp_Tools.php:1472
2128 +#: includes/modules/Mcp/Mcp_Tools.php:1526
2023 2129 msgid "The \"module\" parameter is required."
2024 2130 msgstr ""
2025 2131
2026 2132 #. translators: %s: module slug.
2027 -#: includes/modules/Mcp/Mcp_Tools.php:1387
2028 -#: includes/modules/Mcp/Mcp_Tools.php:1448
2133 +#: includes/modules/Mcp/Mcp_Tools.php:1481
2134 +#: includes/modules/Mcp/Mcp_Tools.php:1542
2029 2135 #, php-format
2030 2136 msgid "Unknown module \"%s\"."
2031 2137 msgstr ""
2032 2138
2033 -#: includes/modules/Mcp/Mcp_Tools.php:1439
2139 +#: includes/modules/Mcp/Mcp_Tools.php:1533
2034 2140 msgid "The \"values\" parameter must be an object of setting keys."
2035 2141 msgstr ""
2036 2142
2037 2143 #. translators: 1: comma-separated field names, 2: module slug.
2038 -#: includes/modules/Mcp/Mcp_Tools.php:1467
2144 +#: includes/modules/Mcp/Mcp_Tools.php:1561
2039 2145 #, php-format
2040 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."
2041 2147 msgstr ""
2042 2148
2043 2149 #. translators: %s: module slug.
2044 -#: includes/modules/Mcp/Mcp_Tools.php:1499
2150 +#: includes/modules/Mcp/Mcp_Tools.php:1593
2045 2151 #, php-format
2046 2152 msgid "Refused an MCP settings write to the Pro module \"%s\" — no valid license."
2047 2153 msgstr ""
2048 2154
2049 2155 #. translators: %s: module slug.
2050 -#: includes/modules/Mcp/Mcp_Tools.php:1509
2156 +#: includes/modules/Mcp/Mcp_Tools.php:1603
2051 2157 #, php-format
2052 2158 msgid "\"%s\" is a Pro module and this site has no active license, so the write was refused. Nothing was changed."
2053 2159 msgstr ""
2054 2160
2055 2161 #. translators: 1: setting key, 2: wp-config.php constant name.
2056 -#: includes/modules/Mcp/Mcp_Tools.php:1578
2162 +#: includes/modules/Mcp/Mcp_Tools.php:1672
2057 2163 #, php-format
2058 2164 msgid "\"%1$s\" is defined in wp-config.php as %2$s and cannot be changed here"
2059 2165 msgstr ""
2060 2166
2061 2167 #. translators: 1: setting key, 2: module slug.
2062 -#: includes/modules/Mcp/Mcp_Tools.php:1586
2168 +#: includes/modules/Mcp/Mcp_Tools.php:1680
2063 2169 #, php-format
2064 2170 msgid "\"%1$s\" is not a setting of module \"%2$s\""
2065 2171 msgstr ""
2066 2172
2067 2173 #. translators: %s: comma-separated setting names.
2068 -#: includes/modules/Mcp/Mcp_Tools.php:1598
2174 +#: includes/modules/Mcp/Mcp_Tools.php:1692
2069 2175 #, php-format
2070 2176 msgid " — did you mean: %s?"
2071 2177 msgstr ""
2072 2178
2073 2179 #. translators: %s: setting key.
2074 -#: includes/modules/Mcp/Mcp_Tools.php:1608
2180 +#: includes/modules/Mcp/Mcp_Tools.php:1702
2075 2181 #, php-format
2076 2182 msgid "\"%s\" was rejected by the schema (wrong type, or outside the allowed range/options)"
2077 2183 msgstr ""
2078 2184
2079 2185 #. translators: 1: module slug, 2: reasons.
2080 -#: includes/modules/Mcp/Mcp_Tools.php:1617
2186 +#: includes/modules/Mcp/Mcp_Tools.php:1711
2081 2187 #, php-format
2082 2188 msgid "Refused to update %1$s — nothing was written. %2$s"
2083 2189 msgstr ""
2084 2190
2085 -#: includes/modules/Mcp/Mcp_Tools.php:1653
2191 +#: includes/modules/Mcp/Mcp_Tools.php:1747
2086 2192 msgid "The \"command\" parameter is required."
2087 2193 msgstr ""
2088 2194
2089 -#: includes/modules/Mcp/Mcp_Tools.php:1704
2195 +#: includes/modules/Mcp/Mcp_Tools.php:1798
2090 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."
2091 2197 msgstr ""
2092 2198
2093 -#: includes/modules/Mcp/Mcp_Tools.php:1798
2199 +#: includes/modules/Mcp/Mcp_Tools.php:1892
2094 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."
2095 2201 msgstr ""
2096 2202
2097 -#: includes/modules/Mcp/Mcp_Tools.php:1809
2203 +#: includes/modules/Mcp/Mcp_Tools.php:1903
2098 2204 msgid "That confirm_token is unknown or has expired (they last 5 minutes). Run scan_database again and use the fresh token."
2099 2205 msgstr ""
2100 2206
2101 -#: includes/modules/Mcp/Mcp_Tools.php:1817
2207 +#: includes/modules/Mcp/Mcp_Tools.php:1911
2102 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."
2103 2209 msgstr ""
2104 2210
2105 -#: includes/modules/Mcp/Mcp_Tools.php:2081
2106 -#: includes/modules/Mcp/Mcp_Tools.php:2121
2211 +#: includes/modules/Mcp/Mcp_Tools.php:2175
2212 +#: includes/modules/Mcp/Mcp_Tools.php:2215
2107 2213 msgid "The enabled argument is required."
2108 2214 msgstr ""
2109 2215
2110 -#: includes/modules/Mcp/Mcp_Tools.php:2085
2111 -#: includes/modules/Mcp/Mcp_Tools.php:2125
2216 +#: includes/modules/Mcp/Mcp_Tools.php:2179
2217 +#: includes/modules/Mcp/Mcp_Tools.php:2219
2112 2218 msgid "The enabled argument must be true or false."
2113 2219 msgstr ""
2114 2220
2115 -#: includes/modules/Mcp/Mcp_Tools.php:2139
2221 +#: includes/modules/Mcp/Mcp_Tools.php:2233
2116 2222 msgid "The action argument must be \"list\" or \"clear\"."
2117 2223 msgstr ""
2118 2224
2119 -#: includes/modules/Mcp/Mcp_Tools.php:2178
2225 +#: includes/modules/Mcp/Mcp_Tools.php:2272
2120 2226 msgid "External scores are not available on this site."
2121 2227 msgstr ""
2122 2228
2123 -#: includes/modules/Mcp/Mcp_Tools.php:2259
2229 +#: includes/modules/Mcp/Mcp_Tools.php:2353
2124 2230 msgid "The url argument is required."
2125 2231 msgstr ""
2126 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 +
2127 2237 #: includes/modules/Migration/MigrationModule.php:30
2128 2238 msgid "Migration"
2129 2239 msgstr ""
2130 2240
2131 2241 #: includes/modules/Migration/MigrationModule.php:32
2132 -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."
2133 2243 msgstr ""
2134 2244
2135 2245 #. translators: %d: number of detected caching plugins.
2136 -#: includes/modules/Migration/MigrationModule.php:210
2246 +#: includes/modules/Migration/MigrationModule.php:211
2137 2247 #, php-format
2138 2248 msgid "Migrate to %1$s — %2$d caching plugin detected"
2139 2249 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2140 2250 msgstr[0] ""
@@ -2139,32 +2249,32 @@
2139 2249 msgid_plural "Migrate to %1$s — %2$d caching plugins detected"
2140 2250 msgstr[0] ""
2141 2251 msgstr[1] ""
2142 2252
2143 -#: includes/modules/Migration/MigrationModule.php:265
2253 +#: includes/modules/Migration/MigrationModule.php:266
2144 2254 msgid "Speed guarantee"
2145 2255 msgstr ""
2146 2256
2147 -#: includes/modules/Migration/MigrationModule.php:310
2257 +#: includes/modules/Migration/MigrationModule.php:311
2148 2258 msgid "Dismiss this notice"
2149 2259 msgstr ""
2150 2260
2151 -#: includes/modules/Migration/MigrationModule.php:331
2261 +#: includes/modules/Migration/MigrationModule.php:332
2152 2262 msgid "Guaranteed faster load times — or we'll tune it for you, free."
2153 2263 msgstr ""
2154 2264
2155 -#: includes/modules/Migration/MigrationModule.php:332
2265 +#: includes/modules/Migration/MigrationModule.php:333
2156 2266 msgid "Faster load times, without configuring anything by hand."
2157 2267 msgstr ""
2158 2268
2159 2269 #. translators: %s: brand name, e.g. xSpeed Cache.
2160 -#: includes/modules/Migration/MigrationModule.php:345
2270 +#: includes/modules/Migration/MigrationModule.php:346
2161 2271 #, php-format
2162 2272 msgid "%s imports your settings in one click, then handles caching and optimization with AI-powered control."
2163 2273 msgstr ""
2164 2274
2165 2275 #. translators: 1: detected plugin name, 2: number of settings.
2166 -#: includes/modules/Migration/MigrationModule.php:355
2276 +#: includes/modules/Migration/MigrationModule.php:356
2167 2277 #, php-format
2168 2278 msgid "%1$s detected · %2$d setting ready to import"
2169 2279 msgid_plural "%1$s detected · %2$d settings ready to import"
2170 2280 msgstr[0] ""
@@ -2169,30 +2279,30 @@
2169 2279 msgid_plural "%1$s detected · %2$d settings ready to import"
2170 2280 msgstr[0] ""
2171 2281 msgstr[1] ""
2172 2282
2173 -#: includes/modules/Migration/MigrationModule.php:375
2283 +#: includes/modules/Migration/MigrationModule.php:376
2174 2284 msgid "Prefer we handle it? Book a call"
2175 2285 msgstr ""
2176 2286
2177 2287 #. translators: %s: brand name.
2178 -#: includes/modules/Migration/MigrationModule.php:383
2288 +#: includes/modules/Migration/MigrationModule.php:384
2179 2289 #, php-format
2180 2290 msgid "Migrate to %s"
2181 2291 msgstr ""
2182 2292
2183 2293 #. translators: %s: detected plugin name.
2184 -#: includes/modules/Migration/MigrationModule.php:399
2294 +#: includes/modules/Migration/MigrationModule.php:400
2185 2295 #, php-format
2186 2296 msgid "Migrating deactivates %s"
2187 2297 msgstr ""
2188 2298
2189 -#: includes/modules/Migration/MigrationModule.php:404
2299 +#: includes/modules/Migration/MigrationModule.php:405
2190 2300 msgid "View migration details"
2191 2301 msgstr ""
2192 2302
2193 2303 #. translators: %d: number of settings imported.
2194 -#: includes/modules/Migration/MigrationModule.php:422
2304 +#: includes/modules/Migration/MigrationModule.php:423
2195 2305 #, php-format
2196 2306 msgid "imports %d setting"
2197 2307 msgid_plural "imports %d settings"
2198 2308 msgstr[0] ""
@@ -2197,323 +2307,337 @@
2197 2307 msgid_plural "imports %d settings"
2198 2308 msgstr[0] ""
2199 2309 msgstr[1] ""
2200 2310
2201 -#: includes/modules/Migration/MigrationModule.php:428
2311 +#: includes/modules/Migration/MigrationModule.php:429
2202 2312 msgid "Migrate"
2203 2313 msgstr ""
2204 2314
2205 -#: includes/modules/Migration/MigrationModule.php:548
2206 -#: includes/modules/Minify/MinifyModule.php:35
2315 +#: includes/modules/Migration/MigrationModule.php:549
2316 +#: includes/modules/Minify/MinifyModule.php:36
2207 2317 msgid "Minify"
2208 2318 msgstr ""
2209 2319
2210 -#: includes/modules/Migration/MigrationModule.php:549
2320 +#: includes/modules/Migration/MigrationModule.php:550
2211 2321 msgid "Lazy Load"
2212 2322 msgstr ""
2213 2323
2214 -#: includes/modules/Migration/MigrationModule.php:550
2324 +#: includes/modules/Migration/MigrationModule.php:551
2215 2325 #: includes/modules/Preloader/PreloaderModule.php:32
2216 2326 msgid "Preloader"
2217 2327 msgstr ""
2218 2328
2219 -#: includes/modules/Migration/MigrationModule.php:552
2329 +#: includes/modules/Migration/MigrationModule.php:553
2220 2330 #: includes/modules/ObjectCache/ObjectCacheModule.php:32
2221 2331 msgid "Object Cache"
2222 2332 msgstr ""
2223 2333
2224 -#: includes/modules/Migration/MigrationModule.php:554
2334 +#: includes/modules/Migration/MigrationModule.php:555
2225 2335 msgid "Bloat Removal"
2226 2336 msgstr ""
2227 2337
2228 -#: includes/modules/Migration/MigrationModule.php:579
2338 +#: includes/modules/Migration/MigrationModule.php:580
2229 2339 msgid "You do not have permission to migrate settings."
2230 2340 msgstr ""
2231 2341
2232 -#: includes/modules/Migration/MigrationModule.php:585
2342 +#: includes/modules/Migration/MigrationModule.php:586
2233 2343 msgid "No source selected."
2234 2344 msgstr ""
2235 2345
2236 -#: includes/modules/Migration/MigrationModule.php:617
2346 +#: includes/modules/Migration/MigrationModule.php:618
2237 2347 msgid "it could not be enabled"
2238 2348 msgstr ""
2239 2349
2240 -#: includes/modules/Migration/MigrationModule.php:702
2350 +#: includes/modules/Migration/MigrationModule.php:703
2241 2351 msgid "Migrating…"
2242 2352 msgstr ""
2243 2353
2244 -#: includes/modules/Migration/MigrationModule.php:719
2354 +#: includes/modules/Migration/MigrationModule.php:720
2245 2355 msgid "Migration failed."
2246 2356 msgstr ""
2247 2357
2248 -#: includes/modules/Migration/MigrationModule.php:722
2358 +#: includes/modules/Migration/MigrationModule.php:723
2249 2359 msgid "the source plugin"
2250 2360 msgstr ""
2251 2361
2252 -#: includes/modules/Migration/MigrationModule.php:723
2362 +#: includes/modules/Migration/MigrationModule.php:724
2253 2363 msgid "Review imported settings"
2254 2364 msgstr ""
2255 2365
2256 -#: includes/modules/Migration/MigrationModule.php:734
2257 -#: includes/modules/Migration/MigrationModule.php:745
2258 -#: 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
2259 2369 msgid "settings are now running in xSpeed."
2260 2370 msgstr ""
2261 2371
2262 -#: includes/modules/Migration/MigrationModule.php:736
2263 -#: includes/modules/Migration/MigrationModule.php:746
2372 +#: includes/modules/Migration/MigrationModule.php:737
2373 +#: includes/modules/Migration/MigrationModule.php:747
2264 2374 msgid "It has been switched off, so the two page caches cannot conflict."
2265 2375 msgstr ""
2266 2376
2267 -#: includes/modules/Migration/MigrationModule.php:737
2377 +#: includes/modules/Migration/MigrationModule.php:738
2268 2378 msgid "It is still active — switch it off when you are ready."
2269 2379 msgstr ""
2270 2380
2271 -#: includes/modules/Migration/MigrationModule.php:738
2381 +#: includes/modules/Migration/MigrationModule.php:739
2272 2382 msgid "Skipped:"
2273 2383 msgstr ""
2274 2384
2275 -#: includes/modules/Migration/MigrationModule.php:754
2385 +#: includes/modules/Migration/MigrationModule.php:755
2276 2386 msgid "It is still active — running two page caches conflicts, so switch it off when you are ready."
2277 2387 msgstr ""
2278 2388
2279 -#: includes/modules/Migration/MigrationModule.php:763
2389 +#: includes/modules/Migration/MigrationModule.php:764
2280 2390 msgid "Migration could not finish."
2281 2391 msgstr ""
2282 2392
2283 -#: includes/modules/Migration/MigrationModule.php:764
2393 +#: includes/modules/Migration/MigrationModule.php:765
2284 2394 msgid "Nothing was changed — you can try again."
2285 2395 msgstr ""
2286 2396
2287 2397 #. translators: %s: source plugin label.
2288 -#: includes/modules/Migration/MigrationModule.php:997
2398 +#: includes/modules/Migration/MigrationModule.php:998
2289 2399 #, php-format
2290 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."
2291 2401 msgstr ""
2292 2402
2293 2403 #. translators: %s: source plugin label.
2294 -#: includes/modules/Migration/MigrationModule.php:1002
2404 +#: includes/modules/Migration/MigrationModule.php:1003
2295 2405 #, php-format
2296 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."
2297 2407 msgstr ""
2298 2408
2299 -#: includes/modules/Minify/MinifyModule.php:34
2409 +#: includes/modules/Minify/MinifyModule.php:35
2300 2410 msgid "CSS & JavaScript"
2301 2411 msgstr ""
2302 2412
2303 -#: includes/modules/Minify/MinifyModule.php:37
2304 -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."
2305 2415 msgstr ""
2306 2416
2307 -#: includes/modules/Minify/MinifyModule.php:50
2417 +#: includes/modules/Minify/MinifyModule.php:52
2308 2418 msgid "Minify HTML"
2309 2419 msgstr ""
2310 2420
2311 -#: includes/modules/Minify/MinifyModule.php:55
2312 -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."
2313 2423 msgstr ""
2314 2424
2315 -#: includes/modules/Minify/MinifyModule.php:60
2425 +#: includes/modules/Minify/MinifyModule.php:62
2316 2426 msgid "Minify CSS"
2317 2427 msgstr ""
2318 2428
2319 -#: includes/modules/Minify/MinifyModule.php:61
2320 -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."
2321 2431 msgstr ""
2322 2432
2323 -#: includes/modules/Minify/MinifyModule.php:66
2433 +#: includes/modules/Minify/MinifyModule.php:68
2324 2434 msgid "Minify JavaScript"
2325 2435 msgstr ""
2326 2436
2327 -#: includes/modules/Minify/MinifyModule.php:67
2328 -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."
2329 2439 msgstr ""
2330 2440
2331 -#: includes/modules/Minify/MinifyModule.php:72
2441 +#: includes/modules/Minify/MinifyModule.php:74
2332 2442 msgid "Defer JavaScript"
2333 2443 msgstr ""
2334 2444
2335 -#: includes/modules/Minify/MinifyModule.php:73
2336 -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."
2337 2447 msgstr ""
2338 2448
2339 -#: includes/modules/Minify/MinifyModule.php:78
2340 -msgid "Delay JavaScript Until Interaction"
2449 +#: includes/modules/Minify/MinifyModule.php:80
2450 +msgid "Delay JavaScript"
2341 2451 msgstr ""
2342 2452
2343 -#: includes/modules/Minify/MinifyModule.php:79
2344 -msgid "Postpone script loading until the visitor scrolls, moves the mouse, taps, or presses a key. Drastically improves first paint on script-heavy pages; can break above-the-fold scripted UI — test before leaving on. Cookie-consent banners (CookieYes, Complianz, Cookiebot, NotificationX, Cookie Notice, Borlabs, Real Cookie Banner and others) are never delayed, so the visitor is still asked before anything else runs."
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."
2345 2455 msgstr ""
2346 2456
2347 -#: includes/modules/Minify/MinifyModule.php:84
2348 -msgid "Load CSS Asynchronously"
2457 +#: includes/modules/Minify/MinifyModule.php:86
2458 +msgid "Load CSS without blocking"
2349 2459 msgstr ""
2350 2460
2351 -#: includes/modules/Minify/MinifyModule.php:85
2352 -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."
2353 2463 msgstr ""
2354 2464
2355 -#: includes/modules/Minify/MinifyModule.php:90
2356 -msgid "Remove Asset Query Strings"
2465 +#: includes/modules/Minify/MinifyModule.php:92
2466 +msgid "Remove version from file URLs"
2357 2467 msgstr ""
2358 2468
2359 -#: includes/modules/Minify/MinifyModule.php:91
2360 -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."
2361 2471 msgstr ""
2362 2472
2363 -#: includes/modules/Minify/MinifyModule.php:97
2364 -msgid "Defer / Delay Exclusions"
2473 +#: includes/modules/Minify/MinifyModule.php:100
2474 +msgid "Scripts to never defer or delay"
2365 2475 msgstr ""
2366 2476
2367 -#: includes/modules/Minify/MinifyModule.php:98
2368 -msgid "Script handles OR URL substrings that skip defer + delay. Defaults exclude jQuery (most themes depend on it being available synchronously). Cookie-consent banners are always skipped and do not need listing here. 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."
2369 2479 msgstr ""
2370 2480
2371 -#: includes/modules/Minify/MinifyModule.php:112
2372 -msgid "Delay Only These Scripts"
2481 +#: includes/modules/Minify/MinifyModule.php:115
2482 +msgid "Delay only these scripts"
2373 2483 msgstr ""
2374 2484
2375 -#: includes/modules/Minify/MinifyModule.php:113
2376 -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."
2377 2487 msgstr ""
2378 2488
2379 -#: includes/modules/Minify/MinifyModule.php:121
2380 -msgid "Delay Failsafe Timeout (ms)"
2489 +#: includes/modules/Minify/MinifyModule.php:117
2490 +msgid "Consent banners and Delay JS"
2381 2491 msgstr ""
2382 2492
2383 -#: includes/modules/Minify/MinifyModule.php:123
2384 -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."
2385 2497 msgstr ""
2386 2498
2499 +#: includes/modules/Minify/MinifyModule.php:128
2500 +msgid "Smart delay"
2501 +msgstr ""
2502 +
2387 2503 #: includes/modules/Minify/MinifyModule.php:129
2388 -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."
2389 2505 msgstr ""
2390 2506
2391 -#: includes/modules/Minify/MinifyModule.php:130
2392 -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)"
2393 2509 msgstr ""
2394 2510
2395 -#: includes/modules/Minify/MinifyModule.php:135
2396 -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."
2397 2513 msgstr ""
2398 2514
2399 -#: includes/modules/Minify/MinifyModule.php:136
2400 -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"
2401 2517 msgstr ""
2402 2518
2403 -#: 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
2404 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."
2405 2533 msgstr ""
2406 2534
2407 -#: includes/modules/Minify/MinifyModule.php:274
2535 +#: includes/modules/Minify/MinifyModule.php:293
2408 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."
2409 2537 msgstr ""
2410 2538
2411 -#: includes/modules/Minify/MinifyModule.php:279
2539 +#: includes/modules/Minify/MinifyModule.php:298
2412 2540 msgid "HTML minification is on but currently paused"
2413 2541 msgstr ""
2414 2542
2415 2543 #: includes/modules/ObjectCache/ObjectCacheModule.php:34
2416 -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."
2417 2545 msgstr ""
2418 2546
2419 -#: includes/modules/ObjectCache/ObjectCacheModule.php:61
2420 -msgid "Backend"
2421 -msgstr ""
2422 -
2423 2547 #: includes/modules/ObjectCache/ObjectCacheModule.php:62
2424 -msgid "Which cache server you intend to use. Affects the generated wp-config snippet."
2548 +msgid "Cache server"
2425 2549 msgstr ""
2426 2550
2427 -#: includes/modules/ObjectCache/ObjectCacheModule.php:68
2428 -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."
2429 2553 msgstr ""
2430 2554
2431 2555 #: includes/modules/ObjectCache/ObjectCacheModule.php:69
2432 -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"
2433 2557 msgstr ""
2434 2558
2435 -#: includes/modules/ObjectCache/ObjectCacheModule.php:77
2436 -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."
2437 2561 msgstr ""
2438 2562
2439 -#: includes/modules/ObjectCache/ObjectCacheModule.php:78
2440 -msgid "Default Redis port is 6379."
2563 +#: includes/modules/ObjectCache/ObjectCacheModule.php:79
2564 +msgid "Redis port"
2441 2565 msgstr ""
2442 2566
2443 -#: includes/modules/ObjectCache/ObjectCacheModule.php:90
2444 -msgid "Redis User"
2567 +#: includes/modules/ObjectCache/ObjectCacheModule.php:80
2568 +msgid "The default Redis port is 6379."
2445 2569 msgstr ""
2446 2570
2447 -#: includes/modules/ObjectCache/ObjectCacheModule.php:91
2448 -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"
2449 2573 msgstr ""
2450 2574
2451 -#: includes/modules/ObjectCache/ObjectCacheModule.php:98
2452 -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."
2453 2577 msgstr ""
2454 2578
2455 -#: includes/modules/ObjectCache/ObjectCacheModule.php:99
2456 -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."
2457 2581 msgstr ""
2458 2582
2459 -#: includes/modules/ObjectCache/ObjectCacheModule.php:107
2460 -msgid "Redis Database"
2583 +#: includes/modules/ObjectCache/ObjectCacheModule.php:113
2584 +msgid "Redis database"
2461 2585 msgstr ""
2462 2586
2463 -#: includes/modules/ObjectCache/ObjectCacheModule.php:108
2464 -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."
2465 2589 msgstr ""
2466 2590
2467 -#: includes/modules/ObjectCache/ObjectCacheModule.php:135
2468 -msgid "Memcached Host"
2591 +#: includes/modules/ObjectCache/ObjectCacheModule.php:143
2592 +msgid "Memcached host"
2469 2593 msgstr ""
2470 2594
2471 -#: includes/modules/ObjectCache/ObjectCacheModule.php:136
2472 -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."
2473 2597 msgstr ""
2474 2598
2475 -#: includes/modules/ObjectCache/ObjectCacheModule.php:157
2476 -msgid "Memcached Port"
2599 +#: includes/modules/ObjectCache/ObjectCacheModule.php:166
2600 +msgid "Memcached port"
2477 2601 msgstr ""
2478 2602
2479 -#: includes/modules/ObjectCache/ObjectCacheModule.php:158
2480 -msgid "Default Memcached port is 11211."
2603 +#: includes/modules/ObjectCache/ObjectCacheModule.php:167
2604 +msgid "The default Memcached port is 11211."
2481 2605 msgstr ""
2482 2606
2483 -#: includes/modules/ObjectCache/ObjectCacheModule.php:184
2484 -msgid "Cache Key Prefix"
2607 +#: includes/modules/ObjectCache/ObjectCacheModule.php:195
2608 +msgid "Cache key prefix"
2485 2609 msgstr ""
2486 2610
2487 -#: includes/modules/ObjectCache/ObjectCacheModule.php:185
2488 -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."
2489 2613 msgstr ""
2490 2614
2491 -#: includes/modules/ObjectCache/ObjectCacheModule.php:193
2492 -msgid "Connection Timeout (seconds)"
2615 +#: includes/modules/ObjectCache/ObjectCacheModule.php:206
2616 +msgid "Connection timeout (seconds)"
2493 2617 msgstr ""
2494 2618
2495 -#: includes/modules/ObjectCache/ObjectCacheModule.php:195
2496 -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."
2497 2621 msgstr ""
2498 2622
2499 -#: includes/modules/ObjectCache/ObjectCacheModule.php:201
2500 -msgid "Persistent Connections"
2623 +#: includes/modules/ObjectCache/ObjectCacheModule.php:215
2624 +msgid "Persistent connections"
2501 2625 msgstr ""
2502 2626
2503 -#: includes/modules/ObjectCache/ObjectCacheModule.php:202
2504 -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."
2505 2629 msgstr ""
2506 2630
2507 -#: includes/modules/ObjectCache/ObjectCacheModule.php:998
2631 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1013
2508 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."
2509 2633 msgstr ""
2510 2634
2511 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1001
2635 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1016
2512 2636 msgid "The drop-in is installed but is not storing anything, so this counts as off. Check the connection settings below."
2513 2637 msgstr ""
2514 2638
2515 -#: includes/modules/ObjectCache/ObjectCacheModule.php:1003
2639 +#: includes/modules/ObjectCache/ObjectCacheModule.php:1018
2516 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."
2517 2641 msgstr ""
2518 2642
2519 2643 #: includes/modules/Preloader/PreloaderModule.php:33
@@ -2520,70 +2644,66 @@
2520 2644 msgid "Crawl Now"
2521 2645 msgstr ""
2522 2646
2523 2647 #: includes/modules/Preloader/PreloaderModule.php:35
2524 -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."
2525 2649 msgstr ""
2526 2650
2527 -#: includes/modules/Preloader/PreloaderModule.php:61
2651 +#: includes/modules/Preloader/PreloaderModule.php:62
2528 2652 msgid "Your server is blocking the xSpeed cache warmer"
2529 2653 msgstr ""
2530 2654
2531 2655 #. translators: 1: HTTP status code, 2: the user-agent xSpeed sends.
2532 -#: includes/modules/Preloader/PreloaderModule.php:64
2656 +#: includes/modules/Preloader/PreloaderModule.php:65
2533 2657 #, php-format
2534 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."
2535 2659 msgstr ""
2536 2660
2537 -#: includes/modules/Preloader/PreloaderModule.php:77
2538 -msgid "Enable Preloader"
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."
2539 2663 msgstr ""
2540 2664
2541 -#: includes/modules/Preloader/PreloaderModule.php:78
2542 -msgid "When on, xSpeed crawls the sitemap on the schedule below and warms the page cache."
2543 -msgstr ""
2544 -
2545 -#: includes/modules/Preloader/PreloaderModule.php:90
2665 +#: includes/modules/Preloader/PreloaderModule.php:91
2546 2666 msgid "Schedule"
2547 2667 msgstr ""
2548 2668
2549 -#: includes/modules/Preloader/PreloaderModule.php:91
2550 -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."
2551 2671 msgstr ""
2552 2672
2553 -#: includes/modules/Preloader/PreloaderModule.php:99
2554 -msgid "Batch Size"
2673 +#: includes/modules/Preloader/PreloaderModule.php:100
2674 +msgid "Pages per run"
2555 2675 msgstr ""
2556 2676
2557 -#: includes/modules/Preloader/PreloaderModule.php:100
2558 -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."
2559 2679 msgstr ""
2560 2680
2561 -#: includes/modules/Preloader/PreloaderModule.php:106
2681 +#: includes/modules/Preloader/PreloaderModule.php:108
2562 2682 msgid "Sitemap URL (optional)"
2563 2683 msgstr ""
2564 2684
2565 -#: includes/modules/Preloader/PreloaderModule.php:107
2566 -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."
2567 2687 msgstr ""
2568 2688
2569 -#: includes/modules/Preloader/PreloaderModule.php:113
2689 +#: includes/modules/Preloader/PreloaderModule.php:115
2570 2690 msgid "Warm new content immediately"
2571 2691 msgstr ""
2572 2692
2573 -#: includes/modules/Preloader/PreloaderModule.php:114
2574 -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."
2575 2695 msgstr ""
2576 2696
2577 -#: includes/modules/Preloader/PreloaderModule.php:120
2697 +#: includes/modules/Preloader/PreloaderModule.php:122
2578 2698 msgid "Re-warm after comments"
2579 2699 msgstr ""
2580 2700
2581 -#: includes/modules/Preloader/PreloaderModule.php:121
2582 -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."
2583 2703 msgstr ""
2584 2704
2585 -#: includes/modules/Preloader/PreloaderModule.php:297
2705 +#: includes/modules/Preloader/PreloaderModule.php:299
2586 2706 msgid "Enable the preloader before starting a crawl."
2587 2707 msgstr ""
2588 2708
2589 2709 #: includes/modules/Privacy/PrivacyModule.php:47
@@ -2590,17 +2710,17 @@
2590 2710 msgid "Privacy & usage data"
2591 2711 msgstr ""
2592 2712
2593 2713 #: includes/modules/Privacy/PrivacyModule.php:49
2594 -msgid "Control the usage analytics you were asked about in the setup wizard."
2714 +msgid "Change the usage data choice you made in the setup wizard."
2595 2715 msgstr ""
2596 2716
2597 -#: includes/modules/Privacy/PrivacyModule.php:58
2717 +#: includes/modules/Privacy/PrivacyModule.php:59
2598 2718 msgid "Share usage data"
2599 2719 msgstr ""
2600 2720
2601 -#: includes/modules/Privacy/PrivacyModule.php:59
2602 -msgid "Share a few basics — WordPress & PHP version, active theme & plugins, server type, and which features you enable. Never page content. Turning this off stops all collection and clears the scheduled send."
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."
2603 2723 msgstr ""
2604 2724
2605 2725 #: includes/modules/ResourceHints/ResourceHintsModule.php:60
2606 2726 msgid "Resource Hints"
@@ -2610,143 +2730,142 @@
2610 2730 msgid "Hints"
2611 2731 msgstr ""
2612 2732
2613 2733 #: includes/modules/ResourceHints/ResourceHintsModule.php:63
2614 -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."
2615 2735 msgstr ""
2616 2736
2617 -#: includes/modules/ResourceHints/ResourceHintsModule.php:77
2618 -msgid "Enable Resource Hints"
2619 -msgstr ""
2620 -
2621 2737 #: includes/modules/ResourceHints/ResourceHintsModule.php:78
2622 -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"
2623 2739 msgstr ""
2624 2740
2625 -#: includes/modules/ResourceHints/ResourceHintsModule.php:83
2626 -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."
2627 2743 msgstr ""
2628 2744
2629 2745 #: includes/modules/ResourceHints/ResourceHintsModule.php:84
2630 -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"
2631 2747 msgstr ""
2632 2748
2633 -#: includes/modules/ResourceHints/ResourceHintsModule.php:91
2634 -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."
2635 2751 msgstr ""
2636 2752
2637 -#: includes/modules/ResourceHints/ResourceHintsModule.php:92
2638 -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"
2639 2755 msgstr ""
2640 2756
2641 -#: includes/modules/ResourceHints/ResourceHintsModule.php:98
2642 -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."
2643 2759 msgstr ""
2644 2760
2645 -#: includes/modules/ResourceHints/ResourceHintsModule.php:99
2646 -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"
2647 2763 msgstr ""
2648 2764
2649 -#: includes/modules/ResourceHints/ResourceHintsModule.php:105
2650 -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."
2651 2767 msgstr ""
2652 2768
2653 -#: includes/modules/ResourceHints/ResourceHintsModule.php:106
2654 -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"
2655 2771 msgstr ""
2656 2772
2657 2773 #: includes/modules/ResourceHints/ResourceHintsModule.php:111
2658 -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."
2659 2775 msgstr ""
2660 2776
2661 -#: includes/modules/ResourceHints/ResourceHintsModule.php:112
2662 -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"
2663 2779 msgstr ""
2664 2780
2665 2781 #: includes/modules/ResourceHints/ResourceHintsModule.php:118
2666 -msgid "Extra Preconnect Hosts"
2782 +msgid "When the page uses Google Fonts, the browser connects to Google's servers early, so fonts arrive sooner."
2667 2783 msgstr ""
2668 2784
2669 -#: includes/modules/ResourceHints/ResourceHintsModule.php:119
2670 -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"
2671 2787 msgstr ""
2672 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 +
2673 2793 #: includes/modules/Score/ScoreModule.php:58
2674 2794 msgid "Speed Test"
2675 2795 msgstr ""
2676 2796
2677 2797 #: includes/modules/Score/ScoreModule.php:64
2678 -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."
2679 2799 msgstr ""
2680 2800
2681 -#: includes/modules/Score/ScoreModule.php:77
2801 +#: includes/modules/Score/ScoreModule.php:78
2682 2802 msgid "Allow speed tests"
2683 2803 msgstr ""
2684 2804
2685 -#: includes/modules/Score/ScoreModule.php:83
2686 -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."
2687 2807 msgstr ""
2688 2808
2689 -#: includes/modules/Score/ScoreModule.php:98
2690 -#: assets/admin.js
2691 -msgid "Provider"
2809 +#: includes/modules/Score/ScoreModule.php:99
2810 +msgid "Test provider"
2692 2811 msgstr ""
2693 2812
2694 -#: includes/modules/Score/ScoreModule.php:99
2695 -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."
2696 2815 msgstr ""
2697 2816
2698 -#: includes/modules/Score/ScoreModule.php:104
2817 +#: includes/modules/Score/ScoreModule.php:105
2699 2818 msgid "PageSpeed API key (optional)"
2700 2819 msgstr ""
2701 2820
2702 -#: includes/modules/Score/ScoreModule.php:105
2703 -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."
2704 2823 msgstr ""
2705 2824
2706 -#: includes/modules/Score/ScoreModule.php:117
2825 +#: includes/modules/Score/ScoreModule.php:119
2707 2826 msgid "GTmetrix API key"
2708 2827 msgstr ""
2709 2828
2710 -#: includes/modules/Score/ScoreModule.php:118
2711 -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."
2712 2831 msgstr ""
2713 2832
2714 -#: includes/modules/Score/ScoreModule.php:127
2833 +#: includes/modules/Score/ScoreModule.php:129
2715 2834 msgid "URL to test"
2716 2835 msgstr ""
2717 2836
2718 -#: includes/modules/Score/ScoreModule.php:128
2837 +#: includes/modules/Score/ScoreModule.php:130
2719 2838 msgid "Leave empty to test your home page."
2720 2839 msgstr ""
2721 2840
2722 -#: includes/modules/Score/ScoreModule.php:134
2723 -msgid "Strategy"
2841 +#: includes/modules/Score/ScoreModule.php:136
2842 +msgid "Device"
2724 2843 msgstr ""
2725 2844
2726 -#: includes/modules/Score/ScoreModule.php:135
2727 -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."
2728 2847 msgstr ""
2729 2848
2730 -#: includes/modules/Score/ScoreModule.php:334
2731 -#: includes/modules/Score/ScoreModule.php:380
2849 +#: includes/modules/Score/ScoreModule.php:336
2850 +#: includes/modules/Score/ScoreModule.php:382
2732 2851 msgid "Hub-run speed tests are not enabled on this site."
2733 2852 msgstr ""
2734 2853
2735 -#: includes/modules/Score/ScoreModule.php:443
2854 +#: includes/modules/Score/ScoreModule.php:445
2736 2855 msgid "No URL to test."
2737 2856 msgstr ""
2738 2857
2739 -#: includes/modules/Score/ScoreModule.php:540
2858 +#: includes/modules/Score/ScoreModule.php:542
2740 2859 msgid "xSpeed Hub accepted the test but returned no run id. Please try again."
2741 2860 msgstr ""
2742 2861
2743 -#: includes/modules/Score/ScoreModule.php:619
2862 +#: includes/modules/Score/ScoreModule.php:621
2744 2863 msgid "The audit did not produce a result."
2745 2864 msgstr ""
2746 2865
2747 2866 #. translators: %s: module slug.
2748 -#: includes/modules/Settings/SettingsModule.php:320
2867 +#: includes/modules/Settings/SettingsModule.php:324
2749 2868 #, php-format
2750 2869 msgid "Refused a CLI settings write to the Pro module \"%s\" — no valid license."
2751 2870 msgstr ""
2752 2871
@@ -2757,14 +2876,14 @@
2757 2876 #: includes/modules/Support/SupportModule.php:30
2758 2877 msgid "Open a support ticket with a one-click system snapshot already attached."
2759 2878 msgstr ""
2760 2879
2761 -#: includes/modules/Support/SupportModule.php:40
2880 +#: includes/modules/Support/SupportModule.php:41
2762 2881 msgid "Support URL"
2763 2882 msgstr ""
2764 2883
2765 -#: includes/modules/Support/SupportModule.php:41
2766 -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."
2767 2886 msgstr ""
2768 2887
2769 2888 #: includes/modules/TurboRender/TurboRenderModule.php:89
2770 2889 msgid "Turbo Render"
@@ -2770,35 +2889,43 @@
2770 2889 msgid "Turbo Render"
2771 2890 msgstr ""
2772 2891
2773 2892 #: includes/modules/TurboRender/TurboRenderModule.php:91
2774 -msgid "Paints the top of your page first and brings the rest in as visitors scroll. Every section still loads in full."
2893 +msgid "Shows the top of each page first and the rest as visitors scroll."
2775 2894 msgstr ""
2776 2895
2777 -#: includes/modules/TurboRender/TurboRenderModule.php:100
2896 +#: includes/modules/TurboRender/TurboRenderModule.php:101
2778 2897 msgid "Render as visitors scroll"
2779 2898 msgstr ""
2780 2899
2781 -#: includes/modules/TurboRender/TurboRenderModule.php:101
2782 -msgid "Lets the browser spend its first moments on what visitors actually see, then render the lower sections just before they scroll into view. The content of your page is unchanged — it simply arrives in a smarter order."
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."
2783 2902 msgstr ""
2784 2903
2785 -#: includes/modules/TurboRender/TurboRenderModule.php:108
2904 +#: includes/modules/TurboRender/TurboRenderModule.php:109
2786 2905 msgid "Sections to render immediately"
2787 2906 msgstr ""
2788 2907
2789 -#: includes/modules/TurboRender/TurboRenderModule.php:109
2790 -msgid "How many sections at the top of the page are rendered right away, before any deferring begins. The default of 2 suits most layouts. Increase it if a section near the top of your page appears a moment late."
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."
2791 2910 msgstr ""
2792 2911
2793 -#: includes/modules/TurboRender/TurboRenderModule.php:114
2912 +#: includes/modules/TurboRender/TurboRenderModule.php:116
2794 2913 msgid "Section classes"
2795 2914 msgstr ""
2796 2915
2797 -#: includes/modules/TurboRender/TurboRenderModule.php:115
2798 -msgid "Tells xSpeed which parts of your page count as sections. The defaults cover Elementor, Divi, Bricks, Oxygen, and Beaver Builder — and when none of them match, xSpeed falls back to your page's own top-level sections automatically. Add a class here only if you want to target something specific."
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."
2799 2918 msgstr ""
2800 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 +
2801 2928 #: xspeed.php:220
2802 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."
2803 2930 msgstr ""
2804 2931
@@ -2845,9 +2972,9 @@
2845 2972 #: assets/admin.js
2846 2973 msgid "7 days"
2847 2974 msgstr ""
2848 2975
2849 -#. Source: src/components/score/ScanCard.tsx:185
2976 +#. Source: src/components/score/ScanCard.tsx:197
2850 2977 #: assets/admin.js
2851 2978 msgid "A full graded report: Core Web Vitals, caching, assets and platform."
2852 2979 msgstr ""
2853 2980
@@ -2855,9 +2982,9 @@
2855 2982 #: assets/admin.js
2856 2983 msgid "A key is saved. Type to replace it; use ✕ to remove it."
2857 2984 msgstr ""
2858 2985
2859 -#. Source: src/components/cache/CacheHero.tsx:238
2986 +#. Source: src/components/cache/CacheHero.tsx:245
2860 2987 #: assets/admin.js
2861 2988 msgid "Absorbed"
2862 2989 msgstr ""
2863 2990
@@ -2927,9 +3054,9 @@
2927 3054 #: assets/admin.js
2928 3055 msgid "Also cleared: %s."
2929 3056 msgstr ""
2930 3057
2931 -#. Source: src/components/overview/Recommendations.tsx:181
3058 +#. Source: src/components/overview/Recommendations.tsx:184
2932 3059 #: assets/admin.js
2933 3060 msgid "Also worth a look"
2934 3061 msgstr ""
2935 3062
@@ -2973,8 +3100,13 @@
2973 3100 #: assets/admin.js
2974 3101 msgid "Apply"
2975 3102 msgstr ""
2976 3103
3104 +#. Source: src/components/score/ScanCard.tsx:84
3105 +#: assets/admin.js
3106 +msgid "Assets"
3107 +msgstr ""
3108 +
2977 3109 #. Source: src/upsell/ProAudit.tsx:46
2978 3110 #: assets/admin.js
2979 3111 msgid "Audit failed"
2980 3112 msgstr ""
@@ -2988,9 +3120,9 @@
2988 3120 #: assets/admin.js
2989 3121 msgid "Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total."
2990 3122 msgstr ""
2991 3123
2992 -#. Source: src/components/overview/MetricGrid.tsx:47
3124 +#. Source: src/components/overview/MetricGrid.tsx:57
2993 3125 #: assets/admin.js
2994 3126 msgid "Avg saved"
2995 3127 msgstr ""
2996 3128
@@ -3013,21 +3145,21 @@
3013 3145 #: assets/admin.js
3014 3146 msgid "Benchmark: cached vs uncached (ms)"
3015 3147 msgstr ""
3016 3148
3017 -#. Source: src/components/overview/Recommendations.tsx:230
3149 +#. Source: src/components/overview/Recommendations.tsx:233
3018 3150 #: assets/admin.js
3019 3151 msgid "Book"
3020 3152 msgstr ""
3021 3153
3022 -#. Source: src/components/overview/Recommendations.tsx:221
3154 +#. Source: src/components/overview/Recommendations.tsx:224
3023 3155 #: assets/admin.js
3024 3156 msgid "Book a free setup review with our team."
3025 3157 msgstr ""
3026 3158
3027 -#. Source: src/components/cache/CacheHero.tsx:242
3159 +#. Source: src/components/cache/CacheHero.tsx:249
3028 3160 #: assets/admin.js
3029 -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."
3030 3162 msgstr ""
3031 3163
3032 3164 #. Source: src/components/TopBar.tsx:81
3033 3165 #: assets/admin.js
@@ -3128,9 +3260,9 @@
3128 3260 msgid "Cache purged"
3129 3261 msgstr ""
3130 3262
3131 3263 #. Source: src/components/health/HealthHero.tsx:30
3132 -#. Source: src/components/overview/MetricGrid.tsx:46
3264 +#. Source: src/components/overview/MetricGrid.tsx:56
3133 3265 #: assets/admin.js
3134 3266 msgid "Cache size"
3135 3267 msgstr ""
3136 3268
@@ -3150,9 +3282,9 @@
3150 3282 msgstr ""
3151 3283
3152 3284 #. Source: src/components/cache/StatDrilldown.tsx:140
3153 3285 #. Source: src/components/health/HealthHero.tsx:29
3154 -#. Source: src/components/overview/MetricGrid.tsx:45
3286 +#. Source: src/components/overview/MetricGrid.tsx:55
3155 3287 #: assets/admin.js
3156 3288 msgid "Cached pages"
3157 3289 msgstr ""
3158 3290
@@ -3344,9 +3476,9 @@
3344 3476 #: assets/admin.js
3345 3477 msgid "Connected to xSpeed Hub"
3346 3478 msgstr ""
3347 3479
3348 -#. Source: src/components/score/ScanCard.tsx:221
3480 +#. Source: src/components/score/ScanCard.tsx:233
3349 3481 #: assets/admin.js
3350 3482 msgid "Connected to xSpeed Hub — this report stays unlisted, not published under your domain."
3351 3483 msgstr ""
3352 3484
@@ -3374,8 +3506,13 @@
3374 3506 #: assets/admin.js
3375 3507 msgid "Control xSpeed with AI"
3376 3508 msgstr ""
3377 3509
3510 +#. Source: src/components/score/ScanCard.tsx:80
3511 +#: assets/admin.js
3512 +msgid "Core Web Vitals"
3513 +msgstr ""
3514 +
3378 3515 #. Source: src/components/overview/McpSessionDemo.tsx:230
3379 3516 #: assets/admin.js
3380 3517 msgid "Core Web Vitals checked"
3381 3518 msgstr ""
@@ -3410,9 +3547,9 @@
3410 3547 msgid "desktop"
3411 3548 msgstr ""
3412 3549
3413 3550 #. Source: src/components/overview/ScoreCard.tsx:90
3414 -#. Source: src/components/score/ScanCard.tsx:281
3551 +#. Source: src/components/score/ScanCard.tsx:293
3415 3552 #: assets/admin.js
3416 3553 msgid "Desktop"
3417 3554 msgstr ""
3418 3555
@@ -3517,9 +3654,9 @@
3517 3654 #: assets/admin.js
3518 3655 msgid "from wp-config.php"
3519 3656 msgstr ""
3520 3657
3521 -#. Source: src/components/score/ScanCard.tsx:358
3658 +#. Source: src/components/score/ScanCard.tsx:370
3522 3659 #: assets/admin.js
3523 3660 msgid "Full report"
3524 3661 msgstr ""
3525 3662
@@ -3543,10 +3680,10 @@
3543 3680 #: assets/admin.js
3544 3681 msgid "good"
3545 3682 msgstr ""
3546 3683
3547 -#. Source: src/components/score/ScanCard.tsx:261
3548 -#. Source: src/components/score/ScanCard.tsx:302
3684 +#. Source: src/components/score/ScanCard.tsx:273
3685 +#. Source: src/components/score/ScanCard.tsx:314
3549 3686 #: assets/admin.js
3550 3687 msgid "Grade"
3551 3688 msgstr ""
3552 3689
@@ -3580,10 +3717,10 @@
3580 3717 msgid "Hide"
3581 3718 msgstr ""
3582 3719
3583 3720 #. Source: src/components/cache/TrendCharts.tsx:125
3584 -#. Source: src/components/health/HealthHero.tsx:37
3585 -#. Source: src/components/overview/MetricGrid.tsx:44
3721 +#. Source: src/components/health/HealthHero.tsx:42
3722 +#. Source: src/components/overview/MetricGrid.tsx:45
3586 3723 #: assets/admin.js
3587 3724 msgid "Hit ratio"
3588 3725 msgstr ""
3589 3726
@@ -3596,8 +3733,13 @@
3596 3733 #: assets/admin.js
3597 3734 msgid "Hit Ratio · 24h · origin"
3598 3735 msgstr ""
3599 3736
3737 +#. Source: src/components/health/HealthHero.tsx:42
3738 +#: assets/admin.js
3739 +msgid "Hit ratio (PHP-served only)"
3740 +msgstr ""
3741 +
3600 3742 #. Source: src/components/cache/TrendCharts.tsx:83
3601 3743 #: assets/admin.js
3602 3744 msgid "Hit ratio and benchmark history, with your settings changes marked."
3603 3745 msgstr ""
@@ -3666,14 +3808,14 @@
3666 3808 #: assets/admin.js
3667 3809 msgid "Just say what you want"
3668 3810 msgstr ""
3669 3811
3670 -#. Source: src/components/overview/MetricGrid.tsx:51
3812 +#. Source: src/components/overview/MetricGrid.tsx:61
3671 3813 #: assets/admin.js
3672 3814 msgid "Key metrics"
3673 3815 msgstr ""
3674 3816
3675 -#. Source: src/components/overview/MetricGrid.tsx:44
3817 +#. Source: src/components/overview/MetricGrid.tsx:53
3676 3818 #: assets/admin.js
3677 3819 msgid "last 24 hours"
3678 3820 msgstr ""
3679 3821
@@ -3712,13 +3854,18 @@
3712 3854 #: assets/admin.js
3713 3855 msgid "Lighthouse performance, from your latest xSpeed Scan."
3714 3856 msgstr ""
3715 3857
3716 -#. Source: src/components/score/ScanCard.tsx:284
3858 +#. Source: src/components/score/ScanCard.tsx:296
3717 3859 #: assets/admin.js
3718 3860 msgid "Lighthouse performance, out of 100"
3719 3861 msgstr ""
3720 3862
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 +
3721 3868 #. Source: src/App.tsx:456
3722 3869 #. Source: src/components/GroupLanding.tsx:67
3723 3870 #. Source: src/components/LogsView.tsx:35
3724 3871 #: assets/admin.js
@@ -3792,15 +3939,15 @@
3792 3939 msgid "Minify, compress, lazy-load, fonts and hints."
3793 3940 msgstr ""
3794 3941
3795 3942 #. Source: src/components/overview/ScoreCard.tsx:185
3796 -#. Source: src/components/score/ScanCard.tsx:294
3943 +#. Source: src/components/score/ScanCard.tsx:306
3797 3944 #: assets/admin.js
3798 3945 msgid "mobile"
3799 3946 msgstr ""
3800 3947
3801 3948 #. Source: src/components/overview/ScoreCard.tsx:91
3802 -#. Source: src/components/score/ScanCard.tsx:281
3949 +#. Source: src/components/score/ScanCard.tsx:293
3803 3950 #: assets/admin.js
3804 3951 msgid "Mobile"
3805 3952 msgstr ""
3806 3953
@@ -4006,9 +4153,9 @@
4006 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."
4007 4154 msgstr ""
4008 4155
4009 4156 #. Source: src/components/health/HealthHero.tsx:30
4010 -#. Source: src/components/overview/MetricGrid.tsx:46
4157 +#. Source: src/components/overview/MetricGrid.tsx:56
4011 4158 #: assets/admin.js
4012 4159 msgid "on disk"
4013 4160 msgstr ""
4014 4161
@@ -4097,9 +4244,9 @@
4097 4244 #: assets/admin.js
4098 4245 msgid "PageSpeed & Core Web Vitals"
4099 4246 msgstr ""
4100 4247
4101 -#. Source: src/components/score/ScanCard.tsx:314
4248 +#. Source: src/components/score/ScanCard.tsx:326
4102 4249 #: assets/admin.js
4103 4250 msgid "Partial scan — some checks could not run, so the score covers less than the full rubric."
4104 4251 msgstr ""
4105 4252
@@ -4117,9 +4264,9 @@
4117 4264 #: assets/admin.js
4118 4265 msgid "Paste this site’s URL + token into the"
4119 4266 msgstr ""
4120 4267
4121 -#. Source: src/components/overview/MetricGrid.tsx:47
4268 +#. Source: src/components/overview/MetricGrid.tsx:57
4122 4269 #: assets/admin.js
4123 4270 msgid "per page load"
4124 4271 msgstr ""
4125 4272
@@ -4140,8 +4287,13 @@
4140 4287 #: assets/admin.js
4141 4288 msgid "Performance score and Core Web Vitals."
4142 4289 msgstr ""
4143 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 +
4144 4296 #. Source: src/components/score/ScorePanel.tsx:713
4145 4297 #: assets/admin.js
4146 4298 msgid "Pick one more run to compare."
4147 4299 msgstr ""
@@ -4150,8 +4302,13 @@
4150 4302 #: assets/admin.js
4151 4303 msgid "Pick two runs to compare them."
4152 4304 msgstr ""
4153 4305
4306 +#. Source: src/components/score/ScanCard.tsx:86
4307 +#: assets/admin.js
4308 +msgid "Platform"
4309 +msgstr ""
4310 +
4154 4311 #. Source: src/components/cache/StatDrilldown.tsx:277
4155 4312 #: assets/admin.js
4156 4313 msgid "Precompressed copies on disk:"
4157 4314 msgstr ""
@@ -4249,10 +4406,15 @@
4249 4406 #: assets/admin.js
4250 4407 msgid "Profile JSON to import"
4251 4408 msgstr ""
4252 4409
4253 -#. Source: src/components/score/ScanCard.tsx:95
4410 +#. Source: src/components/score/ScorePanel.tsx:727
4254 4411 #: assets/admin.js
4412 +msgid "Provider"
4413 +msgstr ""
4414 +
4415 +#. Source: src/components/score/ScanCard.tsx:107
4416 +#: assets/admin.js
4255 4417 msgid "pts"
4256 4418 msgstr ""
4257 4419
4258 4420 #. Source: src/components/CommandPalette.tsx:58
@@ -4286,9 +4448,9 @@
4286 4448 #: assets/admin.js
4287 4449 msgid "Purge, benchmark, preload and tune settings by asking your AI"
4288 4450 msgstr ""
4289 4451
4290 -#. Source: src/components/score/ScanCard.tsx:329
4452 +#. Source: src/components/score/ScanCard.tsx:341
4291 4453 #: assets/admin.js
4292 4454 msgid "ranked by points recovered"
4293 4455 msgstr ""
4294 4456
@@ -4333,10 +4495,10 @@
4333 4495 #: assets/admin.js
4334 4496 msgid "Recent changes"
4335 4497 msgstr ""
4336 4498
4337 -#. Source: src/components/overview/Recommendations.tsx:116
4338 -#. Source: src/components/overview/Recommendations.tsx:120
4499 +#. Source: src/components/overview/Recommendations.tsx:119
4500 +#. Source: src/components/overview/Recommendations.tsx:123
4339 4501 #: assets/admin.js
4340 4502 msgid "Recommended for your site"
4341 4503 msgstr ""
4342 4504
@@ -4410,9 +4572,9 @@
4410 4572 msgid "Run a GTmetrix test on this site"
4411 4573 msgstr ""
4412 4574
4413 4575 #. Source: src/components/overview/ScoreCard.tsx:295
4414 -#. Source: src/components/score/ScanCard.tsx:197
4576 +#. Source: src/components/score/ScanCard.tsx:209
4415 4577 #: assets/admin.js
4416 4578 msgid "Run a scan"
4417 4579 msgstr ""
4418 4580
@@ -4480,14 +4642,14 @@
4480 4642 #: assets/admin.js
4481 4643 msgid "Saving changes…"
4482 4644 msgstr ""
4483 4645
4484 -#. Source: src/components/score/ScanCard.tsx:197
4646 +#. Source: src/components/score/ScanCard.tsx:209
4485 4647 #: assets/admin.js
4486 4648 msgid "Scan again"
4487 4649 msgstr ""
4488 4650
4489 -#. Source: src/components/score/ScanCard.tsx:197
4651 +#. Source: src/components/score/ScanCard.tsx:209
4490 4652 #: assets/admin.js
4491 4653 msgid "Scanning…"
4492 4654 msgstr ""
4493 4655
@@ -4538,13 +4700,18 @@
4538 4700 msgid "See how this site performs for real visitors."
4539 4701 msgstr ""
4540 4702
4541 4703 #. Source: src/components/health/HealthHero.tsx:29
4542 -#. Source: src/components/overview/MetricGrid.tsx:45
4704 +#. Source: src/components/overview/MetricGrid.tsx:55
4543 4705 #: assets/admin.js
4544 4706 msgid "served without PHP"
4545 4707 msgstr ""
4546 4708
4709 +#. Source: src/components/score/ScanCard.tsx:82
4710 +#: assets/admin.js
4711 +msgid "Server & caching"
4712 +msgstr ""
4713 +
4547 4714 #. Source: src/components/RewriteAlert.tsx:106
4548 4715 #: assets/admin.js
4549 4716 msgid "Server config missing — cache running on PHP fallback"
4550 4717 msgstr ""
@@ -4704,9 +4871,9 @@
4704 4871 #: assets/admin.js
4705 4872 msgid "This credential is defined in wp-config.php and cannot be changed here."
4706 4873 msgstr ""
4707 4874
4708 -#. Source: src/components/score/ScanCard.tsx:222
4875 +#. Source: src/components/score/ScanCard.tsx:234
4709 4876 #: assets/admin.js
4710 4877 msgid "This report will be publicly visible at xspeedcache.com, listed under your domain. Connect xSpeed Hub to keep your reports unlisted."
4711 4878 msgstr ""
4712 4879
@@ -4811,9 +4978,9 @@
4811 4978 #: assets/admin.js
4812 4979 msgid "Waiting for connection…"
4813 4980 msgstr ""
4814 4981
4815 -#. Source: src/components/overview/Recommendations.tsx:218
4982 +#. Source: src/components/overview/Recommendations.tsx:221
4816 4983 #: assets/admin.js
4817 4984 msgid "Want a hand?"
4818 4985 msgstr ""
4819 4986
@@ -4831,9 +4998,9 @@
4831 4998 #: assets/admin.js
4832 4999 msgid "What this adds"
4833 5000 msgstr ""
4834 5001
4835 -#. Source: src/components/score/ScanCard.tsx:327
5002 +#. Source: src/components/score/ScanCard.tsx:339
4836 5003 #: assets/admin.js
4837 5004 msgid "What to fix next"
4838 5005 msgstr ""
4839 5006
@@ -4908,17 +5075,17 @@
4908 5075 #: assets/admin.js
4909 5076 msgid "xSpeed Pro is installed — activate your license to unlock this module and every other Pro feature."
4910 5077 msgstr ""
4911 5078
4912 -#. Source: src/components/score/ScanCard.tsx:173
4913 -#. Source: src/components/score/ScanCard.tsx:183
4914 -#. 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
4915 5082 #. Source: src/components/score/ScorePanel.tsx:426
4916 5083 #: assets/admin.js
4917 5084 msgid "xSpeed Scan"
4918 5085 msgstr ""
4919 5086
4920 -#. Source: src/components/score/ScanCard.tsx:264
5087 +#. Source: src/components/score/ScanCard.tsx:276
4921 5088 #: assets/admin.js
4922 5089 msgid "xSpeed Scan, out of 100"
4923 5090 msgstr ""
4924 5091
@@ -4936,9 +5103,9 @@
4936 5103 #: assets/admin.js
4937 5104 msgid "You're all set"
4938 5105 msgstr ""
4939 5106
4940 -#. Source: src/components/overview/Recommendations.tsx:131
5107 +#. Source: src/components/overview/Recommendations.tsx:134
4941 5108 #: assets/admin.js
4942 5109 msgid "You're all set — no recommendations right now."
4943 5110 msgstr ""
4944 5111