From 2c6d36037acb9b4f0525f6242d778a17727e78af Mon Sep 17 00:00:00 2001 From: alam00000 Date: Fri, 27 Feb 2026 15:00:51 +0530 Subject: [PATCH] refactor: move PageWatermarkConfig interface to dedicated types file feat(i18n): add missing translations for 5 languages - be: common.close, upload.clearFiles - zh: addStamps username fields - zh-TW, tr, pt: compressPdf compression settings --- public/locales/be/common.json | 4 +++- public/locales/pt/tools.json | 24 +++++++++++++++++++++++- public/locales/tr/tools.json | 24 +++++++++++++++++++++++- public/locales/zh-TW/tools.json | 24 +++++++++++++++++++++++- public/locales/zh/tools.json | 5 ++++- src/js/logic/add-watermark-page.ts | 18 +----------------- src/js/types/add-watermark-type.ts | 16 ++++++++++++++++ 7 files changed, 93 insertions(+), 22 deletions(-) diff --git a/public/locales/be/common.json b/public/locales/be/common.json index 01d5eea..3161429 100644 --- a/public/locales/be/common.json +++ b/public/locales/be/common.json @@ -67,6 +67,7 @@ "filesNeverLeave": "Вашы файлы ніколі не пакідаюць прыладу.", "addMore": "Дадаць больш файлаў", "clearAll": "Ачысціць усё", + "clearFiles": "Ачысціць файлы", "hints": { "singlePdf": "Адзін файл PDF", "pdfFile": "Файл PDF", @@ -253,7 +254,8 @@ "error": "Памылка", "success": "Поспех", "file": "Файл", - "files": "Файлы" + "files": "Файлы", + "close": "Зачыніць" }, "about": { "hero": { diff --git a/public/locales/pt/tools.json b/public/locales/pt/tools.json index 3d3c848..05d96cd 100644 --- a/public/locales/pt/tools.json +++ b/public/locales/pt/tools.json @@ -22,7 +22,29 @@ }, "compressPdf": { "name": "Comprimir PDF", - "subtitle": "Reduza o tamanho do arquivo do seu PDF." + "subtitle": "Reduza o tamanho do arquivo do seu PDF.", + "algorithmLabel": "Algoritmo de Compressão", + "condense": "Condense (Recomendado)", + "photon": "Photon (Para PDFs com Muitas Fotos)", + "condenseInfo": "Condense usa compressão avançada: remove dados desnecessários, otimiza imagens, subconjunta fontes. Ideal para a maioria dos PDFs.", + "photonInfo": "Photon converte páginas em imagens. Use para PDFs com muitas fotos/digitalizados.", + "photonWarning": "Aviso: O texto ficará não selecionável e os links deixarão de funcionar.", + "levelLabel": "Nível de Compressão", + "light": "Leve (Preservar Qualidade)", + "balanced": "Equilibrado (Recomendado)", + "aggressive": "Agressivo (Arquivos Menores)", + "extreme": "Extremo (Compressão Máxima)", + "grayscale": "Converter para Escala de Cinza", + "grayscaleHint": "Reduz o tamanho do arquivo removendo informações de cor", + "customSettings": "Configurações Personalizadas", + "customSettingsHint": "Ajuste fino dos parâmetros de compressão:", + "outputQuality": "Qualidade de Saída", + "resizeImagesTo": "Redimensionar Imagens Para", + "onlyProcessAbove": "Processar Apenas Acima de", + "removeMetadata": "Remover metadados", + "subsetFonts": "Subconjunto de fontes (remover glifos não utilizados)", + "removeThumbnails": "Remover miniaturas incorporadas", + "compressButton": "Comprimir PDF" }, "pdfEditor": { "name": "Editor de PDF", diff --git a/public/locales/tr/tools.json b/public/locales/tr/tools.json index 17a7bc8..2231fec 100644 --- a/public/locales/tr/tools.json +++ b/public/locales/tr/tools.json @@ -22,7 +22,29 @@ }, "compressPdf": { "name": "PDF Sıkıştır", - "subtitle": "PDF dosya boyutunu küçültün." + "subtitle": "PDF dosya boyutunu küçültün.", + "algorithmLabel": "Sıkıştırma Algoritması", + "condense": "Condense (Önerilen)", + "photon": "Photon (Fotoğraf Ağırlıklı PDF'ler İçin)", + "condenseInfo": "Condense gelişmiş sıkıştırma kullanır: gereksiz verileri kaldırır, görselleri optimize eder, fontları küçültür. Çoğu PDF için idealdir.", + "photonInfo": "Photon sayfaları görsellere dönüştürür. Fotoğraf ağırlıklı/taranmış PDF'ler için kullanın.", + "photonWarning": "Uyarı: Metin seçilemez hale gelecek ve bağlantılar çalışmayacak.", + "levelLabel": "Sıkıştırma Seviyesi", + "light": "Hafif (Kaliteyi Koru)", + "balanced": "Dengeli (Önerilen)", + "aggressive": "Agresif (Daha Küçük Dosyalar)", + "extreme": "Aşırı (Maksimum Sıkıştırma)", + "grayscale": "Gri Tonlamaya Dönüştür", + "grayscaleHint": "Renk bilgisini kaldırarak dosya boyutunu küçültür", + "customSettings": "Özel Ayarlar", + "customSettingsHint": "Sıkıştırma parametrelerini ince ayarlayın:", + "outputQuality": "Çıktı Kalitesi", + "resizeImagesTo": "Görselleri Şu Boyuta Dönüştür", + "onlyProcessAbove": "Yalnızca Şunun Üzerini İşle", + "removeMetadata": "Meta verileri kaldır", + "subsetFonts": "Font alt kümesi oluştur (kullanılmayan glifleri kaldır)", + "removeThumbnails": "Gömülü küçük resimleri kaldır", + "compressButton": "PDF'yi Sıkıştır" }, "pdfEditor": { "name": "PDF Düzenleyici", diff --git a/public/locales/zh-TW/tools.json b/public/locales/zh-TW/tools.json index 016486f..6cc87e5 100644 --- a/public/locales/zh-TW/tools.json +++ b/public/locales/zh-TW/tools.json @@ -22,7 +22,29 @@ }, "compressPdf": { "name": "壓縮 PDF", - "subtitle": "降低你的 PDF 檔案大小。" + "subtitle": "降低你的 PDF 檔案大小。", + "algorithmLabel": "壓縮演算法", + "condense": "Condense(推薦)", + "photon": "Photon(適用於圖片較多的 PDF)", + "condenseInfo": "Condense 使用高級壓縮:移除冗餘資料、優化圖片、精簡字型。適用於大多數 PDF。", + "photonInfo": "Photon 將頁面轉換為圖片。適用於圖片較多/掃描的 PDF。", + "photonWarning": "警告:文字將無法選取,連結將失效。", + "levelLabel": "壓縮等級", + "light": "輕度(保持品質)", + "balanced": "平衡(推薦)", + "aggressive": "積極(更小檔案)", + "extreme": "極限(最大壓縮)", + "grayscale": "轉換為灰階", + "grayscaleHint": "透過移除色彩資訊來縮小檔案大小", + "customSettings": "自訂設定", + "customSettingsHint": "微調壓縮參數:", + "outputQuality": "輸出品質", + "resizeImagesTo": "調整圖片至", + "onlyProcessAbove": "僅處理高於", + "removeMetadata": "移除中繼資料", + "subsetFonts": "精簡字型(移除未使用的字符)", + "removeThumbnails": "移除嵌入的縮圖", + "compressButton": "壓縮 PDF" }, "pdfEditor": { "name": "PDF 編輯器", diff --git a/public/locales/zh/tools.json b/public/locales/zh/tools.json index ef863db..fd04ada 100644 --- a/public/locales/zh/tools.json +++ b/public/locales/zh/tools.json @@ -144,7 +144,10 @@ }, "addStamps": { "name": "添加印章", - "subtitle": "使用注释工具栏向您的 PDF 添加图片印章。" + "subtitle": "使用注释工具栏向您的 PDF 添加图片印章。", + "usernameLabel": "印章用户名", + "usernamePlaceholder": "输入您的姓名(用于印章)", + "usernameHint": "此名称将显示在您创建的印章上。" }, "removeAnnotations": { "name": "移除注释", diff --git a/src/js/logic/add-watermark-page.ts b/src/js/logic/add-watermark-page.ts index eb6431f..38d0366 100644 --- a/src/js/logic/add-watermark-page.ts +++ b/src/js/logic/add-watermark-page.ts @@ -12,7 +12,7 @@ import { addImageWatermark, parsePageRange, } from '../utils/pdf-operations.js'; -import { AddWatermarkState } from '@/types'; +import { AddWatermarkState, PageWatermarkConfig } from '@/types'; import * as pdfjsLib from 'pdfjs-dist'; pdfjsLib.GlobalWorkerOptions.workerSrc = new URL( @@ -20,22 +20,6 @@ pdfjsLib.GlobalWorkerOptions.workerSrc = new URL( import.meta.url ).toString(); -interface PageWatermarkConfig { - type: 'text' | 'image'; - x: number; - y: number; - text: string; - fontSize: number; - color: string; - opacityText: number; - angleText: number; - imageDataUrl: string | null; - imageFile: File | null; - imageScale: number; - opacityImage: number; - angleImage: number; -} - const pageState: AddWatermarkState = { file: null, pdfDoc: null, diff --git a/src/js/types/add-watermark-type.ts b/src/js/types/add-watermark-type.ts index 0fef71d..898d5c4 100644 --- a/src/js/types/add-watermark-type.ts +++ b/src/js/types/add-watermark-type.ts @@ -8,3 +8,19 @@ export interface AddWatermarkState { watermarkX: number; // 0–1, percentage from left watermarkY: number; // 0–1, percentage from top (flipped to bottom for PDF) } + +export interface PageWatermarkConfig { + type: 'text' | 'image'; + x: number; + y: number; + text: string; + fontSize: number; + color: string; + opacityText: number; + angleText: number; + imageDataUrl: string | null; + imageFile: File | null; + imageScale: number; + opacityImage: number; + angleImage: number; +}