528 lines
34 KiB
PHP
528 lines
34 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
return [
|
|
'locales' => [
|
|
'en' => 'English',
|
|
'de' => 'German',
|
|
],
|
|
'source' => [
|
|
'explicit_override' => 'session override',
|
|
'user_preference' => 'personal preference',
|
|
'workspace_default' => 'workspace default',
|
|
'workspace_override' => 'workspace override',
|
|
'system_default' => 'system default',
|
|
],
|
|
'shell' => [
|
|
'language' => 'Language',
|
|
'current_language' => 'Current language',
|
|
'language_source' => 'Source: :source',
|
|
'temporary_override' => 'Temporary override',
|
|
'switch_language' => 'Switch language',
|
|
'clear_override' => 'Use inherited language',
|
|
'personal_preference' => 'Personal preference',
|
|
'save_preference' => 'Save preference',
|
|
'inherit_workspace' => 'Use workspace default',
|
|
'workspace' => 'Workspace',
|
|
'choose_workspace' => 'Choose workspace',
|
|
'switch_workspace' => 'Switch workspace',
|
|
'workspace_home' => 'Workspace Home',
|
|
'tenant_scope' => 'Tenant scope',
|
|
'select_tenant' => 'Select tenant',
|
|
'selected_tenant' => 'Selected tenant',
|
|
'no_tenant_selected' => 'No tenant selected',
|
|
'switch_tenant' => 'Switch tenant',
|
|
'clear_tenant_scope' => 'Clear tenant scope',
|
|
'context_unavailable' => 'Context unavailable',
|
|
'context_unavailable_workspace' => 'The requested scope could not be restored. The shell is showing a valid workspace state instead.',
|
|
'context_unavailable_no_workspace' => 'Choose a workspace to continue with a valid admin context.',
|
|
'no_active_tenants' => 'No active tenants are available for the standard operating context in this workspace.',
|
|
'view_managed_tenants' => 'View managed tenants',
|
|
'workspace_wide_available' => 'No tenant selected. Workspace-wide pages remain available, and choosing a tenant only sets the normal active operating context.',
|
|
'search_tenants' => 'Search tenants...',
|
|
'choose_workspace_first' => 'Choose a workspace first.',
|
|
],
|
|
'workspace' => [
|
|
'title' => 'Workspace settings',
|
|
'save' => 'Save',
|
|
'reset' => 'Reset',
|
|
'no_manage_permission' => 'You do not have permission to manage workspace settings.',
|
|
'no_workspace_override' => 'No workspace override to reset.',
|
|
'last_modified_by' => ':description - Last modified by :user, :time.',
|
|
'section' => 'Localization settings',
|
|
'section_description' => 'Workspace default used by users without a personal language preference.',
|
|
'default_locale_label' => 'Default language',
|
|
'default_locale_placeholder' => 'Unset (uses system default)',
|
|
'default_locale_helper_unset' => 'Unset. Effective language: :locale (:source).',
|
|
'default_locale_helper_set' => 'Effective language: :locale.',
|
|
],
|
|
'auth' => [
|
|
'microsoft_not_configured' => 'Microsoft sign-in is not configured.',
|
|
'sign_in_microsoft' => 'Sign in with Microsoft',
|
|
'tenant_admin_membership_required' => 'Tenant Admin access requires a tenant membership.',
|
|
],
|
|
'navigation' => [
|
|
'findings' => 'Findings',
|
|
'settings' => 'Settings',
|
|
'integrations' => 'Integrations',
|
|
'manage_workspaces' => 'Manage workspaces',
|
|
'operations' => 'Operations',
|
|
'audit_log' => 'Audit Log',
|
|
'alerts' => 'Alerts',
|
|
'governance' => 'Governance',
|
|
'monitoring' => 'Monitoring',
|
|
'dashboard' => 'Dashboard',
|
|
],
|
|
'dashboard' => [
|
|
'tenant_title' => 'Tenant dashboard',
|
|
'system_title' => 'System dashboard',
|
|
'request_support' => 'Request support',
|
|
'support_request_heading' => 'Request support',
|
|
'support_request_description' => 'Share a concise summary and TenantAtlas will attach redacted context from existing records.',
|
|
'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 tenant context from existing records.',
|
|
'close' => 'Close',
|
|
'time_window' => 'Time window',
|
|
'window' => 'Window',
|
|
'enter_break_glass' => 'Enter break-glass mode',
|
|
'exit_break_glass' => 'Exit break-glass',
|
|
'recovery_mode_enabled' => 'Recovery mode enabled',
|
|
'recovery_mode_ended' => 'Recovery mode ended',
|
|
],
|
|
'review' => [
|
|
'reporting' => 'Reporting',
|
|
'customer_reviews' => 'Customer reviews',
|
|
'customer_review_workspace' => 'Customer Review Workspace',
|
|
'customer_safe_review_workspace' => 'Customer-safe governance package index',
|
|
'customer_workspace_intro' => 'Review the executive-ready governance package status for each entitled tenant and open the customer-safe detail when follow-up is needed.',
|
|
'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' => 'This workspace summarizes current review evidence for service delivery. It does not replace a formal audit opinion, certification, or legal attestation.',
|
|
'reviews' => 'Reviews',
|
|
'clear_filters' => 'Clear filters',
|
|
'tenant' => 'Tenant',
|
|
'latest_review' => 'Latest review',
|
|
'review_status' => 'Review status',
|
|
'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',
|
|
'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',
|
|
'accepted_risks' => 'Accepted risks',
|
|
'evidence_proof' => 'Evidence proof',
|
|
'evidence_status' => 'Evidence',
|
|
'published' => 'Published',
|
|
'review_pack' => 'Review pack',
|
|
'open_latest_review' => 'Open latest review',
|
|
'open' => 'Open',
|
|
'open_review' => 'Open review',
|
|
'last_review' => 'Last review',
|
|
'primary_action' => 'Primary action',
|
|
'download_review_pack' => 'Download review pack',
|
|
'download_current_review_pack' => 'Download current review pack',
|
|
'download_governance_package' => 'Download governance package',
|
|
'governance_package' => 'Governance package',
|
|
'governance_decisions' => 'Governance decisions',
|
|
'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.',
|
|
'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 tenants match this view',
|
|
'no_released_customer_reviews' => 'No released customer reviews match this view',
|
|
'no_released_customer_reviews_description' => 'Publish a tenant review before it appears in the customer-safe workspace.',
|
|
'clear_filters_description' => 'Clear the current filters to return to the full customer review workspace for your entitled tenants.',
|
|
'adjust_filters_description' => 'Adjust filters to return to the full customer review workspace for your entitled tenants.',
|
|
'no_published_review' => 'No published review',
|
|
'no_published_review_available' => 'No published review available yet',
|
|
'no_findings_recorded' => 'No findings recorded in the published review.',
|
|
'findings_count_summary' => ':count findings summarized in the published review.',
|
|
'findings_count_with_outcomes' => ':count findings. Terminal outcomes: :outcomes.',
|
|
'no_accepted_risks_recorded' => 'No accepted risks recorded.',
|
|
'accepted_risks_need_follow_up' => ':warnings accepted risks need governance follow-up (:total total).',
|
|
'accepted_risks_governed' => ':count accepted risks are governed.',
|
|
'accepted_risks_on_record' => ':count accepted risks are on record.',
|
|
'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',
|
|
'partial' => 'Partial',
|
|
'blocked' => 'Blocked',
|
|
'expired' => 'Expired',
|
|
'restricted' => 'Restricted',
|
|
'review_pack_available' => 'Current review pack available',
|
|
'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',
|
|
'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',
|
|
'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.',
|
|
'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',
|
|
'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_tenant_reviews_yet' => 'No tenant reviews yet',
|
|
'create_first_review_description' => 'Create the first review from an anchored evidence snapshot to start the recurring review history for this tenant.',
|
|
'create_first_review' => 'Create first review',
|
|
'create_review' => 'Create review',
|
|
'evidence_basis' => 'Evidence basis',
|
|
'evidence_basis_helper' => 'Choose the anchored evidence snapshot for this review.',
|
|
'unable_create_missing_context' => 'Unable to create review - missing context.',
|
|
'select_valid_evidence_snapshot' => 'Select a valid evidence snapshot.',
|
|
'unable_create_review' => 'Unable to create review',
|
|
'review_already_available' => 'Review already available',
|
|
'review_already_available_body' => 'A matching mutable review already exists for this evidence basis.',
|
|
'view_review' => 'View review',
|
|
'open_operation' => 'Open operation',
|
|
'review_composing_background' => 'The review is being composed in the background.',
|
|
'unable_export_missing_context' => 'Unable to export review - missing context.',
|
|
'export_already_queued_body' => 'An executive pack export is already queued or running for this review.',
|
|
'executive_pack_export_unavailable' => 'Executive pack export unavailable',
|
|
'unable_export_executive_pack' => 'Unable to export executive pack',
|
|
'executive_pack_already_available' => 'Executive pack already available',
|
|
'executive_pack_already_available_body' => 'A matching executive pack already exists for this review.',
|
|
'view_pack' => 'View pack',
|
|
'executive_pack_generating_background' => 'The executive pack is being generated in the background.',
|
|
'review_explanation' => 'Review explanation',
|
|
'reason_owner' => 'Reason owner',
|
|
'platform_core' => 'Platform core',
|
|
'platform_reason_family' => 'Platform reason family',
|
|
'compatibility' => 'Compatibility',
|
|
'highlights' => 'Highlights',
|
|
'next_actions' => 'Next actions',
|
|
'related_context' => 'Related context',
|
|
'publication_readiness' => 'Publication readiness',
|
|
'ready_for_publication' => 'This review is ready for publication and executive-pack export.',
|
|
'internal_only' => 'This review is currently safe for internal use only.',
|
|
'needs_follow_up' => 'This review still needs follow-up before publication.',
|
|
'key_entries' => 'Key entries',
|
|
'entry' => 'Entry',
|
|
'follow_up' => 'Follow-up',
|
|
'diagnostics' => 'Diagnostics',
|
|
'result_meaning' => 'Result meaning',
|
|
'result_trust' => 'Result trust',
|
|
'artifact_truth' => 'Artifact truth',
|
|
'no_action_needed' => 'No action needed',
|
|
'count' => 'Count',
|
|
'guidance' => 'Guidance',
|
|
'findings' => 'Findings',
|
|
'reports' => 'Reports',
|
|
'operations' => 'Operations',
|
|
'pending_verification' => 'Pending verification',
|
|
'verified_cleared' => 'Verified cleared',
|
|
'terminal_outcomes' => 'Terminal outcomes',
|
|
'pending' => 'Pending',
|
|
'operation' => 'Operation',
|
|
'operation_description' => 'Inspect the latest review composition or refresh run.',
|
|
'executive_pack' => 'Executive pack',
|
|
'view_executive_pack' => 'View executive pack',
|
|
'executive_pack_description' => 'Open the current export that belongs to this review.',
|
|
'customer_workspace' => 'Customer workspace',
|
|
'open_customer_workspace' => 'Open customer workspace',
|
|
'customer_workspace_description' => 'Open the customer-safe review workspace prefiltered to this tenant.',
|
|
'view_evidence_snapshot' => 'View evidence snapshot',
|
|
'evidence_snapshot_description' => 'Return to the evidence basis behind this review.',
|
|
],
|
|
'findings' => [
|
|
'all' => 'All',
|
|
'needs_action' => 'Needs action',
|
|
'overdue' => 'Overdue',
|
|
'risk_accepted' => 'Risk accepted',
|
|
'resolved' => 'Resolved',
|
|
'actions' => 'Actions',
|
|
'open_approval_queue' => 'Open approval queue',
|
|
],
|
|
'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 tenant.',
|
|
'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 fetches the latest configuration from Microsoft Graph 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 tenant\'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 tenant',
|
|
'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 Microsoft Intune',
|
|
'restore_heading' => 'Restore version :version to Microsoft Intune?',
|
|
'restore_subheading' => 'Creates a restore run 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.',
|
|
],
|
|
];
|