From daeb3433328d5ae48e477f53a0a446c74e3f1d17 Mon Sep 17 00:00:00 2001
From: Alejandro Matos Click to select PDF or drag and drop Your files never leave your
- device.
+
+ Click to select a file
+
+ or drag and drop
+ Your files never leave your device.
+ Click or drop files to attach Any file type Click or drop files to attach Any file type
- Why BentoPDF?
Warning
- Your data never leaves your device
+
We keep
diff --git a/package-lock.json b/package-lock.json
index 6034b9f89..792dfb42b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "bento-pdf",
- "version": "1.10.5",
+ "version": "1.11.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bento-pdf",
- "version": "1.10.5",
+ "version": "1.11.1",
"license": "Apache-2.0",
"dependencies": {
"@fontsource/cedarville-cursive": "^5.2.7",
@@ -54,7 +54,7 @@
"prettier": "^3.6.2",
"ts-migrate": "^0.1.35",
"typescript": "~5.9.3",
- "vite": "^7.1.11",
+ "vite": "^7.2.7",
"vite-plugin-node-polyfills": "^0.24.0",
"vitest": "^3.2.4"
}
@@ -12950,10 +12950,9 @@
}
},
"node_modules/vite": {
- "version": "7.1.11",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
- "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
- "license": "MIT",
+ "version": "7.2.7",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz",
+ "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==",
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.5.0",
diff --git a/package.json b/package.json
index 2ab2dc65d..ce3ecc409 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,7 @@
"prettier": "^3.6.2",
"ts-migrate": "^0.1.35",
"typescript": "~5.9.3",
- "vite": "^7.1.11",
+ "vite": "^7.2.7",
"vite-plugin-node-polyfills": "^0.24.0",
"vitest": "^3.2.4"
},
diff --git a/public/locales/de/common.json b/public/locales/de/common.json
index 2b50a01af..e2defa6e1 100644
--- a/public/locales/de/common.json
+++ b/public/locales/de/common.json
@@ -61,7 +61,575 @@
"pdfOrImages": "PDFs oder Bilder",
"filesNeverLeave": "Ihre Dateien verlassen nie Ihr Gerät.",
"addMore": "Weitere Dateien hinzufügen",
- "clearAll": "Alle löschen"
+ "clearAll": "Alle löschen",
+ "singleFile": "Eine einzelne PDF",
+ "oneOrMorePdfs": "Eine oder mehrere PDF",
+ "pdfFile": "PDF datei",
+ "jpgImage": "jpg-Bild",
+ "pngImage": "PNG Image",
+ "webpImage": "WEBP Image",
+ "pdfDocuments": "PDF Documente",
+ "clickToSelectCsv": "Klicken Sie, um eine CSV Datei auszuwählen",
+ "clickToSelectJson": "Klicken Sie, um eine JSON Datei auszuwählen",
+ "allImages": "All Image Types",
+ "svgGraphics": "SVG Graphics",
+ "bmpImage": "BMP images",
+ "heicImage": "HEIC/HEIF images",
+ "tiffImage": "TIFF images",
+ "textFiles": "Text files (.txt)",
+ "atLeastTwoFiles": "Multiple PDF files (at least 2)",
+ "clickOrDrop": "Click or Drop"
+ },
+ "bookmarks": {
+ "autoExtract": "Vorhandene Lesezeichen automatisch extrahieren",
+ "importBookmarks": "Oder importiere deine Lesezeichen",
+ "cvsFormats": "CSV format: title,page,level"
+ },
+ "toc": {
+ "title": "TOC Title",
+ "fontSize": "Font size",
+ "fontFamily": "Font Family",
+ "addBookmarkToToc": "Lesezeichen für die Inhaltsverzeichnisseite hinzufügen"
+ },
+ "buttons": {
+ "invertColors": "Invert Colors",
+ "generateToc": "Generate Table of Contents",
+ "changeBackgroundColor": "Hintergrund Farbe Wechseln",
+ "changeTextColor": "Change Text Color",
+ "sign": "Save & Download Signed PDF",
+ "stamp": "Save Stamped PDF",
+ "removeAnnotations": "Remove Annotations",
+ "cropAndDownload": "Crop & Download",
+ "downloadForm": "Download PDF Form",
+ "detectBlandPages": "Detect Blank Pages",
+ "removeBlandPages": "Remove Blank Pages",
+ "convertToPdf": "Convert to PDF",
+ "uploadFiles": "Upload files",
+ "typeText": "Type Text",
+ "createPdf": "Create PDF",
+ "downloadAllZip": "Download All as ZIP",
+ "toGreyscale": "Convert to Greyscale",
+ "toJson": "Convert to JSON",
+ "startOcr": "Start OCR",
+ "fileMode": "File Mode",
+ "pageMode": "Page Mode",
+ "mergePdf": "Merge PDFs",
+ "mixPages": "Mix Pages",
+ "saveChanges": "Save Changes",
+ "addAttachments": "Add Attachments",
+ "extractAttachment": "Extract Attachments",
+ "split": "Split PDF",
+ "divide": "Divide Pages",
+ "extract": "Extract & Download ZIP",
+ "delete": "Delete Pages & Download",
+ "reverse": "Reverse Pages",
+ "rotate": "Apply Rotations",
+ "nup": "Create N-Up PDF",
+ "combine": "Combine Pages",
+ "metadata": "Copy Metadata as JSON",
+ "addCustomField": "Add Custom Field",
+ "saveMetadata": "Save Metadata",
+ "saveZip": "Create ZIP Archive",
+ "compare": {
+ "overlay": "Overlay",
+ "sideBySide": "Side-by-Side",
+ "flicker": "Flicker"
+ },
+ "posterize": "Posterize PDF",
+ "compress": "Compress PDF",
+ "fixSize": "Fix Page Size",
+ "linearize": "Linearize PDF(s)",
+ "removeRestrictions": "Remove Restrictions",
+ "repair": "Repair PDF",
+ "encrypt": "Encrypt PDF",
+ "sanitize": "Sanitize PDF",
+ "decrypt": "Decrypt PDF",
+ "flatten": "Flatten PDF(s)",
+ "removeMetadata": "Remove All Metadata",
+ "changePermissions": "Change Permissions"
+ },
+ "invertColors": {
+ "clickToInvertColors": "Klicke auf die Button unten, um alle Farben in Ihrer PDF-Datei umzukehren."
+ },
+ "background": {
+ "color": "Hintergrund Farbe"
+ },
+ "textColor": {
+ "newTextColor": "New Text Color"
+ },
+ "sign": {
+ "flatten": "Flatten PDF (use the Save button below)"
+ },
+ "stamp": {
+ "editor": "Stamp Editor"
+ },
+ "removeAnnotations": {
+ "clickToRemove": "Click the button below to remove all annotations from your PDF."
+ },
+ "crop": {
+ "flatten": "Flattening Crop (converts pages to images)",
+ "applyToAll": "Apply to all pages"
+ },
+ "formFiller": {
+ "hint": "PDF file with form fields"
+ },
+ "formCreator": {
+ "createBlank": "Create Blank PDF",
+ "selectToEdit": "Select a field to edit properties",
+ "pressToDelete": "Press Delete to remove selected field",
+ "text": "Text",
+ "checkbox": "Checkbox",
+ "radio": "Radio",
+ "dropdown": "Dropdown",
+ "list": "List",
+ "button": "Button",
+ "signature": "Signature",
+ "date": "Date",
+ "image": "Image"
+ },
+ "removeBlankPage": {
+ "sensitivity": "Sensitivity",
+ "higherValues": "Higher values detect more pages as blank"
+ },
+ "imageToPdf": {
+ "quality": "PDF Quality",
+ "high": "High Quality (Larger file)",
+ "medium": "Medium Quality (Balanced)",
+ "low": "Low Quality (Smaller file)",
+ "controls": "Controls image compression when embedding into PDF"
+ },
+ "textToPdf": {
+ "selectLanguage": "Select Languages",
+ "defaultLanguage": "English (Default)",
+ "searchPlaceholder": "Search Languages",
+ "fontSize": "Font Size",
+ "pageSize": "Page Size",
+ "customSize": "Custom Size",
+ "landscape": "Landscape",
+ "portrait": "Portrait",
+ "width": "Width",
+ "height": "Height",
+ "textColor": "Text color"
+ },
+ "pdfToImage": {
+ "quality": "Image quality",
+ "qualityNote": "Higher quality = larger file size"
+ },
+ "pdfToPng": {
+ "scale": "Image scale",
+ "scaleNote": "Higher scale = better quality but larger file size"
+ },
+ "pdfToOcr": {
+ "languages": "Languages in Document",
+ "languagesPlaceholder": "Search for languages...",
+ "selected": "Selected",
+ "none": "None",
+ "advancedSettings": {
+ "title": "Advanced Settings (Recommended to improve accuracy)",
+ "resolution": {
+ "title": "Resolution",
+ "standard": "Standard",
+ "high": "High",
+ "ultra": "Ultra"
+ }
+ },
+ "binarize": "Binarize Image (Enhance Contrast for Clean Scans)",
+ "whitelist": {
+ "title": "Character Whitelist Preset",
+ "none": "None (All characters)",
+ "alphanumeric": "Alphanumeric + Basic Punctuation",
+ "currency": "Numbers + Currency Symbols",
+ "letters": "Letters Only (A-Z, a-z)",
+ "numbers": "Numbers Only (0-9)",
+ "invoice": "Invoice/Receipt (Numbers, $, ., -, /)",
+ "forms": "Forms (Alphanumeric + Common Symbols)",
+ "custom": "Custom",
+ "note": "Only these characters will be recognized. Leave empty for all characters.",
+ "optional": "Character Whitelist Preset (Optional)"
+ }
+ },
+ "mergePdf": {
+ "how": "How it works:",
+ "fileMode": {
+ "drag": "Click and drag the",
+ "icon": "icon to change the order of the files.",
+ "specifyRanges": "In the \"Pages\" box for each file, you can specify ranges (e.g., \"1-3, 5\") to merge only those pages.",
+ "leavePages": "Leave the \"Pages\" box blank to include all pages from that file."
+ },
+ "pageMode": {
+ "all": "All pages from your uploaded PDFs are shown below.",
+ "drag": "Simply drag and drop the individual page thumbnails to create the exact order you want for your new file."
+ }
+ },
+ "alternate": {
+ "filesOrder": "Files Order",
+ "reorder": "Drag to reorder. Pages will be interleaved in this order."
+ },
+ "attachment": {
+ "select": "Select Files to Attach",
+ "dropToAttach": "Click or drop files to attach",
+ "anyType": "Any file type",
+ "level": {
+ "attachment": "Attachment Level",
+ "document": "Document Level",
+ "page": "Page Level"
+ },
+ "range": "Page Range",
+ "attachments": "Attachments"
+ },
+ "multiTool": {
+ "uploadPdfs": "Upload PDFs",
+ "upload": "Upload",
+ "addBlankPage": "Add Blank Page",
+ "edit": "Edit:",
+ "undo": "Undo",
+ "redo": "Redo",
+ "reset": "Reset",
+ "selection": "Selection:",
+ "selectAll": "Select All",
+ "deselectAll": "Deselect All",
+ "rotate": "Rotate:",
+ "left": "Left",
+ "right": "Right",
+ "transform": "Transform",
+ "duplicate": "Duplicate",
+ "split": "Split",
+ "clear": "Clear:",
+ "downloadSelected": "Download Selected",
+ "exportPdf": "Export PDF",
+ "uploadPdfFile": "Upload PDF files",
+ "dragOrClick": "Drag and drop PDF files here, or click to select",
+ "selectFiles": "Select Files"
+ },
+ "split": {
+ "splitMode": "Split Mode",
+ "range": "Extract by Page Range (Default)",
+ "evenOdd": "Split by Even/Odd Pages",
+ "all": "Split All Pages into Separate Files",
+ "selected": "Select Pages Visually",
+ "bookmarks": "Split by Bookmarks",
+ "nTimes": "Split N Times",
+ "how": "How it works:",
+ "rangeMode": {
+ "numbers": "Enter page numbers separated by commas (e.g., 2, 8, 14).",
+ "pages": "Enter page ranges using a hyphen (e.g., 5-10).",
+ "combine": "Combine them for complex selections (e.g., 1-3, 7, 12-15).",
+ "pageRange": "Page Range"
+ },
+ "evenOddMode": {
+ "info": "Extract all even pages (2, 4, 6...) or all odd pages (1, 3, 5...) into a new PDF.",
+ "even": "Even Pages",
+ "odd": "Odd Pages"
+ },
+ "allMode": {
+ "every": "Every single page of the PDF will be saved as a separate PDF file.",
+ "result": "The result will be downloaded as a ZIP file containing all the pages."
+ },
+ "selectedMode": {
+ "click": "Click on the page thumbnails below to select the pages you want to extract.",
+ "selected": "Selected pages will be highlighted."
+ },
+ "bookmarksMode": {
+ "split": "Split the PDF based on its bookmarks (outline).",
+ "select": "Select the bookmark level to split at.",
+ "level": {
+ "title": "Bookmark Level",
+ "all": "All Levels",
+ "0": "Level 0 (Top Level Only)",
+ "1": "Level 1",
+ "2": "Level 2",
+ "3": "Level 3"
+ }
+ },
+ "nTimesMode": {
+ "split": "Split the PDF into multiple files, each containing N pages.",
+ "ppf": "Pages per file (N)"
+ },
+ "zipOption": "Download as ZIP (for multiple files)"
+ },
+ "divide": {
+ "how": "How it works:",
+ "vertical": "Vertical",
+ "verticalHalfs": "Split each page into left and right halves.",
+ "horizontal": "Horizontal",
+ "horizontalHalfs": "Split each page into top and bottom halves.",
+ "result": "The result will have twice as many pages as the original.",
+ "splitDirection": "Split Direction",
+ "splitVertical": "Vertical (Left & Right)",
+ "splitHorizontal": "Horizontal (Top & Bottom)"
+ },
+ "extract": {
+ "total": "Total Pages:",
+ "enterPages": "Enter pages to extract (e.g., 2, 4-6, 9):",
+ "placeholder": "e.g., 2, 4-6, 9"
+ },
+ "delete": {
+ "totalPages": "Total Pages:",
+ "pagesToDelete": "Enter pages to delete (e.g., 2, 4-6, 9):",
+ "placeholder": "e.g., 2, 4-6, 9"
+ },
+ "addBlankPages": {
+ "how": "How it works:",
+ "specify": "Specify the position where blank pages should be inserted.",
+ "position": "Position 0 inserts at the beginning, position equal to page count inserts at the end.",
+ "match": "Blank pages will match the size of the first page in your document.",
+ "insert": {
+ "after": "Insert after page",
+ "zero": "Enter 0 to insert at the beginning",
+ "number": "Number of blank pages"
+ }
+ },
+ "reverse": {
+ "how": "How it works:",
+ "all": "All pages will be reversed (first becomes last, last becomes first).",
+ "ifUpload": "If you upload multiple PDFs, each will be reversed and downloaded as a ZIP file."
+ },
+ "rotate": {
+ "batchActions": "Batch Actions",
+ "rotate90": "Rotate by 90 Degrees",
+ "rotateCustom": "Rotate by Custom Degrees",
+ "left": "Left",
+ "right": "Right",
+ "apply": "Apply"
+ },
+ "nup": {
+ "how": "How it works:",
+ "choose": "Choose how many pages to fit on each sheet (2, 4, 9, or 16).",
+ "select": "Select output page size and orientation.",
+ "optionally": "Optionally add margins and borders around each page.",
+ "pagesPerSheet": {
+ "info": "Pages per Sheet",
+ "two": "2-up (1x2)",
+ "four": "4-up (2x2)",
+ "nine": "9-up (3x3)",
+ "sixteen": "16-up (4x4)"
+ },
+ "output": {
+ "info": "Output Page Size",
+ "letter": "Letter (8.5\" x 11\")",
+ "legal": "Legal"
+ },
+ "orientation": {
+ "info": "Orientation",
+ "auto": "Auto",
+ "portrait": "Portrait",
+ "landscape": "Landscape"
+ },
+ "addMargin": "Add Margins",
+ "addBorders": "Add Borders",
+ "borderColors": "Border Color"
+ },
+ "combine": {
+ "layout": {
+ "info": "Layout Direction",
+ "vertical": "Vertical (Top to Bottom)",
+ "horizontal": "Horizontal (Left to Right)"
+ },
+ "spacing": "Spacing (pixels)",
+ "backgroundColor": "Background Color",
+ "addSeparator": "Add Separator Lines",
+ "separatorThickness": "Separator Thickness",
+ "separatorColor": "Separator Color"
+ },
+ "metadata":"Document Metadata",
+ "editMetadata": {
+ "info": "Edit Metadata",
+ "title": "Title",
+ "author": "Author",
+ "subject": "Subject",
+ "keywords": "Keywords",
+ "creator": "Creator",
+ "producer": "Producer",
+ "creationDate": "Creation Date",
+ "modificationDate": "Modification Date",
+ "customFields": {
+ "info": "Custom Fields",
+ "note": "Note: Custom fields are not supported by all PDF readers."
+ }
+ },
+ "toZip": {
+ "how": "How it works:",
+ "all": "All selected PDF files will be packaged into a single ZIP archive.",
+ "file": "File names will be preserved in the archive."
+ },
+ "compare": {
+ "first": "First PDF",
+ "second": "Second PDF",
+ "opacity": "Opacity",
+ "syncScrolling": "Sync Scrolling"
+ },
+ "posterize": {
+ "pagePreview": "Page Preview",
+ "gridLayout": "Grid Layout",
+ "rows": "Rows",
+ "columns": "Columns",
+ "outputPageSettings": "Output Page Settings",
+ "pageSize": "Page Size",
+ "letter": "Letter",
+ "legal": "Legal",
+ "orientation": "Orientation",
+ "auto": "Automatic (Recommended)",
+ "portrait": "Portrait",
+ "landscape": "Landscape",
+ "advanced": {
+ "info": "Advanced Options",
+ "contentScaling": "Content Scaling",
+ "fit": "Fit",
+ "preserves": "Preserves all content, may add margins.",
+ "fill": "Fill (Crop)",
+ "fillPage": "Fills the page, may crop content.",
+ "overlap": "Overlap (for assembly)",
+ "points": "Points",
+ "inches": "Inches",
+ "mm": "mm",
+ "pageRange": "Page Range (optional)",
+ "totalPages": "Total pages:"
+ }
+
+ },
+ "compress": {
+ "level": {
+ "info": "Compression Level",
+ "balanced": "Balanced (Recommended)",
+ "high": "High Quality (Larger file)",
+ "small": "Smallest Size (Lower quality)",
+ "extreme": "Extreme (Very low quality)"
+ },
+ "algorithm": {
+ "info": "Compression Algorithm",
+ "vector": "Vector (For Text Heavy PDF)",
+ "photon": "Photon (For Complex Images & Drawings)",
+ "note": "Choose 'Vector' for text based PDFs, or 'Photon' for scanned documents and complex images."
+ }
+ },
+ "fixPageSize": {
+ "target": "Target Page Size",
+ "letter": "Letter (8.5 × 11 in)",
+ "legal": "Legal (8.5 × 14 in)",
+ "tabloid": "Tabloid (11 × 17 in)",
+ "custom": "Custom...",
+ "width": "Width",
+ "height": "Height",
+ "units": "Units",
+ "inches": "Inches",
+ "mm": "Millimiters",
+ "orientation": "Orientation",
+ "auto": "Auto (Keep Original)",
+ "portrait": "Portrait",
+ "landscape": "Landscape",
+ "scaling": "Content Scaling",
+ "fit": "Fit",
+ "fitInfo": "Preserves all content, may add margins.",
+ "fill": "Fill (Crop)",
+ "fillInfo": "Fills the page, may crop content.",
+ "backgroundColor": "Background Color",
+ "colorMargin": "Color for margins/padding"
+ },
+ "linearize": {
+ "whatIs": "What is linearization?",
+ "optimizes": "Optimizes PDF structure for web viewing",
+ "enables": "Enables progressive loading (first page displays faster)",
+ "improves": "Improves user experience for online PDFs",
+ "also": "Also known as \"Fast Web View\" or \"Optimized\""
+ },
+ "pageDimensions": {
+ "units": "Units:",
+ "points": "Points (pt)",
+ "inches": "Inches (in)",
+ "mm": "Millimeters (mm)",
+ "pixels": "Pixels (px)",
+ "export": "Export to CSV",
+ "page":"Page #",
+ "dimensions": "Dimensions",
+ "standard": "Standard Size",
+ "orientation": "Orientation",
+ "ascpect": "Aspect Ratio",
+ "area": "Area",
+ "rotation": "Rotation"
+ },
+ "removeRestrictions": {
+ "password": "Owner Password (Optional)",
+ "passwordPlaceholder": "Enter owner password if required",
+ "leaveEmpty":"Leave empty if the PDF has no owner password.",
+ "info": {
+ "what": "What will be removed:",
+ "password": "Password protection",
+ "printing": "Printing restrictions",
+ "editing": "Editing restrictions",
+ "copying": "Copying restrictions",
+ "all": "All other security limitations"
+ }
+ },
+ "encrypt": {
+ "password": "User Password (Required)",
+ "passwordPlaceholder": "Enter password to open PDF.",
+ "passwordHint": "This password will be required to open the PDF.",
+ "ownerPassword": "Owner Password (Optional)",
+ "ownerPasswordPlaceholder": "Enter password for permissions (optional)",
+ "ownerPasswordHint": "If provided, usage restrictions will be applied. Leave empty for no restrictions.",
+ "info": {
+ "details": "Encryption Details:",
+ "aes": "256-bit AES encryption (highest security)",
+ "userPassword": "User password required to open PDF",
+ "ownerPassword": "Owner password enables usage restrictions",
+ "without": "Without owner password: no restrictions applied"
+ }
+ },
+ "sanitize": {
+ "options": "Sanitization Options:",
+ "flatten": "Flatten Forms",
+ "remove": {
+ "metadata": "Remove Metadata",
+ "annotations": "Remove Annotations",
+ "javascript": "Remove JavaScript",
+ "embeddedFiles": "Remove Embedded Files",
+ "layers": "Remove Layers (OCG)",
+ "links": "Remove Links",
+ "sctructure":"Remove Structure Tree",
+ "markinfo": "Remove MarkInfo",
+ "embeddedFonts": "Remove Embedded Fonts"
+ },
+ "info": "Sanitization removes sensitive content permanently. Some options may affect PDF rendering."
+ },
+ "decrypt": {
+ "password": "PDF Password",
+ "passwordPlaceholder": "Enter the PDF password",
+ "info": "Enter the password used to protect this PDF."
+ },
+ "flatten": {
+ "what": "What will be flattened:",
+ "form": "Form fields (text fields, checkboxes, radio buttons, etc.)",
+ "annotations": "Annotations and comments",
+ "interactive": "Interactive elements",
+ "note": "Note: Flattened content cannot be edited or filled out."
+ },
+ "removeMetadata": {
+ "what": "What will be removed:",
+ "title": "Title, Author, Subject, Keywords",
+ "creator": "Creator and Producer information",
+ "creation": "Creation and Modification dates",
+ "xmp": "XMP Metadata streams",
+ "documentId": "Document IDs",
+ "pieceInfo": "PieceInfo (private application data)"
+ },
+ "changePermissions": {
+ "password": "Current Password (if encrypted)",
+ "passwordPlaceholder": "Enter current password",
+ "userPassword": "New User Password",
+ "userPasswordPlaceholder": "Password to open PDF",
+ "ownerPassword": "New Owner Password",
+ "ownerPasswordPlaceholder": "Password for permissions",
+ "ownerPasswordInfo": "Leave both passwords empty to decrypt the PDF.",
+ "info": {
+ "title": "Permissions (requires owner password)",
+ "printing": "Allow Printing",
+ "copying": "Allow Copying Text",
+ "modifying": "Allow Modifying",
+ "annotating": "Allow Annotating",
+ "filling": "Allow Filling Forms",
+ "document": "Allow Document Assembly",
+ "page": "Allow Page Extraction"
+ }
},
"loader": {
"processing": "Verarbeitung..."
@@ -221,7 +789,17 @@
"error": "Fehler",
"success": "Erfolg",
"file": "Datei",
- "files": "Dateien"
+ "files": "Dateien",
+ "jsonFormat": "JSON Format",
+ "or": "Oder",
+ "properties": "Properties",
+ "field": "field(s)",
+ "goto": "Go to:",
+ "go": "Go",
+ "grid": "Grid:",
+ "reset": "Reset",
+ "addPage": "Add page",
+ "fields": "Fields"
},
"about": {
"hero": {
diff --git a/public/locales/de/tools.json b/public/locales/de/tools.json
index af7bf4631..4c9dd39ae 100644
--- a/public/locales/de/tools.json
+++ b/public/locales/de/tools.json
@@ -94,7 +94,12 @@
},
"pdfFormFiller": {
"name": "PDF-Formular ausfüllen",
- "subtitle": "Formulare direkt im Browser ausfüllen. Unterstützt auch XFA-Formulare."
+ "subtitle": "Formulare direkt im Browser ausfüllen. Unterstützt auch XFA-Formulare.",
+ "info": "Upload a PDF with form fields. Fill them directly in the viewer below, then click the button to save and download the filled form. Also supports XFA forms.",
+ "note": {
+ "title": "Note on XFA Forms:",
+ "text": "XFA (XML Forms Architecture) is a legacy format that's only supported by certain PDF viewers like BentoPDF and Firefox. If you open an XFA PDF in other software and see blank pages or no form fields, it means that viewer doesn't support XFA. To view and fill XFA forms properly, use Firefox or BentoPDF's Form Filler."
+ }
},
"createPdfForm": {
"name": "PDF-Formular erstellen",
@@ -138,7 +143,11 @@
},
"jsonToPdf": {
"name": "JSON zu PDF",
- "subtitle": "JSON-Dateien in PDF-Format konvertieren."
+ "subtitle": "JSON-Dateien in PDF-Format konvertieren.",
+ "note": {
+ "title": "Note:",
+ "text": "Only JSON files created by the PDF-to-JSON converter tool are supported. Standard JSON files from other tools will not work. "
+ }
},
"pdfToJpg": {
"name": "PDF zu JPG",
@@ -170,7 +179,17 @@
},
"ocrPdf": {
"name": "OCR PDF",
- "subtitle": "Eine PDF durchsuchbar und kopierbar machen."
+ "subtitle": "Eine PDF durchsuchbar und kopierbar machen.",
+ "notes": {
+ "extract": "Extract Text:",
+ "extractDetail": "Uses Tesseract OCR to recognize text from scanned images or PDFs.",
+ "searchable": "Searchable Output:",
+ "searchableDetail": "Creates a new PDF with an invisible text layer, making your document fully searchable while preserving the original appearance.",
+ "characterFiltering": "Character Filtering:",
+ "characterFilteringDetail": "Use whitelists to filter out unwanted characters and improve accuracy for specific document types (invoices, forms, etc.).",
+ "multiLanguage": "Multi-language Support:",
+ "multiLanguageDetail": "Select multiple languages for documents containing mixed language content."
+ }
},
"alternateMix": {
"name": "Seiten abwechselnd mischen",
diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index fdd37417d..cb821ae97 100644
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -61,7 +61,573 @@
"pdfOrImages": "PDFs or Images",
"filesNeverLeave": "Your files never leave your device.",
"addMore": "Add More Files",
- "clearAll": "Clear All"
+ "clearAll": "Clear All",
+ "singleFile": "A single PDF file",
+ "oneOrMorePdfs": "One or more PDF files",
+ "pdfFile": "PDF file",
+ "jpgImage": "JPG image",
+ "pngImage": "PNG Image",
+ "webpImage": "WEBP Image",
+ "pdfDocuments": "PDF Documents",
+ "clickToSelectCsv": "Click to upload CSV",
+ "clickToSelectJson": "Click to upload JSON",
+ "allImages": "All Image Types",
+ "svgGraphics": "SVG Graphics",
+ "bmpImage": "BMP images",
+ "heicImage": "HEIC/HEIF images",
+ "tiffImage": "TIFF images",
+ "textFiles": "Text files (.txt)",
+ "atLeastTwoFiles": "Multiple PDF files (at least 2)",
+ "clickOrDrop": "Click or Drop"
+ },
+ "bookmarks": {
+ "autoExtract": "Auto-extract existing bookmarks",
+ "importBookmarks": "Or Import Bookmarks",
+ "cvsFormats": "CSV format: title,page,level",
+ "addBookmarkToToc": "Add bookmark for TOC page"
+ },
+ "toc": {
+ "title": "TOC Title",
+ "fontSize": "Font size",
+ "fontFamily": "Font Family"
+ },
+ "buttons": {
+ "invertColors": "Invert Colors",
+ "generateToc": "Generate Table of Contents",
+ "changeBackgroundColor": "Change Background Color",
+ "changeTextColor": "Change Text Color",
+ "sign": "Save & Download Signed PDF",
+ "stamp": "Save Stamped PDF",
+ "removeAnnotations": "Remove Annotations",
+ "cropAndDownload": "Crop & Download",
+ "downloadForm": "Download PDF Form",
+ "detectBlandPages": "Detect Blank Pages",
+ "removeBlandPages": "Remove Blank Pages",
+ "convertToPdf": "Convert to PDF",
+ "uploadFiles": "Upload files",
+ "typeText": "Type Text",
+ "createPdf": "Create PDF",
+ "downloadAllZip": "Download All as ZIP",
+ "toGreyscale": "Convert to Greyscale",
+ "toJson": "Convert to JSON",
+ "startOcr": "Start OCR",
+ "fileMode": "File Mode",
+ "pageMode": "Page Mode",
+ "mergePdf": "Merge PDFs",
+ "mixPages": "Mix Pages",
+ "saveChanges": "Save Changes",
+ "addAttachments": "Add Attachments",
+ "extractAttachment": "Extract Attachments",
+ "split": "Split PDF",
+ "divide": "Divide Pages",
+ "extract": "Extract & Download ZIP",
+ "delete": "Delete Pages & Download",
+ "reverse": "Reverse Pages",
+ "rotate": "Apply Rotations",
+ "nup": "Create N-Up PDF",
+ "combine": "Combine Pages",
+ "metadata": "Copy Metadata as JSON",
+ "addCustomField": "Add Custom Field",
+ "saveMetadata": "Save Metadata",
+ "saveZip": "Create ZIP Archive",
+ "compare": {
+ "overlay": "Overlay",
+ "sideBySide": "Side-by-Side",
+ "flicker": "Flicker"
+ },
+ "posterize": "Posterize PDF",
+ "compress": "Compress PDF",
+ "fixSize": "Fix Page Size",
+ "linearize": "Linearize PDF(s)",
+ "removeRestrictions": "Remove Restrictions",
+ "repair": "Repair PDF",
+ "encrypt": "Encrypt PDF",
+ "sanitize": "Sanitize PDF",
+ "decrypt": "Decrypt PDF",
+ "flatten": "Flatten PDF(s)",
+ "removeMetadata": "Remove All Metadata",
+ "changePermissions": "Change Permissions"
+ },
+ "invertColors": {
+ "clickToInvertColors": "Click the button below to invert all colors in your PDF."
+ },
+ "background": {
+ "color": "Background Color"
+ },
+ "textColor": {
+ "newTextColor": "New Text Color"
+ },
+ "sign": {
+ "flatten": "Flatten PDF (use the Save button below)"
+ },
+ "stamp": {
+ "editor": "Stamp Editor"
+ },
+ "removeAnnotations": {
+ "clickToRemove": "Click the button below to remove all annotations from your PDF."
+ },
+ "crop": {
+ "flatten": "Flattening Crop (converts pages to images)",
+ "applyToAll": "Apply to all pages"
+ },
+ "formFiller": {
+ "hint": "PDF file with form fields"
+ },
+ "formCreator": {
+ "createBlank": "Create Blank PDF",
+ "selectToEdit": "Select a field to edit properties",
+ "pressToDelete": "Press Delete to remove selected field",
+ "text": "Text",
+ "checkbox": "Checkbox",
+ "radio": "Radio",
+ "dropdown": "Dropdown",
+ "list": "List",
+ "button": "Button",
+ "signature": "Signature",
+ "date": "Date",
+ "image": "Image"
+ },
+ "removeBlankPage": {
+ "sensitivity": "Sensitivity",
+ "higherValues": "Higher values detect more pages as blank"
+ },
+ "imageToPdf": {
+ "quality": "PDF Quality",
+ "high": "High Quality (Larger file)",
+ "medium": "Medium Quality (Balanced)",
+ "low": "Low Quality (Smaller file)",
+ "controls": "Controls image compression when embedding into PDF"
+ },
+ "textToPdf": {
+ "selectLanguage": "Select Languages",
+ "defaultLanguage": "English (Default)",
+ "searchPlaceholder": "Search Languages",
+ "fontSize": "Font Size",
+ "pageSize": "Page Size",
+ "customSize": "Custom Size",
+ "landscape": "Landscape",
+ "portrait": "Portrait",
+ "width": "Width",
+ "height": "Height",
+ "textColor": "Text color"
+ },
+ "pdfToImage": {
+ "quality": "Image quality",
+ "qualityNote": "Higher quality = larger file size"
+ },
+ "pdfToPng": {
+ "scale": "Image scale",
+ "scaleNote": "Higher scale = better quality but larger file size"
+ },
+ "pdfToOcr": {
+ "languages": "Languages in Document",
+ "languagesPlaceholder": "Search for languages...",
+ "selected": "Selected",
+ "none": "None",
+ "advancedSettings": {
+ "title": "Advanced Settings (Recommended to improve accuracy)",
+ "resolution": {
+ "title": "Resolution",
+ "standard": "Standard",
+ "high": "High",
+ "ultra": "Ultra"
+ }
+ },
+ "binarize": "Binarize Image (Enhance Contrast for Clean Scans)",
+ "whitelist": {
+ "title": "Character Whitelist Preset",
+ "none": "None (All characters)",
+ "alphanumeric": "Alphanumeric + Basic Punctuation",
+ "currency": "Numbers + Currency Symbols",
+ "letters": "Letters Only (A-Z, a-z)",
+ "numbers": "Numbers Only (0-9)",
+ "invoice": "Invoice/Receipt (Numbers, $, ., -, /)",
+ "forms": "Forms (Alphanumeric + Common Symbols)",
+ "custom": "Custom",
+ "note": "Only these characters will be recognized. Leave empty for all characters.",
+ "optional": "Character Whitelist Preset (Optional)"
+ }
+ },
+ "mergePdf": {
+ "how": "How it works:",
+ "fileMode": {
+ "drag": "Click and drag the",
+ "icon": "icon to change the order of the files.",
+ "specifyRanges": "In the \"Pages\" box for each file, you can specify ranges (e.g., \"1-3, 5\") to merge only those pages.",
+ "leavePages": "Leave the \"Pages\" box blank to include all pages from that file."
+ },
+ "pageMode": {
+ "all": "All pages from your uploaded PDFs are shown below.",
+ "drag": "Simply drag and drop the individual page thumbnails to create the exact order you want for your new file."
+ }
+ },
+ "alternate": {
+ "filesOrder": "Files Order",
+ "reorder": "Drag to reorder. Pages will be interleaved in this order."
+ },
+ "attachment": {
+ "select": "Select Files to Attach",
+ "dropToAttach": "Click or drop files to attach",
+ "anyType": "Any file type",
+ "level": {
+ "attachment": "Attachment Level",
+ "document": "Document Level",
+ "page": "Page Level"
+ },
+ "range": "Page Range",
+ "attachments": "Attachments"
+ },
+ "multiTool": {
+ "uploadPdfs": "Upload PDFs",
+ "upload": "Upload",
+ "addBlankPage": "Add Blank Page",
+ "edit": "Edit:",
+ "undo": "Undo",
+ "redo": "Redo",
+ "reset": "Reset",
+ "selection": "Selection:",
+ "selectAll": "Select All",
+ "deselectAll": "Deselect All",
+ "rotate": "Rotate:",
+ "left": "Left",
+ "right": "Right",
+ "transform": "Transform",
+ "duplicate": "Duplicate",
+ "split": "Split",
+ "clear": "Clear:",
+ "downloadSelected": "Download Selected",
+ "exportPdf": "Export PDF",
+ "uploadPdfFile": "Upload PDF files",
+ "dragOrClick": "Drag and drop PDF files here, or click to select",
+ "selectFiles": "Select Files"
+ },
+ "split": {
+ "splitMode": "Split Mode",
+ "range": "Extract by Page Range (Default)",
+ "evenOdd": "Split by Even/Odd Pages",
+ "all": "Split All Pages into Separate Files",
+ "selected": "Select Pages Visually",
+ "bookmarks": "Split by Bookmarks",
+ "nTimes": "Split N Times",
+ "how": "How it works:",
+ "rangeMode": {
+ "numbers": "Enter page numbers separated by commas (e.g., 2, 8, 14).",
+ "pages": "Enter page ranges using a hyphen (e.g., 5-10).",
+ "combine": "Combine them for complex selections (e.g., 1-3, 7, 12-15).",
+ "pageRange": "Page Range"
+ },
+ "evenOddMode": {
+ "info": "Extract all even pages (2, 4, 6...) or all odd pages (1, 3, 5...) into a new PDF.",
+ "even": "Even Pages",
+ "odd": "Odd Pages"
+ },
+ "allMode": {
+ "every": "Every single page of the PDF will be saved as a separate PDF file.",
+ "result": "The result will be downloaded as a ZIP file containing all the pages."
+ },
+ "selectedMode": {
+ "click": "Click on the page thumbnails below to select the pages you want to extract.",
+ "selected": "Selected pages will be highlighted."
+ },
+ "bookmarksMode": {
+ "split": "Split the PDF based on its bookmarks (outline).",
+ "select": "Select the bookmark level to split at.",
+ "level": {
+ "title": "Bookmark Level",
+ "all": "All Levels",
+ "0": "Level 0 (Top Level Only)",
+ "1": "Level 1",
+ "2": "Level 2",
+ "3": "Level 3"
+ }
+ },
+ "nTimesMode": {
+ "split": "Split the PDF into multiple files, each containing N pages.",
+ "ppf": "Pages per file (N)"
+ },
+ "zipOption": "Download as ZIP (for multiple files)"
+ },
+ "divide": {
+ "how": "How it works:",
+ "vertical": "Vertical",
+ "verticalHalfs": "Split each page into left and right halves.",
+ "horizontal": "Horizontal",
+ "horizontalHalfs": "Split each page into top and bottom halves.",
+ "result": "The result will have twice as many pages as the original.",
+ "splitDirection": "Split Direction",
+ "splitVertical": "Vertical (Left & Right)",
+ "splitHorizontal": "Horizontal (Top & Bottom)"
+ },
+ "extract": {
+ "total": "Total Pages:",
+ "enterPages": "Enter pages to extract (e.g., 2, 4-6, 9):",
+ "placeholder": "e.g., 2, 4-6, 9"
+ },
+ "delete": {
+ "totalPages": "Total Pages:",
+ "pagesToDelete": "Enter pages to delete (e.g., 2, 4-6, 9):",
+ "placeholder": "e.g., 2, 4-6, 9"
+ },
+ "addBlankPages": {
+ "how": "How it works:",
+ "specify": "Specify the position where blank pages should be inserted.",
+ "position": "Position 0 inserts at the beginning, position equal to page count inserts at the end.",
+ "match": "Blank pages will match the size of the first page in your document.",
+ "insert": {
+ "after": "Insert after page",
+ "zero": "Enter 0 to insert at the beginning",
+ "number": "Number of blank pages"
+ }
+ },
+ "reverse": {
+ "how": "How it works:",
+ "all": "All pages will be reversed (first becomes last, last becomes first).",
+ "ifUpload": "If you upload multiple PDFs, each will be reversed and downloaded as a ZIP file."
+ },
+ "rotate": {
+ "batchActions": "Batch Actions",
+ "rotate90": "Rotate by 90 Degrees",
+ "rotateCustom": "Rotate by Custom Degrees",
+ "left": "Left",
+ "right": "Right",
+ "apply": "Apply"
+ },
+ "nup": {
+ "how": "How it works:",
+ "choose": "Choose how many pages to fit on each sheet (2, 4, 9, or 16).",
+ "select": "Select output page size and orientation.",
+ "optionally": "Optionally add margins and borders around each page.",
+ "pagesPerSheet": {
+ "info": "Pages per Sheet",
+ "two": "2-up (1x2)",
+ "four": "4-up (2x2)",
+ "nine": "9-up (3x3)",
+ "sixteen": "16-up (4x4)"
+ },
+ "output": {
+ "info": "Output Page Size",
+ "letter": "Letter (8.5\" x 11\")",
+ "legal": "Legal"
+ },
+ "orientation": {
+ "info": "Orientation",
+ "auto": "Auto",
+ "portrait": "Portrait",
+ "landscape": "Landscape"
+ },
+ "addMargin": "Add Margins",
+ "addBorders": "Add Borders",
+ "borderColors": "Border Color"
+ },
+ "combine": {
+ "layout": {
+ "info": "Layout Direction",
+ "vertical": "Vertical (Top to Bottom)",
+ "horizontal": "Horizontal (Left to Right)"
+ },
+ "spacing": "Spacing (pixels)",
+ "backgroundColor": "Background Color",
+ "addSeparator": "Add Separator Lines",
+ "separatorThickness": "Separator Thickness",
+ "separatorColor": "Separator Color"
+ },
+ "metadata": "Document Metadata",
+ "editMetadata": {
+ "info": "Edit Metadata",
+ "title": "Title",
+ "author": "Author",
+ "subject": "Subject",
+ "keywords": "Keywords",
+ "creator": "Creator",
+ "producer": "Producer",
+ "creationDate": "Creation Date",
+ "modificationDate": "Modification Date",
+ "customFields": {
+ "info": "Custom Fields",
+ "note": "Note: Custom fields are not supported by all PDF readers."
+ }
+ },
+ "toZip": {
+ "how": "How it works:",
+ "all": "All selected PDF files will be packaged into a single ZIP archive.",
+ "file": "File names will be preserved in the archive."
+ },
+ "compare": {
+ "first": "First PDF",
+ "second": "Second PDF",
+ "opacity": "Opacity",
+ "syncScrolling": "Sync Scrolling"
+ },
+ "posterize": {
+ "pagePreview": "Page Preview",
+ "gridLayout": "Grid Layout",
+ "rows": "Rows",
+ "columns": "Columns",
+ "outputPageSettings": "Output Page Settings",
+ "pageSize": "Page Size",
+ "letter": "Letter",
+ "legal": "Legal",
+ "orientation": "Orientation",
+ "auto": "Automatic (Recommended)",
+ "portrait": "Portrait",
+ "landscape": "Landscape",
+ "advanced": {
+ "info": "Advanced Options",
+ "contentScaling": "Content Scaling",
+ "fit": "Fit",
+ "preserves": "Preserves all content, may add margins.",
+ "fill": "Fill (Crop)",
+ "fillPage": "Fills the page, may crop content.",
+ "overlap": "Overlap (for assembly)",
+ "points": "Points",
+ "inches": "Inches",
+ "mm": "mm",
+ "pageRange": "Page Range (optional)",
+ "totalPages": "Total pages:"
+ }
+ },
+ "compress": {
+ "level": {
+ "info": "Compression Level",
+ "balanced": "Balanced (Recommended)",
+ "high": "High Quality (Larger file)",
+ "small": "Smallest Size (Lower quality)",
+ "extreme": "Extreme (Very low quality)"
+ },
+ "algorithm": {
+ "vector": "Vector (For Text Heavy PDF)",
+ "photon": "Photon (For Complex Images & Drawings)",
+ "info": "Choose 'Vector' for text based PDFs, or 'Photon' for scanned documents and complex images."
+ }
+ },
+ "fixPageSize": {
+ "target": "Target Page Size",
+ "letter": "Letter (8.5 × 11 in)",
+ "legal": "Legal (8.5 × 14 in)",
+ "tabloid": "Tabloid (11 × 17 in)",
+ "custom": "Custom...",
+ "width": "Width",
+ "height": "Height",
+ "units": "Units",
+ "inches": "Inches",
+ "mm": "Millimiters",
+ "orientation": "Orientation",
+ "auto": "Auto (Keep Original)",
+ "portrait": "Portrait",
+ "landscape": "Landscape",
+ "scaling": "Content Scaling",
+ "fit": "Fit",
+ "fitInfo": "Preserves all content, may add margins.",
+ "fill": "Fill (Crop)",
+ "fillInfo": "Fills the page, may crop content.",
+ "backgroundColor": "Background Color",
+ "colorMargin": "Color for margins/padding"
+ },
+ "linearize": {
+ "whatIs": "What is linearization?",
+ "optimizes": "Optimizes PDF structure for web viewing",
+ "enables": "Enables progressive loading (first page displays faster)",
+ "improves": "Improves user experience for online PDFs",
+ "also": "Also known as \"Fast Web View\" or \"Optimized\""
+ },
+ "pageDimensions": {
+ "units": "Units:",
+ "points": "Points (pt)",
+ "inches": "Inches (in)",
+ "mm": "Millimeters (mm)",
+ "pixels": "Pixels (px)",
+ "export": "Export to CSV",
+ "page": "Page #",
+ "dimensions": "Dimensions",
+ "standard": "Standard Size",
+ "orientation": "Orientation",
+ "ascpect": "Aspect Ratio",
+ "area": "Area",
+ "rotation": "Rotation"
+ },
+ "removeRestrictions": {
+ "password": "Owner Password (Optional)",
+ "passwordPlaceholder": "Enter owner password if required",
+ "leaveEmpty": "Leave empty if the PDF has no owner password.",
+ "info": {
+ "what": "What will be removed:",
+ "password": "Password protection",
+ "printing": "Printing restrictions",
+ "editing": "Editing restrictions",
+ "copying": "Copying restrictions",
+ "all": "All other security limitations"
+ }
+ },
+ "encrypt": {
+ "password": "User Password (Required)",
+ "passwordPlaceholder": "Enter password to open PDF.",
+ "passwordHint": "This password will be required to open the PDF.",
+ "ownerPassword": "Owner Password (Optional)",
+ "ownerPasswordPlaceholder": "Enter password for permissions (optional)",
+ "ownerPasswordHint": "If provided, usage restrictions will be applied. Leave empty for no restrictions.",
+ "info": {
+ "details": "Encryption Details:",
+ "aes": "256-bit AES encryption (highest security)",
+ "userPassword": "User password required to open PDF",
+ "ownerPassword": "Owner password enables usage restrictions",
+ "without": "Without owner password: no restrictions applied"
+ }
+ },
+ "sanitize": {
+ "options": "Sanitization Optionst:",
+ "flatten": "Flatten Forms",
+ "remove": {
+ "metadata": "Remove Metadata",
+ "annotations": "Remove Annotations",
+ "javascript": "Remove JavaScript",
+ "embeddedFiles": "Remove Embedded Files",
+ "layers": "Remove Layers (OCG)",
+ "links": "Remove Links",
+ "sctructure": "Remove Structure Tree",
+ "markinfo": "Remove MarkInfo",
+ "embeddedFonts": "Remove Embedded Fonts"
+ },
+ "info": "Sanitization removes sensitive content permanently. Some options may affect PDF rendering."
+ },
+ "decrypt": {
+ "password": "PDF Password",
+ "passwordPlaceholder": "Enter the PDF password",
+ "info": "Enter the password used to protect this PDF."
+ },
+ "flatten": {
+ "what": "What will be flattened:",
+ "form": "Form fields (text fields, checkboxes, radio buttons, etc.)",
+ "annotations": "Annotations and comments",
+ "interactive": "Interactive elements",
+ "note": "Note: Flattened content cannot be edited or filled out."
+ },
+ "removeMetadata": {
+ "what": "What will be removed:",
+ "title": "Title, Author, Subject, Keywords",
+ "creator": "Creator and Producer information",
+ "creation": "Creation and Modification dates",
+ "xmp": "XMP Metadata streams",
+ "documentId": "Document IDs",
+ "pieceInfo": "PieceInfo (private application data)"
+ },
+ "changePermissions": {
+ "password": "Current Password (if encrypted)",
+ "passwordPlaceholder": "Enter current password",
+ "userPassword": "New User Password",
+ "userPasswordPlaceholder": "Password to open PDF",
+ "ownerPassword": "New Owner Password",
+ "ownerPasswordPlaceholder": "Password for permissions",
+ "ownerPasswordInfo": "Leave both passwords empty to decrypt the PDF.",
+ "info": {
+ "title": "Permissions (requires owner password)",
+ "printing": "Allow Printing",
+ "copying": "Allow Copying Text",
+ "modifying": "Allow Modifying",
+ "annotating": "Allow Annotating",
+ "filling": "Allow Filling Forms",
+ "document": "Allow Document Assembly",
+ "page": "Allow Page Extraction"
+ }
},
"loader": {
"processing": "Processing..."
@@ -221,7 +787,17 @@
"error": "Error",
"success": "Success",
"file": "File",
- "files": "Files"
+ "files": "Files",
+ "jsonFormat": "JSON Format",
+ "or": "or",
+ "properties": "Properties",
+ "field": "field(s)",
+ "goto": "Go to:",
+ "go": "Go",
+ "grid": "Grid:",
+ "reset": "Reset",
+ "addPage": "Add page",
+ "fields": "Fields"
},
"about": {
"hero": {
diff --git a/public/locales/en/tools.json b/public/locales/en/tools.json
index d42e8b329..f908fe394 100644
--- a/public/locales/en/tools.json
+++ b/public/locales/en/tools.json
@@ -94,7 +94,12 @@
},
"pdfFormFiller": {
"name": "PDF Form Filler",
- "subtitle": "Fill in forms directly in the browser. Also supports XFA forms."
+ "subtitle": "Fill in forms directly in the browser. Also supports XFA forms.",
+ "info": "Upload a PDF with form fields. Fill them directly in the viewer below, then click the button to save and download the filled form. Also supports XFA forms.",
+ "note": {
+ "title": "Note on XFA Forms:",
+ "text": "XFA (XML Forms Architecture) is a legacy format that's only supported by certain PDF viewers like BentoPDF and Firefox. If you open an XFA PDF in other software and see blank pages or no form fields, it means that viewer doesn't support XFA. To view and fill XFA forms properly, use Firefox or BentoPDF's Form Filler."
+ }
},
"createPdfForm": {
"name": "Create PDF Form",
@@ -138,7 +143,11 @@
},
"jsonToPdf": {
"name": "JSON to PDF",
- "subtitle": "Convert JSON files to PDF format."
+ "subtitle": "Convert JSON files to PDF format.",
+ "note": {
+ "title": "Note:",
+ "text": "Only JSON files created by the PDF-to-JSON converter tool are supported. Standard JSON files from other tools will not work. "
+ }
},
"pdfToJpg": {
"name": "PDF to JPG",
@@ -170,7 +179,17 @@
},
"ocrPdf": {
"name": "OCR PDF",
- "subtitle": "Make a PDF searchable and copyable."
+ "subtitle": "Make a PDF searchable and copyable.",
+ "notes": {
+ "extract": "Extract Text:",
+ "extractDetail": "Uses Tesseract OCR to recognize text from scanned images or PDFs.",
+ "searchable": "Searchable Output:",
+ "searchableDetail": "Creates a new PDF with an invisible text layer, making your document fully searchable while preserving the original appearance.",
+ "characterFiltering": "Character Filtering:",
+ "characterFilteringDetail": "Use whitelists to filter out unwanted characters and improve accuracy for specific document types (invoices, forms, etc.).",
+ "multiLanguage": "Multi-language Support:",
+ "multiLanguageDetail": "Select multiple languages for documents containing mixed language content."
+ }
},
"alternateMix": {
"name": "Alternate & Mix Pages",
diff --git a/public/locales/es/common.json b/public/locales/es/common.json
new file mode 100644
index 000000000..c3e1c50f6
--- /dev/null
+++ b/public/locales/es/common.json
@@ -0,0 +1,851 @@
+{
+ "nav": {
+ "home": "Inicio",
+ "about": "Acerca de",
+ "contact": "Contacto",
+ "licensing": "Licencia",
+ "allTools": "Todas las herramientas",
+ "openMainMenu": "Abrir menú principal",
+ "language": "Idioma"
+ },
+ "hero": {
+ "title": "El",
+ "pdfToolkit": "PDF Toolkit",
+ "builtForPrivacy": "para máxima privacidad",
+ "noSignups": "Sin registro",
+ "unlimitedUse": "Uso Ilimitado",
+ "worksOffline": "Funciona offline",
+ "startUsing": "Úsalo ahora"
+ },
+ "usedBy": {
+ "title": "Usado por empresas y personas trabajando en"
+ },
+ "features": {
+ "title": "Por qué",
+ "bentoPdf": "BentoPDF?",
+ "noSignup": {
+ "title": "Sin registro",
+ "description": "Empieza de inmediato, sin cuentas o emails."
+ },
+ "noUploads": {
+ "title": "Sin subir a la nube",
+ "description": "100% en el navegador, tus archivos nunca salen de tu dispositivo."
+ },
+ "foreverFree": {
+ "title": "Gratis por siempre",
+ "description": "Todas las herramientas, sin pruebas, sin paywalls."
+ },
+ "noLimits": {
+ "title": "Sin Límites",
+ "description": "Úsalo tanto como quieras, sin límites ocultos."
+ },
+ "batchProcessing": {
+ "title": "Procesamiento por lotes",
+ "description": "Trabaja con PDFs ilimitados en una sola ejecución."
+ },
+ "lightningFast": {
+ "title": "Realmente veloz",
+ "description": "Procesa PDFs instantáneamente, sin esperas."
+ }
+ },
+ "tools": {
+ "title": "Inicia con",
+ "toolsLabel": "Herramientas",
+ "subtitle": "Haz clic a una herramienta para abrir el cargador de archivos",
+ "searchPlaceholder": "Buscar herramienta (p.e. 'separar', 'organizar'...)",
+ "backToTools": "Volver a Herramientas"
+ },
+ "upload": {
+ "clickToSelect": "Haz clic para seleccionar un archivo",
+ "orDragAndDrop": "o arrastra",
+ "pdfOrImages": "PDFs o Imágenes",
+ "filesNeverLeave": "Tus archivos no salen de tu dispositivo.",
+ "addMore": "Agragar más archivos",
+ "clearAll": "Borrar todo",
+ "singleFile": "Un solo archivo",
+ "oneOrMorePdfs": "Uno o más archivos",
+ "pdfFile": "archivo PDF",
+ "jpgImage": "imagen JPG",
+ "pngImage": "imagen PNG",
+ "webpImage": "imagen WEBP",
+ "pdfDocuments": "tus documentos PDF",
+ "clickToSelectCsv": "Haz clic para subir un archivo CSV",
+ "clickToSelectJson": "Haz clic para subir un archivo JSON",
+ "allImages": "Todos los tipos de imagen",
+ "svgGraphics": "Gráficos SVG",
+ "bmpImage": "imagen BMP",
+ "heicImage": "imagen HEIC/HEIF",
+ "tiffImage": "imagen TIFF",
+ "textFiles": "Archivos de texto (.txt)",
+ "atLeastTwoFiles": "Varios PDF (al menos 2)",
+ "clickOrDrop": "Haz clic o arrastra"
+ },
+ "bookmarks": {
+ "autoExtract": "Extraer los marcadores automáticamente",
+ "importBookmarks": "O importa tus marcadores",
+ "cvsFormats": "formato CVS: títle,page,level"
+ },
+ "toc": {
+ "title": "Título de la TDC",
+ "fontSize": "Tamaño del Texto",
+ "fontFamily": "Fuente",
+ "addBookmarkToToc": "Agregar marcador para la TDC"
+ },
+ "buttons": {
+ "invertColors": "Invertir Colores",
+ "generateToc": "Generar Tabla de Contenidos",
+ "changeBackgroundColor": "Cambiar color de fondo",
+ "changeTextColor": "Cambiar color del texto",
+ "sign": "Guardar y descargar PDF firmado",
+ "stamp": "Guardar PDF sellado",
+ "removeAnnotations": "Eliminar Anotaciones",
+ "cropAndDownload": "Cortar y descargar",
+ "downloadForm": "Descargar Formulario PDF",
+ "detectBlandPages": "Detectar páginas vacías",
+ "removeBlandPages": "Eliminar páginas vacías",
+ "convertToPdf": "Convertir a PDF",
+ "uploadFiles": "Cargar Archivos",
+ "typeText": "Escribir Texto",
+ "createPdf": "Crear PDF",
+ "downloadAllZip": "Descargar todo como ZIP",
+ "toGreyscale": "Convertir a escala de grises",
+ "toJson": "Convertir a JSON",
+ "startOcr": "Iniciar OCR",
+ "fileMode": "Modo Archivo",
+ "pageMode": "Modo Página",
+ "mergePdf": "Unir PDFs",
+ "mixPages": "Intercalar Páginas",
+ "saveChanges": "Guardar cambios",
+ "addAttachments": "Agregar adjuntos",
+ "extractAttachment": "Extraer adjuntos",
+ "split": "Separar PDF",
+ "divide": "Dividir Páginas",
+ "extract": "Extraer y descargar ZIP",
+ "delete": "Eliminar páginas y descargar",
+ "reverse": "Invertir Orden",
+ "rotate": "Aplicar Rotaciones",
+ "nup": "Create N-Up PDF",
+ "combine": "Combine Pages",
+ "metadata": "Copiar Metadata como JSON",
+ "addCustomField": "Agregar campos personalizados",
+ "saveMetadata": "Guardar Metadata",
+ "saveZip": "Crear archivo ZIP",
+ "compare": {
+ "overlay": "Sobreposición",
+ "sideBySide": "Lado a lado",
+ "flicker": "Parpadear"
+ },
+ "posterize": "Posterizar PDF",
+ "compress": "Comprimir PDF",
+ "fixSize": "Fijar Tamaño de Página",
+ "linearize": "Linearizar PDF(s)",
+ "removeRestrictions": "Eliminar Restricciones",
+ "repair": "Reparar PDF",
+ "encrypt": "Encriptar PDF",
+ "sanitize": "Limpiar PDF",
+ "decrypt": "Desencriptar PDF",
+ "flatten": "Aplanar PDF(s)",
+ "removeMetadata": " Eliminar toda la Metadata",
+ "changePermissions": "Cambiar Permisos"
+ },
+ "invertColors": {
+ "clickToInvertColors": "Haz clic en el botón para invertir todos los colores en tu PDF."
+ },
+ "background": {
+ "color": "Color de fondo"
+ },
+ "textColor": {
+ "newTextColor": "Nuevo color de texto"
+ },
+ "sign": {
+ "flatten": "Aplanar PDF (usa el botón de a continuación)"
+ },
+ "stamp": {
+ "editor": "Editor de Sellos"
+ },
+ "removeAnnotations": {
+ "clickToRemove": "Haz clic en el botón para eliminar las anotaciones de tu PDF."
+ },
+ "crop": {
+ "flatten": "Cortado Aplanado (convierte las páginas en imágenes)",
+ "applyToAll": "Aplicar a todas las páginas"
+ },
+ "formFiller": {
+ "hint": "Archivo PDF con formulario"
+ },
+ "formCreator": {
+ "createBlank": "Crear PDF en blanco",
+ "selectToEdit": "Selecciona un campo para editar sus propiedades",
+ "pressToDelete": "Presiona Eliminar para quitar el campo seleccionado",
+ "text": "Texto",
+ "checkbox": "Selección Múltiple",
+ "radio": "Selección Única",
+ "dropdown": "Desplegable",
+ "list": "Lista",
+ "button": "Botón",
+ "signature": "Firma",
+ "date": "Fecha",
+ "image": "Imagen"
+ },
+ "removeBlankPage": {
+ "sensitivity": "Sensitividad",
+ "higherValues": "Valores más altos detectarán más páginas como vacías"
+ },
+ "imageToPdf": {
+ "quality": "Calidad del PDF",
+ "high": "Alta (archivo más grande)",
+ "medium": "Media (Balanceado)",
+ "low": "Baja (archivo más pequeño)",
+ "controls": "Controla la compresión de la imagen cuando se incrusta en el PDF"
+ },
+ "textToPdf": {
+ "selectLanguage": "Seleccionar Idiomas",
+ "defaultLanguage": "Inglés (Por defecto)",
+ "searchPlaceholder": "Buscar Idiomas",
+ "fontSize": "Tamaño del Texto",
+ "pageSize": "Tamaño de la Página",
+ "customSize": "Tamaño personalizado",
+ "landscape": "Panorama",
+ "portrait": "Retrato",
+ "width": "Ancho",
+ "height": "Alto",
+ "textColor": "Color del Texto"
+ },
+ "pdfToImage": {
+ "quality": "Calidad de la Imagen",
+ "qualityNote": "Mayor calidad = mayor tamaño del archivo"
+ },
+ "pdfToPng": {
+ "scale": "Escalado de la Imagen",
+ "scaleNote": "Mayor escala = mejor calidad pero archivos más grandes"
+ },
+ "pdfToOcr": {
+ "languages": "Idiomas en el documento",
+ "languagesPlaceholder": "Buscar idiomas...",
+ "selected": "Seleccionado",
+ "none": "Ninguno",
+ "advancedSettings": {
+ "title": "Configuración Avanzada (Recomendado para mejorar exactitud)",
+ "resolution": {
+ "title": "Resolución",
+ "standard": "Estándar",
+ "high": "Alto",
+ "ultra": "Ultra"
+ }
+ },
+ "binarize": "Binarizar Imagen (Subir el contraste para escaneos limpios)",
+ "whitelist": {
+ "title": "Filtro de Caracteres",
+ "none": "Ninguno (Todos los caracteres)",
+ "alphanumeric": "Alfanumérico + Signos Básicos",
+ "currency": "Números y símbolos de moneda",
+ "letters": "Solo letras (A-Z, a-z)",
+ "numbers": "Solo números (0-9)",
+ "invoice": "Facturas/Boletas (números, $, ., -, /)",
+ "forms": "Formularios (Alfanumérico + Símbolos comunes)",
+ "custom": "Personalizado",
+ "note": "Solo estos caracteres serán reconocidos. Déjalo en blanco para todos los caracteres.",
+ "optional": "Filtro de Caracteres (Opcional)"
+ }
+ },
+ "mergePdf": {
+ "how": "Cómo funciona:",
+ "fileMode": {
+ "drag": "Haz clic y arrastra el",
+ "icon": "ícono para cambiar el orden de los archivos.",
+ "specifyRanges": "En la parte de \"Páginas\" de cada archivo puedes especificar rangos (\"1-3, 5\") para unir solo esas páginas",
+ "leavePages": "Deja \"Páginas\" en blanco para incluir todas las páginas de ese archivo."
+ },
+ "pageMode": {
+ "all": "Todas las páginas de tu PDF cargado se muestran a continuación.",
+ "drag": "Simplemente arrastra las páginas individuales para crear el orden en el que quieres tu nuevo archivo."
+ }
+ },
+ "alternate": {
+ "filesOrder": "Orden de Archivos",
+ "reorder": "Arrastra para ordenar. Las páginas. Las páginas se intercalarán en este orden."
+ },
+ "attachment": {
+ "select": "Selecciona un archivo a adjuntar",
+ "dropToAttach": "Arrastra archivos para adjuntar",
+ "anyType": "Cualquier tipo",
+ "level": {
+ "attachment": "Nivel de Adjunto",
+ "document": "Nivel de Documento",
+ "page": "Nivel de Página"
+ },
+ "range": "Rango de Página",
+ "attachments": "Adjuntos"
+ },
+ "multiTool": {
+ "uploadPdfs": "Subir PDFs",
+ "upload": "Subir",
+ "addBlankPage": "Agregar página vacía",
+ "edit": "Editar:",
+ "undo": "Deshacer",
+ "redo": "Rehacer",
+ "reset": "Reestablecer",
+ "selection": "Selección:",
+ "selectAll": "Seleccionar Todo",
+ "deselectAll": "Deseleccionar Todo",
+ "rotate": "Rotar:",
+ "left": "Izquierda",
+ "right": "Derecha",
+ "transform": "Transformar",
+ "duplicate": "Duplicar",
+ "split": "Separar",
+ "clear": "Limpiar:",
+ "downloadSelected": "Descargar Seleccionados",
+ "exportPdf": "Exportar PDF",
+ "uploadPdfFile": "Subir PDFs",
+ "dragOrClick": "Arrastra tus archivos aquí o haz clic para seleccionar",
+ "selectFiles": "Seleccionar Archivos"
+ },
+ "split": {
+ "splitMode": "Modo de Separado",
+ "range": "Extraer por rango de páginas (Por defecto)",
+ "evenOdd": "Separar páginas Pares/Impares",
+ "all": "Separar las páginas en archivos separados",
+ "selected": "Seleccionar páginas visualmente",
+ "bookmarks": "Separar por marcadores",
+ "nTimes": "Separar N veces",
+ "how": "Cómo funciona:",
+ "rangeMode": {
+ "numbers": "Ingresa números de página separados por coma (2, 8, 14)",
+ "pages": "Ingresa rangos de página usando guiones (5-10)",
+ "combine": "Combina para selecciones complejas (1-3, 7, 12-15)",
+ "pageRange": "Rangos de página"
+ },
+ "evenOddMode": {
+ "info": "Extrae páginas solo pares o impares a un nuevo PDF.",
+ "even": "Páginas Pares",
+ "odd": "Páginas Impares"
+ },
+ "allMode": {
+ "every": "Cada página del PDF será guardada como un nuevo PDF.",
+ "result": "El resultado será descargado como un ZIP conteniendo todas las páginas."
+ },
+ "selectedMode": {
+ "click": "Haz clic en la página para seleccionar las páginas que quieres extraer",
+ "selected": "Las páginas seleccionadas estarán resaltadas"
+ },
+ "bookmarksMode": {
+ "split": "Separa el PDF basándose en sus marcadores",
+ "select": "Selecciona el nivel de marcador a separar",
+ "level": {
+ "title": "Nivel del Marcador",
+ "all": "Todos",
+ "0": "Nivel 0 (Solo primer nivel)",
+ "1": "Nivel 1",
+ "2": "Nivel 2",
+ "3": "Nivel 3"
+ }
+ },
+ "nTimesMode": {
+ "split": "Separa el PDF en varios archivos, cada uno conteniendo N páginas.",
+ "ppf": "Páginas por archivo (N)"
+ },
+ "zipOption": "Descargar ZIP"
+ },
+ "divide": {
+ "how": "Cómo funciona:",
+ "vertical": "Vertical",
+ "verticalHalfs": "Separar cada página mitades izquierda y derecha.",
+ "horizontal": "Horizontal",
+ "horizontalHalfs": "Separar cada página mitades superior e inferior.",
+ "result": "El resiltado tendré el doble de páginas que el original.",
+ "splitDirection": "Dirección de Separado",
+ "splitVertical": "Vertical (izquierda y derecha)",
+ "splitHorizontal": "Horizontal (superior e inferior)"
+ },
+ "extract": {
+ "total": "Total de páginas:",
+ "enterPages": "Ingresa las páginas a extraer (2, 4-6, 9):",
+ "placeholder": "2, 4-6, 9"
+ },
+ "delete": {
+ "totalPages": "Total de páginas:",
+ "pagesToDelete": "Ingresa las páginas a eliminar (2, 4-6, 9):",
+ "placeholder": "por ejemplo 2, 4-6, 9"
+ },
+ "addBlankPages": {
+ "how": "Cómo funciona:",
+ "specify": "Especifica la posición donde deben agregarse las páginas vacías.",
+ "position": "En la posición 0 la agregará al inicio. Una posicón igual al número de páginas, agregará al final.",
+ "match": "Las páginas vacías serán iguales en tamaño a la primera página de tu documento.",
+ "insert": {
+ "after": "Agregar luego de la página",
+ "zero": "Ingresa 0 para agregar al inicio",
+ "number": "Número de páginas vacías"
+ }
+ },
+ "reverse": {
+ "how": "Cómo funciona:",
+ "all": "El orden de todas las páginas serán invertidas (la primera se convienrte en la última, la última se convierte en la primera).",
+ "ifUpload": "Si subes varios PDFs, cada documento invertido y descargado en un archivo ZIP independiente."
+ },
+ "rotate": {
+ "batchActions": "Acciones en Lote",
+ "rotate90": "Rotar 90 grados",
+ "rotateCustom": "Rotar en grados específicos",
+ "left": "Izquierda",
+ "right": "Derecha",
+ "apply": "Aplicar"
+ },
+ "nup": {
+ "how": "Cómo funciona:",
+ "choose": "Elije cuántas páginas entrarán en cada hoja (2, 4, 9 o 16).",
+ "select": "Selecciona el tamaño y orientación de la salida.",
+ "optionally": "Opcionalmente agrega márgenes y bordes en las páginas.",
+ "pagesPerSheet": {
+ "info": "Páginas por hoja",
+ "two": "2 (1x2)",
+ "four": "4 (2x2)",
+ "nine": "9 (3x3)",
+ "sixteen": "16 (4x4)"
+ },
+ "output": {
+ "info": "Tamaño de la salida",
+ "letter": "Carta (8.5\" x 11\")",
+ "legal": "Legal"
+ },
+ "orientation": {
+ "info": "Orientación",
+ "auto": "Automático",
+ "portrait": "Vertical",
+ "landscape": "Horizaontal"
+ },
+ "addMargin": "Agregar Márgenes",
+ "addBorders": "Agregar Bordes",
+ "borderColors": "Color del Borde"
+ },
+ "combine": {
+ "layout": {
+ "info": "Dirección de diseño",
+ "vertical": "Vertical (Arriba hacia abajo",
+ "horizontal": "Horizontal (Izquierda a derecha)"
+ },
+ "spacing": "Espaciado (píxeles)",
+ "backgroundColor": "Color de fondo",
+ "addSeparator": "Agregar separador",
+ "separatorThickness": "Grosor del separador",
+ "separatorColor": "Color del separador"
+ },
+ "metadata": "Metadata del Documento",
+ "editMetadata": {
+ "info": "Editar Metadata",
+ "title": "Título",
+ "author": "Autor",
+ "subject": "Sujeto",
+ "keywords": "Keywords",
+ "creator": "Creador",
+ "producer": "Productor",
+ "creationDate": "Fecha de Creación",
+ "modificationDate": "Fecha de Modificación",
+ "customFields": {
+ "info": "Campos Personalizados",
+ "note": "Nota: No todos los lectores soportan campos personalizados."
+ }
+ },
+ "toZip": {
+ "how": "Cómo funciona:",
+ "all": "Todos los archivos seleccionados serán agregados a un único archivo ZIP.",
+ "file": "Los nombres de los archivos se mantendrán en el ZIP."
+ },
+ "compare": {
+ "first": "Primer PDF",
+ "second": "Segundo PDF",
+ "opacity": "Opacidad",
+ "syncScrolling": "Sincronizar desplazamiento"
+ },
+ "posterize": {
+ "pagePreview": "Vista Previa",
+ "gridLayout": "Diseño de cuadrícula",
+ "rows": "Filas",
+ "columns": "Columnas",
+ "outputPageSettings": "Configuración de salida",
+ "pageSize": "Tamalo de Página",
+ "letter": "Carta",
+ "legal": "Legal",
+ "orientation": "Orientación",
+ "auto": "Automático (Recomendado)",
+ "portrait": "Vertical",
+ "landscape": "Horizontal",
+ "advanced": {
+ "info": "Opciones Avanzadas",
+ "contentScaling": "Escalado de Contenido",
+ "fit": "Ajustar",
+ "preserves": "Mantiene todo el contenido, puede agregar márgenes.",
+ "fill": "Rellenar (Cortar)",
+ "fillPage": "Rellena la página, puede cortar el contenido.",
+ "overlap": "Sobreponer (para ensablado)",
+ "points": "Puntos",
+ "inches": "Pulgadas",
+ "mm": "mm",
+ "pageRange": "Rango de página (opcional)",
+ "totalPages": "Páginas totales:"
+ }
+ },
+ "compress": {
+ "level": {
+ "info": "Nivel de Compresión",
+ "balanced": "Balanceado (Recomendado)",
+ "high": "Calidad Alta (archivo grande)",
+ "small": "Calidad Baja (menor tamaño)",
+ "extreme": "Calidad Muy baja (extremo)"
+ },
+ "algorithm": {
+ "vector": "Vector (Para PFDs con mucho texto)",
+ "photon": "Photon (para imágenes y dibujos complejos)",
+ "info": "Elije 'Vector' para PFD con mucho texto o 'Photon' para documentos escaneados e imágenes complejas."
+ }
+ },
+ "fixPageSize": {
+ "target": "Objetivo de Tamaño de Página",
+ "letter": "Carta (8.5 × 11 in)",
+ "legal": "Legal (8.5 × 14 in)",
+ "tabloid": "Tabloid (11 × 17 in)",
+ "custom": "Personalizado...",
+ "width": "Ancho",
+ "height": "Alto",
+ "units": "Unidades",
+ "inches": "Pulgadas",
+ "mm": "Milímetros",
+ "orientation": "Orientación",
+ "auto": "Auto (Mantiene el Original)",
+ "portrait": "Vertical",
+ "landscape": "Horizontal",
+ "scaling": "Escalado de Contenido",
+ "fit": "Encajar",
+ "fitInfo": "Mantiene todo el contenido, puede agregar márgenes.",
+ "fill": "Rellenar (Recortado)",
+ "fillInfo": "Rellena la página, puede recortar el contenido.",
+ "backgroundColor": "Color de Fondo",
+ "colorMargin": "Color para los márgenes/padding"
+ },
+ "linearize": {
+ "whatIs": "Qué es Linearización?",
+ "optimizes": "Optimiza la estructura del PDF para la visualización web",
+ "enables": "Habilita la carga progresiva (la primera página carga más rápido)",
+ "improves": "Mejora la experiencia para PDFs en línea",
+ "also": "También conocido como \"Fast Web View\" (Vista web rápida) u \"Optimized\" (Optimizado)"
+ },
+ "pageDimensions": {
+ "units": "Unidades:",
+ "points": "Puntos (pt)",
+ "inches": "Pulgadas (in)",
+ "mm": "Milímetros (mm)",
+ "pixels": "Píxeles (px)",
+ "export": "Exportar a CSV",
+ "page": "Página #",
+ "dimensions": "Dimensiones",
+ "standard": "Tamaño Estándar",
+ "orientation": "Orientación",
+ "ascpect": "Ratio",
+ "area": "Área",
+ "rotation": "Rotación"
+ },
+ "removeRestrictions": {
+ "password": "Contraseña del propietario (Opcional)",
+ "passwordPlaceholder": "Ingresa la contraseña del propietario si se necesitara",
+ "leaveEmpty": "Déjalo en blanco si el PDF no tiene contraseña.",
+ "info": {
+ "what": "Lo que se eliminará:",
+ "password": "Protección de contraseña",
+ "printing": "Protección de Impresión",
+ "editing": "Protección de Edición",
+ "copying": "Protección de Copia",
+ "all": "Cualquier otras limitaciones de seguridad"
+ }
+ },
+ "encrypt": {
+ "password": "Contraseña (Obligatorio)",
+ "passwordPlaceholder": "Para ingresar contraseña para abrir el PDF.",
+ "passwordHint": "Esta contraseña será solicitada al abrir el PDF.",
+ "ownerPassword": "Contraseña del propietario (Opcional)",
+ "ownerPasswordPlaceholder": "Ingresar contraseña para permisos (opcional)",
+ "ownerPasswordHint": "Si se ingresa una contraseña, se aplicará restricciones de uso. Déjalo en blanco para ninguna restricción.",
+ "info": {
+ "details": "Detalles de Encriptación:",
+ "aes": "Encriptación 256-bit AES (la mejor seguridad)",
+ "userPassword": "Contraseña requerida para abrir PDF",
+ "ownerPassword": "Contraseña de propietario habilita restricciones de uso",
+ "without": "Sin contraseña de propietario: no se aplican restricciones"
+ }
+ },
+ "sanitize": {
+ "options": "Opciones de Limpieza:",
+ "flatten": "Aplanar Formularios",
+ "remove": {
+ "metadata": "Eliminar Metadata",
+ "annotations": "Eliminar Anotaciones",
+ "javascript": "Eliminar JavaScript",
+ "embeddedFiles": "Eliminar Archivos Incrustados",
+ "layers": "Eliminar Capas (OCG)",
+ "links": "Eliminar Enlaces",
+ "sctructure": "Eliminar Árbol de Escructura",
+ "markinfo": "Eliminar MarkInfo",
+ "embeddedFonts": "Eliminar Fuentes Incrustadas"
+ },
+ "info": "Limpiza elimina contenido sensible permanentemente. Algunas opciones pueden afectar el renderizado del PDF"
+ },
+ "decrypt": {
+ "password": "Contraseña del PDF",
+ "passwordPlaceholder": "Ingresa la contraseña del PDF",
+ "info": "Ingresa la contraseña que se utilizó para proteger este PDF."
+ },
+ "flatten": {
+ "what": "What will be flattened:",
+ "form": "Form fields (text fields, checkboxes, radio buttons, etc.)",
+ "annotations": "Annotations and comments",
+ "interactive": "Interactive elements",
+ "note": "Note: Flattened content cannot be edited or filled out."
+ },
+ "removeMetadata": {
+ "what": "Lo que será eliminado:",
+ "title": "Título, autor, sujeto, keywords",
+ "creator": "Información del creador y productor",
+ "creation": "Fechas de creación y modificación",
+ "xmp": "Metadata XMP",
+ "documentId": "IDs del Documento",
+ "pieceInfo": "PieceInfo (Información privada de la aplicación)"
+ },
+ "changePermissions": {
+ "password": "Contraseña actual (si está encriptado)",
+ "passwordPlaceholder": "Ingresar contraseña actual",
+ "userPassword": "Nueva contraseña",
+ "userPasswordPlaceholder": "Contraseña para abrir el PDF",
+ "ownerPassword": "Nueva contraseña de Propietario",
+ "ownerPasswordPlaceholder": "Contraseña para permisos",
+ "ownerPasswordInfo": "Deja ambos en blanco para desencriptar el PDF.",
+ "info": {
+ "title": "Permisons (requiere contraseña del propietario)",
+ "printing": "Permitir Impresiones",
+ "copying": "Permitir copiar texto",
+ "modifying": "Permitir modificacione",
+ "annotating": "Permitir anotaciones",
+ "filling": "Permitir llenado de formularios",
+ "document": "Permitir Ensamblaje de Documento",
+ "page": "Permitir extracción de páginas"
+ }
+ },
+ "loader": {
+ "processing": "Procesando..."
+ },
+ "alert": {
+ "title": "Alerta",
+ "ok": "OK"
+ },
+ "preview": {
+ "title": "Vista Previa",
+ "downloadAsPdf": "Descargar como PDF",
+ "close": "Cerrar"
+ },
+ "settings": {
+ "title": "Configuración",
+ "shortcuts": "Atajos",
+ "preferences": "Preferencias",
+ "displayPreferences": "Mostrar Preferencias",
+ "searchShortcuts": "Buscar atajos...",
+ "shortcutsInfo": "Mantén presionado una tecla para establecer un atajo. Los cambios se guardan automáticamente.",
+ "shortcutsWarning": "⚠️ Evita atajos de navegadores (Cmd/Ctrl+W, Cmd/Ctrl+T, Cmd/Ctrl+N etc.) ya que pueden no funcionar correctamente.",
+ "import": "Importar",
+ "export": "Exportar",
+ "resetToDefaults": "Restablecer a predeterminados",
+ "fullWidthMode": "Modo ancho completo",
+ "fullWidthDescription": "Utiliza el ancho completo para todas las herramientas en vez de un contenedor centrado",
+ "settingsAutoSaved": "Las configuraciones se guardan automáticamente",
+ "clickToSet": "Haz clic para establecer",
+ "pressKeys": "Presiona una tecla...",
+ "warnings": {
+ "alreadyInUse": "Atajo ya en uso",
+ "assignedTo": "ya está asignado a:",
+ "chooseDifferent": "Por favor, elije otro atajo.",
+ "reserved": "Advertencia de Atajo Reservado",
+ "commonlyUsed": "normalmente usado para:",
+ "unreliable": "Puede que este atajo no funcione correctamente o esté en conflicto con uno del navegador o del sistema",
+ "useAnyway": "¿Quieres usarlo de todas formas?",
+ "resetTitle": "Reestablecer Atajos",
+ "resetMessage": "¿Estás seguro de reestablecer todos los atajos?br>
Esto no se puede deshacer.",
+ "importSuccessTitle": "Importado Exitosamente",
+ "importSuccessMessage": "¡Atajos importados de manera exitosa!",
+ "importFailTitle": "Importación Fallida",
+ "importFailMessage": "Falló la importación de los atajos. Archivo con formato inválido."
+ }
+ },
+ "warning": {
+ "title": "Advertencia",
+ "cancel": "Cancelar",
+ "proceed": "Continuar"
+ },
+ "compliance": {
+ "title": "Tus archivos nunca salen de tu dispositivo",
+ "weKeep": "Mantenemos",
+ "yourInfoSafe": "tu información segura",
+ "byFollowingStandards": "al seguir estándares globales de seguridad.",
+ "processingLocal": "Todos los procesos ocurren localmente en tu dispositivo.",
+ "gdpr": {
+ "title": "Cumplimiento de GDPR",
+ "description": "Protege los datos personales y privacidad de individuos en la Unión Europea."
+ },
+ "ccpa": {
+ "title": "Cumplimiento CCPA",
+ "description": "Otorga a los residentes de California sobre cómo sus datos personales es recolectada, usada y compartida."
+ },
+ "hipaa": {
+ "title": "Cumplimiento HIPAA",
+ "description": "Establece salvaguardas para el manejo de información sanitaria confidencial en el sistema de salud de los Estados Unidos."
+ }
+ },
+ "faq": {
+ "title": "Preguntas",
+ "questions": "Frecuentes",
+ "isFree": {
+ "question": "¿BentoPDF es de verdad gratuito?",
+ "answer": "Claro que sí. Todas las herramientas en BentoPDF son 100% gratuitas, sin límites, sin cuentas y sin marcas de agua. Creemos que todos merecen acceso a herramientas simples y poderosas sin tener que pagar."
+ },
+ "areFilesSecure": {
+ "question": "¿Mis archivos están seguros? ¿Dónde se procesan?",
+ "answer": "Tus archivos están tan seguros como es posible porque nunca salen de tu PC. Todo el procesamiento sucede en el navegador. Nunca subimos tus archivos a un servidor, por lo que mantienes total privacidad y control sobre tus documentos."
+ },
+ "platforms": {
+ "question": "¿Funciona en Mac, Windows y celular/móbil?",
+ "answer": "¡Sí! Ya que BentoPDF se ejecuta en tu navegador, funciona en cualquier sistema operativo con un navegador moderno, incluyendo Linux, Windows, macOS, iOS y Android."
+ },
+ "gdprCompliant": {
+ "question": "¿BentoPDF cumple con GDPR?",
+ "answer": "Sí, BentoPDF cumple completamente con GDPR. Ya que los archivos son procesados localmente en tu navegafor y no recolectamos ni transmitimos tus archivos a algún servidor, no tenemos acceso a tus datos. Esto asegura que siempre estás en control de tus documentos."
+ },
+ "dataStorage": {
+ "question": "¿Almacenan o rastrean algunos de mis archivos?",
+ "answer": "No. No almacenamos, rastreamos o guardamos logs de tus archivos. Todo lo que haces en BentoPDF sucede en la memoria de tu navegador y desaparece cuando cierras la página. No se suben archivos, no hay historial de logs ni hay servidores externos involucrados."
+ },
+ "different": {
+ "question": "¿Qhé hace a BentoPDF diferente de otras herramientas PDF?",
+ "answer": "La mayoría de herramientas PDF carga/sube tus arhivos a un servidor para el procesamiento. BentoPDF nunca hace eso. Utilizamos tegnología moderna y segura para procesar tus archivos directamente en tu navegador. Lo que se traduce en alto rendimiento, mayor privacidad y completa tranquilidad."
+ },
+ "browserBased": {
+ "question": "¿Cómo es que el procesamiento en el navegador me mantiene seguro?",
+ "answer": "Al ejecutarse completamente en el navegador, BentoPDF garantiza que tus archivos nunca salgan de tu dispositivo. Esto elimina el riesgo de brechas de seguridad en servidores, exposición de datos o acceso no autorizado. Tus archivo siempre son tuyos."
+ },
+ "analytics": {
+ "question": "¿Utilizan cookies o datos de analítica para rastrearme?",
+ "answer": "Nos importa tu privacidad. BentoPDF no rastrea información personal. Utilizamos Simple Analytics únicamente para ver el recuento de visitas anónimas. Esto significa que podemos saber cuántos usuarios visitan nuestá página, pero nunca sabemos quién eres. Simple Analytics cumple con GDPR y respeta tu privacidad."
+ }
+ },
+ "testimonials": {
+ "title": "Lo que nuestros",
+ "users": "Usuarios",
+ "say": "Dicen"
+ },
+ "support": {
+ "title": "¿Te gusta mi trabajo?",
+ "description": "BentoPDF es un proyecto de pasión, hecho para ofrecer una herramienta PDF gratuita, privada y potente para todo. Si te es útil, considera apoyando el desarrollo. ¡Cada cafecito ayuda!",
+ "buyMeCoffee": "Invítame un café"
+ },
+ "footer": {
+ "copyright": "© 2025 BentoPDF. Todos los derechos reservados.",
+ "version": "Versioón",
+ "company": "Empresa",
+ "aboutUs": "Nosotros",
+ "faqLink": "FAQ",
+ "contactUs": "Contacto",
+ "legal": "Legal",
+ "termsAndConditions": "Términos y Condiciones",
+ "privacyPolicy": "Política de Privacidad,",
+ "followUs": "Síguenos"
+ },
+ "merge": {
+ "title": "Unir PDFs",
+ "description": "Combina archivos completos o selecciona páginas específicas para unir en un nuevo documento.",
+ "fileMode": "Modo Archivo",
+ "pageMode": "Modo Página",
+ "howItWorks": "Cómo funciona:",
+ "fileModeInstructions": [
+ "Haz clic y arrastra el ícono para cambiar el orden de los archivos.",
+ "En la caja de \"Páginas\" de cada archivo, puedes especificar rangos (p.e. \"1-3, 5\") para unir solo esas páginas.",
+ "Deja la caja de \"Páginas\" vacía para incluir todas las páginas de ese archivo."
+ ],
+ "pageModeInstructions": [
+ "Todas las páginas de tus archivos cargados se muestran a continuación.",
+ "Simplemente arrastra las miniaturas para crear el orden exacto en que quieras que se genere tu nuevo archivo."
+ ],
+ "mergePdfs": "Unir PDFs"
+ },
+ "common": {
+ "page": "Página",
+ "pages": "Páginas",
+ "of": "de",
+ "download": "Descargar",
+ "cancel": "Cancelar",
+ "save": "Guardar",
+ "delete": "Eliminar",
+ "edit": "Editar",
+ "add": "Agregar",
+ "remove": "Eliminar",
+ "loading": "Cargando...",
+ "error": "Error",
+ "success": "Éxito",
+ "file": "Archivo",
+ "files": "Archivos",
+ "jsonFormat": "Formato JSON",
+ "or": "O",
+ "properties": "Propiedades",
+ "field": "campo(s)",
+ "goto": "Ir a:",
+ "go": "Ir",
+ "grid": "Grilla:",
+ "reset": "Reestablecer",
+ "addPage": "Agregar página",
+ "fields": "Campos"
+ },
+ "about": {
+ "hero": {
+ "title": "Creemos que las herramientas PDF deben ser",
+ "subtitle": "fápidas, privadas y gratuitas.",
+ "noCompromises": "Sin compromisos."
+ },
+ "mission": {
+ "title": "Nuestra Misión",
+ "description": "Ofrecer las herramientas PDF más completas que respeten tu privacidad y nunca soliciten un pago. Creemos que las herramientas esenciales para documentos deben ser accesibles para todos, en cualquier lugar, sin barreras."
+ },
+ "philosophy": {
+ "label": "Nuestra Filosofía Central",
+ "title": "La privacidad es Primero. Siempre.",
+ "description": "En una era donde los datos son un bien, adoptamos un enfoque diferente. Todo el procesamiento de las herramientas de BentoPDF se realiza localmente en tu navegador. Esto significa que tus archivos nunca entran en contacto con nuestros servidores, nunca vemos tus documentos y no rastreamos lo que haces. Tus documentos se mantienen completamente privados. No es solo una función, es nuestra base."
+ },
+ "whyBentopdf": {
+ "title": "Por qué",
+ "speed": {
+ "title": "Creado para la Velocidad",
+ "description": "Sin esperas para subir o descargar archivos de un servidor. Al procesar archivos directamente en tu navegador con tecnologías web modernas como WebAssembly, ofrecemos una velocidad inigualable para todas nuestras herramientas."
+ },
+ "free": {
+ "title": "Completamente Gratuito",
+ "description": "Sin pruebas, sin suscripciones, sin cargos ocultos y sin funciones premium retenidas. Creemos que las potentes herramientas PDF deben ser un servicio público, no una fuente de lucro."
+ },
+ "noAccount": {
+ "title": "No se requiere cuenta",
+ "description": "Empieza a usar cualquier herramienta de inmediato. No necesitamos tu correo electrónico, contraseña ni información personal. Tu flujo de trabajo debe ser fluido y anónimo."
+ },
+ "openSource": {
+ "title": "Espíritu de código abierto",
+ "description": "Diseñado con transparencia en mente. Aprovechamos increíbles bibliotecas de código abierto como PDF-lib y PDF.js, y creemos en el esfuerzo comunitario para que herramientas potentes sean accesibles para todos."
+ }
+ },
+ "cta": {
+ "title": "¿Listo para comenzar?",
+ "description": "Únete a los miles de usuarios que confían en BentoPDF para sus necesidades diarias de documentos. Experimenta la diferencia que la privacidad y el rendimiento pueden marcar.",
+ "button": "Explore All Tools"
+ }
+ },
+ "contact": {
+ "title": "Ponte en Contacto",
+ "subtitle": "Nos encantaría saber de ti. Si tienes alguna pregunta, comentario o solicitud de alguna funcionalidad, no dudes en contactarnos.",
+ "email": "Puedes comunicarte con nosotros directamente por correo electrónico a:"
+ },
+ "licensing": {
+ "title": "Licencias para",
+ "subtitle": "Elige la licencia que se ajuste a tus necesidades."
+ }
+}
\ No newline at end of file
diff --git a/public/locales/es/tools.json b/public/locales/es/tools.json
new file mode 100644
index 000000000..adfaf5cb6
--- /dev/null
+++ b/public/locales/es/tools.json
@@ -0,0 +1,298 @@
+{
+ "categories": {
+ "popularTools": "Herramientas Populares",
+ "editAnnotate": "Editar & Anotar",
+ "convertToPdf": "Convertir a PDF",
+ "convertFromPdf": "Convertir desde PDF",
+ "organizeManage": "Organizar & Gestionar",
+ "optimizeRepair": "Optimizar & Reparar",
+ "securePdf": "Asegurar PDF"
+ },
+ "pdfMultiTool": {
+ "name": "PDF Multi Herramienta",
+ "subtitle": "Une, separa, organiza, elimina, rota, agrega páginas en blanco, extrae y duplica en un interfaz unificada."
+ },
+ "mergePdf": {
+ "name": "Unir PDF",
+ "subtitle": "Combina múltiples PDFs en un archivo. Preserva marcadores."
+ },
+ "splitPdf": {
+ "name": "Separar PDF",
+ "subtitle": "Extrae un rango de páginas en un nuevo PDF."
+ },
+ "compressPdf": {
+ "name": "Comprimir PDF",
+ "subtitle": "Reduce el tamaño de tu PDF."
+ },
+ "pdfEditor": {
+ "name": "Editor PDF",
+ "subtitle": "Anota, marca, edita, comenta y agrega formas e imágenes, buscar y visualiza PDFs."
+ },
+ "jpgToPdf": {
+ "name": "JPG a PDF",
+ "subtitle": "Crea un PDF a partir de una o varias imágenes JPG."
+ },
+ "signPdf": {
+ "name": "Firmar PDF",
+ "subtitle": "Dibuja, escribe o sube tu firma."
+ },
+ "cropPdf": {
+ "name": "Cortar PDF",
+ "subtitle": "Recorta los márgenes de cada página en tu PDF."
+ },
+ "extractPages": {
+ "name": "Extrae Páginas",
+ "subtitle": "Guarda determinadas páginas en un nuevo archivo."
+ },
+ "duplicateOrganize": {
+ "name": "Duplicar & Organizar",
+ "subtitle": "Duplica, reordena y elimina páginas."
+ },
+ "deletePages": {
+ "name": "Eliminar Páginas",
+ "subtitle": "Elimina páginas específicas de tu documento."
+ },
+ "editBookmarks": {
+ "name": "Editar Marcafores",
+ "subtitle": "Agrega, modifica, importa, elimina y extrae marcadores de tu PDF."
+ },
+ "tableOfContents": {
+ "name": "Tabla de Contenidos",
+ "subtitle": "Genera una tabla de contenidos a partir de tus marcadores."
+ },
+ "pageNumbers": {
+ "name": "Número de Páginas",
+ "subtitle": "Agrega número de páginas en tu documento."
+ },
+ "addWatermark": {
+ "name": "Agregar Marca de Agua",
+ "subtitle": "Agrega texto o una imágen sobre las páginas de tu PDF."
+ },
+ "headerFooter": {
+ "name": "Cabecera y Pié de Página",
+ "subtitle": "Agrega texto en la cabecera y pié de página en tu documento."
+ },
+ "invertColors": {
+ "name": "Invertir Colores",
+ "subtitle": "Crea una versión en \"modo oscuro\" de PDF."
+ },
+ "backgroundColor": {
+ "name": "Color de Fondo",
+ "subtitle": "Cambia el color de fondo de tu PDF."
+ },
+ "changeTextColor": {
+ "name": "Color del Texto",
+ "subtitle": "Cambia el color del texto en tu PDF."
+ },
+ "addStamps": {
+ "name": "Agregar Sellos",
+ "subtitle": "Agrega imágenes como sellos en tu PDF utilizando la barra de herramienta de anotaciones."
+ },
+ "removeAnnotations": {
+ "name": "Eliminar Anotaciones",
+ "subtitle": "Elimina comentarios, resaltados y enlaces."
+ },
+ "pdfFormFiller": {
+ "name": "Formularios en PDF",
+ "subtitle": "Rellena formularios directamente en tu navegador. También soporta formularios XFA.",
+ "info": "Carga un PDF con formulares. Complétalos directamente en el visor y luego haz clic en el botón para guardar y descargar el formulario completado. También soporta formato XFA. ",
+ "note": {
+ "title": "Nota acerca de formatos XFA: ",
+ "text": "XFA (XML Forms Architecture, Arquitectura de formularios XML) es un formato legacy que es soportado por ciertos visores de PDF como BentoPDF y Firefox. Si abres un PDF XFA en otras aplicaciones y ves páginas vacías o sin campos de formularios, significa que el visor no soporta XFA. Para ver y rellenar formularios XFA correctamente, utiliza Firefox o BentPDF"
+ }
+ },
+ "createPdfForm": {
+ "name": "Crear Formularios PDF",
+ "subtitle": "Crea formularios con campos de texto arrastrables."
+ },
+ "removeBlankPages": {
+ "name": "Elimina Páginas Vacías",
+ "subtitle": "Automaticamente detecta y elimina páginas vacías."
+ },
+ "imageToPdf": {
+ "name": "Imagen a PDF",
+ "subtitle": "Convierte JPG, PNG, WebP, BMP, TIFF, SVG, HEIC a PDF."
+ },
+ "pngToPdf": {
+ "name": "PNG a PDF",
+ "subtitle": "Crea un PDF a partir de una o más imágenes PNG."
+ },
+ "webpToPdf": {
+ "name": "WebP a PDF",
+ "subtitle": "Crea un PDF a partir de una o más imágenes WebP."
+ },
+ "svgToPdf": {
+ "name": "SVG a PDF",
+ "subtitle": "Crea un PDF a partir de una o más imágenes SVG."
+ },
+ "bmpToPdf": {
+ "name": "BMP a PDF",
+ "subtitle": "Crea un PDF a partir de una o más imágenes BMP."
+ },
+ "heicToPdf": {
+ "name": "HEIC a PDF",
+ "subtitle": "Crea un PDF a partir de una o más imágenes HEIC."
+ },
+ "tiffToPdf": {
+ "name": "TIFF a PDF",
+ "subtitle": "Crea un PDF a partir de una o más imágenes TIFF."
+ },
+ "textToPdf": {
+ "name": "Texto a PDF",
+ "subtitle": "Crea un PDF a partir de un archivo de texto."
+ },
+ "jsonToPdf": {
+ "name": "JSON a PDF",
+ "subtitle": "Convierte un archivo JSON a PDF.",
+ "note": {
+ "title": "Nota:",
+ "text": "Solo hay soporte para archivos JSON creados por el convertidor de PDF a JSON. Archivos JSON de otras herramientas no van a funcionar. "
+ }
+ },
+ "pdfToJpg": {
+ "name": "PDF a JPG",
+ "subtitle": "Convierte cada página de tu PDF en una imagen JPG."
+ },
+ "pdfToPng": {
+ "name": "PDF a PNG",
+ "subtitle": "Convierte cada página de tu PDF en una imagen PNG."
+ },
+ "pdfToWebp": {
+ "name": "PDF a WebP",
+ "subtitle": "Convierte cada página de tu PDF en una imagen WebP."
+ },
+ "pdfToBmp": {
+ "name": "PDF a BMP",
+ "subtitle": "Convierte cada página de tu PDF en una imagen BMP."
+ },
+ "pdfToTiff": {
+ "name": "PDF a TIFF",
+ "subtitle": "Convierte cada página de tu PDF en una imagen TIFF."
+ },
+ "pdfToGreyscale": {
+ "name": "PDF a Escala de Grises",
+ "subtitle": "Convierte todos los colores a escala de grises."
+ },
+ "pdfToJson": {
+ "name": "PDF a JSON",
+ "subtitle": "Convierte tu PDF a JSON."
+ },
+ "ocrPdf": {
+ "name": "OCR PDF",
+ "subtitle": "Haz que se pueda buscar y copiar en tu PDF. Selecciona uno o más idiomas presentes en tu PDF para mejores resultados",
+ "notes": {
+ "extract": "Extraer texto:",
+ "extractDetail": "Utiliza Tesseract OCR para reconocer texto de imágenes escaneadas o PFDs",
+ "searchable": "Salida Buscable:",
+ "searchableDetail": "Crea un nuevo PDF con una capa invisible de texto, haciendo que en tu documento sea pueda buscar manteniendo su apariencia original",
+ "characterFiltering": "Filtrado por Caracteres:",
+ "characterFilteringDetail": "Utiliza una lita blanca para filtrar caracteres no deseados u mejorar la precisión para documentos específicos (facturas, formularios, etc)",
+ "multiLanguage": "Soporte a Multiidioma:",
+ "multiLanguageDetail": "Selecciona varios idiomas para documentos que contienen una mezcla de idiomas"
+ }
+ },
+ "alternateMix": {
+ "name": "Alternar y Mezclar Páginas",
+ "subtitle": "Une PDFs alternando páginas de cada PDF. Preserva los marcadores."
+ },
+ "addAttachments": {
+ "name": "Agregar Adjuntos",
+ "subtitle": "Incrusta uno o más archivos en tu PDF."
+ },
+ "extractAttachments": {
+ "name": "Extraer Adjuntos",
+ "subtitle": "Extrae todos los archivos adjuntos de tus PDFs en un ZIP."
+ },
+ "editAttachments": {
+ "name": "Editar Adjuntos",
+ "subtitle": "Visualiza o elimina archivos adjuntos en tu PDF."
+ },
+ "dividePages": {
+ "name": "Dividir Páginas",
+ "subtitle": "Divide páginas horizontal o verticalmente."
+ },
+ "addBlankPage": {
+ "name": "Agregar Páginas Vacías",
+ "subtitle": "Agrega páginas vacías en cualquier lugar de tu PDF."
+ },
+ "reversePages": {
+ "name": "Invertir Ordes de Páginas",
+ "subtitle": "Invierte el orden de todas tus páginas en tu documento."
+ },
+ "rotatePdf": {
+ "name": "Rotar PDF",
+ "subtitle": "Rota las páginas en incrementos de 90 grados."
+ },
+ "nUpPdf": {
+ "name": "N-Up PDF",
+ "subtitle": "Organiza varias páginas en una sola hoja."
+ },
+ "combineToSinglePage": {
+ "name": "Combinar en una sola página",
+ "subtitle": "Une todas las páginas en una hoja contínua."
+ },
+ "viewMetadata": {
+ "name": "Ver Metadata",
+ "subtitle": "Inspecciona las propiedades ocultas de tu PDF."
+ },
+ "editMetadata": {
+ "name": "Editar Metadata",
+ "subtitle": "Cambia el autor, el título y otras propiedades."
+ },
+ "pdfsToZip": {
+ "name": "PDFs a ZIP",
+ "subtitle": "Empaqueta varios PDFs en un ZIP."
+ },
+ "comparePdfs": {
+ "name": "Comparar PDFs",
+ "subtitle": "Compara dos PDF lado a lado."
+ },
+ "posterizePdf": {
+ "name": "Posterizar PDF",
+ "subtitle": "Divide una página grande en varias páginas más pequeñas."
+ },
+ "fixPageSize": {
+ "name": "Corregir Tamaño de Página",
+ "subtitle": "Estandariza todas las páginas a un tamaño uniforme."
+ },
+ "linearizePdf": {
+ "name": "Linealizar PDF",
+ "subtitle": "Optimiza un PDF para una visualización web rápida."
+ },
+ "pageDimensions": {
+ "name": "Dimensiones de Página",
+ "subtitle": "Analiza el tamaño de la página, la orientación y las unidades."
+ },
+ "removeRestrictions": {
+ "name": "Eliminar restricciones",
+ "subtitle": "Elimina la protección con contraseña y las restricciones de seguridad asociadas con los archivos PDF firmados digitalmente."
+ },
+ "repairPdf": {
+ "name": "Reparar PDF",
+ "subtitle": "Recupera datos de archivos PDF dañados o corruptos."
+ },
+ "encryptPdf": {
+ "name": "Encriptar PDF",
+ "subtitle": "Bloquea tu PDF agregando una contraseña."
+ },
+ "sanitizePdf": {
+ "name": "Limpiar PDF",
+ "subtitle": "Elimina metadatos, anotaciones, scripts y más."
+ },
+ "decryptPdf": {
+ "name": "Desencriptar PDF",
+ "subtitle": "Desbloquea PDF eliminando la protección con contraseña."
+ },
+ "flattenPdf": {
+ "name": "Aplanar PDF",
+ "subtitle": "Haz que los campos de formulario y las anotaciones no sean editables."
+ },
+ "removeMetadata": {
+ "name": "Eliminar Metadata",
+ "subtitle": "Elimina datos ocultos de tu PDF."
+ },
+ "changePermissions": {
+ "name": "Cambiar Permisos",
+ "subtitle": "Establece o cambia los permisos de usuario en un PDF."
+ }
+}
\ No newline at end of file
diff --git a/src/js/config/tesseract-languages.ts b/src/js/config/tesseract-languages.ts
index 1fc052e48..c1f31df34 100644
--- a/src/js/config/tesseract-languages.ts
+++ b/src/js/config/tesseract-languages.ts
@@ -24,6 +24,7 @@ export const tesseractLanguages = {
ell: 'Greek, Modern (1453-)',
enm: 'English, Middle (1100-1500)',
epo: 'Esperanto',
+ esp: 'Spanish',
est: 'Estonian',
eus: 'Basque',
fas: 'Persian',
diff --git a/src/js/i18n/i18n.ts b/src/js/i18n/i18n.ts
index fe1c7c5a3..24b9515db 100644
--- a/src/js/i18n/i18n.ts
+++ b/src/js/i18n/i18n.ts
@@ -3,17 +3,18 @@ import LanguageDetector from 'i18next-browser-languagedetector';
import HttpBackend from 'i18next-http-backend';
// Supported languages
-export const supportedLanguages = ['en', 'de'] as const;
+export const supportedLanguages = ['en', 'de', 'es'] as const;
export type SupportedLanguage = (typeof supportedLanguages)[number];
export const languageNames: Record
-
Select Files to Attach
+ Select Files to Attach
Select Files to Attach
Attachment Level
+ Attachment Level
Click to select a file or drag and drop
A single PDF file
+A single PDF file
Your files never leave your device.
@@ -97,27 +98,30 @@How it works:
+How it works:
Enter 0 to insert at the - beginning.
++ Enter 0 to insert at the beginning. +
PDF file
+PDF file
Your files never leave your device.
Use the toolbar's image stamp tool to place stamps.
PDF file
+PDF file
Your files never leave your device.
diff --git a/src/pages/alternate-merge.html b/src/pages/alternate-merge.html index bbff9aaa6..b1d58de7e 100644 --- a/src/pages/alternate-merge.html +++ b/src/pages/alternate-merge.html @@ -12,6 +12,7 @@ + @@ -83,7 +84,7 @@Click to select files or drag and drop
-Multiple PDF files (at least 2)
+Multiple PDF files (at least 2)
Your files never leave your device.
@@ -94,12 +95,12 @@Drag to reorder. Pages will be interleaved in this order.
+Drag to reorder. Pages will be interleaved in this order.
PDF file
+PDF file
Your files never leave your device.
@@ -96,12 +97,13 @@Click to select files or drag and drop
-BMP images
++ Click to select files + or drag and drop +
+BMP images
Your files never leave your device.
A single PDF file
-+
A single PDF file
+Your files never leave your device.
@@ -104,26 +105,26 @@A single PDF file
+A single PDF file
Your files never leave your device.
@@ -96,16 +97,16 @@