1e39ccd63SJonny Dee<?php 2e39ccd63SJonny Dee/** 30da69785SJohann Duscher * English language file for the Delete Page Guard plugin. 40da69785SJohann Duscher * 50da69785SJohann Duscher * @license GPL 2 (https://www.gnu.org/licenses/gpl-2.0.html) - see LICENSE.md 60da69785SJohann Duscher * @author Johann Duscher <jonny.dee@posteo.net> 70da69785SJohann Duscher * @copyright 2025 Johann Duscher 8e39ccd63SJonny Dee */ 9e39ccd63SJonny Dee 10e39ccd63SJonny Dee$lang['deny_msg'] = 'Deleting this page is not allowed.'; 110da69785SJohann Duscher 120da69785SJohann Duscher// Configuration Manager labels 130da69785SJohann Duscher$lang['patterns'] = 'Protected page patterns (one PCRE per line). Examples: ^users:[^:]+:start$'; 140da69785SJohann Duscher$lang['match_target'] = 'Match against (page ID or file path)'; 150da69785SJohann Duscher$lang['exempt_groups'] = 'Exempt groups (comma‑separated)'; 160da69785SJohann Duscher$lang['trim_mode'] = 'Treat whitespace‑only pages as empty'; 170da69785SJohann Duscher 181a97af9eSJohann Duscher// Pattern validation messages for administrators 191a97af9eSJohann Duscher$lang['pattern_redos_warning'] = 'Pattern "%s" may cause performance issues (potential ReDoS attack)'; 201a97af9eSJohann Duscher$lang['pattern_too_long'] = 'Pattern "%s" is too long (maximum 1000 characters allowed)'; 211a97af9eSJohann Duscher$lang['pattern_invalid_syntax'] = 'Pattern "%s" has invalid regex syntax: %s'; 221a97af9eSJohann Duscher$lang['config_validation_errors'] = 'Some regex patterns in Delete Page Guard configuration have validation errors. Please check the configuration.'; 231a97af9eSJohann Duscher 241a97af9eSJohann Duscher// Admin interface 251a97af9eSJohann Duscher$lang['menu'] = 'Delete Page Guard'; 261a97af9eSJohann Duscher$lang['admin_title'] = 'Delete Page Guard - Pattern Validation'; 271a97af9eSJohann Duscher$lang['test_patterns_title'] = 'Test Pattern Configuration'; 281a97af9eSJohann Duscher$lang['test_patterns_help'] = 'Enter one regular expression pattern per line to validate them. This helps you test patterns before saving them to the configuration.'; 291a97af9eSJohann Duscher$lang['validate_button'] = 'Validate Patterns'; 301a97af9eSJohann Duscher$lang['validation_results_title'] = 'Validation Results'; 311a97af9eSJohann Duscher$lang['validation_results'] = 'Pattern Validation Results'; 321a97af9eSJohann Duscher$lang['no_patterns'] = 'No patterns to validate.'; 331a97af9eSJohann Duscher$lang['all_patterns_valid'] = 'All %d patterns are valid!'; 341a97af9eSJohann Duscher$lang['some_patterns_invalid'] = 'Some patterns have issues. Please fix them before using.'; 351a97af9eSJohann Duscher 36*bacaf983SJohann Duscher// Pattern matching 37*bacaf983SJohann Duscher$lang['show_matches_button'] = 'Show Matching Pages'; 38*bacaf983SJohann Duscher$lang['matching_pages_title'] = 'Pages Matching Patterns'; 39*bacaf983SJohann Duscher$lang['no_valid_patterns'] = 'No valid patterns to test. Please fix validation errors first.'; 40*bacaf983SJohann Duscher$lang['no_pages_found'] = 'No pages found in wiki.'; 41*bacaf983SJohann Duscher$lang['no_matching_pages'] = 'No pages match the patterns (scanned %d pages).'; 42*bacaf983SJohann Duscher$lang['found_matching_pages'] = 'Found %d protected pages out of %d total pages.'; 43*bacaf983SJohann Duscher$lang['page_id'] = 'Page ID'; 44*bacaf983SJohann Duscher$lang['match_target'] = 'Match Target'; 45*bacaf983SJohann Duscher$lang['matched_pattern'] = 'Matched Pattern'; 46*bacaf983SJohann Duscher 471a97af9eSJohann Duscher// Detailed error messages for admin interface 481a97af9eSJohann Duscher$lang['error_pattern_too_long'] = 'Pattern is too long (maximum 1000 characters allowed)'; 491a97af9eSJohann Duscher$lang['error_pattern_redos'] = 'Pattern may cause performance issues (potential ReDoS attack)'; 501a97af9eSJohann Duscher$lang['error_pattern_syntax'] = 'Invalid regular expression syntax'; 511a97af9eSJohann Duscher 520da69785SJohann Duscher// Legacy configuration keys (for backward compatibility) 53e39ccd63SJonny Dee$lang['cfg_patterns'] = 'Protected page patterns (one per line, as PCRE)'; 54e39ccd63SJonny Dee$lang['cfg_match_target'] = 'Match against'; 55e39ccd63SJonny Dee$lang['cfg_match_target_o_id'] = 'Page ID (e.g. users:john:start)'; 56e39ccd63SJonny Dee$lang['cfg_match_target_o_filepath'] = 'Relative file path (e.g. users/john/start.txt)'; 57e39ccd63SJonny Dee$lang['cfg_exempt_groups'] = 'Extra groups allowed to delete (comma separated)'; 58e39ccd63SJonny Dee$lang['cfg_trim_mode'] = 'Treat whitespace‑only pages as empty';