| @@ -1,9 +1,9 @@ | ||
| 1 | 1 | # Copyright (C) 2026 WPDeveloper |
| 2 | 2 | # This file is distributed under the GPLv2 or later. |
| 3 | 3 | msgid "" |
| 4 | 4 | msgstr "" |
| 5 | -"Project-Id-Version: xSpeed Cache 1.3.0\n" | |
| 5 | +"Project-Id-Version: xSpeed Cache 1.3.4\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 <LL@li.org>\n" |
| 9 | 9 | "MIME-Version: 1.0\n" |
| @@ -8,9 +8,9 @@ | ||
| 8 | 8 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| 9 | 9 | "MIME-Version: 1.0\n" |
| 10 | 10 | "Content-Type: text/plain; charset=UTF-8\n" |
| 11 | 11 | "Content-Transfer-Encoding: 8bit\n" |
| 12 | -"POT-Creation-Date: 2026-09-13T15:28:39+00:00\n" | |
| 12 | +"POT-Creation-Date: 2026-09-20T11:23:49+00:00\n" | |
| 13 | 13 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 14 | 14 | "X-Generator: WP-CLI 2.12.0\n" |
| 15 | 15 | "X-Domain: xspeed\n" |
| 16 | 16 | |
| @@ -15,9 +15,9 @@ | ||
| 15 | 15 | "X-Domain: xspeed\n" |
| 16 | 16 | |
| 17 | 17 | #. Plugin Name of the plugin |
| 18 | 18 | #: xspeed.php |
| 19 | -#: includes/class-cache.php:7176 | |
| 19 | +#: includes/class-cache.php:8726 | |
| 20 | 20 | #: includes/class-deactivation-feedback.php:189 |
| 21 | 21 | msgid "xSpeed Cache" |
| 22 | 22 | msgstr "" |
| 23 | 23 | |
| @@ -37,9 +37,9 @@ | ||
| 37 | 37 | msgstr "" |
| 38 | 38 | |
| 39 | 39 | #: includes/class-admin.php:153 |
| 40 | 40 | #: includes/class-admin.php:243 |
| 41 | -#: includes/class-cache.php:7190 | |
| 41 | +#: includes/class-cache.php:8740 | |
| 42 | 42 | #: assets/admin.js |
| 43 | 43 | msgid "Settings" |
| 44 | 44 | msgstr "" |
| 45 | 45 | |
| @@ -129,185 +129,185 @@ | ||
| 129 | 129 | msgid "Clears this post and the pages that list it — the homepage, its archive and the neighbouring posts. The rest of the site keeps its cache." |
| 130 | 130 | msgstr "" |
| 131 | 131 | |
| 132 | 132 | #. translators: 1: cause of the purge, 2: URL or path, 3: number of files removed. |
| 133 | -#: includes/class-cache.php:2950 | |
| 133 | +#: includes/class-cache.php:4163 | |
| 134 | 134 | #, php-format |
| 135 | 135 | msgid "Purged one URL (%1$s) — %2$s, %3$d file(s) removed" |
| 136 | 136 | msgstr "" |
| 137 | 137 | |
| 138 | -#: includes/class-cache.php:3711 | |
| 138 | +#: includes/class-cache.php:5116 | |
| 139 | 139 | msgid "Purge All" |
| 140 | 140 | msgstr "" |
| 141 | 141 | |
| 142 | -#: includes/class-cache.php:3715 | |
| 142 | +#: includes/class-cache.php:5120 | |
| 143 | 143 | msgid "Purge Page / Static Cache" |
| 144 | 144 | msgstr "" |
| 145 | 145 | |
| 146 | -#: includes/class-cache.php:3719 | |
| 146 | +#: includes/class-cache.php:5124 | |
| 147 | 147 | msgid "Purge CSS / JS Cache" |
| 148 | 148 | msgstr "" |
| 149 | 149 | |
| 150 | -#: includes/class-cache.php:3723 | |
| 150 | +#: includes/class-cache.php:5128 | |
| 151 | 151 | msgid "Purge Object Cache" |
| 152 | 152 | msgstr "" |
| 153 | 153 | |
| 154 | -#: includes/class-cache.php:3727 | |
| 154 | +#: includes/class-cache.php:5132 | |
| 155 | 155 | msgid "Purge REST Cache" |
| 156 | 156 | msgstr "" |
| 157 | 157 | |
| 158 | 158 | #. translators: 1: what was purged, 2: cause of the purge. |
| 159 | -#: includes/class-cache.php:3885 | |
| 159 | +#: includes/class-cache.php:5379 | |
| 160 | 160 | #, php-format |
| 161 | 161 | msgid "Purged %1$s (%2$s)" |
| 162 | 162 | msgstr "" |
| 163 | 163 | |
| 164 | 164 | #. translators: 1: what was purged, 2: cause of the purge, 3: number of files removed. |
| 165 | -#: includes/class-cache.php:3891 | |
| 165 | +#: includes/class-cache.php:5385 | |
| 166 | 166 | #, php-format |
| 167 | 167 | msgid "Purged %1$s (%2$s) — %3$d file(s) removed" |
| 168 | 168 | msgstr "" |
| 169 | 169 | |
| 170 | -#: includes/class-cache.php:4112 | |
| 170 | +#: includes/class-cache.php:5606 | |
| 171 | 171 | msgid "advanced-cache.php cannot be read, so xSpeed cannot tell whose page cache is installed." |
| 172 | 172 | msgstr "" |
| 173 | 173 | |
| 174 | 174 | #. translators: %s: the page-caching plugin that owns advanced-cache.php. |
| 175 | -#: includes/class-cache.php:4119 | |
| 175 | +#: includes/class-cache.php:5613 | |
| 176 | 176 | #, php-format |
| 177 | 177 | msgid "%s is serving the page cache. Turn the xSpeed cache off and on again to take it over." |
| 178 | 178 | msgstr "" |
| 179 | 179 | |
| 180 | -#: includes/class-cache.php:4122 | |
| 180 | +#: includes/class-cache.php:5616 | |
| 181 | 181 | msgid "Another plugin is serving the page cache. Turn the xSpeed cache off and on again to take it over." |
| 182 | 182 | msgstr "" |
| 183 | 183 | |
| 184 | -#: includes/class-cache.php:4188 | |
| 184 | +#: includes/class-cache.php:5686 | |
| 185 | 185 | msgid "Could not lock page-cache ownership. Try again." |
| 186 | 186 | msgstr "" |
| 187 | 187 | |
| 188 | -#: includes/class-cache.php:4194 | |
| 188 | +#: includes/class-cache.php:5692 | |
| 189 | 189 | msgid "Page-cache ownership changed while xSpeed was checking it. Nothing was changed; try again." |
| 190 | 190 | msgstr "" |
| 191 | 191 | |
| 192 | 192 | #. translators: %s: the page-caching plugin that owns advanced-cache.php. |
| 193 | -#: includes/class-cache.php:4268 | |
| 193 | +#: includes/class-cache.php:5766 | |
| 194 | 194 | #, php-format |
| 195 | 195 | msgid "%s owns advanced-cache.php, so xSpeed left it alone. Enable the cache from the xSpeed dashboard to take it over." |
| 196 | 196 | msgstr "" |
| 197 | 197 | |
| 198 | -#: includes/class-cache.php:4271 | |
| 198 | +#: includes/class-cache.php:5769 | |
| 199 | 199 | msgid "Another plugin owns advanced-cache.php, so xSpeed left it alone. Enable the cache from the xSpeed dashboard to take it over." |
| 200 | 200 | msgstr "" |
| 201 | 201 | |
| 202 | -#: includes/class-cache.php:4301 | |
| 202 | +#: includes/class-cache.php:5799 | |
| 203 | 203 | msgid "Could not write wp-content/advanced-cache.php. Check filesystem permissions." |
| 204 | 204 | msgstr "" |
| 205 | 205 | |
| 206 | -#: includes/class-cache.php:4358 | |
| 206 | +#: includes/class-cache.php:5856 | |
| 207 | 207 | msgid "wp-config.php is not writable and already contains define( 'WP_CACHE', false ). Change that line to true — adding a second one would leave the cache off and block xSpeed from changing it again." |
| 208 | 208 | msgstr "" |
| 209 | 209 | |
| 210 | -#: includes/class-cache.php:4359 | |
| 210 | +#: includes/class-cache.php:5857 | |
| 211 | 211 | msgid "xSpeed could not verify the complete page-cache write, and wp-config.php is not writable. Its changes were rolled back." |
| 212 | 212 | msgstr "" |
| 213 | 213 | |
| 214 | -#: includes/class-cache.php:4361 | |
| 214 | +#: includes/class-cache.php:5859 | |
| 215 | 215 | msgid "xSpeed could not verify the complete page-cache write. Its changes were rolled back." |
| 216 | 216 | msgstr "" |
| 217 | 217 | |
| 218 | -#: includes/class-cache.php:4376 | |
| 218 | +#: includes/class-cache.php:5874 | |
| 219 | 219 | msgid "xSpeed could not save the page-cache setting. Its file changes were rolled back." |
| 220 | 220 | msgstr "" |
| 221 | 221 | |
| 222 | -#: includes/class-cache.php:4468 | |
| 222 | +#: includes/class-cache.php:5966 | |
| 223 | 223 | msgid "xSpeed could not safely remove its WP_CACHE setting. The cache remains enabled." |
| 224 | 224 | msgstr "" |
| 225 | 225 | |
| 226 | -#: includes/class-cache.php:4483 | |
| 226 | +#: includes/class-cache.php:5981 | |
| 227 | 227 | msgid "xSpeed could not remove its page-cache drop-in. The cache remains enabled." |
| 228 | 228 | msgstr "" |
| 229 | 229 | |
| 230 | -#: includes/class-cache.php:4484 | |
| 230 | +#: includes/class-cache.php:5982 | |
| 231 | 231 | msgid "xSpeed could not remove its page-cache drop-in, and could not put WP_CACHE back. The cache is not serving; check wp-config.php before changing the page cache again." |
| 232 | 232 | msgstr "" |
| 233 | 233 | |
| 234 | -#: includes/class-cache.php:4501 | |
| 234 | +#: includes/class-cache.php:5999 | |
| 235 | 235 | msgid "xSpeed could not remove its rewrite rules from .htaccess, which would keep serving cached pages. Remove the xSpeed block from .htaccess by hand before turning the page cache off." |
| 236 | 236 | msgstr "" |
| 237 | 237 | |
| 238 | -#: includes/class-cache.php:4519 | |
| 238 | +#: includes/class-cache.php:6017 | |
| 239 | 239 | msgid "xSpeed could not remove its rewrite rules from .htaccess, which would keep serving cached pages. The cache remains enabled." |
| 240 | 240 | msgstr "" |
| 241 | 241 | |
| 242 | -#: includes/class-cache.php:4520 | |
| 242 | +#: includes/class-cache.php:6018 | |
| 243 | 243 | msgid "xSpeed could not remove its rewrite rules from .htaccess, and could not restore the drop-in it had just removed. The cache is not serving, and the site may still return stale cached pages until the xSpeed block is removed from .htaccess by hand." |
| 244 | 244 | msgstr "" |
| 245 | 245 | |
| 246 | -#: includes/class-cache.php:4531 | |
| 246 | +#: includes/class-cache.php:6029 | |
| 247 | 247 | msgid "xSpeed could not save the disabled state." |
| 248 | 248 | msgstr "" |
| 249 | 249 | |
| 250 | -#: includes/class-cache.php:4535 | |
| 250 | +#: includes/class-cache.php:6033 | |
| 251 | 251 | msgid "xSpeed could not save the disabled state. The page cache was restored." |
| 252 | 252 | msgstr "" |
| 253 | 253 | |
| 254 | 254 | #. translators: 1: the refusal reason, 2: a page-caching plugin's name. |
| 255 | -#: includes/class-cache.php:6682 | |
| 255 | +#: includes/class-cache.php:8218 | |
| 256 | 256 | #, php-format |
| 257 | 257 | msgid "%1$s %2$s is also active on this site — deactivate its page cache before enabling xSpeed." |
| 258 | 258 | msgstr "" |
| 259 | 259 | |
| 260 | 260 | #. translators: 1: the refusal reason, 2: comma-separated page-caching plugin names. |
| 261 | -#: includes/class-cache.php:6689 | |
| 261 | +#: includes/class-cache.php:8225 | |
| 262 | 262 | #, php-format |
| 263 | 263 | msgid "%1$s These page caches are also active on this site: %2$s. Deactivate them before enabling xSpeed." |
| 264 | 264 | msgstr "" |
| 265 | 265 | |
| 266 | 266 | #. translators: %s: comma-separated list of page-caching plugin names. |
| 267 | -#: includes/class-cache.php:6744 | |
| 267 | +#: includes/class-cache.php:8280 | |
| 268 | 268 | #, php-format |
| 269 | 269 | msgid "More than one page cache is active on this site (%s). Turn off the other page caches before enabling xSpeed." |
| 270 | 270 | msgstr "" |
| 271 | 271 | |
| 272 | -#: includes/class-cache.php:6751 | |
| 272 | +#: includes/class-cache.php:8287 | |
| 273 | 273 | #, php-format |
| 274 | 274 | msgid "%s is active or owns advanced-cache.php. Deactivate its page cache before enabling xSpeed." |
| 275 | 275 | msgstr "" |
| 276 | 276 | |
| 277 | -#: includes/class-cache.php:6754 | |
| 277 | +#: includes/class-cache.php:8290 | |
| 278 | 278 | msgid "WP_CACHE is true but no page-cache drop-in owner can be proved. xSpeed will not claim it." |
| 279 | 279 | msgstr "" |
| 280 | 280 | |
| 281 | -#: includes/class-cache.php:6755 | |
| 281 | +#: includes/class-cache.php:8291 | |
| 282 | 282 | msgid "wp-config.php defines WP_CACHE more than once. Remove the duplicate before enabling the cache." |
| 283 | 283 | msgstr "" |
| 284 | 284 | |
| 285 | -#: includes/class-cache.php:6756 | |
| 285 | +#: includes/class-cache.php:8292 | |
| 286 | 286 | msgid "WP_CACHE is set from an expression in wp-config.php. xSpeed will not rewrite it." |
| 287 | 287 | msgstr "" |
| 288 | 288 | |
| 289 | -#: includes/class-cache.php:6757 | |
| 289 | +#: includes/class-cache.php:8293 | |
| 290 | 290 | msgid "WP_CACHE is defined inside a conditional in wp-config.php, so xSpeed cannot tell what it will be. Move it to a plain define before enabling the cache." |
| 291 | 291 | msgstr "" |
| 292 | 292 | |
| 293 | -#: includes/class-cache.php:6758 | |
| 293 | +#: includes/class-cache.php:8294 | |
| 294 | 294 | msgid "wp-config.php cannot be read, so xSpeed cannot safely change page-cache ownership." |
| 295 | 295 | msgstr "" |
| 296 | 296 | |
| 297 | -#: includes/class-cache.php:6759 | |
| 297 | +#: includes/class-cache.php:8295 | |
| 298 | 298 | msgid "advanced-cache.php is occupied but its owner cannot be proved. xSpeed will not replace it." |
| 299 | 299 | msgstr "" |
| 300 | 300 | |
| 301 | -#: includes/class-cache.php:6760 | |
| 301 | +#: includes/class-cache.php:8296 | |
| 302 | 302 | msgid "advanced-cache.php cannot be read, so xSpeed cannot prove its owner." |
| 303 | 303 | msgstr "" |
| 304 | 304 | |
| 305 | -#: includes/class-cache.php:6762 | |
| 305 | +#: includes/class-cache.php:8298 | |
| 306 | 306 | msgid "The page-cache field is occupied or cannot be verified. xSpeed will not change it." |
| 307 | 307 | msgstr "" |
| 308 | 308 | |
| 309 | -#: includes/class-cache.php:7259 | |
| 309 | +#: includes/class-cache.php:8809 | |
| 310 | 310 | #: includes/class-purge-ui.php:278 |
| 311 | 311 | #: includes/class-purge-ui.php:675 |
| 312 | 312 | msgid "Unauthorized." |
| 313 | 313 | msgstr "" |
| @@ -765,8 +765,9 @@ | ||
| 765 | 765 | msgid "%s is not enabled" |
| 766 | 766 | msgstr "" |
| 767 | 767 | |
| 768 | 768 | #: includes/class-purge-runner.php:162 |
| 769 | +#: assets/admin.js | |
| 769 | 770 | msgid "the purge was refused" |
| 770 | 771 | msgstr "" |
| 771 | 772 | |
| 772 | 773 | #: includes/class-purge-runner.php:246 |
| @@ -787,40 +788,40 @@ | ||
| 787 | 788 | msgid "CDN" |
| 788 | 789 | msgstr "" |
| 789 | 790 | |
| 790 | 791 | #. translators: 1: what asked for the purge, 2: number of files removed. |
| 791 | -#: includes/class-purge-runner.php:322 | |
| 792 | +#: includes/class-purge-runner.php:335 | |
| 792 | 793 | #, php-format |
| 793 | 794 | msgid "Cache purged (%1$s) — %2$d file(s) removed" |
| 794 | 795 | msgstr "" |
| 795 | 796 | |
| 796 | -#: includes/class-purge-runner.php:346 | |
| 797 | +#: includes/class-purge-runner.php:359 | |
| 797 | 798 | msgid "the object cache engine is unavailable" |
| 798 | 799 | msgstr "" |
| 799 | 800 | |
| 800 | -#: includes/class-purge-runner.php:350 | |
| 801 | +#: includes/class-purge-runner.php:363 | |
| 801 | 802 | msgid "no persistent object cache drop-in is in use" |
| 802 | 803 | msgstr "" |
| 803 | 804 | |
| 804 | -#: includes/class-purge-runner.php:353 | |
| 805 | +#: includes/class-purge-runner.php:366 | |
| 805 | 806 | msgid "the drop-in is installed but is not persisting anything" |
| 806 | 807 | msgstr "" |
| 807 | 808 | |
| 808 | 809 | #. translators: %s: what asked for the purge. |
| 809 | -#: includes/class-purge-runner.php:375 | |
| 810 | +#: includes/class-purge-runner.php:388 | |
| 810 | 811 | #, php-format |
| 811 | 812 | msgid "Purged object cache (%s)" |
| 812 | 813 | msgstr "" |
| 813 | 814 | |
| 814 | -#: includes/class-purge-runner.php:385 | |
| 815 | +#: includes/class-purge-runner.php:398 | |
| 815 | 816 | msgid "the backend refused the flush" |
| 816 | 817 | msgstr "" |
| 817 | 818 | |
| 818 | -#: includes/class-purge-runner.php:397 | |
| 819 | +#: includes/class-purge-runner.php:410 | |
| 819 | 820 | msgid "the Cloudflare module is not available" |
| 820 | 821 | msgstr "" |
| 821 | 822 | |
| 822 | -#: includes/class-purge-runner.php:421 | |
| 823 | +#: includes/class-purge-runner.php:434 | |
| 823 | 824 | msgid "no CDN with a purge API is configured — xSpeed's CDN module rewrites asset URLs and holds no cache of its own" |
| 824 | 825 | msgstr "" |
| 825 | 826 | |
| 826 | 827 | #: includes/class-purge-ui.php:263 |
| @@ -1091,9 +1092,9 @@ | ||
| 1091 | 1092 | msgid "AI Privacy" |
| 1092 | 1093 | msgstr "" |
| 1093 | 1094 | |
| 1094 | 1095 | #: includes/modules/AIPrivacy/AIPrivacyModule.php:51 |
| 1095 | -msgid "Govern whether AI-powered features (Pro) may collect data from your visitors. The off-switch is here in Free because privacy is a fundamental right, not a paid feature." | |
| 1096 | +msgid "Decide whether AI features may use your visitors' data, and what the consent banner says. Applies even before you install Pro." | |
| 1096 | 1097 | msgstr "" |
| 1097 | 1098 | |
| 1098 | 1099 | #: includes/modules/AIPrivacy/AIPrivacyModule.php:70 |
| 1099 | 1100 | msgid "Require consent before AI data collection" |
| @@ -1099,9 +1100,9 @@ | ||
| 1099 | 1100 | msgid "Require consent before AI data collection" |
| 1100 | 1101 | msgstr "" |
| 1101 | 1102 | |
| 1102 | 1103 | #: includes/modules/AIPrivacy/AIPrivacyModule.php:71 |
| 1103 | -msgid "When ON, AI-powered features only record data after a visitor accepts the consent banner. When OFF, they collect from every visitor — only legal in regions without GDPR-style consent rules. The setting applies even if Pro is not installed (so a later Pro upgrade respects whichever choice you made)." | |
| 1104 | +msgid "When ON, AI-powered features only record data after a visitor accepts the consent banner. When OFF, they collect from every visitor — only legal in regions without GDPR-style consent rules. The setting applies even if Pro is not installed (so a later Pro upgrade respects whichever choice you made): privacy is a fundamental right, not a paid feature." | |
| 1104 | 1105 | msgstr "" |
| 1105 | 1106 | |
| 1106 | 1107 | #: includes/modules/AIPrivacy/AIPrivacyModule.php:76 |
| 1107 | 1108 | msgid "Consent banner text" |
| @@ -1159,20 +1160,28 @@ | ||
| 1159 | 1160 | msgid "Remove the jquery-migrate compatibility shim from non-admin pages. Saves ~10 KB; safe on modern themes / plugins." |
| 1160 | 1161 | msgstr "" |
| 1161 | 1162 | |
| 1162 | 1163 | #: includes/modules/Bloat/BloatModule.php:79 |
| 1164 | +msgid "Strip Block-Editor Styles on Frontend" | |
| 1165 | +msgstr "" | |
| 1166 | + | |
| 1167 | +#: includes/modules/Bloat/BloatModule.php:80 | |
| 1168 | +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." | |
| 1169 | +msgstr "" | |
| 1170 | + | |
| 1171 | +#: includes/modules/Bloat/BloatModule.php:85 | |
| 1163 | 1172 | msgid "Restrict REST API to Logged-In Users" |
| 1164 | 1173 | msgstr "" |
| 1165 | 1174 | |
| 1166 | -#: includes/modules/Bloat/BloatModule.php:80 | |
| 1175 | +#: includes/modules/Bloat/BloatModule.php:86 | |
| 1167 | 1176 | msgid "Block /wp-json/ for anonymous requests. WooCommerce checkout, contact-form submissions, and many block-editor previews need anonymous REST — keep this off unless you know your site does not depend on it." |
| 1168 | 1177 | msgstr "" |
| 1169 | 1178 | |
| 1170 | -#: includes/modules/Bloat/BloatModule.php:180 | |
| 1179 | +#: includes/modules/Bloat/BloatModule.php:239 | |
| 1171 | 1180 | msgid "Feeds are disabled." |
| 1172 | 1181 | msgstr "" |
| 1173 | 1182 | |
| 1174 | -#: includes/modules/Bloat/BloatModule.php:229 | |
| 1183 | +#: includes/modules/Bloat/BloatModule.php:288 | |
| 1175 | 1184 | msgid "Anonymous REST access is disabled on this site." |
| 1176 | 1185 | msgstr "" |
| 1177 | 1186 | |
| 1178 | 1187 | #: includes/modules/BrowserCache/BrowserCacheModule.php:32 |
| @@ -1237,56 +1246,88 @@ | ||
| 1237 | 1246 | #: includes/modules/Cache/CacheModule.php:160 |
| 1238 | 1247 | msgid "How long cached pages live before regenerating. 1 to 720 hours (30 days)." |
| 1239 | 1248 | msgstr "" |
| 1240 | 1249 | |
| 1241 | -#: includes/modules/Cache/CacheModule.php:188 | |
| 1250 | +#: includes/modules/Cache/CacheModule.php:190 | |
| 1242 | 1251 | msgid "Excluded URLs" |
| 1243 | 1252 | msgstr "" |
| 1244 | 1253 | |
| 1245 | -#: includes/modules/Cache/CacheModule.php:189 | |
| 1254 | +#: includes/modules/Cache/CacheModule.php:191 | |
| 1246 | 1255 | msgid "One pattern per line. Plain text matches anywhere in the URL (e.g. /cart). Use glob for anchored matches (/cart/* matches /cart/items but not /foo/cart/bar; *.pdf matches PDFs). Prefix with ~ for a raw regex (e.g. ~wp-.*\\.php)." |
| 1247 | 1256 | msgstr "" |
| 1248 | 1257 | |
| 1249 | -#: includes/modules/Cache/CacheModule.php:198 | |
| 1258 | +#: includes/modules/Cache/CacheModule.php:200 | |
| 1250 | 1259 | msgid "Excluded Cookies" |
| 1251 | 1260 | msgstr "" |
| 1252 | 1261 | |
| 1253 | -#: includes/modules/Cache/CacheModule.php:199 | |
| 1262 | +#: includes/modules/Cache/CacheModule.php:201 | |
| 1254 | 1263 | msgid "Skip cache for any visitor whose request carries a cookie whose NAME matches one of these patterns. Plain text = \"contains\"; glob (woocommerce_*) and ~regex (~wordpress_[a-f0-9]+) supported. One per line." |
| 1255 | 1264 | msgstr "" |
| 1256 | 1265 | |
| 1257 | -#: includes/modules/Cache/CacheModule.php:205 | |
| 1266 | +#: includes/modules/Cache/CacheModule.php:207 | |
| 1258 | 1267 | msgid "Bypass User Agents" |
| 1259 | 1268 | msgstr "" |
| 1260 | 1269 | |
| 1261 | -#: includes/modules/Cache/CacheModule.php:206 | |
| 1270 | +#: includes/modules/Cache/CacheModule.php:208 | |
| 1262 | 1271 | msgid "Substring match against the visitor User-Agent. Matched UAs bypass cache (useful for screenshot bots, internal previews, monitoring). Glob + ~regex supported. One per line." |
| 1263 | 1272 | msgstr "" |
| 1264 | 1273 | |
| 1265 | -#: includes/modules/Cache/CacheModule.php:217 | |
| 1274 | +#: includes/modules/Cache/CacheModule.php:219 | |
| 1266 | 1275 | msgid "Ignored Query Parameters" |
| 1267 | 1276 | msgstr "" |
| 1268 | 1277 | |
| 1269 | -#: includes/modules/Cache/CacheModule.php:218 | |
| 1278 | +#: includes/modules/Cache/CacheModule.php:220 | |
| 1270 | 1279 | msgid "Query keys removed from the URL before computing the cache key, so /post?utm_source=x and /post share a cache entry. Defaults cover the common analytics + ad + session params. Each entry matches a whole param name — plain text is an exact name, and glob (utm_*) or ~regex are anchored too, so \"ref\" does not also match \"preference\". One per line." |
| 1271 | 1280 | msgstr "" |
| 1272 | 1281 | |
| 1273 | -#: includes/modules/Cache/CacheModule.php:223 | |
| 1282 | +#: includes/modules/Cache/CacheModule.php:225 | |
| 1274 | 1283 | msgid "Purge After Updates" |
| 1275 | 1284 | msgstr "" |
| 1276 | 1285 | |
| 1277 | -#: includes/modules/Cache/CacheModule.php:224 | |
| 1286 | +#: includes/modules/Cache/CacheModule.php:226 | |
| 1278 | 1287 | msgid "Clear the page cache when a plugin, theme or WordPress core is updated. Cached HTML is produced by the code being replaced, so leaving it in place serves pre-update markup — and links to minified assets that no longer exist — until the cache expires. Translation updates are ignored, since a language pack changes no markup a cached page depends on. Updates to xSpeed itself always purge, regardless of this setting." |
| 1279 | 1288 | msgstr "" |
| 1280 | 1289 | |
| 1281 | -#: includes/modules/Cache/CacheModule.php:229 | |
| 1290 | +#: includes/modules/Cache/CacheModule.php:231 | |
| 1282 | 1291 | msgid "Separate Mobile Cache" |
| 1283 | 1292 | msgstr "" |
| 1284 | 1293 | |
| 1285 | -#: includes/modules/Cache/CacheModule.php:230 | |
| 1294 | +#: includes/modules/Cache/CacheModule.php:232 | |
| 1286 | 1295 | msgid "Keep mobile and desktop responses in separate cache buckets. Turn on for AMP, mobile-specific themes (WPtouch / Jetpack mobile theme), or any setup that serves different HTML by device." |
| 1287 | 1296 | msgstr "" |
| 1288 | 1297 | |
| 1298 | +#: includes/modules/Cache/CacheModule.php:264 | |
| 1299 | +msgid "Cache In Front Of This Site" | |
| 1300 | +msgstr "" | |
| 1301 | + | |
| 1302 | +#: includes/modules/Cache/CacheModule.php:265 | |
| 1303 | +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." | |
| 1304 | +msgstr "" | |
| 1305 | + | |
| 1306 | +#: includes/modules/Cache/CacheModule.php:266 | |
| 1307 | +msgid "Cache in front of this site" | |
| 1308 | +msgstr "" | |
| 1309 | + | |
| 1310 | +#: includes/modules/Cache/CacheModule.php:267 | |
| 1311 | +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." | |
| 1312 | +msgstr "" | |
| 1313 | + | |
| 1314 | +#: includes/modules/Cache/CacheModule.php:273 | |
| 1315 | +msgid "Custom Edge Headers" | |
| 1316 | +msgstr "" | |
| 1317 | + | |
| 1318 | +#: includes/modules/Cache/CacheModule.php:275 | |
| 1319 | +msgid "One header per line, as Name: value — for example \"Surrogate-Control: no-store\". Lines starting with # are ignored." | |
| 1320 | +msgstr "" | |
| 1321 | + | |
| 1322 | +#: includes/modules/Cache/CacheModule.php:276 | |
| 1323 | +msgid "Custom edge headers" | |
| 1324 | +msgstr "" | |
| 1325 | + | |
| 1326 | +#: includes/modules/Cache/CacheModule.php:277 | |
| 1327 | +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." | |
| 1328 | +msgstr "" | |
| 1329 | + | |
| 1289 | 1330 | #: includes/modules/CacheCoverage/CacheCoverageModule.php:36 |
| 1290 | 1331 | msgid "Advanced Cache" |
| 1291 | 1332 | msgstr "" |
| 1292 | 1333 | |
| @@ -1329,120 +1370,149 @@ | ||
| 1329 | 1370 | #: includes/modules/Cdn/CdnModule.php:62 |
| 1330 | 1371 | msgid "Glob patterns matched against the URL path. Matching URLs stay on the origin. Examples: /wp-admin/*, *.pdf, /private/*" |
| 1331 | 1372 | msgstr "" |
| 1332 | 1373 | |
| 1333 | -#: includes/modules/Cloudflare/CloudflareModule.php:40 | |
| 1374 | +#: includes/modules/Cloudflare/CloudflareModule.php:77 | |
| 1334 | 1375 | msgid "Cloudflare" |
| 1335 | 1376 | msgstr "" |
| 1336 | 1377 | |
| 1337 | -#: includes/modules/Cloudflare/CloudflareModule.php:42 | |
| 1378 | +#: includes/modules/Cloudflare/CloudflareModule.php:79 | |
| 1338 | 1379 | msgid "Connect a Cloudflare zone for automatic edge purging when xSpeed clears its cache, plus a dev-mode toggle." |
| 1339 | 1380 | msgstr "" |
| 1340 | 1381 | |
| 1341 | -#: includes/modules/Cloudflare/CloudflareModule.php:65 | |
| 1382 | +#: includes/modules/Cloudflare/CloudflareModule.php:102 | |
| 1342 | 1383 | msgid "Enable Cloudflare integration" |
| 1343 | 1384 | msgstr "" |
| 1344 | 1385 | |
| 1345 | -#: includes/modules/Cloudflare/CloudflareModule.php:66 | |
| 1386 | +#: includes/modules/Cloudflare/CloudflareModule.php:103 | |
| 1346 | 1387 | msgid "Use the credentials below to verify your zone and run purges." |
| 1347 | 1388 | msgstr "" |
| 1348 | 1389 | |
| 1349 | -#: includes/modules/Cloudflare/CloudflareModule.php:76 | |
| 1390 | +#: includes/modules/Cloudflare/CloudflareModule.php:113 | |
| 1350 | 1391 | msgid "Authentication" |
| 1351 | 1392 | msgstr "" |
| 1352 | 1393 | |
| 1353 | -#: includes/modules/Cloudflare/CloudflareModule.php:77 | |
| 1394 | +#: includes/modules/Cloudflare/CloudflareModule.php:114 | |
| 1354 | 1395 | msgid "API Tokens (scoped, recommended) or the legacy Global API Key with your account email." |
| 1355 | 1396 | msgstr "" |
| 1356 | 1397 | |
| 1357 | -#: includes/modules/Cloudflare/CloudflareModule.php:83 | |
| 1398 | +#: includes/modules/Cloudflare/CloudflareModule.php:120 | |
| 1358 | 1399 | msgid "API Token" |
| 1359 | 1400 | msgstr "" |
| 1360 | 1401 | |
| 1361 | -#: includes/modules/Cloudflare/CloudflareModule.php:84 | |
| 1402 | +#: includes/modules/Cloudflare/CloudflareModule.php:121 | |
| 1362 | 1403 | msgid "Create a token at dash.cloudflare.com → My Profile → API Tokens. Needs \"Zone → Cache Purge\" + \"Zone Settings\" permissions." |
| 1363 | 1404 | msgstr "" |
| 1364 | 1405 | |
| 1365 | -#: includes/modules/Cloudflare/CloudflareModule.php:92 | |
| 1406 | +#: includes/modules/Cloudflare/CloudflareModule.php:129 | |
| 1366 | 1407 | msgid "Account Email" |
| 1367 | 1408 | msgstr "" |
| 1368 | 1409 | |
| 1369 | -#: includes/modules/Cloudflare/CloudflareModule.php:93 | |
| 1410 | +#: includes/modules/Cloudflare/CloudflareModule.php:130 | |
| 1370 | 1411 | msgid "Only used when Authentication is set to Global API Key." |
| 1371 | 1412 | msgstr "" |
| 1372 | 1413 | |
| 1373 | -#: includes/modules/Cloudflare/CloudflareModule.php:99 | |
| 1414 | +#: includes/modules/Cloudflare/CloudflareModule.php:136 | |
| 1374 | 1415 | msgid "Global API Key" |
| 1375 | 1416 | msgstr "" |
| 1376 | 1417 | |
| 1377 | -#: includes/modules/Cloudflare/CloudflareModule.php:100 | |
| 1418 | +#: includes/modules/Cloudflare/CloudflareModule.php:137 | |
| 1378 | 1419 | msgid "Found at dash.cloudflare.com → My Profile → API Tokens → Global API Key." |
| 1379 | 1420 | msgstr "" |
| 1380 | 1421 | |
| 1381 | -#: includes/modules/Cloudflare/CloudflareModule.php:106 | |
| 1422 | +#: includes/modules/Cloudflare/CloudflareModule.php:143 | |
| 1382 | 1423 | msgid "Zone ID" |
| 1383 | 1424 | msgstr "" |
| 1384 | 1425 | |
| 1385 | -#: includes/modules/Cloudflare/CloudflareModule.php:107 | |
| 1426 | +#: includes/modules/Cloudflare/CloudflareModule.php:144 | |
| 1386 | 1427 | msgid "The 32-character hex Zone ID from your domain overview page." |
| 1387 | 1428 | msgstr "" |
| 1388 | 1429 | |
| 1389 | -#: includes/modules/Cloudflare/CloudflareModule.php:113 | |
| 1430 | +#: includes/modules/Cloudflare/CloudflareModule.php:150 | |
| 1390 | 1431 | msgid "Auto-purge Cloudflare on xSpeed purge" |
| 1391 | 1432 | msgstr "" |
| 1392 | 1433 | |
| 1393 | -#: includes/modules/Cloudflare/CloudflareModule.php:114 | |
| 1434 | +#: includes/modules/Cloudflare/CloudflareModule.php:151 | |
| 1394 | 1435 | msgid "When xSpeed clears its own cache (post save, settings change, manual purge), trigger a Cloudflare purge too." |
| 1395 | 1436 | msgstr "" |
| 1396 | 1437 | |
| 1397 | -#: includes/modules/Cloudflare/CloudflareModule.php:238 | |
| 1438 | +#. translators: %d: number of URLs that changed at once. | |
| 1439 | +#: includes/modules/Cloudflare/CloudflareModule.php:480 | |
| 1440 | +#, php-format | |
| 1441 | +msgid "Purging the whole Cloudflare zone: %d URLs changed at once, too many to purge individually" | |
| 1442 | +msgstr "" | |
| 1443 | + | |
| 1444 | +#. translators: %d: number of URLs. | |
| 1445 | +#: includes/modules/Cloudflare/CloudflareModule.php:541 | |
| 1446 | +#, php-format | |
| 1447 | +msgid "Skipped a queued Cloudflare purge of %d URL: the connection is no longer available" | |
| 1448 | +msgid_plural "Skipped a queued Cloudflare purge of %d URLs: the connection is no longer available" | |
| 1449 | +msgstr[0] "" | |
| 1450 | +msgstr[1] "" | |
| 1451 | + | |
| 1452 | +#. translators: %d: number of URLs purged. | |
| 1453 | +#: includes/modules/Cloudflare/CloudflareModule.php:572 | |
| 1454 | +#, php-format | |
| 1455 | +msgid "Purged %d URL from the Cloudflare edge cache" | |
| 1456 | +msgid_plural "Purged %d URLs from the Cloudflare edge cache" | |
| 1457 | +msgstr[0] "" | |
| 1458 | +msgstr[1] "" | |
| 1459 | + | |
| 1460 | +#. translators: 1: number of URLs, 2: failure reason. | |
| 1461 | +#: includes/modules/Cloudflare/CloudflareModule.php:588 | |
| 1462 | +#, php-format | |
| 1463 | +msgid "Cloudflare URL purge failed (%1$d URL(s)): %2$s" | |
| 1464 | +msgstr "" | |
| 1465 | + | |
| 1466 | +#: includes/modules/Cloudflare/CloudflareModule.php:590 | |
| 1467 | +#: includes/modules/Cloudflare/CloudflareModule.php:657 | |
| 1468 | +msgid "unknown error" | |
| 1469 | +msgstr "" | |
| 1470 | + | |
| 1471 | +#: includes/modules/Cloudflare/CloudflareModule.php:606 | |
| 1398 | 1472 | msgid "the Cloudflare integration is switched off" |
| 1399 | 1473 | msgstr "" |
| 1400 | 1474 | |
| 1401 | -#: includes/modules/Cloudflare/CloudflareModule.php:241 | |
| 1475 | +#: includes/modules/Cloudflare/CloudflareModule.php:609 | |
| 1402 | 1476 | msgid "no zone ID or API credentials are configured" |
| 1403 | 1477 | msgstr "" |
| 1404 | 1478 | |
| 1405 | 1479 | #. translators: %s: what asked for the purge. |
| 1406 | -#: includes/modules/Cloudflare/CloudflareModule.php:277 | |
| 1480 | +#: includes/modules/Cloudflare/CloudflareModule.php:645 | |
| 1407 | 1481 | #, php-format |
| 1408 | 1482 | msgid "Purged the Cloudflare edge cache (%s)" |
| 1409 | 1483 | msgstr "" |
| 1410 | 1484 | |
| 1411 | 1485 | #. translators: 1: what asked for the purge, 2: failure reason. |
| 1412 | -#: includes/modules/Cloudflare/CloudflareModule.php:287 | |
| 1486 | +#: includes/modules/Cloudflare/CloudflareModule.php:655 | |
| 1413 | 1487 | #, php-format |
| 1414 | 1488 | msgid "Cloudflare purge failed (%1$s): %2$s" |
| 1415 | 1489 | msgstr "" |
| 1416 | 1490 | |
| 1417 | -#: includes/modules/Cloudflare/CloudflareModule.php:289 | |
| 1418 | -msgid "unknown error" | |
| 1419 | -msgstr "" | |
| 1420 | - | |
| 1421 | -#: includes/modules/Cloudflare/CloudflareModule.php:359 | |
| 1491 | +#: includes/modules/Cloudflare/CloudflareModule.php:727 | |
| 1422 | 1492 | msgid "Cloudflare is not fully configured." |
| 1423 | 1493 | msgstr "" |
| 1424 | 1494 | |
| 1425 | -#: includes/modules/Cloudflare/CloudflareModule.php:360 | |
| 1495 | +#: includes/modules/Cloudflare/CloudflareModule.php:728 | |
| 1426 | 1496 | msgid "Add your API token (or Global API Key + account email) and the Zone ID, then press Verify. Until then auto-purge does nothing." |
| 1427 | 1497 | msgstr "" |
| 1428 | 1498 | |
| 1429 | -#: includes/modules/Cloudflare/CloudflareModule.php:373 | |
| 1499 | +#: includes/modules/Cloudflare/CloudflareModule.php:741 | |
| 1430 | 1500 | msgid "Cloudflare purge is failing." |
| 1431 | 1501 | msgstr "" |
| 1432 | 1502 | |
| 1433 | 1503 | #. translators: %s: the Cloudflare API error message, or empty. |
| 1434 | -#: includes/modules/Cloudflare/CloudflareModule.php:376 | |
| 1504 | +#: includes/modules/Cloudflare/CloudflareModule.php:744 | |
| 1435 | 1505 | #, php-format |
| 1436 | 1506 | msgid "The last edge purge was rejected by Cloudflare%s. Confirm the API token includes the \"Zone → Cache Purge\" permission for this zone — a token that can read the zone can still lack purge rights." |
| 1437 | 1507 | msgstr "" |
| 1438 | 1508 | |
| 1439 | -#: includes/modules/Cloudflare/CloudflareModule.php:385 | |
| 1509 | +#: includes/modules/Cloudflare/CloudflareModule.php:753 | |
| 1440 | 1510 | msgid "Cloudflare credentials were rejected." |
| 1441 | 1511 | msgstr "" |
| 1442 | 1512 | |
| 1443 | 1513 | #. translators: %s: the Cloudflare API error message, or empty. |
| 1444 | -#: includes/modules/Cloudflare/CloudflareModule.php:388 | |
| 1514 | +#: includes/modules/Cloudflare/CloudflareModule.php:756 | |
| 1445 | 1515 | #, php-format |
| 1446 | 1516 | msgid "The saved credentials could not verify this zone%s. Auto-purge will not work until this is fixed." |
| 1447 | 1517 | msgstr "" |
| 1448 | 1518 | |
| @@ -1745,88 +1815,92 @@ | ||
| 1745 | 1815 | #, php-format |
| 1746 | 1816 | msgid "Unknown command: %s. Call list_commands to see what is available." |
| 1747 | 1817 | msgstr "" |
| 1748 | 1818 | |
| 1749 | -#: includes/modules/Mcp/McpModule.php:111 | |
| 1819 | +#: includes/modules/Mcp/McpModule.php:149 | |
| 1750 | 1820 | #: assets/admin.js |
| 1751 | 1821 | msgid "MCP Server" |
| 1752 | 1822 | msgstr "" |
| 1753 | 1823 | |
| 1754 | -#: includes/modules/Mcp/McpModule.php:113 | |
| 1755 | -msgid "Control this site's cache from Claude and other AI agents." | |
| 1824 | +#: includes/modules/Mcp/McpModule.php:151 | |
| 1825 | +msgid "Let Claude or another AI agent run this site — purge, check stats, change settings. This is the only thing you connect an AI to, and it is free with no API key." | |
| 1756 | 1826 | msgstr "" |
| 1757 | 1827 | |
| 1758 | -#: includes/modules/Mcp/McpModule.php:979 | |
| 1828 | +#: includes/modules/Mcp/McpModule.php:440 | |
| 1829 | +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." | |
| 1830 | +msgstr "" | |
| 1831 | + | |
| 1832 | +#: includes/modules/Mcp/McpModule.php:1307 | |
| 1759 | 1833 | msgid "Invalid or expired attach request." |
| 1760 | 1834 | msgstr "" |
| 1761 | 1835 | |
| 1762 | -#: includes/modules/Mcp/McpModule.php:1093 | |
| 1836 | +#: includes/modules/Mcp/McpModule.php:1423 | |
| 1763 | 1837 | msgid "You must be an administrator to authorize an AI agent to control this site." |
| 1764 | 1838 | msgstr "" |
| 1765 | 1839 | |
| 1766 | -#: includes/modules/Mcp/McpModule.php:1100 | |
| 1840 | +#: includes/modules/Mcp/McpModule.php:1430 | |
| 1767 | 1841 | msgid "Security check failed. Please try connecting again." |
| 1768 | 1842 | msgstr "" |
| 1769 | 1843 | |
| 1770 | -#: includes/modules/Mcp/McpModule.php:1227 | |
| 1844 | +#: includes/modules/Mcp/McpModule.php:1557 | |
| 1771 | 1845 | msgid "Read-only — inspect cache status and settings." |
| 1772 | 1846 | msgstr "" |
| 1773 | 1847 | |
| 1774 | -#: includes/modules/Mcp/McpModule.php:1228 | |
| 1848 | +#: includes/modules/Mcp/McpModule.php:1558 | |
| 1775 | 1849 | msgid "Read & write — purge caches, toggle caching, and change settings." |
| 1776 | 1850 | msgstr "" |
| 1777 | 1851 | |
| 1778 | -#: includes/modules/Mcp/McpModule.php:1229 | |
| 1852 | +#: includes/modules/Mcp/McpModule.php:1559 | |
| 1779 | 1853 | msgid "An AI agent" |
| 1780 | 1854 | msgstr "" |
| 1781 | 1855 | |
| 1782 | -#: includes/modules/Mcp/McpModule.php:1248 | |
| 1856 | +#: includes/modules/Mcp/McpModule.php:1578 | |
| 1783 | 1857 | msgid "Authorize AI access" |
| 1784 | 1858 | msgstr "" |
| 1785 | 1859 | |
| 1786 | -#: includes/modules/Mcp/McpModule.php:1259 | |
| 1860 | +#: includes/modules/Mcp/McpModule.php:1589 | |
| 1787 | 1861 | msgid "Connect to xSpeed" |
| 1788 | 1862 | msgstr "" |
| 1789 | 1863 | |
| 1790 | 1864 | #. translators: %s: AI client name. |
| 1791 | -#: includes/modules/Mcp/McpModule.php:1261 | |
| 1865 | +#: includes/modules/Mcp/McpModule.php:1591 | |
| 1792 | 1866 | #, php-format |
| 1793 | 1867 | msgid "%s wants to manage the cache on this site." |
| 1794 | 1868 | msgstr "" |
| 1795 | 1869 | |
| 1796 | -#: includes/modules/Mcp/McpModule.php:1262 | |
| 1870 | +#: includes/modules/Mcp/McpModule.php:1592 | |
| 1797 | 1871 | msgid "Site" |
| 1798 | 1872 | msgstr "" |
| 1799 | 1873 | |
| 1800 | -#: includes/modules/Mcp/McpModule.php:1263 | |
| 1874 | +#: includes/modules/Mcp/McpModule.php:1593 | |
| 1801 | 1875 | msgid "Signed in as" |
| 1802 | 1876 | msgstr "" |
| 1803 | 1877 | |
| 1804 | -#: includes/modules/Mcp/McpModule.php:1264 | |
| 1878 | +#: includes/modules/Mcp/McpModule.php:1594 | |
| 1805 | 1879 | msgid "Access" |
| 1806 | 1880 | msgstr "" |
| 1807 | 1881 | |
| 1808 | -#: includes/modules/Mcp/McpModule.php:1269 | |
| 1882 | +#: includes/modules/Mcp/McpModule.php:1599 | |
| 1809 | 1883 | msgid "Deny" |
| 1810 | 1884 | msgstr "" |
| 1811 | 1885 | |
| 1812 | -#: includes/modules/Mcp/McpModule.php:1270 | |
| 1886 | +#: includes/modules/Mcp/McpModule.php:1600 | |
| 1813 | 1887 | msgid "Approve" |
| 1814 | 1888 | msgstr "" |
| 1815 | 1889 | |
| 1816 | -#: includes/modules/Mcp/McpModule.php:1280 | |
| 1890 | +#: includes/modules/Mcp/McpModule.php:1610 | |
| 1817 | 1891 | msgid "Authorization error" |
| 1818 | 1892 | msgstr "" |
| 1819 | 1893 | |
| 1820 | -#: includes/modules/Mcp/McpModule.php:1283 | |
| 1894 | +#: includes/modules/Mcp/McpModule.php:1613 | |
| 1821 | 1895 | msgid "Could not authorize" |
| 1822 | 1896 | msgstr "" |
| 1823 | 1897 | |
| 1824 | -#: includes/modules/Mcp/McpModule.php:1513 | |
| 1898 | +#: includes/modules/Mcp/McpModule.php:1843 | |
| 1825 | 1899 | msgid "An AI assistant is connected to this site. This module counts as on whenever a connection token exists, rather than having its own on/off setting." |
| 1826 | 1900 | msgstr "" |
| 1827 | 1901 | |
| 1828 | -#: includes/modules/Mcp/McpModule.php:1514 | |
| 1902 | +#: includes/modules/Mcp/McpModule.php:1844 | |
| 1829 | 1903 | msgid "No AI assistant is connected. This module counts as on once you connect one." |
| 1830 | 1904 | msgstr "" |
| 1831 | 1905 | |
| 1832 | 1906 | #: includes/modules/Mcp/Mcp_Auth.php:57 |
| @@ -1845,47 +1919,47 @@ | ||
| 1845 | 1919 | #: assets/admin.js |
| 1846 | 1920 | msgid "The test could not be started." |
| 1847 | 1921 | msgstr "" |
| 1848 | 1922 | |
| 1849 | -#: includes/modules/Mcp/Mcp_OAuth.php:213 | |
| 1923 | +#: includes/modules/Mcp/Mcp_OAuth.php:261 | |
| 1850 | 1924 | msgid "Too many client registrations. Try again later." |
| 1851 | 1925 | msgstr "" |
| 1852 | 1926 | |
| 1853 | 1927 | #. translators: %d: maximum number of redirect URIs. |
| 1854 | -#: includes/modules/Mcp/Mcp_OAuth.php:229 | |
| 1928 | +#: includes/modules/Mcp/Mcp_OAuth.php:277 | |
| 1855 | 1929 | #, php-format |
| 1856 | 1930 | msgid "At most %d redirect_uris are allowed." |
| 1857 | 1931 | msgstr "" |
| 1858 | 1932 | |
| 1859 | -#: includes/modules/Mcp/Mcp_OAuth.php:241 | |
| 1933 | +#: includes/modules/Mcp/Mcp_OAuth.php:289 | |
| 1860 | 1934 | msgid "At least one valid redirect_uri is required." |
| 1861 | 1935 | msgstr "" |
| 1862 | 1936 | |
| 1863 | -#: includes/modules/Mcp/Mcp_OAuth.php:278 | |
| 1937 | +#: includes/modules/Mcp/Mcp_OAuth.php:326 | |
| 1864 | 1938 | msgid "Client registration limit reached." |
| 1865 | 1939 | msgstr "" |
| 1866 | 1940 | |
| 1867 | -#: includes/modules/Mcp/Mcp_OAuth.php:297 | |
| 1941 | +#: includes/modules/Mcp/Mcp_OAuth.php:345 | |
| 1868 | 1942 | msgid "The client registration could not be stored." |
| 1869 | 1943 | msgstr "" |
| 1870 | 1944 | |
| 1871 | -#: includes/modules/Mcp/Mcp_OAuth.php:336 | |
| 1945 | +#: includes/modules/Mcp/Mcp_OAuth.php:384 | |
| 1872 | 1946 | msgid "Unknown client_id." |
| 1873 | 1947 | msgstr "" |
| 1874 | 1948 | |
| 1875 | -#: includes/modules/Mcp/Mcp_OAuth.php:340 | |
| 1949 | +#: includes/modules/Mcp/Mcp_OAuth.php:388 | |
| 1876 | 1950 | msgid "redirect_uri does not match a registered value." |
| 1877 | 1951 | msgstr "" |
| 1878 | 1952 | |
| 1879 | -#: includes/modules/Mcp/Mcp_OAuth.php:343 | |
| 1953 | +#: includes/modules/Mcp/Mcp_OAuth.php:391 | |
| 1880 | 1954 | msgid "Only response_type=code is supported." |
| 1881 | 1955 | msgstr "" |
| 1882 | 1956 | |
| 1883 | -#: includes/modules/Mcp/Mcp_OAuth.php:347 | |
| 1957 | +#: includes/modules/Mcp/Mcp_OAuth.php:395 | |
| 1884 | 1958 | msgid "PKCE with code_challenge_method=S256 is required." |
| 1885 | 1959 | msgstr "" |
| 1886 | 1960 | |
| 1887 | -#: includes/modules/Mcp/Mcp_Pairing.php:408 | |
| 1961 | +#: includes/modules/Mcp/Mcp_Pairing.php:451 | |
| 1888 | 1962 | msgid "No active MCP connection to change. Connect first." |
| 1889 | 1963 | msgstr "" |
| 1890 | 1964 | |
| 1891 | 1965 | #. translators: %s: tool name. |
| @@ -2472,8 +2546,56 @@ | ||
| 2472 | 2546 | #: includes/modules/Preloader/PreloaderModule.php:268 |
| 2473 | 2547 | msgid "Enable the preloader before starting a crawl." |
| 2474 | 2548 | msgstr "" |
| 2475 | 2549 | |
| 2550 | +#: includes/modules/Privacy/PrivacyModule.php:47 | |
| 2551 | +msgid "Privacy & usage data" | |
| 2552 | +msgstr "" | |
| 2553 | + | |
| 2554 | +#: includes/modules/Privacy/PrivacyModule.php:49 | |
| 2555 | +msgid "Control the anonymous usage analytics you were asked about in the setup wizard." | |
| 2556 | +msgstr "" | |
| 2557 | + | |
| 2558 | +#: includes/modules/Privacy/PrivacyModule.php:58 | |
| 2559 | +msgid "Share anonymous usage data" | |
| 2560 | +msgstr "" | |
| 2561 | + | |
| 2562 | +#: includes/modules/Privacy/PrivacyModule.php:59 | |
| 2563 | +msgid "Share anonymous basics — WordPress & PHP version, active theme & plugins, server type, and which features you enable. Never personal data or page content. Turning this off stops all collection and clears the scheduled send." | |
| 2564 | +msgstr "" | |
| 2565 | + | |
| 2566 | +#: includes/modules/RenderSkip/RenderSkipModule.php:71 | |
| 2567 | +msgid "Render Skip" | |
| 2568 | +msgstr "" | |
| 2569 | + | |
| 2570 | +#: includes/modules/RenderSkip/RenderSkipModule.php:73 | |
| 2571 | +msgid "Skip the browser's style & layout work for below-fold sections until the visitor scrolls near them — cuts main-thread blocking time on long builder pages without changing the content." | |
| 2572 | +msgstr "" | |
| 2573 | + | |
| 2574 | +#: includes/modules/RenderSkip/RenderSkipModule.php:82 | |
| 2575 | +msgid "Skip below-fold rendering" | |
| 2576 | +msgstr "" | |
| 2577 | + | |
| 2578 | +#: includes/modules/RenderSkip/RenderSkipModule.php:83 | |
| 2579 | +msgid "Stamp below-fold sections with content-visibility: auto so the browser defers their style and layout work until scroll approaches. Above-fold sections are never touched." | |
| 2580 | +msgstr "" | |
| 2581 | + | |
| 2582 | +#: includes/modules/RenderSkip/RenderSkipModule.php:90 | |
| 2583 | +msgid "Above-fold sections" | |
| 2584 | +msgstr "" | |
| 2585 | + | |
| 2586 | +#: includes/modules/RenderSkip/RenderSkipModule.php:91 | |
| 2587 | +msgid "How many top-level sections from the top of the page are treated as above the fold and left untouched. Raise this if a section near the top appears late." | |
| 2588 | +msgstr "" | |
| 2589 | + | |
| 2590 | +#: includes/modules/RenderSkip/RenderSkipModule.php:96 | |
| 2591 | +msgid "Section classes" | |
| 2592 | +msgstr "" | |
| 2593 | + | |
| 2594 | +#: includes/modules/RenderSkip/RenderSkipModule.php:97 | |
| 2595 | +msgid "Class names that identify a top-level page section. Defaults cover Elementor sections and flexbox containers; add your theme's section class for non-Elementor pages." | |
| 2596 | +msgstr "" | |
| 2597 | + | |
| 2476 | 2598 | #: includes/modules/ResourceHints/ResourceHintsModule.php:60 |
| 2477 | 2599 | msgid "Resource Hints" |
| 2478 | 2600 | msgstr "" |
| 2479 | 2601 | |
| @@ -2664,8 +2786,13 @@ | ||
| 2664 | 2786 | #: assets/admin.js |
| 2665 | 2787 | msgid "%s currently owns the page-cache file. xSpeed will replace it and serve the cached pages itself." |
| 2666 | 2788 | msgstr "" |
| 2667 | 2789 | |
| 2790 | +#. Source: src/components/purgeOutcome.ts:45 | |
| 2791 | +#: assets/admin.js | |
| 2792 | +msgid "%s: %s" | |
| 2793 | +msgstr "" | |
| 2794 | + | |
| 2668 | 2795 | #. Source: src/components/health/HealthCard.tsx:172 |
| 2669 | 2796 | #: assets/admin.js |
| 2670 | 2797 | msgid "24-hour cache request volume" |
| 2671 | 2798 | msgstr "" |
| @@ -2689,9 +2816,9 @@ | ||
| 2689 | 2816 | #: assets/admin.js |
| 2690 | 2817 | msgid "A key is saved. Type to replace it; use ✕ to remove it." |
| 2691 | 2818 | msgstr "" |
| 2692 | 2819 | |
| 2693 | -#. Source: src/components/cache/CacheHero.tsx:243 | |
| 2820 | +#. Source: src/components/cache/CacheHero.tsx:238 | |
| 2694 | 2821 | #: assets/admin.js |
| 2695 | 2822 | msgid "Absorbed" |
| 2696 | 2823 | msgstr "" |
| 2697 | 2824 | |
| @@ -2700,9 +2827,9 @@ | ||
| 2700 | 2827 | msgid "Action" |
| 2701 | 2828 | msgstr "" |
| 2702 | 2829 | |
| 2703 | 2830 | #. Source: src/components/Sidebar.tsx:424 |
| 2704 | -#. Source: src/components/Sidebar.tsx:442 | |
| 2831 | +#. Source: src/components/Sidebar.tsx:445 | |
| 2705 | 2832 | #. Source: src/upsell/ProOverview.tsx:73 |
| 2706 | 2833 | #: assets/admin.js |
| 2707 | 2834 | msgid "Activate License" |
| 2708 | 2835 | msgstr "" |
| @@ -2707,10 +2834,10 @@ | ||
| 2707 | 2834 | msgid "Activate License" |
| 2708 | 2835 | msgstr "" |
| 2709 | 2836 | |
| 2710 | 2837 | #. Source: src/upsell/LockedPanel.tsx:104 |
| 2711 | -#. Source: src/upsell/LockedSection.tsx:87 | |
| 2712 | -#. Source: src/upsell/ProDemo.tsx:91 | |
| 2838 | +#. Source: src/upsell/LockedSection.tsx:88 | |
| 2839 | +#. Source: src/upsell/ProDemo.tsx:92 | |
| 2713 | 2840 | #: assets/admin.js |
| 2714 | 2841 | msgid "Activate your license" |
| 2715 | 2842 | msgstr "" |
| 2716 | 2843 | |
| @@ -2724,9 +2851,9 @@ | ||
| 2724 | 2851 | #: assets/admin.js |
| 2725 | 2852 | msgid "Add site form" |
| 2726 | 2853 | msgstr "" |
| 2727 | 2854 | |
| 2728 | -#. Source: src/components/cache/StatDrilldown.tsx:197 | |
| 2855 | +#. Source: src/components/cache/StatDrilldown.tsx:192 | |
| 2729 | 2856 | #: assets/admin.js |
| 2730 | 2857 | msgid "Address not recorded" |
| 2731 | 2858 | msgstr "" |
| 2732 | 2859 | |
| @@ -2734,9 +2861,9 @@ | ||
| 2734 | 2861 | #: assets/admin.js |
| 2735 | 2862 | msgid "After" |
| 2736 | 2863 | msgstr "" |
| 2737 | 2864 | |
| 2738 | -#. Source: src/components/cache/StatDrilldown.tsx:168 | |
| 2865 | +#. Source: src/components/cache/StatDrilldown.tsx:163 | |
| 2739 | 2866 | #: assets/admin.js |
| 2740 | 2867 | msgid "Age" |
| 2741 | 2868 | msgstr "" |
| 2742 | 2869 | |
| @@ -2751,14 +2878,24 @@ | ||
| 2751 | 2878 | #: assets/admin.js |
| 2752 | 2879 | msgid "AI connection active" |
| 2753 | 2880 | msgstr "" |
| 2754 | 2881 | |
| 2882 | +#. Source: src/components/TopBar.tsx:175 | |
| 2883 | +#: assets/admin.js | |
| 2884 | +msgid "Already empty" | |
| 2885 | +msgstr "" | |
| 2886 | + | |
| 2887 | +#. Source: src/components/purgeOutcome.ts:57 | |
| 2888 | +#: assets/admin.js | |
| 2889 | +msgid "Also cleared: %s." | |
| 2890 | +msgstr "" | |
| 2891 | + | |
| 2755 | 2892 | #. Source: src/components/overview/Recommendations.tsx:181 |
| 2756 | 2893 | #: assets/admin.js |
| 2757 | 2894 | msgid "Also worth a look" |
| 2758 | 2895 | msgstr "" |
| 2759 | 2896 | |
| 2760 | -#. Source: src/components/cache/CacheHero.tsx:236 | |
| 2897 | +#. Source: src/components/cache/CacheHero.tsx:231 | |
| 2761 | 2898 | #: assets/admin.js |
| 2762 | 2899 | msgid "An edge cache (Cloudflare) is in front, so this hit ratio is origin-layer only — hits served at the edge never reach the origin and aren’t counted here." |
| 2763 | 2900 | msgstr "" |
| 2764 | 2901 | |
| @@ -2802,14 +2939,14 @@ | ||
| 2802 | 2939 | #: assets/admin.js |
| 2803 | 2940 | msgid "Audit failed" |
| 2804 | 2941 | msgstr "" |
| 2805 | 2942 | |
| 2806 | -#. Source: src/components/cache/StatDrilldown.tsx:330 | |
| 2943 | +#. Source: src/components/cache/StatDrilldown.tsx:325 | |
| 2807 | 2944 | #: assets/admin.js |
| 2808 | 2945 | msgid "Automatic cleanup has not run yet — first sweep in %s." |
| 2809 | 2946 | msgstr "" |
| 2810 | 2947 | |
| 2811 | -#. Source: src/components/cache/StatDrilldown.tsx:322 | |
| 2948 | +#. Source: src/components/cache/StatDrilldown.tsx:317 | |
| 2812 | 2949 | #: assets/admin.js |
| 2813 | 2950 | msgid "Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total." |
| 2814 | 2951 | msgstr "" |
| 2815 | 2952 | |
| @@ -2827,14 +2964,14 @@ | ||
| 2827 | 2964 | #: assets/admin.js |
| 2828 | 2965 | msgid "Benchmark failed" |
| 2829 | 2966 | msgstr "" |
| 2830 | 2967 | |
| 2831 | -#. Source: src/components/cache/TrendCharts.tsx:258 | |
| 2968 | +#. Source: src/components/cache/TrendCharts.tsx:263 | |
| 2832 | 2969 | #: assets/admin.js |
| 2833 | 2970 | msgid "Benchmark trend" |
| 2834 | 2971 | msgstr "" |
| 2835 | 2972 | |
| 2836 | -#. Source: src/components/cache/TrendCharts.tsx:134 | |
| 2973 | +#. Source: src/components/cache/TrendCharts.tsx:139 | |
| 2837 | 2974 | #: assets/admin.js |
| 2838 | 2975 | msgid "Benchmark: cached vs uncached (ms)" |
| 2839 | 2976 | msgstr "" |
| 2840 | 2977 | |
| @@ -2847,14 +2984,14 @@ | ||
| 2847 | 2984 | #: assets/admin.js |
| 2848 | 2985 | msgid "Book a free setup review with our team." |
| 2849 | 2986 | msgstr "" |
| 2850 | 2987 | |
| 2851 | -#. Source: src/components/cache/CacheHero.tsx:247 | |
| 2988 | +#. Source: src/components/cache/CacheHero.tsx:242 | |
| 2852 | 2989 | #: assets/admin.js |
| 2853 | 2990 | msgid "bot / 404 requests in 24h — excluded from the hit ratio." |
| 2854 | 2991 | msgstr "" |
| 2855 | 2992 | |
| 2856 | -#. Source: src/components/TopBar.tsx:77 | |
| 2993 | +#. Source: src/components/TopBar.tsx:81 | |
| 2857 | 2994 | #: assets/admin.js |
| 2858 | 2995 | msgid "Breadcrumb" |
| 2859 | 2996 | msgstr "" |
| 2860 | 2997 | |
| @@ -2862,15 +2999,34 @@ | ||
| 2862 | 2999 | #: assets/admin.js |
| 2863 | 3000 | msgid "Browse all" |
| 2864 | 3001 | msgstr "" |
| 2865 | 3002 | |
| 2866 | -#. Source: src/components/sidebarGroups.ts:69 | |
| 3003 | +#. Source: src/components/sidebarGroups.ts:79 | |
| 2867 | 3004 | #: assets/admin.js |
| 2868 | 3005 | msgid "Cache" |
| 2869 | 3006 | msgstr "" |
| 2870 | 3007 | |
| 2871 | -#. Source: src/App.tsx:309 | |
| 3008 | +#. Source: src/components/purgeOutcome.ts:84 | |
| 2872 | 3009 | #: assets/admin.js |
| 3010 | +msgid "Cache cleared: %d file (%s)." | |
| 3011 | +msgid_plural "Cache cleared: %d files (%s)." | |
| 3012 | +msgstr[0] "" | |
| 3013 | +msgstr[1] "" | |
| 3014 | + | |
| 3015 | +#. Source: src/components/purgeOutcome.ts:91 | |
| 3016 | +#: assets/admin.js | |
| 3017 | +msgid "Cache cleared: %d file." | |
| 3018 | +msgid_plural "Cache cleared: %d files." | |
| 3019 | +msgstr[0] "" | |
| 3020 | +msgstr[1] "" | |
| 3021 | + | |
| 3022 | +#. Source: src/components/purgeOutcome.ts:80 | |
| 3023 | +#: assets/admin.js | |
| 3024 | +msgid "Cache cleared." | |
| 3025 | +msgstr "" | |
| 3026 | + | |
| 3027 | +#. Source: src/App.tsx:331 | |
| 3028 | +#: assets/admin.js | |
| 2873 | 3029 | msgid "Cache could not be enabled." |
| 2874 | 3030 | msgstr "" |
| 2875 | 3031 | |
| 2876 | 3032 | #. Source: src/components/health/HealthHero.tsx:28 |
| @@ -2877,19 +3033,19 @@ | ||
| 2877 | 3033 | #: assets/admin.js |
| 2878 | 3034 | msgid "Cache coverage" |
| 2879 | 3035 | msgstr "" |
| 2880 | 3036 | |
| 2881 | -#. Source: src/App.tsx:321 | |
| 3037 | +#. Source: src/App.tsx:343 | |
| 2882 | 3038 | #: assets/admin.js |
| 2883 | 3039 | msgid "Cache disabled" |
| 2884 | 3040 | msgstr "" |
| 2885 | 3041 | |
| 2886 | -#. Source: src/App.tsx:321 | |
| 3042 | +#. Source: src/App.tsx:343 | |
| 2887 | 3043 | #: assets/admin.js |
| 2888 | 3044 | msgid "Cache enabled" |
| 2889 | 3045 | msgstr "" |
| 2890 | 3046 | |
| 2891 | -#. Source: src/App.tsx:315 | |
| 3047 | +#. Source: src/App.tsx:337 | |
| 2892 | 3048 | #: assets/admin.js |
| 2893 | 3049 | msgid "Cache enabled, but nothing will be cached until WP_CACHE is added to wp-config.php — copy the line from Health." |
| 2894 | 3050 | msgstr "" |
| 2895 | 3051 | |
| @@ -2922,10 +3078,15 @@ | ||
| 2922 | 3078 | #: assets/admin.js |
| 2923 | 3079 | msgid "Cache optimized" |
| 2924 | 3080 | msgstr "" |
| 2925 | 3081 | |
| 2926 | -#. Source: src/App.tsx:339 | |
| 3082 | +#. Source: src/components/purgeOutcome.ts:53 | |
| 2927 | 3083 | #: assets/admin.js |
| 3084 | +msgid "Cache partly cleared." | |
| 3085 | +msgstr "" | |
| 3086 | + | |
| 3087 | +#. Source: src/components/purgeOutcome.ts:29 | |
| 3088 | +#: assets/admin.js | |
| 2928 | 3089 | msgid "Cache purged" |
| 2929 | 3090 | msgstr "" |
| 2930 | 3091 | |
| 2931 | 3092 | #. Source: src/components/health/HealthHero.tsx:30 |
| @@ -2943,14 +3104,14 @@ | ||
| 2943 | 3104 | #: assets/admin.js |
| 2944 | 3105 | msgid "Cache, compression & more" |
| 2945 | 3106 | msgstr "" |
| 2946 | 3107 | |
| 2947 | -#. Source: src/components/cache/TrendCharts.tsx:270 | |
| 3108 | +#. Source: src/components/cache/TrendCharts.tsx:275 | |
| 2948 | 3109 | #: assets/admin.js |
| 2949 | 3110 | msgid "cached" |
| 2950 | 3111 | msgstr "" |
| 2951 | 3112 | |
| 2952 | -#. Source: src/components/cache/StatDrilldown.tsx:145 | |
| 3113 | +#. Source: src/components/cache/StatDrilldown.tsx:140 | |
| 2953 | 3114 | #. Source: src/components/health/HealthHero.tsx:29 |
| 2954 | 3115 | #. Source: src/components/overview/MetricGrid.tsx:45 |
| 2955 | 3116 | #: assets/admin.js |
| 2956 | 3117 | msgid "Cached pages" |
| @@ -2971,14 +3132,14 @@ | ||
| 2971 | 3132 | msgid "Caching — loading" |
| 2972 | 3133 | msgstr "" |
| 2973 | 3134 | |
| 2974 | 3135 | #. Source: src/components/CacheSwitch.tsx:261 |
| 2975 | -#. Source: src/components/cache/CacheHero.tsx:182 | |
| 3136 | +#. Source: src/components/cache/CacheHero.tsx:177 | |
| 2976 | 3137 | #: assets/admin.js |
| 2977 | 3138 | msgid "Cancel" |
| 2978 | 3139 | msgstr "" |
| 2979 | 3140 | |
| 2980 | -#. Source: src/components/sidebarGroups.ts:85 | |
| 3141 | +#. Source: src/components/sidebarGroups.ts:95 | |
| 2981 | 3142 | #: assets/admin.js |
| 2982 | 3143 | msgid "CDN and Cloudflare edge delivery." |
| 2983 | 3144 | msgstr "" |
| 2984 | 3145 | |
| @@ -3011,8 +3172,18 @@ | ||
| 3011 | 3172 | #: assets/admin.js |
| 3012 | 3173 | msgid "Clear" |
| 3013 | 3174 | msgstr "" |
| 3014 | 3175 | |
| 3176 | +#. Source: src/components/TopBar.tsx:173 | |
| 3177 | +#: assets/admin.js | |
| 3178 | +msgid "Cleared" | |
| 3179 | +msgstr "" | |
| 3180 | + | |
| 3181 | +#. Source: src/components/purgeOutcome.ts:62 | |
| 3182 | +#: assets/admin.js | |
| 3183 | +msgid "Cleared: %s." | |
| 3184 | +msgstr "" | |
| 3185 | + | |
| 3015 | 3186 | #. Source: src/components/cache/CacheBenchmark.tsx:126 |
| 3016 | 3187 | #: assets/admin.js |
| 3017 | 3188 | msgid "Click \"Run benchmark\" to compare load times." |
| 3018 | 3189 | msgstr "" |
| @@ -3063,10 +3234,15 @@ | ||
| 3063 | 3234 | #: assets/admin.js |
| 3064 | 3235 | msgid "Connect" |
| 3065 | 3236 | msgstr "" |
| 3066 | 3237 | |
| 3067 | -#. Source: src/components/TopBar.tsx:142 | |
| 3238 | +#. Source: src/components/sidebarGroups.ts:120 | |
| 3068 | 3239 | #: assets/admin.js |
| 3240 | +msgid "Connect an AI agent to this site, and control what AI features may use." | |
| 3241 | +msgstr "" | |
| 3242 | + | |
| 3243 | +#. Source: src/components/TopBar.tsx:138 | |
| 3244 | +#: assets/admin.js | |
| 3069 | 3245 | msgid "Connect Hub" |
| 3070 | 3246 | msgstr "" |
| 3071 | 3247 | |
| 3072 | 3248 | #. Source: src/components/score/ConnectHubModal.tsx:113 |
| @@ -3179,9 +3355,9 @@ | ||
| 3179 | 3355 | #: assets/admin.js |
| 3180 | 3356 | msgid "Could not check the test status." |
| 3181 | 3357 | msgstr "" |
| 3182 | 3358 | |
| 3183 | -#. Source: src/components/sidebarGroups.ts:99 | |
| 3359 | +#. Source: src/components/sidebarGroups.ts:109 | |
| 3184 | 3360 | #: assets/admin.js |
| 3185 | 3361 | msgid "Database cleanup, migration and logs." |
| 3186 | 3362 | msgstr "" |
| 3187 | 3363 | |
| @@ -3252,19 +3428,19 @@ | ||
| 3252 | 3428 | #: assets/admin.js |
| 3253 | 3429 | msgid "failed" |
| 3254 | 3430 | msgstr "" |
| 3255 | 3431 | |
| 3256 | -#. Source: src/App.tsx:325 | |
| 3432 | +#. Source: src/App.tsx:347 | |
| 3257 | 3433 | #: assets/admin.js |
| 3258 | 3434 | msgid "Failed to disable cache" |
| 3259 | 3435 | msgstr "" |
| 3260 | 3436 | |
| 3261 | -#. Source: src/App.tsx:325 | |
| 3437 | +#. Source: src/App.tsx:347 | |
| 3262 | 3438 | #: assets/admin.js |
| 3263 | 3439 | msgid "Failed to enable cache" |
| 3264 | 3440 | msgstr "" |
| 3265 | 3441 | |
| 3266 | -#. Source: src/App.tsx:273 | |
| 3442 | +#. Source: src/App.tsx:286 | |
| 3267 | 3443 | #: assets/admin.js |
| 3268 | 3444 | msgid "Failed to load" |
| 3269 | 3445 | msgstr "" |
| 3270 | 3446 | |
| @@ -3318,9 +3494,9 @@ | ||
| 3318 | 3494 | #: assets/admin.js |
| 3319 | 3495 | msgid "Go to Dashboard" |
| 3320 | 3496 | msgstr "" |
| 3321 | 3497 | |
| 3322 | -#. Source: src/onboarding/OnboardingApp.tsx:161 | |
| 3498 | +#. Source: src/onboarding/OnboardingApp.tsx:168 | |
| 3323 | 3499 | #: assets/admin.js |
| 3324 | 3500 | msgid "Go to the dashboard" |
| 3325 | 3501 | msgstr "" |
| 3326 | 3502 | |
| @@ -3339,9 +3515,9 @@ | ||
| 3339 | 3515 | #: assets/admin.js |
| 3340 | 3516 | msgid "GTmetrix test" |
| 3341 | 3517 | msgstr "" |
| 3342 | 3518 | |
| 3343 | -#. Source: src/components/sidebarGroups.ts:90 | |
| 3519 | +#. Source: src/components/sidebarGroups.ts:100 | |
| 3344 | 3520 | #: assets/admin.js |
| 3345 | 3521 | msgid "Health & insights" |
| 3346 | 3522 | msgstr "" |
| 3347 | 3523 | |
| @@ -3364,9 +3540,9 @@ | ||
| 3364 | 3540 | #: assets/admin.js |
| 3365 | 3541 | msgid "Hide" |
| 3366 | 3542 | msgstr "" |
| 3367 | 3543 | |
| 3368 | -#. Source: src/components/cache/TrendCharts.tsx:120 | |
| 3544 | +#. Source: src/components/cache/TrendCharts.tsx:125 | |
| 3369 | 3545 | #. Source: src/components/health/HealthHero.tsx:37 |
| 3370 | 3546 | #. Source: src/components/overview/MetricGrid.tsx:44 |
| 3371 | 3547 | #: assets/admin.js |
| 3372 | 3548 | msgid "Hit ratio" |
| @@ -3371,14 +3547,14 @@ | ||
| 3371 | 3547 | #: assets/admin.js |
| 3372 | 3548 | msgid "Hit ratio" |
| 3373 | 3549 | msgstr "" |
| 3374 | 3550 | |
| 3375 | -#. Source: src/components/cache/CacheHero.tsx:222 | |
| 3551 | +#. Source: src/components/cache/CacheHero.tsx:217 | |
| 3376 | 3552 | #: assets/admin.js |
| 3377 | 3553 | msgid "Hit Ratio · 24h" |
| 3378 | 3554 | msgstr "" |
| 3379 | 3555 | |
| 3380 | -#. Source: src/components/cache/CacheHero.tsx:222 | |
| 3556 | +#. Source: src/components/cache/CacheHero.tsx:217 | |
| 3381 | 3557 | #: assets/admin.js |
| 3382 | 3558 | msgid "Hit Ratio · 24h · origin" |
| 3383 | 3559 | msgstr "" |
| 3384 | 3560 | |
| @@ -3386,9 +3562,9 @@ | ||
| 3386 | 3562 | #: assets/admin.js |
| 3387 | 3563 | msgid "Hit ratio and benchmark history, with your settings changes marked." |
| 3388 | 3564 | msgstr "" |
| 3389 | 3565 | |
| 3390 | -#. Source: src/components/cache/TrendCharts.tsx:222 | |
| 3566 | +#. Source: src/components/cache/TrendCharts.tsx:227 | |
| 3391 | 3567 | #: assets/admin.js |
| 3392 | 3568 | msgid "Hit ratio trend" |
| 3393 | 3569 | msgstr "" |
| 3394 | 3570 | |
| @@ -3406,18 +3582,13 @@ | ||
| 3406 | 3582 | #: assets/admin.js |
| 3407 | 3583 | msgid "hrs" |
| 3408 | 3584 | msgstr "" |
| 3409 | 3585 | |
| 3410 | -#. Source: src/components/TopBar.tsx:142 | |
| 3586 | +#. Source: src/components/TopBar.tsx:138 | |
| 3411 | 3587 | #: assets/admin.js |
| 3412 | 3588 | msgid "Hub connected" |
| 3413 | 3589 | msgstr "" |
| 3414 | 3590 | |
| 3415 | -#. Source: src/components/sidebarGroups.ts:106 | |
| 3416 | -#: assets/admin.js | |
| 3417 | -msgid "Hub, MCP access, AI provider and privacy." | |
| 3418 | -msgstr "" | |
| 3419 | - | |
| 3420 | 3591 | #. Source: src/onboarding/steps/Connect.tsx:132 |
| 3421 | 3592 | #: assets/admin.js |
| 3422 | 3593 | msgid "I'll connect later" |
| 3423 | 3594 | msgstr "" |
| @@ -3436,9 +3607,9 @@ | ||
| 3436 | 3607 | #: assets/admin.js |
| 3437 | 3608 | msgid "It takes a few seconds." |
| 3438 | 3609 | msgstr "" |
| 3439 | 3610 | |
| 3440 | -#. Source: src/components/cache/CacheHero.tsx:225 | |
| 3611 | +#. Source: src/components/cache/CacheHero.tsx:220 | |
| 3441 | 3612 | #: assets/admin.js |
| 3442 | 3613 | msgid "jump to the hit-ratio trend" |
| 3443 | 3614 | msgstr "" |
| 3444 | 3615 | |
| @@ -3476,9 +3647,9 @@ | ||
| 3476 | 3647 | #: assets/admin.js |
| 3477 | 3648 | msgid "Last purged" |
| 3478 | 3649 | msgstr "" |
| 3479 | 3650 | |
| 3480 | -#. Source: src/components/cache/TrendCharts.tsx:236 | |
| 3651 | +#. Source: src/components/cache/TrendCharts.tsx:241 | |
| 3481 | 3652 | #: assets/admin.js |
| 3482 | 3653 | msgid "Latest" |
| 3483 | 3654 | msgstr "" |
| 3484 | 3655 | |
| @@ -3486,15 +3657,15 @@ | ||
| 3486 | 3657 | #: assets/admin.js |
| 3487 | 3658 | msgid "Learn more about Pro" |
| 3488 | 3659 | msgstr "" |
| 3489 | 3660 | |
| 3490 | -#. Source: src/upsell/LockedSection.tsx:69 | |
| 3491 | -#. Source: src/upsell/ProDemo.tsx:59 | |
| 3661 | +#. Source: src/upsell/LockedSection.tsx:70 | |
| 3662 | +#. Source: src/upsell/ProDemo.tsx:60 | |
| 3492 | 3663 | #: assets/admin.js |
| 3493 | 3664 | msgid "License" |
| 3494 | 3665 | msgstr "" |
| 3495 | 3666 | |
| 3496 | -#. Source: src/components/sidebarGroups.ts:113 | |
| 3667 | +#. Source: src/components/sidebarGroups.ts:128 | |
| 3497 | 3668 | #: assets/admin.js |
| 3498 | 3669 | msgid "License, branding, multisite and support." |
| 3499 | 3670 | msgstr "" |
| 3500 | 3671 | |
| @@ -3507,9 +3678,9 @@ | ||
| 3507 | 3678 | #: assets/admin.js |
| 3508 | 3679 | msgid "Lighthouse performance, out of 100" |
| 3509 | 3680 | msgstr "" |
| 3510 | 3681 | |
| 3511 | -#. Source: src/App.tsx:384 | |
| 3682 | +#. Source: src/App.tsx:456 | |
| 3512 | 3683 | #. Source: src/components/GroupLanding.tsx:67 |
| 3513 | 3684 | #. Source: src/components/LogsView.tsx:35 |
| 3514 | 3685 | #: assets/admin.js |
| 3515 | 3686 | msgid "Logs" |
| @@ -3576,9 +3747,9 @@ | ||
| 3576 | 3747 | #: assets/admin.js |
| 3577 | 3748 | msgid "min" |
| 3578 | 3749 | msgstr "" |
| 3579 | 3750 | |
| 3580 | -#. Source: src/components/sidebarGroups.ts:78 | |
| 3751 | +#. Source: src/components/sidebarGroups.ts:88 | |
| 3581 | 3752 | #: assets/admin.js |
| 3582 | 3753 | msgid "Minify, compress, lazy-load, fonts and hints." |
| 3583 | 3754 | msgstr "" |
| 3584 | 3755 | |
| @@ -3620,9 +3791,9 @@ | ||
| 3620 | 3791 | #: assets/admin.js |
| 3621 | 3792 | msgid "Negligible difference — page is cheap to render or cache is cold." |
| 3622 | 3793 | msgstr "" |
| 3623 | 3794 | |
| 3624 | -#. Source: src/components/sidebarGroups.ts:83 | |
| 3795 | +#. Source: src/components/sidebarGroups.ts:93 | |
| 3625 | 3796 | #: assets/admin.js |
| 3626 | 3797 | msgid "Network" |
| 3627 | 3798 | msgstr "" |
| 3628 | 3799 | |
| @@ -3691,9 +3862,9 @@ | ||
| 3691 | 3862 | #: assets/admin.js |
| 3692 | 3863 | msgid "No performance score measured yet" |
| 3693 | 3864 | msgstr "" |
| 3694 | 3865 | |
| 3695 | -#. Source: src/components/cache/StatDrilldown.tsx:343 | |
| 3866 | +#. Source: src/components/cache/StatDrilldown.tsx:338 | |
| 3696 | 3867 | #: assets/admin.js |
| 3697 | 3868 | msgid "No purges recorded yet." |
| 3698 | 3869 | msgstr "" |
| 3699 | 3870 | |
| @@ -3726,9 +3897,9 @@ | ||
| 3726 | 3897 | #: assets/admin.js |
| 3727 | 3898 | msgid "Not now" |
| 3728 | 3899 | msgstr "" |
| 3729 | 3900 | |
| 3730 | -#. Source: src/components/cache/StatDrilldown.tsx:149 | |
| 3901 | +#. Source: src/components/cache/StatDrilldown.tsx:144 | |
| 3731 | 3902 | #: assets/admin.js |
| 3732 | 3903 | msgid "Nothing cached yet. Visit a page as a logged-out visitor to warm the cache." |
| 3733 | 3904 | msgstr "" |
| 3734 | 3905 | |
| @@ -3736,9 +3907,9 @@ | ||
| 3736 | 3907 | #: assets/admin.js |
| 3737 | 3908 | msgid "Nothing is sent anywhere until you press this." |
| 3738 | 3909 | msgstr "" |
| 3739 | 3910 | |
| 3740 | -#. Source: src/components/cache/StatDrilldown.tsx:252 | |
| 3911 | +#. Source: src/components/cache/StatDrilldown.tsx:247 | |
| 3741 | 3912 | #: assets/admin.js |
| 3742 | 3913 | msgid "Nothing on disk yet." |
| 3743 | 3914 | msgstr "" |
| 3744 | 3915 | |
| @@ -3756,9 +3927,9 @@ | ||
| 3756 | 3927 | #. Source: src/components/Sidebar.tsx:334 |
| 3757 | 3928 | #. Source: src/components/Sidebar.tsx:335 |
| 3758 | 3929 | #. Source: src/components/Sidebar.tsx:370 |
| 3759 | 3930 | #. Source: src/components/Sidebar.tsx:371 |
| 3760 | -#. Source: src/components/cache/StatDrilldown.tsx:216 | |
| 3931 | +#. Source: src/components/cache/StatDrilldown.tsx:211 | |
| 3761 | 3932 | #: assets/admin.js |
| 3762 | 3933 | msgid "of" |
| 3763 | 3934 | msgstr "" |
| 3764 | 3935 | |
| @@ -3806,9 +3977,9 @@ | ||
| 3806 | 3977 | #: assets/admin.js |
| 3807 | 3978 | msgid "on your xSpeed Hub account." |
| 3808 | 3979 | msgstr "" |
| 3809 | 3980 | |
| 3810 | -#. Source: src/onboarding/OnboardingApp.tsx:152 | |
| 3981 | +#. Source: src/onboarding/OnboardingApp.tsx:159 | |
| 3811 | 3982 | #: assets/admin.js |
| 3812 | 3983 | msgid "Onboarding data unavailable" |
| 3813 | 3984 | msgstr "" |
| 3814 | 3985 | |
| @@ -3826,9 +3997,9 @@ | ||
| 3826 | 3997 | #: assets/admin.js |
| 3827 | 3998 | msgid "Open MCP" |
| 3828 | 3999 | msgstr "" |
| 3829 | 4000 | |
| 3830 | -#. Source: src/components/TopBar.tsx:84 | |
| 4001 | +#. Source: src/components/TopBar.tsx:88 | |
| 3831 | 4002 | #: assets/admin.js |
| 3832 | 4003 | msgid "Open navigation" |
| 3833 | 4004 | msgstr "" |
| 3834 | 4005 | |
| @@ -3836,9 +4007,9 @@ | ||
| 3836 | 4007 | #: assets/admin.js |
| 3837 | 4008 | msgid "Open the full report" |
| 3838 | 4009 | msgstr "" |
| 3839 | 4010 | |
| 3840 | -#. Source: src/components/sidebarGroups.ts:76 | |
| 4011 | +#. Source: src/components/sidebarGroups.ts:86 | |
| 3841 | 4012 | #: assets/admin.js |
| 3842 | 4013 | msgid "Optimization" |
| 3843 | 4014 | msgstr "" |
| 3844 | 4015 | |
| @@ -3862,19 +4033,19 @@ | ||
| 3862 | 4033 | #: assets/admin.js |
| 3863 | 4034 | msgid "Over a month old — may not reflect the site now." |
| 3864 | 4035 | msgstr "" |
| 3865 | 4036 | |
| 3866 | -#. Source: src/components/cache/StatDrilldown.tsx:166 | |
| 4037 | +#. Source: src/components/cache/StatDrilldown.tsx:161 | |
| 3867 | 4038 | #: assets/admin.js |
| 3868 | 4039 | msgid "Page" |
| 3869 | 4040 | msgstr "" |
| 3870 | 4041 | |
| 3871 | -#. Source: src/components/sidebarGroups.ts:71 | |
| 4042 | +#. Source: src/components/sidebarGroups.ts:81 | |
| 3872 | 4043 | #: assets/admin.js |
| 3873 | 4044 | msgid "Page, object and browser caching, plus preload." |
| 3874 | 4045 | msgstr "" |
| 3875 | 4046 | |
| 3876 | -#. Source: src/components/cache/StatDrilldown.tsx:283 | |
| 4047 | +#. Source: src/components/cache/StatDrilldown.tsx:278 | |
| 3877 | 4048 | #: assets/admin.js |
| 3878 | 4049 | msgid "Pages without one are compressed by the server when requested." |
| 3879 | 4050 | msgstr "" |
| 3880 | 4051 | |
| @@ -3892,10 +4063,15 @@ | ||
| 3892 | 4063 | #: assets/admin.js |
| 3893 | 4064 | msgid "Partial scan — some checks could not run, so the score covers less than the full rubric." |
| 3894 | 4065 | msgstr "" |
| 3895 | 4066 | |
| 3896 | -#. Source: src/components/migration/MigrationPanel.tsx:795 | |
| 4067 | +#. Source: src/components/TopBar.tsx:177 | |
| 3897 | 4068 | #: assets/admin.js |
| 4069 | +msgid "Partly cleared" | |
| 4070 | +msgstr "" | |
| 4071 | + | |
| 4072 | +#. Source: src/components/migration/MigrationPanel.tsx:800 | |
| 4073 | +#: assets/admin.js | |
| 3898 | 4074 | msgid "Paste an xSpeed profile JSON here, or choose a .json file below." |
| 3899 | 4075 | msgstr "" |
| 3900 | 4076 | |
| 3901 | 4077 | #. Source: src/onboarding/steps/Connect.tsx:226 |
| @@ -3935,9 +4111,9 @@ | ||
| 3935 | 4111 | #: assets/admin.js |
| 3936 | 4112 | msgid "Pick two runs to compare them." |
| 3937 | 4113 | msgstr "" |
| 3938 | 4114 | |
| 3939 | -#. Source: src/components/cache/StatDrilldown.tsx:282 | |
| 4115 | +#. Source: src/components/cache/StatDrilldown.tsx:277 | |
| 3940 | 4116 | #: assets/admin.js |
| 3941 | 4117 | msgid "Precompressed copies on disk:" |
| 3942 | 4118 | msgstr "" |
| 3943 | 4119 | |
| @@ -3945,20 +4121,37 @@ | ||
| 3945 | 4121 | #: assets/admin.js |
| 3946 | 4122 | msgid "Preload" |
| 3947 | 4123 | msgstr "" |
| 3948 | 4124 | |
| 3949 | -#. Source: src/App.tsx:354 | |
| 4125 | +#. Source: src/App.tsx:423 | |
| 3950 | 4126 | #: assets/admin.js |
| 3951 | 4127 | msgid "Preload could not start" |
| 3952 | 4128 | msgstr "" |
| 3953 | 4129 | |
| 3954 | -#. Source: src/App.tsx:352 | |
| 4130 | +#. Source: src/App.tsx:422 | |
| 3955 | 4131 | #: assets/admin.js |
| 3956 | -msgid "Preload started" | |
| 4132 | +msgid "Preload could not start: %s" | |
| 3957 | 4133 | msgstr "" |
| 3958 | 4134 | |
| 3959 | -#. Source: src/upsell/ProDemo.tsx:117 | |
| 4135 | +#. Source: src/App.tsx:410 | |
| 3960 | 4136 | #: assets/admin.js |
| 4137 | +msgid "Preload found no pages to warm" | |
| 4138 | +msgstr "" | |
| 4139 | + | |
| 4140 | +#. Source: src/App.tsx:409 | |
| 4141 | +#: assets/admin.js | |
| 4142 | +msgid "Preload found no pages to warm: %s" | |
| 4143 | +msgstr "" | |
| 4144 | + | |
| 4145 | +#. Source: src/App.tsx:399 | |
| 4146 | +#: assets/admin.js | |
| 4147 | +msgid "Preloading %d page" | |
| 4148 | +msgid_plural "Preloading %d pages" | |
| 4149 | +msgstr[0] "" | |
| 4150 | +msgstr[1] "" | |
| 4151 | + | |
| 4152 | +#. Source: src/upsell/ProDemo.tsx:118 | |
| 4153 | +#: assets/admin.js | |
| 3961 | 4154 | msgid "Preview" |
| 3962 | 4155 | msgstr "" |
| 3963 | 4156 | |
| 3964 | 4157 | #. Source: src/components/Sidebar.tsx:300 |
| @@ -3967,12 +4160,14 @@ | ||
| 3967 | 4160 | msgstr "" |
| 3968 | 4161 | |
| 3969 | 4162 | #. Source: src/components/GroupLanding.tsx:32 |
| 3970 | 4163 | #. Source: src/components/ModuleHeader.tsx:23 |
| 4164 | +#. Source: src/components/Tabs.tsx:97 | |
| 4165 | +#. Source: src/components/migration/MigrationPanel.tsx:650 | |
| 3971 | 4166 | #. Source: src/components/overview/FeatureMap.tsx:38 |
| 3972 | -#. Source: src/upsell/LockedSection.tsx:69 | |
| 4167 | +#. Source: src/upsell/LockedSection.tsx:70 | |
| 3973 | 4168 | #. Source: src/upsell/ProAudit.tsx:66 |
| 3974 | -#. Source: src/upsell/ProDemo.tsx:59 | |
| 4169 | +#. Source: src/upsell/ProDemo.tsx:60 | |
| 3975 | 4170 | #. Source: src/upsell/ProTeaser.tsx:45 |
| 3976 | 4171 | #: assets/admin.js |
| 3977 | 4172 | msgid "Pro" |
| 3978 | 4173 | msgstr "" |
| @@ -4010,9 +4205,9 @@ | ||
| 4010 | 4205 | #: assets/admin.js |
| 4011 | 4206 | msgid "Pro unlocks this module + every other locked row in the sidebar. Your current Free settings stay unchanged." |
| 4012 | 4207 | msgstr "" |
| 4013 | 4208 | |
| 4014 | -#. Source: src/components/migration/MigrationPanel.tsx:797 | |
| 4209 | +#. Source: src/components/migration/MigrationPanel.tsx:802 | |
| 4015 | 4210 | #: assets/admin.js |
| 4016 | 4211 | msgid "Profile JSON to import" |
| 4017 | 4212 | msgstr "" |
| 4018 | 4213 | |
| @@ -4021,20 +4216,31 @@ | ||
| 4021 | 4216 | msgid "pts" |
| 4022 | 4217 | msgstr "" |
| 4023 | 4218 | |
| 4024 | 4219 | #. Source: src/components/CommandPalette.tsx:58 |
| 4025 | -#. Source: src/components/TopBar.tsx:134 | |
| 4220 | +#. Source: src/components/TopBar.tsx:180 | |
| 4026 | 4221 | #: assets/admin.js |
| 4027 | 4222 | msgid "Purge all" |
| 4028 | 4223 | msgstr "" |
| 4029 | 4224 | |
| 4030 | -#. Source: src/App.tsx:341 | |
| 4225 | +#. Source: src/App.tsx:370 | |
| 4226 | +#. Source: src/components/TopBar.tsx:179 | |
| 4031 | 4227 | #: assets/admin.js |
| 4032 | 4228 | msgid "Purge failed" |
| 4033 | 4229 | msgstr "" |
| 4034 | 4230 | |
| 4035 | -#. Source: src/components/cache/StatDrilldown.tsx:336 | |
| 4231 | +#. Source: src/App.tsx:370 | |
| 4036 | 4232 | #: assets/admin.js |
| 4233 | +msgid "Purge failed: %s" | |
| 4234 | +msgstr "" | |
| 4235 | + | |
| 4236 | +#. Source: src/components/purgeOutcome.ts:54 | |
| 4237 | +#: assets/admin.js | |
| 4238 | +msgid "Purge failed." | |
| 4239 | +msgstr "" | |
| 4240 | + | |
| 4241 | +#. Source: src/components/cache/StatDrilldown.tsx:331 | |
| 4242 | +#: assets/admin.js | |
| 4037 | 4243 | msgid "Purge history" |
| 4038 | 4244 | msgstr "" |
| 4039 | 4245 | |
| 4040 | 4246 | #. Source: src/onboarding/steps/Connect.tsx:94 |
| @@ -4083,9 +4289,9 @@ | ||
| 4083 | 4289 | #: assets/admin.js |
| 4084 | 4290 | msgid "Recent cache and settings activity." |
| 4085 | 4291 | msgstr "" |
| 4086 | 4292 | |
| 4087 | -#. Source: src/components/cache/TrendCharts.tsx:148 | |
| 4293 | +#. Source: src/components/cache/TrendCharts.tsx:153 | |
| 4088 | 4294 | #: assets/admin.js |
| 4089 | 4295 | msgid "Recent changes" |
| 4090 | 4296 | msgstr "" |
| 4091 | 4297 | |
| @@ -4099,9 +4305,9 @@ | ||
| 4099 | 4305 | #: assets/admin.js |
| 4100 | 4306 | msgid "Recommended:" |
| 4101 | 4307 | msgstr "" |
| 4102 | 4308 | |
| 4103 | -#. Source: src/components/cache/StatDrilldown.tsx:109 | |
| 4309 | +#. Source: src/components/cache/StatDrilldown.tsx:104 | |
| 4104 | 4310 | #: assets/admin.js |
| 4105 | 4311 | msgid "Refresh" |
| 4106 | 4312 | msgstr "" |
| 4107 | 4313 | |
| @@ -4109,9 +4315,9 @@ | ||
| 4109 | 4315 | #: assets/admin.js |
| 4110 | 4316 | msgid "Refresh activity log" |
| 4111 | 4317 | msgstr "" |
| 4112 | 4318 | |
| 4113 | -#. Source: src/components/cache/TrendCharts.tsx:108 | |
| 4319 | +#. Source: src/components/cache/TrendCharts.tsx:113 | |
| 4114 | 4320 | #: assets/admin.js |
| 4115 | 4321 | msgid "Refresh trends" |
| 4116 | 4322 | msgstr "" |
| 4117 | 4323 | |
| @@ -4195,9 +4401,9 @@ | ||
| 4195 | 4401 | #: assets/admin.js |
| 4196 | 4402 | msgid "Run test" |
| 4197 | 4403 | msgstr "" |
| 4198 | 4404 | |
| 4199 | -#. Source: src/components/cache/TrendCharts.tsx:139 | |
| 4405 | +#. Source: src/components/cache/TrendCharts.tsx:144 | |
| 4200 | 4406 | #: assets/admin.js |
| 4201 | 4407 | msgid "Run the benchmark at least twice to see a trend." |
| 4202 | 4408 | msgstr "" |
| 4203 | 4409 | |
| @@ -4266,10 +4472,10 @@ | ||
| 4266 | 4472 | #: assets/admin.js |
| 4267 | 4473 | msgid "Score strategy" |
| 4268 | 4474 | msgstr "" |
| 4269 | 4475 | |
| 4270 | -#. Source: src/components/TopBar.tsx:110 | |
| 4271 | -#. Source: src/components/TopBar.tsx:115 | |
| 4476 | +#. Source: src/components/TopBar.tsx:114 | |
| 4477 | +#. Source: src/components/TopBar.tsx:119 | |
| 4272 | 4478 | #: assets/admin.js |
| 4273 | 4479 | msgid "Search" |
| 4274 | 4480 | msgstr "" |
| 4275 | 4481 | |
| @@ -4328,24 +4534,24 @@ | ||
| 4328 | 4534 | #: assets/admin.js |
| 4329 | 4535 | msgid "Show less" |
| 4330 | 4536 | msgstr "" |
| 4331 | 4537 | |
| 4332 | -#. Source: src/components/cache/CacheHero.tsx:219 | |
| 4538 | +#. Source: src/components/cache/CacheHero.tsx:214 | |
| 4333 | 4539 | #: assets/admin.js |
| 4334 | 4540 | msgid "show what cleared the cache and why" |
| 4335 | 4541 | msgstr "" |
| 4336 | 4542 | |
| 4337 | -#. Source: src/components/cache/CacheHero.tsx:212 | |
| 4543 | +#. Source: src/components/cache/CacheHero.tsx:207 | |
| 4338 | 4544 | #: assets/admin.js |
| 4339 | 4545 | msgid "show what is taking the space" |
| 4340 | 4546 | msgstr "" |
| 4341 | 4547 | |
| 4342 | -#. Source: src/components/cache/CacheHero.tsx:205 | |
| 4548 | +#. Source: src/components/cache/CacheHero.tsx:200 | |
| 4343 | 4549 | #: assets/admin.js |
| 4344 | 4550 | msgid "show which pages are cached" |
| 4345 | 4551 | msgstr "" |
| 4346 | 4552 | |
| 4347 | -#. Source: src/components/cache/StatDrilldown.tsx:216 | |
| 4553 | +#. Source: src/components/cache/StatDrilldown.tsx:211 | |
| 4348 | 4554 | #: assets/admin.js |
| 4349 | 4555 | msgid "Showing" |
| 4350 | 4556 | msgstr "" |
| 4351 | 4557 | |
| @@ -4358,14 +4564,14 @@ | ||
| 4358 | 4564 | #: assets/admin.js |
| 4359 | 4565 | msgid "Site URL" |
| 4360 | 4566 | msgstr "" |
| 4361 | 4567 | |
| 4362 | -#. Source: src/components/cache/StatDrilldown.tsx:167 | |
| 4568 | +#. Source: src/components/cache/StatDrilldown.tsx:162 | |
| 4363 | 4569 | #: assets/admin.js |
| 4364 | 4570 | msgid "Size" |
| 4365 | 4571 | msgstr "" |
| 4366 | 4572 | |
| 4367 | -#. Source: src/components/sidebarGroups.ts:92 | |
| 4573 | +#. Source: src/components/sidebarGroups.ts:102 | |
| 4368 | 4574 | #: assets/admin.js |
| 4369 | 4575 | msgid "Speed score, diagnostics and analytics." |
| 4370 | 4576 | msgstr "" |
| 4371 | 4577 | |
| @@ -4378,9 +4584,9 @@ | ||
| 4378 | 4584 | #: assets/admin.js |
| 4379 | 4585 | msgid "Static rewrite may not be available on this host" |
| 4380 | 4586 | msgstr "" |
| 4381 | 4587 | |
| 4382 | -#. Source: src/components/cache/StatDrilldown.tsx:169 | |
| 4588 | +#. Source: src/components/cache/StatDrilldown.tsx:164 | |
| 4383 | 4589 | #: assets/admin.js |
| 4384 | 4590 | msgid "Stored" |
| 4385 | 4591 | msgstr "" |
| 4386 | 4592 | |
| @@ -4388,14 +4594,14 @@ | ||
| 4388 | 4594 | #: assets/admin.js |
| 4389 | 4595 | msgid "succeeded" |
| 4390 | 4596 | msgstr "" |
| 4391 | 4597 | |
| 4392 | -#. Source: src/components/TopBar.tsx:148 | |
| 4598 | +#. Source: src/components/TopBar.tsx:144 | |
| 4393 | 4599 | #: assets/admin.js |
| 4394 | 4600 | msgid "Switch to dark mode" |
| 4395 | 4601 | msgstr "" |
| 4396 | 4602 | |
| 4397 | -#. Source: src/components/TopBar.tsx:148 | |
| 4603 | +#. Source: src/components/TopBar.tsx:144 | |
| 4398 | 4604 | #: assets/admin.js |
| 4399 | 4605 | msgid "Switch to light mode" |
| 4400 | 4606 | msgstr "" |
| 4401 | 4607 | |
| @@ -4408,9 +4614,9 @@ | ||
| 4408 | 4614 | #: assets/admin.js |
| 4409 | 4615 | msgid "Take over the page cache from %s?" |
| 4410 | 4616 | msgstr "" |
| 4411 | 4617 | |
| 4412 | -#. Source: src/components/cache/TrendCharts.tsx:240 | |
| 4618 | +#. Source: src/components/cache/TrendCharts.tsx:245 | |
| 4413 | 4619 | #: assets/admin.js |
| 4414 | 4620 | msgid "target ≥80%" |
| 4415 | 4621 | msgstr "" |
| 4416 | 4622 | |
| @@ -4429,15 +4635,30 @@ | ||
| 4429 | 4635 | #: assets/admin.js |
| 4430 | 4636 | msgid "Testing…" |
| 4431 | 4637 | msgstr "" |
| 4432 | 4638 | |
| 4639 | +#. Source: src/components/purgeOutcome.ts:70 | |
| 4640 | +#: assets/admin.js | |
| 4641 | +msgid "The cache was already empty, so there was nothing to clear." | |
| 4642 | +msgstr "" | |
| 4643 | + | |
| 4433 | 4644 | #. Source: src/components/overview/ScoreCard.tsx:207 |
| 4434 | 4645 | #: assets/admin.js |
| 4435 | 4646 | msgid "The last scan did not complete." |
| 4436 | 4647 | msgstr "" |
| 4437 | 4648 | |
| 4438 | -#. Source: src/components/cache/StatDrilldown.tsx:156 | |
| 4649 | +#. Source: src/components/purgeOutcome.ts:78 | |
| 4439 | 4650 | #: assets/admin.js |
| 4651 | +msgid "The page cache was already empty." | |
| 4652 | +msgstr "" | |
| 4653 | + | |
| 4654 | +#. Source: src/components/purgeOutcome.ts:63 | |
| 4655 | +#: assets/admin.js | |
| 4656 | +msgid "There was nothing to clear." | |
| 4657 | +msgstr "" | |
| 4658 | + | |
| 4659 | +#. Source: src/components/cache/StatDrilldown.tsx:151 | |
| 4660 | +#: assets/admin.js | |
| 4440 | 4661 | msgid "This cache is large enough that the scan stopped early — the list below is a recent sample, not every page." |
| 4441 | 4662 | msgstr "" |
| 4442 | 4663 | |
| 4443 | 4664 | #. Source: src/components/SecretField.tsx:93 |
| @@ -4465,9 +4686,9 @@ | ||
| 4465 | 4686 | msgid "Token" |
| 4466 | 4687 | msgstr "" |
| 4467 | 4688 | |
| 4468 | 4689 | #. Source: src/components/LogsView.tsx:34 |
| 4469 | -#. Source: src/components/sidebarGroups.ts:97 | |
| 4690 | +#. Source: src/components/sidebarGroups.ts:107 | |
| 4470 | 4691 | #: assets/admin.js |
| 4471 | 4692 | msgid "Tools" |
| 4472 | 4693 | msgstr "" |
| 4473 | 4694 | |
| @@ -4475,9 +4696,9 @@ | ||
| 4475 | 4696 | #: assets/admin.js |
| 4476 | 4697 | msgid "Trends" |
| 4477 | 4698 | msgstr "" |
| 4478 | 4699 | |
| 4479 | -#. Source: src/components/cache/TrendCharts.tsx:126 | |
| 4700 | +#. Source: src/components/cache/TrendCharts.tsx:131 | |
| 4480 | 4701 | #: assets/admin.js |
| 4481 | 4702 | msgid "Trends appear after a couple of days of traffic. The daily series is being collected now." |
| 4482 | 4703 | msgstr "" |
| 4483 | 4704 | |
| @@ -4505,9 +4726,9 @@ | ||
| 4505 | 4726 | #: assets/admin.js |
| 4506 | 4727 | msgid "Turn on the page cache to start serving pages instantly." |
| 4507 | 4728 | msgstr "" |
| 4508 | 4729 | |
| 4509 | -#. Source: src/components/cache/TrendCharts.tsx:273 | |
| 4730 | +#. Source: src/components/cache/TrendCharts.tsx:278 | |
| 4510 | 4731 | #: assets/admin.js |
| 4511 | 4732 | msgid "uncached" |
| 4512 | 4733 | msgstr "" |
| 4513 | 4734 | |
| @@ -4516,13 +4737,13 @@ | ||
| 4516 | 4737 | msgid "Under a minute" |
| 4517 | 4738 | msgstr "" |
| 4518 | 4739 | |
| 4519 | 4740 | #. Source: src/components/Sidebar.tsx:424 |
| 4520 | -#. Source: src/components/Sidebar.tsx:442 | |
| 4741 | +#. Source: src/components/Sidebar.tsx:445 | |
| 4521 | 4742 | #. Source: src/upsell/LockedPanel.tsx:116 |
| 4522 | -#. Source: src/upsell/LockedSection.tsx:97 | |
| 4743 | +#. Source: src/upsell/LockedSection.tsx:98 | |
| 4523 | 4744 | #. Source: src/upsell/ProAudit.tsx:113 |
| 4524 | -#. Source: src/upsell/ProDemo.tsx:101 | |
| 4745 | +#. Source: src/upsell/ProDemo.tsx:102 | |
| 4525 | 4746 | #. Source: src/upsell/ProOverview.tsx:83 |
| 4526 | 4747 | #: assets/admin.js |
| 4527 | 4748 | msgid "Upgrade to Pro" |
| 4528 | 4749 | msgstr "" |
| @@ -4556,9 +4777,9 @@ | ||
| 4556 | 4777 | #: assets/admin.js |
| 4557 | 4778 | msgid "Want a hand?" |
| 4558 | 4779 | msgstr "" |
| 4559 | 4780 | |
| 4560 | -#. Source: src/onboarding/OnboardingApp.tsx:155 | |
| 4781 | +#. Source: src/onboarding/OnboardingApp.tsx:162 | |
| 4561 | 4782 | #: assets/admin.js |
| 4562 | 4783 | msgid "We couldn't load the setup wizard. Your site is unaffected — you can configure everything from the dashboard." |
| 4563 | 4784 | msgstr "" |
| 4564 | 4785 | |
| @@ -4591,9 +4812,9 @@ | ||
| 4591 | 4812 | #: assets/admin.js |
| 4592 | 4813 | msgid "When" |
| 4593 | 4814 | msgstr "" |
| 4594 | 4815 | |
| 4595 | -#. Source: src/components/cache/StatDrilldown.tsx:248 | |
| 4816 | +#. Source: src/components/cache/StatDrilldown.tsx:243 | |
| 4596 | 4817 | #: assets/admin.js |
| 4597 | 4818 | msgid "Where the cache size goes" |
| 4598 | 4819 | msgstr "" |
| 4599 | 4820 | |