Files
pieced-portal/src/messages/en.json
admin 11157b872c
All checks were successful
Build and Push / build (push) Successful in 1m28s
Add note to reactivation request
2026-05-02 16:43:54 +02:00

464 lines
22 KiB
JSON

{
"common": {
"appName": "PieCed",
"tagline": "AI Platform",
"login": "Sign In",
"logout": "Sign Out",
"dashboard": "Dashboard",
"admin": "Admin",
"loading": "Loading…",
"language": "Language",
"cancel": "Cancel",
"save": "Save",
"error": "An error occurred",
"register": "Register",
"team": "Team",
"settings": "Settings",
"optional": "optional",
"support": "Support"
},
"login": {
"title": "PieCed Portal",
"subtitle": "Sign in to manage your AI assistant",
"button": "Continue with ZITADEL",
"footer": "Hosted on-premises in Switzerland",
"noAccount": "No account yet?",
"register": "Create an account"
},
"register": {
"title": "Create your account",
"subtitle": "Set up your Swiss-hosted AI assistant",
"companyName": "Company Name",
"companyNamePlaceholder": "Acme GmbH",
"givenName": "First Name",
"familyName": "Last Name",
"email": "Email Address",
"submit": "Register",
"hasAccount": "Already have an account?",
"footer": "Your data is hosted exclusively on-premises in Switzerland.",
"successTitle": "Registration received",
"successDescription": "You will receive an invitation email with a link to set your password and verify your email address. Once completed, you can sign in to set up your AI assistant.",
"goToLogin": "Go to Sign In",
"duplicateDomain": "An account for the email domain {domain} is already registered. Please contact your company administrator to be invited, or reach out to PieCed IT support if you believe this is in error.",
"individualToggle": "Register as an individual",
"individualHint": "Tick this if you're not registering on behalf of a company. Your account will be set up as a personal workspace.",
"accountTypeLabel": "Account type",
"personalCardTitle": "Personal",
"personalCardDescription": "For yourself.",
"companyCardTitle": "Company",
"companyCardDescription": "For your business or team."
},
"onboarding": {
"loading": "Loading status…",
"welcomeTitle": "Set up your AI assistant",
"welcomeDescription": "In a few steps, you'll have your own AI assistant — hosted exclusively in Switzerland, fully under your control.",
"welcomeFeature_swissHosted": "Hosted on-premises in Switzerland — your data never leaves the country",
"welcomeFeature_privacy": "No data shared with third parties — complete privacy",
"welcomeFeature_customizable": "Fully customizable personality, packages, and integrations",
"getStarted": "Get started",
"configureTitle": "Configure your assistant",
"configureDescription": "Give your assistant a name and personality. You can always change this later.",
"agentName": "Agent Name",
"soulMd": "Personality (SOUL.md)",
"soulMdHint": "This defines how your assistant behaves. Markdown format. You can edit this later.",
"agentsMd": "Agent Instructions (AGENTS.md)",
"agentsMdHint": "Defines what your assistant does on session start. Optional — defaults work well for most setups.",
"toolsMd": "Available Tools (TOOLS.md)",
"toolsMdHint": "Auto-generated based on your selected packages. This file is managed automatically.",
"advancedConfig": "Advanced Configuration",
"packages": "Packages",
"packagesHint": "Optional integrations. Packages requiring credentials will ask for them inline. You can also enable these later.",
"billingTitle": "Billing information",
"billingDescription": "We need your billing address to set up invoicing. A payment provider will be integrated in the future.",
"billingCompany": "Company",
"billingStreet": "Street",
"billingPostalCode": "Postal Code",
"billingCity": "City",
"billingCountry": "Country",
"billingNotes": "Notes",
"billingNotesPlaceholder": "Any notes about billing (PO number, VAT ID, preferred payment method, etc.)",
"confirmTitle": "Review & submit",
"confirmDescription": "Please review your setup. Your request will be reviewed by our team before provisioning.",
"confirmNote": "After submission, our team will review your request and billing details. You'll receive access once approved — typically within one business day.",
"credentialsProvided": "Credentials provided",
"submitRequest": "Submit request",
"back": "Back",
"next": "Next",
"pendingTitle": "Request submitted",
"pendingDescription": "Your onboarding request has been submitted and is awaiting review by our team. You'll receive access once approved — typically within one business day.",
"rejectedTitle": "Request not approved",
"rejectedDescription": "Unfortunately, your onboarding request was not approved. Please contact us for more information.",
"provisioningTitle": "Setting up your instance",
"provisioningDescription": "Your AI assistant is being provisioned. This usually takes a few minutes.",
"phase": "Phase",
"readyTitle": "Your assistant is ready!",
"readyDescription": "Your AI assistant has been provisioned and is running. You can now manage it from the dashboard.",
"goToDashboard": "Go to Dashboard",
"submittedAt": "Submitted",
"instanceName": "Instance name",
"instanceNamePlaceholder": "e.g. Production, Dev, Sales",
"instanceNameHint": "Optional human-readable name to distinguish this instance from others on your dashboard. Leave blank to use your company name.",
"validationError": "Please fix the errors before submitting.",
"validationErrorsTitle": "Some required fields are missing or invalid:",
"reviewInstanceDefault": "(default — uses company name)",
"reviewNoPackages": "None selected",
"reviewBillingTo": "Billing to",
"reviewContactEmail": "Contact email",
"editRequestTitle": "Edit your request",
"editRequestDescription": "Adjust the configuration before our team reviews it.",
"editRequest": "Edit",
"cancelRequest": "Cancel request",
"cancelRequestConfirm": "Yes, cancel request",
"cancelConfirmRequestTitle": "Cancel this request?",
"cancelConfirmRequestDescription": "Your pending request will be marked as cancelled and removed from the review queue. You can submit a new request at any time.",
"cancelFailed": "Could not cancel request.",
"cancelledTitle": "Request cancelled",
"cancelledDescription": "You cancelled this request before it was processed. No instance was created.",
"dismiss": "Dismiss",
"dismissFailed": "Could not dismiss.",
"rejectionReason": "Reason given",
"saveChanges": "Save changes",
"billingVatNumber": "VAT number",
"billingVatHelp": "Your registered VAT identifier. If your company is VAT-exempt, leave blank and explain in the notes field.",
"billingNotesPlaceholderPersonal": "Anything we should know — preferred payment method, billing reference, etc."
},
"dashboard": {
"title": "Dashboard",
"welcome": "Welcome back, {name}",
"instanceStatus": "Instance Status",
"usage": "Usage",
"packages": "Packages",
"noInstance": "No instance provisioned yet.",
"comingSoon": "Detailed view coming in Session 6.2",
"noInstanceDescription": "Set up your AI assistant instance to get started with PieCed IT.",
"manage": "Manage instance & packages",
"instances": "Your instances",
"inflightRequests": "In-flight requests",
"createInstance": "Create new instance",
"createInstanceDescription": "Provision an additional AI assistant instance for your organization. The request will be reviewed by an administrator before the instance is created.",
"noAccessNoInstances": "Your organization doesn't have any instances yet. Please ask the organization owner to set one up.",
"noAssignmentsTitle": "No instances assigned",
"noAssignmentsDescription": "Your organization has instances, but you haven't been granted access to any of them. Please ask your organization owner to assign you to an instance.",
"noInstancesYetTitle": "No instances yet",
"noInstancesYetDescription": "Your organization doesn't have any instances yet. Please ask your organization owner to set one up."
},
"tenantDetail": {
"agent": "Agent",
"packages": "Packages",
"workspaceFiles": "Workspace Files",
"notFound": "Tenant not found.",
"usage": "Usage & Spend",
"provisioned": "Provisioned",
"assignedUsers": "Assigned users",
"subscriptionTitle": "Subscription",
"subscriptionDescriptionActive": "Cancel your subscription if you no longer need this assistant. Your data will be preserved and you can resume anytime.",
"subscriptionDescriptionSuspended": "Your subscription is cancelled. Resume to bring the assistant back online.",
"cancelSubscription": "Cancel subscription",
"cancelSubscriptionConfirm": "Yes, cancel",
"resumeSubscription": "Resume subscription",
"cancelConfirmTitle": "Cancel this subscription?",
"cancelConfirmDescription": "Your assistant will become unavailable. You can resume anytime — your data is preserved.",
"cancelConfirmBullet1": "Workspace files (SOUL.md, AGENTS.md) are kept",
"cancelConfirmBullet2": "Package credentials remain stored",
"cancelConfirmBullet3": "Billing information is kept on file",
"subscriptionUpdateFailed": "Could not update subscription.",
"suspendedTitle": "Subscription cancelled",
"suspendedDescription": "Your assistant is paused. Configuration and data are preserved. Use the Resume control at the bottom of this page to bring it back online.",
"requestReactivation": "Request reactivation",
"requestReactivationConfirmTitle": "Request reactivation?",
"requestReactivationConfirmDescription": "An administrator will review your request and reactivate your tenant. You'll be notified by email once it's approved.",
"requestReactivationConfirm": "Submit request",
"cancelResumeRequest": "Cancel request",
"resumeRequestPendingTitle": "Reactivation request pending",
"resumeRequestPendingDescription": "Submitted {when}. An administrator will review it shortly.",
"resumeRequestPendingNoteAdmin": "An owner has requested reactivation; you can resume directly above or process the request from the admin queue.",
"cancelConfirmRetentionWarning": "Your data is preserved for 60 days after cancellation. After that, all tenant data — configuration, secrets, conversations, and files — will be permanently deleted.",
"suspendedSince": "Suspended on {date}",
"suspendedDeletionIn": "data deletion in {days, plural, one {# day} other {# days}} ({date})",
"suspendedDeletionImminent": "data is being deleted now",
"requestReactivationNoteLabel": "Note for our team",
"requestReactivationNotePlaceholder": "Anything our team should know — e.g. why you want to reactivate, urgency, etc."
},
"usage": {
"inputTokens": "Input Tokens",
"outputTokens": "Output Tokens",
"totalSpend": "Total Spend",
"totalCost": "Total Cost",
"budget": "Budget",
"noLimit": "No limit",
"last30Days": "Last 30 Days",
"noData": "No usage data available.",
"dailyBreakdown": "Daily Breakdown",
"requests": "requests"
},
"workspace": {
"save": "Save",
"placeholder": "Enter content for {file}…",
"readonlyNote": "This file is auto-generated and cannot be edited manually.",
"seedingNote": "Workspace files are seeded on first boot. Updating on an existing instance triggers a ConfigMap update and pod restart."
},
"packages": {
"categories": {
"channels": "Channels",
"skills": "Skills"
},
"enable": "Enable",
"disable": "Disable",
"enableAndSave": "Enable & Save",
"configure": "Configure",
"requiresApiKey": "Requires API key",
"missingFields": "Please fill in all required fields.",
"status": {
"pending": "Pending",
"active": "Active",
"error": "Error"
},
"telegram": {
"description": "Connect your AI assistant to a Telegram bot.",
"botTokenLabel": "Telegram Bot Token",
"botTokenPlaceholder": "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11",
"instructions": "1. Open @BotFather on Telegram\n2. Send /newbot and follow the prompts\n3. Copy the bot token provided",
"disclaimer": "I confirm I own this Telegram bot and authorize PieCed IT to connect it to my AI assistant."
},
"discord": {
"description": "Connect your AI assistant to a Discord server via a bot.",
"botTokenLabel": "Discord Bot Token",
"botTokenPlaceholder": "MTAxNjQ0OTk2NjAz...",
"instructions": "1. Go to discord.com/developers/applications\n2. Create a new application and add a bot\n3. Copy the bot token",
"disclaimer": "I confirm I own this Discord bot and authorize PieCed IT to connect it to my AI assistant."
},
"email": {
"description": "Enable your AI assistant to send and receive email.",
"smtpHostLabel": "SMTP Host",
"smtpHostPlaceholder": "smtp.example.com",
"smtpUserLabel": "SMTP Username",
"smtpUserPlaceholder": "user@example.com",
"smtpPasswordLabel": "SMTP Password",
"smtpPasswordPlaceholder": "••••••••",
"imapHostLabel": "IMAP Host",
"imapHostPlaceholder": "imap.example.com",
"instructions": "Provide SMTP and IMAP credentials. The assistant uses these to send and monitor messages.",
"disclaimer": "I confirm I am authorized to use these email credentials and that PieCed IT may access this mailbox."
},
"webSearch": {
"description": "Give your AI assistant the ability to search the web."
},
"documentProcessing": {
"description": "Enable document parsing, summarization, and extraction."
},
"statusEnabled": "enabled",
"statusDisabled": "disabled"
},
"admin": {
"title": "Platform Admin",
"subtitle": "Manage onboarding requests and tenant lifecycle",
"allTenants": "Tenants",
"noTenants": "No tenants provisioned yet.",
"noAccess": "Insufficient permissions for this view.",
"name": "Name",
"displayName": "Display Name",
"phase": "Phase",
"packages": "Packages",
"created": "Created",
"manage": "Manage",
"requests": "Requests",
"pendingRequests": "Pending Requests",
"approve": "Approve",
"reject": "Reject",
"reApprove": "Re-approve",
"company": "Company",
"contact": "Contact",
"agentName": "Agent",
"status": "Status",
"submitted": "Submitted",
"updated": "Updated",
"actions": "Actions",
"noRequests": "No requests found.",
"loadingRequests": "Loading requests…",
"approveConfirm": "Approve this request and start provisioning?",
"rejectConfirm": "Reject this request?",
"rejectTitle": "Reject request",
"adminNotesLabel": "Notes (optional)",
"adminNotesPlaceholder": "Reason for rejection…",
"cancelAction": "Cancel",
"confirmReject": "Reject",
"viewTenant": "View",
"filter_all": "All",
"filter_pending": "Pending",
"filter_provisioning": "Provisioning",
"filter_approved": "Approved",
"filter_rejected": "Rejected",
"totalTenants": "Total",
"running": "Running",
"provisioning": "Provisioning",
"errors": "Errors",
"suspend": "Suspend",
"resume": "Resume",
"suspended": "Suspended",
"suspendedBadge": "SUSPENDED",
"deleteTenant": "Delete",
"deleteTitle": "Delete tenant",
"deleteWarning": "This will permanently delete the tenant, its namespace, secrets, and all associated data. This action cannot be undone.",
"confirmDelete": "Delete permanently",
"loadingTenants": "Loading tenants…",
"filter_deleted": "Deleted",
"filter_active": "Active",
"health": "Health",
"serviceHealth": "Service Health",
"vllmDescription": "GPU inference engine",
"litellmDescription": "LLM proxy & spend tracking",
"tenantOverview": "Tenant Overview",
"spendOverview": "Spend Overview",
"globalSpend": "Global Spend (CHF)",
"activeTenants": "Active Tenants",
"tenantsWithSpend": "tenants with recorded spend",
"refresh": "Refresh",
"healthUnavailable": "Health data unavailable.",
"loadingHealth": "Loading health data…",
"statusHealthy": "Healthy",
"statusDown": "Down",
"spendChf": "Spend (CHF)",
"resumeRequestBadge": "Resume",
"resumeRequestTooltip": "Reactivation request for an existing tenant. Approving will un-suspend the tenant; no provisioning runs."
},
"channelUsers": {
"title": "Authorized Users",
"description": "Manage which users can interact with your assistant on each channel. Add their numeric user ID to authorize access.",
"users": "users",
"placeholder": "Enter numeric user ID…",
"add": "Add",
"remove": "Remove",
"alreadyAdded": "This user ID is already authorized.",
"telegramIdHelp": "To find your Telegram user ID:\n1. Open Telegram and message @userinfobot\n2. It instantly replies with your numeric ID\n3. Enter that number here",
"discordIdHelp": "To find your Discord user ID:\n1. Enable Developer Mode in Discord settings (Advanced)\n2. Right-click your name → Copy User ID\n3. Enter that number here",
"emailIdHelp": "Enter the email address that should be authorized to interact with the assistant."
},
"team": {
"title": "Team",
"description": "Manage members of your organization. Invite colleagues and assign them to instances.",
"inviteSectionTitle": "Invite a member",
"membersSectionTitle": "Members",
"noMembers": "No members yet.",
"you": "You",
"noRole": "no role",
"givenName": "First name",
"familyName": "Last name",
"email": "Email",
"role": "Role",
"roleUser": "User (read-only, must be assigned to instances)",
"roleOwner": "Owner (full access to all instances)",
"roleHint": "Owners can manage instances, billing, and team members. Users can only view instances they've been assigned to.",
"inviteButton": "Send invitation",
"inviteSent": "Invitation sent. The user will receive an email with a link to set their password.",
"inviteUserExists": "A user with this email is already registered.",
"changeRole": "Change role",
"roleUpdated": "Role updated.",
"roleUpdateFailed": "Could not update role.",
"cancel": "Cancel",
"save": "Save",
"selfChangeBlocked": "You cannot change your own role."
},
"assignments": {
"loading": "Loading assignments…",
"noneAssigned": "No users are assigned to this instance yet.",
"noCandidates": "No team members available to assign. Invite users from the Team page first.",
"pickUser": "Select a user…",
"assign": "Assign",
"revoke": "Remove"
},
"countries": {
"CH": "Switzerland",
"DE": "Germany",
"AT": "Austria",
"FR": "France",
"IT": "Italy",
"LI": "Liechtenstein"
},
"phase": {
"Pending": "Pending",
"Provisioning": "Provisioning",
"Running": "Running",
"Ready": "Ready",
"Suspended": "Suspended",
"Error": "Error",
"Deleting": "Deleting",
"Reconfiguring": "Reconfiguring"
},
"warnings": {
"oneTooltip": "1 warning",
"manyTooltip": "{count} warnings"
},
"settings": {
"title": "Settings",
"subtitle": "Manage org-level configuration that applies to all your tenants.",
"billingTitle": "Billing",
"billingDescription": "Address, VAT number, and invoice email used for all your tenants.",
"nothingForYou": "There's nothing here for your role yet. Owners can manage org settings.",
"billingDescriptionPersonal": "Address and invoice email used for all your tenants."
},
"settingsBilling": {
"title": "Billing",
"subtitle": "Captured once at first onboarding and reused for every tenant in your organization. Update here whenever your billing details change.",
"companyName": "Company name",
"streetAddress": "Street address",
"postalCode": "Postal code",
"city": "City",
"country": "Country",
"vatNumber": "VAT number",
"vatHelp": "Your registered VAT identifier (e.g. CHE-123.456.789 MWST for Switzerland).",
"billingEmail": "Billing email",
"billingEmailHelp": "Where invoices and billing communication will be sent.",
"notes": "Notes",
"notesPlaceholder": "Anything else accounting needs to know — VAT exemption, special invoicing arrangements, etc.",
"save": "Save",
"saved": "Saved.",
"saveFailed": "Could not save. Please try again.",
"lastUpdated": "Last updated {when}",
"fullName": "Full name",
"notesPlaceholderPersonal": "Anything we should know — preferred payment method, billing reference, etc."
},
"support": {
"title": "Support",
"subtitle": "Open a ticket to ask a question, report a bug, or share feedback. Replies will be sent to your registered email.",
"titleAdmin": "Support queue",
"subtitleAdmin": "Tickets across all customers, newest activity first.",
"newTicket": "New ticket",
"newTicketTitle": "Open a support ticket",
"newTicketSubtitle": "Tell us what's going on. The more detail you share, the faster we can help.",
"empty": "You haven't opened any tickets yet.",
"emptyAdmin": "No support tickets in the queue.",
"fieldCategory": "Category",
"fieldTitle": "Title",
"fieldDescription": "Description",
"fieldStatus": "Status",
"titlePlaceholder": "Short summary of what you need",
"descriptionPlaceholder": "Describe what happened, what you expected, and any error messages you saw.",
"descriptionHelp": "You can paste error messages and logs. Don't include passwords or other secrets.",
"submitTicket": "Submit ticket",
"createFailed": "Could not create ticket. Please try again.",
"category_bug": "Bug",
"category_feature_request": "Feature request",
"category_question": "Question",
"category_billing": "Billing",
"category_other": "Other",
"status_open": "Open",
"status_in_progress": "In progress",
"status_waiting_for_customer": "Awaiting your reply",
"status_resolved": "Resolved",
"status_reopened": "Reopened",
"openedBy": "Opened by {name} on {when}",
"authorTagAdmin": "PieCed support",
"replyLabel": "Add a reply",
"replyPlaceholder": "Your message…",
"replyPlaceholderReopen": "Reply (this will reopen the ticket)…",
"sendReply": "Send reply",
"commentFailed": "Could not send reply. Please try again.",
"closeTicket": "Mark as resolved",
"confirmClose": "Mark this ticket as resolved? You can reopen it later by replying.",
"closeFailed": "Could not close the ticket. Please try again.",
"resolvedBanner": "This ticket is resolved. Reply below if you need to follow up — that will reopen it.",
"adminControlsTitle": "Admin controls",
"updateFailed": "Could not save changes. Please try again."
}
}