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": "Толькі прэфікс без нумара"
}
},
"batesNumbering": {
"name": "Нумарацыя Бейтса",
"subtitle": "Дадаць паслядоўныя нумары Бейтса да аднаго або некалькіх файлаў PDF."