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": "Sayfa Numaraları",
"subtitle": "Belgenize sayfa numaraları ekleyin."
},
"addPageLabels": {
"name": "Sayfa etiketleri ekle",
"subtitle": "Roma rakamları, önekler ve özel başlangıç değerleriyle PDF sayfa etiketleri uygulayın.",
"uploadHint": "PDF dosyası",
"howLabelsWorkTitle": "Etiketler nasıl çalışır",
"howLabelsWorkStep1": "Tüm sayfaları etiketlemek için Sayfa Aralığını boş bırakın.",
"howLabelsWorkStep2": "Ön sayfalar için Roma rakamları, ana bölüm için ondalık numaralandırma gibi stiller kullanın.",
"howLabelsWorkStep3": "A-0, A-1, A-2 gibi etiketler oluşturmak için Başlangıç Değeri 0 ile Önek kullanın.",
"howLabelsWorkStep4": "Tek bir kural 1-9,30-40 veya tek sayfalar gibi kesik bir aralık kullandığında ilerlemeyi etkinleştirin.",
"labelRulesTitle": "Etiket Kuralları",
"addRule": "Kural Ekle",
"removeExistingLabels": "Bu kuralları uygulamadan önce mevcut sayfa etiketlerini kaldır",
"cpdfNote": "Bu araç tarayıcınızda CoherentPDF kullanır. CoherentPDF yapılandırılmadıysa WASM Ayarlarında kurmanız istenir.",
"processButton": "Sayfa etiketleri ekle",
"howItWorksUploadTitle": "Dosya Yükle",
"howItWorksUploadDescription": "Yeniden etiketlemek istediğiniz PDF'yi seçin.",
"howItWorksDefineTitle": "Kuralları Tanımla",
"howItWorksDefineDescription": "Sayfa aralıkları, stiller, önekler ve başlangıç değerleriyle bir veya daha fazla sayfa etiketi kuralı ayarlayın.",
"howItWorksDownloadTitle": "İndir",
"howItWorksDownloadDescription": "Yeni sayfa etiketleriyle güncellenmiş PDF'yi kaydedin.",
"relatedToolsTitle": "İlgili PDF Araçları",
"faqWhatIsQuestion": "Sayfa etiketi nedir?",
"faqWhatIsAnswer": "Sayfa etiketi, PDF okuyucuların küçük resimlerde, sayfa gezintisinde ve yazdırma pencerelerinde gösterdiği numaralandırmadır. Sayfanın üzerine yeni metin basmaz.",
"faqMixQuestion": "Roma rakamları ile normal sayıları karıştırabilir miyim?",
"faqMixAnswer": "Evet. Örneğin 1-4 için LowercaseRoman ve 5-20 için DecimalArabic gibi birden fazla kural ekleyin.",
"faqPrivacyQuestion": "Dosyalarım gizli kalır mı?",
"faqPrivacyAnswer": "Evet. İşleme CoherentPDF WASM kullanılarak tarayıcınızda yapılır. PDF'niz cihazınızdan çıkmaz.",
"invalidFileTitle": "Geçersiz Dosya",
"invalidFileMessage": "Lütfen geçerli bir PDF dosyası yükleyin.",
"loadingPdf": "PDF yükleniyor...",
"protectedPdfTitle": "Korumalı PDF",
"protectedPdfMessage": "Bu PDF parola korumalıdır. Önce Şifre Çözme veya İzinleri Değiştir aracını kullanın.",
"loadErrorMessage": "PDF dosyası yüklenemedi. Dosya geçersiz, bozuk veya parola korumalı olabilir.",
"fileMeta": "{{size}} • {{count}} sayfa",
"ruleTitle": "Etiket Kuralı {{number}}",
"pageRangeLabel": "Sayfa Aralığı",
"pageRangePlaceholder": "Tüm sayfalar veya örn. 1-4, 7, tek",
"labelStyleLabel": "Etiket Stili",
"labelPrefixLabel": "Etiket Ön Eki",
"labelPrefixPlaceholder": "İsteğe bağlı önek, örn. A-",
"startValueLabel": "Başlangıç Değeri",
"continueNumbering": "Kesik aralıklarda numaralandırmayı sürdür",
"examplesNote": "Örnekler: Roma rakamlı ön sayfalar için 1-4, A- öneki ve 0 başlangıç değeriyle 15-20 veya ilerleme açıkken tek sayfalar.",
"uploadFirstMessage": "Önce bir PDF dosyası yükleyin.",
"applyingLabels": "Sayfa etiketleri uygulanıyor...",
"invalidRangeMessage": "{{number}} numaralı kuralda geçersiz bir sayfa aralığı var: {{range}}",
"allPages": "tüm sayfalar",
"emptyOutputMessage": "CoherentPDF boş bir dosya üretti.",
"successMessage": "Sayfa etiketleri başarıyla eklendi!",
"processErrorMessage": "Sayfa etiketleri eklenemedi.",
"styleOptions": {
"DecimalArabic": "Ondalık sayılar",
"LowercaseRoman": "Küçük Roma rakamları",
"UppercaseRoman": "Büyük Roma rakamları",
"LowercaseLetters": "Küçük harfler",
"UppercaseLetters": "Büyük harfler",
"NoLabelPrefixOnly": "Numarasız yalnızca önek"
}
},
"batesNumbering": {
"name": "Bates Numaralandırma",
"subtitle": "Bir veya daha fazla PDF dosyasına sıralı Bates numaraları ekleyin."