ميزة: إضافة مكوني ProcedureSelection و StepProgress لأداة مخططات التدفق بصيغة PDF

- تنفيذ مكون ProcedureSelection لتمكين المستخدمين من اختيار الإجراءات من قائمة، وإدارة الاختيارات، ومعالجة الإجراءات المرفوضة.

- إنشاء مكون StepProgress لعرض تقدم معالج متعدد الخطوات بشكل مرئي.

- تعريف أنواع مشتركة للإجراءات، وخطوات التدفق، ورسائل الدردشة في ملف types.ts.

- إضافة اختبارات وحدة لخطافات useFileUpload و useTaskPolling لضمان الأداء السليم ومعالجة الأخطاء.

- تنفيذ اختبارات واجهة برمجة التطبيقات (API) للتحقق من تنسيقات نقاط النهاية وضمان اتساق ربط الواجهة الأمامية بالخلفية.
This commit is contained in:
Your Name
2026-03-06 17:16:09 +02:00
parent 2e97741d60
commit cfbcc8bd79
62 changed files with 10567 additions and 101 deletions

View File

@@ -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": {