PSA/server/public/locales/en/msp/admin.json
Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

576 lines
20 KiB
JSON

{
"common": {
"actions": {
"save": "Save Settings",
"saving": "Saving...",
"reset": "Reset",
"refresh": "Refresh",
"close": "Close",
"edit": "Edit",
"delete": "Delete",
"deleting": "Deleting…",
"verify": "Verify"
},
"states": {
"active": "Active",
"inactive": "Inactive",
"loading": "Loading..."
}
},
"telemetry": {
"loading": {
"title": "Organization Telemetry Settings",
"description": "Loading..."
},
"empty": {
"title": "Organization Telemetry Settings",
"description": "Error loading settings",
"body": "Failed to load telemetry settings"
},
"page": {
"title": "Organization Telemetry & Analytics",
"description": "Configure telemetry settings for your entire organization. Telemetry is enabled by default to improve the platform, but users can opt-out individually unless you disable this option."
},
"toggles": {
"enableTelemetry": {
"title": "Enable Telemetry",
"description": "Allow collection of anonymous usage data to improve the platform (enabled by default)"
},
"allowUserOptOut": {
"title": "Allow User Opt-Out",
"description": "Allow individual users to opt-out of telemetry collection"
}
},
"alerts": {
"enabled": "✓ Telemetry enabled. All categories are enabled by default for new users, but they can opt-out individually if desired.",
"centralizedControl": "Centralized control: Users cannot opt-out individually. Ensure compliance with local privacy regulations."
},
"anonymization": {
"title": "Data Anonymization Level",
"description": "Choose how much data to anonymize before collection",
"options": {
"none": {
"title": "No Anonymization",
"description": "Collect data as-is (not recommended)"
},
"partial": {
"title": "Partial Anonymization",
"description": "Remove PII, keep correlation IDs"
},
"full": {
"title": "Full Anonymization",
"description": "Maximum privacy, minimal correlation"
}
}
},
"compliance": {
"title": "Compliance Notes"
},
"privacy": {
"collectTitle": "What We Collect",
"collectItems": {
"errors": "• Error information (no sensitive data)",
"performance": "• Performance metrics (page load times, API response times)",
"usage": "• Feature usage patterns (which features are used)",
"system": "• System metrics (for infrastructure optimization)"
},
"excludeTitle": "What We DON'T Collect",
"excludeItems": {
"personalInfo": "• Personal information (names, emails, addresses)",
"clientData": "• Client data or business information",
"passwords": "• Passwords or authentication tokens",
"files": "• File contents or documents"
}
},
"footer": {
"lastUpdated": "Last updated: {{value}}",
"updatedBy": " by {{user}}"
},
"errors": {
"loadTenantTelemetrySettings": "Failed to load tenant telemetry settings",
"loadSettings": "Failed to load settings",
"saveTelemetrySettings": "Failed to save telemetry settings",
"saveSettings": "Failed to save settings"
}
},
"email": {
"loading": "Loading email settings...",
"error": "Error: {{error}}",
"tabs": {
"inbound": "Inbound Email",
"outbound": "Outbound Email"
},
"descriptions": {
"outbound": "Configure SMTP or API settings for sending emails from your application",
"inbound": "Configure email providers to receive and process emails as tickets"
},
"providerConfig": {
"title": "Email Provider Configuration",
"providerLabel": "Email Provider",
"options": {
"smtp": "SMTP (Traditional Email Server)",
"resend": "Resend (Modern API Service)"
},
"placeholder": "Select email provider",
"descriptions": {
"smtp": "Configure traditional SMTP email server settings",
"resend": "Configure Resend API for modern email delivery"
},
"status": {
"provider": "{{provider}} Provider"
}
},
"smtp": {
"host": {
"label": "SMTP Host",
"placeholder": "smtp.example.com"
},
"port": {
"label": "Port",
"placeholder": "587"
},
"username": {
"label": "Username",
"placeholder": "your-email@example.com"
},
"password": {
"label": "Password",
"placeholder": "Enter password"
},
"fromAddress": {
"label": "From Address",
"placeholder": "noreply@example.com"
}
},
"resend": {
"apiKey": {
"label": "Resend API Key",
"placeholder": "re_xxxxxxxxxxxxxxxxxx",
"helpPrefix": "Get your API key from"
},
"fromAddress": {
"label": "From Address",
"placeholder": "noreply@yourdomain.com",
"help": "Must be from a verified domain. Use the Domains tab to add custom domains."
}
},
"domains": {
"verified": "Verified",
"failed": "Failed",
"pending": "Pending",
"requiredDnsRecords": "Required DNS Records:"
},
"general": {
"title": "General Settings",
"trackingEnabled": "Enable Email Tracking",
"dailyLimit": "Daily Email Limit"
},
"errors": {
"loadEmailSettings": "Failed to load email settings",
"saveSettings": "Failed to save settings",
"addDomain": "Failed to add domain",
"verifyDomain": "Failed to verify domain"
}
},
"microsoft365": {
"title": {
"microsoft": "Microsoft 365 Diagnostics",
"default": "Diagnostics"
},
"description": "Runs a live Graph check (including create+delete subscription) to diagnose mailbox, folder, and permission issues.",
"note": {
"label": "Note:",
"body": "Diagnostics will create a temporary Microsoft Graph subscription and then delete it. If deletion fails, you may need to manually remove the subscription in Microsoft 365."
},
"labels": {
"provider": "Provider:",
"mailbox": "Mailbox:",
"overall": "Overall:",
"resource": "Resource: {{resource}}",
"recommendations": "Recommendations",
"error": "Error"
},
"actions": {
"copySupportBundle": "Copy Support Bundle",
"copied": "Copied"
},
"states": {
"running": "Running diagnostics...",
"diagnosticsFailed": "Diagnostics failed"
},
"statuses": {
"pass": "Pass",
"warn": "Warn",
"fail": "Fail",
"skip": "Skip"
}
},
"inboundDefaults": {
"loading": "Loading ticket defaults...",
"header": {
"title": "Inbound Ticket Defaults",
"description": "Configure default values for tickets created from email processing"
},
"actions": {
"addDefaults": "Add Defaults"
},
"form": {
"editTitle": "Edit Ticket Defaults",
"createTitle": "Create Ticket Defaults",
"description": "Configure the default values that will be applied to tickets created from email processing"
},
"empty": {
"title": "No ticket defaults configured",
"description": "Create your first configuration to define default values for email-generated tickets"
},
"badges": {
"active": "Active",
"inactive": "Inactive"
},
"fields": {
"board": "Board:",
"status": "Status:",
"priority": "Priority:",
"enteredBy": "Entered By:"
},
"fallbacks": {
"notSet": "Not set",
"system": "System"
},
"menu": {
"edit": "Edit",
"delete": "Delete",
"deleting": "Deleting…"
},
"help": {
"title": "How It Works",
"items": {
"providerReference": "• Each email provider can reference one ticket defaults configuration",
"requiredValues": "• When an email creates a ticket, these defaults provide required field values",
"systemCreator": "• System-generated tickets will show \"System\" as the creator when entered_by is null",
"scenarios": "• You can create different defaults for different email scenarios (support, billing, etc.)"
}
},
"errors": {
"load": "Failed to load ticket defaults",
"delete": "Failed to delete ticket defaults"
}
},
"policyManagement": {
"resourceSections": {
"tickets": "Tickets",
"documents": "Documents",
"time": "Time",
"projects": "Projects",
"assets": "Assets",
"billing": "Billing"
},
"targetTypes": {
"role": "Role",
"team": "Team",
"user": "User",
"apiKey": "API Key"
},
"templateSummaries": {
"own": "records owned by the principal",
"assigned": "records assigned to the principal",
"managed": "records owned by managed users",
"ownOrAssigned": "records owned by or assigned to the principal",
"ownOrManaged": "records owned by the principal or managed users",
"sameClient": "records in the same client scope",
"clientPortfolio": "records for the principal client portfolio",
"selectedClients": "records in selected client scopes",
"sameTeam": "records owned by the same team",
"selectedBoards": "records in selected boards"
},
"constraintSummaries": {
"notSelfApprover": "blocks self-approval",
"clientVisibleOnly": "requires client-visible records",
"hideSensitiveFields": "redacts sensitive fields"
},
"dates": {
"unknown": "Unknown"
},
"ruleSummary": {
"base": "Narrow {{resourceType}} {{action}} to {{scope}}.",
"withConstraint": "Narrow {{resourceType}} {{action}} to {{scope}}; {{constraint}}."
},
"upsell": {
"title": "Authorization bundles",
"description": "Advanced Authorization Bundle management is available on the Premium tier. Upgrade to manage reusable narrowing bundles."
},
"hero": {
"badge": "Premium workspace",
"title": "Authorization bundles",
"subtitle": "Manage premium access narrowing with draft revisions, scoped assignments, and safe simulation from one control center.",
"newBundle": "New bundle",
"addStarters": "Add starter bundles",
"addingStarters": "Adding starter bundles..."
},
"metrics": {
"activeBundles": {
"title": "Active bundles",
"subtitle": "Reusable narrowing bundles currently available to assign"
},
"activeAssignments": {
"title": "Active assignments",
"subtitle": "Live role, team, user, and API key rollouts"
},
"starterBundles": {
"title": "Starter bundles",
"subtitle": "Bundled relationship-first presets ready to adapt"
},
"archivedBundles": {
"title": "Archived bundles",
"subtitle": "Retired bundles preserved for audit and reuse"
}
},
"library": {
"eyebrow": "Library",
"title": "Authorization bundle library",
"description": "Browse bundle status, manage lifecycle changes, and open a focused workspace for one bundle at a time.",
"searchPlaceholder": "Search bundles by name or description",
"showArchived": "Show archived",
"columns": {
"bundle": "Bundle",
"status": "Status",
"type": "Type",
"assignments": "Assignments",
"updated": "Updated",
"actions": "Actions"
},
"statusLabels": {
"active": "active",
"archived": "archived"
},
"typeLabels": {
"system": "System",
"custom": "Custom"
},
"badges": {
"starter": "Starter"
},
"descriptions": {
"systemStarter": "System starter bundle.",
"customBundle": "Custom narrowing bundle for role, team, user, or API key assignments."
},
"effectiveSummary": "Effective summary: {{status}} bundle with {{count}} active assignment(s).",
"empty": "No authorization bundles found.",
"loading": "Loading authorization bundles...",
"actions": {
"openEditor": "Open editor",
"assignments": "Assignments",
"simulator": "Simulator",
"clone": "Clone",
"archive": "Archive",
"openMenu": "Open menu"
}
},
"workspace": {
"backToLibrary": "Back to library",
"updatedWithAssignments": "Updated {{date}} · {{count}} active assignment(s)",
"eyebrow": "Bundle workspace",
"fallbackBundleName": "Selected bundle",
"fallbackDescription": "Use the draft editor, assignment manager, and simulator to ship safe narrowing changes.",
"tabs": {
"editor": "Draft editor",
"assignments": "Assignments",
"simulator": "Simulator"
}
},
"editor": {
"header": "Bundle editor",
"editingDraftPrefix": "Editing draft revision for ",
"editingDraftSuffix": ". Changes stay in draft until published.",
"viewingPublishedPrefix": "Viewing the published revision for ",
"viewingPublishedSuffix": ". No active draft revision exists right now.",
"publishDraft": "Publish Draft",
"publishing": "Publishing...",
"publishedBadge": "Published",
"loading": "Loading draft editor...",
"revisionSummary": "Revision summary: {{summary}}",
"ruleCount": "{{count}} {{revisionType}} rule(s)",
"revisionType": {
"draft": "draft",
"published": "published"
},
"emptyRules": "No {{revisionType}} rules yet for {{resource}}.",
"ruleForm": {
"addDraftTitle": "Add Draft Rule",
"editDraftTitle": "Edit Draft Rule",
"createDraftTitle": "Create Draft Rule",
"editPublishedTitle": "Edit Published Rule as Draft",
"helperEditPublished": "Saving will create a new draft revision with your changes to this published rule.",
"helperCreateDraft": "Saving will create a new draft revision for this bundle.",
"reset": "Reset",
"action": "Action",
"template": "Template",
"constraint": "Constraint (optional)",
"constraintNone": "none",
"saveDraftRule": "Save Draft Rule",
"addDraftRule": "Add Draft Rule",
"saveAsDraftChange": "Save as Draft Change",
"createDraftRule": "Create Draft Rule"
},
"rule": {
"edit": "Edit",
"remove": "Remove",
"removeAsDraft": "Remove as Draft Change",
"removeDraftTooltip": "Remove this draft rule.",
"removePublishedTooltip": "Create a new draft revision that removes this published rule.",
"selectedClientScopes": "Selected client scopes",
"selectedBoardScopes": "Selected board scopes",
"redactedFields": "Redacted fields"
},
"scopes": {
"clientTitle": "Selected client scopes",
"boardTitle": "Selected board scopes",
"selectClient": "Select client",
"selectBoard": "Select board",
"addClientScope": "Add client scope",
"addBoardScope": "Add board scope",
"noClientScopes": "No client scopes added yet.",
"noBoardScopes": "No board scopes added yet.",
"remove": "Remove"
},
"redaction": {
"label": "Redacted fields",
"placeholder": "internal_cost, margin",
"helper": "Comma-separated field names to redact when this rule allows access."
}
},
"assignments": {
"header": "Assignment manager",
"description": "View and manage role, team, user, and API-key targets currently affected by this bundle.",
"loading": "Loading assignments...",
"addAssignment": "Add assignment",
"selectTargetPlaceholder": "Select {{target}}",
"addButton": "Add Assignment",
"adding": "Adding...",
"empty": "No assignments for this bundle yet.",
"groupEmpty": "No {{target}} assignments.",
"statusActions": {
"disable": "Disable",
"enable": "Enable",
"saving": "Saving..."
},
"statusLabels": {
"active": "active",
"disabled": "disabled"
}
},
"simulator": {
"header": "Access simulator",
"description": "Simulate draft vs published bundle behavior against a real principal and existing record.",
"inputTitle": "Simulation input",
"resource": "Resource",
"action": "Action",
"principal": "User",
"record": "Record",
"useSynthetic": "Use synthetic record scenario",
"syntheticOwnerPlaceholder": "Owner user ID (optional)",
"syntheticClientPlaceholder": "Client ID (optional)",
"syntheticBoardPlaceholder": "Board ID (optional)",
"clientVisible": "Client visible",
"run": "Run simulation",
"running": "Running simulation...",
"resultTitle": "Simulation result",
"draftRevision": "Draft revision",
"publishedRevision": "Published revision",
"allowed": "Allowed",
"denied": "Denied",
"empty": "Run a simulation to compare draft and published behavior."
},
"createDialog": {
"title": "Create Authorization Bundle",
"cancel": "Cancel",
"create": "Create Bundle",
"creating": "Creating...",
"nameLabel": "Name",
"namePlaceholder": "Finance Reviewer West",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Reusable narrowing bundle for a specific team, client group, or workflow."
},
"clone": {
"copySuffix": "{{name}} Copy"
},
"errors": {
"loadBundles": "Failed to load bundles.",
"loadEditor": "Failed to load bundle editor.",
"loadAssignments": "Failed to load bundle assignments.",
"cloneBundle": "Failed to clone bundle.",
"archiveBundle": "Failed to archive bundle.",
"seedStarters": "Failed to seed starter bundles.",
"bundleNameRequired": "Bundle name is required.",
"createBundle": "Failed to create bundle.",
"publishDraft": "Failed to publish bundle draft.",
"selectTemplate": "Select a template before saving a rule.",
"selectClientRequired": "Add at least one selected client before saving this rule.",
"selectBoardRequired": "Add at least one selected board before saving this rule.",
"redactedFieldRequired": "Enter at least one redacted field before saving this rule.",
"saveRule": "Failed to save draft rule.",
"removeRule": "Failed to remove rule.",
"selectTarget": "Select a target before adding an assignment.",
"addAssignment": "Failed to add assignment.",
"updateAssignmentStatus": "Failed to update assignment status.",
"selectPrincipal": "Select a principal before running simulation.",
"selectRecord": "Select a record before running simulation.",
"runSimulation": "Failed to run simulation.",
"simulator": {
"unsupportedAction": "The simulator currently supports only Read and Approve checks. Choose one of those actions and try again.",
"unsupportedResource": "This record type is not available in the simulator yet. Choose a supported record type and try again.",
"clientTicketNotSupported": "Ticket checks for client users are not available in the simulator yet because ticket board visibility is not included. Try an internal user, or verify client ticket access in the app."
}
}
},
"emailLogs": {
"page": {
"title": "Email Logs",
"description": "Review outbound email activity and troubleshoot notification delivery."
},
"metrics": {
"totalSent": "Total sent",
"failedRate": "Failed rate",
"today": "Today"
},
"filters": {
"startDate": "Start date",
"endDate": "End date",
"status": "Status",
"recipient": "Recipient",
"recipientPlaceholder": "Search email…",
"ticket": "Ticket",
"ticketPlaceholder": "Ticket #…",
"statusOptions": {
"all": "All",
"sent": "Sent",
"failed": "Failed"
}
},
"table": {
"time": "Time",
"ticket": "Ticket",
"recipient": "Recipient",
"subject": "Subject",
"status": "Status"
},
"loading": "Loading…",
"results_one": "{{count}} result",
"results_other": "{{count}} results",
"refresh": "Refresh",
"close": "Close",
"detail": {
"title": "Email Log Details",
"noSubject": "No subject",
"sentAt": "Sent at",
"status": "Status",
"provider": "Provider",
"messageId": "Message ID",
"to": "To",
"from": "From",
"error": "Error",
"metadata": "Metadata"
}
}
}