274 lines
13 KiB
JSON
274 lines
13 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"
|
|
},
|
|
"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": "Register your company"
|
|
},
|
|
"register": {
|
|
"title": "Create your account",
|
|
"subtitle": "Register your company for a 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."
|
|
},
|
|
"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."
|
|
},
|
|
"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"
|
|
},
|
|
"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)"
|
|
},
|
|
"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."
|
|
}
|
|
}
|