TenantAtlas/apps/platform/lang/en/localization.php
ahmido b7907bd69d feat: add report profile and disclosure policy to rendered review reports (#428)
Implementing report profiles and disclosure policy as per spec 357.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #428
2026-06-06 09:41:19 +00:00

1298 lines
104 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',
'workspace_scope' => 'Workspace scope',
'workspace_scope_short' => 'Workspace',
'environment_scope_short' => 'Environment',
'workspace_context_label' => 'Workspace: :workspace',
'workspace_scope_no_environment' => 'No environment selected',
'workspace_wide_scope' => 'Workspace-wide',
'scope_indicator_action' => 'Open :scope',
'choose_workspace' => 'Choose workspace',
'switch_workspace' => 'Switch workspace',
'workspace_home' => 'Workspace Home',
'choose_environment' => 'Choose environment',
'environment_count' => ':count environment|:count environments',
'choose_environment_description' => 'Select the environment for your normal active operating context.',
'workspace_wide_available_without_environment' => 'No environment selected is still a valid workspace state on workspace-wide pages such as operations and managed environments.',
'add_environment' => 'Add environment',
'all_environments' => 'All environments',
'show_all_environments' => 'Show all environments',
'managed_environments_title' => 'Managed environments',
'no_managed_environments_yet' => 'No managed environments yet',
'managed_environments_empty_state_description' => 'Add your first managed environment to start managing inventory, backups, drift detection, and policies.',
'environment_scope' => 'Environment scope',
'select_environment' => 'Select environment',
'selected_environment' => 'Selected environment',
'no_environment_selected' => 'No environment selected',
'switch_environment' => 'Switch environment',
'clear_environment_scope' => 'Clear environment scope',
'back_to_environment_registry' => 'Back to environment registry',
'tenant_scope' => 'Environment scope',
'select_tenant' => 'Select environment',
'selected_tenant' => 'Selected environment',
'no_tenant_selected' => 'No environment selected',
'switch_tenant' => 'Switch environment',
'clear_tenant_scope' => 'Clear environment 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_environments' => 'No active environments available',
'no_active_environments_description' => 'There are no selectable active environments for the normal operating context in this workspace. Workspace-level pages still work with no environment selected, and you can inspect onboarding or archived records through managed environments.',
'view_managed_environments' => 'View managed environments',
'no_active_tenants' => 'No active environments are available for the standard operating context in this workspace.',
'view_managed_tenants' => 'View managed environments',
'workspace_wide_available' => 'No environment selected. Workspace-wide pages remain available, and choosing an environment only sets the normal active operating context.',
'search_environments' => 'Search environments...',
'environment_search_results_count' => ':visible of :total environments shown',
'no_environment_search_results' => 'No environments match this search',
'no_environment_search_results_description' => 'Clear the search to return to the full workspace list.',
'clear_search' => 'Clear search',
'search_tenants' => 'Search environments...',
'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' => 'Admin access requires an environment membership.',
],
'navigation' => [
'findings' => 'Findings',
'settings' => 'Settings',
'integrations' => 'Integrations',
'manage_workspaces' => 'Manage workspaces',
'operations' => 'Operations',
'evidence_overview' => 'Evidence',
'audit_log' => 'Audit Log',
'alerts' => 'Alerts',
'governance' => 'Governance',
'monitoring' => 'Monitoring',
'workspace_wide' => 'Workspace-wide',
'workspace_admin' => 'Workspace admin',
'dashboard' => 'Dashboard',
],
'dashboard' => [
'tenant_title' => 'Environment dashboard',
'environment_title' => 'Environment dashboard',
'system_title' => 'System dashboard',
'more_actions' => 'More',
'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.',
'support_request_run_description' => 'Share a concise summary and TenantAtlas will attach redacted context from the current run.',
'submit_request' => 'Submit support request',
'primary_context' => 'Primary context',
'included_context' => 'Included context',
'latest_external_handoff' => 'Latest external handoff',
'latest_external_handoff_none' => 'No support request has been submitted for this context yet.',
'latest_external_handoff_internal_only' => 'Latest support reference :reference is TenantPilot only. No external ticket is linked yet.',
'latest_external_handoff_linked' => 'Latest support reference :reference is linked to external ticket :external.',
'latest_external_handoff_failed' => 'Latest support reference :reference has no external ticket because handoff failed: :failure',
'external_handoff_mode' => 'External handoff',
'handoff_mode_internal_only' => 'TenantPilot only',
'handoff_mode_create_external_ticket' => 'Create external ticket',
'handoff_mode_link_existing_ticket' => 'Link existing ticket',
'external_handoff_mode_helper_available' => 'Choose whether this request stays internal, creates an external ticket, or links an existing one.',
'external_handoff_mode_helper_unavailable' => 'No external support desk target is configured. This request will stay internal.',
'handoff_mutation_scope' => 'Mutation scope',
'mutation_scope_internal_only' => 'TenantPilot only. No external support desk ticket will be created or linked.',
'mutation_scope_external_create' => 'TenantPilot + external support desk. TenantPilot creates the internal support request first, then creates one external ticket.',
'mutation_scope_external_link' => 'TenantPilot + external support desk. TenantPilot stores the external ticket reference you provide and does not create a duplicate ticket.',
'external_ticket_reference' => 'External ticket reference',
'external_ticket_reference_helper' => 'Use the existing desk ticket key, for example PSA-12345.',
'external_ticket_url' => 'External ticket URL',
'external_ticket_url_helper' => 'Optional HTTP or HTTPS link to the existing external ticket.',
'severity' => 'Severity',
'summary' => 'Summary',
'reproduction_notes' => 'Reproduction notes',
'contact_name' => 'Contact name',
'contact_email' => 'Contact email',
'support_request_submitted' => 'Support request submitted',
'support_request_submitted_internal_only' => 'Support reference :reference was created. No external ticket is linked yet.',
'support_request_submitted_created' => 'Support reference :reference was created and external ticket :external was created.',
'support_request_submitted_linked' => 'Support reference :reference was created and linked to external ticket :external.',
'support_request_submitted_failed' => 'Support reference :reference was created, but external handoff failed: :failure',
'open_external_ticket' => 'Open external ticket',
'open_support_diagnostics' => 'Open support diagnostics',
'support_diagnostics' => 'Support diagnostics',
'support_diagnostics_description' => 'Redacted environment 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',
'overview' => [
'page_subheading' => 'Environment governance overview',
'context_workspace' => 'Current workspace',
'context_no_tenant' => 'No environment selected',
'context_no_environment' => 'No environment selected',
'context_workspace_chip' => 'Workspace: :workspace',
'context_provider_chip' => ':provider environment',
'context_latest_activity_chip' => 'Latest activity: :time',
'status_unavailable' => 'Unavailable',
'status_blocked' => 'Blocked',
'status_action_needed' => 'Action needed',
'status_calm' => 'Calm',
'status_not_ready' => 'Not ready',
'status_evidence_available' => 'Evidence available',
'status_needs_action' => 'Needs attention',
'tenant_context_unavailable_headline' => 'Environment context is not available.',
'tenant_context_unavailable_summary' => 'Select an environment to view the decision-first dashboard overview.',
'environment_context_unavailable_headline' => 'Environment context is not available.',
'environment_context_unavailable_summary' => 'Select an environment to view the decision-first dashboard overview.',
'posture_blocked_headline' => 'Provider permissions are blocking environment workflows.',
'posture_blocked_summary' => 'Required application permissions are missing, so provider-backed operations cannot be treated as healthy readiness.',
'posture_calm_headline' => 'No immediate environment blocker is visible.',
'posture_calm_summary' => 'Current findings, permissions, recovery posture, and recent operations do not show an urgent follow-up path.',
'posture_action_needed_fallback_summary' => 'The environment still needs operator follow-up before the landing page can stay calm.',
'section_recommended_actions' => 'Recommended next actions',
'section_additional_follow_ups' => 'Additional follow-ups',
'section_additional_follow_ups_summary' => 'These follow-ups stay secondary to the dominant guidance above.',
'section_governance_status' => 'Governance status',
'section_readiness' => 'Review & evidence readiness',
'section_recent_operations' => 'Recent operations',
'header_primary_focus' => 'Primary focus',
'priority_label' => 'Priority :priority',
'label_reason' => 'Reason',
'label_impact' => 'Impact',
'label_why_this_matters' => 'Why this matters',
'label_recommended_next_action' => 'Recommended next action',
'empty_recommended_actions_headline' => 'No immediate action is waiting.',
'empty_recommended_actions_summary' => 'The environment currently looks calm. Use the status and readiness sections below to confirm what is healthy and what is simply unavailable.',
'empty_recent_operations_headline' => 'No recent operations yet.',
'empty_recent_operations_summary' => 'Once environment operations run, the most recent execution context will appear here without taking over the first decision layer.',
'kpi_high_severity_label' => 'High severity findings',
'kpi_high_severity_description' => 'High or critical findings still needing review.',
'kpi_high_severity_tendency' => ':count active now',
'kpi_high_severity_tendency_window' => ':count active · :window new in 7d',
'kpi_high_severity_tendency_none' => 'No active pressure',
'kpi_overdue_label' => 'Overdue findings',
'kpi_overdue_description' => 'Open workflow items that are already overdue.',
'kpi_overdue_tendency' => ':count overdue now',
'kpi_overdue_tendency_none' => 'None overdue',
'kpi_missing_permissions_label' => 'Missing permissions',
'kpi_missing_permissions_description' => 'Provider-required permissions currently missing for this environment.',
'kpi_missing_permissions_tendency_split' => ':app app · :delegated delegated missing',
'kpi_missing_permissions_tendency_app_only' => ':count app missing',
'kpi_missing_permissions_tendency_delegated_only' => ':count delegated missing',
'kpi_missing_permissions_tendency_none' => 'Permission set complete',
'kpi_active_operations_label' => 'Operations needing attention',
'kpi_active_operations_description' => 'Operation runs that still need follow-up before the environment can be treated as healthy.',
'kpi_active_operations_tendency' => ':count operations require attention',
'kpi_active_operations_tendency_window' => ':count operations require attention',
'kpi_active_operations_tendency_one' => '1 operation needs follow-up',
'kpi_active_operations_tendency_none' => 'No operations need attention',
'action_review_findings' => 'Review findings',
'action_open_overdue_findings' => 'Open overdue findings',
'action_review_permissions' => 'Review permissions',
'action_open_required_permissions' => 'Open required permissions',
'action_review_risks' => 'Review risks',
'action_review_recovery_posture' => 'Review recovery posture',
'action_view_all_operations' => 'View all operations',
'action_view_operation' => 'View operation',
'action_review_operation' => 'Review operation',
'action_review_operations' => 'Review operations',
'action_review_operations_requiring_attention' => 'Review operations requiring attention',
'action_open_operations_hub' => 'Open operations hub',
'action_show_all_operations' => 'Show all operations',
'action_open_governance_inbox' => 'Open governance inbox',
'action_continue_review' => 'Continue review',
'action_open_baseline_compare' => 'Open Baseline Compare',
'action_open_evidence' => 'Open evidence',
'action_open_backup_posture' => 'Open backup posture',
'action_view_export_artifacts' => 'View export artifacts',
'action_open_customer_workspace' => 'Open customer workspace',
'action_open_review_pack' => 'Open review pack',
'action_open_review' => 'Open review',
'action_open_reviews' => 'Open reviews',
'action_review_environment' => 'Review environment',
'reason_missing_application_permissions' => ':count application permission(s) are still missing.',
'impact_missing_application_permissions' => 'Provider-backed inventory, verification, and reporting flows stay blocked until consent is restored.',
'reason_missing_delegated_permissions' => ':count delegated permission(s) still need attention.',
'impact_missing_delegated_permissions' => 'The environment stays partially ready until delegated permissions are reviewed and granted where needed.',
'reason_high_severity_findings' => ':count high severity finding(s) still need operator review.',
'impact_high_severity_findings' => 'Severe drift stays unresolved until those findings are triaged or remediated.',
'reason_overdue_findings' => ':count finding(s) are already overdue.',
'impact_overdue_findings' => 'Workflow delay can hide the environment\'s current risk posture until overdue items are cleared.',
'reason_risk_exceptions' => ':count risk exception(s) or accepted-risk governance item(s) need follow-up.',
'impact_risk_exceptions' => 'Accepted-risk statements stop being trustworthy when their exception history is no longer current.',
'impact_recovery_posture' => 'Recovery readiness should be checked before customer-safe claims rely on backup or restore confidence.',
'reason_terminal_operations' => ':count operation run(s) finished blocked, partial, or failed.',
'impact_terminal_operations' => 'Terminal run outcomes need follow-up before the environment can be treated as calm.',
'reason_operations_requiring_attention' => 'One or more operations finished with an outcome that needs follow-up.',
'impact_operations_requiring_attention' => 'The environment should not be treated as fully healthy until the operation outcome has been reviewed.',
'reason_continue_review' => 'Customer-safe output is not fully ready yet.',
'impact_continue_review' => 'Review output stays partial until the review, evidence, and pack surfaces line up cleanly.',
'operator_guidance_attention_title' => 'Environment needs attention',
'operator_guidance_provider_blocked_title' => 'Provider readiness blocks evidence refresh',
'operator_guidance_provider_attention_title' => 'Provider readiness needs attention',
'operator_guidance_findings_title' => 'Governance findings need attention',
'operator_guidance_operations_title' => 'Operations require follow-up',
'operator_guidance_risks_title' => 'Risk exceptions need review',
'operator_guidance_recovery_title' => 'Recovery posture needs review',
'operator_guidance_review_follow_up_title' => 'Review follow-up is in progress',
'operator_guidance_review_output_title' => 'Review output needs attention',
'operator_guidance_no_urgent_title' => 'No urgent operator action',
'operator_guidance_unavailable_helper' => 'No single repo-real follow-up is currently available.',
'operations_attention_title' => 'Operations requiring attention',
'operations_attention_badge_follow_up' => 'Follow-up required',
'operations_attention_badge_stale' => 'Needs attention',
'operations_attention_outcome_blocked' => 'The operation finished, but a prerequisite blocked completion.',
'operations_attention_outcome_partial' => 'The operation finished, but follow-up is still required.',
'operations_attention_outcome_failed' => 'The operation finished with a failure that needs review.',
'operations_attention_outcome_generic' => 'The operation finished with an outcome that needs follow-up.',
'operations_attention_outcome_stale' => 'The operation is still active, but it is past its expected lifecycle window.',
'operations_attention_outcome_provider_consent_required' => 'The check finished, but provider consent is still required.',
'operations_attention_reason_fallback' => 'The recorded outcome still needs operator review before the environment can be treated as healthy.',
'operations_attention_reason_stale' => 'The run is past its normal lifecycle window and may no longer be progressing.',
'operations_attention_reason_provider_consent_required' => 'Admin consent is required before the provider connection can be used.',
'operations_attention_impact_follow_up' => 'Environment readiness should not be treated as fully healthy until the operation outcome has been reviewed.',
'operations_attention_impact_stale' => 'Environment readiness should not be treated as current until the stalled run has been reviewed.',
'operations_attention_impact_provider_consent_required' => 'Environment readiness cannot be treated as healthy until this is reviewed.',
'operations_attention_timing_completed' => 'Completed :time',
'operations_attention_timing_started' => 'Started :time',
'governance_baseline_compare_label' => 'Baseline compare',
'governance_baseline_compare_description' => 'Current compare posture for the environment baseline.',
'governance_evidence_coverage_label' => 'Evidence coverage',
'governance_review_freshness_label' => 'Review freshness',
'governance_provider_permissions_label' => 'Provider permissions',
'governance_backup_posture_label' => 'Backup posture',
'governance_backup_posture_unavailable_description' => 'Recovery readiness is not yet available.',
'readiness_current_review_title' => 'Current review',
'readiness_current_review_empty_status' => 'No active review',
'readiness_current_review_empty_description' => 'There is currently no review in progress for this environment.',
'readiness_current_review_updated_label' => 'Last updated',
'readiness_current_review_findings_progress_label' => 'Findings with outcome',
'readiness_current_review_completion_progress_label' => 'Review completion',
'readiness_customer_safe_output_title' => 'Customer-safe output',
'readiness_customer_safe_output_empty_status' => 'No customer-safe output',
'readiness_customer_safe_output_empty_description' => 'Generate a review pack once review and evidence are ready for handoff.',
'readiness_customer_safe_output_evidence_label' => 'Evidence snapshot',
'readiness_customer_safe_output_review_pack_label' => 'Review pack',
'readiness_risk_exceptions_title' => 'Risk exceptions',
'readiness_risk_exceptions_active_label' => 'Accepted risks',
'readiness_risk_exceptions_expiring_label' => 'Expiring soon',
'readiness_risk_exceptions_pending_label' => 'Pending approval',
'readiness_provider_health_title' => 'Provider Health',
'readiness_provider_health_empty_status' => 'Provider status unavailable',
'readiness_provider_health_empty_description' => 'No provider health snapshot is currently available for this environment.',
'readiness_provider_health_last_check_label' => 'Last check',
'readiness_provider_health_permissions_label' => 'Missing permissions',
'readiness_provider_health_snapshot_label' => 'Permissions snapshot',
'readiness_provider_health_degraded_description' => 'The latest provider health check reported warnings for this environment.',
'readiness_provider_health_blocked_description' => 'The provider health check is currently blocked for this environment.',
'readiness_provider_health_error_description' => 'The provider health check failed for this environment.',
'readiness_provider_health_pending_description' => 'The latest provider health check is still pending for this environment.',
'readiness_provider_health_unknown_description' => 'No provider health check has been recorded yet.',
'helper_findings_requires_permissions' => 'You can see the environment posture, but opening findings requires additional permissions.',
'helper_risk_exceptions_requires_permissions' => 'You can see the summary, but opening risk exceptions requires additional permissions.',
'helper_review_requires_permissions' => 'You can see the summary, but opening review detail requires additional permissions.',
'helper_continue_review_requires_manage' => 'You can inspect the current review state, but only review managers can continue the review workflow.',
'helper_evidence_requires_permissions' => 'You can see the summary, but opening evidence detail requires additional permissions.',
'helper_customer_workspace_requires_permissions' => 'Customer-safe output is summarized here, but opening the underlying review surfaces requires additional permissions.',
'helper_required_permissions_unavailable' => 'You can see the summary, but opening the required-permissions detail is not available for this actor.',
'helper_operations_unavailable' => 'You can see the summary, but opening operations detail is not available for this actor.',
'helper_baseline_compare_requires_permissions' => 'You can see the summary, but opening baseline compare requires additional permissions.',
'helper_backup_posture_requires_permissions' => 'You can see the summary, but opening backup posture detail requires additional permissions.',
'evidence_unavailable_description' => 'No evidence snapshot is currently available for customer-safe output.',
'evidence_generated_prefix' => 'Latest evidence snapshot generated :time.',
'review_unavailable_description' => 'No review is currently available for this environment.',
'review_updated_prefix' => 'Latest review updated :time.',
'provider_permissions_ready' => 'Ready',
'provider_permissions_blocked' => 'Blocked',
'provider_permissions_needs_attention' => 'Needs attention',
'provider_permissions_complete_description' => 'Required permissions currently look complete.',
'provider_permissions_stale_suffix' => 'The verification snapshot is stale.',
'review_pack_updated_prefix' => 'Latest review pack updated :time.',
'review_pack_evidence_available_description' => 'Evidence exists, but a customer-safe review pack is not ready yet.',
'review_pack_unavailable_description' => 'No customer-safe output is currently ready for handoff.',
'risk_exceptions_need_action_status' => ':count need action',
'risk_exceptions_active_status' => ':count active',
'risk_exceptions_pending_description' => 'Pending, expiring, or expired exceptions still need governance follow-up.',
'risk_exceptions_active_description' => 'Accepted-risk exceptions exist but do not currently need urgent review.',
'risk_exceptions_calm_description' => 'No risk exceptions currently need attention.',
'recent_operation_fallback_summary' => 'Recent operation context for this environment.',
],
],
'provider_guidance' => [
'status_blocked' => 'Blocked',
'status_action_required' => 'Action required',
'status_ready' => 'Ready',
'reason_label' => 'Reason',
'impact_label' => 'Impact',
'primary_action_label' => 'Recommended next action',
'secondary_actions_label' => 'Secondary',
'details_label' => 'Details',
'provider_readiness_blocked_title' => 'Provider readiness blocked',
'provider_readiness_attention_title' => 'Provider readiness needs attention',
'required_permissions_missing_title' => 'Required permissions missing',
'connection_missing_title' => 'Provider connection required',
'connection_missing_reason' => 'No provider connection is configured for this environment.',
'connection_missing_impact' => 'Evidence refresh, permission posture, inventory sync, and review readiness cannot be treated as ready until a provider connection exists.',
'connection_review_title' => 'Provider connection needs review',
'connection_review_reason' => 'This provider connection is not currently usable.',
'connection_review_impact' => 'TenantPilot cannot verify or use this provider connection until the recorded issue is reviewed.',
'connection_disabled_title' => 'Provider connection disabled',
'connection_disabled_reason' => 'This provider connection is disabled.',
'connection_disabled_impact' => 'Provider-backed evidence refresh, inventory sync, and readiness verification stay blocked while the connection is disabled.',
'admin_consent_required_title' => 'Provider consent required',
'admin_consent_required_reason' => 'Admin consent is missing for this provider connection.',
'admin_consent_failed_reason' => 'TenantPilot could not confirm admin consent for this provider connection.',
'admin_consent_revoked_reason' => 'Previously granted admin consent is no longer valid for this provider connection.',
'admin_consent_required_impact' => 'TenantPilot cannot use the provider connection for evidence refresh, inventory, or review readiness until consent is restored.',
'required_application_permissions_reason' => 'Required application permissions are missing.',
'required_application_permissions_impact' => 'TenantPilot cannot refresh evidence, permission posture, inventory, or review outputs reliably until the missing application permissions are granted.',
'required_delegated_permissions_reason' => 'Required delegated permissions are missing.',
'required_delegated_permissions_impact' => 'Provider-backed workflows may remain partially ready until delegated access is reviewed and granted where needed.',
'verification_required_title' => 'Provider verification required',
'verification_required_impact' => 'TenantPilot cannot confirm whether required permissions and provider access are currently usable until verification runs again.',
'verification_not_run_reason' => 'This provider connection has not been verified yet.',
'verification_stale_reason' => 'Stored provider verification evidence is stale and should be refreshed.',
'verification_failed_title' => 'Provider verification failed',
'verification_failed_reason' => 'The last provider verification did not complete successfully.',
'verification_failed_impact' => 'Provider-backed operations may fail until the issue is reviewed.',
'verification_errors_reason' => ':count permission row(s) are in an unknown or error state and require follow-up.',
'verification_degraded_reason' => 'The latest provider verification completed with warnings and should be reviewed.',
'verification_in_progress_title' => 'Provider verification in progress',
'verification_in_progress_reason' => 'A provider verification is already running for this connection.',
'verification_blocked_notification_title' => 'Provider verification blocked',
'ready_title' => 'Provider connection ready',
'ready_reason' => 'Required provider permissions and verification checks are currently satisfied.',
'ready_impact' => 'No urgent provider readiness action is currently required.',
'action_open_required_permissions' => 'Open required permissions',
'action_open_admin_consent' => 'Open admin consent',
'action_open_admin_consent_guide' => 'Open admin consent guide',
'action_open_provider_connections' => 'Open provider connections',
'action_open_provider_connection' => 'Open provider connection',
'action_edit_provider_connection' => 'Edit provider connection',
'action_run_provider_verification' => 'Run provider verification',
'action_open_verification_operation' => 'Open verification operation',
'action_open_environment_dashboard' => 'Open environment dashboard',
'provider_readiness_section' => 'Provider readiness',
'detail_provider_label' => 'Provider',
'detail_provider_value' => 'Microsoft',
'detail_missing_application_permissions_label' => 'Missing application permissions',
'detail_missing_delegated_permissions_label' => 'Missing delegated permissions',
'detail_verification_state_label' => 'Verification state',
'detail_permission_evidence_label' => 'Stored permission evidence',
'detail_consent_state_label' => 'Consent state',
'detail_last_verification_operation_label' => 'Last verification operation',
'verification_ready_detail' => 'Ready',
'verification_degraded_detail' => 'Degraded',
'verification_blocked_detail' => 'Blocked',
'verification_failed_detail' => 'Failed',
'verification_in_progress_detail' => 'In progress',
'verification_not_run_detail' => 'Not run',
],
'accepted_risk_guidance' => [
'section' => 'Accepted-risk guidance',
'status_ready' => 'Ready',
'status_action_required' => 'Action required',
'status_blocked' => 'Blocked',
'reason_label' => 'Reason',
'impact_label' => 'Impact',
'primary_action_label' => 'Recommended next step',
'review_focus_label' => 'What to review',
'secondary_actions_label' => 'Related context',
'title_ready' => 'Accepted-risk governance is current',
'title_expiring' => 'Accepted-risk review window is nearing expiry',
'title_expired' => 'Accepted-risk governance has expired',
'title_revoked' => 'Accepted-risk governance was revoked',
'title_rejected' => 'Accepted-risk governance was rejected',
'title_pending' => 'Accepted-risk request is pending review',
'title_pending_renewal' => 'Accepted-risk renewal is pending review',
'title_missing_support' => 'Accepted risk is on record without valid governance support',
'title_fresh_decision_required' => 'Accepted-risk decision must be reviewed again',
'title_incomplete_governance' => 'Accepted-risk governance context is incomplete',
'reason_ready' => 'The current accepted-risk record still has a valid governance basis.',
'reason_expiring' => 'The current accepted-risk governance window is still active, but it is nearing expiry and needs review.',
'reason_expired' => 'The current accepted-risk governance window has lapsed and no longer provides active coverage.',
'reason_pending' => 'This accepted-risk request is still waiting for its first governance decision.',
'reason_pending_renewal' => 'A renewal was requested for the current accepted-risk window and still needs a decision.',
'reason_revoked_or_rejected' => 'The latest governance decision no longer provides active accepted-risk coverage.',
'reason_missing_support' => 'This exception record is present, but it does not currently provide valid governance support.',
'reason_fresh_decision_required' => 'The linked finding changed after the earlier exception decision, so a fresh decision is required.',
'reason_incomplete_governance' => 'The current exception record is missing: :fields.',
'impact_ready' => 'No urgent governance follow-up is required on this exception right now.',
'impact_expiring' => 'If the current window is not reviewed in time, this accepted risk can no longer be treated as actively governed.',
'impact_expired' => 'This accepted risk no longer has current governance coverage and should not be treated as safely governed.',
'impact_revoked_or_rejected' => 'This accepted risk no longer has an approved governance basis and should be reviewed before it is relied on again.',
'impact_pending' => 'Until a decision is recorded, this exception does not establish new accepted-risk coverage.',
'impact_missing_support' => 'This accepted risk should not be relied on as governed until valid governance support is re-established or the finding is formally returned to active remediation.',
'impact_fresh_decision_required' => 'The linked finding changed after the earlier exception decision, so the previous decision should not be relied on without review.',
'impact_incomplete_governance' => 'Missing accountability or review data weakens the governance record even when the exception is still present.',
'action_open_exception' => 'Open exception detail',
'action_open_finding' => 'Open finding',
'action_open_queue' => 'Open approval queue',
'next_step_ready' => 'No urgent change is required. Keep this accepted risk under routine governance review.',
'next_step_expiring' => 'Review the active governance window before it lapses.',
'next_step_expired' => 'Review whether this accepted-risk window should be renewed or whether the finding must return to active remediation.',
'next_step_pending' => 'Review the pending exception request and record an approval or rejection decision.',
'next_step_pending_renewal' => 'Review the pending renewal request and decide whether the accepted-risk window should be renewed.',
'next_step_revoked_or_rejected' => 'Review why governance coverage ended before this accepted risk is relied on again.',
'next_step_missing_support' => 'Review whether valid governance support can be re-established, or whether the finding must return to active remediation.',
'next_step_fresh_decision_required' => 'Review the changed finding and record a fresh accepted-risk decision before relying on earlier governance.',
'next_step_incomplete_governance' => 'Complete the missing governance context before relying on this accepted risk.',
'detail_environment_label' => 'Environment',
'detail_status_label' => 'Lifecycle status',
'detail_validity_label' => 'Governance validity',
'detail_owner_label' => 'Owner',
'detail_request_reason_label' => 'Request reason',
'detail_review_due_label' => 'Review due',
'detail_expires_label' => 'Expires',
'detail_current_decision_label' => 'Current decision',
'detail_missing_fields_label' => 'Missing governance inputs',
'detail_missing_value' => 'Missing',
'detail_not_recorded_value' => 'Not recorded',
],
'review' => [
'reporting' => 'Reporting',
'customer_reviews' => 'Customer reviews',
'customer_review_workspace' => 'Customer Review Workspace',
'customer_safe_review_workspace' => 'Customer-safe review packages',
'customer_workspace_intro' => 'Review released governance packages, evidence readiness, accepted risks, and handoff status across entitled environments.',
'customer_workspace_canonical_note' => 'Each row is an index entry: open the review detail to inspect package status, the executive entrypoint, supporting evidence, current risks, and the next customer-safe action.',
'customer_workspace_mapping_version' => 'Control readiness interpretation uses :version for this workspace.',
'customer_workspace_non_certification_disclosure' => 'Service delivery summary only. Does not replace formal audit opinion, certification, or legal attestation.',
'customer_workspace_scope_workspace_wide' => 'Workspace-wide customer review',
'customer_workspace_scope_workspace_wide_description' => 'Showing the latest released review across entitled environments. Current first review: :environment.',
'customer_workspace_scope_environment_filtered' => 'Environment filter: :environment',
'customer_workspace_scope_environment_filtered_description' => 'The page data is intentionally narrowed by the canonical environment_id filter while the shell remains workspace-owned.',
'is_review_ready_to_share' => 'Is this review ready to share?',
'review_pack_output_status' => 'What is the current review pack output state?',
'ready_to_share' => 'Ready to share',
'customer_safe_review_pack_ready' => 'Customer-safe review pack ready',
'published_with_limitations' => 'Published with limitations',
'internal_review_package_available' => 'Internal review package available',
'shareable_with_follow_up' => 'Shareable with follow-up',
'follow_up_required_before_sharing' => 'Follow-up required before sharing',
'ready_to_share_reason' => 'The released review, evidence path, and current review pack are available for customer-safe handoff.',
'customer_safe_review_pack_ready_reason' => 'The review package is published, export-ready, and backed by complete required evidence sections.',
'evidence_basis_missing_reason' => 'The review package is published, but the evidence basis is missing.',
'evidence_basis_stale_reason' => 'The review package is published, but the evidence basis is stale.',
'evidence_basis_incomplete_reason' => 'The review package is published, but the evidence basis is incomplete.',
'required_sections_incomplete_reason' => ':limited required sections are partial, missing, or stale in the current package (:complete of :total required complete).',
'publish_blockers_present_reason' => 'Publish blockers are still recorded in the released review summary.',
'contains_pii_reason' => 'This package includes PII and should be reviewed before external sharing.',
'export_not_ready_reason' => 'The review package exists, but the export contract is not ready yet.',
'shareable_with_follow_up_reason' => 'The review pack is available, but accepted-risk follow-up must be called out before handoff.',
'follow_up_required_before_sharing_reason' => 'Review proof or package availability still needs attention before this can be shared.',
'findings_follow_up_required_reason' => ':summary Keep open findings visible before customer handoff.',
'accepted_risk_follow_up_required_reason' => 'Accepted-risk follow-up is recorded for this review. Review the owner, rationale, and review date before handoff.',
'ready_to_share_impact' => 'Stakeholders can use the current review pack and released review as the evidence path.',
'customer_safe_review_pack_ready_impact' => 'Stakeholders can use the current review pack and released review as the evidence path.',
'published_with_limitations_impact' => 'Review output limitations before customer sharing.',
'internal_review_package_available_impact' => 'This package includes internal or PII-bearing detail and should be reviewed before external sharing.',
'export_not_ready_impact' => 'Do not present this package as customer-ready until export readiness passes.',
'shareable_with_follow_up_impact' => 'Use the current pack only with the accepted-risk follow-up included in the customer handoff.',
'follow_up_required_before_sharing_impact' => 'Do not treat this review as share-ready until the unavailable proof has been reviewed.',
'findings_follow_up_required_impact' => 'Do not treat this review as share-ready until open findings are resolved, accepted, or explicitly reviewed.',
'accepted_risk_follow_up_required_impact' => 'The pack can be shared only with the accepted-risk context included in the customer handoff.',
'impact' => 'Impact',
'scope' => 'Scope',
'ready' => 'Ready',
'needs_review' => 'Needs review',
'not_ready' => 'Not ready',
'readiness' => 'Readiness',
'evidence' => 'Evidence',
'review_consumption_flow' => 'Review consumption flow',
'review_consumption_flow_description' => 'Supporting reference for how the released review, evidence, findings, accepted risks, pack, and customer output line up after the decision above.',
'supporting_reference' => 'Supporting reference',
'supporting_actions' => 'Supporting actions',
'review_data' => 'Review data',
'review_data_available_description' => 'A released review is available for this customer-safe workspace.',
'findings_triaged' => 'Findings triaged',
'accepted_risks_reviewed' => 'Accepted risks reviewed',
'customer_output' => 'Customer-safe output',
'customer_output_ready_description' => 'Evidence and review-pack truth support customer-safe consumption.',
'customer_output_needs_review_description' => 'Output exists, but attention items must stay visible during handoff.',
'customer_output_not_ready_description' => 'Customer-safe output is not ready from the current proof state.',
'current_attention_point' => 'Current attention point',
'readiness_dimension_description' => 'Readiness is derived from the released review, evidence, accepted-risk, and review-pack state.',
'readiness_dimension_ready_description' => 'Released review is available.',
'readiness_dimension_follow_up_description' => 'Follow-up required before handoff.',
'accepted_risk_dimension_customer_safe_description' => 'Accepted-risk status is summarized from the released review evidence without internal accountability details.',
'accepted_risk_dimension_no_action_description' => 'No expiring accepted risks.',
'accepted_risk_dimension_follow_up_description' => 'Accepted-risk follow-up is required.',
'accepted_risk_dimension_on_record_description' => 'Accepted risks are recorded.',
'evidence_dimension_available_description' => 'Evidence snapshot is linked.',
'evidence_dimension_unavailable_description' => 'Evidence proof is not available.',
'evidence_dimension_expired_description' => 'Evidence snapshot is expired.',
'evidence_dimension_restricted_description' => 'Evidence access is restricted.',
'review_pack_dimension_available_description' => 'Current pack can be downloaded.',
'review_pack_dimension_not_generated_description' => 'Review pack is not generated.',
'review_pack_dimension_needs_refresh_description' => 'Evidence refresh needed.',
'review_pack_dimension_preparing_description' => 'Review pack is being prepared.',
'review_pack_dimension_expired_description' => 'Review pack is expired.',
'review_pack_dimension_unavailable_description' => 'Review pack is not ready.',
'evidence_path' => 'Evidence path',
'decision_trail' => 'Decision trail',
'accepted_risk_records' => 'Accepted risk records',
'accepted_risk_records_description' => 'Accepted-risk decisions are present in the released review evidence basis.',
'operation_proof' => 'Operation proof',
'operation_proof_available_description' => 'A related operation record exists for this review evidence path.',
'operation_proof_available_with_initiator_description' => 'A related operation record exists for this review evidence path. Initiated by :initiator.',
'operation_proof_unavailable' => 'No operation proof linked',
'operation_proof_unavailable_description' => 'No operation proof link is attached to this released review path.',
'export_artifact' => 'Export artifact',
'export_artifact_available_description' => 'The current export artifact can be downloaded through the review pack flow.',
'export_artifact_unavailable_description' => 'No downloadable export artifact is available from this customer-safe flow.',
'last_generated' => 'Last generated',
'evidence_snapshot_used' => 'Evidence snapshot used',
'export_availability' => 'Export availability',
'export_ready' => 'Export ready',
'export_not_ready' => 'Export not ready',
'package_exists' => 'Package exists',
'package_exists_available_description' => 'A released review pack artifact exists for this review path.',
'package_exists_preparing_description' => 'The review pack artifact is still being prepared for this released review path.',
'package_exists_unavailable_description' => 'No released review pack artifact exists yet for this review path.',
'internal_export' => 'Internal export',
'internal_export_ready_description' => 'An internal export can be opened or downloaded from the current review pack.',
'internal_export_preparing_description' => 'The internal export is still being prepared from the current review pack.',
'internal_export_not_ready_description' => 'A review pack exists, but the internal export is not ready for download yet.',
'internal_export_unavailable_description' => 'No current internal export is available from this review pack path.',
'customer_sharing' => 'Customer sharing',
'customer_sharing_ready_description' => 'The current package can be treated as customer-safe according to the output readiness contract.',
'customer_sharing_internal_only_description' => 'The current package remains internal-only and is not ready for customer sharing.',
'customer_sharing_requires_review_description' => 'Customer sharing still depends on the readiness blockers and limitations shown in the main decision state.',
'evidence_basis_state' => 'Evidence basis',
'section_completeness' => 'Section completeness',
'sharing_boundary' => 'Sharing boundary',
'pii_state' => 'PII',
'contains_pii' => 'Contains PII',
'pii_excluded' => 'PII excluded',
'protected_values' => 'Protected values',
'protected_values_hidden' => 'Protected values hidden',
'disclosure' => 'Disclosure',
'disclosure_present' => 'Disclosure present',
'review_package_index' => 'Review package index',
'review_package_index_description' => 'Released reviews and customer-safe package entries available in this workspace.',
'review_pack_state' => 'Review pack state',
'evidence_source' => 'Evidence source',
'customer_safe_follow_ups' => 'Customer-safe follow-ups',
'customer_safe_follow_ups_empty' => 'No customer-safe follow-ups are listed for this released review.',
'diagnostics_customer_workspace_default_hidden' => 'Support details stay on authorized diagnostic surfaces and are not shown in this customer-safe workspace by default.',
'review_acknowledgement' => 'Review acknowledgement',
'acknowledge_review' => 'Acknowledge review',
're_acknowledge_review' => 'Re-acknowledge review',
'acknowledge_review_heading' => 'Acknowledge this review?',
'acknowledge_review_description' => 'Records that the current published review package was reviewed. It does not make the package customer-ready and is not a legal attestation.',
'acknowledge_review_confirm' => 'Acknowledge',
'acknowledge_review_comment' => 'Comment (optional)',
'acknowledge_review_unavailable' => 'Unable to acknowledge review',
'acknowledge_review_failed' => 'Review acknowledgement failed',
'review_acknowledged' => 'Review acknowledged',
'acknowledgement_not_available' => 'Acknowledgement unavailable',
'acknowledgement_not_available_reason' => 'Acknowledgement is tracked only for published review packages.',
'acknowledgement_not_available_impact' => 'Publish a review package before recording acknowledgement.',
'review_accepted_risks' => 'Review accepted risks',
'acknowledgement_required' => 'Acknowledgement required',
'acknowledgement_required_reason' => 'This published review has not been acknowledged yet.',
'acknowledgement_required_impact' => 'Acknowledgement records review consumption for this published package. Customer-ready status is still determined by the output state above.',
'acknowledgement_requires_permission' => 'You do not have permission to acknowledge reviews.',
'acknowledgement_re_ack_required' => 'Re-acknowledgement required',
'acknowledgement_re_ack_required_reason' => 'The review pack or evidence basis changed after the last acknowledgement.',
'acknowledgement_re_ack_required_impact' => 'Re-acknowledge to confirm you reviewed the current published package. This does not change customer-ready status.',
'acknowledgement_recorded_reason' => 'An acknowledgement is recorded for this published review package.',
'acknowledgement_recorded_impact' => 'This confirms review consumption for the current package. It does not change customer-ready status.',
'basis' => 'Basis',
'acknowledged_by' => 'Acknowledged by',
'acknowledged_at' => 'Acknowledged at',
'accepted_risk_summary' => 'Accepted risks',
'accepted_risk_no_action_needed' => 'No action needed',
'accepted_risk_accountability' => 'Accepted-risk accountability',
'accepted_risk_owner' => 'Owner',
'accepted_risk_next_review' => 'Next review',
'accepted_risk_rationale' => 'Rationale',
'review_date_not_recorded' => 'Review date not recorded',
'not_recorded' => 'Not recorded',
'accepted_risks_expiring_soon' => 'Expiring soon',
'accepted_risks_expired' => 'Expired',
'accepted_risks_pending_approval' => 'Pending approval',
'accepted_risks_needs_review' => 'Needs review',
'disclosure_rule' => 'Disclosure rule',
'disclosure_decision' => 'Decision',
'disclosure_evidence' => 'Evidence',
'disclosure_diagnostics' => 'Diagnostics',
'disclosure_raw_support' => 'Raw/support',
'disclosure_visible' => 'Visible',
'disclosure_collapsed' => 'Collapsed',
'disclosure_hidden' => 'Hidden',
'evidence_snapshot_available_description' => 'Evidence snapshot generated :date.',
'latest_released_review' => 'Latest released review',
'released_review_for_environment' => 'Released review for :environment',
'filtered_by_environment' => 'Filtered by environment: :environment',
'published_date' => 'Published :date',
'reviews' => 'Reviews',
'clear_filters' => 'Clear filters',
'tenant' => 'Environment',
'latest_review' => 'Latest review',
'review_status' => 'Review status',
'output_guidance' => 'Output guidance',
'output_readiness' => 'Output readiness',
'publication_sharing_state' => 'Publication/sharing state',
'output_not_customer_ready' => 'Output not customer-ready',
'publication_blocked' => 'Publication blocked',
'publication_blocked_description' => 'Review blockers must be resolved before this output can be treated as customer-ready.',
'publication_blocked_short_reason' => 'Review blockers are still recorded for this output.',
'publication_blocked_impact' => 'Do not present this review output as customer-ready until the blockers are resolved.',
'output_limitations' => 'Output limitations',
'output_limitations_summary' => '{1} 1 limitation requires review|[2,*] :count limitations require review',
'technical_details' => 'Technical details',
'has_ready_export' => 'Ready export',
'yes' => 'Yes',
'no' => 'No',
'status' => 'Status',
'control' => 'Control',
'control_interpretation' => 'Control readiness interpretation',
'control_readiness' => 'Control readiness',
'assessment_status' => 'Assessment status',
'review_recommended' => 'Review recommended',
'recommended_next_action' => 'Recommended next action',
'customer_safe' => 'Customer-safe',
'requires_review' => 'Requires review',
'internal_only' => 'Internal only',
'interpretation_version_short' => 'Interpretation version: :version',
'additional_controls' => '+:count more control(s)',
'control_limitations_summary' => 'Limitations: :limitations.',
'control_readiness_unmapped' => 'No mapped controls',
'control_readiness_unmapped_description' => 'No canonical controls are mapped in this released review. Treat the control view as partial until evidence references can be mapped.',
'control_evidence_unmapped' => 'No mapped evidence basis is available.',
'control_evidence_unavailable' => 'Evidence basis unavailable.',
'control_recommendation_unmapped' => 'Review unmapped evidence before customer delivery.',
'proof_access_state' => 'Proof access',
'key_findings' => 'Key findings',
'findings_needing_attention' => 'Findings needing attention',
'findings_total' => 'Total findings',
'findings_open' => 'Open findings',
'findings_high_impact' => 'High impact',
'findings_high_impact_summary' => ':open; :high.',
'findings_open_attention_count' => '{1} 1 open finding needs attention|[2,*] :count open findings need attention',
'findings_high_impact_count_summary' => '{1} 1 is high impact|[2,*] :count are high impact',
'findings_open_summary' => '{1} 1 open finding needs customer or operator review.|[2,*] :count open findings need customer or operator review.',
'findings_no_open_summary' => ':total findings are recorded, with no open customer-action findings.',
'findings_none_action_summary' => 'No open findings require customer action.',
'accepted_risks' => 'Accepted risks',
'evidence_proof' => 'Evidence proof',
'evidence_status' => 'Evidence',
'published' => 'Published',
'published_at' => 'Published at',
'generated_at' => 'Generated at',
'interpretation_version' => 'Interpretation version',
'review_pack' => 'Review pack',
'rendered_report' => 'Rendered review report',
'open_latest_review' => 'Open latest review',
'open' => 'Open',
'open_review' => 'Open review',
'open_rendered_review_report' => 'Open rendered report',
'open_draft_review' => 'Open draft review',
'open_successor_review' => 'Open successor review',
'last_review' => 'Last review',
'primary_action' => 'Primary action',
'download_review_pack' => 'Download review pack',
'download_customer_safe_review_pack' => 'Download customer-safe review pack',
'download_review_pack_with_limitations' => 'Download review pack with limitations',
'download_internal_review_pack' => 'Download internal review pack',
'download_current_review_pack' => 'Download current review pack',
'download_governance_package' => 'Download governance package',
'review_package_contents' => 'Review package contents',
'review_output_limitations' => 'Review output limitations',
'review_limitations_below' => 'Review limitations below',
'review_section_limitations' => 'Review section limitations',
'review_pii_redaction_state' => 'Review PII/redaction state',
'resolve_review_blockers' => 'Inspect review blockers',
'refresh_review' => 'Refresh review',
'publish_review' => 'Publish review',
'create_next_review' => 'Create next review',
'create_next_review_heading' => 'Create next review?',
'create_next_review_description' => 'TenantPilot creates the next review cycle from the latest eligible evidence basis and supersedes this published review.',
'create_next_review_confirm' => 'Create next review',
'create_next_review_success' => 'Next review created',
'create_next_review_unavailable' => 'Next review creation is unavailable right now.',
'create_next_review_failed' => 'Unable to create next review',
'draft_review_exists' => 'Draft review exists',
'draft_review_exists_blocked_reason' => 'A successor draft review already exists for this released output. Open the draft review to refresh inputs and resolve the remaining blockers.',
'draft_review_exists_blocked_impact' => 'The operator loop should continue in the existing draft review. Refresh the draft when inputs change, then publish only after the blockers are cleared.',
'draft_review_exists_ready_reason' => 'A successor draft review already exists for this released output and is ready for publication. Open the draft review to publish the next governed outcome.',
'draft_review_exists_ready_impact' => 'The next review cycle is already in progress. Open the draft review and publish it when you are ready to replace the prior released review.',
'resolve_review_blockers_before_publishing' => 'Resolve review blockers before publishing.',
'refresh_review_feedback_blocked' => 'Review inputs refreshed. Blockers remain.',
'refresh_review_feedback_ready' => 'Review inputs refreshed. Ready to publish.',
'open_operation_proof' => 'Open operation proof',
'open_evidence_basis' => 'Open evidence basis',
'output_guidance_detail_mode_note' => 'You are already on the review detail for this output. Use the limitations and technical details below to inspect blockers, evidence state, and the current export.',
'output_action_help_publication_blocked' => 'The primary action opens the review detail with blockers, evidence status, and next steps. The supporting actions download the current package or jump to the evidence snapshot and operation proof.',
'output_action_help_published_with_limitations' => 'The primary action opens the review detail for the current limitation. The supporting actions download the current package or jump to the evidence basis.',
'output_action_help_internal_only' => 'The primary action opens the review detail for PII and redaction checks. The supporting actions let you download the internal package or review the released record.',
'output_action_help_export_not_ready' => 'The primary action opens the review detail with the current output limitations. The supporting actions jump to the evidence basis or the released review.',
'output_action_help_customer_safe_ready' => 'The primary action downloads the customer-safe package. Use the supporting action to open the released review detail.',
'output_action_help_create_next_review' => 'Create the next review cycle from the latest eligible evidence basis. Use the supporting actions to inspect blockers, evidence, or the current package before moving forward.',
'output_action_help_refresh_review' => 'Refresh this mutable review from the latest eligible evidence basis. Use the supporting actions to inspect the current evidence basis or review context first.',
'output_action_help_publish_review' => 'Publish this mutable review as the current governed outcome when the output is ready. Use the supporting actions to inspect the evidence basis or current review context first.',
'output_action_help_open_draft_review' => 'Open the existing draft review to continue the next review cycle. Refresh the draft if blockers remain, or publish it when the output is ready.',
'output_action_help_open_successor_review' => 'Open the known successor review to continue the next review cycle. Use the supporting actions for evidence, proof, or the prior released review context.',
'evidence_basis_incomplete_guidance' => 'Evidence basis incomplete',
'evidence_basis_incomplete_guidance_reason' => 'The review pack is anchored to an evidence snapshot with missing or incomplete evidence.',
'evidence_basis_incomplete_short_reason' => 'Evidence basis is incomplete.',
'required_review_sections_missing' => 'Required review sections missing',
'required_review_sections_missing_reason' => '{1} 1 required section is partial, missing, or stale.|[2,*] :count required sections are partial, missing, or stale.',
'required_review_sections_missing_short_reason' => 'Required review sections are missing or incomplete.',
'internal_package_includes_pii' => 'Internal package includes PII',
'internal_package_includes_pii_reason' => 'This export includes PII-bearing detail and should be reviewed before external sharing.',
'internal_package_includes_pii_short_reason' => 'This export includes internal or PII-bearing detail.',
'export_not_ready_guidance_reason' => 'The review package exists, but the export-readiness contract has not passed.',
'export_not_ready_short_reason' => 'The current export is not ready yet.',
'output_disclosure_missing' => 'Required disclosure missing',
'output_disclosure_missing_reason' => 'The customer-safe disclosure is missing from the current output package.',
'output_disclosure_missing_short_reason' => 'Required disclosure is missing from the current output.',
'governance_package' => 'Governance package',
'governance_decisions' => 'Governance decisions',
'governance_decisions_requiring_awareness' => 'Governance decisions requiring awareness',
'governance_package_delivery_note' => 'This governance package is delivered through the current export review pack for the released review.',
'executive_entrypoint' => 'Executive entrypoint',
'executive_entrypoint_description' => 'Start with executive-summary.md in the downloaded package.',
'auditor_appendix' => 'Structured auditor appendix',
'auditor_appendix_description' => 'metadata.json, summary.json, and sections.json remain included as the secondary structured appendix.',
'rendered_report_description' => 'Open the rendered stakeholder report derived from the current review-pack contract.',
'rendered_report_summary_fallback' => 'No executive summary is available for this released review.',
'rendered_report_html_only' => 'This v1 report is HTML-first. Use your browser print dialog when you need a PDF handoff.',
'rendered_report_appendix_note' => 'This rendered report is derived from the current review-pack contract. The ZIP package remains the structured appendix and downloadable artifact.',
'print_rendered_report' => 'Print report',
'return_to_review_detail' => 'Open review detail',
'return_to_review_pack_detail' => 'Open review pack detail',
'view_customer_safe_report' => 'View customer-safe report',
'view_report_with_limitations' => 'View report with limitations',
'view_internal_report' => 'View internal report',
'report_profile' => 'Report profile',
'report_effective_profile' => 'Effective profile',
'report_requested_profile' => 'Requested profile',
'report_audience' => 'Audience',
'report_source_surface' => 'Source surface',
'report_profile_customer_executive' => 'Customer executive',
'report_profile_customer_technical' => 'Customer technical',
'report_profile_internal_msp_review' => 'Internal MSP review',
'report_profile_auditor_appendix' => 'Auditor appendix',
'report_profile_framework_readiness' => 'Framework readiness',
'report_audience_customer_executive' => 'Customer stakeholders and executive readers',
'report_audience_customer_technical' => 'Customer technical and delivery readers',
'report_audience_internal_msp_review' => 'Internal MSP operators and support reviewers',
'report_audience_controlled_auditor' => 'Controlled auditor and assurance readers',
'governance_review_report' => 'Governance review report',
'prepared_by_for' => 'Prepared by :prepared_by for :prepared_for',
'generated_by' => 'Generated by :generated_by',
'disclosure_policy' => 'Disclosure policy',
'proof_state_verified' => 'Verified',
'proof_state_assumed' => 'Assumed',
'proof_state_missing' => 'Missing',
'proof_state_unknown' => 'Unknown',
'proof_state_not_applicable' => 'Not applicable',
'report_profile_fallback_notice' => 'Requested report profile is not available for this route.',
'report_profile_fallback_summary' => 'TenantPilot fell back to the internal MSP review profile and kept the request visible.',
'report_appendix_hidden_for_profile' => 'This profile keeps the supporting appendix hidden. Use a bounded internal or auditor profile when detailed appendix content is required.',
'report_disclosure_customer_profile_internal_only' => 'Customer-facing profile blocked by internal-only detail',
'report_disclosure_customer_profile_internal_only_summary' => 'The selected customer-facing profile cannot expose this report while internal or PII-bearing detail remains in scope.',
'report_disclosure_customer_profile_requires_review' => 'This customer-facing profile still requires operator review before external sharing.',
'report_disclosure_non_certification_missing' => 'The required non-certification disclosure had to be enforced from fallback copy. Treat that as missing proof until the stored source is corrected.',
'report_disclosure_audience_boundary' => 'Audience boundary',
'report_disclosure_audience_boundary_summary' => 'This rendered report is constrained to :audience.',
'report_disclosure_evidence_basis' => 'Evidence basis proof',
'report_disclosure_evidence_verified' => 'The current evidence basis is complete enough to verify the disclosure state for this report.',
'report_disclosure_evidence_missing' => 'The evidence basis is incomplete, stale, or missing. Treat evidence-backed claims as limited.',
'report_disclosure_evidence_unknown' => 'The evidence basis state could not be mapped cleanly. Treat evidence-backed claims as unknown.',
'report_disclosure_protected_values' => 'Protected values boundary',
'report_disclosure_protected_values_assumed' => 'Protected values appear hidden based on the current pack options, but that boundary is still treated as assumed rather than independently verified.',
'report_disclosure_protected_values_missing' => 'Protected values cannot be treated as safely hidden for this customer-facing profile.',
'report_disclosure_protected_values_unknown' => 'Protected value handling could not be established cleanly from stored report truth.',
'report_disclosure_protected_values_not_applicable' => 'This profile is internal or auditor-bounded, so hidden-value proof is not the governing disclosure boundary.',
'report_state_customer_safe_ready' => 'Customer-safe report ready',
'report_state_with_limitations' => 'Report with limitations',
'report_state_internal_with_limitations' => 'Internal report with limitations',
'report_state_not_customer_ready' => 'Output not customer-ready',
'report_state_customer_safe_ready_summary' => 'This released review is backed by the current evidence and export-readiness contract. It can be used as a customer-safe governance review report.',
'report_state_limitations_summary' => 'This report is readable, but the evidence, section, or disclosure basis still carries limitations that must be reviewed before external sharing.',
'report_state_internal_summary' => 'This report includes internal or PII-bearing detail and must stay internal until redaction and readiness are reviewed.',
'report_state_not_ready_summary' => 'This output is not ready for external customer sharing. Resolve the shown blockers before treating it as a report.',
'report_external_sharing_warning' => 'Do not share externally before review.',
'executive_summary' => 'Executive summary',
'overall_state' => 'Overall state',
'reason' => 'Reason',
'report_summary_default_impact' => 'Report shareability depends on the readiness, limitations, evidence basis, and disclosure state shown in this report.',
'report_summary_ready_reason' => 'The report is backed by a complete evidence basis and current released review-pack contract.',
'report_summary_limited_reason' => 'The report has limitations that should be reviewed before relying on it externally.',
'report_next_action_ready' => 'Use the report for customer-safe governance review and retain the ZIP package as the structured appendix.',
'report_next_action_internal' => 'Review redaction and PII scope before any external customer handoff.',
'report_next_action_evidence' => 'Review or refresh the evidence basis before external sharing.',
'report_next_action_sections' => 'Review the incomplete sections and refresh the report basis before external sharing.',
'report_next_action_blockers' => 'Resolve the publish blockers before treating this report as customer-ready.',
'report_next_action_limited' => 'Review the listed limitations before external sharing.',
'report_limitation_evidence_summary' => 'The evidence basis is incomplete, stale, or missing. Some review claims cannot be treated as customer-ready until the evidence basis is reviewed or refreshed.',
'report_limitation_sections_summary' => 'Several required sections are incomplete or limited. Review the supporting appendix before external sharing.',
'report_limitation_pii_summary' => 'This output includes internal or PII-bearing detail. It is not customer-safe until redaction and sharing boundaries are reviewed.',
'report_limitation_blockers_summary' => 'Publish blockers are still recorded for this output. Resolve them before presenting this as a customer-ready governance report.',
'report_limitation_export_summary' => 'The export-readiness contract has not passed. Treat this report as an internal preview until the export is ready.',
'report_limitation_disclosure_summary' => 'The required non-certification disclosure is missing or incomplete. Add the disclosure before external sharing.',
'report_limitation_default_summary' => 'This report has a limitation that should be reviewed before external sharing.',
'evidence_snapshot_number' => 'Evidence snapshot #:id',
'evidence_snapshot_missing' => 'No evidence snapshot',
'report_evidence_complete_description' => 'This report is anchored to :snapshot with a complete evidence basis.',
'report_evidence_stale_description' => 'This report is anchored to :snapshot, but the evidence basis is stale. Review or refresh the evidence before external sharing.',
'report_evidence_partial_description' => 'This report is anchored to :snapshot with incomplete evidence. Review the evidence basis before external sharing.',
'report_evidence_missing_description' => 'This report is not anchored to a complete evidence basis. Review or refresh evidence before external sharing.',
'report_evidence_complete_action' => 'Keep the evidence snapshot and review pack together when handing off this report.',
'findings_and_open_risks' => 'Findings and open risks',
'no_open_risks_listed' => 'No open risks are listed for this review.',
'no_accepted_risks_listed_for_review' => 'No accepted risks are listed for this review.',
'accepted_risk_customer_safe_summary_missing' => 'A customer-safe accepted-risk summary is not recorded. Do not expose internal rationale as customer-safe context.',
'accepted_risk_review_due_on' => 'Review due on :date',
'accepted_risk_expires_on' => 'Expires on :date',
'non_certification_disclosure' => 'Non-certification disclosure',
'non_certification_disclosure_text' => 'TenantPilot summarizes available service-delivery evidence for governance review. This report is not a certification, legal attestation, audit opinion, or compliance guarantee.',
'supporting_appendix' => 'Supporting appendix',
'governance_package_available' => 'Governance package available',
'governance_package_available_description' => 'The current export review pack is ready for stakeholder delivery from this released review.',
'governance_package_partial' => 'Governance package partial',
'governance_package_partial_description' => 'The current export review pack is ready, but the supporting review basis remains partial or limitation-aware.',
'governance_package_unavailable' => 'Governance package unavailable',
'governance_package_unavailable_description' => 'No current export review pack is attached to this released review yet.',
'governance_package_not_ready_description' => 'The current export review pack is not ready for stakeholder delivery yet.',
'governance_package_expired' => 'Governance package expired',
'governance_package_expired_description' => 'The current export review pack has expired and cannot be downloaded from this released review.',
'governance_package_blocked' => 'Governance package blocked',
'governance_package_blocked_description' => 'This account can read the released review but cannot download the current export review pack.',
'no_entitled_tenants' => 'No entitled environments match this view',
'no_released_customer_reviews' => 'No released customer reviews match this view',
'no_released_customer_reviews_description' => 'Publish an environment review before it appears in the customer-safe workspace.',
'filtered_no_released_customer_reviews' => 'No released customer reviews match the active environment filter.',
'filtered_no_released_customer_reviews_description' => 'Clear the environment filter to view other released reviews in this workspace.',
'clear_filters_description' => 'Clear the current filters to return to the full customer review workspace for your entitled environments.',
'adjust_filters_description' => 'Adjust filters to return to the full customer review workspace for your entitled environments.',
'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.',
'accepted_risk_accountable' => 'Accountable: :name.',
'accepted_risk_accountable_until' => 'Accountable: :name. Re-review by :date.',
'accepted_risk_reason' => 'Reason: :reason.',
'accepted_risk_partial_accountability' => 'Accountability is partially recorded; review owner details are not fully available.',
'unavailable' => 'Unavailable',
'available' => 'Available',
'limited' => 'Limited',
'partial' => 'Partial',
'blocked' => 'Blocked',
'expired' => 'Expired',
'restricted' => 'Restricted',
'preparing' => 'Preparing',
'review_pack_available' => 'Current review pack available',
'review_pack_available_customer_description' => 'Current review pack is ready to download.',
'review_pack_customer_safe_ready_description' => 'The current review package is available, meets the customer-safe output contract, and can be opened as a rendered report from the review detail.',
'review_pack_with_limitations_description' => 'The review package exists, but evidence, section completeness, or publication limitations still need review.',
'review_pack_internal_review_description' => 'The review package exists, but it includes internal or PII-bearing detail that should be reviewed before external sharing.',
'review_pack_export_not_ready_description' => 'The review package exists, but the export contract is not ready yet.',
'review_pack_preparing' => 'Preparing',
'review_pack_preparing_description' => 'Review Pack is being prepared.',
'review_pack_not_available_yet' => 'Not available yet',
'review_pack_not_available_yet_description' => 'Review Pack has not been generated for this released review yet.',
'review_pack_evidence_incomplete' => 'Evidence incomplete',
'review_pack_evidence_incomplete_description' => 'Review Pack or decision summary may be incomplete.',
'review_pack_unavailable_customer_description' => 'Review Pack cannot be provided right now.',
'no_current_review_pack' => 'No current review pack available yet',
'review_pack_access_unavailable' => 'Review pack access is unavailable for this actor',
'review_pack_unavailable' => 'Review pack is not ready yet',
'review_pack_expired' => 'Review pack expired',
'no_key_findings_listed' => 'No key findings are listed for this released review.',
'no_next_action_listed' => 'No next action is listed for this released review.',
'evidence_proof_available' => 'Proof summary available',
'evidence_proof_absent' => 'No proof summary linked yet',
'evidence_proof_access_unavailable' => 'Proof access is unavailable for this actor',
'evidence_proof_expired' => 'Proof summary expired',
'evidence_available' => 'Evidence available',
'evidence_pending' => 'Evidence pending',
'evidence_restricted' => 'Evidence restricted',
'evidence_expired' => 'Evidence expired',
'assessment_basis' => 'Assessment basis',
'assessment_basis_description' => 'These assessment areas explain how the package statements are supported by the current review evidence.',
'review_completed' => 'Review completed',
'review_requires_attention' => 'Review required',
'review_needed' => 'Review needed',
'ready_for_release' => 'Ready for release',
'accepted_risk_status' => 'Accepted risk status',
'accepted_risk_none' => 'None on record',
'accepted_risk_on_record' => ':count on record',
'accepted_risk_follow_up' => 'Follow-up required',
'customer_review_pack_unavailable' => 'The current review pack cannot be downloaded from this customer-safe flow.',
'customer_review_pack_missing' => 'No current review pack is attached to this released review yet.',
'customer_review_pack_not_ready' => 'The attached review pack is not ready for download yet.',
'customer_review_pack_expired' => 'The attached review pack has expired.',
'customer_review_pack_forbidden' => 'This account can read the review but cannot download the current review pack.',
'decision_summary' => 'Decision summary',
'no_decisions_require_awareness' => 'No decisions require awareness',
'no_decisions_require_awareness_description' => 'No governance decisions require customer awareness in this released review.',
'no_decisions_require_awareness_next_action' => 'No customer action is needed for Decision Register follow-up from this review.',
'decision_evidence_unavailable' => 'Decision evidence unavailable',
'decision_evidence_incomplete' => 'Decision evidence incomplete',
'decision_summary_unavailable_description' => 'Customer-safe decision evidence is unavailable for this released review.',
'decision_summary_unavailable_next_action' => 'Open the released review before treating the decision summary as complete.',
'decision_summary_incomplete_description' => 'Decision evidence is incomplete for this released review.',
'decision_summary_incomplete_next_action' => 'Review the evidence basis before relying on the decision summary.',
'decision_summary_requires_awareness_description' => 'Governance decisions require customer awareness before relying on this released review.',
'decision_summary_requires_awareness_next_action' => 'Review the accepted-risk decision basis before customer delivery.',
'decision_entry_customer_safe_summary' => 'This governance decision needs follow-up before stakeholder delivery.',
'accepted_risk_state_current' => 'Accepted risk',
'accepted_risk_state_review_due' => 'Review due',
'accepted_risk_state_on_record' => 'Accepted risk',
'accepted_risk_customer_safe_summary' => 'Included in the released review evidence basis.',
'evidence_basis_complete' => 'Complete',
'evidence_basis_complete_description' => 'Customer-safe decision summary is backed by released-review evidence.',
'evidence_basis_no_awareness_required' => 'No awareness required',
'evidence_basis_no_awareness_required_description' => 'No governance decisions require awareness in this released-review evidence basis.',
'evidence_basis_missing' => 'Missing',
'evidence_basis_missing_description' => 'Required evidence is missing from the current review basis.',
'evidence_basis_stale' => 'Stale',
'evidence_basis_stale_description' => 'The evidence basis is stale and should be refreshed before sharing.',
'evidence_basis_incomplete' => 'Incomplete',
'evidence_basis_incomplete_description' => 'Decision evidence is incomplete and must not be interpreted as no decisions.',
'evidence_basis_unavailable' => 'Unavailable',
'evidence_basis_unavailable_description' => 'Customer-safe decision evidence is unavailable for this released review.',
'evidence_basis_not_generated' => 'Not generated',
'evidence_basis_not_generated_description' => 'The Review Pack is not available yet; the released review remains visible.',
'section_completeness_complete' => ':complete of :total required complete',
'section_completeness_limited' => ':complete of :total required complete, :limited limited',
'released_governance_record' => 'Released governance record',
'released_governance_record_available' => 'This released review is available for customer-safe governance consumption.',
'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',
'technical_detail_review_status_value' => 'Review status: :value',
'technical_detail_ready_export_value' => 'Ready export: :value',
'technical_detail_evidence_state_value' => 'Evidence state: :value',
'technical_detail_section_counts_value' => 'Sections - complete: :complete, partial: :partial, missing: :missing, stale: :stale',
'technical_detail_contains_pii_value' => 'Contains PII: :value',
'technical_detail_disclosure_present_value' => 'Disclosure present: :value',
'technical_detail_required_sections_value' => ':complete of :total required complete, :limited limited',
'workspace_next_step_evidence_review' => 'Review evidence',
'workspace_next_step_review_open' => 'Open review',
'workspace_next_step_package_review' => 'Review package',
'workspace_next_step_control_mapping' => 'Review control mapping',
'no_environment_reviews_yet' => 'No environment reviews yet',
'create_first_review_description' => 'Create the first review from an anchored evidence snapshot to start the recurring review history for this managed environment.',
'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_publication' => '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 environment.',
'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',
],
'policy' => [
'common' => [
'policy' => 'Policy',
'policies' => 'Policies',
'type' => 'Type',
'visibility' => 'Visibility',
'category' => 'Category',
'restore' => 'Restore',
'platform' => 'Platform',
'settings' => 'Settings',
'external_id' => 'External ID',
'last_synced' => 'Last synced',
'snapshot' => 'Snapshot',
'version' => 'Version',
'actor' => 'Actor',
'created' => 'Created',
'captured' => 'Captured',
'platform_label_windows' => 'Windows',
'platform_label_android' => 'Android',
'platform_label_ios' => 'iOS',
'platform_label_macos' => 'macOS',
'platform_label_all' => 'All',
'platform_label_mobile' => 'Mobile',
'open_operation' => 'Open operation',
'more' => 'More',
'backup_name' => 'Backup name',
'backup_name_default_prefix' => 'Backup',
'source_microsoft_intune' => 'Source: Microsoft Intune',
'type_delete_to_confirm' => 'Type DELETE to confirm',
'type_delete_to_confirm_validation' => 'Please type DELETE to confirm.',
'preview_only_dry_run' => 'Preview only (dry-run)',
],
'resource' => [
'sync_action_primary' => 'Sync policies',
'sync_action_secondary' => 'Sync',
'sync_modal_heading' => 'Sync policy inventory',
'sync_modal_description' => 'This queues a background sync operation for supported policy types in the current environment.',
'sync_permission_tooltip' => 'You do not have permission to sync policies.',
'capture_snapshot_action' => 'Capture snapshot',
'capture_snapshot_modal_heading' => 'Capture snapshot now',
'capture_snapshot_modal_subheading' => 'This queues a background job that captures the latest configuration for the current environment and stores a new policy version.',
'capture_snapshot_include_assignments' => 'Include assignments',
'capture_snapshot_include_assignments_helper' => 'Captures assignment include/exclude targeting and filters.',
'capture_snapshot_include_scope_tags' => 'Include scope tags',
'capture_snapshot_include_scope_tags_helper' => 'Captures policy scope tag IDs.',
'capture_snapshot_unavailable_title' => 'Snapshot capture unavailable',
'capture_snapshot_in_progress_title' => 'Snapshot already in progress',
'capture_snapshot_in_progress_body' => 'An active run already exists for this policy. Opening run details.',
'capture_snapshot_permission_tooltip' => 'You do not have permission to capture policy snapshots.',
'visibility_source_unavailable_description' => 'The connected source did not return this policy or is currently unavailable. Historical restore remains available.',
'visibility_source_unavailable_backup_items' => 'The connected source did not return this policy or is currently unavailable. Historical backup items remain available for restore selection.',
'details_section' => 'Policy details',
'tab_general' => 'General',
'tab_json' => 'JSON',
'general_field_name' => 'Name',
'general_field_platforms' => 'Platforms',
'general_field_technologies' => 'Technologies',
'general_field_template_reference' => 'Template reference',
'general_field_setting_count' => 'Setting count',
'general_field_version' => 'Version',
'general_field_last_modified' => 'Last modified',
'general_field_created' => 'Created',
'general_field_description' => 'Description',
'general_empty_state' => 'No general metadata available.',
'general_fallback_field' => 'Field',
'template_fallback' => 'Template',
'settings_empty_state' => 'No policy snapshot available yet.',
'settings_empty_state_helper' => 'This policy has been inventoried but no configuration snapshot has been captured yet.',
'snapshot_metadata_only_helper' => 'Graph returned :status for this policy type. Only local metadata was saved; settings and restore are unavailable until Graph works again.',
'graph_error_fallback' => 'an error',
'snapshot_json_section' => 'Policy snapshot (JSON)',
'payload_size' => 'Payload size',
'large_payload_warning' => 'Large payload (:size KB) - may impact performance',
'settings_available' => 'Available',
'settings_missing' => 'Missing',
'filter_active' => 'Active',
'filter_ignored' => 'Ignored locally',
'filter_source_unavailable' => 'Source unavailable',
'filter_all' => 'All',
'export_to_backup' => 'Export to backup',
'current_backup_unavailable' => 'Current backup unavailable',
'restore_action' => 'Restore',
'restore_bulk_action' => 'Restore policies',
'restore_permission_tooltip' => 'You do not have permission to restore policies.',
'policy_restored' => 'Policy restored',
'ignore_action' => 'Ignore',
'ignore_bulk_action' => 'Ignore policies',
'ignore_permission_tooltip' => 'You do not have permission to ignore policies.',
'policy_ignored' => 'Policy ignored',
'empty_state_heading' => 'No policies in inventory yet',
'empty_state_description' => 'Run a sync to build this environment\'s policy inventory, including versions, restore readiness, and governance evidence.',
'delete_queued_body' => 'Queued deletion for :count policies.',
],
'versions' => [
'backup_quality_section' => 'Backup quality',
'related_context_section' => 'Related context',
'diff_tab' => 'Diff',
'backup_quality' => 'Backup quality',
'snapshot_mode_full' => 'Full',
'snapshot_mode_metadata_only' => 'Metadata only',
'assignment_quality' => 'Assignment quality',
'next_action' => 'Next action',
'integrity_note' => 'Integrity note',
'boundary' => 'Boundary',
'quality_highlight_metadata_only' => 'Metadata only',
'quality_highlight_assignment_fetch_failed' => 'Assignment fetch failed',
'quality_highlight_assignments_captured_separately' => 'Assignments captured separately',
'quality_highlight_orphaned_assignments' => 'Orphaned assignments',
'quality_highlight_integrity_warning' => 'Integrity warning',
'quality_highlight_unknown_quality' => 'Unknown quality',
'compact_summary_full_payload' => 'Full payload',
'compact_summary_unknown_quality' => 'Unknown quality',
'compact_summary_no_degradations_detected' => 'No degradations detected',
'summary_full_no_degradations' => 'No degradations were detected from the captured snapshot and assignment metadata.',
'summary_unknown_quality' => 'Quality is unknown because this record lacks enough completeness metadata to justify a stronger claim.',
'summary_no_degradations' => 'No degradations were detected.',
'next_action_open_version_detail' => 'Open the version detail if you need raw settings or diff context.',
'next_action_prefer_stronger_version' => 'Prefer a stronger version or inspect the version detail before restore.',
'raw_diff_advanced' => 'Raw diff (advanced)',
'prune_versions' => 'Prune versions',
'prune_modal_description' => 'Only versions captured more than the specified retention window (in days) are eligible. Newer versions will be skipped.',
'retention_days' => 'Retention days',
'retention_days_helper' => 'Versions captured within the last N days will be skipped.',
'manage_permission_tooltip' => 'You do not have permission to manage policy versions.',
'restore_versions' => 'Restore versions',
'restore_versions_modal_heading' => 'Restore :count policy versions?',
'restore_versions_modal_description' => 'Archived versions will be restored back to the active list. Active versions will be skipped.',
'force_delete_versions' => 'Force delete versions',
'force_delete_versions_modal_heading' => 'Force delete :count policy versions?',
'force_delete_versions_modal_description' => 'This is permanent. Only archived versions will be permanently deleted; active versions will be skipped.',
'restore_via_wizard' => 'Restore via wizard',
'restore_via_wizard_modal_heading' => 'Restore version :version via wizard?',
'restore_via_wizard_modal_subheading' => 'Creates a 1-item backup set from this snapshot and opens the restore run wizard prefilled.',
'restore_run_permission_tooltip' => 'You do not have permission to create restore runs.',
'metadata_only_tooltip' => 'Disabled for metadata-only snapshots (Graph did not provide policy settings).',
'restore_disabled_metadata_title' => 'Restore disabled for metadata-only snapshot',
'restore_disabled_metadata_body' => 'This snapshot only contains metadata; Graph did not provide policy settings to restore.',
'different_tenant_title' => 'Policy version belongs to a different environment',
'missing_policy_title' => 'Policy could not be found for this version',
'backup_set_name' => 'Policy version restore - :policy - v:version',
'archive' => 'Archive',
'archived_title' => 'Policy version archived',
'force_delete' => 'Force delete',
'force_deleted_title' => 'Policy version permanently deleted',
'restored_title' => 'Policy version restored',
'empty_state_heading' => 'No policy versions',
'empty_state_description' => 'Capture or sync policy snapshots to build a version history.',
'open_backup_sets' => 'Open backup sets',
'related_entry_current_policy_version' => 'Current policy version',
'related_entry_policy' => 'Policy',
'related_entry_policy_version' => 'Policy version',
'related_action_view_policy' => 'View policy',
'related_action_view_policy_version' => 'View policy version',
'reference_policy_number' => 'Policy #:id',
'reference_version_number' => 'Version :version',
'related_record_fallback' => 'Open related record',
'assignment_fetch_failed_orphaned' => 'Assignment fetch failed and orphaned targets were detected.',
'assignment_fetch_failed' => 'Assignment fetch failed during capture.',
'assignment_orphaned' => 'Orphaned assignment targets were detected.',
'assignment_no_issues' => 'No assignment issues were detected from captured metadata.',
'fallback_display_name' => 'Version :version',
],
'relation' => [
'restore_to_microsoft_intune' => 'Restore to environment',
'restore_heading' => 'Restore version :version to environment?',
'restore_subheading' => 'Creates a restore run for the current environment using this policy version snapshot.',
'missing_context_title' => 'Missing tenant or user context.',
'restore_run_failed_title' => 'Restore run failed to start',
'restore_run_started_title' => 'Restore run started',
'no_versions_captured' => 'No versions captured',
'no_versions_captured_description' => 'Capture or sync this policy again to create version history entries.',
],
'badges' => [
'active' => 'Active',
'ignored_locally' => 'Ignored locally',
'source_unavailable' => 'Source unavailable',
'ignored_source_unavailable' => 'Ignored + source unavailable',
],
'taxonomy' => [
'policies' => 'Policies',
],
],
'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.',
],
];