Feature/v2/compare tool (#4751)

# Description of Changes

- Addition of the compare tool
- 
---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.

---------

Co-authored-by: James Brunton <[email protected]>
This commit is contained in:
EthanHealy01
2025-11-12 14:54:01 +00:00
committed by GitHub
co-authored by James Brunton
parent f22f697edc
commit a5e2b54274
49 changed files with 6651 additions and 81 deletions
+102 -7
View File
@@ -38,6 +38,7 @@
"language": {
"direction": "ltr"
},
"cancel": "Cancel",
"addPageNumbers": {
"fontSize": "Font Size",
"fontName": "Font Name",
@@ -2157,15 +2158,99 @@
"tags": "differentiate,contrast,changes,analysis",
"title": "Compare",
"header": "Compare PDFs",
"highlightColor": {
"1": "Highlight Colour 1:",
"2": "Highlight Colour 2:"
"clearSelected": "Clear selected",
"clear": {
"confirmTitle": "Clear selected PDFs?",
"confirmBody": "This will close the current comparison and take you back to Active Files.",
"confirm": "Clear and return"
},
"document": {
"1": "Document 1",
"2": "Document 2"
"review": {
"title": "Comparison Result",
"actionsHint": "Review the comparison, switch document roles, or export the summary.",
"switchOrder": "Switch order",
"exportSummary": "Export summary"
},
"submit": "Compare",
"base": {
"label": "Original document",
"placeholder": "Select the original PDF"
},
"comparison": {
"label": "Edited document",
"placeholder": "Select the edited PDF"
},
"addFilesHint": "Add PDFs in the Files step to enable selection.",
"noFiles": "No PDFs available yet",
"pages": "Pages",
"selection": {
"originalEditedTitle": "Select Original and Edited PDFs"
},
"original": { "label": "Original PDF" },
"edited": { "label": "Edited PDF" },
"swap": {
"confirmTitle": "Re-run comparison?",
"confirmBody": "This will rerun the tool. Are you sure you want to swap the order of Original and Edited?",
"confirm": "Swap and Re-run"
},
"cta": "Compare",
"loading": "Comparing...",
"summary": {
"baseHeading": "Original document",
"comparisonHeading": "Edited document",
"pageLabel": "Page"
},
"rendering": {
"pageNotReadyTitle": "Page not rendered yet",
"pageNotReadyBody": "Some pages are still rendering. Navigation will snap once they are ready.",
"rendering": "rendering",
"inProgress": "At least one of these PDFs are very large, scrolling won't be smooth until the rendering is complete",
"pagesRendered": "pages rendered",
"complete": "Page rendering complete"
},
"dropdown": {
"deletionsLabel": "Deletions",
"additionsLabel": "Additions",
"deletions": "Deletions ({{count}})",
"additions": "Additions ({{count}})",
"searchPlaceholder": "Search changes...",
"noResults": "No changes found"
},
"actions": {
"stackVertically": "Stack vertically",
"placeSideBySide": "Place side by side",
"zoomOut": "Zoom out",
"zoomIn": "Zoom in",
"resetView": "Reset view",
"unlinkScrollPan": "Unlink scroll and pan",
"linkScrollPan": "Link scroll and pan",
"unlinkScroll": "Unlink scroll",
"linkScroll": "Link scroll"
},
"toasts": {
"unlinkedTitle": "Independent scroll & pan enabled",
"unlinkedBody": "Tip: Arrow Up/Down scroll both panes; panning only moves the active pane."
},
"error": {
"selectRequired": "Select a original and edited document.",
"filesMissing": "Unable to locate the selected files. Please re-select them.",
"generic": "Unable to compare these files."
},
"status": {
"extracting": "Extracting text...",
"processing": "Analysing differences...",
"complete": "Comparison ready"
},
"longJob": {
"title": "Large comparison in progress",
"body": "These PDFs together exceed 2,000 pages. Processing can take several minutes."
},
"slowOperation": {
"title": "Still working…",
"body": "This comparison is taking longer than usual. You can let it continue or cancel it.",
"cancel": "Cancel comparison"
},
"newLine": "new-line",
"complex": {
"message": "One or both of the provided documents are large files, accuracy of comparison may be reduced"
},
@@ -2178,6 +2263,16 @@
"text": {
"message": "One or both of the selected PDFs have no text content. Please choose PDFs with text for comparison."
}
},
"too": {
"dissimilar": {
"message": "These documents appear highly dissimilar. Comparison was stopped to save time."
}
},
"earlyDissimilarity": {
"title": "These PDFs look highly different",
"body": "We're seeing very few similarities so far. You can stop the comparison if these aren't related documents.",
"stopButton": "Stop comparison"
}
},
"certSign": {