feat: add "Add Page Labels" tool to the application

- Introduced a new tool for adding page labels to PDF documents, allowing users to apply Roman numerals, prefixes, and custom numbering ranges.
- Created a new HTML page for the tool with a user-friendly interface for file upload and label rule configuration.
- Implemented logic for handling file uploads, processing PDF files, and applying page labels based on user-defined rules.
- Added necessary types and utility functions for managing page label styles and normalization of start values.
- Updated main application configuration to include the new tool in the navigation.
- Added tests for page label utilities to ensure correct functionality.
This commit is contained in:
alam00000
2026-03-16 14:34:27 +05:30
parent 31f43b557f
commit 477839f106
27 changed files with 2318 additions and 0 deletions

View File

@@ -86,6 +86,65 @@
"name": "Нумерация страниц",
"subtitle": "Пронумеровать страницы."
},
"addPageLabels": {
"name": "Добавить метки страниц",
"subtitle": "Применяйте метки страниц PDF с римскими цифрами, префиксами и пользовательскими начальными значениями.",
"uploadHint": "PDF-файл",
"howLabelsWorkTitle": "Как работают метки",
"howLabelsWorkStep1": "Оставьте диапазон страниц пустым, чтобы проставить метки на всех страницах.",
"howLabelsWorkStep2": "Используйте стили вроде римских цифр для вводных страниц и десятичную нумерацию для основной части.",
"howLabelsWorkStep3": "Используйте префикс со стартовым значением 0, чтобы создавать метки вроде A-0, A-1, A-2.",
"howLabelsWorkStep4": "Включите продолжение нумерации, если одно правило использует несмежный диапазон, например 1-9,30-40 или нечётные страницы.",
"labelRulesTitle": "Правила меток",
"addRule": "Добавить правило",
"removeExistingLabels": "Удалить существующие метки страниц перед применением этих правил",
"cpdfNote": "Этот инструмент использует CoherentPDF в вашем браузере. Если CoherentPDF не настроен, вам будет предложено настроить его в параметрах WASM.",
"processButton": "Добавить метки страниц",
"howItWorksUploadTitle": "Загрузить файл",
"howItWorksUploadDescription": "Выберите PDF, для которого нужно изменить метки страниц.",
"howItWorksDefineTitle": "Задать правила",
"howItWorksDefineDescription": "Настройте одно или несколько правил меток страниц с диапазонами, стилями, префиксами и начальными значениями.",
"howItWorksDownloadTitle": "Скачать",
"howItWorksDownloadDescription": "Сохраните обновлённый PDF с новыми метками страниц.",
"relatedToolsTitle": "Похожие PDF-инструменты",
"faqWhatIsQuestion": "Что такое метка страницы?",
"faqWhatIsAnswer": "Метка страницы — это нумерация, которую PDF-ридеры показывают в миниатюрах, навигации по страницам и диалогах печати. Она не печатает новый текст на самой странице.",
"faqMixQuestion": "Можно ли смешивать римские цифры и обычные числа?",
"faqMixAnswer": "Да. Добавьте несколько правил, например 1-4 с LowercaseRoman и 5-20 с DecimalArabic.",
"faqPrivacyQuestion": "Мои файлы останутся приватными?",
"faqPrivacyAnswer": "Да. Обработка происходит в вашем браузере с использованием CoherentPDF WASM. Ваш PDF не покидает устройство.",
"invalidFileTitle": "Недопустимый файл",
"invalidFileMessage": "Пожалуйста, загрузите корректный PDF-файл.",
"loadingPdf": "Загрузка PDF...",
"protectedPdfTitle": "Защищённый PDF",
"protectedPdfMessage": "Этот PDF защищён паролем. Сначала используйте инструмент Расшифровать или Изменить разрешения.",
"loadErrorMessage": "Не удалось загрузить PDF-файл. Файл может быть повреждён, некорректен или защищён паролем.",
"fileMeta": "{{size}} • {{count}} стр.",
"ruleTitle": "Правило метки {{number}}",
"pageRangeLabel": "Диапазон страниц",
"pageRangePlaceholder": "Все страницы, например 1-4, 7, нечётные",
"labelStyleLabel": "Стиль метки",
"labelPrefixLabel": "Префикс метки",
"labelPrefixPlaceholder": "Необязательный префикс, например A-",
"startValueLabel": "Начальное значение",
"continueNumbering": "Продолжать нумерацию через несмежные диапазоны",
"examplesNote": "Примеры: 1-4 для вводных страниц римскими цифрами, 15-20 с префиксом A- и начальным значением 0, или нечётные страницы с включённым продолжением.",
"uploadFirstMessage": "Сначала загрузите PDF-файл.",
"applyingLabels": "Применение меток страниц...",
"invalidRangeMessage": "Правило {{number}} содержит недопустимый диапазон страниц: {{range}}",
"allPages": "все страницы",
"emptyOutputMessage": "CoherentPDF создал пустой файл.",
"successMessage": "Метки страниц успешно добавлены!",
"processErrorMessage": "Не удалось добавить метки страниц.",
"styleOptions": {
"DecimalArabic": "Десятичные числа",
"LowercaseRoman": "Строчные римские цифры",
"UppercaseRoman": "Прописные римские цифры",
"LowercaseLetters": "Строчные буквы",
"UppercaseLetters": "Прописные буквы",
"NoLabelPrefixOnly": "Только префикс без номера"
}
},
"addWatermark": {
"name": "Добавление водяных знаков",
"subtitle": "Наложить текст или изображение на страницы документа."