{"en":{"blogkit":{"plugin":{"readingTime":"{n} min read","words":"{n} words","toc":"On this page","share":"Share","copyLink":"Copy link","copied":"Link copied","author":"Written by","authorPosts":"{n} posts","morePosts":"More posts","popular":"Popular posts","tag":"Tag: {tag}","category":"Category: {name}","authorArchive":"Posts by {name}","noPosts":"No posts yet.","views":"{n} views"},"comments":{"title":"Comments","count":"No comments | 1 comment | {n} comments","empty":"Be the first to comment.","name":"Name","email":"E-mail (not published)","url":"Website (optional)","content":"Your comment","submit":"Post comment","reply":"Reply","replyingTo":"Replying to {name}","cancelReply":"Cancel","pending":"Thanks! Your comment is awaiting moderation.","posted":"Comment posted.","closed":"Comments are closed.","postNotFound":"This post does not accept comments.","parentMissing":"The comment you replied to is no longer available.","author":"Author","remember":"Remember me on this device"},"newsletter":{"title":"Get new posts by e-mail","hint":"No spam. Unsubscribe any time.","email":"Your e-mail","submit":"Subscribe","pending":"Almost done: check your inbox and confirm the subscription.","active":"You are subscribed. Thank you!","confirmed":"Subscription confirmed. Thank you!","unsubscribed":"You have been unsubscribed.","invalidLink":"This link is invalid or has expired.","working":"One moment…","resubscribed":"Your subscription is back on. Thank you!","unsubscribe":"Unsubscribe","resubscribe":"Subscribe again","unsubscribedHint":"You will not get new posts by e-mail any more. Changed your mind? Turn it back on with one click."},"admin":{"menu":"Comments","subscribers":"Subscribers","notActive":"The blog plugin is not active (enable it in Plugins).","status":{"pending":"Pending","approved":"Approved","spam":"Spam","trash":"Trash","all":"All","active":"Active","unsubscribed":"Unsubscribed"},"approve":"Approve","unapprove":"Unapprove","spam":"Spam","trash":"Trash","delete":"Delete permanently","reply":"Reply","send":"Send","confirmDelete":"Delete the selected comments permanently?","search":"Search comments","empty":"Nothing here.","on":"on","selected":"{n} selected","subscribersHint":"Sign-ups from the newsletter form. Double opt-in addresses stay pending until confirmed.","import":"Import","importHint":"Paste addresses, one per line or comma separated. They are added as active.","imported":"{added} added, {skipped} skipped","export":"Export CSV","mailings":"Newsletters","sendPost":"Send a post","postId":"Post ID","queued":"Queued; it is sent in batches by the scheduled task.","mailingStatus":{"queued":"Queued","sending":"Sending","done":"Sent","failed":"Failed"},"sent":"{sent} sent, {failed} failed","settings":"Blog settings"}},"admin":{"login":{"email":"Email","failed":"Login failed","password":"Password","submit":"Sign in","title":"Admin Login","verifyLabel":"I am not a robot","verifyRequired":"Please complete the verification","invalidCredentials":"Invalid email or password, please try again","tooManyAttempts":"You’ve tried signing in a few times. Please wait about 5 minutes and try again — thank you.","networkError":"Network error, please check your connection","forgot":"Forgot password?"},"nav":{"cases":"Cases","categories":"Categories","contacts":"Contacts","dashboard":"Dashboard","i18n":"Languages","logout":"Sign out","media":"Media","pages":"Pages","posts":"Posts","productCategories":"Product Categories","products":"Products","settings":"Settings","users":"Users","viewSite":"View site","translations":"Translations","languages":"Languages","email":"Email","tasks":"Scheduled Tasks","seo":"SEO","cache":"Cache","plugins":"Plugins","tools":"Tools","security":"Security","redirects":"Redirects","audit":"Audit log","account":"Account security","menu":"Menu","menus":"Menus","backups":"Backups","collections":"Content types","forms":"Forms","signIn":"Sign-in methods","home":"Homepage"},"seo":{"title":"SEO & AI GEO","perLocale":"Per-language SEO","global":"Global settings","tabSeo":"SEO","tabGeo":"AI GEO","perLocaleHint":"Title, description and keywords per language; hreflang and canonical tags are emitted automatically.","sitemap":"Sitemap","sitemapHint":"/sitemap.xml is a multilingual index pointing at /__sitemap__/LANG.xml. Every entry carries a last-modified time that follows your content.","matomo":{"title":"Analytics (Matomo)","hint":"With the Matomo URL and site ID set, the public site reports page views (client-side navigation too), referrers, site search, outlinks and downloads, 404 pages, JavaScript errors, time on page and load timings, and events such as forms and orders; server 5xx errors are recorded as events. Admin pages are not tracked.","url":"Matomo URL","siteId":"Site ID","cookieless":"Cookieless","cookielessHint":"No cookies (no consent banner needed for EU visitors); visitors are counted per day.","open":"Open reports"},"preconnect":{"title":"Preconnect","hint":"Public pages open these connections early (<link rel=\"preconnect\">), saving the 100-300 ms of DNS and TLS before the first request. The Matomo server is included automatically once Matomo is set up. Other origins (an image CDN, a font service): one per line, https only, 6 at most."},"geoIntro":"AI summary","geoIntroHint":"How the site introduces itself to AI search and answer engines (ChatGPT, Claude, Perplexity, Gemini). Served in /llms.txt and /api/public/ai-summary.","organization":"Organization (structured data)","organizationHint":"Generates schema.org Organization / WebSite JSON-LD so search engines and AI recognize the entity behind the site.","llms":"llms.txt","llmsHint":"Publishes an llmstxt.org index and a full-text dump that language models can read directly.","crawlers":"AI crawler policy","crawlersHint":"Written to robots.txt. Allowing answer engines helps the site get cited; training-only crawlers can be blocked separately.","allowAll":"Allow all","blockTraining":"Block training","blockAll":"Block all","allow":"Allow","disallow":"Disallow","preview":"Preview URLs","purpose":{"training":"model training","search":"AI search / answers","both":"training + search"},"fields":{"siteName":"Site name","siteTitle":"SEO title","siteDescription":"Meta description","siteKeywords":"Meta keywords","ogImage":"Default share image","googleVerification":"Google verification","bingSiteVerification":"Bing verification","baiduVerification":"Baidu verification","robotsTxt":"Extra robots rules","orgType":"Organization type","orgLogo":"Logo URL","orgSameAs":"Official profiles","geoSummary":"AI summary","geoAudience":"Audience and service area","geoLlmsTxt":"Publish /llms.txt","geoLlmsFull":"Publish /llms-full.txt (full text)"},"hints":{"siteName":"Site name shown for this language; empty falls back to the global name.","siteTitle":"Browser tab and search result title.","siteDescription":"Search snippet, 150-160 characters recommended.","siteKeywords":"Comma separated.","ogImage":"Default social share image URL.","robotsTxt":"Custom rules appended to robots.txt.","orgLogo":"PNG/SVG, at least 512x512 recommended.","orgSameAs":"One per line: LinkedIn, GitHub, X, WeChat page, etc.","geoSummary":"In 2-5 sentences: who you are, what you do, why you are different. AI engines quote this directly.","geoAudience":"e.g. Manufacturing and retail companies in China and Southeast Asia."}},"email":"Email","tasks":{"title":"Scheduled Tasks","newTask":"New Task","editTask":"Edit Task","empty":"No scheduled tasks yet","enabled":"Enabled","disabled":"Disabled","lastRun":"Last run","run":"Run now","logs":"Logs","noLogs":"No execution logs","executed":"Task executed","headers":"Headers","body":"Request Body"},"dashboard":"Dashboard","writePost":"Write Post","recentUpdates":"Recent Updates","noContent":"No content yet","posts":"Posts","pages":"Pages","published":"Published","drafts":"Drafts","categories":"Categories","media":"Media","status":"Status","noCategories":"No categories yet","noContacts":"No contact records","noProducts":"No products yet","noSettings":"No settings yet","noTranslations":"No translations yet","noLanguages":"No languages configured","confirmDelete":"Delete \"{name}\"? This action cannot be undone.","categoryDeletedHint":"Posts in this category will become uncategorized.","confirmDeleteLanguage":"Delete language \"{name}\" ({code})? Translation data will not be deleted.","name":"Name","slug":"Slug","description":"Description","actions":"Actions","edit":"Edit","delete":"Delete","cancel":"Cancel","create":"Create","update":{"available":"NuxtCMS v{latest} is available (you run v{current})","hint":"Run the upgrade command in the site project: it installs, migrates the database, builds and deploys.","copy":"Copy upgrade command","changelog":"Changelog"},"refresh":"Refresh","searchNameEmail":"Search name/email/content…","allStatuses":"All statuses","statusNew":"New","statusRead":"Read","statusReplied":"Replied","message":"Message","time":"Time","languageCode":"Language code","languageName":"Language name","languageAdded":"Language updated","languageAddFailed":"Add failed","languageUpdateFailed":"Update failed","languageDeleted":"Delete failed","fillAllFields":"Please fill in all fields","serverRestarting":"Server restarting…page will auto-refresh in a few seconds","loadFailed":"Load failed","slugHint":"Leave empty to auto-generate","operationFailed":"Operation failed","deleteFailed":"Delete failed","password":"Password","role":"Role","roleAdmin":"Admin","roleEditor":"Editor","passwordHint":"Leave empty to keep unchanged","passwordMinLength":"At least 6 characters","me":"(me)","updated":"Updated","created":"Created","deleted":"Deleted","confirmDeleteUser":"Delete user \"{name}\"?","editUser":"Edit User","newUser":"New User","mediaLibrary":"Media Library","uploadImage":"Upload Image","searchFilename":"Search filename…","mediaStorageHint":"Files stored in R2 (local filesystem in dev). Max 5MB per file.","uploadComplete":"Upload complete","midCopies":{"button":"Make medium-quality copies","progress":"Working {done}/{total}","done":"{done} images checked, {made} medium-quality copies made, {failed} failed","failed":"Could not make the medium-quality copies"},"uploadFailed":"Upload failed","linkCopied":"Link copied","copyFailed":"Copy failed","confirmDeleteMedia":"Delete this media file?","mediaEmpty":"Media library is empty","mediaEmptyHint":"Click upload button to add images.","fileTooLarge":"{name} is too large","maxFileSize":"Please upload images under 5MB","upload":"Upload file","loadMore":"Load more","mediaPickerHint":"Click an image to insert it; a new upload is inserted right away.","mediaNoMatch":"No matching files.","mediaEmptyPicker":"The media library is empty. Upload an image first.","insertFromLibrary":"Insert image from media library","productManagement":"Products","newProduct":"New Product","searchName":"Search name…","allLanguages":"All languages","language":"Language","category":"Category","updatedAt":"Updated","siteSettings":"Site Settings","newSetting":"New","searchKeyOrValue":"Search key or value…","all":"All","globalSettings":"Global","localizedSettings":"Localized","keyName":"Key","currentValue":"Value","localizedBadge":"Localized","emptyValue":"(empty)","translationManagement":"Translations","translated":"Translated","untranslated":"Untranslated","translationKey":"Translation Key","notTranslated":"(Not translated)","languageManagement":"Languages","generatePacks":"Generate Packs","addLanguage":"Add Language","noteTitle":"Note","languageHintRestart":"After adding or removing languages, restart the dev server (or redeploy) for new URL routes to take effect.","languageHintGenerate":"After editing translations, click \"Generate Packs\" to write database translations to i18n/locales/*.json files.","bcp47Tag":"BCP47 Tag","displayName":"Display Name","defaultBadge":"Default","fallbackBadge":"Fallback","setDefault":"Set as default","editLanguage":"Edit Language","quickSelect":"Quick select:","langCodeDesc":"Short code for URL, e.g. ja, ko, vi","bcp47Desc":"Full language tag, e.g. ja-JP, ko-KR","displayNameDesc":"Name shown in language switcher","add":"Add","save":"Save","configUpdated":"Config updated, page will auto-refresh","packGenerated":"Language packs generated","generateFailed":"Generation failed","loading":"Loading…","emailCfg":{"title":"Email Configuration","smtpSettings":"SMTP Settings","smtpHost":"SMTP Host","smtpPort":"SMTP Port","smtpUser":"Username","smtpPass":"Password","fromAddress":"From Address","fromName":"From Name","testTitle":"Send Test Email","sendTest":"Send Test","testSent":"Test email sent successfully","testFailed":"Failed to send test email"},"cache":{"title":"API Cache","settings":"Cache Settings","description":"When enabled, frontend GET responses matching the \"Cached API paths\" rules are stored as file cache (Cloudflare Cache API in production). The default scope is /api/public/* with a 12 hour TTL. Publishing posts, products, or settings invalidates the cache automatically; you can also clear it manually.","enabled":"Enable cache","enabledHint":"Cache public frontend API responses","ttlHours":"TTL (hours)","ttlHint":"1–168 hours, default 12","clear":"Clear cache","confirmClear":"Clear the public API cache? The next visit will rebuild it from the database.","cleared":"Cache cleared","status":"Status","driver":"Driver","driverFs":"Local files (.data/cache/public-api)","driverCf":"Cloudflare Cache API","version":"Cache version","clearedAt":"Last cleared","never":"Never","keyCount":"Entries","keyCountCf":"Edge cache cannot be listed; clearing bumps the version","recentKeys":"Keys in current version","excludes":"Excluded APIs","excludesHint":"Matching /api/public GET requests skip the cache and always hit the origin. Supports exact path, prefix, wildcards (* ?), substring, and regex. Paths without a leading / are prefixed with /api/public/.","excludesEmpty":"No exclude rules yet. All public frontend APIs are cached.","addExclude":"Add rule","quickAdd":"Quick add","modeExact":"Exact","modePrefix":"Prefix","modeWildcard":"Wildcard","modeContains":"Contains","modeRegex":"Regex","includes":"Cached API paths","includesHint":"Only GET requests matching these rules are cached. Leave empty (or keep the default) to cache everything under /api/public/**. Paths must live under /api/; /api/admin, /api/auth, /api/setup, /api/docs and /api/media are never cached. Changing the scope clears the existing cache.","includesEmpty":"No path rules yet. The default scope /api/public/** will be cached.","addInclude":"Add path","includesDefaultActive":"Using the default scope: /api/public/**","includesCustomActive":"Using a custom cache scope","includesReset":"Reset to default"},"plugins":{"title":"Plugins","tabInstalled":"Installed","tabMarket":"Marketplace","tabAccount":"Account & licenses","tabDeveloper":"Developer","domain":"Licensed domain","cronMissing":"NUXT_CRON_SECRET is not set","cronMissingHint":"Plugins with scheduled tasks (e-mail notifications, search push) and the daily license re-check need the cron dispatcher. Set NUXT_CRON_SECRET and deploy the cron Worker.","emptyInstalled":"No plugins installed yet","browseMarket":"Browse the marketplace","free":"Free","credits":"{n} credits","source_official":"Official","source_local":"Local","source_package":"Package","license_active":"Licensed","license_none":"Unlicensed","license_expired":"Expired","license_revoked":"Revoked","license_invalid":"Invalid","license_domain_mismatch":"Domain mismatch","license_unknown":"Unknown","license_missing":"Not installed","capInject":"{n} snippet(s)","configure":"Settings","verify":"Verify license","uninstall":"Uninstall","confirmUninstall":"Uninstall \"{name}\"? Its scheduled tasks are removed too.","uninstalled":"Uninstalled","licenseValid":"License is valid","licenseInvalid":"License is not valid","required":"\"{name}\" is required","secretKept":"Saved. Leave blank to keep it","licenseKey":"License key","licenseKeyHelp":"A key bought on the website or issued by an administrator, bound to this domain","licenseKeyCurrent":"Current: {key}. Enter a new key to replace it","offline":"The plugin hub is unreachable","offlineHint":"Showing the official plugins bundled with the framework. Free plugins install normally; paid plugins need the hub for licensing","offlineInstall":"Installed from the bundled copy","search":"Search plugins","openHub":"Open the plugin hub","emptyMarket":"No matching plugins","packageKind":"Package (redeploy)","installedVersion":"Installed v{version}","contactLicense":"Request a license","installTrial":"Install","buy":"Buy for {n} credits","update":"Update to v{version}","install":"Install","confirmPurchase":"Spend {credits} credits on \"{name}\" and license it to this domain?","updatedTo":"Updated to v{version}","installed":"Installed","needsLicenseHint":"Paid plugins only run once licensed: buy it, or enter a license key in its settings","bindToBuy":"To buy plugins and see credits and licenses, bind your website account first:","requestSent":"Sent. We will get back to you soon","requestHint":"Tell us what you need (your domain {domain} is included) and we will issue a license or a quote.","requestPlaceholder":"e.g. licenses for 3 sites / a 7-day trial","send":"Send","bindTitle":"Bind your website account","bindStep1":"Create an account:","bindStep2":"Sign in and create an API token under Account → API tokens:","bindStep3":"Paste the token below. It is stored on the server only and never sent to browsers.","bind":"Bind","bound":"Account bound","boundAs":"Bound account","balance":"Credits","rechargeHint":"Credits are topped up by an administrator (no online payment yet). Once added you can buy plugins here directly.","contactAdmin":"Contact us to top up","manageAccount":"Manage account","unbind":"Unbind","confirmUnbind":"After unbinding you cannot buy plugins; existing licenses keep working. Continue?","licenses":"My licenses","noLicenses":"No licenses yet","plugin":"Plugin","importTitle":"Import a manifest","importHint":"Paste or choose a nuxtcms.plugin.json (runtime plugin). Meant for development and private plugins; paid plugins come from the hub.","useSample":"Use sample","invalidJson":"Invalid JSON","devTitle":"Plugin development","devRuntime":"A runtime plugin is a JSON manifest declaring settings, injected snippets, CSP sources, event webhooks and scheduled tasks. Installed online, no rebuild.","devPackage":"A package plugin is a Nuxt layer (pages, components, APIs). Install it with the CLI, then rebuild and deploy:","devEvents":"Events you can listen to:","devDocs":"Plugin developer docs","packageTitle":"This is a package plugin","packageHint":"Package plugins change the build. Run this in the project directory (or CI), then rebuild and deploy:","copy":"Copy command","cat_analytics":"Analytics","cat_marketing":"Marketing & chat","cat_notification":"Notifications","cat_seo":"SEO","cat_developer":"Developer","cat_content":"Content","cat_commerce":"Commerce","cat_security":"Security","cat_other":"Other","planUntil":"until {date}"},"scheduled":"Scheduled","revisions":{"button":"History","title":"Revisions","hint":"(saved before every update, last 30 kept)","loading":"Loading…","empty":"No revisions yet","pick":"Pick a revision on the left","close":"Close","restore":"Restore this revision","confirmRestore":"Replace the current content with this revision? The current content is kept as a revision first.","restored":"Revision restored","restoreFailed":"Restore failed"},"security":{"title":"Security verification","intro":"Choose the human check for admin login, contact form, comments, newsletter and checkout. Every submission is verified on the server.","current":"Active: {provider}","scenesOn":"on {scenes}","forced":"Forced to \"{provider}\" by the NUXT_CAPTCHA_PROVIDER environment variable; the choice below applies once it is removed.","provider":"Method","providers":{"auto":"Site default","none":"Off","local":"Built-in image captcha","turnstile":"Cloudflare Turnstile","recaptcha":"Google reCAPTCHA"},"providerHints":{"auto":"Used while nothing is saved here: Turnstile when its keys are configured, otherwise the built-in captcha.","none":"No human check; rate limits still apply.","local":"No third-party service or keys; works everywhere, including mainland China.","turnstile":"Most visitors pass without a puzzle. Needs Cloudflare keys.","recaptcha":"v2 checkbox or v3 invisible score. Use recaptcha.net for visitors in mainland China."},"sources":{"env":"Source: environment variable","admin":"Source: admin setting","site-default":"Source: site default","auto":"Source: automatic (configured keys)"},"localMode":"Captcha type","localModes":{"chars":"Letters and digits","math":"Arithmetic"},"localLength":"Characters","turnstileHelp":"Create a Turnstile widget in the Cloudflare dashboard and add the site domain to its hostnames.","recaptchaHelp":"Create keys in the reCAPTCHA admin console (same version as below) and add the site domain.","recaptchaVersion":"Version","recaptchaVersions":{"v2":"v2 \"I'm not a robot\" checkbox","v3":"v3 invisible score"},"recaptchaHost":"Script domain","chinaOk":"reachable from mainland China","minScore":"Minimum score","minScoreHint":"0.1 to 1; submissions scoring lower are rejected (default 0.5)","envKeys":"Leave blank to use the keys from the environment.","secretKept":"Saved; leave blank to keep it","keysRequired":"This method needs both the site key and the secret key","scenesTitle":"Protected forms","scenes":{"login":"Admin login","contact":"Contact form","comment":"Blog comments","subscribe":"Newsletter","checkout":"Shop checkout"},"scenesHint":"Unchecked forms submit without a human check. Site forms built on useTurnstile() / useCaptcha() follow the active method too.","testTitle":"Test and save","testHelp":"The new settings must pass one check before they are saved, so a wrong key cannot lock you out of the admin.","test":"Test new settings","saveTested":"Passed — save","widgetFailed":"The widget failed to load: check the site key, the allowed domains, or whether the site CSP allows the provider.","saved":"Security settings saved","cspNote":"If the site sets its own Content Security Policy, allow in script-src and frame-src: challenges.cloudflare.com for Turnstile; www.google.com, www.gstatic.com and www.recaptcha.net for reCAPTCHA.","lockoutNote":"Locked out? Set NUXT_CAPTCHA_PROVIDER=none, redeploy, sign in and change it here.","unsupported":"This site uses its own form code for {scenes}, which does not render the verification widget yet, so this setting does not apply there."},"verify":{"title":"Two-factor sign-in","hint":"Open your authenticator app and enter the 6-digit code.","recoveryHint":"Enter one of your recovery codes (each works once).","submit":"Verify and sign in","useRecovery":"No phone at hand? Use a recovery code","useApp":"Use a code from the authenticator app","back":"Back to sign-in","failed":"Verification failed","invalid":"Wrong code, try again","expired":"The sign-in expired, please start again"},"account":{"title":"Account security","mfa":"Two-factor sign-in","on":"On","off":"Off","mfaIntro":"Signing in also asks for a code from an authenticator app (Google Authenticator, Microsoft Authenticator, 1Password, Authy...), so a leaked password alone is not enough.","mfaSetup":"Turn on two-factor sign-in","mfaScan":"Scan the QR code with your authenticator app, then enter the 6-digit code it shows.","mfaKey":"Cannot scan? Enter this key:","mfaConfirm":"Turn on","mfaOn":"Two-factor sign-in is on","mfaOff":"Two-factor sign-in is off","mfaEnabledAt":"On since {date}","recoveryLeft":"{n} recovery codes left","recoverySave":"Save these recovery codes now (shown once). If you lose your phone, each one signs you in once instead of a code.","copy":"Copy","copied":"Copied","saved":"I saved them","recoveryNew":"New recovery codes","mfaDisable":"Turn off two-factor sign-in","mfaDisableConfirm":"Turn off","codeOrRecovery":"Code or recovery code","currentPassword":"Current password","devices":"Signed-in devices","signOutOthers":"Sign out all other devices","signOut":"Sign out","signedOut":"Signed out","thisDevice":"This device","signedIn":"signed in","lastActive":"last active","noDevices":"Nothing recorded yet (sign-ins from before the upgrade are not listed; \"Sign out all other devices\" covers them).","devicesHint":"A device you do not know? Sign it out and change your password.","unknownDevice":"Unknown device","password":"Change password","newPassword":"New password","confirmPassword":"Repeat new password","passwordHint":"At least 8 characters; other devices are signed out","passwordMismatch":"The new passwords do not match","passwordChanged":"Password changed, other devices signed out","changePassword":"Change password","signOutAll":"Sign out all their devices","signOutAllConfirm":"Sign {name} out on every device?","mfaReset":"Reset two-factor sign-in","mfaResetConfirm":"Turn off two-factor sign-in for {name}? They are signed out and set it up again.","done":"Done"},"audit":{"title":"Audit log","subtitle":"Sign-ins and every change in the admin, kept for {days} days.","all":"All actions","signIns":"Sign-ins and security","search":"Search user, item, IP...","time":"Time","user":"User","action":"Action","detail":"Details","empty":"Nothing yet","actions":{"auth_login":"Signed in","auth_login_failed":"Failed sign-in","auth_logout":"Signed out","auth_token":"API token issued","auth_mfa_failed":"Wrong two-factor code","auth_mfa_enabled":"Two-factor on","auth_mfa_disabled":"Two-factor off","auth_recovery_used":"Signed in with a recovery code","auth_recovery_regenerated":"New recovery codes","auth_password_changed":"Password changed","auth_sessions_revoked":"Devices signed out"}},"redirects":{"title":"Redirects","subtitle":"Send old addresses and extra domains to their new home, keeping rankings and inbound links. Changes apply within about a minute, no deploy.","tabPath":"URL redirects","tabDomain":"Domains","tab404":"404 log","pathHelp":"Source: a site path like /old-page; a trailing * matches a whole folder (/blog/* -> /us/posts/*); a query matches old WordPress links (/?p=12). Target: a /path or a full URL; 410 means removed for good.","domainHelp":"Alias domains (old domains, other TLDs) redirect to the primary domain with path and query. Source * means every domain except the primary one (local development, pages.dev previews and IP addresses excluded), e.g. to settle on www or the bare domain. The domains must point at this site.","add":"Add rule","import":"Bulk import","search":"Search...","source":"Source","target":"Target","sourceDomain":"Source domain","targetDomain":"Primary domain","sourceHint":"e.g. /old-page, /blog/*, /?p=12","sourceDomainHint":"e.g. old.com (www.old.com included); * = every other domain","targetHint":"e.g. /us/new-page or https://...","status":"Status","s301":"permanent (recommended)","s302":"temporary","s410":"gone","note":"Note","hits":"Hits","saved":"Saved","empty":"No rules yet","confirmDelete":"Click again to delete","importHelp":"One rule per line: source target [status], separated by spaces, tabs or commas; a CSV export of another redirect plugin works when its first columns are source and target. Existing sources are skipped.","importDomainHelp":"One rule per line: source-domain primary-domain [status].","importRun":"Import","imported":"{added} added, {skipped} skipped","test":"Test","testPlaceholder":"Test a URL or path, e.g. /old-page or https://old.com/x","testNone":"No rule matches (the page shows normally)","log404":"Log 404s","log404Help":"Records page paths that answered 404 (no IP addresses); common bot probes are ignored. Sort by hits to find old links that need a redirect. Entries unseen for 90 days are removed.","byHits":"Most hits","byRecent":"Most recent","clear404":"Clear log","path":"Path","lastSeen":"Last seen","addRedirect":"Add redirect","empty404":"No 404s logged"},"navGroups":{"content":"Content","products":"Products","users":"Users & members","growth":"SEO & marketing","extensions":"Extensions","system":"System","overview":"Overview"},"menus":{"title":"Menus","subtitle":"Header, footer and other navigation, without code changes. One per language; saving applies at once.","new":"New menu","key":"Location","keyHint":"primary = header, footer = footer; sites can use their own locations","keyPrimary":"header navigation","keyFooter":"footer links","name":"Name","locale":"Language","copyFrom":"Copy from","empty":"Empty menu","none":"No menus yet. Once a primary menu exists it drives the header (until then the site's built-in navigation is used).","add":"Add items","addItem":"Add","search":"Search...","nothing":"Nothing to add","label":"Label (blank: the content title)","newTab":"Open in a new tab","up":"Move up","down":"Move down","indent":"Make a sub-item of the item above","outdent":"Move out of the sub-menu","saved":"Menu saved","confirmDelete":"Confirm delete","emptyTree":"Add items from the left","treeHint":"Drag items to reorder; up to three levels. Items whose page, post or product is not published are hidden.","types":{"custom":"Custom link","page":"Page","post":"Post","product":"Product","category":"Post category","productCategory":"Product category"},"unpublished":"unpublished"},"preview":{"button":"Preview link","title":"Share a preview","hint":"A link that shows this unpublished item with the site's real pages to anyone, no account needed. It stops working when it expires.","days":"valid {n} day(s)","create":"Create link","copy":"Copy","copied":"Preview link copied","until":"valid until {date}"},"backups":{"title":"Backups","subtitle":"Back up the site content on a schedule, to the attachment storage or to an FTP server of your choice, keeping the newest few.","runNow":"Back up now","enabled":"Scheduled backups","frequency":"Frequency","daily":"Daily","weekly":"Weekly","hour":"Time (site time zone)","keep":"Keep","storage":"Save to the attachment storage ({driver})","storageHint":"Kept in private/backups/, never public; download them below.","ftp":"Upload to an FTP server","ftpHost":"Host","ftpPort":"Port","ftpUser":"User","ftpPassword":"Password","passwordKept":"stored; leave blank to keep","ftpDir":"Directory (created when missing)","ftpSecure":"Use FTPS (AUTH TLS)","test":"Test connection","ftpOk":"Connected; {n} file(s) in the directory","ftpFailed":"FTP connection failed","contents":"A backup holds what Tools → Export holds: posts, pages, products, categories, translations, public settings and the media list (.json.gz), restorable in Tools → Import. No accounts, secrets or the media files themselves; back up plugin data (orders etc.) with the database (Cloudflare D1 has 30-day point-in-time recovery).","noCron":"Scheduled backups need the cron worker (NUXT_CRON_SECRET is not set): only manual backups work now.","saved":"Backup settings saved","done":"Backup done","notAll":"Backup not fully done","history":"History","none":"No backups yet","removed":"rotated out","status":{"ok":"OK","partial":"Partly done","failed":"Failed","running":"Running"},"trigger":{"manual":"manual","schedule":"scheduled"},"bucket":"Storage bucket (R2 / S3 / OSS / COS)","bucketHint":"Backups in a bucket of their own, apart from the site's files: Cloudflare R2, AWS S3, Alibaba OSS, Tencent COS or any S3-compatible storage. Use an access key limited to this bucket.","bucketProvider":"Provider","bucketName":"Bucket name","bucketRegion":"Region","bucketAccountId":"Cloudflare account ID","bucketEndpoint":"Endpoint (optional)","bucketEndpointHint":"Usually blank (derived from the provider); for self-hosted or other compatible storage","bucketKeyId":"Access key ID","bucketSecret":"Secret access key","bucketDir":"Directory","bucketOk":"Bucket works ({n} files in the directory)","bucketFailed":"Bucket connection failed","providers":{"r2":"Cloudflare R2","s3":"AWS S3","oss":"Alibaba Cloud OSS","cos":"Tencent Cloud COS","custom":"Other S3-compatible"}},"mediaAlt":"Alt text","mediaAltHint":"Describe the image for search engines and screen readers; click to edit","searchIndex":{"title":"Site search index","text":"Published posts, pages and products enter the search index by themselves (now {n} entries); visitors search at /search. Content from before the upgrade is added by the cron over time, or rebuild it here now.","rebuild":"Rebuild index","running":"Working… {n}","rebuilt":"Index updated ({n} processed)"},"collections":{"title":"Content types","subtitle":"Case studies, team members, FAQs, events and more without code: define the fields, the admin builds the form and the site gets list and detail pages.","new":"New content type","presets":{"cases":"Case studies","team":"Team members","faq":"FAQ","events":"Events"},"presetHint":"start from a template · {n} fields","name":"Name","key":"Key","keyHint":"lowercase letters, digits and dashes, used in URLs; fixed once created","icon":"Icon","description":"Description (shown on the list page)","sortLabel":"Order","sort":{"newest":"Newest first","manual":"Manual","title":"By title"},"public":"Public (list page {path}, in site search and the sitemap)","fields":"Fields","fieldsHint":"Every entry already has a title, slug, language, status and cover image.","fieldLabel":"Field name","fieldKey":"Field key","required":"Required","options":"Choices, one per line","addField":"Add field","types":{"text":"Text","textarea":"Long text","richtext":"Rich text","number":"Number","boolean":"Yes / no","date":"Date","image":"Image","images":"Images","url":"Link","select":"Choice","list":"List (one per line)"},"saved":"Content type saved","count":"{n} entries","fieldCount":"{n} fields","isPublic":"Public","isPrivate":"Admin only","entries":"Entries","edit":"Fields","deleteWarn":"Its {n} entries are deleted with it, for good. Type {key} to confirm.","newEntry":"New entry","searchEntries":"Search titles...","noEntries":"No entries yet","status":{"draft":"Draft","published":"Published","scheduled":"Scheduled"},"entrySaved":"Saved","confirmDelete":"Confirm delete","entryTitle":"Title","locale":"Language","publishedAt":"Publish date","sortOrder":"Order (smaller first)","cover":"Cover image","choose":"Choose image","addImage":"Add image","onePerLine":"One per line"},"roleAuthor":"Author","roleContributor":"Contributor","roleHelp":{"admin":"Everything, including settings, users, plugins and security","editor":"All posts, pages, products, content types and media","author":"Writes and publishes their own posts, uploads images","contributor":"Writes their own drafts for an editor to publish; uses existing images only"},"forms":{"title":"Forms","subtitle":"Quote requests, sign-ups, surveys... copy the embed code into any page; submissions are kept here and can be e-mailed to you.","new":"New form","name":"Name","key":"Key","keyHint":"Lowercase letters, digits and dashes; cannot be changed later","statusLabel":"Status","open":"Open","closed":"Closed","fields":"Fields","fieldKey":"Field key, e.g. company","fieldLabel":"Label","required":"Required","options":"Options, one per line","addField":"Add field","notify":"Notification e-mail","notifyHint":"E-mailed on each new submission; separate several addresses with commas; blank: no e-mail","captcha":"Use captcha (the \"contact form\" scene in Security)","success":"Success message","submit":"Submit button text","saved":"Form saved","copied":"Embed code copied","confirmDelete":"Click again to delete the form and all its submissions","none":"No forms yet. Try a quote request or a sign-up form.","submissions":"Submissions","unread":"{n} new","count":"{n} submissions","fieldCount":"{n} fields","noSubmissions":"No submissions yet","markRead":"Mark read","archive":"Archive","subStatus":{"new":"New","read":"Read","archived":"Archived"},"types":{"text":"Text","email":"E-mail","tel":"Phone","textarea":"Long text","number":"Number","select":"Drop-down","radio":"Single choice","checkbox":"Multiple choice","date":"Date","consent":"Consent checkbox"}},"forgot":{"title":"Reset your password","text":"Enter the e-mail address of your admin account and we will send a link to set a new password (valid for 1 hour).","submit":"Send reset e-mail","sentTitle":"E-mail sent","sentText":"If {email} belongs to an admin account here, a reset e-mail arrives within a few minutes.","noMail":"Nothing arrived? Check your spam folder, or ask an administrator to send you a reset e-mail from Users.","failed":"Could not send, please try again later","back":"Back to sign-in"},"reset":{"title":"Set a new password","text":"Set a new admin password for {email}. Every device will have to sign in again.","password":"New password","confirm":"New password again","rule":"At least 8 characters","mismatch":"The passwords do not match","submit":"Save new password","doneTitle":"Password updated","doneText":"Sign in with your new password.","invalidTitle":"This link has expired","invalidText":"The reset link expired or was already used. Ask for a new reset e-mail.","again":"Ask again","failed":"Could not save, please try again later"},"users":{"invite":"Send an invitation so the user sets their own password","inviteHelp":"Needs the mail settings (Email); the link is valid for 3 days","invited":"Created; invitation sent to {email}","inviteFailed":"User created, but the invitation e-mail failed","sendReset":"Send password reset e-mail","sendResetConfirm":"Send a password reset e-mail to {email}?","resetSent":"Password reset e-mail sent to {email}"}},"blog":{"count":"{count} articles","empty":"No articles yet","title":"News","subtitle":"Company news, product releases and engineering insights.","anonymous":"Anonymous","article":"Article","prev":"Previous","next":"Next","related":"Related articles"},"categories":{"belt":"Belt Conveyor","chain":"Chain Conveyor","lift":"Elevator","roller":"Roller Conveyor"},"common":{"all":"All","backToBlog":"Back to Blog","backToHome":"Back to Home","contactUs":"Contact Us","freeQuote":"Free Quote","language":"Language","loading":"Loading…","readMore":"Read more","search":"Search","by":"Anonymous","noCases":"No cases yet","noPosts":"No posts yet","noProducts":"No products yet","getQuote":"Free Quote","tooManyRequests":"You're going a little fast — please wait a moment and try again. Thank you for your patience.","toggleTheme":"Toggle theme","views":"{n} views","verifyHuman":"Please complete the human check"},"docs":{"empty":"No documents yet","intro":"Guides and deployment instructions","title":"Documentation"},"error":{"generic":"Something went wrong","notFound":"Page not found","tooManyRequests":"You’ve been a little busy just now. Please wait a moment and try again — thank you for your patience.","notFoundTitle":"Page Not Found","notFoundMessage":"The page you are looking for does not exist or may have been moved.","genericTitle":"Something went wrong","genericMessage":"An unexpected error occurred. Please try again later.","redirectIn":"Redirecting to homepage in {seconds} seconds…","goHome":"Go to Homepage"},"products":{"category":"Categories","description":"Covering roller conveyors, belt conveyors, chain conveyors, and elevators. Custom solutions available.","empty":"No products in this category","heading":"Our Products","inquiry":"Inquiry","specs":"Specifications","subtitle":"Three product lines: cloud platform, AI solutions and smart devices.","title":"Products","viewDetails":"View details","related":"Related products","inquiryHint":"Need a quote or a custom solution? Tell us what you are building."},"search":{"button":"Search","hot":"Hot Keywords","placeholder":"Enter keywords","title":"Search","results":"{n} result(s) for \"{q}\"","empty":"Nothing found. Try other words.","more":"Load more","kinds":{"all":"All","post":"Posts","page":"Pages","product":"Products","item":"Entries"}},"setup":{"title":"Install NuxtCMS","subtitle":"Create an admin account and initialize the site","siteName":"Site Name","siteDescription":"Site Description","adminName":"Admin Name","adminEmail":"Admin Email","adminPassword":"Admin Password","passwordHint":"At least 6 characters","install":"Complete Setup","success":"Setup Complete","successDesc":"Welcome to NuxtCMS!","failed":"Setup Failed","demoContent":"Import demo content","demoContentHint":"Seeds sample products, posts and an About page (Chinese + English) so you can preview the site right away.","token":"Setup token","tokenHint":"the NUXT_SETUP_TOKEN set at deploy time"},"nav":{"home":"Home","products":"Products","blog":"Blog","about":"About","contact":"Contact","docs":"Docs","admin":"Admin","getStarted":"Book a demo","menu":"Menu"},"home":{"heroKicker":"Digital platform for modern enterprises","heroTitle":"Grow your business with cloud-native and AI","heroSubtitle":"We deliver integrated cloud, AI and smart-hardware solutions that help teams ship faster and run more reliably.","heroCta":"Explore products","heroSecondary":"Talk to us","statsProjects":"Projects delivered","statsClients":"Enterprise clients","statsUptime":"Service uptime","statsCountries":"Countries","featuresTitle":"Why teams choose us","featuresSubtitle":"From infrastructure to intelligent applications, one partner for the whole lifecycle.","feature1Title":"Cloud-native architecture","feature1Desc":"Elastic container and serverless foundations that scale on demand and keep costs predictable.","feature2Title":"AI built in","feature2Desc":"Large language models woven into your workflows: support, knowledge bases and data insights.","feature3Title":"Enterprise security","feature3Desc":"End-to-end encryption, fine-grained permissions and audit logs for compliance.","feature4Title":"Rapid delivery","feature4Desc":"Mature component libraries and automated pipelines put new features live within days.","productsTitle":"Core products","productsSubtitle":"Three product lines: cloud platform, AI solutions and smart devices.","newsTitle":"Latest updates","newsSubtitle":"Company news, product releases and engineering insights.","viewAll":"View all","ctaTitle":"Ready to get started?","ctaSubtitle":"Tell us about your project and a consultant will reach out within one business day.","ctaButton":"Contact us"},"contact":{"title":"Contact us","subtitle":"Product questions, partnerships or technical support: we would love to hear from you.","name":"Name","email":"Email","phone":"Phone","message":"Message","submit":"Send message","success":"Message sent. We will get back to you shortly.","failed":"Sending failed, please try again later.","infoTitle":"Get in touch","emailLabel":"Email","phoneLabel":"Phone","addressLabel":"Address"},"footer":{"tagline":"A modern content management system built with Nuxt 4.","company":"Company","contact":"Contact","poweredBy":"Powered by NuxtCMS"},"captcha":{"placeholder":"Code in the image","mathPlaceholder":"Result","refresh":"Hard to read? New image","recaptchaNotice":"This site is protected by reCAPTCHA"},"demo":{"banner":"This is the NuxtCMS demo: data is restored daily, payments are simulated, please do not enter real personal data.","enterAdmin":"Try the admin","adminNotice":"Demo mode: accounts, e-mail, plugins, settings and uploads are disabled; data is restored daily.","login":"Enter the demo admin","loginHint":"No password needed: you sign in with the shared demo account.","checkoutNotice":"Demo site: sample details are filled in and payments are simulated, nothing is charged.","simulatePay":"Simulate a successful payment","simulated":"Payments are simulated in the demo; nothing is charged.","close":"Close"},"preview":{"bar":"Preview mode: you may be seeing unpublished content","exit":"Exit preview"},"collection":{"empty":"Nothing here yet","notFound":"Not found","yes":"Yes","no":"No"},"cmsForm":{"thanks":"Thank you! We will get back to you soon.","failed":"Could not send, please try again later","submit":"Send"},"aiAudit":{"title":"AI search check","adminHint":"Can AI search (ChatGPT, Perplexity, Claude) and search engines read this site? Checks llms.txt, AI crawler access, structured data, language tags, the sitemap and response time. Leave the address blank to check this site.","ownSite":"Blank: this site, or an address such as example.com","run":"Run check","failed":"Check failed","responseTime":"{ms} ms from the checking server","crawlers":"AI crawlers in robots.txt","allowed":"allowed","blocked":"blocked","grade":{"good":"Easy for AI search to read","fair":"Room for improvement","poor":"Hard for AI search to read"},"checks":{"llms":{"title":"llms.txt (a site guide for AI)","pass":"llms.txt is there: AI assistants see what the site is about and which pages matter.","fail":"No /llms.txt: AI assistants have to guess what matters, so they cite and recommend the site less."},"aiCrawlers":{"title":"AI search crawlers","pass":"robots.txt lets the main AI search crawlers read the home page ({value}).","fail":"robots.txt lets only {value} of the main AI search crawlers read the home page; blocked AI search will not cite the site."},"speed":{"title":"Response time","pass":"The home page answered within {value} ms.","fail":"The home page took {value} ms; visitors and crawlers may give up."},"structuredData":{"title":"Structured data (JSON-LD)","pass":"Structured data on the home page: {value}.","fail":"No JSON-LD on the home page: AI and search engines cannot confirm the company, products and other key facts."},"hreflang":{"title":"Language tags (hreflang)","pass":"{value} language versions are tagged, so each country's search shows the right language.","fail":"No hreflang language tags ({value}): visitors abroad may land on the wrong language. Single-language sites can ignore this."},"sitemap":{"title":"Sitemap","pass":"A sitemap was found, so new pages get indexed sooner.","fail":"No sitemap found (Sitemap in robots.txt or /sitemap.xml)."},"meta":{"title":"Title and description","pass":"The home page has a title and a useful description ({value} characters).","fail":"The home page lacks a title or its description is short ({value} characters): AI summaries and results show it poorly."},"https":{"title":"HTTPS","pass":"The site uses HTTPS.","fail":"The site does not use HTTPS; browsers flag it as not secure."},"canonical":{"title":"Canonical link","pass":"The home page declares its canonical address.","fail":"No canonical link: several addresses for the same page split its ranking."}}},"localeSuggest":{"text":"This page is also available in {language}.","switch":"Switch to {language}","dismiss":"No thanks"},"oauth":{"continueWith":"Continue with {provider}","or":"or","providers":{"wechat":"WeChat","qq":"QQ","dingtalk":"DingTalk","feishu":"Feishu / Lark","microsoft":"Microsoft"},"errors":{"state":"The sign-in expired, please try again.","denied":"Authorization was cancelled.","provider":"Sign-in with the provider failed, please try again later.","notLinked":"This account is not connected to an admin account. Sign in with e-mail and password first and connect it under Account security.","taken":"This account is already connected to another user.","disabled":"This account is disabled.","signup":"New sign-ups are closed.","signin":"Sign in to the admin first, then connect the account.","rate":"Too many attempts, please try again later."},"account":{"title":"Sign-in providers","hint":"Connected accounts can sign in to the admin directly; e-mail and password keep working.","connect":"Connect {provider}","unlink":"Disconnect","unlinkConfirm":"Disconnect {provider}?","linked":"Account connected","lastUsed":"Last used","notMigrated":"The database is not upgraded yet (table user_identities is missing): apply the migrations first."},"admin":{"title":"Sign-in methods","intro":"Sign in with Google, GitHub, Microsoft, WeChat, DingTalk, Feishu or any OpenID Connect / OAuth 2.0 service, for the admin and for site member accounts (e.g. the SaaS kit). E-mail and password sign-in always stays.","adminRules":"Admin sign-in rules","linkByEmail":"Link by e-mail","linkByEmailHint":"On the first sign-in, connect the admin account with the same address when the provider verified it (Microsoft multi-tenant addresses are never trusted).","autoCreateDomains":"Create accounts for these e-mail domains","autoCreateDomainsHint":"Verified addresses of these domains get an admin account on their first sign-in. Empty: nobody is created, only connected or matching accounts get in.","autoCreateRole":"Role of new accounts","optional":"optional","passwordStays":"Providers are an extra way in: e-mail + password, password reset and two-factor sign-in keep working; accounts with two-factor sign-in still enter their code after a provider sign-in.","enabled":"On","forAdmin":"Admin sign-in","forSite":"Site member sign-in","buttonLabel":"Button label","providerId":"Id","providerIdHint":"Starts with custom-, up to 16 characters; fixed once saved (it is part of the callback URL).","custom":"custom","fromEnv":"from environment","ready":"Ready","incomplete":"Incomplete","secretKept":"Saved; leave blank to keep","trustEmail":"Trust e-mail addresses from this service (link by e-mail)","callback":"Callback URL (enter it in the provider's developer console)","copy":"Copy","copied":"Copied","console":"Open developer console","remove":"Remove","removeConfirm":"Remove {provider}? Takes effect on save; connected account records stay.","add":"Add sign-in method","addPlaceholder":"Choose a service…","saved":"Sign-in methods saved","options":{"tenant":"Tenant","baseUrl":"GitLab URL","domain":"Edition (feishu / lark)","issuer":"Issuer URL","scope":"Scope","authorizeUrl":"Authorize URL","tokenUrl":"Token URL","userinfoUrl":"User info URL","idField":"User id field","emailField":"E-mail field","nameField":"Name field","avatarField":"Avatar field","tokenAuth":"Token auth (post / basic)"}}}},"fr":{"blogkit":{"plugin":{"readingTime":"{n} minutes de lecture","words":"{n} mots","toc":"Sur cette page","share":"Partager","copyLink":"Copier le lien","copied":"Lien copié","author":"Écrit par","authorPosts":"{n} messages","morePosts":"Plus de messages","popular":"Articles populaires","tag":"Balise : {tag}","category":"Catégorie : {name}","authorArchive":"Messages de {name}","noPosts":"Pas encore de messages.","views":"{n} vues"},"comments":{"title":"Commentaires","count":"Pas de commentaires | 1 commentaire | {n} commentaires","empty":"Soyez le premier à commenter.","name":"Nom","email":"E-mail (non publié)","url":"Site Web (facultatif)","content":"Votre commentaire","submit":"Publier un commentaire","reply":"Répondre","replyingTo":"Répondre à {name}","cancelReply":"Annuler","pending":"Merci! Votre commentaire est en attente de modération.","posted":"Commentaire posté.","closed":"Les commentaires sont fermés.","postNotFound":"Cet article n'accepte pas les commentaires.","parentMissing":"Le commentaire auquel vous avez répondu n'est plus disponible.","author":"Auteur","remember":"Se souvenir de moi sur cet appareil"},"newsletter":{"title":"Recevez les nouveaux articles par e-mail","hint":"Pas de spam, désabonnez-vous à tout moment.","email":"Votre adresse e-mail","submit":"S'abonner","pending":"Presque terminé : vérifiez votre boîte de réception et confirmez l'abonnement.","active":"Vous êtes abonné. Merci!","confirmed":"Inscription confirmée. Merci!","unsubscribed":"Vous avez été désabonné.","invalidLink":"Ce lien n'est pas valide ou a expiré.","working":"Un instant…","resubscribed":"Votre abonnement est de nouveau activé. Merci!","unsubscribe":"Se désabonner","resubscribe":"Se réabonner","unsubscribedHint":"Vous ne recevrez plus de nouveaux messages par e-mail. Vous avez changé d'avis ? Rallumez-le en un seul clic."},"admin":{"menu":"Commentaires","subscribers":"Abonnés","notActive":"Le plugin blog n'est pas actif (activez-le dans Plugins).","status":{"pending":"En attente","approved":"Approuvé","spam":"Courrier indésirable","trash":"Poubelle","all":"Tous","active":"Actif","unsubscribed":"Désabonné"},"approve":"Approuver","unapprove":"Désapprouver","spam":"Courrier indésirable","trash":"Poubelle","delete":"Supprimer définitivement","reply":"Répondre","send":"Envoyer","confirmDelete":"Supprimer définitivement les commentaires sélectionnés ?","search":"Rechercher des commentaires","empty":"Rien ici.","on":"sur","selected":"{n} sélectionné","subscribersHint":"Inscriptions depuis le formulaire newsletter. Les adresses de double opt-in restent en attente jusqu'à ce qu'elles soient confirmées.","import":"Importer","importHint":"Collez les adresses, une par ligne ou séparées par des virgules. Ils sont ajoutés comme actifs.","imported":"{added} ajouté, {skipped} ignoré","export":"Exporter au format CSV","mailings":"Lettres d'information","sendPost":"Envoyer un message","postId":"Identifiant du message","queued":"En file d'attente ; il est envoyé par lots par la tâche planifiée.","mailingStatus":{"queued":"En file d'attente","sending":"Envoi","done":"Envoyé","failed":"Échoué"},"sent":"{sent} envoyé, {failed} a échoué","settings":"Paramètres du blog"}},"admin":{"login":{"email":"Courriel","failed":"La connexion a échoué","password":"Mot de passe","submit":"Connectez-vous","title":"Connexion administrateur","verifyLabel":"je ne suis pas un robot","verifyRequired":"Veuillez compléter la vérification","invalidCredentials":"Email ou mot de passe invalide, veuillez réessayer","tooManyAttempts":"Vous avez essayé de vous connecter plusieurs fois. Veuillez attendre environ 5 minutes et réessayer — merci.","networkError":"Erreur réseau, veuillez vérifier votre connexion","forgot":"Mot de passe oublié ?"},"nav":{"cases":"Cas","categories":"Catégories","contacts":"Contacts","dashboard":"Tableau de bord","i18n":"Langues","logout":"Se déconnecter","media":"Médias","pages":"Pages","posts":"Messages","seo":"SEO","productCategories":"Catégories de produits","products":"Produits","settings":"Paramètres","users":"Utilisateurs","viewSite":"Voir le site","translations":"Traductions","languages":"Langues","email":"Courriel","tasks":"Tâches planifiées","cache":"Cache","plugins":"Plugins","tools":"Outils","security":"Sécurité","redirects":"Redirections","audit":"Journal d'audit","account":"Sécurité du compte","menu":"Menus","menus":"Menus","backups":"Sauvegardes","collections":"Types de contenu","forms":"Formulaires","home":"Page d'accueil","signIn":"Méthodes de connexion"},"seo":{"tabSeo":"SEO","title":"SEO et IA GÉO","perLocale":"SEO par langue","global":"Paramètres globaux","tabGeo":"IA GÉO","perLocaleHint":"Titre, description et mots-clés par langue ; Les balises hreflang et canoniques sont émises automatiquement.","sitemap":"Plan du site","sitemapHint":"/sitemap.xml est un index multilingue pointant vers /__sitemap__/LANG.xml. Chaque entrée comporte une heure de dernière modification qui suit votre contenu.","geoIntro":"Résumé de l'IA","geoIntroHint":"Comment le site se présente aux moteurs de recherche et de réponse IA (ChatGPT, Claude, Perplexity, Gemini). Servi dans /llms.txt et /api/public/ai-summary.","organization":"Organisation (données structurées)","organizationHint":"Génère schema.org Organization / WebSite JSON-LD afin que les moteurs de recherche et l'IA reconnaissent l'entité derrière le site.","llms":"llms.txt","llmsHint":"Publie un index llmstxt.org et un vidage de texte intégral que les modèles de langage peuvent lire directement.","crawlers":"Politique relative aux robots d'exploration de l'IA","crawlersHint":"Écrit dans robots.txt. Autoriser les moteurs de réponse aide le site à être cité ; Les robots d'exploration uniquement destinés à la formation peuvent être bloqués séparément.","allowAll":"Autoriser tout","blockTraining":"Formation en bloc","blockAll":"Bloquer tout","allow":"Autoriser","disallow":"Interdire","preview":"Aperçu des URL","purpose":{"training":"formation de modèle","search":"Recherche / réponses IA","both":"formation + recherche"},"fields":{"siteName":"Nom du site","siteTitle":"Titre SEO","siteDescription":"Méta description","siteKeywords":"Méta-mots-clés","ogImage":"Image de partage par défaut","googleVerification":"Vérification Google","bingSiteVerification":"Vérification Bing","baiduVerification":"Vérification Baidu","robotsTxt":"Règles des robots supplémentaires","orgType":"Type d'organisation","orgLogo":"URL du logo","orgSameAs":"Profils officiels","geoSummary":"Résumé de l'IA","geoAudience":"Public et zone de service","geoLlmsTxt":"Publier /llms.txt","geoLlmsFull":"Publier /llms-full.txt (texte intégral)"},"hints":{"siteName":"Nom du site affiché pour cette langue ; vide revient au nom global.","siteTitle":"Onglet du navigateur et titre du résultat de la recherche.","siteDescription":"Extrait de recherche, 150 à 160 caractères recommandés.","siteKeywords":"Virgule séparée.","ogImage":"URL de l’image de partage social par défaut.","robotsTxt":"Règles personnalisées ajoutées au fichier robots.txt.","orgLogo":"PNG/SVG, au moins 512x512 recommandé.","orgSameAs":"Un par ligne : LinkedIn, GitHub, X, page WeChat, etc.","geoSummary":"En 2 à 5 phrases : qui vous êtes, ce que vous faites, pourquoi vous êtes différent. Les moteurs d’IA le citent directement.","geoAudience":"par ex. Entreprises manufacturières et de vente au détail en Chine et en Asie du Sud-Est."},"matomo":{"title":"Analyse (Matomo)","hint":"Avec l'URL Matomo et l'ID de site définis, le site public rapporte les pages vues (navigation côté client également), les référents, la recherche sur le site, les liens sortants et les téléchargements, les pages 404, les erreurs JavaScript, le temps passé sur la page et les délais de chargement, ainsi que les événements tels que les formulaires et les commandes ; les erreurs du serveur 5xx sont enregistrées en tant qu'événements. Les pages d'administration ne sont pas suivies.","url":"URL Matomo","siteId":"Identifiant du site","cookieless":"Sans biscuits","cookielessHint":"Pas de cookies (aucune bannière de consentement n'est nécessaire pour les visiteurs de l'UE) ; les visiteurs sont comptés par jour.","open":"Ouvrir des rapports"},"preconnect":{"title":"Préconnexion","hint":"Les pages publiques ouvrent ces connexions plus tôt (<link rel=\"preconnect\">), économisant ainsi les 100 à 300 ms de DNS et TLS avant la première requête. Le serveur Matomo est inclus automatiquement une fois Matomo configuré. Autres origines (un CDN d'images, un service de polices) : une par ligne, https uniquement, 6 au maximum."}},"email":"Courriel","tasks":{"title":"Tâches planifiées","newTask":"Nouvelle tâche","editTask":"Modifier la tâche","empty":"Aucune tâche planifiée pour l'instant","enabled":"Activé","disabled":"Désactivé","lastRun":"Dernière course","run":"Courez maintenant","logs":"Journaux","noLogs":"Aucun journal d'exécution","executed":"Tâche exécutée","headers":"En-têtes","body":"Corps de la demande"},"dashboard":"Tableau de bord","writePost":"Écrire un message","recentUpdates":"Mises à jour récentes","noContent":"Pas encore de contenu","posts":"Messages","pages":"Pages","published":"Publié","drafts":"Brouillons","categories":"Catégories","media":"Médias","status":"Statut","noCategories":"Aucune catégorie pour l'instant","noContacts":"Aucun enregistrement de contact","noProducts":"Aucun produit pour l'instant","noSettings":"Aucun paramètre pour l'instant","noTranslations":"Pas encore de traductions","noLanguages":"Aucune langue configurée","confirmDelete":"Supprimer \"{name}\" ? Cette action ne peut pas être annulée.","categoryDeletedHint":"Les messages de cette catégorie ne seront plus classés.","confirmDeleteLanguage":"Supprimer la langue \"{name}\" ({code}) ? Les données de traduction ne seront pas supprimées.","name":"Nom","slug":"Limace","description":"Descriptif","actions":"Actions","edit":"Modifier","delete":"Supprimer","cancel":"Annuler","create":"Créer","update":{"available":"NuxtCMS v{latest} est disponible (vous exécutez v{current})","hint":"Exécutez la commande de mise à niveau dans le projet de site : elle installe, migre la base de données, construit et déploie.","copy":"Copier la commande de mise à niveau","changelog":"Journal des modifications"},"refresh":"Actualiser","searchNameEmail":"Rechercher nom/e-mail/contenu…","allStatuses":"Tous les statuts","statusNew":"Nouveau","statusRead":"Lire","statusReplied":"A répondu","message":"Message","time":"Temps","languageCode":"Code de langue","languageName":"Nom de la langue","languageAdded":"Langue mise à jour","languageAddFailed":"L'ajout a échoué","languageUpdateFailed":"La mise à jour a échoué","languageDeleted":"Échec de la suppression","fillAllFields":"Veuillez remplir tous les champs","serverRestarting":"Redémarrage du serveur… la page s'actualisera automatiquement dans quelques secondes","loadFailed":"Échec du chargement","slugHint":"Laisser vide pour générer automatiquement","operationFailed":"L'opération a échoué","deleteFailed":"Échec de la suppression","password":"Mot de passe","role":"Rôle","roleAdmin":"Administrateur","roleEditor":"Éditeur","passwordHint":"Laisser vide pour rester inchangé","passwordMinLength":"Au moins 6 caractères","me":"(moi)","updated":"Mis à jour","created":"Créé","deleted":"Supprimé","confirmDeleteUser":"Supprimer l'utilisateur \"{name}\" ?","editUser":"Modifier l'utilisateur","newUser":"Nouvel utilisateur","mediaLibrary":"Médiathèque","uploadImage":"Télécharger une image","searchFilename":"Rechercher le nom du fichier…","mediaStorageHint":"Fichiers stockés dans R2 (système de fichiers local en développement). Max 5 Mo par fichier.","uploadComplete":"Téléchargement terminé","uploadFailed":"Échec du téléchargement","linkCopied":"Lien copié","copyFailed":"Échec de la copie","confirmDeleteMedia":"Supprimer ce fichier multimédia ?","mediaEmpty":"La médiathèque est vide","mediaEmptyHint":"Cliquez sur le bouton de téléchargement pour ajouter des images.","fileTooLarge":"{name} est trop grand","maxFileSize":"Veuillez télécharger des images de moins de 5 Mo","upload":"Télécharger le fichier","loadMore":"Charger plus","mediaPickerHint":"Cliquez sur une image pour l'insérer ; un nouveau téléchargement est inséré immédiatement.","mediaNoMatch":"Aucun fichier correspondant.","mediaEmptyPicker":"La médiathèque est vide. Téléchargez d'abord une image.","insertFromLibrary":"Insérer une image de la médiathèque","productManagement":"Produits","newProduct":"Nouveau produit","searchName":"Rechercher le nom…","allLanguages":"Toutes les langues","language":"Langue","category":"Catégorie","updatedAt":"Mis à jour","siteSettings":"Paramètres du site","newSetting":"Nouveau","searchKeyOrValue":"Clé de recherche ou valeur…","all":"Tout","globalSettings":"Mondial","localizedSettings":"Localisé","keyName":"Clé","currentValue":"Valeur","localizedBadge":"Localisé","emptyValue":"(vide)","translationManagement":"Traductions","translated":"Traduit","untranslated":"Non traduit","translationKey":"Clé de traduction","notTranslated":"(Non traduit)","languageManagement":"Langues","generatePacks":"Générer des packs","addLanguage":"Ajouter une langue","noteTitle":"Remarque","languageHintRestart":"Après avoir ajouté ou supprimé des langues, redémarrez le serveur de développement (ou redéployez) pour que les nouvelles routes d'URL prennent effet.","languageHintGenerate":"Après avoir modifié les traductions, cliquez sur « Générer des packs » pour écrire les traductions de la base de données dans les fichiers i18n/locales/*.json.","bcp47Tag":"Balise BCP47","displayName":"Nom d'affichage","defaultBadge":"Par défaut","fallbackBadge":"Repli","setDefault":"Définir par défaut","editLanguage":"Modifier la langue","quickSelect":"Sélection rapide :","langCodeDesc":"Code court pour l'URL, par ex. ja, ko, vi","bcp47Desc":"Balise de langue complète, par ex. ja-JP, ko-KR","displayNameDesc":"Nom affiché dans le sélecteur de langue","add":"Ajouter","save":"Enregistrer","configUpdated":"Configuration mise à jour, la page s'actualisera automatiquement","packGenerated":"Packs de langue générés","generateFailed":"La génération a échoué","loading":"Chargement…","emailCfg":{"title":"Configuration de la messagerie","smtpSettings":"Paramètres SMTP","smtpHost":"Hôte SMTP","smtpPort":"Port SMTP","smtpUser":"Nom d'utilisateur","smtpPass":"Mot de passe","fromAddress":"De l'adresse","fromName":"Du nom","testTitle":"Envoyer un e-mail de test","sendTest":"Envoyer le test","testSent":"E-mail de test envoyé avec succès","testFailed":"Échec de l'envoi de l'e-mail de test"},"cache":{"title":"Cache API","settings":"Paramètres du cache","description":"Lorsqu'elles sont activées, les réponses GET du frontend correspondant aux règles « Chemins d'API mis en cache » sont stockées sous forme de cache de fichiers (API Cloudflare Cache en production). La portée par défaut est /api/public/* avec un TTL de 12 heures. La publication de publications, de produits ou de paramètres invalide automatiquement le cache ; vous pouvez également l'effacer manuellement.","enabled":"Activer le cache","enabledHint":"Mettre en cache les réponses de l'API frontale publique","ttlHours":"Durée de vie (heures)","ttlHint":"1 à 168 heures, 12 par défaut","clear":"Vider le cache","confirmClear":"Vider le cache de l'API publique ? La prochaine visite le reconstruira à partir de la base de données.","cleared":"Cache vidé","status":"Statut","driver":"Chauffeur","driverFs":"Fichiers locaux (.data/cache/public-api)","driverCf":"API de cache Cloudflare","version":"Version cache","clearedAt":"Dernière effacement","never":"Jamais","keyCount":"Entrées","keyCountCf":"Le cache Edge ne peut pas être répertorié ; la suppression modifie la version","recentKeys":"Clés dans la version actuelle","excludes":"API exclues","excludesHint":"Les requêtes /api/public GET correspondantes ignorent le cache et atteignent toujours l'origine. Prend en charge le chemin exact, le préfixe, les caractères génériques (* ?), la sous-chaîne et l'expression régulière. Les chemins sans / sont préfixés par /api/public/.","excludesEmpty":"Aucune règle d'exclusion pour l'instant. Toutes les API frontales publiques sont mises en cache.","addExclude":"Ajouter une règle","quickAdd":"Ajout rapide","modeExact":"Exact","modePrefix":"Préfixe","modeWildcard":"Caractère générique","modeContains":"Contient","modeRegex":"Expression régulière","includes":"Chemins d'API mis en cache","includesHint":"Seules les requêtes GET correspondant à ces règles sont mises en cache. Laissez vide (ou conservez la valeur par défaut) pour tout mettre en cache sous /api/public/**. Les chemins doivent résider sous /api/ ; /api/admin, /api/auth, /api/setup, /api/docs et /api/media ne sont jamais mis en cache. La modification de la portée efface le cache existant.","includesEmpty":"Aucune règle de chemin pour l'instant. La portée par défaut /api/public/** sera mise en cache.","addInclude":"Ajouter un chemin","includesDefaultActive":"Utilisation de la portée par défaut : /api/public/**","includesCustomActive":"Utiliser une étendue de cache personnalisée","includesReset":"Réinitialiser aux valeurs par défaut"},"plugins":{"title":"Plugins","tabInstalled":"Installé","tabMarket":"Marché","tabAccount":"Compte et licences","tabDeveloper":"Développeur","domain":"Domaine sous licence","cronMissing":"NUXT_CRON_SECRET n'est pas défini","cronMissingHint":"Les plugins avec des tâches planifiées (notifications par e-mail, recherche push) et la revérification quotidienne des licences nécessitent le répartiteur cron. Définissez NUXT_CRON_SECRET et déployez le cron Worker.","emptyInstalled":"Aucun plugin installé pour le moment","browseMarket":"Parcourez le marché","free":"Gratuit","credits":"{n} crédits","source_official":"Officiel","source_local":"Locale","source_package":"Forfait","license_active":"Licence","license_none":"Sans licence","license_expired":"Expiré","license_revoked":"Révoqué","license_invalid":"Invalide","license_domain_mismatch":"Incompatibilité de domaine","license_unknown":"Inconnu","license_missing":"Non installé","capInject":"{n} extrait(s)","configure":"Paramètres","verify":"Vérifier la licence","uninstall":"Désinstaller","confirmUninstall":"Désinstaller \"{name}\" ? Ses tâches planifiées sont également supprimées.","uninstalled":"Désinstallé","licenseValid":"La licence est valide","licenseInvalid":"La licence n'est pas valide","required":"\"{name}\" est obligatoire","secretKept":"Enregistré. Laisser vide pour le conserver","licenseKey":"Clé de licence","licenseKeyHelp":"Une clé achetée sur le site ou émise par un administrateur, liée à ce domaine","offline":"Le hub du plugin est inaccessible","offlineHint":"Affichage des plugins officiels fournis avec le framework. Les plugins gratuits s'installent normalement ; les plugins payants ont besoin du hub pour les licences","offlineInstall":"Installé à partir de la copie fournie","search":"Plugins de recherche","openHub":"Ouvrez le hub des plugins","emptyMarket":"Aucun plugin correspondant","packageKind":"Package (redéployer)","installedVersion":"Installé v{version}","contactLicense":"Demander une licence","installTrial":"Installer","buy":"Achetez pour {n} crédits","update":"Mise à jour vers v{version}","install":"Installer","confirmPurchase":"Dépenser {credits} crédits pour \"{name}\" et obtenir une licence sur ce domaine ?","updatedTo":"Mis à jour vers v{version}","installed":"Installé","needsLicenseHint":"Les plugins payants ne fonctionnent qu'une fois sous licence : achetez-le ou entrez une clé de licence dans ses paramètres","bindToBuy":"Pour acheter des plugins et voir les crédits et les licences, liez d'abord votre compte de site Web :","requestSent":"Envoyé. Nous vous répondrons bientôt","requestHint":"Dites-nous ce dont vous avez besoin (votre domaine {domain} est inclus) et nous vous délivrerons une licence ou un devis.","requestPlaceholder":"par ex. licences pour 3 sites / un essai de 7 jours","send":"Envoyer","bindTitle":"Liez votre compte de site Web","bindStep1":"Créez un compte :","bindStep2":"Connectez-vous et créez un jeton API sous Compte → Jetons API :","bindStep3":"Collez le jeton ci-dessous. Il est stocké uniquement sur le serveur et n'est jamais envoyé aux navigateurs.","bind":"Lier","bound":"Lié au compte","boundAs":"Compte lié","balance":"Crédits","rechargeHint":"Les crédits sont rechargés par un administrateur (pas encore de paiement en ligne). Une fois ajouté, vous pouvez acheter des plugins directement ici.","contactAdmin":"Contactez-nous pour recharger","manageAccount":"Gérer le compte","unbind":"Dissocier","confirmUnbind":"Après la déliaison, vous ne pouvez pas acheter de plugins ; les licences existantes continuent de fonctionner. Continuer?","licenses":"Mes licences","noLicenses":"Pas encore de licence","plugin":"Plugin","importTitle":"Importer un manifeste","importHint":"Collez ou choisissez un nuxtcms.plugin.json (plugin d'exécution). Destiné au développement et aux plugins privés ; les plugins payants proviennent du hub.","cat_seo":"SEO","useSample":"Utiliser un échantillon","invalidJson":"JSON invalide","devTitle":"Développement de plugins","devRuntime":"Un plugin d'exécution est un manifeste JSON déclarant les paramètres, les extraits injectés, les sources CSP, les webhooks d'événements et les tâches planifiées. Installé en ligne, pas de reconstruction.","devPackage":"Un plugin de package est une couche Nuxt (pages, composants, API). Installez-le avec la CLI, puis reconstruisez et déployez :","devEvents":"Événements que vous pouvez écouter :","devDocs":"Documentation du développeur de plugins","packageTitle":"Ceci est un plugin de package","packageHint":"Les plugins de package modifient la version. Exécutez ceci dans le répertoire du projet (ou CI), puis reconstruisez et déployez :","copy":"Commande Copier","cat_analytics":"Analyse","cat_marketing":"Marketing et discussion","cat_notification":"Notifications","cat_developer":"Développeur","cat_content":"Contenu","cat_commerce":"Commerce","cat_security":"Sécurité","cat_other":"Autre","planUntil":"jusqu'au {date}","licenseKeyCurrent":"Actuel : {key}. Entrez une nouvelle clé pour la remplacer"},"scheduled":"Programmé","revisions":{"button":"Histoire","title":"Révisions","hint":"(enregistré avant chaque mise à jour, les 30 dernières conservées)","loading":"Chargement…","empty":"Aucune révision pour l'instant","pick":"Choisissez une révision à gauche","close":"Fermer","restore":"Restaurer cette révision","confirmRestore":"Remplacer le contenu actuel par cette révision ? Le contenu actuel est d'abord conservé à titre de révision.","restored":"Révision restaurée","restoreFailed":"La restauration a échoué"},"security":{"title":"Vérification de sécurité","intro":"Choisissez la vérification humaine pour la connexion administrateur, le formulaire de contact, les commentaires, la newsletter et le paiement. Chaque soumission est vérifiée sur le serveur.","forced":"Forcé à \"{provider}\" par la variable d'environnement NUXT_CAPTCHA_PROVIDER ; le choix ci-dessous s’applique une fois supprimé.","provider":"Méthode","providers":{"auto":"Valeur par défaut du site","none":"Désactivé","local":"Captcha d'image intégré","recaptcha":"Google reCAPTCHA","turnstile":"Cloudflare Turnstile"},"providerHints":{"none":"Aucun contrôle humain ; des limites de taux s’appliquent toujours.","local":"Aucun service ni clé tiers ; fonctionne partout, y compris en Chine continentale.","turnstile":"La plupart des visiteurs passent sans énigme. Nécessite des clés Cloudflare.","recaptcha":"Case à cocher v2 ou score invisible v3. Utilisez recaptcha.net pour les visiteurs en Chine continentale.","auto":"Utilisé alors que rien n'est enregistré ici : Turnstile lorsque ses clés sont configurées, sinon le captcha intégré."},"sources":{"env":"Source : variable d'environnement","admin":"Source : paramètre d'administration","site-default":"Source : site par défaut","auto":"Source : automatique (clés configurées)"},"localMode":"Type de captcha","localModes":{"chars":"Lettres et chiffres","math":"Arithmétique"},"localLength":"Personnages","turnstileHelp":"Créez un widget Turnstile dans le tableau de bord Cloudflare et ajoutez le domaine du site à ses noms d'hôte.","recaptchaHelp":"Créez des clés dans la console d'administration reCAPTCHA (même version que ci-dessous) et ajoutez le domaine du site.","recaptchaVersion":"Version","recaptchaVersions":{"v2":"v2 Case à cocher \"Je ne suis pas un robot\"","v3":"score invisible v3"},"recaptchaHost":"Domaine de script","chinaOk":"accessible depuis la Chine continentale","minScore":"Note minimale","minScoreHint":"0,1 à 1 ; les soumissions ayant obtenu un score inférieur sont rejetées (par défaut 0,5)","envKeys":"Laissez vide pour utiliser les clés de l'environnement.","secretKept":"Enregistré ; laisser vide pour le conserver","keysRequired":"Cette méthode nécessite à la fois la clé du site et la clé secrète","scenesTitle":"Formulaires protégés","scenes":{"login":"Connexion administrateur","contact":"Formulaire de contact","comment":"Commentaires du blog","subscribe":"Bulletin","checkout":"Paiement en magasin"},"scenesHint":"Les formulaires non vérifiés sont soumis sans vérification humaine. Les formulaires de site construits sur useTurnstile() / useCaptcha() suivent également la méthode active.","testTitle":"Testez et enregistrez","testHelp":"Les nouveaux paramètres doivent passer une vérification avant d'être enregistrés, de sorte qu'une mauvaise clé ne peut pas vous verrouiller hors de l'administrateur.","test":"Tester de nouveaux paramètres","saveTested":"Réussi – enregistrer","widgetFailed":"Le widget n'a pas pu se charger : vérifiez la clé du site, les domaines autorisés ou si le CSP du site autorise le fournisseur.","saved":"Paramètres de sécurité enregistrés","cspNote":"Si le site définit sa propre politique de sécurité du contenu, autorisez dans script-src et frame-src : challenges.cloudflare.com pour Turnstile ; www.google.com, www.gstatic.com et www.recaptcha.net pour reCAPTCHA.","lockoutNote":"En lock-out ? Définissez NUXT_CAPTCHA_PROVIDER=none, redéployez, connectez-vous et modifiez-le ici.","unsupported":"Ce site utilise son propre code de formulaire pour {scenes}, qui n'affiche pas encore le widget de vérification, ce paramètre ne s'applique donc pas ici.","current":"Actif : {provider}","scenesOn":"le {scenes}"},"verify":{"title":"Connexion à deux facteurs","hint":"Ouvrez votre application d'authentification et entrez le code à 6 chiffres.","recoveryHint":"Entrez l'un de vos codes de récupération (chacun fonctionne une fois).","submit":"Vérifiez et connectez-vous","useRecovery":"Pas de téléphone à portée de main ? Utiliser un code de récupération","useApp":"Utilisez un code de l'application d'authentification","back":"Retour à la connexion","failed":"La vérification a échoué","invalid":"Mauvais code, réessayez","expired":"La connexion a expiré, veuillez recommencer"},"account":{"title":"Sécurité du compte","mfa":"Connexion à deux facteurs","on":"Sur","off":"Désactivé","mfaIntro":"La connexion demande également un code provenant d'une application d'authentification (Google Authenticator, Microsoft Authenticator, 1Password, Authy...), donc une fuite de mot de passe à elle seule ne suffit pas.","mfaSetup":"Activer la connexion à deux facteurs","mfaScan":"Scannez le code QR avec votre application d'authentification, puis saisissez le code à 6 chiffres qu'il affiche.","mfaKey":"Vous ne parvenez pas à numériser ? Entrez cette clé :","mfaConfirm":"Allumer","mfaOn":"La connexion à deux facteurs est activée","mfaOff":"La connexion à deux facteurs est désactivée","mfaEnabledAt":"Depuis le {date}","recoveryLeft":"{n} codes de récupération restants","recoverySave":"Enregistrez ces codes de récupération maintenant (affichés une fois). Si vous perdez votre téléphone, chacun vous connecte une fois au lieu d'un code.","copy":"Copier","copied":"Copié","saved":"Je les ai sauvés","recoveryNew":"Nouveaux codes de récupération","mfaDisable":"Désactiver la connexion à deux facteurs","mfaDisableConfirm":"Éteindre","codeOrRecovery":"Code ou code de récupération","currentPassword":"Mot de passe actuel","devices":"Appareils connectés","signOutOthers":"Déconnectez-vous de tous les autres appareils","signOut":"Se déconnecter","signedOut":"Déconnecté","thisDevice":"Cet appareil","signedIn":"connecté","lastActive":"dernier actif","noDevices":"Rien n'est encore enregistré (les connexions antérieures à la mise à niveau ne sont pas répertoriées ; \"Déconnecter tous les autres appareils\" les couvre).","devicesHint":"Un appareil que vous ne connaissez pas ? Déconnectez-vous et changez votre mot de passe.","unknownDevice":"Appareil inconnu","password":"Changer le mot de passe","newPassword":"Nouveau mot de passe","confirmPassword":"Répéter le nouveau mot de passe","passwordHint":"Au moins 8 caractères ; d'autres appareils sont déconnectés","passwordMismatch":"Les nouveaux mots de passe ne correspondent pas","passwordChanged":"Mot de passe modifié, autres appareils déconnectés","changePassword":"Changer le mot de passe","signOutAll":"Déconnectez-vous de tous leurs appareils","signOutAllConfirm":"Se déconnecter de {name} sur chaque appareil ?","mfaReset":"Réinitialiser la connexion à deux facteurs","mfaResetConfirm":"Désactiver la connexion à deux facteurs pour {name} ? Ils sont déconnectés et le configurent à nouveau.","done":"Terminé"},"audit":{"title":"Journal d'audit","subtitle":"Les connexions et chaque changement dans l'administrateur sont conservés pendant {days} jours.","all":"Toutes les actions","signIns":"Connexions et sécurité","search":"Rechercher un utilisateur, un article, une IP...","time":"Temps","user":"Utilisateur","action":"Action","detail":"Détails","empty":"Rien pour l'instant","actions":{"auth_login":"Connecté","auth_login_failed":"Échec de la connexion","auth_logout":"Déconnecté","auth_token":"Jeton API émis","auth_mfa_failed":"Mauvais code à deux facteurs","auth_mfa_enabled":"Deux facteurs activés","auth_mfa_disabled":"Réduction à deux facteurs","auth_recovery_used":"Connecté avec un code de récupération","auth_recovery_regenerated":"Nouveaux codes de récupération","auth_password_changed":"Mot de passe modifié","auth_sessions_revoked":"Appareils déconnectés"}},"redirects":{"title":"Redirections","subtitle":"Envoyez les anciennes adresses et les domaines supplémentaires vers leur nouveau domicile, en conservant les classements et les liens entrants. Les modifications s'appliquent dans un délai d'environ une minute, sans déploiement.","tabPath":"Redirections d'URL","tabDomain":"Domaines","tab404":"Journal 404","pathHelp":"Source : un chemin de site comme /old-page ; un * final correspond à un dossier entier (/blog/* -> /us/posts/*) ; une requête correspond à d'anciens liens WordPress (/?p=12). Cible : un /path ou une URL complète ; 410 signifie supprimé pour de bon.","domainHelp":"Les domaines alias (anciens domaines, autres TLD) redirigent vers le domaine principal avec chemin et requête. Source * désigne tous les domaines sauf le domaine principal (développement local, aperçus pages.dev et adresses IP exclus), par ex. à régler sur www ou le domaine nu. Les domaines doivent pointer vers ce site.","add":"Ajouter une règle","import":"Importation en masse","search":"Rechercher...","source":"Source","target":"Cible","sourceDomain":"Domaine source","targetDomain":"Domaine principal","sourceHint":"par ex. /ancienne-page, /blog/*, /?p=12","sourceDomainHint":"par ex. old.com (www.old.com inclus) ; * = tous les autres domaines","targetHint":"par ex. /us/new-page ou https://...","status":"Statut","s301":"permanent (recommandé)","s302":"temporaire","s410":"parti","note":"Remarque","hits":"Clics","saved":"Enregistré","empty":"Pas encore de règles","confirmDelete":"Cliquez à nouveau pour supprimer","importHelp":"Une règle par ligne : source cible [statut], séparée par des espaces, des tabulations ou des virgules ; une exportation CSV d'un autre plugin de redirection fonctionne lorsque ses premières colonnes sont source et cible. Les sources existantes sont ignorées.","importDomainHelp":"Une règle par ligne : domaine-source domaine-primaire [statut].","importRun":"Importer","imported":"{added} ajouté, {skipped} ignoré","test":"Tester","testPlaceholder":"Testez une URL ou un chemin, par ex. /old-page ou https://old.com/x","testNone":"Aucune règle ne correspond (la page s'affiche normalement)","log404":"Journal 404","log404Help":"Enregistre les chemins de page qui ont répondu 404 (pas d'adresses IP) ; les sondes de robots courantes sont ignorées. Triez par accès pour trouver les anciens liens nécessitant une redirection. Les entrées invisibles pendant 90 jours sont supprimées.","byHits":"La plupart des succès","byRecent":"Le plus récent","clear404":"Effacer le journal","path":"Chemin","lastSeen":"Vu pour la dernière fois","addRedirect":"Ajouter une redirection","empty404":"Aucun 404 enregistré"},"navGroups":{"content":"Contenu","products":"Produits","users":"Utilisateurs et membres","growth":"Référencement et marketing","extensions":"Rallonges","system":"Système","overview":"Aperçu"},"menus":{"title":"Menus","subtitle":"En-tête, pied de page et autres navigations, sans changement de code. Un par langue ; l'économie s'applique immédiatement.","new":"Nouveau menu","key":"Emplacement","keyHint":"primaire = en-tête, pied de page = pied de page ; les sites peuvent utiliser leurs propres emplacements","keyPrimary":"navigation dans l'en-tête","keyFooter":"liens de pied de page","name":"Nom","locale":"Langue","copyFrom":"Copier depuis","empty":"Menu vide","none":"Pas encore de menus. Une fois qu'un menu principal existe, il pilote l'en-tête (en attendant, la navigation intégrée du site est utilisée).","add":"Ajouter des éléments","addItem":"Ajouter","search":"Rechercher...","nothing":"Rien à ajouter","label":"Étiquette (vierge : le titre du contenu)","newTab":"Ouvrir dans un nouvel onglet","up":"Monter","down":"Descendre","indent":"Faire un sous-élément de l'élément ci-dessus","outdent":"Sortir du sous-menu","saved":"Menu enregistré","confirmDelete":"Confirmer la suppression","emptyTree":"Ajouter des éléments à partir de la gauche","treeHint":"Faites glisser les éléments à réorganiser ; jusqu'à trois niveaux. Les éléments dont la page, la publication ou le produit n'est pas publié sont masqués.","types":{"custom":"Lien personnalisé","page":"Pages","post":"Publier","product":"Produit","category":"Catégorie de message","productCategory":"Catégorie de produit"},"unpublished":"inédit"},"preview":{"button":"Lien d'aperçu","title":"Partager un aperçu","hint":"Un lien qui montre cet élément inédit avec les vraies pages du site à n'importe qui, sans avoir besoin de compte. Il cesse de fonctionner à son expiration.","days":"valide {n} jour(s)","create":"Créer un lien","copy":"Copier","copied":"Lien d'aperçu copié","until":"valable jusqu'au {date}"},"backups":{"title":"Sauvegardes","subtitle":"Sauvegardez le contenu du site selon un planning, sur le stockage des pièces jointes ou sur un serveur FTP de votre choix, en conservant les dernières versions.","runNow":"Sauvegarder maintenant","enabled":"Sauvegardes planifiées","frequency":"Fréquence","daily":"Quotidiennement","weekly":"Hebdomadaire","hour":"Heure (fuseau horaire du site)","keep":"Garder","storage":"Enregistrer dans le stockage des pièces jointes ({driver})","storageHint":"Conservé en privé/sauvegardes/, jamais public ; téléchargez-les ci-dessous.","status":{"ok":"OK","partial":"Partiellement réalisé","failed":"Échec","running":"Courir"},"ftp":"Télécharger sur un serveur FTP","ftpHost":"Hôte","ftpPort":"Port","ftpUser":"Utilisateur","ftpPassword":"Mot de passe","passwordKept":"stocké; laisser vide pour conserver","ftpDir":"Répertoire (créé en cas d'absence)","ftpSecure":"Utiliser FTPS (AUTH TLS)","test":"Tester la connexion","ftpOk":"Connecté ; {n} fichier(s) dans le répertoire","ftpFailed":"La connexion FTP a échoué","contents":"Une sauvegarde contient ce que contient Outils → Exporter : les articles, les pages, les produits, les catégories, les traductions, les paramètres publics et la liste des médias (.json.gz), restaurables dans Outils → Importer. Pas de comptes, de secrets ou de fichiers multimédias eux-mêmes ; sauvegardez les données du plugin (commandes, etc.) avec la base de données (Cloudflare D1 a une récupération ponctuelle de 30 jours).","noCron":"Les sauvegardes planifiées nécessitent le travailleur cron (NUXT_CRON_SECRET n'est pas défini) : seules les sauvegardes manuelles fonctionnent désormais.","saved":"Paramètres de sauvegarde enregistrés","done":"Sauvegarde effectuée","notAll":"Sauvegarde pas entièrement effectuée","history":"Histoire","none":"Aucune sauvegarde pour le moment","removed":"pivoté","trigger":{"manual":"manuel","schedule":"programmé"},"bucket":"Seau de stockage (R2 / S3 / OSS / COS)","bucketHint":"Sauvegardes dans un bucket qui leur est propre, en dehors des fichiers du site : Cloudflare R2, AWS S3, Alibaba OSS, Tencent COS ou tout stockage compatible S3. Utilisez une clé d'accès limitée à ce compartiment.","bucketProvider":"Fournisseur","bucketName":"Nom du compartiment","bucketRegion":"Région","bucketAccountId":"ID de compte Cloudflare","bucketEndpoint":"Point de terminaison (facultatif)","bucketEndpointHint":"Généralement vide (dérivé du fournisseur) ; pour un stockage auto-hébergé ou autre compatible","bucketKeyId":"ID de la clé d'accès","bucketSecret":"Clé d'accès secrète","bucketDir":"Annuaire","bucketOk":"Le bucket fonctionne ({n} fichiers dans le répertoire)","bucketFailed":"Échec de la connexion au bucket","providers":{"r2":"Cloudflare R2","s3":"AWS S3","oss":"Alibaba Cloud OSS","cos":"Tencent CloudCOS","custom":"Autre compatible S3"}},"mediaAlt":"Texte alternatif","mediaAltHint":"Décrire l'image pour les moteurs de recherche et les lecteurs d'écran ; cliquez pour modifier","searchIndex":{"title":"Index de recherche du site","text":"Les articles, pages et produits publiés entrent d'eux-mêmes dans l'index de recherche (maintenant {n} entrées) ; les visiteurs effectuent une recherche sur /search. Le contenu antérieur à la mise à niveau est ajouté par le cron au fil du temps, ou reconstruisez-le ici maintenant.","rebuild":"Reconstruire l'index","running":"Je travaille… {n}","rebuilt":"Index mis à jour ({n} traités)"},"collections":{"title":"Types de contenu","subtitle":"Études de cas, membres de l'équipe, FAQ, événements et bien plus encore sans code : définissez les champs, l'administrateur crée le formulaire et le site obtient des pages de liste et de détails.","new":"Nouveau type de contenu","presets":{"cases":"Études de cas","team":"Membres de l'équipe","faq":"FAQ","events":"Événements"},"presetHint":"partir d'un modèle · {n} champs","name":"Nom","key":"Clé","keyHint":"lettres minuscules, chiffres et tirets, utilisés dans les URL ; corrigé une fois créé","icon":"Icône","description":"Description (affichée sur la page de liste)","sortLabel":"Commande","sort":{"newest":"Le plus récent en premier","manual":"Manuel","title":"Par titre"},"fields":"Champs","fieldsHint":"Chaque entrée a déjà un titre, un slug, une langue, un statut et une image de couverture.","fieldLabel":"Nom du champ","fieldKey":"Clé de champ","required":"Obligatoire","options":"Choix, un par ligne","addField":"Ajouter un champ","types":{"text":"Texte","textarea":"Texte long","richtext":"Texte enrichi","number":"Numéro","boolean":"Oui/non","date":"Date","image":"Images","images":"Images","url":"Lien","select":"Choix","list":"Liste (une par ligne)"},"saved":"Type de contenu enregistré","count":"{n} entrées","fieldCount":"{n} champs","isPublic":"Publique","isPrivate":"Administrateur uniquement","entries":"Entrées","edit":"Champs","deleteWarn":"Ses {n} entrées sont supprimées avec lui, pour de bon. Tapez {key} pour confirmer.","newEntry":"Nouvelle entrée","searchEntries":"Rechercher des titres...","noEntries":"Aucune entrée pour l'instant","status":{"draft":"Brouillon","published":"Publié","scheduled":"Programmé"},"entrySaved":"Enregistré","confirmDelete":"Confirmer la suppression","entryTitle":"Titre","locale":"Langue","publishedAt":"Date de publication","sortOrder":"Commande (la plus petite d'abord)","cover":"Image de couverture","choose":"Choisir une image","addImage":"Ajouter une image","onePerLine":"Un par ligne","public":"Public (page de liste {path}, dans la recherche sur site et sur le plan du site)"},"roleAuthor":"Auteur","roleContributor":"Contributeur","roleHelp":{"admin":"Tout, y compris les paramètres, les utilisateurs, les plugins et la sécurité","editor":"Tous les articles, pages, produits, types de contenu et médias","author":"Écrit et publie ses propres articles, télécharge des images","contributor":"Rédige ses propres brouillons pour qu'un éditeur les publie ; utilise uniquement des images existantes"},"forms":{"title":"Formulaires","subtitle":"Demandes de devis, inscriptions, enquêtes... copiez le code d'intégration dans n'importe quelle page ; les soumissions sont conservées ici et peuvent vous être envoyées par courrier électronique.","new":"Nouveau formulaire","name":"Nom","key":"Clé","keyHint":"Lettres minuscules, chiffres et tirets ; ne peut pas être modifié ultérieurement","statusLabel":"Statut","open":"Ouvert","closed":"Fermé","fields":"Champs","fieldKey":"Clé de champ, par ex. entreprise","fieldLabel":"Étiquette","required":"Obligatoire","options":"Options, une par ligne","addField":"Ajouter un champ","notify":"E-mail de notification","notifyHint":"Envoyé par courrier électronique à chaque nouvelle soumission ; séparez plusieurs adresses par des virgules ; vide : pas d'e-mail","captcha":"Utilisez captcha (la scène \"formulaire de contact\" dans Sécurité)","success":"Message de réussite","submit":"Texte du bouton Soumettre","saved":"Formulaire enregistré","copied":"Code d'intégration copié","confirmDelete":"Cliquez à nouveau pour supprimer le formulaire et toutes ses soumissions","none":"Aucun formulaire pour l'instant. Essayez une demande de devis ou un formulaire d'inscription.","submissions":"Soumissions","unread":"{n} nouveau","count":"{n} soumissions","fieldCount":"{n} champs","noSubmissions":"Aucune soumission pour l'instant","markRead":"Marquer comme lu","archive":"Archiver","subStatus":{"new":"Nouveau","read":"Lire","archived":"Archivé"},"types":{"text":"Texte","email":"Courriel","tel":"Téléphone","textarea":"Texte long","number":"Numéro","select":"Liste déroulante","radio":"Choix unique","checkbox":"Choix multiple","date":"Date","consent":"Case à cocher Consentement"}},"forgot":{"title":"Réinitialisez votre mot de passe","text":"Entrez l'adresse e-mail de votre compte administrateur et nous vous enverrons un lien pour définir un nouveau mot de passe (valable 1 heure).","submit":"Envoyer un e-mail de réinitialisation","sentTitle":"E-mail envoyé","sentText":"Si {email} appartient à un compte administrateur ici, un e-mail de réinitialisation arrive dans quelques minutes.","noMail":"Rien n'est arrivé ? Vérifiez votre dossier spam ou demandez à un administrateur de vous envoyer un e-mail de réinitialisation de la part des utilisateurs.","failed":"Impossible d'envoyer, veuillez réessayer plus tard","back":"Retour à la connexion"},"reset":{"title":"Définir un nouveau mot de passe","text":"Définissez un nouveau mot de passe administrateur pour {email}. Chaque appareil devra se reconnecter.","password":"Nouveau mot de passe","confirm":"Nouveau mot de passe à nouveau","rule":"Au moins 8 caractères","mismatch":"Les mots de passe ne correspondent pas","submit":"Enregistrer le nouveau mot de passe","doneTitle":"Mot de passe mis à jour","doneText":"Connectez-vous avec votre nouveau mot de passe.","invalidTitle":"Ce lien a expiré","invalidText":"Le lien de réinitialisation a expiré ou a déjà été utilisé. Demandez un nouvel e-mail de réinitialisation.","again":"Demander à nouveau","failed":"Impossible d'enregistrer, veuillez réessayer plus tard"},"users":{"invite":"Envoyer une invitation pour que l'utilisateur définisse son propre mot de passe","inviteHelp":"Nécessite les paramètres de messagerie (E-mail); le lien est valable 3 jours","invited":"Créé ; invitation envoyée à {email}","inviteFailed":"Utilisateur créé, mais l'e-mail d'invitation a échoué","sendReset":"Envoyer un e-mail de réinitialisation du mot de passe","sendResetConfirm":"Envoyer un e-mail de réinitialisation de mot de passe à {email} ?","resetSent":"E-mail de réinitialisation du mot de passe envoyé à {email}"},"midCopies":{"button":"Réalisez des copies de qualité moyenne","progress":"Travail {done}/{total}","done":"{done} images vérifiées, {made} copies de qualité moyenne réalisées, {failed} échecs","failed":"Impossible de réaliser des copies de qualité moyenne"}},"blog":{"count":"{count} articles","empty":"Pas encore d'articles","title":"Actualités","subtitle":"Actualités de l'entreprise, lancements de produits et informations techniques.","anonymous":"Anonyme","article":"Articles","prev":"Précédent","next":"Suivant","related":"Articles connexes"},"categories":{"belt":"Convoyeur à bande","chain":"Convoyeur à chaîne","lift":"Ascenseur","roller":"Convoyeur à rouleaux"},"common":{"all":"Tout","backToBlog":"Retour au blog","backToHome":"Retour à la maison","contactUs":"Contactez-nous","freeQuote":"Devis gratuit","language":"Langue","loading":"Chargement…","readMore":"Lire la suite","search":"Rechercher","by":"Anonyme","noCases":"Aucun cas pour l'instant","noPosts":"Pas encore de messages","noProducts":"Aucun produit pour l'instant","getQuote":"Devis gratuit","tooManyRequests":"Vous allez un peu vite – veuillez patienter un instant et réessayer. Merci pour votre patience.","toggleTheme":"Changer de thème","views":"{n} vues","verifyHuman":"Veuillez compléter la vérification humaine"},"docs":{"empty":"Aucun document pour l'instant","intro":"Guides et instructions de déploiement","title":"Documentation"},"error":{"generic":"Quelque chose s'est mal passé","notFound":"Page introuvable","tooManyRequests":"Vous avez été un peu occupé en ce moment. Veuillez patienter un moment et réessayer — merci de votre patience.","notFoundTitle":"Page introuvable","notFoundMessage":"La page que vous recherchez n'existe pas ou a peut-être été déplacée.","genericTitle":"Quelque chose s'est mal passé","genericMessage":"Une erreur inattendue s'est produite. Veuillez réessayer plus tard.","redirectIn":"Redirection vers la page d'accueil dans {seconds} secondes…","goHome":"Aller à la page d'accueil"},"products":{"category":"Catégories","description":"Couvrant les convoyeurs à rouleaux, les convoyeurs à bande, les convoyeurs à chaîne et les ascenseurs. Solutions personnalisées disponibles.","empty":"Aucun produit dans cette catégorie","heading":"Nos produits","inquiry":"Enquête","specs":"Spécifications","subtitle":"Trois gammes de produits : plateforme cloud, solutions d'IA et appareils intelligents.","title":"Produits","viewDetails":"Afficher les détails","related":"Produits associés","inquiryHint":"Besoin d'un devis ou d'une solution personnalisée ? Dites-nous ce que vous construisez."},"search":{"button":"Rechercher","hot":"Mots-clés chauds","placeholder":"Entrez des mots-clés","title":"Rechercher","results":"{n} résultat(s) pour \"{q}\"","empty":"Rien trouvé. Essayez d'autres mots.","more":"Charger plus","kinds":{"all":"Tout","post":"Messages","page":"Pages","product":"Produits","item":"Entrées"}},"setup":{"title":"Installer NuxtCMS","subtitle":"Créez un compte administrateur et initialisez le site","siteName":"Nom du site","siteDescription":"Description du site","adminName":"Nom de l'administrateur","adminEmail":"E-mail de l'administrateur","adminPassword":"Mot de passe administrateur","passwordHint":"Au moins 6 caractères","install":"Configuration complète","success":"Configuration terminée","successDesc":"Bienvenue sur NuxtCMS !","failed":"Échec de la configuration","demoContent":"Importer du contenu de démonstration","demoContentHint":"Des échantillons de produits Seeds, des publications et une page À propos (chinois + anglais) afin que vous puissiez prévisualiser le site immédiatement.","token":"Jeton de configuration","tokenHint":"le NUXT_SETUP_TOKEN défini au moment du déploiement"},"nav":{"home":"Accueil","products":"Produits","blog":"Blogue","about":"À propos","contact":"Contacter","docs":"Documents","admin":"Administrateur","getStarted":"Réservez une démo","menu":"Menus"},"home":{"heroKicker":"Plateforme numérique pour les entreprises modernes","heroTitle":"Développez votre entreprise avec le cloud natif et l'IA","heroSubtitle":"Nous proposons des solutions intégrées de cloud, d'IA et de matériel intelligent qui aident les équipes à travailler plus rapidement et à fonctionner de manière plus fiable.","heroCta":"Explorer les produits","heroSecondary":"Parlez-nous","statsProjects":"Projets livrés","statsClients":"Clients d'entreprise","statsUptime":"Disponibilité du service","statsCountries":"Pays","featuresTitle":"Pourquoi les équipes nous choisissent","featuresSubtitle":"De l'infrastructure aux applications intelligentes, un seul partenaire pour l'ensemble du cycle de vie.","feature1Title":"Architecture cloud native","feature1Desc":"Conteneurs élastiques et fondations sans serveur qui évoluent à la demande et maintiennent les coûts prévisibles.","feature2Title":"IA intégrée","feature2Desc":"De grands modèles de langage intégrés à vos flux de travail : support, bases de connaissances et informations sur les données.","feature3Title":"Sécurité d'entreprise","feature3Desc":"Chiffrement de bout en bout, autorisations affinées et journaux d'audit pour la conformité.","feature4Title":"Livraison rapide","feature4Desc":"Les bibliothèques de composants matures et les pipelines automatisés mettent en ligne de nouvelles fonctionnalités en quelques jours.","productsTitle":"Produits de base","productsSubtitle":"Trois gammes de produits : plateforme cloud, solutions d'IA et appareils intelligents.","newsTitle":"Dernières mises à jour","newsSubtitle":"Actualités de l'entreprise, lancements de produits et informations techniques.","viewAll":"Voir tout","ctaTitle":"Prêt à commencer ?","ctaSubtitle":"Parlez-nous de votre projet et un consultant vous contactera dans un délai d'un jour ouvrable.","ctaButton":"Contactez-nous"},"contact":{"title":"Contactez-nous","subtitle":"Questions sur les produits, partenariats ou assistance technique : nous serions ravis d’avoir votre avis.","name":"Nom","email":"Courriel","phone":"Téléphone","message":"Message","submit":"Envoyer un message","success":"Message envoyé. Nous vous répondrons sous peu.","failed":"L'envoi a échoué, veuillez réessayer plus tard.","infoTitle":"Contactez-nous","emailLabel":"Courriel","phoneLabel":"Téléphone","addressLabel":"Adresse"},"footer":{"tagline":"Un système de gestion de contenu moderne construit avec Nuxt 4.","company":"Entreprise","contact":"Contacter","poweredBy":"Propulsé par NuxtCMS"},"captcha":{"placeholder":"Code dans l'image","mathPlaceholder":"Résultat","refresh":"Difficile à lire ? Nouvelle image","recaptchaNotice":"Ce site est protégé par reCAPTCHA"},"demo":{"banner":"Ceci est la démo NuxtCMS : les données sont restaurées quotidiennement, les paiements sont simulés, veuillez ne pas saisir de données personnelles réelles.","enterAdmin":"Essayez l'administrateur","adminNotice":"Mode démo : les comptes, la messagerie électronique, les plugins, les paramètres et les téléchargements sont désactivés ; les données sont restaurées quotidiennement.","login":"Entrez l'administrateur de la démo","loginHint":"Aucun mot de passe requis : vous vous connectez avec le compte démo partagé.","checkoutNotice":"Site de démonstration : les exemples de détails sont renseignés et les paiements sont simulés, rien n'est facturé.","simulatePay":"Simuler un paiement réussi","simulated":"Les paiements sont simulés dans la démo ; rien n'est facturé.","close":"Fermer"},"preview":{"bar":"Mode aperçu : vous voyez peut-être du contenu inédit","exit":"Quitter l'aperçu"},"collection":{"empty":"Rien ici encore","notFound":"Pas trouvé","yes":"Oui","no":"Non"},"cmsForm":{"thanks":"Merci! Nous vous répondrons bientôt.","failed":"Impossible d'envoyer, veuillez réessayer plus tard","submit":"Envoyer"},"aiAudit":{"title":"Vérification de la recherche IA","adminHint":"Les recherches IA (ChatGPT, Perplexity, Claude) et les moteurs de recherche peuvent-ils lire ce site ? Vérifie llms.txt, l'accès au robot d'exploration AI, les données structurées, les balises de langue, le plan du site et le temps de réponse. Laissez l'adresse vide pour consulter ce site.","ownSite":"Vide : ce site ou une adresse telle que example.com","run":"Exécuter une vérification","failed":"La vérification a échoué","responseTime":"{ms} ms du serveur de vérification","crawlers":"Robots d'exploration IA dans robots.txt","allowed":"autorisé","blocked":"bloqué","grade":{"good":"Facile à lire pour la recherche AI","fair":"Possibilité d'amélioration","poor":"Difficile à lire pour la recherche AI"},"checks":{"llms":{"title":"llms.txt (un guide de site pour l'IA)","pass":"llms.txt est là : les assistants IA voient de quoi parle le site et quelles pages sont importantes.","fail":"Non /llms.txt : les assistants IA doivent deviner ce qui compte, ils citent et recommandent donc moins le site."},"aiCrawlers":{"title":"Robots de recherche IA","pass":"robots.txt permet aux principaux robots d'exploration de l'IA de lire la page d'accueil ({value}).","fail":"robots.txt permet uniquement à {value} des principaux robots d'exploration de l'IA de lire la page d'accueil ; La recherche AI ​​bloquée ne citera pas le site."},"speed":{"title":"Temps de réponse","pass":"La page d'accueil a répondu dans un délai de {value} ms.","fail":"La page d'accueil a pris {value} ms ; les visiteurs et les robots peuvent abandonner."},"structuredData":{"title":"Données structurées (JSON-LD)","pass":"Données structurées sur la page d'accueil : {value}.","fail":"Pas de JSON-LD sur la page d'accueil : l'IA et les moteurs de recherche ne peuvent pas confirmer l'entreprise, les produits et autres faits clés."},"hreflang":{"title":"Balises de langue (hreflang)","pass":"Les versions linguistiques de {value} sont balisées, de sorte que la recherche de chaque pays affiche la bonne langue.","fail":"Pas de balises de langue hreflang ({value}) : les visiteurs à l'étranger peuvent atterrir sur la mauvaise langue. Les sites monolingues peuvent ignorer cela."},"sitemap":{"title":"Plan du site","pass":"Un plan du site a été trouvé, donc les nouvelles pages sont indexées plus tôt.","fail":"Aucun plan de site trouvé (Sitemap dans robots.txt ou /sitemap.xml)."},"meta":{"title":"Titre et description","pass":"La page d'accueil a un titre et une description utile ({value} caractères).","fail":"La page d'accueil n'a pas de titre ou sa description est courte ({value} caractères) : les résumés et les résultats de l'IA le montrent mal."},"https":{"title":"HTTPS","pass":"Le site utilise HTTPS.","fail":"Le site n'utilise pas HTTPS ; les navigateurs le signalent comme non sécurisé."},"canonical":{"title":"Lien canonique","pass":"La page d'accueil déclare son adresse canonique.","fail":"Pas de lien canonique : plusieurs adresses pour une même page divisent son classement."}}},"localeSuggest":{"dismiss":"Non merci","text":"Cette page est également disponible en {language}.","switch":"Passer à {language}"},"oauth":{"continueWith":"Continuez avec {provider}","or":"ou","providers":{"wechat":"WeChat","qq":"QQ","dingtalk":"DingTalk","feishu":"Feishu / Alouette","microsoft":"Microsoft"},"errors":{"state":"La connexion a expiré, veuillez réessayer.","denied":"L'autorisation a été annulée.","provider":"La connexion avec le fournisseur a échoué. Veuillez réessayer plus tard.","notLinked":"Ce compte n'est pas connecté à un compte administrateur. Connectez-vous d'abord avec votre e-mail et votre mot de passe et connectez-le sous Sécurité du compte.","taken":"Ce compte est déjà connecté à un autre utilisateur.","disabled":"Ce compte est désactivé.","signup":"Les nouvelles inscriptions sont fermées.","signin":"Connectez-vous d’abord à l’administrateur, puis connectez le compte.","rate":"Trop de tentatives, veuillez réessayer plus tard."},"account":{"title":"Fournisseurs de connexion","hint":"Les comptes connectés peuvent se connecter directement à l'administrateur ; l'e-mail et le mot de passe continuent de fonctionner.","connect":"Connectez {provider}","unlink":"Déconnecter","unlinkConfirm":"Déconnecter {provider} ?","linked":"Compte connecté","lastUsed":"Dernière utilisation","notMigrated":"La base de données n'est pas encore mise à jour (la table user_identities est manquante) : appliquez d'abord les migrations."},"admin":{"title":"Méthodes de connexion","intro":"Connectez-vous avec Google, GitHub, Microsoft, WeChat, DingTalk, Feishu ou tout autre service OpenID Connect/OAuth 2.0, pour l'administrateur et pour les comptes des membres du site (par exemple, le kit SaaS). La connexion par e-mail et par mot de passe reste toujours.","adminRules":"Règles de connexion administrateur","linkByEmail":"Lien par e-mail","linkByEmailHint":"Lors de la première connexion, connectez le compte administrateur avec la même adresse lorsque le fournisseur l'a vérifié (les adresses multi-locataires Microsoft ne sont jamais fiables).","autoCreateDomains":"Créez des comptes pour ces domaines de messagerie","autoCreateDomainsHint":"Les adresses vérifiées de ces domaines obtiennent un compte administrateur lors de leur première connexion. Vide : personne n'est créé, seuls les comptes connectés ou correspondants entrent.","autoCreateRole":"Rôle des nouveaux comptes","optional":"facultatif","passwordStays":"Les fournisseurs constituent un moyen supplémentaire d'entrer : l'e-mail + le mot de passe, la réinitialisation du mot de passe et la connexion à deux facteurs continuent de fonctionner ; les comptes avec connexion à deux facteurs saisissent toujours leur code après la connexion d'un fournisseur.","enabled":"Sur","forAdmin":"Connexion administrateur","forSite":"Connexion des membres du site","buttonLabel":"Etiquette du bouton","providerId":"Identifiant","providerIdHint":"Commence par personnalisé, jusqu'à 16 caractères ; fixed once saved (it is part of the callback URL).","custom":"coutume","fromEnv":"de l'environnement","ready":"Prêt","incomplete":"Incomplet","secretKept":"Enregistré ; laisser vide pour conserver","trustEmail":"","callback":"","copy":"Copie","copied":"Copié","console":"Ouvrir la console développeur","remove":"Retirer","removeConfirm":"Supprimer {provider} ? Prend effet lors de la sauvegarde ; les enregistrements des comptes connectés restent.","add":"Ajouter une méthode de connexion","addPlaceholder":"Choisissez une prestation…","saved":"Méthodes de connexion enregistrées","options":{"tenant":"Locataire","baseUrl":"URL GitLab","domain":"Édition (feishu / alouette)","issuer":"URL de l'émetteur","scope":"Portée","authorizeUrl":"Autoriser l'URL","tokenUrl":"URL du jeton","userinfoUrl":"URL des informations utilisateur","idField":"Champ identifiant utilisateur","emailField":"Champ de courrier électronique","nameField":"Champ de nom","avatarField":"Champ d'avatar","tokenAuth":"Authentification par jeton (post/basique)"}}}}}