Some checks failed
Main Confidence / confidence (push) Failing after 56s
## Summary - add the localization v1 foundation with request-time locale resolution and workspace or user preference handling - localize the first-wave platform surfaces for auth, shell, dashboards, findings, baseline compare, and review workspace chrome - add Pest coverage for locale resolution, preference flows, fallback behavior, notifications, and governance surface localization ## Scope - active spec: specs/252-platform-localization-v1 - target branch: dev ## Notes - machine-readable artifacts remain invariant and are not localized in this slice - the branch includes the related spec kit artifacts for the feature Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #293
231 lines
12 KiB
PHP
231 lines
12 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
return [
|
|
'locales' => [
|
|
'en' => 'English',
|
|
'de' => 'German',
|
|
],
|
|
'source' => [
|
|
'explicit_override' => 'session override',
|
|
'user_preference' => 'personal preference',
|
|
'workspace_default' => 'workspace default',
|
|
'workspace_override' => 'workspace override',
|
|
'system_default' => 'system default',
|
|
],
|
|
'shell' => [
|
|
'language' => 'Language',
|
|
'current_language' => 'Current language',
|
|
'language_source' => 'Source: :source',
|
|
'temporary_override' => 'Temporary override',
|
|
'switch_language' => 'Switch language',
|
|
'clear_override' => 'Use inherited language',
|
|
'personal_preference' => 'Personal preference',
|
|
'save_preference' => 'Save preference',
|
|
'inherit_workspace' => 'Use workspace default',
|
|
'workspace' => 'Workspace',
|
|
'choose_workspace' => 'Choose workspace',
|
|
'switch_workspace' => 'Switch workspace',
|
|
'workspace_home' => 'Workspace Home',
|
|
'tenant_scope' => 'Tenant scope',
|
|
'select_tenant' => 'Select tenant',
|
|
'selected_tenant' => 'Selected tenant',
|
|
'no_tenant_selected' => 'No tenant selected',
|
|
'switch_tenant' => 'Switch tenant',
|
|
'clear_tenant_scope' => 'Clear tenant scope',
|
|
'context_unavailable' => 'Context unavailable',
|
|
'context_unavailable_workspace' => 'The requested scope could not be restored. The shell is showing a valid workspace state instead.',
|
|
'context_unavailable_no_workspace' => 'Choose a workspace to continue with a valid admin context.',
|
|
'no_active_tenants' => 'No active tenants are available for the standard operating context in this workspace.',
|
|
'view_managed_tenants' => 'View managed tenants',
|
|
'workspace_wide_available' => 'No tenant selected. Workspace-wide pages remain available, and choosing a tenant only sets the normal active operating context.',
|
|
'search_tenants' => 'Search tenants...',
|
|
'choose_workspace_first' => 'Choose a workspace first.',
|
|
],
|
|
'workspace' => [
|
|
'title' => 'Workspace settings',
|
|
'save' => 'Save',
|
|
'reset' => 'Reset',
|
|
'no_manage_permission' => 'You do not have permission to manage workspace settings.',
|
|
'no_workspace_override' => 'No workspace override to reset.',
|
|
'last_modified_by' => ':description - Last modified by :user, :time.',
|
|
'section' => 'Localization settings',
|
|
'section_description' => 'Workspace default used by users without a personal language preference.',
|
|
'default_locale_label' => 'Default language',
|
|
'default_locale_placeholder' => 'Unset (uses system default)',
|
|
'default_locale_helper_unset' => 'Unset. Effective language: :locale (:source).',
|
|
'default_locale_helper_set' => 'Effective language: :locale.',
|
|
],
|
|
'auth' => [
|
|
'microsoft_not_configured' => 'Microsoft sign-in is not configured.',
|
|
'sign_in_microsoft' => 'Sign in with Microsoft',
|
|
'tenant_admin_membership_required' => 'Tenant Admin access requires a tenant membership.',
|
|
],
|
|
'navigation' => [
|
|
'findings' => 'Findings',
|
|
'settings' => 'Settings',
|
|
'integrations' => 'Integrations',
|
|
'manage_workspaces' => 'Manage workspaces',
|
|
'operations' => 'Operations',
|
|
'audit_log' => 'Audit Log',
|
|
'alerts' => 'Alerts',
|
|
'governance' => 'Governance',
|
|
'monitoring' => 'Monitoring',
|
|
'dashboard' => 'Dashboard',
|
|
],
|
|
'dashboard' => [
|
|
'tenant_title' => 'Tenant dashboard',
|
|
'system_title' => 'System dashboard',
|
|
'request_support' => 'Request support',
|
|
'support_request_heading' => 'Request support',
|
|
'support_request_description' => 'Share a concise summary and TenantAtlas will attach redacted context from existing records.',
|
|
'submit_request' => 'Submit request',
|
|
'included_context' => 'Included context',
|
|
'severity' => 'Severity',
|
|
'summary' => 'Summary',
|
|
'reproduction_notes' => 'Reproduction notes',
|
|
'contact_name' => 'Contact name',
|
|
'contact_email' => 'Contact email',
|
|
'support_request_submitted' => 'Support request submitted',
|
|
'open_support_diagnostics' => 'Open support diagnostics',
|
|
'support_diagnostics' => 'Support diagnostics',
|
|
'support_diagnostics_description' => 'Redacted tenant context from existing records.',
|
|
'close' => 'Close',
|
|
'time_window' => 'Time window',
|
|
'window' => 'Window',
|
|
'enter_break_glass' => 'Enter break-glass mode',
|
|
'exit_break_glass' => 'Exit break-glass',
|
|
'recovery_mode_enabled' => 'Recovery mode enabled',
|
|
'recovery_mode_ended' => 'Recovery mode ended',
|
|
],
|
|
'review' => [
|
|
'reporting' => 'Reporting',
|
|
'customer_reviews' => 'Customer reviews',
|
|
'customer_review_workspace' => 'Customer Review Workspace',
|
|
'customer_safe_review_workspace' => 'Customer-safe review workspace',
|
|
'customer_workspace_intro' => 'Review the latest published customer-safe posture for each entitled tenant without leaving the current workspace context.',
|
|
'customer_workspace_canonical_note' => 'Opening a row returns to the existing tenant review detail so evidence, review packs, and audit-aware proof remain on their canonical tenant-scoped surfaces.',
|
|
'reviews' => 'Reviews',
|
|
'clear_filters' => 'Clear filters',
|
|
'tenant' => 'Tenant',
|
|
'latest_review' => 'Latest review',
|
|
'key_findings' => 'Key findings',
|
|
'accepted_risks' => 'Accepted risks',
|
|
'published' => 'Published',
|
|
'review_pack' => 'Review pack',
|
|
'open_latest_review' => 'Open latest review',
|
|
'download_review_pack' => 'Download review pack',
|
|
'no_entitled_tenants' => 'No entitled tenants match this view',
|
|
'clear_filters_description' => 'Clear the current filters to return to the full customer review workspace for your entitled tenants.',
|
|
'adjust_filters_description' => 'Adjust filters to return to the full customer review workspace for your entitled tenants.',
|
|
'no_published_review' => 'No published review',
|
|
'no_published_review_available' => 'No published review available yet',
|
|
'no_findings_recorded' => 'No findings recorded in the published review.',
|
|
'findings_count_summary' => ':count findings summarized in the published review.',
|
|
'findings_count_with_outcomes' => ':count findings. Terminal outcomes: :outcomes.',
|
|
'no_accepted_risks_recorded' => 'No accepted risks recorded.',
|
|
'accepted_risks_need_follow_up' => ':warnings accepted risks need governance follow-up (:total total).',
|
|
'accepted_risks_governed' => ':count accepted risks are governed.',
|
|
'accepted_risks_on_record' => ':count accepted risks are on record.',
|
|
'unavailable' => 'Unavailable',
|
|
'available' => 'Available',
|
|
'outcome_summary' => 'Outcome summary',
|
|
'review' => 'Review',
|
|
'review_date' => 'Review date',
|
|
'completeness' => 'Completeness',
|
|
'evidence_snapshot' => 'Evidence snapshot',
|
|
'current_export' => 'Current export',
|
|
'executive_posture' => 'Executive posture',
|
|
'sections' => 'Sections',
|
|
'details' => 'Details',
|
|
'export_executive_pack' => 'Export executive pack',
|
|
'outcome' => 'Outcome',
|
|
'export' => 'Export',
|
|
'next_step' => 'Next step',
|
|
'no_tenant_reviews_yet' => 'No tenant reviews yet',
|
|
'create_first_review_description' => 'Create the first review from an anchored evidence snapshot to start the recurring review history for this tenant.',
|
|
'create_first_review' => 'Create first review',
|
|
'create_review' => 'Create review',
|
|
'evidence_basis' => 'Evidence basis',
|
|
'evidence_basis_helper' => 'Choose the anchored evidence snapshot for this review.',
|
|
'unable_create_missing_context' => 'Unable to create review - missing context.',
|
|
'select_valid_evidence_snapshot' => 'Select a valid evidence snapshot.',
|
|
'unable_create_review' => 'Unable to create review',
|
|
'review_already_available' => 'Review already available',
|
|
'review_already_available_body' => 'A matching mutable review already exists for this evidence basis.',
|
|
'view_review' => 'View review',
|
|
'open_operation' => 'Open operation',
|
|
'review_composing_background' => 'The review is being composed in the background.',
|
|
'unable_export_missing_context' => 'Unable to export review - missing context.',
|
|
'export_already_queued_body' => 'An executive pack export is already queued or running for this review.',
|
|
'executive_pack_export_unavailable' => 'Executive pack export unavailable',
|
|
'unable_export_executive_pack' => 'Unable to export executive pack',
|
|
'executive_pack_already_available' => 'Executive pack already available',
|
|
'executive_pack_already_available_body' => 'A matching executive pack already exists for this review.',
|
|
'view_pack' => 'View pack',
|
|
'executive_pack_generating_background' => 'The executive pack is being generated in the background.',
|
|
'review_explanation' => 'Review explanation',
|
|
'reason_owner' => 'Reason owner',
|
|
'platform_core' => 'Platform core',
|
|
'platform_reason_family' => 'Platform reason family',
|
|
'compatibility' => 'Compatibility',
|
|
'highlights' => 'Highlights',
|
|
'next_actions' => 'Next actions',
|
|
'related_context' => 'Related context',
|
|
'publication_readiness' => 'Publication readiness',
|
|
'ready_for_publication' => 'This review is ready for publication and executive-pack export.',
|
|
'internal_only' => 'This review is currently safe for internal use only.',
|
|
'needs_follow_up' => 'This review still needs follow-up before publication.',
|
|
'key_entries' => 'Key entries',
|
|
'entry' => 'Entry',
|
|
'follow_up' => 'Follow-up',
|
|
'diagnostics' => 'Diagnostics',
|
|
'result_meaning' => 'Result meaning',
|
|
'result_trust' => 'Result trust',
|
|
'artifact_truth' => 'Artifact truth',
|
|
'no_action_needed' => 'No action needed',
|
|
'count' => 'Count',
|
|
'guidance' => 'Guidance',
|
|
'findings' => 'Findings',
|
|
'reports' => 'Reports',
|
|
'operations' => 'Operations',
|
|
'pending_verification' => 'Pending verification',
|
|
'verified_cleared' => 'Verified cleared',
|
|
'terminal_outcomes' => 'Terminal outcomes',
|
|
'pending' => 'Pending',
|
|
'operation' => 'Operation',
|
|
'operation_description' => 'Inspect the latest review composition or refresh run.',
|
|
'executive_pack' => 'Executive pack',
|
|
'view_executive_pack' => 'View executive pack',
|
|
'executive_pack_description' => 'Open the current export that belongs to this review.',
|
|
'customer_workspace' => 'Customer workspace',
|
|
'open_customer_workspace' => 'Open customer workspace',
|
|
'customer_workspace_description' => 'Open the customer-safe review workspace prefiltered to this tenant.',
|
|
'view_evidence_snapshot' => 'View evidence snapshot',
|
|
'evidence_snapshot_description' => 'Return to the evidence basis behind this review.',
|
|
],
|
|
'findings' => [
|
|
'all' => 'All',
|
|
'needs_action' => 'Needs action',
|
|
'overdue' => 'Overdue',
|
|
'risk_accepted' => 'Risk accepted',
|
|
'resolved' => 'Resolved',
|
|
'actions' => 'Actions',
|
|
'open_approval_queue' => 'Open approval queue',
|
|
],
|
|
'notifications' => [
|
|
'locale_override_saved' => 'Language override applied.',
|
|
'locale_override_cleared' => 'Language override cleared.',
|
|
'user_preference_saved' => 'Language preference saved.',
|
|
'user_preference_cleared' => 'Language preference cleared.',
|
|
'workspace_settings_saved' => 'Workspace settings saved',
|
|
'workspace_settings_unchanged' => 'No settings changes to save',
|
|
'workspace_setting_reset' => 'Workspace setting reset to default',
|
|
'setting_already_default' => 'Setting already uses default',
|
|
],
|
|
'validation' => [
|
|
'unsupported_locale' => 'Choose a supported language.',
|
|
],
|
|
];
|