ميزة: إضافة مكوني ProcedureSelection و StepProgress لأداة مخططات التدفق بصيغة PDF
- تنفيذ مكون ProcedureSelection لتمكين المستخدمين من اختيار الإجراءات من قائمة، وإدارة الاختيارات، ومعالجة الإجراءات المرفوضة. - إنشاء مكون StepProgress لعرض تقدم معالج متعدد الخطوات بشكل مرئي. - تعريف أنواع مشتركة للإجراءات، وخطوات التدفق، ورسائل الدردشة في ملف types.ts. - إضافة اختبارات وحدة لخطافات useFileUpload و useTaskPolling لضمان الأداء السليم ومعالجة الأخطاء. - تنفيذ اختبارات واجهة برمجة التطبيقات (API) للتحقق من تنسيقات نقاط النهاية وضمان اتساق ربط الواجهة الأمامية بالخلفية.
This commit is contained in:
@@ -22,16 +22,20 @@
|
||||
"lightMode": "Light Mode"
|
||||
},
|
||||
"home": {
|
||||
"hero": "Transform Your Files Instantly",
|
||||
"heroSub": "Free online tools for PDF, image, video, and text processing. No registration required.",
|
||||
"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": "Upload Your File",
|
||||
"uploadOr": "or drag & drop your file here",
|
||||
"uploadSubtitle": "We auto-detect your file type and show matching tools",
|
||||
"uploadCta": "Drag your file here or click to browse",
|
||||
"uploadOr": "Supported: PDF, Word, JPG, PNG, WebP, MP4 — Max size: 200 MB.",
|
||||
"uploadSubtitle": "We generate a quick preview and instantly show matching tools.",
|
||||
"editNow": "Edit Your File Now",
|
||||
"editNowTooltip": "Open the file editor — edit text, add comments, and modify pages",
|
||||
"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.",
|
||||
@@ -39,7 +43,14 @@
|
||||
"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": {
|
||||
@@ -110,9 +121,18 @@
|
||||
"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"
|
||||
"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",
|
||||
@@ -181,6 +201,135 @@
|
||||
"topCenter": "Top Center",
|
||||
"topRight": "Top Right",
|
||||
"topLeft": "Top Left"
|
||||
},
|
||||
"pdfEditor": {
|
||||
"title": "Advanced PDF Editor",
|
||||
"description": "Edit PDF text, add comments, reorder pages, and save a final copy. Fast, simple, and right in your browser.",
|
||||
"shortDesc": "Edit PDF",
|
||||
"intro": "Here you can edit your PDF directly in the browser: add text, comments, highlights, freehand drawing, delete/add pages, and export a new copy without altering the original.",
|
||||
"steps": {
|
||||
"step1": "Add elements (text, highlight, drawing, note) using the toolbar at the top.",
|
||||
"step2": "Click Save to save a new copy (a new version is created — the original file is not replaced).",
|
||||
"step3": "Click Download to get the final copy, or choose Share to copy the download link."
|
||||
},
|
||||
"save": "Save Changes",
|
||||
"saveTooltip": "Save a new 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": "We save a new copy each time you save changes — the original file is never modified. You can revert to previous versions from the file page. Temporary files are automatically deleted after 30 minutes if the process is not completed.",
|
||||
"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 (200MB). 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"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
|
||||
Reference in New Issue
Block a user