{ "admin.login.title": "Administration", "admin.login.required": "Login required", "admin.login.password": "Admin password", "admin.login.connecting": "Connecting...", "admin.login.access": "Access admin panel", "admin.login.restricted": "Restricted to administrators", "admin.layout.checking": "Verifying authentication...", "admin.dashboard.title": "Admin Dashboard", "admin.dashboard.subtitle": "Administrator control panel", "admin.dashboard.refresh": "Refresh", "admin.dashboard.refreshTooltip": "Refresh dashboard data", "admin.dashboard.config": "System Configuration", "admin.dashboard.maxFileSize": "Max file size:", "admin.dashboard.translationService": "Translation service:", "admin.dashboard.formats": "Formats:", "admin.nav.dashboard": "Dashboard", "admin.nav.users": "Users", "admin.nav.pricing": "Pricing & Stripe", "admin.nav.providers": "Providers", "admin.nav.system": "System", "admin.nav.logs": "Logs", "admin.nav.stats": "Statistics", "admin.users.title": "User Management", "admin.users.subtitle": "View and manage user accounts", "admin.users.planUpdated": "Plan updated", "admin.users.planChanged": "The plan has been changed to \\\"{plan}\\\" successfully.", "admin.users.unknownError": "Unknown error", "admin.users.error": "Error", "admin.users.planUpdateError": "Unable to update plan: {message}", "admin.users.noKeys": "No keys", "admin.users.noKeysDesc": "This user has no active API keys.", "admin.users.keysRevoked": "Keys revoked", "admin.users.keysRevokedDesc": "{count} API key(s) revoked successfully.", "admin.users.revokeError": "Unable to revoke keys: {message}", "admin.users.retry": "Retry", "admin.system.title": "System", "admin.system.subtitle": "Monitor system status and manage resources", "admin.system.quotas": "Translation quotas", "admin.system.resetQuotas": "Reset monthly quotas", "admin.system.resetting": "Resetting...", "admin.system.reset": "Reset", "admin.system.allOperational": "All Systems Operational", "admin.system.issuesDetected": "System Issues Detected", "admin.system.waitingData": "Waiting for data...", "admin.system.purging": "Purging...", "admin.system.clean": "Clean", "admin.system.purge": "Purge", "admin.nav.models": "Models & subscriptions", "admin.nav.marketing": "Marketing", "admin.marketing.audience": "Audience", "admin.marketing.audienceAllUsers": "All accounts", "admin.marketing.audienceInactive": "Accounts inactive for 30 days", "admin.marketing.audiencePlaceholder": "Choose an audience", "admin.marketing.audiencePlanBusiness": "Business plan", "admin.marketing.audiencePlanEnterprise": "Enterprise plan", "admin.marketing.audiencePlanFree": "Free plan", "admin.marketing.audiencePlanPro": "Pro plan", "admin.marketing.audiencePlanStarter": "Starter plan", "admin.marketing.audienceWaitlist": "Waitlist", "admin.marketing.badgeReal": "real", "admin.marketing.badgeTest": "test", "admin.marketing.confirmSend": "Send this email to {count} recipient(s) (“{audience}”)?", "admin.marketing.footerNote": "A footer with the unsubscribe link is automatically added when sending.", "admin.marketing.hidePreview": "Hide preview", "admin.marketing.history": "Send history", "admin.marketing.historyFailedSuffix": ", {count} failed", "admin.marketing.historySent": "{sent}/{total} sent", "admin.marketing.html": "HTML content", "admin.marketing.htmlPlaceholder": "…", "admin.marketing.incompleteDesc": "Please fill in the subject and the HTML.", "admin.marketing.incompleteTitle": "Incomplete content", "admin.marketing.loadErrorTitle": "Loading error", "admin.marketing.localCheckUnavailable": "Local check unavailable in this browser: the server will verify the prior test send.", "admin.marketing.networkDesc": "Cannot reach the backend.", "admin.marketing.newCampaign": "New campaign", "admin.marketing.noHistory": "No send recorded.", "admin.marketing.preview": "Preview", "admin.marketing.previewEmpty": "Preview: paste your HTML next to this panel.", "admin.marketing.previewTitle": "Email preview", "admin.marketing.recipientsAvailable": "{count} recipient(s) available after excluding unsubscribed contacts.", "admin.marketing.sendReal": "Send to {count} recipient(s)", "admin.marketing.sendRefusedTitle": "Send refused", "admin.marketing.sendTest": "Send test", "admin.marketing.sendingDesc": "{count} email(s) queued for sending (0.2 s interval). Unsubscribed contacts are excluded.", "admin.marketing.sendingTitle": "Send in progress", "admin.marketing.subject": "Subject", "admin.marketing.subjectPlaceholder": "E.g.: Your translation is waiting — 20% off for 7 days", "admin.marketing.subtitle": "Send emails to an audience, with a mandatory test send, automatic unsubscribe link and full history.", "admin.marketing.testDoneDesc": "Email received at {email}", "admin.marketing.testDoneTitle": "Test send done", "admin.marketing.testEmail": "Test email (optional)", "admin.marketing.testEmailPlaceholder": "Otherwise: SMTP sender address", "admin.marketing.testFailedTitle": "Test send failed", "admin.marketing.testRequiredHint": "A real send requires a prior test send of this exact content (verified by the server).", "admin.marketing.testValidated": "Test send validated for this content.", "admin.marketing.title": "Marketing — email campaigns", "admin.marketing.unsubscribedNote": "{count} unsubscribed contact(s) will be excluded from any send.", "admin.models.addModel": "Add a model", "admin.models.businessBadge": "Business plan", "admin.models.cancel": "Cancel", "admin.models.catalog": "OpenRouter catalog", "admin.models.catalogErrorDesc": "Failed to load the OpenRouter catalog.", "admin.models.catalogErrorTitle": "Catalog unavailable", "admin.models.customBadge": "Custom tier", "admin.models.customNote": "Bespoke models, agreed case by case with the customer.", "admin.models.defaultBadge": "default", "admin.models.emptyTier": "No model: the plan's official range will be used.", "admin.models.enterpriseBadge": "Enterprise plan", "admin.models.essentialBadge": "Essential AI tier", "admin.models.essentialCost": "— billed at cost factor 1", "admin.models.fallbackFirst": "(fallback #1)", "admin.models.loadErrorDesc": "HTTP {status} — check your admin token.", "admin.models.loadErrorTitle": "Loading error", "admin.models.matrixDesc": "Active models per tier — the list order is the fallback priority. The radio button picks the default model, applied immediately without redeployment.", "admin.models.matrixTitle": "Model matrix by plan", "admin.models.missingConfig": "AI tier configuration not found. Reload the page.", "admin.models.moveDown": "Move down", "admin.models.moveUp": "Move up", "admin.models.networkDesc": "Cannot reach the backend.", "admin.models.networkTitle": "Network error", "admin.models.premiumBadge": "Premium AI tier", "admin.models.premiumCost": "— billed at cost factor 5", "admin.models.premiumReservedNote": "Reserved for Business and Enterprise plans (“openrouter_premium” engine).", "admin.models.proBadge": "Pro plan", "admin.models.remove": "Remove", "admin.models.save": "Save", "admin.models.saveErrorTitle": "Save error", "admin.models.saveNetworkDesc": "Could not save the configuration.", "admin.models.savedDesc": "The new default model applies from the next translation, without redeployment.", "admin.models.savedTitle": "Models saved", "admin.models.saving": "Saving...", "admin.models.setDefault": "Set {model} as default model", "admin.models.sharedTierNote": "Shared tier: the Business plan also uses the Essential tier for its “openrouter” engine — the list above applies to both plans.", "admin.models.subtitle": "Plans → AI tiers matrix. The model actually used per translation is the plan's tier model: a Pro plan can never trigger a Premium model.", "admin.models.title": "Models & subscriptions", "admin.stats.aiTiers": "AI tiers (30 d)", "admin.stats.includingCredits": "including {amount} in credits", "admin.stats.mrr": "Estimated MRR", "admin.stats.noTranslationsYet": "No translation stored in the last 30 days: the AI tier breakdown will fill in with upcoming translations.", "admin.stats.payments30": "{count} payment(s) in 30 days", "admin.stats.refreshing": "Refreshing...", "admin.stats.revenue30": "Revenue (30 days)", "admin.stats.revenueTotal": "Total collected revenue", "admin.stats.tiersSub": "Essential / Premium · classic {classic} · other {other}", "admin.stats.unavailable": "Business statistics unavailable ({error}).", "admin.stats.waitlist": "Waitlist", "admin.stats.waitlistSub": "people waiting" }