<?php
declare(strict_types=1);

return [
    'app' => [
        'name' => 'Quaeriva',
    ],
    'install' => [
        'language_name' => 'English', 'direction' => 'ltr',
        'title' => 'Quaeriva setup', 'intro' => 'Configure the database and create the first administrator.',
        'requirements' => 'Requirements', 'database' => 'Database', 'admin' => 'Administrator',
        'host' => 'Host', 'port' => 'Port', 'database_name' => 'Database name', 'username' => 'Username',
        'password' => 'Password', 'admin_name' => 'Admin name', 'admin_email' => 'Admin email',
        'admin_password' => 'Admin password', 'language' => 'Language', 'submit' => 'Install Quaeriva',
        'locked' => 'This installation is already locked. No files or database records were overwritten.',
        'invalid_lock' => 'A lock file exists but is invalid. Inspect it before removing it manually.',
        'success' => 'Installation completed. The installer is now locked; protect the config and installer paths.',
        'success_title' => 'Your site is ready.', 'open_site' => 'Open your site', 'open_admin' => 'Sign in to the admin panel', 'remove_installer' => 'Delete the install/ directory from the server now. It is locked and cannot run again, but removing it leaves nothing to probe.',
        'failed' => 'Installation could not be completed. Review the highlighted fields and requirements.',
        'switch_ar' => 'العربية', 'switch_en' => 'English', 'yes' => 'OK', 'no' => 'Missing',
        'csrf' => 'The form expired. Reload the page and try again.', 'seed_starter_content' => 'Seed starter categories',
        'site_name' => 'Site name', 'site_description' => 'Site description', 'site_section' => 'Your site', 'site_description_hint' => 'One or two sentences. Used in search results and link previews. You can change it later.',
        'app_url' => 'Public site URL', 'app_url_hint' => 'The trusted HTTPS origin only, for example https://community.example.com. Site folders belong in the Site path field.',
        'site_path' => 'Site path', 'site_path_hint' => 'The URL folder the site is served from. Leave empty if it is the domain root.',
        'admin_path' => 'Admin panel path', 'admin_path_hint' => 'The panel will be at this URL segment. Changing it from the default keeps the panel off the one path scanners try first.',
    ],
    'common' => [
        'primary_navigation' => 'Primary navigation',
        'scroll_to_top' => 'Back to top',
        'author' => 'Author',
        'reading_minutes' => 'min read',
        'minutes' => 'minutes',
        'cancel' => 'Cancel',
        'search' => 'Search',
        'votes' => 'votes',
        'search_placeholder' => 'Search questions...',
        'search_submit' => 'Search now',
        'language' => 'Language',
        'apply_language' => 'Apply',
        'arabic' => 'Arabic',
        'english' => 'English',
        'menu' => 'Menu',
        'open_menu' => 'Open menu',
        'close_menu' => 'Close menu',
        'skip_to_content' => 'Skip to content',
        'home' => 'Home',
        'browse_questions' => 'Browse questions',
        'sign_in' => 'Sign in',
        'switch_to' => 'Switch to :language',
        'loading' => 'Loading',
        'error' => 'Something went wrong',
        'required' => 'Required',
        'submit' => 'Submit',
        'create' => 'Create',
        'save' => 'Save',
        'back_home' => 'Back home',
        'back' => 'Back',
        'not_found' => 'Page not found',
        'not_found_hint' => 'The link you opened is unavailable or has changed.',
        'database_unavailable' => 'The interface is ready; questions will appear when the database is connected.',
        'empty_questions' => 'No published questions yet',
        'empty_questions_hint' => 'Be the first to ask a clear question that helps the community.',
        'no_search_results' => 'No matching results',
        'question_reference' => 'Question reference',
        'views' => 'views',
        'questions' => 'questions',
        'answers' => 'answers',
        'users' => 'users',
        'asked_by' => 'Asked by :name',
        'anonymous' => 'Anonymous user',
        'time_just_now' => 'just now',
        'time_minutes_ago' => ':count minutes ago',
        'time_minutes_ago_one' => '1 minute ago',
        'time_minutes_ago_two' => '2 minutes ago',
        'time_minutes_ago_few' => ':count minutes ago',
        'time_hours_ago' => ':count hours ago',
        'time_hours_ago_one' => '1 hour ago',
        'time_hours_ago_two' => '2 hours ago',
        'time_hours_ago_few' => ':count hours ago',
        'time_days_ago' => ':count days ago',
        'time_days_ago_one' => '1 day ago',
        'time_days_ago_two' => '2 days ago',
        'time_days_ago_few' => ':count days ago',
        'question' => 'Question',
        'breadcrumb' => 'Breadcrumb',
        'footer_note' => 'An open space for useful questions and practical answers.',
    ],
    'search' => [
        'results_for' => 'Search results for: :query',
        'no_results' => 'No matching results.',
        'no_results_hint' => 'Try fewer or broader words, or browse the categories.',
        'eyebrow' => 'Discovery', 'title' => 'Search questions', 'description' => 'Search published questions and narrow the results by category, tag, answer status, date, member, or content language.',
        'results' => 'results', 'category' => 'Category', 'tag' => 'Tag', 'answered' => 'Answer status', 'date' => 'Date', 'member' => 'Member username', 'content_language' => 'Content language', 'any' => 'Any', 'any_time' => 'Any time',
        'answered_only' => 'Answered', 'unanswered_only' => 'Unanswered', 'last_7_days' => 'Last 7 days', 'last_30_days' => 'Last 30 days', 'last_year' => 'Last year', 'clear' => 'Clear filters', 'try_filters' => 'Try a broader phrase or clear one of the filters.', 'pagination' => 'Search result pages',
    ],
    'validation' => [
        'required' => ':attribute is required',
    ],
    'content' => [
        'min_length_question_title' => 'Question title must be at least :min characters.',
        'max_length_question_title' => 'Question title cannot exceed :max characters.',
        'min_length_question_body' => 'Question body must be at least :min characters.',
        'max_length_question_body' => 'Question body cannot exceed :max characters.',
        'min_length_answer' => 'Answer must be at least :min characters.',
        'max_length_answer' => 'Answer cannot exceed :max characters.',
        'min_length_comment' => 'Comment must be at least :min characters.',
        'max_length_comment' => 'Comment cannot exceed :max characters.',
        'tags_range' => 'Number of tags must be between :min and :max.',
        'comment_max_links' => 'A comment may contain at most :max links.',
        'tag_name_length' => 'Tag name must be between :min and :max characters.',
        'banned_word' => 'Your text contains a prohibited word (:word).',
        'banned_domain' => 'Your text contains a prohibited domain (:domain).',
        'spam_rejected' => 'This submission was blocked by the anti-spam safeguards. Review the text and try again later.',
        'moderation_pending' => 'Your contribution was received and is waiting for moderation.',
    ],
    'tags' => [
        'unsupported_characters' => 'Tag name contains unsupported characters.',
        'no_url' => 'A tag name cannot be a URL.',
    ],
    'taxonomy' => [
        'type_invalid' => 'The taxonomy type is invalid.', 'question_invalid' => 'A valid question is required.', 'tags_not_found' => 'One or more selected tags do not exist.', 'locale_invalid' => 'The selected content language is invalid.', 'locale_not_enabled' => 'The selected content language is not enabled.',
    ],
    'topics' => [
        'empty_hint' => 'Start the first discussion so new members have somewhere to talk.',
        'login_to_comment' => 'Sign in to join the discussion.',
        'comment_submit' => 'Post comment',
        'comments_heading' => 'Comments',
        'empty_title' => 'No discussions yet',
        'eyebrow' => 'Community discussions', 'nav' => 'Topics', 'title' => 'Topics', 'intro' => 'Lightweight discussions for announcements, ideas, and practical community updates.', 'start' => 'Start a topic', 'start_intro' => 'Share a focused discussion with the community.', 'create' => 'Publish topic', 'browse' => 'Browse topics', 'latest' => 'Latest topics',
        'title_label' => 'Topic title', 'body_label' => 'Topic details', 'category_label' => 'Category', 'locale_label' => 'Content language', 'kind_label' => 'Topic kind', 'discussion' => 'Discussion', 'announcement' => 'Announcement', 'announcement_badge' => 'Announcement', 'pinned' => 'Pinned', 'locked' => 'Locked', 'locked_hint' => 'This topic is locked and no longer accepts comments.',
        'comments' => 'comments', 'comment' => 'Comment', 'follow' => 'Follow discussion', 'unfollow' => 'Unfollow', 'follow_success' => 'You are now following this discussion.', 'unfollow_success' => 'You stopped following this discussion.', 'follow_error' => 'The discussion follow state could not be changed.', 'comment_count' => ':count comments', 'comment_placeholder' => 'Add a short, useful comment...', 'add_comment' => 'Add a comment', 'no_comments' => 'No comments yet.', 'actions' => 'Topic actions', 'report' => 'Report topic', 'report_done' => 'Reported', 'report_success' => 'Report submitted.', 'report_error' => 'Could not submit the report.', 'comment_success' => 'Comment added.', 'submission_received' => 'Your discussion was received and is waiting for moderation.', 'comment_pending' => 'Your comment is waiting for moderation.', 'comment_error' => 'Could not add the comment.',
        'filter_all' => 'All', 'filter_questions' => 'Questions', 'filter_topics' => 'Topics', 'search' => 'Search', 'search_placeholder' => 'Search topics...', 'filter_category' => 'Category', 'filter_locale' => 'Language', 'filter_kind' => 'Kind', 'all_categories' => 'All categories', 'all_locales' => 'All languages', 'all_kinds' => 'All kinds', 'no_topics' => 'No topics found', 'no_topics_hint' => 'Start a discussion to give the community a useful place to share.', 'pagination' => 'Topic pages', 'page_summary' => 'Page :page of :pages', 'previous_page' => 'Previous', 'next_page' => 'Next', 'created' => 'Topic published.',
        'title_required' => 'A topic title is required.', 'body_required' => 'Topic details are required.', 'body_invalid' => 'Topic details could not be validated.', 'invalid_kind' => 'The topic kind is invalid.', 'invalid_status' => 'The topic status is invalid.', 'announcement_forbidden' => 'Only moderators and administrators can publish announcements.', 'active_user_required' => 'An active account is required.', 'moderator_required' => 'Moderator permission is required.', 'not_found' => 'Topic not found.', 'edit_forbidden' => 'You cannot edit this topic.', 'locale_invalid' => 'The topic language is invalid.', 'locale_not_enabled' => 'The topic language is not enabled.', 'category_not_found' => 'The selected category was not found.', 'category_locale' => 'The category language must match the topic language.', 'save_error' => 'Could not save the topic.', 'rate_limited' => 'You have reached the posting limit. Try again later.',
    ],
    'questions' => [
        'ask' => 'Ask a question',
        'title' => 'Question title',
        'body' => 'Question details',
        'title_placeholder' => 'Example: How can I renew my passport?',
        'body_placeholder' => 'Add the details that will help others understand your question.',
        'ask_intro' => 'Write a clear question that helps the community.',
        'taxonomy_unavailable' => 'Some categories or tags are unavailable because their content language is not enabled for new questions on this site.',
        'content_language' => 'Question language',
        'tags_search_placeholder' => 'Search or create a tag, then press Enter',
        'tags_create_failed' => 'Could not create this tag. Try again.',
        'tags_create_rate_limited' => 'You have reached the new-tag limit for now. Try again later.',
        'tags_max' => 'A question may have at most :count tags.',
        'title_required' => 'Question title is required.',
        'body_required' => 'Content body is required.',
        'actions' => 'Question actions',
        'share' => 'Share',
        'latest' => 'Latest questions',
        'all' => 'All questions',
        'not_found' => 'We could not find this question',
        'not_found_hint' => 'The question may not be published yet, or the link may be incorrect.',
        'no_answers' => 'No answers yet',
        'answer_count' => ':count answers',
        'best_answer' => 'Best answer',
        'answer_prompt' => 'Add your answer',
        'answer_body' => 'Answer text',
        'answer_placeholder' => 'Write a useful, direct answer...',
        'answer_submit' => 'Post answer',
        'login_to_answer' => 'Sign in first to write an answer. You can read questions and answers as a guest.',
        'answer_success' => 'Your answer was posted successfully.',
        'answer_pending' => 'Your answer was received and is waiting for moderation.', 'comment_pending' => 'Your comment was received and is waiting for moderation.',
        'answer_error' => 'We could not post the answer. Check the text and try again.', 'answers_pagination' => 'Answer pages', 'answers_page_summary' => 'Page :page of :pages', 'previous_page' => 'Previous', 'next_page' => 'Next',
        'vote_question' => 'Vote on this question',
        'vote_up' => 'Useful',
        'vote_down' => 'Not useful',
        'login_to_vote' => 'Sign in to vote',
        'vote_success' => 'Your vote was recorded.',
        'vote_removed' => 'Your vote was removed.',
        'duplicate_post' => 'You recently submitted this exact content. Edit it instead of posting a duplicate.',
        'vote_error' => 'We could not record the vote, or you have already voted on this question.',
        'submission_received' => 'Your question was received and will appear after review when moderation is required.',
        'submit_success' => 'Question submitted successfully: :status',
        'answers_count' => 'Found :count answers',
        'login_to_ask' => 'Sign in before submitting a new question.',
        'moderation_notice' => 'Your question may be reviewed before it becomes public, depending on site moderation settings.',
        'category' => 'Category',
        'no_category' => 'No category',
        'tags' => 'Tags',
        'tags_hint' => 'Choose up to 5 relevant tags for the question.',
        'tag_create_invalid' => 'Invalid tag details.',
        'ask_anonymously' => 'Hide my name from visitors when the question is published',
        'rate_limited' => 'You have reached the question submission limit for now. Try again later.',
        'submit_error' => 'We could not submit the question. Check the fields and try again.',
        'already_reported' => 'Already reported',
        'report_already_submitted' => 'You have already submitted a report for this item.',
        'report_answer' => 'Report this answer',
        'report_question' => 'Report this question',
        'report_comment' => 'Report comment',
        'report_reason' => 'Report reason',
        'report_reasons' => [
            'spam' => 'Spam or promotional content',
            'abuse' => 'Abusive or inappropriate content',
            'duplicate' => 'Duplicate question',
            'misleading' => 'Misleading content',
            'other' => 'Other reason',
        ],
        'report_notes' => 'Additional details (optional)',
        'report_submit' => 'Submit report',
        'report_success' => 'Your report was received and is available to moderators for review.',
        'report_error' => 'We could not submit the report. Try again.',
        'follow' => 'Follow question',
        'unfollow' => 'Unfollow',
        'follow_success' => 'You are now following this question and will receive relevant notifications.',
        'unfollow_success' => 'You stopped following this question.',
        'follow_error' => 'The follow state could not be changed. Please try again.',
        'login_to_follow' => 'Sign in to follow this question',
        'comments' => 'Comments',
        'comments_count' => 'Comments (:count)',
        'comment' => 'Add comment',
        'question_comment' => 'Comment on question',
        'answer_comment' => 'Comment on answer',
        'comment_placeholder' => 'Write a short clarification or request for more detail...',
        'no_comments' => 'No comments yet.',
        'login_to_comment' => 'Sign in to add a comment',
        'comment_success' => 'Your comment was published.',
        'comment_error' => 'The comment could not be published. Check the text and try again.',
        'comment_rate_limited' => 'You posted many comments in a short time. Please try again later.',
        'comment_duplicate' => 'You recently posted this exact comment. Edit it instead of repeating it.',
        'comment_too_many_links' => 'This comment contains too many links. The maximum is 3.',
        'similar_questions' => 'Your question may already exist',
        'similar_questions_hint' => 'Review these questions before submitting to avoid duplicates.', 'accept_answer' => 'Accept as best answer', 'accept_success' => 'The best answer was accepted.', 'accept_error' => 'This answer could not be accepted or you do not have permission.',
        'report_duplicate' => 'You have already submitted a report for this, which is currently under review.',
        'report_done' => 'Reported',
    ],
    'widgets' => [
        'html_block' => 'Custom Content',
        'categories' => 'Categories',
        'latest_questions' => 'Latest Questions',
        'latest_topics' => 'Latest Topics',
        'ad_slot' => 'Advertisement',
        'top_contributors' => 'Top contributors',
        'most_viewed' => 'Most viewed',
        'most_useful' => 'Most useful',
        'most_answered' => 'Most answered',
        'unanswered' => 'Questions needing answers',
        'active_tags' => 'Active tags',
        'trending' => 'Trending now',
        'types' => [
            'html_block' => 'HTML Block',
            'html_block_desc' => 'Arbitrary sanitized HTML content.',
            'latest_questions' => 'Latest Questions',
            'latest_questions_desc' => 'Recent questions list with optional category filter.',
            'latest_topics' => 'Latest Topics',
            'latest_topics_desc' => 'Recent published topics ordered by activity.',
            'categories' => 'Categories List',
            'categories_desc' => 'List of active categories with question counts.',
            'top_contributors' => 'Top Contributors',
            'top_contributors_desc' => 'Most active members by accepted answers and points.',
            'most_viewed' => 'Most Viewed Questions',
            'most_viewed_desc' => 'Questions sorted by total view count.',
            'most_useful' => 'Most Useful Questions',
            'most_useful_desc' => 'Questions sorted by positive net votes.',
            'most_answered' => 'Most Answered Questions',
            'most_answered_desc' => 'Questions with the highest answer count.',
            'unanswered' => 'Unanswered Questions',
            'unanswered_desc' => 'Questions that have not received any answers yet.',
            'active_tags' => 'Active Tags',
            'active_tags_desc' => 'Most popular tags used across published questions.',
            'trending' => 'Trending Questions',
            'trending_desc' => 'Questions calculated by recent activity weight.',
            'ad_slot' => 'Ad Slot',
            'ad_slot_desc' => 'Banner advertisement container.',
            'link_list' => 'Link List',
            'link_list_desc' => 'Curated list of navigation or external links.',
            'about_box' => 'About Box',
            'about_box_desc' => 'Site introduction card with action button.',
            'social_links' => 'Social Links',
            'social_links_desc' => 'Social media profile icons and links.',
            'cta_button' => 'Call to Action',
            'cta_button_desc' => 'Prominent action banner with button.',
            'site_stats' => 'Site Statistics',
            'site_stats_desc' => 'Public counts of questions, answers, and community members.',
            'category_questions' => 'Category Questions',
            'category_questions_desc' => 'Questions filtered by a specific category.',
            'search_box' => 'Search Box',
            'search_box_desc' => 'Inline question search form widget.',
            'image_banner' => 'Image Banner',
            'image_banner_desc' => 'Image banner with link and caption.',
            'text_block' => 'Text Block',
            'text_block_desc' => 'Formatted text block with automatic line breaks.',
        ],
    ],
    'home' => [
        'eyebrow' => 'A trusted questions and answers community',
        'title' => 'Ask clearly. Find an answer you can trust.',
        'intro' => 'A calm space for useful questions and practical answers in Arabic and English.',
        'ask_prompt' => 'Have a question? Start here.',
        'ask_prompt_hint' => 'Share the details that make a better answer possible.',
        'topics_prompt' => 'Have an idea to discuss?',
        'topics_prompt_hint' => 'Start a focused topic and invite the community to add useful context.',
    ],
    'form' => [
        'required_hint' => 'Fields marked required must be completed.',
        'demo_notice' => 'The form shell is ready; submission will be enabled with sign-in and service wiring in the next slice.',
    ],
    'errors' => [
        'method_not_allowed' => 'The requested method is not available for this route.',
    ],
    'auth' => [
        'login' => 'Log in',
        'logout' => 'Log out',
        'remember_me' => 'Remember me on this device for 30 days',
        'register' => 'Create account',
        'login_title' => 'Welcome back',
        'login_intro' => 'Sign in to answer questions, vote, and keep track of your contributions.',
        'register_title' => 'Create your :site account',
        'register_intro' => 'One account for participating in Arabic or English with both text directions supported.',
        'create_account' => 'Create a new account',
        'have_account' => 'Already have an account? Log in',
        'forgot_password' => 'Forgot your password?',
        'forgot_title' => 'Recover your password',
        'forgot_intro' => 'Enter your email and we will send recovery instructions when email delivery is enabled.',
        'send_reset' => 'Request recovery',
        'resend_verification' => 'Resend verification email', 'resend_title' => 'Resend email verification', 'resend_intro' => 'Enter your account email and we will send a fresh verification link.',
        'reset_password' => 'Set a new password',
        'reset_title' => 'Set a new password',
        'reset_token' => 'Recovery token',
        'new_password' => 'New password',
        'verify_success' => 'Your email address is verified.',
        'verify_success_hint' => 'You can now sign in and start participating.',
        'verify_failure' => 'We could not verify your email address.',
        'verify_failure_hint' => 'The link may have expired or already been used.',
        'registration_success_ready' => 'Your account was created. You can sign in now.',
        'registration_success' => 'Your account was created. Verify your email before signing in.',
        'registration_mail_failed' => 'Your account was created, but the verification email could not be delivered. You can resend it after fixing mail settings.', 'verification_resend_requested' => 'If the account is pending verification, a fresh email will be sent.',
        'reset_requested' => 'If that email is registered, recovery instructions will be sent.',
        'reset_success' => 'Your password was updated. You can sign in now.',
        'reset_invalid' => 'The recovery token is invalid or expired.',
        'invalid_credentials' => 'The email or password is incorrect, or the email is not verified yet.',
        'invalid_registration' => 'Check the name, email, and password. The password must be at least 8 characters.',
        'challenge_failed' => 'The anti-bot check could not be verified. Reload the page and try again.',
        'registration_failed' => 'We could not create the account right now. Try again.',
        'csrf_error' => 'This form has expired. Reload the page and try again.',
        'service_error' => 'The service is temporarily unavailable. Try again.',
        'rate_limited' => 'Too many account requests were sent in a short time. Please wait and try again.',
        'error' => 'The operation could not be completed',
        'registration_closed' => 'Registration is currently closed',
        'registration_closed_hint' => 'Administrators have temporarily disabled new account registration. Existing accounts can still sign in normally.',
        'validation_name_required' => 'Name is required.', 'validation_email_required' => 'Enter a valid email address.', 'validation_password_min' => 'Password must be at least 8 characters.', 'validation_email_exists' => 'An account with that email already exists.', 'authentication_required' => 'Sign in to continue.', 'account_inactive' => 'This account is not active.', 'active_user_required' => 'An active account is required.',
        'account' => 'Account', 'profile' => 'Profile',
        'profile_intro' => 'Your account and participation details on :site.',
        'name' => 'Name',
        'email' => 'Email',
        'password' => 'Password',
        'role' => 'Role',
        'points' => 'Points',
        'locale' => 'Preferred language',
    ],
    'system' => [
        'database_upgrade_title' => 'Database upgrade required',
        'database_upgrade_message' => 'This application build needs database changes that are not present yet. Apply the pending database upgrade, then retry the operation.',
        'database_upgrade_recommended' => 'Database upgrade available',
        'database_upgrade_recommended_message' => 'The current schema can run this build, but optional or compatibility migrations are still pending.',
        'database_upgrade_action' => 'Upgrade database now',
        'database_upgrade_pending' => 'Pending migrations',
        'database_upgrade_success' => 'Database upgrade completed successfully.',
        'database_upgrade_created_summary' => 'Database upgrade completed. Created :regions layout regions and :widgets default widgets.',
        'database_schema_status' => 'Database Schema Status',
        'database_migrations_applied' => ':count applied migrations',
        'database_migrations_pending' => ':count pending migrations: :list',
        'database_schema_all_applied' => 'All migrations are up to date.',
        'database_upgrade_failed' => 'The database upgrade could not be completed.',
        'error_reference' => 'Error reference: :reference',
        'database_upgrade_cli_hint' => 'You can also run php bin/migrate.php followed by php bin/doctor.php from the project root.',
    ],
    'maintenance' => [
        'title' => 'Site under maintenance',
        'message' => 'We are performing maintenance right now. Please try again shortly.',
    ],
    'contact' => [
        'nav' => 'Contact',
        'eyebrow' => 'Contact administration',
        'title' => 'Contact us',
        'intro' => 'Send a message to the site administrators. A reply may arrive by email.',
        'name' => 'Name',
        'email' => 'Email',
        'subject' => 'Subject',
        'message' => 'Message',
        'send' => 'Send message',
        'success' => 'Your message was sent successfully.',
        'error' => 'We could not send the message. Check the fields and try again.',
        'rate_limited' => 'Several messages were sent in a short time. Please try again later.',
        'validation_name' => 'Enter a name no longer than 120 characters.', 'validation_email' => 'Enter a valid email address.', 'validation_message' => 'Enter a message no longer than 5,000 characters.', 'validation_subject_too_long' => 'The subject is too long.',
    ],
    'notifications' => [
        'eyebrow' => 'Your account',
        'title' => 'Notifications',
        'intro' => 'Track answers and comments that matter to you and control how they are delivered.',
        'inbox' => 'Notification inbox',
        'empty' => 'No notifications yet.',
        'open' => 'Open',
        'mark_read' => 'Mark read',
        'preferences' => 'Notification preferences',
        'in_app' => 'In app',
        'email' => 'Email',
        'events' => ['new_answer' => 'New answer on a question I follow', 'new_comment' => 'New comment on a question or answer I follow', 'answer_accepted' => 'My answer was accepted as best', 'followed_question' => 'New question in a category or tag I follow'],
        'new_question_title' => 'New question awaiting review',
        'new_report_title' => 'New report requires review',
        'contact_message_title' => 'New contact message',
        'new_answer_title' => 'New answer',
        'new_comment_title' => 'New comment', 'answer_accepted_title' => 'Your answer was accepted', 'followed_question_title' => 'New question in a topic you follow',
        'telegram_token_missing' => 'Telegram bot token is not configured.',
        'telegram_token_invalid' => 'Telegram bot token format is invalid.',
        'telegram_chat_missing' => 'Telegram chat ID is not configured.',
        'telegram_chat_invalid' => 'Telegram chat ID format is invalid.',
        'telegram_curl_unavailable' => 'The server cannot send Telegram messages because cURL is unavailable.',
        'telegram_api_rejected' => 'Telegram rejected the message (HTTP :status).',
        'telegram_token_rejected' => 'Telegram rejected the bot token. Generate a new token with BotFather and save it again.',
        'telegram_forbidden' => 'Telegram forbade delivery to this chat. Verify the Chat ID, start the bot, and make sure it is a member or administrator of the group or channel.',
        'telegram_bad_request' => 'Telegram rejected the chat request. Verify the numeric Chat ID and that the bot can access that chat.',
        'telegram_transport' => 'The Telegram connection failed (HTTP :status).',
    ],
    'email' => [
        'verify_subject' => 'Verify your :site email',
        'verify_body' => "Open this link to verify your email:
:url

Verification token: :token",
        'reset_subject' => 'Reset your :site password',
        'reset_body' => "Open this link to set a new password:
:url

Reset token: :token",
    ],
    'editor' => [
        'image_uploading' => 'Uploading image…',
        'image_failed' => '[Image upload failed]',
        'bold' => 'Bold', 'italic' => 'Italic', 'heading' => 'Heading', 'list' => 'List', 'numbered_list' => 'Numbered list', 'quote' => 'Quote', 'code' => 'Inline code', 'code_block' => 'Code block', 'link' => 'Link',
        'markdown' => 'Markdown', 'link_url_prompt' => 'Enter a URL', 'invalid_link' => 'This link URL is not allowed.',
    ],
    'api' => [
        'route_not_found' => 'API route not found.',
        'method_not_allowed' => 'The request method is not allowed for this route.',
        'not_implemented' => 'This endpoint is not implemented yet.',
        'database_unavailable' => 'The service is temporarily unavailable.',
        'server_error' => 'An internal error occurred.',
        'question_not_found' => 'Question not found.',
        'database_upgrade_required' => 'The database must be upgraded before write operations can run.',
        'csrf_failed' => 'The browser request could not be verified.',
        'unauthorized' => 'A valid session or Bearer token is required.', 'forbidden_scope' => 'The API token does not have the required scope.', 'mutation_failed' => 'The operation could not be completed.', 'rate_limited' => 'The request rate limit was reached temporarily.',
    ],
    'taxonomy' => [
        'categories' => 'Categories', 'category' => 'Category', 'tag' => 'Tag', 'follow' => 'Follow', 'unfollow' => 'Unfollow',
        'login_to_follow' => 'Sign in to follow', 'empty' => 'No published questions here yet',
        'empty_hint' => 'Published questions connected to this section will appear here.',
        'questions_heading' => 'Questions (:count)', 'discussions_heading' => 'Discussions (:count)',
        'category_description' => 'Published questions in the :name category.', 'tag_description' => 'Published questions tagged :name.',
        'locale_invalid' => 'The selected content language is invalid.', 'locale_not_enabled' => 'The selected content language is not enabled.',
        'type_invalid' => 'The selected taxonomy type is invalid.', 'question_invalid' => 'A valid question is required.', 'tags_not_found' => 'One or more selected tags are not available.',
    ],
    'profile' => [
        'public_title' => 'Member profile', 'public_description' => ':name public profile and activity on :site.', 'settings_title' => 'Profile settings', 'settings_intro' => 'Edit your public name, username, bio, and optional avatar.',
        'display_name' => 'Display name', 'username' => 'Username', 'username_hint' => '3 to 40 letters or numbers; dots, underscores, and hyphens are allowed.', 'bio' => 'Bio', 'avatar_url' => 'Optional avatar URL', 'avatar_hint' => 'HTTP/HTTPS URL only. Leave blank to use a stable :site default avatar for your account.',
        'view_public' => 'View my public profile', 'saved' => 'Profile saved.', 'save_error' => 'The profile could not be saved. Check the username and fields.', 'activity' => 'Activity', 'questions' => 'Questions', 'answers' => 'Answers', 'accepted_answers' => 'Accepted answers', 'received_votes' => 'Useful votes', 'best_answers' => 'Best answers', 'no_questions' => 'No public questions yet.', 'no_answers' => 'No public answers yet.', 'joined' => 'Joined',
        'validation_name' => 'Enter a display name no longer than 100 characters.', 'validation_username' => 'Username must be 3–40 letters, numbers, dots, underscores, or hyphens.', 'validation_bio_too_long' => 'The bio is too long.', 'validation_avatar_url' => 'The avatar must use an HTTP or HTTPS URL.', 'load_failed' => 'The profile could not be loaded.', 'reload_failed' => 'The updated profile could not be reloaded.', 'username_in_use' => 'That username is already in use.',
    ],
    'api_tokens' => [
        'eyebrow' => 'API', 'title' => 'API tokens', 'intro' => 'Create scoped access tokens for apps and integrations. Raw tokens are never stored and are shown only once.', 'create' => 'Create token', 'label' => 'Device or integration label', 'label_placeholder' => 'Example: Mobile app', 'expires' => 'Expiry date (optional)', 'scopes' => 'Scopes', 'copy_once' => 'Copy this token now; it will not be shown again.', 'active' => 'Tokens', 'none' => 'No API tokens yet.', 'unnamed' => 'Unnamed token', 'last_used' => 'Last used', 'revoked' => 'Revoked', 'revoke' => 'Revoke token', 'created' => 'API token created.', 'revoked_notice' => 'API token revoked.', 'error' => 'API tokens could not be managed. Make sure migration 015 has run.',
        'validation_label_too_long' => 'The token label is too long.', 'validation_scope_required' => 'Select at least one API scope.', 'validation_expiry_invalid' => 'Enter a valid token expiry date.', 'validation_expiry_future' => 'The token expiry must be in the future.',
    ],
    'admin' => [
        'appearance_themes_note' => 'Choose the site structure. A theme changes page layout, not only colours.',
        'appearance_brand_mark' => 'Site identity',
        'appearance_brand_mark_note' => 'The name, logo, favicon, and how they appear in the header.',
        'appearance_group_identity' => 'Name and display',
        'appearance_group_logo' => 'Logo and favicon',
        'appearance_group_mobile' => 'Mobile navigation',
        'appearance_brand_text_hint' => 'Leave empty to derive the mark from the site name.',
        'appearance_mobile_bottom_nav' => 'Show a bottom navigation bar on phones',
        'appearance_mobile_bottom_nav_hint' => 'Appears on small touch screens only. Off by default, because some themes are designed around their own header.',
        'brand_mode' => [
            'logo_text' => 'Logo with site name',
            'logo_only' => 'Logo only',
            'text_only' => 'Text only',
        ],
        'brand_mode_hint' => [
            'logo_text' => 'The default: the image beside the visible name.',
            'logo_only' => 'The name is hidden visually but kept for screen readers and search engines.',
            'text_only' => 'The site name as text, with no image.',
        ],
        'appearance_brand_display_mode' => 'Brand display mode',
        'appearance_logo_remove' => 'Remove logo',
        'appearance_logo_upload' => 'Upload a logo',
        'appearance_favicon_upload' => 'Upload a favicon',
        'appearance_upload_hint' => 'PNG, JPG, GIF, WebP or ICO, up to 2 MB. An upload replaces the URL above.',
        'upload_failed' => 'The file could not be uploaded.',
        'upload_too_large' => 'The image is larger than the 2 MB limit.',
        'upload_invalid_image' => 'The file is not a valid image of an allowed type.',
        'theme_archetype' => [
            'orbit' => 'Community feed with vote rails',
            'nexus' => 'Dense technical Q&A',
            'hikaya' => 'Storytelling and publishing',
            'zenith' => 'Modern bento grid',
            'cortex' => 'High-density knowledge base',
            'rawy' => 'Warm editorial salon',
            'default' => 'Classic community layout',
        ],
        'theme_desc' => [
            'orbit' => 'Vertical vote rails, community badges, and a compact action bar.',
            'nexus' => 'Three metric boxes (votes, answers, views) and developer tag chips.',
            'hikaya' => 'Reading progress bar, reading-time estimate, and pull quotes.',
            'zenith' => 'Floating hero panel and accent-striped cards.',
            'cortex' => 'One-line scan rows with a compact metric rail.',
            'rawy' => 'Spacious avatar-first cards and earthy reading tones.',
            'default' => 'Balanced Q&A layout with an emerald palette and gold accents.',
        ],
        'theme_archetype_generic' => 'Theme layout',
        'theme_desc_generic' => 'Installed theme package.',
        'theme_profile_active_badge' => 'Active theme',
        'theme_profile_activate' => 'Activate',
        'language_mode_inactive_note' => 'These controls are inactive in single-language mode. Switch to multilingual mode first to use them.',
        'language_taxonomy_stranded' => ':categories categories and :tags tags use a locale other than :locale. Reassign them or re-enable their language before publishing new content.',
        'audit_action_unknown' => 'Administration change', 'audit_actions' => ['question_moderate' => 'Question moderation', 'question_seo_save' => 'Question SEO update', 'question_delete' => 'Question deletion', 'answer_best' => 'Best answer set', 'answer_unset_best' => 'Best answer removed', 'answer_delete' => 'Answer deletion', 'comment_status' => 'Comment status update', 'comment_delete' => 'Comment deletion', 'category_save' => 'Category saved', 'category_delete' => 'Category deletion', 'tag_save' => 'Tag saved', 'tag_delete' => 'Tag deletion', 'tag_merge' => 'Tags merged', 'user_create' => 'User created', 'user_update' => 'User updated', 'user_status' => 'User status update', 'user_verify' => 'Email verification update', 'user_delete' => 'User deletion', 'report_update' => 'Report update', 'contact_message_update' => 'Contact message update', 'notification_read' => 'Notification read', 'notifications_mark_all_read' => 'All notifications marked read', 'language_save' => 'Language saved', 'language_toggle' => 'Language availability changed', 'language_delete' => 'Language deletion', 'language_defaults_save' => 'Language defaults changed', 'translation_override_save' => 'Translation override saved', 'translation_override_delete' => 'Translation override removed', 'translation_pack_import' => 'Translation pack imported', 'layout_save' => 'Layout saved', 'layout_delete' => 'Layout deletion', 'section_save' => 'Layout section saved', 'section_delete' => 'Layout section deletion', 'widget_save' => 'Widget saved', 'widget_toggle' => 'Widget availability changed', 'widget_delete' => 'Widget deletion', 'ad_creative_save' => 'Advertisement saved', 'ad_creative_delete' => 'Advertisement deleted', 'widget_reorder' => 'Widgets reordered', 'menu_item_save' => 'Menu item saved', 'menu_item_delete' => 'Menu item deleted', 'ads_settings_save' => 'Advertising settings changed', 'custom_code_save' => 'Custom code saved', 'custom_code_delete' => 'Custom code deleted', 'custom_code_toggle' => 'Custom code status changed', 'plugin_toggle' => 'Plugin availability changed'],
        'title' => 'Admin dashboard',
        'eyebrow' => 'Administration',
        'subtitle' => 'Review content and manage :site settings safely.',
        'view_site' => 'View site',
        'saved' => 'The change was saved successfully.',
        'empty' => 'There are no records to show right now.',
        'operation_failed' => 'The operation could not be completed. Try again.',
        'validation_required' => 'Please complete the required fields.', 'validation_seo_too_long' => 'The SEO title or description is too long.', 'validation_site_description_too_long' => 'The site description is too long.', 'validation_maintenance_too_long' => 'The maintenance message is too long.', 'validation_language_pack_too_large' => 'The language pack exceeds the 2 MB limit.', 'custom_code_validation_name' => 'Enter a name for this custom-code snippet.', 'custom_code_validation_name_too_long' => 'The custom-code name is too long.', 'custom_code_validation_position' => 'The custom-code position is invalid.',
        'validation_admin_path_invalid' => 'The admin path may contain only letters, numbers, hyphens and underscores.', 'validation_admin_path_reserved' => 'That admin path collides with an existing route. Choose another.', 'validation_admin_path_unwritable' => 'The admin path could not be saved because .env is not writable. Set the project root to 755 and try again.',
        'validation_timezone_invalid' => 'The selected timezone is not valid.',
        'moderation_action_invalid' => 'The selected moderation action is invalid.', 'question_required' => 'A valid question is required.', 'answer_question_not_found' => 'The question for this answer was not found.',
        'validation_canonical_url_too_long' => 'The canonical URL is too long.', 'validation_canonical_url_invalid' => 'The canonical URL must be relative or a valid absolute URL.', 'validation_seo_index_invalid' => 'The selected SEO indexing mode is invalid.',
        'category_name_required' => 'Category name is required.', 'category_self_parent' => 'A category cannot be its own parent.', 'category_parent_locale_mismatch' => 'The category and its parent must use the same content language.', 'category_child_locale_conflict' => 'The category language cannot change while its children use another language.', 'category_cycle_existing' => 'The category hierarchy already contains a cycle.', 'category_cycle_selected' => 'The selected parent would create a category cycle.', 'category_parent_not_found' => 'The parent category was not found.',
        'tag_name_required' => 'Tag name is required.', 'tag_merge_distinct' => 'Choose two different tags to merge.', 'tag_merge_not_found' => 'The source or target tag was not found.', 'tag_merge_locale_mismatch' => 'Tags using different content languages cannot be merged.', 'tag_synonym_too_long' => 'A tag synonym is too long.', 'tag_synonyms_max' => 'A tag may have at most :count synonyms.', 'tag_synonym_duplicate' => 'A synonym is already assigned to another tag.',
        'user_credentials_invalid' => 'The user email or password is invalid.', 'user_role_status_invalid' => 'The user role or status is invalid.', 'password_min' => 'Password must be at least 8 characters.', 'user_status_invalid' => 'The user status is invalid.', 'user_not_found' => 'The user was not found.', 'final_admin_protected' => 'The final active administrator cannot be removed, demoted, suspended, or banned.',
        'comment_status_invalid' => 'The comment status is invalid.', 'report_status_invalid' => 'The report status is invalid.', 'contact_status_invalid' => 'The contact-message status is invalid.',
        'layout_name_required' => 'Layout name is required.', 'section_fields_required' => 'The section layout, key, and name are required.', 'section_required' => 'A layout section is required.',
        'widget_translation_locale_disabled' => 'The widget translation language is not enabled.', 'widget_not_found' => 'The widget was not found.', 'taxonomy_seo_too_long' => 'The taxonomy SEO fields are too long.', 'locale_invalid' => 'The selected language is invalid.', 'locale_not_enabled' => 'The selected language is not enabled.',
        'validation_question_prefix_invalid' => 'That URL prefix is invalid or reserved by another route on the site.',
        'validation_invalid' => 'The submitted data is invalid.', 'appearance_validation_theme' => 'The selected theme is not available or does not support both RTL and LTR.',
        'admin_only' => 'This action is available to administrators only.',
        'not_found' => 'The requested item was not found.',
        'plugin_not_found' => 'The requested plugin was not found.',
        'plugin_incompatible' => 'Incompatible with this Quaeriva version.',
        'plugin_requires' => 'Requires Quaeriva :version or newer.',
        'language_not_found' => 'Language not found.',
        'pages' => [
            'overview' => 'Overview',
            'questions' => 'Questions',
            'topics' => 'Topics',
            'answers' => 'Answers',
            'comments' => 'Comments',
            'categories' => 'Categories',
            'tags' => 'Tags',
            'users' => 'Users',
            'editorial' => 'Editorial seed content',
            'reports' => 'Reports',
            'messages' => 'Messages & contact',
            'notifications' => 'Notifications',
            'languages' => 'Languages',
            'plugins' => 'Plugins',
            'settings' => 'Settings',
            'system' => 'System',
            'appearance' => 'Appearance & themes',
            'widgets' => 'Widgets',
            'ads' => 'Advertising',
            'custom-code' => 'Custom code',
            'menus' => 'Navigation menus',
            'audit' => 'Audit log',
        ],
        'notification_types' => [
            'new_question' => 'New question',
            'new_answer' => 'New answer',
            'new_comment' => 'New comment',
            'new_report' => 'New report',
            'contact_message' => 'Contact message',
            'answer_accepted' => 'Accepted answer',
            'followed_question' => 'Followed topic question',
            'delivery_test' => 'Notification test',
        ],
        'question_moderation_modes' => [
            'all' => 'Require approval for all questions (Default)',
            'new_members' => 'Require approval for new members only',
            'none' => 'Instant publishing without review queue',
        ],
        'create_question_title' => 'Add new question',
        'create_topic_title' => 'Add new topic', 'topics_management_note' => 'Manage discussions, announcements, comments, and moderation state.',
        'queue_pending_questions' => 'Questions awaiting review',
        'queue_open_reports' => 'Open reports',
        'queue_contact_messages' => 'New contact messages',
        'queue_empty_questions' => 'No questions awaiting review.',
        'queue_empty_reports' => 'No open reports.',
        'queue_empty_messages' => 'No new contact messages.',
        'view_all' => 'View all',
        'plugins_title' => 'Plugins Manager',
        'plugins_note' => 'Extend and customize Quaeriva functionality securely.',
        'plugins_safe_mode_warning' => 'Safe Mode is active. All plugins are currently disabled for system recovery.',
        'no_plugins_found' => 'No plugins found in the plugins directory.',
        'plugin_author' => 'Author',
        'plugin_version' => 'Version',
        'plugin_core_hooks' => 'Core hooks',
        'plugin_hook_listeners' => 'Registered listeners',
        'plugin_loaded_count' => 'Loaded plugins',
        'plugin_hooks_contract_note' => 'Plugins run from the trusted filesystem boundary. Core hooks are versioned extension contracts and failing listeners are isolated and logged.',
        'slug_styles' => [
            'unicode' => 'Keep the original script — /q/ما-هي-أفضل-المواقع (recommended for Arabic)',
            'ascii' => 'Latin transliteration — /q/ma-hy-afdl-almwaqa',
        ],
        'font_stacks' => [
            'system' => 'System default (Fastest)',
            'inter' => 'Inter (Modern Latin & Clean UI)',
            'cairo' => 'Cairo (Contemporary Arabic & Latin)',
            'noto_sans' => 'Noto Sans (Clear & Balanced)',
            'noto_kufi' => 'Noto Kufi (Formal Modern Arabic)',
        ],
        'stats' => [
            'users' => 'Users', 'questions' => 'All questions', 'answers' => 'Answers', 'published' => 'Published questions',
            'pending' => 'Awaiting review', 'reports' => 'Open reports', 'categories' => 'Categories', 'tags' => 'Tags', 'topics' => 'Topics',
        ],
        'view_queue' => 'Open moderation queue', 'questions_count' => 'questions',
        'overview_hint' => 'Use the sections to manage content, accounts, settings, and widgets. Every mutation is protected by the admin session and CSRF.',
        'flash_sent' => 'Sent successfully.', 'flash_imported' => 'Imported successfully.', 'flash_deleted' => 'Deleted successfully.', 'filter_topic_status' => 'Topic status', 'filter_status' => 'Question status', 'filter_search' => 'Search', 'filter_category' => 'Category', 'filter_sort' => 'Sort by', 'filter_page_size' => 'Per page', 'notification_filter_all' => 'All notifications', 'notification_filter_unread' => 'Unread notifications', 'notification_filter_read' => 'Read notifications',
        'all_statuses' => 'All statuses', 'all_categories' => 'All categories', 'questions_total' => 'Total questions', 'questions_search_placeholder' => 'Search title or question body', 'questions_active_filters' => ':count active filters',
        'pagination' => ['label' => 'Questions pagination', 'first' => 'First', 'previous' => 'Previous', 'next' => 'Next', 'last' => 'Last', 'summary' => 'Showing :from–:to of :total questions'],
        'question_sort' => ['newest' => 'Newest first', 'oldest' => 'Oldest first', 'answers' => 'Most answers', 'votes' => 'Most votes', 'views' => 'Most views', 'title' => 'Title A–Z'],
        'filter' => 'Filter',
        'status' => [
            'pending' => 'Awaiting review', 'published' => 'Published', 'rejected' => 'Rejected', 'closed' => 'Closed', 'duplicate' => 'Duplicate', 'hidden' => 'Hidden', 'draft' => 'Draft',
        ],
        'table' => [
            'question' => 'Question', 'answer' => 'Answer', 'status' => 'Status', 'metrics' => 'Metrics', 'actions' => 'Actions',
        ],
        'delete_confirm' => 'Delete this item? This action cannot be undone.',
        'actions' => [
            'mark_all_read' => 'Mark all read',
            'create_question' => 'Create question',
            'handle' => 'Handle',
            'publish' => 'Publish', 'hide' => 'Hide', 'reject' => 'Reject', 'close' => 'Close', 'reopen' => 'Reopen', 'view' => 'View', 'accept' => 'Accept', 'unset_best' => 'Unset best', 'delete' => 'Delete', 'seo' => 'SEO', 'merge' => 'Merge', 'pin' => 'Pin', 'unpin' => 'Unpin', 'lock' => 'Lock', 'unlock' => 'Unlock',
            'create' => 'Create', 'save' => 'Save', 'edit' => 'Edit', 'import' => 'Import', 'export' => 'Export', 'cancel' => 'Cancel', 'enable' => 'Enable', 'disable' => 'Disable', 'apply' => 'Apply', 'translations' => 'Translations', 'reset' => 'Reset override', 'reset_filters' => 'Reset filters', 'add_child' => 'Add child', 'activate' => 'Activate', 'suspend' => 'Suspend', 'ban' => 'Ban', 'review' => 'Review', 'resolve' => 'Resolve', 'dismiss' => 'Dismiss', 'add_section' => 'Add section', 'add_widget' => 'Add widget', 'close_editor' => 'Close editor', 'mark_read' => 'Mark read', 'reply_email' => 'Reply by email',
        ],
        'fields' => [
            'body' => 'Body',
            'created_at' => 'Created at',
            'question_moderation' => 'Question moderation policy',
            'initial_status' => 'Status',
            'menu_url' => 'URL', 'menu_audience' => 'Visible to', 'menu_locales' => 'Languages (comma separated, empty = all)', 'menu_new_tab' => 'Open in a new tab',
            'custom_code_audience' => 'Visible to', 'custom_code_pages' => 'Pages (comma separated, empty = all)', 'custom_code_locales' => 'Languages (comma separated, empty = all)',
            'language_mode' => 'Site language mode', 'language_mode_single' => 'Single language', 'language_mode_multilingual' => 'Multilingual', 'mail_transport' => 'Mail transport', 'mail_smtp_host' => 'SMTP host', 'mail_smtp_port' => 'SMTP port', 'mail_smtp_encryption' => 'SMTP encryption', 'mail_smtp_auth' => 'SMTP authentication', 'mail_smtp_username' => 'SMTP username', 'mail_smtp_password' => 'SMTP password',
            'email' => 'Email', 'password' => 'Password', 'email_verified' => 'Email verified',
            'name' => 'Name', 'slug' => 'Slug', 'locale' => 'Content language', 'language' => 'Language', 'sort' => 'Order', 'description' => 'Description',
            'user' => 'User', 'subject' => 'Subject', 'role' => 'Role', 'account_type' => 'Account type', 'trust_level' => 'Trust level', 'login_disabled' => 'Disable sign-in', 'status' => 'Status', 'points' => 'Points', 'target' => 'Reported target', 'reason' => 'Reason', 'rejection_reason' => 'Rejection reason', 'notes' => 'Notes', 'moderator_notes' => 'Moderator notes',
            'site_name' => 'Site name', 'site_description' => 'Default site description', 'default_locale' => 'Primary site language',
            'category' => 'Category', 'topic_kind' => 'Topic kind', 'topic_title' => 'Topic', 'content_locale' => 'Content language',
            'site_timezone' => 'Site timezone & country', 'site_timezone_hint' => 'The local timezone used to display and format all publication dates and times across the site.',
            'admin_path' => 'Admin panel path', 'admin_path_hint' => 'The URL segment the panel answers on. Saving a new value moves the panel immediately and writes it to .env.',
            'language_switcher_enabled' => 'Show the public language switcher', 'browser_locale_detection' => 'Detect browser language on the first visit',
            'seo_default_title' => 'Default SEO title', 'seo_robots_mode' => 'Default robots policy', 'seo_sitemap_enabled' => 'Enable sitemap',
            'seo_og_image' => 'Open Graph image URL', 'seo_twitter_site' => 'Twitter/X site handle',
            'seo_google_verification' => 'Google verification token', 'seo_bing_verification' => 'Bing verification token',
            'seo_slug_style' => 'URL character style',
            'seo_question_permalink' => 'Question URL structure',
            'seo_question_permalink_hint' => 'Including the id keeps a link working even if the title changes later. Published URLs keep working and 301 to the new shape.',
            'seo_question_prefix' => 'Question URL prefix',
            'seo_question_prefix_hint' => 'The fixed segment before the slug: q, question, ask. Old /q/ links always keep working.',
            'strict_csp' => 'Strict Content-Security-Policy',
            'strict_csp_hint' => 'Blocks script from any origin but your own. Enable it only if you run no external ad network, no Google Analytics and no custom code carrying a third-party <script>, all of which stop working under it. The baseline protections — no framing, no form hijacking, no injected <base> — are always on and need no switch.',
            'seo_slug_style_hint' => 'Applies to new questions only; the URLs of published questions do not change.',
            'meta_title' => 'SEO title', 'meta_description' => 'SEO description', 'canonical_url' => 'Canonical URL', 'seo_index' => 'Indexing',
            'layout' => 'Layout', 'section' => 'Section', 'section_key' => 'Section key',
            'type' => 'Type', 'content' => 'Content', 'author' => 'Author', 'title' => 'Title', 'config_json' => 'JSON configuration', 'position' => 'Position', 'code' => 'Code',
            'parent_category' => 'Parent category', 'root_category' => 'Top-level category', 'public_default_locale' => 'Default public language', 'admin_default_locale' => 'Default admin language',
            'language_pack_file' => 'Language pack JSON file', 'language_pack_json' => 'Or paste JSON here', 'language_code' => 'Language code', 'language_name' => 'Language name', 'native_name' => 'Native name', 'direction' => 'Direction', 'fallback_locale' => 'Fallback language', 'enabled' => 'Enabled', 'registration_enabled' => 'Allow new account registration', 'require_email_verification' => 'Require email verification before sign-in', 'comments_enabled' => 'Enable clarification comments on answers', 'follows_enabled' => 'Enable question, category, and tag follows', 'duplicate_suggestions_enabled' => 'Suggest similar questions while typing', 'spam_moderate_score' => 'Spam score: send to moderation', 'spam_reject_score' => 'Spam score: reject', 'turnstile_enabled' => 'Enable Cloudflare Turnstile on registration and contact', 'turnstile_site_key' => 'Turnstile site key', 'turnstile_secret_key' => 'Turnstile secret key', 'clear_turnstile_secret_key' => 'Clear saved Turnstile secret', 'maintenance_enabled' => 'Enable maintenance mode for the public site', 'maintenance_message' => 'Maintenance message', 'mail_enabled' => 'Enable email delivery', 'mail_from_email' => 'From email', 'mail_from_name' => 'From name', 'contact_enabled' => 'Enable the contact form', 'database_notifications' => 'Store notifications in the admin dashboard', 'email_notifications' => 'Send an email copy', 'admin_email' => 'Administrator notification email', 'telegram_notifications' => 'Send a Telegram copy', 'telegram_bot_token' => 'Telegram Bot Token', 'telegram_chat_id' => 'Telegram Chat ID', 'notify_new_question' => 'Notify on new question', 'notify_new_answer' => 'Notify on new answer', 'notify_new_comment' => 'Notify on new comment', 'notify_new_report' => 'Notify on new report', 'notify_contact_message' => 'Notify on contact message', 'tag_synonyms' => 'Tag synonyms', 'merge_target' => 'Target tag', 'preserve_as_synonym' => 'Preserve the old tag name as a synonym', 'quality_question_title_min' => 'Minimum question-title characters', 'quality_question_title_max' => 'Maximum question-title characters', 'quality_question_body_min' => 'Minimum question-detail characters', 'quality_question_body_max' => 'Maximum question-detail characters', 'quality_answer_min' => 'Minimum answer characters', 'quality_answer_max' => 'Maximum answer characters', 'quality_comment_min' => 'Minimum comment characters', 'quality_comment_max' => 'Maximum comment characters', 'quality_tags_min' => 'Minimum tags', 'quality_tags_max' => 'Maximum tags', 'quality_question_rate_hour' => 'Questions per hour/member', 'quality_answer_rate_hour' => 'Answers per hour/member', 'quality_comment_rate_hour' => 'Comments per hour/member', 'quality_comment_rate_minute' => 'Comments per minute/member', 'quality_tag_create_rate_hour' => 'New tags per hour/member', 'quality_comment_max_links' => 'Maximum links per comment', 'quality_duplicate_content_minutes' => 'Duplicate-content block window (minutes)', 'quality_banned_words' => 'Blocked words and phrases', 'quality_banned_domains' => 'Blocked domains',
        ],
        'audit_title' => 'Audit and moderation log', 'audit_note' => 'Review sensitive administration changes and moderation decisions. Secrets are redacted before storage.', 'audit_recent' => 'Recent administration changes', 'moderation_history' => 'Moderation decisions', 'audit_action' => 'Action', 'audit_resource' => 'Resource', 'audit_details' => 'Details', 'audit_empty' => 'No audit records yet.', 'audit_migration_required' => 'Audit history requires database migration 018. Run migrations and reload this page.',
        'audit_show_details' => 'Show before and after', 'audit_before' => 'Before', 'audit_after' => 'After', 'audit_none' => 'No state',
        'audit_semantic_actions' => [
            'topic' => ['created' => 'Topic created', 'updated' => 'Topic updated', 'published' => 'Topic published', 'hidden' => 'Topic hidden', 'pinned' => 'Topic pinned', 'unpinned' => 'Topic unpinned', 'locked' => 'Topic locked', 'unlocked' => 'Topic unlocked', 'deleted' => 'Topic deleted'],
            'language' => ['enabled' => 'Language enabled', 'disabled' => 'Language disabled'],
            'plugin' => ['enabled' => 'Plugin enabled', 'disabled' => 'Plugin disabled'],
            'theme' => ['changed' => 'Theme changed'],
            'widget' => ['created' => 'Widget created', 'updated' => 'Widget updated', 'deleted' => 'Widget deleted'],
        ],
        'category_parent_required' => 'Choose a parent category or enable “Top-level category”.',
        'turnstile_keys_required' => 'Turnstile requires a site key and a saved secret key.',
        'user_trust_title' => 'Trust and sign-in controls', 'user_trust_note' => 'Trust influences anti-spam scoring. Editorial/system identities can be prevented from signing in.', 'login_disabled_short' => 'sign-in disabled',
        'answer_not_published' => 'An unpublished answer cannot be accepted.',
        'answer_status_invalid' => 'Invalid answer status.',
        'seed_topic_kind' => 'Invalid discussion kind.',
        'seed_type_invalid' => 'Invalid seed content type.',
        'seed_body_required' => 'Body is required.',
        'seed_title_required' => 'Title is required.',
        'seed_locale_invalid' => 'Invalid locale.',
        'seed_persona_unknown' => 'Unknown editorial persona.',
        'seed_category_unknown' => 'Unknown category.',
        'seed_question_unknown' => 'Unknown question.',
        'seed_tags_unknown' => 'One or more tags do not exist.',
        'editorial_note' => 'Create non-login editorial identities and seed useful questions, answers, and discussions without fabricating votes, views, or followers.', 'editorial_persona_create' => 'Create editorial identity', 'editorial_persona_note' => 'Editorial identities cannot sign in and are tracked separately from real members.', 'editorial_seed_create' => 'Create seed content', 'editorial_seed_note' => 'Publish accurate starter content as an editorial identity.', 'editorial_persona' => 'Editorial identity', 'editorial_type' => 'Content type', 'editorial_requires_persona' => 'Create an editorial identity first.', 'editorial_import' => 'Bulk seed import', 'editorial_import_note' => 'Preview JSON or CSV before importing. Duplicate content is skipped.', 'editorial_preview' => 'Preview / dry run', 'editorial_import_action' => 'Import checked rows', 'editorial_import_result' => 'Seed import result', 'seed_duplicate' => 'This editorial content already exists.',
        'category_new' => 'Add category', 'category_edit' => 'Edit category', 'tag_new' => 'Add tag', 'tag_edit' => 'Edit tag', 'settings_site' => 'Site settings',
        'no_parent' => 'No parent (top level)', 'choose_parent' => 'Choose parent category', 'category_parent_help' => 'Clear the top-level category checkbox to enable this list and move any existing category under a parent.', 'category_hierarchy_note' => 'Move any existing top-level category under another category from the edit screen. Self-parenting and descendant cycles are always rejected.',
        'settings_language_moved' => 'Public and administration language defaults are managed from the Languages section.',
        'tags_note' => 'Manage tags from a compact table and open only one record when editing. Description, SEO, synonyms, and duplicate-tag merging are supported.', 'tag_synonyms_help' => 'Enter one synonym per line or separate synonyms with commas; they can be used by search and duplicate-term matching.', 'tag_merge_title' => 'Merge this tag', 'tag_merge_note' => 'Moves questions, followers, and synonyms into the target tag and then removes this tag. Restore from backup if you need to undo it.', 'choose_tag' => 'Choose target tag',
        'users_note' => 'Manage roles, account status, and preferred language while protecting the final active administrator.', 'user_edit' => 'Edit user', 'current_user' => 'your account', 'read_only' => 'Read only',
        'questions_management_note' => 'Review question status, open or close content, and manage SEO without stacking full edit forms inside the table.',
        'answers_management_note' => 'Review answers, accept the best answer, or remove violating content from one clear management table.',
        'comments_note' => 'Review question and answer comments, hide or republish violations, or delete them from one table.',
        'reports_note' => 'Review each report together with the reported content and its question context before taking action.', 'report_edit' => 'Review report',
        'report_details' => 'Report details', 'report_target_content' => 'Reported content', 'report_question_context' => 'Related question', 'admin_report_open_target' => 'Open target on site', 'reporter' => 'Reporter',
        'report_types' => ['question' => 'Question', 'answer' => 'Answer', 'comment' => 'Comment', 'topic' => 'Topic'],
        'report_status' => ['open' => 'Open', 'reviewing' => 'Reviewing', 'resolved' => 'Resolved', 'dismissed' => 'Dismissed'],
        'roles' => ['member' => 'Member', 'moderator' => 'Moderator', 'admin' => 'Administrator'],
        'user_status' => ['active' => 'Active', 'suspended' => 'Suspended', 'banned' => 'Banned'],
        'no_parent_short' => 'Top level',
        
        'language_error_default' => 'This is the default language for the site or the admin panel, so it cannot be disabled. Choose a different default first, then disable it.', 'language_error_fallback' => 'Another language still falls back to this one, so disabling it would leave that language without translations. Change the fallback of that language first -- the Fallback column below shows which ones depend on it.', 'language_error_last' => 'The final enabled language cannot be disabled.', 'language_error_fallback_disabled' => 'A fallback language must itself be enabled.', 'language_error_self_fallback' => 'A language cannot fall back to itself.', 'language_migration_required' => 'Run the database upgrade before managing languages.', 'language_single_mode' => 'Single-language mode: only one language is enabled, so the visitor language switcher, browser language detection and the per-question language choice are hidden automatically. Enabling a second language automatically switches the site to multilingual mode.', 'language_defaults' => 'Language defaults and switching', 'language_defaults_note' => 'Choose separate defaults for the public site and administration panel. The admin language can also be saved per administrator account.',
        'translation_page_summary' => 'Page :page of :pages · :total translation keys', 'translation_pagination' => 'Translation key pages',
        'translation_namespace' => 'Namespace', 'translation_status' => 'Status', 'translation_all_namespaces' => 'All namespaces', 'translation_all_statuses' => 'All statuses',
        'translation_statuses' => ['override' => 'Overridden', 'pack' => 'Language pack', 'fallback' => 'Using fallback', 'missing' => 'Missing'],
        'plugin_load_failed' => 'Activation requested, but loading failed', 'plugin_safe_mode_status' => 'Disabled by Safe Mode', 'plugin_not_loaded' => 'Activation pending runtime load',
        'language_add' => 'Add language', 'language_installed' => 'Installed languages', 'language_pack_file' => 'Source language pack', 'language_database_only' => 'Database language',
        'language_edit' => 'Edit language', 'languages_table_note' => 'Installed languages are managed as a table; translation editing opens separately.', 'translation_choose_language' => 'Choose a language to open its translation editor.', 'language_delete_blocked' => 'Deletion is protected for these reasons:', 'language_delete_reason_default' => 'Default site or admin language', 'language_delete_reason_fallback' => 'Fallback for another language', 'language_delete_reason_content' => 'Referenced by existing content', 'language_delete_reason_last' => 'Last enabled language',
        'translation_import_export' => 'Import and export translation packs', 'translation_import_export_note' => 'Export a clear JSON file that can be given to any AI model to translate values only, then import it here. Quaeriva keys and placeholders such as :name and :count remain protected.', 'translation_overrides' => 'overrides', 'translation_editor' => 'Translation editor', 'translation_editor_note' => 'Source packs remain in resources/lang for GitHub. Changes made here are stored as database overrides, so upgrades do not overwrite them.', 'translation_search' => 'Search key or text',
        'languages_migration_required' => 'Advanced language management requires database migration 012. Run the migration command, then reload this page.',


        'custom_code_title' => 'Custom code', 'custom_code_note' => 'Add trusted administrator-authored snippets to the document head or body without coupling them to advertising.', 'custom_code_new' => 'New custom-code snippet', 'custom_code_edit' => 'Edit custom-code snippet', 'custom_code_code_hint' => 'Raw trusted code is rendered as entered. PHP tags are rejected and each snippet is limited to 100 KB.', 'custom_code_position_head' => 'Document head', 'custom_code_position_body_start' => 'Immediately after body start', 'custom_code_position_body_end' => 'Immediately before body end',
        'ads_title' => 'Advertising & placements',
        'ads_note' => 'Manage responsive advertising locations without editing templates. Each placement can be disabled, use trusted ad code such as AdSense, or display an image linked to a destination.',
        'ads_enabled' => 'Enable advertising placements',
        'ads_head_code' => 'Global advertising provider head code',
        'ads_head_code_hint' => 'Optional. Use for a global AdSense/provider loader. Admin-only; PHP code is never allowed.',
        'ads_show_desktop' => 'Show on desktop',
        'ads_show_tablet' => 'Show on tablet',
        'ads_show_mobile' => 'Show on mobile',
        'ads_trusted_code_warning' => 'Advertisement code can contain JavaScript and is rendered without HTML sanitization so provider code can run. For security, only administrators can save this page. Never paste code from an untrusted source.',
        'ads_placement_header' => 'Header advertising', 'ads_placement_footer' => 'Footer advertising', 'ads_placement_homepage' => 'Homepage advertising widget', 'ads_placement_after_question' => 'Directly below the question', 'ads_placement_between_answers' => 'Between answers',
        'ads_mode' => 'Placement mode', 'ads_mode_disabled' => 'Disabled', 'ads_mode_code' => 'Advertisement / AdSense code', 'ads_mode_image' => 'Image with link',
        'ads_code' => 'Advertisement code', 'ads_code_hint' => 'Paste the provider code exactly as supplied. Responsive AdSense units are recommended.',
        'ads_image_url' => 'Image URL', 'ads_link_url' => 'Destination URL', 'ads_alt' => 'Image alternative text', 'ads_alt_required' => 'Image advertisements require alternative text.', 'ads_validation_mode' => 'The advertisement mode is invalid.', 'ads_validation_code_too_long' => 'The advertisement code is too long.', 'ads_validation_php_tags' => 'PHP tags are not allowed in advertisement code.', 'ads_validation_image_url' => 'The advertisement image URL is invalid.', 'ads_validation_link_url' => 'The advertisement destination URL is invalid.', 'ads_validation_alt_too_long' => 'The advertisement alternative text is too long.',
        'ads_interval' => 'Insert after every N answers', 'ads_max_insertions' => 'Maximum insertions per question',
        'appearance_title' => 'Appearance & themes', 'appearance_note' => 'Control the visual identity without editing templates. Changes use validated CSS variables and remain safe in RTL and LTR.', 'appearance_branding' => 'Branding', 'appearance_branding_note' => 'The mark accepts short text, or a safe root-relative/HTTP image URL with fixed dimensions.', 'appearance_active_theme' => 'Active theme', 'appearance_brand_text' => 'Brand mark text', 'appearance_logo_url' => 'Logo URL', 'appearance_favicon_url' => 'Favicon URL', 'appearance_url_hint' => 'Use a root-relative path or an HTTP/HTTPS URL. Leave blank to use the text mark.', 'appearance_palette' => 'Color palette', 'appearance_palette_note' => 'Six-digit hexadecimal colors only; unsafe CSS values are rejected before saving.', 'appearance_color_primary' => 'Primary', 'appearance_color_primary_dark' => 'Primary dark', 'appearance_color_accent' => 'Accent', 'appearance_color_surface' => 'Surface', 'appearance_color_surface_soft' => 'Soft surface', 'appearance_color_ink' => 'Text', 'appearance_color_ink_muted' => 'Muted text', 'appearance_color_line' => 'Borders', 'appearance_color_danger' => 'Danger', 'appearance_type_layout' => 'Type & layout', 'appearance_type_layout_note' => 'Dimensions are in rem and are clamped to accessible, responsive ranges.', 'appearance_font_stack' => 'Font stack', 'appearance_font_system' => 'System sans', 'appearance_font_inter' => 'Inter first', 'appearance_font_noto_sans' => 'Noto Sans Arabic first', 'appearance_font_noto_kufi' => 'Noto Kufi Arabic first', 'appearance_radius_md' => 'Medium radius', 'appearance_radius_lg' => 'Large radius', 'appearance_container_width' => 'Container width (rem)', 'appearance_narrow_width' => 'Reading width (rem)', 'appearance_font_size' => 'Base font size (rem)', 'appearance_reset' => 'Reset appearance defaults', 'appearance_reset_note' => 'Removes theme.* overrides and restores the bundled defaults.', 'appearance_audit_saved' => 'Appearance settings saved', 'appearance_audit_reset' => 'Appearance reset',
        'appearance_package_title' => 'Theme package', 'appearance_package_note' => 'Export the current appearance as editable JSON. Import accepts settings and CSS only; it never uploads PHP templates or executable theme files.', 'appearance_export' => 'Export theme package', 'appearance_import' => 'Import edited package', 'appearance_import_note' => 'Edit the exported JSON offline, then upload it or paste it here. Only an administrator can apply it.', 'appearance_package_file' => 'Theme package JSON file', 'appearance_package_json' => 'Or paste package JSON', 'appearance_import_action' => 'Import package', 'appearance_custom_css' => 'Custom CSS', 'appearance_custom_css_note' => 'Optional CSS loaded after the theme stylesheet. Closing style tags are rejected and the field is limited to 50 KB.', 'appearance_validation_package_size' => 'The theme package exceeds the 512 KB limit.', 'appearance_validation_package_required' => 'Upload a theme package or paste its JSON first.', 'appearance_audit_imported' => 'Theme package imported',
        'settings_tabs_label' => 'Settings sections',
        'settings_tabs' => ['general' => 'General', 'membership' => 'Membership & registration', 'community' => 'Community', 'maintenance' => 'Maintenance', 'mail' => 'Mail', 'notifications' => 'Contact & notifications', 'seo' => 'SEO'],
        'settings_membership_title' => 'Membership and registration', 'settings_membership_note' => 'Control new account registration and email-verification requirements without editing code.',
        'settings_community_title' => 'Community settings', 'settings_community_note' => 'Control follows, similar-question suggestions, and posting quality. Public Q&A comments are attached to answers only.',
        'quality_title' => 'Posting & quality rules', 'quality_note' => 'Editable limits for questions, answers, comments, tags, and anti-spam controls.', 'quality_list_hint' => 'Use one item per line or separate items with commas.',
        'membership_email_warning' => 'If email verification is required, configure and test working mail delivery first or new members will be unable to verify their accounts.',
        'settings_maintenance_title' => 'Maintenance mode', 'settings_maintenance_note' => 'When enabled, administration and sign-in remain available while public visitors receive an HTTP 503 maintenance page.',
        'settings_mail_title' => 'Mail settings', 'settings_mail_note' => 'Quaeriva uses PHP mail() by default to remain dependency-free on shared hosting. Test delivery before requiring email verification.', 'mail_php_note' => 'Your host must allow PHP mail(). If it is disabled, Telegram can still deliver admin alerts, but do not require email verification until a working mail transport is configured.', 'mail_required_for_verification' => 'Email verification cannot be required until mail delivery is enabled.', 'mail_smtp_host_required' => 'Enter the SMTP host when the SMTP transport is selected.', 'mail_smtp_username_required' => 'Enter the SMTP username. Without it Quaeriva cannot authenticate and the server rejects the message.', 'mail_smtp_password_required' => 'Enter the SMTP password. No password is stored for this account yet.', 'mail_transport_invalid' => 'Mail transport is invalid.', 'mail_encryption_invalid' => 'SMTP encryption is invalid.', 'mail_auth_invalid' => 'SMTP authentication method is invalid.', 'mail_from_required' => 'Enter a valid From email address when mail delivery is enabled.',
        'settings_notifications_title' => 'Contact and notifications', 'settings_notifications_note' => 'Dashboard notifications are the primary admin channel. Email and Telegram can be enabled as optional copies.',
        'telegram_help' => 'Telegram is optional. Create the bot with @BotFather, send it /start, then enter the new Bot Token and the destination Chat ID here. Never paste the token into chat or logs. Leave saved secret fields blank to preserve the existing value.', 'secret_saved' => 'Saved — leave blank to keep it', 'clear_saved_secret' => 'Clear saved value', 'mail_cannot_disable_verification' => 'Mail cannot be disabled while email verification is required. Disable verification first.',
        'messages_note' => 'Contact form messages are stored in the database and can be reviewed and moved through their workflow here.', 'message_review' => 'Review message', 'no_subject' => 'No subject',
        'message_status' => ['open' => 'New', 'reviewing' => 'Reviewing', 'resolved' => 'Handled', 'closed' => 'Closed'],
        'notifications_note' => 'Administrator and moderator notifications generated by questions, reports, and contact messages.',
        'notifications_topbar' => 'Notifications', 'no_unread_notifications' => 'No unread notifications.', 'view_all_notifications' => 'View all notifications',
        'migration_013_required' => 'This feature requires database migration 013. Run migrations and reload the page.', 'list_error' => 'This list could not be loaded. Check the database and try again.',
        'notification_test_channels' => 'Test delivery channels', 'notification_test_database' => 'Test dashboard', 'notification_test_email' => 'Test email', 'notification_test_telegram' => 'Test Telegram', 'notification_test_title' => ':site notification test', 'notification_test_body' => 'If you received this message, this delivery channel is working from :site settings.', 'notification_test_failed' => 'The channel test could not be delivered. Check the settings and server support.',
        'settings_seo_title' => 'Search and social metadata', 'settings_seo_note' => 'These values control robots, sitemap availability, social previews, and search-engine verification tags. Keep the default policy index,follow for a public site.',
        'seo_index_inherit' => 'Inherit site policy', 'seo_index' => 'Index', 'seo_noindex' => 'No index',
        'settings_note_title' => 'Runtime note', 'settings_note' => 'The primary site language is the deterministic default. When the switcher is enabled, a visitor choice is stored in a cookie and survives refresh and navigation while the content keeps one shared URL. Browser-language detection is optional and disabled by default.',
        'layout_new' => 'Add layout', 'section_new' => 'Add layout section', 'widget_new' => 'Add widget',
        'layout_edit' => 'Edit layout', 'section_edit' => 'Edit layout section', 'widget_edit' => 'Edit widget', 'layouts' => 'Layouts', 'sections' => 'Layout sections', 'widgets' => 'Widgets',
        'layouts_note' => 'A published layout defines the active widget arrangement across site regions.', 'sections_note' => 'Each section corresponds to a specific page region and contains ordered widgets.', 'widgets_note' => 'Widgets placed in active regions are displayed on the public site.',
        'widgets_live_note' => 'Published layouts render enabled widgets across page regions.', 'live' => 'Live renderer', 'enabled' => 'Enabled', 'registration_enabled' => 'Allow new account registration', 'require_email_verification' => 'Require email verification before sign-in', 'maintenance_enabled' => 'Enable maintenance mode for the public site', 'maintenance_message' => 'Maintenance message', 'contact_enabled' => 'Enable the contact form', 'database_notifications' => 'Store notifications in the admin dashboard', 'email_notifications' => 'Send an email copy', 'admin_email' => 'Administrator notification email', 'telegram_notifications' => 'Send a Telegram copy', 'telegram_bot_token' => 'Telegram Bot Token', 'telegram_chat_id' => 'Telegram Chat ID', 'notify_new_question' => 'Notify on new question', 'notify_new_answer' => 'Notify on new answer', 'notify_new_comment' => 'Notify on new comment', 'notify_new_report' => 'Notify on new report', 'notify_contact_message' => 'Notify on contact message', 'disabled' => 'Disabled',
        'layout_status' => ['draft' => 'Draft', 'published' => 'Published'],
        'sidebar_label' => 'Admin navigation',
        'settings_sitemap_hint' => 'Generated live from the database on every request, so it never needs regenerating or scheduling. Search engines find it through robots.txt:',
        'ads_rotation_for' => 'Rotate advertisements in: :placement',
        'ads_validation_name' => 'Advertisement name is required.',
        'ads_validation_placement' => 'Choose a valid placement.',
        'ads_validation_schedule_order' => 'The end date cannot be before the start date.',
        'ads_validation_schedule_date' => 'The schedule date could not be read.',
        'ads_validation_rotation_off' => 'Turn off the extra advertisements in :placement first: without rotation a placement runs only one.',
        'appearance_move_up' => 'Move up', 'appearance_move_down' => 'Move down', 'appearance_save_order' => 'Save order',
        'ads_starts_at_hint' => 'Leave empty to start immediately.',
        'ads_ends_at_hint' => 'Leave empty to never expire.',
        'ads_rotation_off' => 'Off: this placement shows one advertisement. A second one cannot be enabled.',
        'ads_rotation_on' => 'On: each visit shows one of the advertisements in this placement, chosen by weight.',
        'ads_creatives_title' => 'Advertisements', 'ads_creatives_note' => 'Each advertisement holds either an ad code or an image. When both are filled the code is used.',
        'ads_creatives_empty' => 'No advertisements yet.', 'ads_add' => 'Add advertisement', 'ads_edit' => 'Edit advertisement',
        'ads_placement' => 'Placement', 'ads_kind' => 'Kind', 'ads_kind_code' => 'Ad code', 'ads_kind_image' => 'Image',
        'ads_targeting' => 'Targeting', 'ads_targeting_all' => 'Everyone', 'ads_devices' => 'Devices', 'ads_locales' => 'Languages (comma separated, empty = all)', 'ads_audience' => 'Visible to',
        'ads_starts_at' => 'Starts', 'ads_ends_at' => 'Ends', 'ads_weight' => 'Weight', 'ads_weight_hint' => 'Used only when rotation is on for this placement. Weight 3 against 1 shows roughly three times as often.',
        'ads_status_running' => 'Running', 'ads_status_scheduled' => 'Scheduled', 'ads_status_expired' => 'Expired',
        'ads_rotation_title' => 'Rotation', 'ads_rotation_note' => 'With rotation off a placement runs one advertisement and a second one cannot be enabled. With it on, eligible advertisements are drawn by weight.',
        'ads_migration_required' => 'Advertisements need the database upgrade before they can be managed.',
        'ads_validation_capacity' => 'This placement already has a running advertisement. Turn on rotation for it first, or disable the other advertisement.',
        'ads_validation_content' => 'An advertisement needs either an ad code or an image.',
        'appearance_tabs_label' => 'Appearance sections',
        'appearance_tabs' => [
            'themes' => 'Themes','branding' => 'Branding', 'palette' => 'Colours', 'typography' => 'Type and layout', 'layout' => 'Page regions', 'profiles' => 'Theme profiles', 'css' => 'Custom CSS', 'package' => 'Import and export'],
        'theme_profiles_title' => 'Theme profiles',
        'theme_profiles_note' => 'Save complete visual profiles, preview them safely, apply them, and restore earlier versions.',
        'theme_profiles_migration_required' => 'Theme profiles require database migration 037. Run php bin/migrate.php first.',
        'theme_profile_name' => 'Profile name',
        'theme_profile_description' => 'Description',
        'theme_profile_preset' => 'Start from preset',
        'theme_profile_current' => 'Current appearance',
        'theme_profile_create' => 'Create profile',
        'theme_profile_layout' => 'Layout presets',
        'theme_profile_preview' => 'Preview',
        'theme_profile_export' => 'Export JSON',
        'theme_profile_apply' => 'Apply',
        'theme_profile_duplicate' => 'Duplicate',
        'theme_profile_edit' => 'Edit theme profile',
        'theme_profile_edit_note' => 'Changes create a restorable version before the profile is updated.',
        'theme_profile_versions' => 'Version history',
        'theme_profile_restore' => 'Restore',
        'theme_profile_import' => 'Import theme profile',
        'theme_profile_import_note' => 'Imports JSON tokens only. PHP templates are never accepted through the browser.',
        'theme_profiles_empty' => 'No saved theme profiles yet.',

        'appearance_regions_title' => 'Page regions',
        'appearance_regions_note' => 'Each region of the public page and the widgets it currently holds. A region with no widgets keeps the built-in layout.',
        'appearance_region_add' => 'Add widget', 'appearance_region_empty' => 'Empty; the built-in layout is used.', 'appearance_region_missing' => 'Your site database requires an upgrade to create default layout regions.',
        'appearance_regions' => ['header_top' => 'Header strip', 'nav_extra' => 'Navigation extras', 'homepage_main' => 'Home page body', 'home_sidebar' => 'Home sidebar', 'question_sidebar' => 'Question sidebar', 'footer_col_1' => 'Footer column 1', 'footer_col_2' => 'Footer column 2', 'footer_col_3' => 'Footer column 3', 'footer_bottom' => 'Footer bottom bar'],
        'widget_guide_title' => 'How Widgets & Layouts Work',
        'widget_guide_flow' => 'Layout (1 published) → Region (9 standard regions) → Widgets (what actually renders)',
        'widget_regions_title' => 'Supported Page Regions',
        'widget_region_warning' => 'Widgets assigned to a region name other than these 9 will not be displayed anywhere on the site.',
        'region_names' => [
            'header_top' => 'Header Top',
            'nav_extra' => 'Navigation Extra',
            'homepage_main' => 'Homepage Main',
            'home_sidebar' => 'Homepage Sidebar',
            'question_sidebar' => 'Question Sidebar',
            'footer_col_1' => 'Footer Column 1',
            'footer_col_2' => 'Footer Column 2',
            'footer_col_3' => 'Footer Column 3',
            'footer_bottom' => 'Footer Bottom',
        ],
        'region_descriptions' => [
            'header_top' => 'Above the top navigation bar',
            'nav_extra' => 'Beside the navigation links',
            'homepage_main' => 'Main central column of the homepage',
            'home_sidebar' => 'Sidebar column on the homepage',
            'question_sidebar' => 'Sidebar column on single question pages',
            'footer_col_1' => 'First column in the footer',
            'footer_col_2' => 'Second column in the footer',
            'footer_col_3' => 'Third column in the footer',
            'footer_bottom' => 'Bottom bar of the footer',
        ],
        'widget_types' => [
            'html_block' => 'HTML Block',
            'text_block' => 'Text Block',
            'latest_questions' => 'Latest Questions',
            'latest_topics' => 'Latest Topics',
            'category_questions' => 'Category Questions',
            'categories' => 'Categories',
            'top_contributors' => 'Top Contributors',
            'most_viewed' => 'Most Viewed',
            'most_useful' => 'Most Useful',
            'most_answered' => 'Most Answered',
            'unanswered' => 'Unanswered',
            'active_tags' => 'Active Tags',
            'trending' => 'Trending',
            'ad_slot' => 'Ad Slot',
            'link_list' => 'Link List',
            'about_box' => 'About Box',
            'social_links' => 'Social Links',
            'cta_button' => 'Call to Action',
            'site_stats' => 'Site Stats',
            'search_box' => 'Search Box',
            'image_banner' => 'Image Banner',
        ],
        'widget_type_hints' => [
            'html_block' => 'Custom raw HTML content written by administrator',
            'text_block' => 'Plain title and body text without HTML',
            'latest_questions' => 'Most recently published questions',
            'latest_topics' => 'Most recently active topics',
            'category_questions' => 'Questions from a chosen category',
            'categories' => 'List of site categories',
            'top_contributors' => 'Most helpful community members',
            'most_viewed' => 'Most viewed questions',
            'most_useful' => 'Highest voted questions',
            'most_answered' => 'Most discussed questions',
            'unanswered' => 'Questions waiting for answers',
            'active_tags' => 'Most frequently used tags',
            'trending' => 'Recent hot activity',
            'ad_slot' => 'Displays homepage advertisement slot',
            'link_list' => 'Links list for footer or navigation',
            'about_box' => 'Site overview with title, text, and link',
            'social_links' => 'Social media profile icons and links',
            'cta_button' => 'Prominent button with custom link',
            'site_stats' => 'Question, answer, and user counts',
            'search_box' => 'Quick search box for sidebars',
            'image_banner' => 'Clickable visual image banner',
        ],
        'custom_code_pages_hint' => 'Allowed page types: home, question, ask, search, taxonomy, profile, contact, auth, notifications.',
        'ads_image_width' => 'Image width (px, 0 = unset)', 'ads_image_height' => 'Image height (px, 0 = unset)',
        'widget_fields' => [
            'limit' => 'Number of items',
            'category_id' => 'Category',
            'content_html' => 'Content',
            'placement' => 'Placement',
            'links' => 'Links (one per line: Label|URL)',
            'description' => 'Description',
            'button_text' => 'Button text',
            'button_url' => 'Button URL',
            'heading' => 'Heading',
            'subheading' => 'Subheading',
            'twitter' => 'Twitter/X URL',
            'facebook' => 'Facebook URL',
            'github' => 'GitHub URL',
            'linkedin' => 'LinkedIn URL',
            'telegram' => 'Telegram URL',
            'youtube' => 'YouTube URL',
            'discord' => 'Discord URL',
            'show_questions' => 'Show questions count',
            'show_answers' => 'Show answers count',
            'show_users' => 'Show users count',
            'show_views' => 'Show views count',
            'placeholder' => 'Placeholder text',
            'image_url' => 'Image URL',
            'alt_text' => 'Alternative text',
            'link_url' => 'Destination URL',
            'caption' => 'Caption',
            'text' => 'Text content',
        ],
        'widget_html_help' => 'Basic formatting only: paragraphs, links, headings and emphasis. Scripts and styles are rejected.',
        'widget_translation_title' => 'Localized widget content', 'widget_translation_note' => 'Translate only visible text. URLs and operational settings continue to come from the base widget.',
        'widget_any_category' => 'All categories',
        'widget_no_options' => 'This widget has no options.',
        'menus_note' => 'Links shown in the public header. Seeded items stay translated until you type a label of your own.',
        'menus_empty' => 'No menu items yet; the built-in navigation is used.',
        'menu_item_add' => 'Add menu item', 'menu_item_edit' => 'Edit menu item',
        'menu_translated_label' => 'Leave empty to keep the built-in translated label.',
        'menu_drag_hint' => 'Drag to reorder, or use the move buttons.', 'menu_move_up' => 'Move up', 'menu_move_down' => 'Move down', 'menu_save_order' => 'Save menu order',
        'menu_system_controls_title' => 'Automatic header controls', 'menu_system_controls_note' => 'Account and language controls are rendered from the current session and enabled languages, so they are shown here for clarity but are not reorderable menu rows.', 'menu_system_control_automatic' => 'Automatic control',
        'menu_audience' => ['any' => 'Everyone', 'guest' => 'Signed-out visitors', 'member' => 'Signed-in members', 'admin' => 'Staff only'],
        'nav_groups' => ['content' => 'Content', 'community' => 'Community', 'appearance' => 'Appearance', 'system' => 'System'],
        'user' => 'Admin user',
        'database_ready' => 'Database connected',
        'database_unavailable' => 'Database connection unavailable',
        'system_json' => 'JSON extension', 'system_mbstring' => 'mbstring extension', 'system_curl' => 'cURL extension', 'system_openssl' => 'OpenSSL extension', 'system_app_env' => 'Environment', 'system_file_permissions' => 'Executable file permissions', 'system_schema_integrity' => 'Schema integrity', 'system_layout' => 'Layouts / sections / widgets', 'system_database_config_source' => 'Database configuration source', 'system_release_manifest' => 'Release manifest',
        'system_health' => 'System health', 'system_health_note' => 'Runtime diagnostics without exposing database passwords or secrets.',
        'system_version' => 'Application version', 'system_build_id' => 'Release build ID', 'system_build_time' => 'Release build time', 'system_root' => 'Project root', 'system_base_path' => 'Base path', 'system_base_source' => 'Base path source', 'system_base_candidates' => 'Base path candidates', 'system_base_ambiguous' => 'Conflicting base path evidence', 'system_admin_path' => 'Admin path', 'system_admin_form_action' => 'Admin form action', 'system_server' => 'Web server', 'system_https' => 'HTTPS detected', 'system_php' => 'PHP version', 'system_session_handler' => 'Session handler', 'system_session_path' => 'Session save path', 'system_cookie_path' => 'Session cookie path', 'system_log_path' => 'Application log path', 'system_log_writable' => 'Application log writable', 'system_pdo_mysql' => 'PDO MySQL', 'system_database' => 'Database', 'system_database_version' => 'Database server version', 'system_migrations' => 'Applied migrations', 'system_pending_migrations' => 'Pending migrations', 'system_languages' => 'Enabled languages', 'system_status_success' => 'Healthy', 'system_status_warning' => 'Needs attention', 'system_status_error' => 'Unavailable', 'system_schema_unavailable' => 'Migration diagnostics could not be read. Check the database connection and schema_migrations table.', 'system_unknown' => 'Unknown', 'yes' => 'Yes', 'no' => 'No', 'none' => 'None',
        'queue_title' => 'Question queue',
        'queue_empty_count' => '0 awaiting review',
        'queue_empty' => 'There are no questions awaiting review.',
        'nav' => [
            'overview' => 'Overview',
            'questions' => 'Questions',
            'answers' => 'Answers',
            'categories' => 'Categories',
            'widgets' => 'Widgets',
            'settings' => 'Settings',
        ],
        'table' => [
            'question' => 'Question',
            'status' => 'Status',
            'created' => 'Created', 'updated' => 'Updated',
            'answer' => 'Answer',
            'metrics' => 'Metrics',
            'actions' => 'Actions',
        ],
        'errors' => [
            'unauthenticated' => 'You must sign in to access the admin dashboard.',
            'forbidden' => 'You do not have permission to access the admin dashboard.',
        ],
    ],
];
