Files
SaaS-PDF/frontend/src/i18n/en.json
Your Name 6bb76e3f1b Add OCR, Background Removal, and PDF Editor features with tests
- Implemented OCR functionality using pytesseract for image and PDF text extraction.
- Added Background Removal service using rembg for image processing.
- Developed PDF Editor service for applying text annotations to PDF files.
- Created corresponding API routes for OCR, Background Removal, and PDF Editor.
- Added frontend components for OCR and Background Removal tools.
- Integrated feature flagging for new tools, ensuring they are disabled by default.
- Implemented comprehensive unit tests for OCR service, PDF editor, and background removal.
- Updated documentation to reflect new features and usage instructions.
- Added translations for new features in English, Arabic, and French.
2026-03-07 21:29:08 +02:00

450 lines
19 KiB
JSON

{
"common": {
"appName": "SaaS-PDF",
"tagline": "Free Online File Tools",
"upload": "Upload File",
"download": "Download",
"processing": "Processing...",
"dragDrop": "Drag & drop your file here, or click to browse",
"maxSize": "Maximum file size: {{size}}MB",
"tryOtherTools": "Try Other Tools",
"error": "Error",
"success": "Success",
"loading": "Loading...",
"startOver": "Start Over",
"home": "Home",
"about": "About",
"privacy": "Privacy Policy",
"terms": "Terms of Service",
"language": "Language",
"allTools": "All Tools",
"account": "Account",
"signIn": "Sign In",
"email": "Email",
"password": "Password",
"darkMode": "Dark Mode",
"lightMode": "Light Mode"
},
"auth": {
"forgotPassword": {
"title": "Forgot Password",
"subtitle": "Enter your email and we'll send you a reset link.",
"submit": "Send Reset Link",
"sent": "If that email is registered, a reset link has been sent. Check your inbox.",
"error": "Something went wrong. Please try again.",
"link": "Forgot your password?"
},
"resetPassword": {
"title": "Reset Password",
"newPassword": "New Password",
"submit": "Reset Password",
"success": "Password updated successfully! Redirecting to sign in...",
"error": "Failed to reset password. The link may have expired.",
"tooShort": "Password must be at least 8 characters.",
"noToken": "Invalid reset link. Please request a new one."
}
},
"home": {
"hero": "Everything You Need to Work with PDF Files — Instantly",
"heroSub": "Upload or drag & drop your file, and we'll auto-detect its type and suggest the right tools — edit, convert, compress, and more. No registration required.",
"popularTools": "Popular Tools",
"pdfTools": "PDF Tools",
"imageTools": "Image Tools",
"videoTools": "Video Tools",
"textTools": "Text Tools",
"uploadCta": "Drag your file here or click to browse",
"uploadOr": "Supported: PDF, Word, JPG, PNG, WebP, MP4 — Max size: 50 MB.",
"uploadSubtitle": "We generate a quick preview and instantly show matching tools.",
"editNow": "Optimize PDF Now",
"editNowTooltip": "Open quick PDF optimization for a cleaner downloadable copy",
"suggestedTools": "Suggested Tools for Your File",
"suggestedToolsDesc": "After uploading, we automatically show compatible tools: text editing, highlighting, merge/split, compress, convert to Word/image, video to GIF, and more.",
"selectTool": "Choose a Tool",
"fileDetected": "We detected a {{type}} file",
"unsupportedFile": "This file type is not supported. Try PDF, Word, images, or video.",
"fileTypes": {
"image": "Image",
"video": "Video",
"unknown": "Unknown"
},
"featuresTitle": "A smarter way to convert and edit online",
"feature1Title": "One complete workspace",
"feature1Desc": "Edit, convert, compress, merge, split without switching tabs.",
"feature2Title": "Accuracy you can trust",
"feature2Desc": "Get pixel-perfect, editable files in seconds with zero quality loss.",
"feature3Title": "Built-in security",
"feature3Desc": "Access files securely, protected by automatic encryption."
},
"tools": {
"pdfToWord": {
"title": "PDF to Word",
"description": "Convert PDF files to editable Word documents online for free.",
"shortDesc": "PDF → Word"
},
"wordToPdf": {
"title": "Word to PDF",
"description": "Convert Word documents (DOC, DOCX) to PDF format online for free.",
"shortDesc": "Word → PDF"
},
"compressPdf": {
"title": "Compress PDF",
"description": "Reduce PDF file size while maintaining quality. Choose your compression level.",
"shortDesc": "Compress PDF",
"qualityLow": "Maximum Compression",
"qualityMedium": "Balanced",
"qualityHigh": "High Quality"
},
"imageConvert": {
"title": "Image Converter",
"description": "Convert images between JPG, PNG, and WebP formats instantly.",
"shortDesc": "Convert Images"
},
"imageResize": {
"title": "Image Resize",
"description": "Resize images to exact dimensions while maintaining quality.",
"shortDesc": "Resize Image",
"dimensions": "Target Dimensions",
"width": "Width (px)",
"height": "Height (px)",
"quality": "Quality",
"lockAspect": "Lock aspect ratio",
"aspectHint": "Enter one dimension — the other will auto-calculate to preserve aspect ratio."
},
"ocr": {
"title": "OCR — Text Recognition",
"description": "Extract text from images and scanned PDF documents using optical character recognition.",
"shortDesc": "Extract Text",
"sourceType": "Source Type",
"modeImage": "Image",
"modePdf": "PDF",
"language": "OCR Language",
"extract": "Extract Text",
"charsExtracted": "{{count}} characters extracted",
"copyText": "Copy Text"
},
"removeBg": {
"title": "Remove Background",
"description": "Remove the background from images automatically using AI. Get a transparent PNG in seconds.",
"shortDesc": "Remove BG",
"remove": "Remove Background",
"success": "Background removed successfully!"
},
"videoToGif": {
"title": "Video to GIF",
"description": "Create animated GIFs from video clips. Customize start time, duration, and quality.",
"shortDesc": "Video → GIF",
"startTime": "Start Time (seconds)",
"duration": "Duration (seconds)",
"fps": "Frames Per Second",
"width": "Width (pixels)"
},
"wordCounter": {
"title": "Word Counter",
"description": "Count words, characters, sentences, and paragraphs in your text instantly.",
"shortDesc": "Count Words",
"words": "Words",
"characters": "Characters",
"sentences": "Sentences",
"paragraphs": "Paragraphs",
"placeholder": "Type or paste your text here..."
},
"textCleaner": {
"title": "Text Cleaner",
"description": "Remove extra spaces, convert text case, and clean up your text instantly.",
"shortDesc": "Clean Text",
"removeSpaces": "Remove Extra Spaces",
"toUpperCase": "UPPER CASE",
"toLowerCase": "lower case",
"toTitleCase": "Title Case",
"toSentenceCase": "Sentence case",
"removeDiacritics": "Remove Arabic Diacritics",
"copyResult": "Copy Result"
},
"mergePdf": {
"title": "Merge PDF",
"description": "Combine multiple PDF files into a single document. Free and fast.",
"shortDesc": "Merge PDFs",
"selectFiles": "Select PDF Files",
"addMore": "Add More Files",
"filesSelected": "{{count}} files selected",
"dragToReorder": "Drag files to reorder them"
},
"splitPdf": {
"title": "Split PDF",
"description": "Split a PDF into individual pages or extract specific page ranges.",
"shortDesc": "Split PDF",
"allPages": "All Pages",
"allPagesDesc": "Extract every page as a separate PDF file",
"selectPages": "Select Pages",
"selectPagesDesc": "Extract only specific pages or ranges",
"pageRange": "Page Range",
"rangeHint": "e.g. 1,3,5-8",
"rangePlaceholder": "Enter pages: 1,3,5-8",
"errors": {
"requiredPages": "Please enter page numbers or ranges (e.g. 1,3,5-8).",
"outOfRange": "Selected pages ({{selected}}) are out of range. This PDF has only {{total}} page(s).",
"invalidFormat": "Invalid page format: {{tokens}}. Use a format like 1,3,5-8.",
"noPagesSelected": "No pages selected. This PDF has {{total}} page(s)."
}
},
"rotatePdf": {
"title": "Rotate PDF",
"description": "Rotate all pages of a PDF by 90°, 180°, or 270° degrees.",
"shortDesc": "Rotate PDF",
"angle": "Rotation Angle",
"90": "90° Clockwise",
"180": "180° Flip",
"270": "270° Counter-clockwise"
},
"pdfToImages": {
"title": "PDF to Images",
"description": "Convert each page of a PDF into high-quality images (PNG or JPG).",
"shortDesc": "PDF → Images",
"format": "Image Format",
"dpi": "Resolution (DPI)",
"dpiLow": "72 — Screen",
"dpiMedium": "150 — Standard",
"dpiHigh": "200 — Good",
"dpiUltra": "300 — Print Quality"
},
"imagesToPdf": {
"title": "Images to PDF",
"description": "Combine multiple images into a single PDF document.",
"shortDesc": "Images → PDF",
"selectImages": "Select Images",
"addMore": "Add More Images",
"imagesSelected": "{{count}} images selected"
},
"watermarkPdf": {
"title": "Watermark PDF",
"description": "Add a custom text watermark to every page of your PDF.",
"shortDesc": "Add Watermark",
"text": "Watermark Text",
"textPlaceholder": "Enter watermark text",
"opacity": "Opacity",
"light": "Light",
"heavy": "Heavy"
},
"protectPdf": {
"title": "Protect PDF",
"description": "Add password protection to your PDF to prevent unauthorized access.",
"shortDesc": "Protect PDF",
"password": "Password",
"passwordPlaceholder": "Enter a strong password",
"confirmPassword": "Confirm Password",
"confirmPlaceholder": "Re-enter the password",
"mismatch": "Passwords do not match"
},
"unlockPdf": {
"title": "Unlock PDF",
"description": "Remove password protection from your PDF file.",
"shortDesc": "Unlock PDF",
"password": "Current Password",
"passwordPlaceholder": "Enter the PDF password"
},
"pageNumbers": {
"title": "Add Page Numbers",
"description": "Add page numbers to every page of your PDF. Choose position and starting number.",
"shortDesc": "Add Page Numbers",
"position": "Number Position",
"startNumber": "Start From",
"bottomCenter": "Bottom Center",
"bottomRight": "Bottom Right",
"bottomLeft": "Bottom Left",
"topCenter": "Top Center",
"topRight": "Top Right",
"topLeft": "Top Left"
},
"pdfEditor": {
"title": "Quick PDF Optimizer",
"description": "Create a cleaner, optimized copy of your PDF with one click while keeping the original untouched.",
"shortDesc": "Optimize PDF",
"intro": "Upload your PDF and generate an optimized copy ready for sharing and download.",
"steps": {
"step1": "Upload your PDF file.",
"step2": "Click optimize to create a fresh processed copy.",
"step3": "Download or share the generated file link."
},
"save": "Optimize & Save Copy",
"saveTooltip": "Create an optimized copy of the file",
"downloadFile": "Download File",
"downloadTooltip": "Download the final PDF",
"undo": "Undo",
"redo": "Redo",
"addPage": "Add Page",
"deletePage": "Delete Page",
"rotate": "Rotate",
"extractPage": "Extract as New File",
"thumbnails": "View Pages",
"share": "Share",
"versionNote": "This tool currently focuses on PDF optimization and clean output generation. The original file is never modified.",
"privacyNote": "Your files are protected — we perform security checks before processing and use encrypted connections (HTTPS). See our Privacy Policy for more details.",
"preparingPreview": "Preparing preview…",
"preparingPreviewSub": "This may take a few seconds depending on file size.",
"applyingChanges": "Applying changes…",
"applyingChangesSub": "Don't close the window — a new file will be created when done.",
"savedSuccess": "Changes saved successfully — you can now download the file.",
"processingFailed": "Failed to process the file. Try re-uploading or try again later.",
"retry": "Retry",
"fileTooLarge": "File size exceeds the limit (20MB). Please reduce the file size and try again."
},
"pdfFlowchart": {
"title": "PDF to Flowchart",
"description": "Extract procedures from PDF documents and convert them into interactive flowcharts automatically.",
"shortDesc": "PDF → Flowchart",
"uploadStep": "Upload PDF",
"uploadDesc": "Upload your PDF document to extract procedures",
"dragDropHint": "or drag and drop your PDF file here",
"trySampleTitle": "No PDF handy?",
"trySampleDesc": "Try our sample document to see the tool in action",
"trySample": "Try Sample",
"extracting": "Analyzing document...",
"extractingDesc": "We are scanning your PDF and identifying procedures",
"proceduresFound": "{{count}} procedures found",
"noProcedures": "No procedures were detected in this document. Try a different PDF.",
"selectProcedures": "Select Procedures",
"selectProceduresDesc": "Choose which procedures to convert into flowcharts",
"selectAll": "Select All",
"deselectAll": "Deselect All",
"addManual": "Add Manually",
"pages": "Pages",
"generateFlows": "Generate Flowcharts",
"generating": "Generating flowcharts...",
"generatingDesc": "Creating visual flowcharts from selected procedures",
"generatingFor": "Generating flowcharts for {{count}} procedures...",
"flowReady": "Flowcharts Ready!",
"flowReadyDesc": "Your flowcharts have been generated successfully",
"flowReadyCount": "{{count}} flowchart(s) generated successfully",
"steps": "{{count}} steps",
"viewFlow": "View Flowchart",
"viewResults": "View Results",
"exportPng": "Export as PNG",
"exportSvg": "Export as SVG",
"exportPdf": "Export as PDF",
"startNode": "Start",
"endNode": "End",
"processNode": "Process",
"decisionNode": "Decision",
"backToList": "Back to List",
"back": "Back",
"reject": "Reject",
"restore": "Restore",
"viewSection": "View Document Section",
"rejectedTitle": "Rejected Procedures",
"rejectedCount": "{{count}} rejected",
"estimatedTime": "~{{time}} min",
"complexity": {
"simple": "Simple",
"medium": "Medium",
"complex": "Complex"
},
"wizard": {
"upload": "Upload",
"select": "Select",
"create": "Create",
"results": "Results"
},
"manualTitle": "Add Manual Procedure",
"manualDesc": "Specify a page range and create a custom procedure",
"procTitleLabel": "Procedure Title",
"procTitlePlaceholder": "Enter procedure title...",
"procDescriptionLabel": "Description",
"procDescriptionPlaceholder": "Describe the procedure...",
"selectPageRange": "Select Page Range",
"startPage": "Start Page",
"endPage": "End Page",
"invalidRange": "Invalid page range",
"pagesSelected": "{{count}} page(s) selected",
"createProcedure": "Create Procedure",
"pagePreview": "Page Preview",
"selectPagesToPreview": "Select pages to preview content",
"pageLabel": "Page {{num}}",
"noPageContent": "No content available for this page",
"documentViewer": "Document Viewer",
"backToProcedures": "Back to Procedures",
"totalPagesLabel": "Total Pages",
"documentContent": "Document Content",
"pagesWord": "pages",
"aiAnalysis": "AI Analysis",
"keyActions": "Key Actions",
"stepsIdentified": "{{count}} steps identified",
"decisionPoints": "Decision Points",
"flowComplexity": "Flow Complexity",
"flowStepsEstimate": "~{{count}} flow steps estimated",
"totalSteps": "Total Steps",
"processSteps": "Process Steps",
"aiAssistant": "AI Assistant",
"chatWelcome": "Hi! I can help you improve the flowchart \"{{title}}\". Ask me anything about the flow structure, suggest improvements, or request simplifications.",
"chatPlaceholder": "Ask about this flowchart...",
"chatTyping": "AI is thinking...",
"chatError": "Something went wrong. Please try again.",
"chatSuggestion1": "How can I simplify this flow?",
"chatSuggestion2": "Are there missing steps?",
"chatSuggestion3": "Suggest better titles",
"chatSuggestion4": "Add error handling",
"sendMessage": "Send"
}
},
"account": {
"metaTitle": "Account",
"heroTitle": "Save your file activity in one secure workspace",
"heroSubtitle": "Create a free account to keep recent downloads, return to finished tasks, and build a usable history for your document workflow.",
"benefitsTitle": "Why create an account",
"benefit1": "Keep recent generated files in one timeline instead of losing links after each session.",
"benefit2": "See which tool produced each result so repeated work is faster and less error-prone.",
"benefit3": "Prepare your workspace for future premium limits, batch tools, and saved settings.",
"loadFailed": "We couldn't load your account data. Please try again.",
"passwordMismatch": "Passwords do not match.",
"signInTitle": "Sign in to your workspace",
"registerTitle": "Create your free workspace",
"formSubtitle": "Use the same account across sessions to keep your generated file history available.",
"createAccount": "Create Account",
"emailPlaceholder": "name@example.com",
"passwordPlaceholder": "Enter a strong password",
"confirmPassword": "Confirm Password",
"confirmPasswordPlaceholder": "Re-enter your password",
"submitLogin": "Sign In",
"submitRegister": "Create Free Account",
"freePlanBadge": "Free Plan",
"proPlanBadge": "Pro Plan",
"signedInAs": "Signed in as",
"currentPlan": "Current plan",
"logoutCta": "Sign Out",
"upgradeNotice": "Contact us to upgrade to Pro for higher limits, no ads, and B2B API access.",
"plans": {
"free": "Free",
"pro": "Pro"
},
"webQuotaTitle": "Web Tasks This Month",
"apiQuotaTitle": "API Tasks This Month",
"quotaPeriod": "Period",
"apiKeysTitle": "API Keys",
"apiKeysSubtitle": "Manage your B2B API keys. Each key gives Pro-level async access to all tools.",
"apiKeyNamePlaceholder": "Key name (e.g. Production)",
"apiKeyCreate": "Create Key",
"apiKeyCopyWarning": "Copy this key now — it will never be shown again.",
"apiKeysEmpty": "No API keys yet. Create one above.",
"apiKeyRevoked": "Revoked",
"apiKeyRevoke": "Revoke key",
"historyTitle": "Recent file history",
"historySubtitle": "Completed and failed tasks tied to your account appear here automatically.",
"historyLoading": "Loading recent activity...",
"historyEmpty": "No file history yet. Process a file while signed in and it will appear here.",
"downloadResult": "Download Result",
"createdAt": "Created",
"originalFile": "Original file",
"outputFile": "Output file",
"statusCompleted": "Completed",
"statusFailed": "Failed"
},
"result": {
"conversionComplete": "Conversion Complete!",
"compressionComplete": "Compression Complete!",
"originalSize": "Original Size",
"newSize": "New Size",
"reduction": "Reduction",
"downloadReady": "Your file is ready for download.",
"linkExpiry": "Download link expires in 30 minutes."
}
}