mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-12-18 20:04:17 +01:00
master
258 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d8b43029db
|
🌐 Sync Translations + Update README Progress Table (#4991)
### Description of Changes This Pull Request was automatically generated to synchronize updates to translation files and documentation. Below are the details of the changes made: #### **1. Synchronization of Translation Files** - Updated translation files (`messages_*.properties`) to reflect changes in the reference file `messages_en_GB.properties`. - Ensured consistency and synchronization across all supported language files. - Highlighted any missing or incomplete translations. #### **2. Update README.md** - Generated the translation progress table in `README.md`. - Added a summary of the current translation status for all supported languages. - Included up-to-date statistics on translation coverage. #### **Why these changes are necessary** - Keeps translation files aligned with the latest reference updates. - Ensures the documentation reflects the current translation progress. --- Auto-generated by [create-pull-request][1]. [1]: https://github.com/peter-evans/create-pull-request --------- Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com> |
||
|
|
c53000786a
|
Update messages_it_IT.properties (#4944)
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [x] 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) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [x] 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) - [x] 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) ### Translations (if applicable) - [x] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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. |
||
|
|
97f3b88222
|
feat(pdf-EPUB): add PDF to EPUB/AZW3 conversion functionality via Calibre (#4947)
# Description of Changes This PR introduces a new conversion tool allowing users to convert PDF documents into EPUB format. This is particularly useful for reading documents on e-readers (like Kindles or Kobos) where standard PDFs often suffer from fixed formatting and unreadable text sizes. The implementation leverages the existing **Calibre** integration (`ebook-convert`) to produce reflowable e-books with specific optimizations for layout and chapter structure. **Backend Implementation** * Added `ConvertPDFToEpubController` to handle the conversion workflow. * Created `ConvertPdfToEpubRequest` to support new conversion parameters (Device profile and Chapter detection). * Integrated standard Stirling-PDF temporary file management and process execution patterns. **Frontend & UI** * Added a new view `pdf-to-epub.html` containing the upload form and configuration options. * Updated `navElements.html` and `messages.properties` to expose the tool in the navigation menu under the "Convert" group. * Minor cleanup of HTML formatting in the existing `ebook-to-pdf` template for consistency. **Configuration & Testing** * Registered the `pdf-to-epub` endpoint in `EndpointConfiguration`, placing it under the **Calibre** dependency group. * Added comprehensive unit tests covering command generation, parameter handling, and temporary file cleanup. The conversion process utilizes specific calibre, `ebook-convert` flags to ensure high-quality output: * **Heuristic Processing** (`--enable-heuristics`): Automatically detects and fixes common PDF scanning issues, such as broken lines, hyphens at line ends, and inconsistent paragraph spacing. * **CSS Filtering** (`--filter-css`): Strips hardcoded styling (font families, fixed margins, colors) from the PDF. This ensures the resulting EPUB respects the user's e-reader settings (font size, dark mode, etc.). * **Smart Chapter Detection** (`--chapter`): Optionally uses an XPath expression (`//h:*[re:test(., '\\s*Chapter\\s+', 'i')]`) to detect headers and insert proper page breaks in the EPUB structure. * **Device Optimization Profiles**: * **Tablet/Phone:** Uses the default profile to maintain image resolution and color. * **Kindle/E-Ink:** Uses a specific profile to resize images and optimize contrast for grayscale screens. <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] 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) - [X] I have performed a self-review of my own code - [X] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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) - [X] 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. --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
e68871bad3
|
🌐 Update messages_ru_RU.properties (#4938)
Updated Russian translation |
||
|
|
bb4d313b55
|
refactor(common): remove unused temp directory & HTML unzip helpers, prune imports (#4857)
# Description of Changes This pull request primarily removes several unused or redundant utility methods related to temporary directory and file management across the codebase. The changes help simplify the code and reduce maintenance overhead by eliminating code that is no longer needed. **Cleanup of temporary file and directory utilities:** * Removed the `createTempDirectory` method from `CustomPDFDocumentFactory`, which created uniquely named temporary directories. * Removed the `getTempDirectory` method from `GeneralUtils`, which handled custom and default temporary directory configuration. **Codebase simplification in file utilities:** * Deleted the `deleteDirectory` and `unzipAndGetMainHtml` methods from `FileToPdf`, which were used for recursively deleting directories and extracting the main HTML file from a ZIP archive, respectively. * Cleaned up unused imports in `FileToPdf` that were only needed for the removed methods. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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. |
||
|
|
c760d1a93a
|
fix(frontend/pdfjs): ensure CID character rendering via CMaps & stabilize PDF compare/preview (#4762)
# Description of Changes ## What was changed - Introduced a shared `PDFJS_DEFAULT_OPTIONS` object and applied it across frontend modules using PDF.js: - Sets `cMapUrl`, `cMapPacked`, and `standardFontDataUrl` so PDF.js can correctly load CMaps and standard fonts. - Switches all `GlobalWorkerOptions.workerSrc` usages to the dynamic `pdfjsPath + 'pdf.worker.mjs'`. - Exposed `pdfjsPath` globally in `navbar.html` to support deployments under subpaths/reverse proxies. - Updated multiple pages and utilities to use the new defaults: - `DecryptFiles.js`, `downloader.js`, `merge.js`, Multi-Tool (`PdfContainer.js`), and feature pages (`add-image.js`, `adjust-contrast.js`, `change-metadata.js`, `crop.js`, `pdf-to-csv.js`, `sign.js`, `rotate-pdf.html`, `convert/pdf-to-pdfa.html`, `merge-pdfs.html`). - Comparison tool hardening: - Added robust worker protocol (`type: 'COMPARE' | 'SET_*'`) and safer logs. - Improved text tokenization, adaptive batch diffing with overlap de-duplication, and color fallbacks. - Early validation for empty/oversized/invalid PDFs with clearer user messages. - Disabled PDF.js worker in specific templates where legacy CMap handling caused issues (`disableWorker: true`) to prevent rendering failures. - UI/UX tweaks: processing state on the compare button, progress hints during text extraction, and more resilient error handling. - Fixed relative path to popularity data (`./files/popularity.txt`) to respect base paths. ## Why the change was made - PDFs using CID fonts (e.g., CJK and other complex scripts) were rendering with missing glyphs or falling back incorrectly because CMaps and standard font data were not being provided to PDF.js. Providing proper CMap and font resources resolves CID character visibility issues and related console warnings. - Some environments (subpath deployments, reverse proxies) broke PDF.js worker/static asset resolution; centralizing `pdfjsPath` and using it consistently fixes this. - The comparison feature struggled with large/complex documents and lacked robust validation; improvements reduce timeouts, improve accuracy, and provide clearer feedback. Closes #4391 --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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. |
||
|
|
6563292567
|
build(deps): bump io.swagger.core.v3:swagger-core-jakarta from 2.2.40 to 2.2.41 (#4979)
Bumps io.swagger.core.v3:swagger-core-jakarta from 2.2.40 to 2.2.41. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
886f9b379e
|
feat(docker-runtime): unified Debian-based images, dynamic path resolution & enhanced UNO/LibreOffice handling (#4880)
# Description of Changes ### What was changed This PR introduces a major refinement to the Docker runtime, system path resolution, conversion tooling, and integration logic across the codebase. Key improvements include: - Migration of **Dockerfile**, **Dockerfile.fat** to a unified Debian-based environment. - Introduction of **RuntimePathConfig** enhancements to dynamically resolve: - `weasyprint`, `unoconvert`, `calibre`, `ocrmypdf`, `soffice` - Tesseract `tessdata` paths with Docker-aware defaults. - Support for **UNO server (unoserver/unoconvert)** as primary document converter with automatic fallback to `soffice`. - Isolation of Python environments for WeasyPrint and UNO tooling. - Updated controllers and services to correctly inject `RuntimePathConfig`. - Improved process execution logic in converters and OCR handling. - Major updates to `init.sh` and `init-without-ocr.sh`: - Unified environment initialization - Proper UID/GID remapping - Safer permissions handling - Automatic Tesseract path detection - Reliable startup of headless LibreOffice + Xvfb + UNO server - Full test suite updates: - Adaptation to new conversion paths - Mocking of UNO and LibreOffice commands - More robust Docker test logic - Updated example docker-compose files referencing GHCR test images. - Expanded configuration schema for new operations paths. ### Why the change was made These changes address long-standing issues around: - Inconsistent or missing binary paths between image variants. - Reduced reliability of document conversions (UNO vs. soffice). - Lack of uniform runtime initialization across Docker images. - Repetitive environment setup logic split across multiple scripts. - Fragile test scenarios tied to Alpine-based images. Switching to a unified Debian-based runtime significantly improves: - Compatibility with LibreOffice, Calibre, WebEngine and graphics stack. - UNO stability for document conversions. - Tesseract deterministic behavior. - Debuggability and reliability of CI/CD Docker-based tests. The improvements to `RuntimePathConfig` ensure all system binaries are fully configurable and correctly detected at runtime. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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) - [x] 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. |
||
|
|
43345021bf
|
refactor(exceptions): RFC 7807 Problem Details, ResourceBundle i18n, and error factory pattern (#4791)
# Description of Changes Implemented RFC 7807 problem-details standard to provide consistent, structured error responses across the application. All exceptions now flow through a centralized `GlobalExceptionHandler` with tailored handlers for password-protected files, corruption, validation, and Spring framework errors. Every response includes localized `errorCode`, contextual hints, actionable guidance, timestamps, and request paths. **Key improvements:** - Unified error handling prevents inconsistent response formats across services - Localized error messages support multiple languages at runtime - Error context (hints, actionRequired field) improves user experience - Structured metadata enables programmatic error handling on client side Reference: https://www.baeldung.com/spring-boot-return-errors-problemdetail ### Exception Handling - Centralized all exception handling in `GlobalExceptionHandler` with specific handlers for password protection, file corruption, validation errors, and Spring exceptions - Refactored `ExceptionUtils` to generate consistent `ProblemDetail` responses with error metadata - Introduced `ErrorCode` enum to centralize error identification and metadata (supports localization) - Added helper methods for creating standardized exceptions across services ### Implementation Details - **Replaced generic exceptions** with `ExceptionUtils` methods across utility classes (`CbrUtils`, `CbzUtils`, `PdfToCbrUtils`, `EmlProcessingUtils`, `ImageProcessingUtils`) for consistent error handling of invalid formats, empty files, and missing resources - **Improved method signatures** in `JobExecutorService` and `AutoJobAspect` by explicitly declaring thrown exceptions - **Refined job execution error handling** by removing unnecessary catch blocks in synchronous execution, allowing exceptions to propagate to the centralized handler - **Enhanced error messages** for unsupported formats (e.g., RAR5 limitations, PDF-to-CBR constraints) with clearer user guidance ### Response Format All errors now include: - `errorCode`: Machine-readable error identifier (localized at runtime) - `title`: Localized error title - `detail`: Context-specific error message - `hints`: Array of actionable suggestions - `actionRequired`: Boolean flag indicating if user action is needed - `timestamp`: Error occurrence time - `path`: Request path where error occurred **Error examples shown in PR include:** corrupt files, invalid passwords, unsupported formats (RAR5), missing images, OOM conditions, and invalid HTML ### Why This Change - Eliminates ad-hoc error handling patterns scattered across services - Provides actionable guidance instead of technical stack traces - Supports error messages in multiple languages without code changes - Aligns with RFC 7807, improving API interoperability - Error context reduces time to diagnose issues ### Error sample (note the unformatted JSON is NOT visible by default but for presenting purposes I clicked on show stack on each error. By default only error banner (top part of error) visible) Corrupt file: <img width="1912" height="568" alt="image" src="https://github.com/user-attachments/assets/fc6c9dd6-4929-49ab-8e44-bd79c59d875a" /> Password-protected file (invalid password): <img width="1912" height="757" alt="image" src="https://github.com/user-attachments/assets/31632271-8b2f-45c5-ad4a-dff51e085ea0" /> Unsupported RAR: <img width="1912" height="636" alt="image" src="https://github.com/user-attachments/assets/d13cd521-4b07-4399-b97b-4defa842fc05" /> No images in RAR/ZIP: <img width="1912" height="642" alt="image" src="https://github.com/user-attachments/assets/f02999ed-7a56-4e34-9a95-df50c77012cf" /> OOM: <img width="1912" height="714" alt="image" src="https://github.com/user-attachments/assets/3aaf491a-fe42-4831-b905-a4d248e34860" /> Invalid html (on the html to pdf endpoint) <img width="1912" height="577" alt="image" src="https://github.com/user-attachments/assets/584ec7c8-f14c-4eb1-a6b2-cf7812ae8f0a" /> GS conversion fail: <img width="1912" height="674" alt="image" src="https://github.com/user-attachments/assets/8504a876-75e6-40ef-891b-4ee2b3bbdb0a" /> <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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. --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
d39cc7f8ff
|
🌐 Sync Translations + Update README Progress Table (#4878)
### Description of Changes This Pull Request was automatically generated to synchronize updates to translation files and documentation. Below are the details of the changes made: #### **1. Synchronization of Translation Files** - Updated translation files (`messages_*.properties`) to reflect changes in the reference file `messages_en_GB.properties`. - Ensured consistency and synchronization across all supported language files. - Highlighted any missing or incomplete translations. #### **2. Update README.md** - Generated the translation progress table in `README.md`. - Added a summary of the current translation status for all supported languages. - Included up-to-date statistics on translation coverage. #### **Why these changes are necessary** - Keeps translation files aligned with the latest reference updates. - Ensures the documentation reflects the current translation progress. --- Auto-generated by [create-pull-request][1]. [1]: https://github.com/peter-evans/create-pull-request --------- Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com> |
||
|
|
5f560e42ac
|
build(deps): bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0 (#4927)
[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
184bb82aaa
|
build(deps): bump com.google.zxing:core from 3.5.3 to 3.5.4 (#4925)
Bumps [com.google.zxing:core](https://github.com/zxing/zxing) from 3.5.3 to 3.5.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/zxing/zxing/releases">com.google.zxing:core's releases</a>.</em></p> <blockquote> <h2>ZXing 3.5.4</h2> <h2>What's Changed</h2> <ul> <li>Fix container inefficiency in RSSExpandedReader.java by <a href="https://github.com/cinsttool"><code>@cinsttool</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/1782">zxing/zxing#1782</a></li> <li>Fix SYMBOLOGY_IDENTIFIER Loss in QRCodeMultiReader to Ensure Data Integrity and Functional Consistency with QRCodeReader by <a href="https://github.com/xiebaiyuan"><code>@xiebaiyuan</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/1839">zxing/zxing#1839</a></li> <li>Be more stringent on email validation rules by <a href="https://github.com/ftiercelin"><code>@ftiercelin</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/1870">zxing/zxing#1870</a></li> <li>PDF417: Check that input is made of 0...127 chars when using Compaction.TEXT, throw an explicit exception if not the case by <a href="https://github.com/ftiercelin"><code>@ftiercelin</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/1878">zxing/zxing#1878</a></li> <li>Fixing issue <a href="https://redirect.github.com/zxing/zxing/issues/1831">#1831</a> by <a href="https://github.com/ftiercelin"><code>@ftiercelin</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/1879">zxing/zxing#1879</a></li> <li>Add hint to correct wrong dimension by <a href="https://github.com/magethle"><code>@magethle</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/1901">zxing/zxing#1901</a></li> <li>Fix distortion calculation for isosceles right triangles by <a href="https://github.com/magethle"><code>@magethle</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/1908">zxing/zxing#1908</a></li> <li>Add input validation for pixel array length in RGBLuminanceSource to avoid ArrayIndexOutOfBoundsException by <a href="https://github.com/leofernandesmo"><code>@leofernandesmo</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/1961">zxing/zxing#1961</a></li> <li>Add 90-degree rotation support to RGBLuminanceSource by <a href="https://github.com/gredler"><code>@gredler</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/2012">zxing/zxing#2012</a></li> <li>Add GrayscaleLuminanceSource by <a href="https://github.com/gredler"><code>@gredler</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/2013">zxing/zxing#2013</a></li> <li>Loosen ITF max variance for 3x module widths by <a href="https://github.com/gredler"><code>@gredler</code></a> in <a href="https://redirect.github.com/zxing/zxing/pull/2014">zxing/zxing#2014</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/zxing/zxing/compare/zxing-3.5.3...zxing-3.5.4">https://github.com/zxing/zxing/compare/zxing-3.5.3...zxing-3.5.4</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
bdd8d2e6d4
|
feat(pdf-conversion): add support for PDF/A-3b, PDF/X formats improve current PDF/A conversion (#4844)
# Description of Changes TLDR - Updated `PdfToPdfARequest` to include PDF/X in supported output formats - Expanded input handling and model validation for PDF/A and PDF/X - Added Ghostscript as a preferred backend for PDF/A and PDF/X conversions - Implemented PDF/X-specific conversion logic with detailed validation - Updated UI templates to separate PDF/A and PDF/X format options - Updated error handling and warnings during conversion processes This PR replaces the PDF/A conversion system with Ghostscript as the primary method, which less warning prone output compared to the previous LibreOffice approach. It also adds PDF/X format support for print production workflows. ### Better PDF/A Compliance - Ghostscript produces standards-compliant PDF/A with fewer validation errors - Previous LibreOffice method generates files with structural errors and validation warnings - Automatic fallback to PDFBox/LibreOffice if Ghostscript unavailable - Built-in validation using PDFBox Preflight catches issues early ### New PDF/X Support Print production workflows now supported with PDF/X-1, PDF/X-3, and PDF/X-4 formats for professional printing requirements. ### More Reliable Output - Deterministic conversion results - Better font embedding and subsetting - Proper ICC profile and color space handling - Improved resource cleanup prevents memory leaks ### Ghostscript Integration - `buildGhostscriptCommand()` / `buildGhostscriptCommandX()` - Constructs CLI arguments - `convertWithGhostscript()` / `convertWithGhostscriptX()` - Executes conversion - `isGhostscriptAvailable()` - Checks installation - `prepareColorProfiles()` - Sets up ICC profiles - `createPdfaDefFile()` - Generates PostScript definitions ### Conversion Flow - `handlePdfAConversion()` - Routes PDF/A with Ghostscript primary, PDFBox fallback - `handlePdfXConversion()` - Routes PDF/X using Ghostscript - `convertWithPdfBoxMethod()` - Refactored fallback method ### Validation - `validatePdfaOutput()` - Validates using PDFBox Preflight - `validateAndWarnPdfA()` - Logs warnings instead of failing - `buildPreflightErrorMessage()` - Formats detailed errors ### Font Handling Updated `embedMissingFonts()` prevents stream exhaustion by loading font bytes once and creating fresh InputStreams for multiple load attempts. ### Utilities - `findUnembeddedFontNames()` - Identifies unembedded fonts - `deleteQuietly()` - Recursively deletes temp directories - `sanitizePdfA()` - Removes incompatible elements - `removeElementsForPdfA()` - Removes Optional Content and transparency - `mergeAndAddXmpMetadata()` - Handles XMP metadata - `preProcessHighlights()` - Pre-processes annotations - Transparency detection: `isTransparencyGroup()`, `hasTransparentImages()`, `detectTransparentXObjects()` ### PDF/A - PDF/A-1b: Strict compliance - PDF/A-2b: Extended features (default) - PDF/A-3b: Embedded files support ### PDF/X - PDF/X-1: Standard print exchange - PDF/X-3: Color-managed with ICC profiles - PDF/X-4: Transparency support As mentioned greatest benefit is the new Ghostscript conversion is able to deliver fewer warning/zero error PDF/A files compared to the LibreOffice. Sometimes however, both succeed without warnings. Here are some samples: <img width="1876" height="675" alt="image" src="https://github.com/user-attachments/assets/ee71c2f3-e5ee-45ec-ba61-8d0ffc53b386" /> <img width="1876" height="675" alt="image" src="https://github.com/user-attachments/assets/d620402b-cced-47b2-808d-01bde80eceb2" /> <img width="1876" height="675" alt="image" src="https://github.com/user-attachments/assets/e3052d23-883b-43fc-9953-603067bee8bf" /> <img width="1876" height="675" alt="image" src="https://github.com/user-attachments/assets/13251ab9-c449-4c4a-a326-521ef1929ad2" /> There is also some size difference, (not sure why) but generally that also favors Ghostscript: <img width="978" height="340" alt="image" src="https://github.com/user-attachments/assets/5ccf4ea2-c6ef-4751-abd0-5b8445c90861" /> ### Front-end <img width="978" height="632" alt="image" src="https://github.com/user-attachments/assets/74789d20-fb79-48d6-a35b-19f519a9f898" /> <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] 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) - [X] I have performed a self-review of my own code - [X] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [X] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [X] 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. --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
5b16e4e701
|
build(deps): bump io.micrometer:micrometer-core from 1.15.5 to 1.16.0 (#4856)
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.15.5 to 1.16.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/micrometer-metrics/micrometer/releases">io.micrometer:micrometer-core's releases</a>.</em></p> <blockquote> <h2>1.16.0</h2> <p>We upgraded the Prometheus Java Client to <code>1.4.x</code> (<a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6830">#6830</a>) which brings support for Unicode which includes some behavioral change in naming conventions, see the <a href="https://github.com/micrometer-metrics/micrometer/wiki/1.16-Migration-Guide">1.16 Migration-Guide</a>.</p> <h2>⚠️ Noteworthy</h2> <ul> <li>Deprecate the Wavefront module <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6328">#6328</a></li> <li>Remove deprecated io.micrometer.core.lang annotations <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6407">#6407</a></li> <li>Register JCache <code>cache.removals</code> as a FunctionCounter by default <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/2754">#2754</a></li> <li>Improve no-op behavior of the Observation API <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6700">#6700</a></li> </ul> <h2>⭐ New Features</h2> <ul> <li>Support KeyValues with annotations when using <code>ObservedAspect</code>/<code>@Observed</code> <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/4030">#4030</a></li> <li>Validate low cardinality keys <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6713">#6713</a></li> <li>Add counter for total loaded classes <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/3561">#3561</a></li> <li>Add eventexecutor.workers metrics for Netty <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6375">#6375</a></li> <li>Avoid DistributionStatisticsConfig creation when retrieving timers <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6661">#6661</a></li> <li>Avoid capturing lambda allocation when retrieving existing meters <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6670">#6670</a></li> <li>Introduce MeterConvention <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6710">#6710</a></li> <li>OpenTelemetry Semantic Conventions for JVM metrics <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/5286">#5286</a></li> <li>Add MeterFilter.forMeters utility method <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6594">#6594</a></li> <li>Apache HC 5 OTel semantic convention <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6591">#6591</a></li> <li>Improve nullability for gauges <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6546">#6546</a></li> <li>Metrics for Generational Shenandoah GC <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/4259">#4259</a></li> <li>Support custom tags in NettyEventExecutorMetrics <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6592">#6592</a></li> <li>Support newsgroups KeyValue for Jakarta Mail instrumentation <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6558">#6558</a></li> <li>Add KeyName.withNoneValue() <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6125">#6125</a></li> <li>Add getAll to Getter for repeated metadata <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6312">#6312</a></li> <li>Enhance logging of negative amount in AbstractTimer.record() by printing stack trace <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6530">#6530</a></li> <li>Flag to register JCache cache.removals as FunctionCounter <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6471">#6471</a></li> <li>Improved Meter.Id#getTags() performance <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6182">#6182</a></li> <li>Jakarta Mail instrumentation <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/5985">#5985</a></li> <li>Log requests as trace level for OtlpMeterRegistry <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6514">#6514</a></li> <li>Make KafkaMetrics refresh interval configurable <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6319">#6319</a></li> <li>Migrate to JSpecify annotations for nullability constraints <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/5547">#5547</a></li> <li>Provide meter count in HighCardinalityTagsDetector <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6510">#6510</a></li> <li>StackdriverConfig option to not create metric descriptors <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6281">#6281</a></li> <li>Use String.replace() where possible <a href="https://redirect.github.com/micrometer-metrics/micrometer/pull/6449">#6449</a></li> </ul> <h2>🐞 Bug Fixes</h2> <ul> <li>Exclude java.* from OSGI Import-Package <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6810">#6810</a></li> <li>Distribution without percentiles always has value 0 in Stackdriver <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6401">#6401</a></li> <li>Incompatible with slf4j 2 in OSGi <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6406">#6406</a></li> <li>LongTaskTimer#measure does not return max duration <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6421">#6421</a></li> <li>Return NaN for null KafkaMetrics values <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6324">#6324</a></li> <li>Scrape failure when conflicting meter types are registered <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6434">#6434</a></li> <li>ValueResolver and ValueExpressionResolver nullability is inconsistent <a href="https://redirect.github.com/micrometer-metrics/micrometer/issues/6280">#6280</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7cfe49632f
|
build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.13 to 2.8.14 (#4855)
Bumps [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) from 2.8.13 to 2.8.14. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/springdoc/springdoc-openapi/releases">org.springdoc:springdoc-openapi-starter-webmvc-ui's releases</a>.</em></p> <blockquote> <h2>springdoc-openapi v2.8.14 released!</h2> <h2>What's Changed</h2> <ul> <li>disable "/v3/api-docs", and "/swagger-ui.html" by default and upgrade to Scalar 0.2.1 by <a href="https://github.com/zakaria-shahen"><code>@zakaria-shahen</code></a> in <a href="https://redirect.github.com/springdoc/springdoc-openapi/pull/3090">springdoc/springdoc-openapi#3090</a></li> <li>Upgrade swagger-core to version 2.2.38 by <a href="https://github.com/Mattias-Sehlstedt"><code>@Mattias-Sehlstedt</code></a> in <a href="https://redirect.github.com/springdoc/springdoc-openapi/pull/3105">springdoc/springdoc-openapi#3105</a></li> <li>fix:compatible with lower version of getOpenApi(). by <a href="https://github.com/SkyeBeFreeman"><code>@SkyeBeFreeman</code></a> in <a href="https://redirect.github.com/springdoc/springdoc-openapi/pull/3107">springdoc/springdoc-openapi#3107</a></li> <li>Add logs to notify when SpringDocs/Scalar is enabled because SpringDocs/Scalar is enabled by default (<a href="https://redirect.github.com/springdoc/springdoc-openapi/issues/3090">#3090</a>) by <a href="https://github.com/zakaria-shahen"><code>@zakaria-shahen</code></a> in <a href="https://redirect.github.com/springdoc/springdoc-openapi/pull/3122">springdoc/springdoc-openapi#3122</a></li> </ul> <h3>Added</h3> <ul> <li><a href="https://redirect.github.com/springdoc/springdoc-openapi/issues/3090">#3090</a> - Add logs to notify when SpringDocs/Scalar is enabled because SpringDocs/Scalar is enabled by default</li> </ul> <h3>Changed</h3> <ul> <li>Upgrade swagger-ui to v5.30.1</li> <li>Upgrade swagger-core to v2.2.38</li> <li>Upgrade spring-boot to v3.5.7</li> <li>Upgrade commons-lang3 to v3.18.0</li> <li>Upgrade scalar to v0.3.12</li> </ul> <h3>Fixed</h3> <ul> <li><a href="https://redirect.github.com/springdoc/springdoc-openapi/issues/3107">#3107</a> - Fix:compatible with lower version of getOpenApi().</li> <li><a href="https://redirect.github.com/springdoc/springdoc-openapi/issues/3121">#3121</a> - NPE in KotlinDeprecatedPropertyCustomizer - resolvedSchema is null</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/zakaria-shahen"><code>@zakaria-shahen</code></a> made their first contribution in <a href="https://redirect.github.com/springdoc/springdoc-openapi/pull/3090">springdoc/springdoc-openapi#3090</a></li> <li><a href="https://github.com/SkyeBeFreeman"><code>@SkyeBeFreeman</code></a> made their first contribution in <a href="https://redirect.github.com/springdoc/springdoc-openapi/pull/3107">springdoc/springdoc-openapi#3107</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/springdoc/springdoc-openapi/compare/v2.8.13...v2.8.14">https://github.com/springdoc/springdoc-openapi/compare/v2.8.13...v2.8.14</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/springdoc/springdoc-openapi/blob/main/CHANGELOG.md">org.springdoc:springdoc-openapi-starter-webmvc-ui's changelog</a>.</em></p> <blockquote> <h2>[2.8.14] - 2025-11-02</h2> <h3>Added</h3> <ul> <li><a href="https://redirect.github.com/springdoc/springdoc-openapi/issues/3090">#3090</a> - Add logs to notify when SpringDocs/Scalar is enabled because SpringDocs/Scalar is enabled by default</li> </ul> <h3>Changed</h3> <ul> <li>Upgrade swagger-ui to v5.30.1</li> <li>Upgrade swagger-core to v2.2.38</li> <li>Upgrade spring-boot to v3.5.7</li> <li>Upgrade commons-lang3 to v3.18.0</li> <li>Upgrade scalar to v0.3.12</li> </ul> <h3>Fixed</h3> <ul> <li><a href="https://redirect.github.com/springdoc/springdoc-openapi/issues/3107">#3107</a> - Fix:compatible with lower version of getOpenApi().</li> <li><a href="https://redirect.github.com/springdoc/springdoc-openapi/issues/3121">#3121</a> - NPE in KotlinDeprecatedPropertyCustomizer - resolvedSchema is null</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
430be21786
|
[Fix] Spanish (es_ES) Translation Improvements and Fixes (#4838)
# Description of Changes
A comprehensive review of the `messages_es_ES.properties` localization
file has been completed to correct inconsistencies, address translation
errors, and improve overall style, significantly enhancing the user
experience for Spanish users.
After incorporating these changes, the percentage of strings translated
into Spanish goes from 93 to 99%:
### What was changed
* **Missing Translations and Terminology Fixes:** Corrected multiple
strings that were left in English or mistranslated. Examples include:
* Translating tool titles and descriptions.
* Fixing key technical terms.
* Correcting the language name "Hindi" to **"Hindú"** for consistency.
* Fixing the compound word "EmailCorreo a HTML" to **"Correo electrónico
a HTML"**.
* Translating various error and login messages (e.g.,
`error.disallowedUrlContent`, `login.logoutMessage`).
* **Consistent Styling:** Ensured consistent use of capital letters and
punctuation, and standardized terms like DPI.
* **Exclusion File Update:** Added several technical keys related to
auditing, file choosers, and updates to the
`scripts/ignore_translation.toml` file to prevent incorrect automatic
translations for the `es_ES` locale.
### Why the change was made
To ensure the Spanish user interface is completely legible and
professional, eliminating *Spanglish* and machine-like translations for
a more coherent user experience.
### Any challenges encountered
None in particular. The tags were intentionally left untranslated.
Closes #4829
---
## Checklist
### General
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [x] 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)
- [x] I have performed a self-review of my own code
- [x] 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)
- [x] 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)
### Translations (if applicable)
- [x] I ran
[`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md)
```
> py .\scripts\counter_translation.py --lang messages_es_ES.properties --show-missing-keys
Missing keys: ['endpointStatistics.top10', 'endpointStatistics.top20', 'cbzToPdf.tags', 'cbrToPdf.tags', 'pdfToCbz.tags', 'pdfToCbr.tags', 'PDFToVideo.tags', 'attachments.tags', 'extractAttachments.tags', 'unlockPDFForms.tags', 'pdfToVector.tags', 'vectorToPdf.tags']
es_ES: 12 out of 1606 lines are not translated.
es_ES: 99% translated
```
### 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.
|
||
|
|
7b58b50c00
|
feat(util): enhance logging behavior in ProcessExecutor (#4908)
# Description of Changes TLDR: - Introduced `AtomicBoolean` to detect error messages dynamically - Changed logging to use `log.debug` for non-error lines and `log.info` for error-related lines during live updates - Improved error and output stream handling for better log verbosity and behaviour This pull request improves the logging behavior in the `ProcessExecutor` utility by making log output more informative and easier to follow, especially when errors occur. Now, lines containing "ERROR" (case-insensitive) and all subsequent lines are logged at the info level, while other lines are logged at the debug level. This helps to highlight errors during process execution without overwhelming the logs with less important information. **Logging improvements:** * Added an `AtomicBoolean` flag (`errorDetected`) to track when an error message appears in process output or error streams. * Modified both error and output stream handlers to: * Check if each line contains "ERROR" (case-insensitive) and set `errorDetected` if so. * Log lines at the info level if an error has been detected, otherwise log at the debug level. **Dependency update:** * Imported `AtomicBoolean` to support the new error tracking logic. <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] 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) - [X] I have performed a self-review of my own code - [X] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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) - [X] 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. --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
80206eaf07
|
feat(config): enforce minimum qpdf version requirement (#4907)
# Description of Changes - Added validation to ensure qpdf version is at least 12.0.0 - Disabled corresponding groups if the installed version is below the requirement - Logged warnings for unsupported or undetermined versions <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] 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) - [X] I have performed a self-review of my own code - [X] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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. Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
c895b09142
|
feat(crop): add auto-crop functionality to detect and remove white space (#4847)
# Description of Changes TLDR: - Implemented automatic content bounds detection in CropController - Added new auto-crop option in CropPdfForm and HTML template - Updated JavaScript for better PDF rendering and interaction handling - Also updated error handling and resource management in cropping functions Introduces auto-crop feature for automatic whitespace detection and removal, plus resource management improvements. ### Auto-Crop Detection - Automatically detects and removes whitespace using content boundary detection - Adaptive pixel sampling for images >2000px - Sequential page processing for memory efficiency - New opt-in checkbox in crop interface - 150 DPI rendering for accurate detection ### Resource Management - Fixed document lifecycle to prevent resource access violations - Source documents remain open during LayerUtility operations - Proper nested try-with-resources implementation - Prevents crashes with `LayerUtility.importPageAsForm()` ### Memory Optimization - Early exit for images <1px - Adaptive sampling: O(n) instead of O(n²) for large pages - Explicit BufferedImage nulling after processing ### Error Handling - Proper try-with-resources for temporary files - Defensive null checks and interrupt handling - Updated exception messages ### CropPdfForm - Changed coordinates from primitive to wrapper types (Float) for nullable support - Added `autoCrop` boolean field (default false) - Maintains backward compatibility ### crop.js - Track and cancel render tasks to prevent memory leaks - Improved resize handling without file reloading - Fixed nested event listeners - Canvas clearing before rendering prevents artifacts - DOM layout stability improvements ### Front-end <img width="956" height="802" alt="image" src="https://github.com/user-attachments/assets/2e8e5bd2-4948-4df1-9937-3358b36d03a0" /> ### Samples: <img width="960" height="775" alt="image" src="https://github.com/user-attachments/assets/b27d3c65-1517-4318-b3d2-ca2d9864abf9" /> [test_cropped-2.pdf](https://github.com/user-attachments/files/23436674/test_cropped-2.pdf) <img width="960" height="775" alt="image" src="https://github.com/user-attachments/assets/095374fb-9e89-4ea1-a5c7-4287c909e20a" /> [pdf_hyperlink_example_cropped.pdf](https://github.com/user-attachments/files/23436678/pdf_hyperlink_example_cropped.pdf) <img width="960" height="775" alt="image" src="https://github.com/user-attachments/assets/b01e3633-15b7-4eea-a99b-09d875a380b4" /> [Sample-Fillable-PDF_cropped.pdf](https://github.com/user-attachments/files/23436680/Sample-Fillable-PDF_cropped.pdf) <img width="960" height="858" alt="image" src="https://github.com/user-attachments/assets/74824e8f-2f45-4e9d-9bd3-ed1248146f81" /> [sample-2_cropped.pdf](https://github.com/user-attachments/files/23436684/sample-2_cropped.pdf) Closes: #1351 <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] 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) - [X] I have performed a self-review of my own code - [X] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [X] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [X] 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. --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> |
||
|
|
7acc716b80
|
feat(compress): expose linearize PDF option on the UI (#4843)
# Description of Changes TLDR: - Added a new checkbox in the UI for linearizing PDFs - Updated `CompressController` to support PDF linearization - Added new localization key for linearize option in messages properties file <img width="604" height="858" alt="image" src="https://github.com/user-attachments/assets/3e7fb3c1-247d-45b1-b00b-fd19a9888d28" /> <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] 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) - [X] I have performed a self-review of my own code - [X] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [X] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [X] 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. Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
3fdfb9632b
|
refactor(core): simplify resource management with try-with-resources (#4873)
# Description of Changes TLDR: - Replaced manual resource handling with try-with-resources in multiple controllers - Eliminated redundant `finally` blocks for improved readability - Added missing resource closures to ensure proper cleanup - Updated `ScalePagesController` with static utility improvements and logging annotation This pull request focuses on improving resource management and code clarity across several PDF processing controllers. The main changes involve refactoring to use try-with-resources for automatic resource cleanup, removing manual close calls and finally blocks, and restructuring helper methods for better organization. These updates enhance code safety, maintainability, and performance. **Resource Management Improvements:** - Refactored multiple controllers (`EditTableOfContentsController`, `PdfOverlayController`, `ScalePagesController`, `SplitPDFController`, and `ScannerEffectController`) to use try-with-resources for managing `PDDocument`, `ByteArrayOutputStream`, and other closable resources, eliminating the need for manual close calls and finally blocks. This reduces the risk of resource leaks and simplifies the code. **Code Organization and Clarity:** - Moved and consolidated helper methods (`getTargetSize`, `getSizeMap`) in `ScalePagesController` for better encapsulation and static usage, and added the `@Slf4j` annotation for logging - Removed redundant imports and unused variables to clean up the codebase. **Performance Enhancements:** - Optimized object instantiation by creating reusable objects (e.g., `LayerUtility` in `ScalePagesController`) outside of loops to improve performance. <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] 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) - [X] I have performed a self-review of my own code - [X] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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) - [X] 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. Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
be824b126f
|
Fix French translations and formatting in properties file (#4842)
Corrected translations and formatting in French properties file. |
||
|
|
19aef5e034
|
feat(conversion): add eBook to PDF via Calibre (EPUB/MOBI/AZW3/FB2/TXT/DOCX) (#4644)
This pull request adds support for converting common eBook formats (EPUB, MOBI, AZW3, FB2, TXT, DOCX) to PDF using Calibre. It introduces a new API endpoint and updates the configuration, dependency checks, and documentation to support this feature. Additionally, it includes related UI and localization changes. **New eBook to PDF conversion feature:** * Added `ConvertEbookToPDFController` with a new `/api/v1/convert/ebook/pdf` endpoint to handle eBook to PDF conversion using Calibre, supporting options like embedding fonts, including table of contents, and page numbers. * Introduced `ConvertEbookToPdfRequest` model for handling conversion requests and options. **Configuration and dependency management:** * Updated `RuntimePathConfig`, `ApplicationProperties`, and `ExternalAppDepConfig` to support Calibre's executable path configuration and dependency checking, ensuring Calibre is available and correctly integrated. [[1]](diffhunk://#diff-68c561052c2376c3d494bf11dd821958acd9917b1b2d33a7195ca2d6df7ec517R24) [[2]](diffhunk://#diff-68c561052c2376c3d494bf11dd821958acd9917b1b2d33a7195ca2d6df7ec517R61) [[3]](diffhunk://#diff-68c561052c2376c3d494bf11dd821958acd9917b1b2d33a7195ca2d6df7ec517R72-R74) [[4]](diffhunk://#diff-1c357db0a3e88cf5bedd4a5852415fadad83b8b3b9eb56e67059d8b9d8b10702R359) [[5]](diffhunk://#diff-8932df49d210349a062949da2ed43ce769b0f107354880a78103664f008f849eR26-R34) [[6]](diffhunk://#diff-8932df49d210349a062949da2ed43ce769b0f107354880a78103664f008f849eR48) [[7]](diffhunk://#diff-8932df49d210349a062949da2ed43ce769b0f107354880a78103664f008f849eR63-R68) [[8]](diffhunk://#diff-8932df49d210349a062949da2ed43ce769b0f107354880a78103664f008f849eR132) * Registered the new endpoint and tool group in `EndpointConfiguration`, including logic to enable/disable the feature based on Calibre's presence. [[1]](diffhunk://#diff-3cddb66d1cf93eeb8103ccd17cee8ed006e0c0ee006d0ee1cf42d512f177e437R260) [[2]](diffhunk://#diff-3cddb66d1cf93eeb8103ccd17cee8ed006e0c0ee006d0ee1cf42d512f177e437R440-R442) [[3]](diffhunk://#diff-3cddb66d1cf93eeb8103ccd17cee8ed006e0c0ee006d0ee1cf42d512f177e437L487-R492) **Documentation and localization:** * Updated the `README.md` to mention eBook to PDF conversion support. * Added UI route and form for eBook to PDF conversion in the web controller. * Added English and German localization strings for the new feature, including descriptions, labels, and error messages. [[1]](diffhunk://#diff-ee1c6999a33498cfa3abba4a384e73a8b8269856899438de80560c965079a9fdR617-R620) [[2]](diffhunk://#diff-482633b22866efc985222c4a14efc5b7d2487b59f39b953f038273a39d0362f7R617-R620) [[3]](diffhunk://#diff-482633b22866efc985222c4a14efc5b7d2487b59f39b953f038273a39d0362f7R1476-R1485) ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> |
||
|
|
e932ca01f3
|
refactor(common, core, proprietary): migrate boxed Booleans to primitive booleans and adopt is* accessors to reduce null checks/NPE risk (#4153)
# Description of Changes **What was changed** - Switched multiple nullable `Boolean` fields to primitive `boolean` in `ApplicationProperties`: - `Security.enableLogin`, `Security.csrfDisabled` - `System.googlevisibility`, `System.showUpdateOnlyAdmin`, `System.enableAlphaFunctionality`, `System.disableSanitize`, `System.enableUrlToPDF` - `Metrics.enabled` - Updated all consumers to use Lombok’s `is*` accessors instead of `get*`: - `AppConfig`, `PostHogService`, `CustomHtmlSanitizer`, `EndpointConfiguration`, `InitialSetup`, `OpenApiConfig`, `ConvertWebsiteToPDF`, `HomeWebController`, `MetricsController`, proprietary `SecurityConfiguration`, `AccountWebController` - Tests adjusted to mock `isDisableSanitize()` instead of `getDisableSanitize()` - Logic simplifications: - Removed redundant null-handling/ternaries now that primitives have defaults (e.g., `enableAlphaFunctionality` bean) - Replaced `Boolean.TRUE.equals(...)` with direct primitive checks - Used constant-first `equals` for NPE safety in string comparisons **Why the change was made** - Primitive booleans eliminate ambiguity, cut down on `NullPointerException` risks, and simplify conditions - Aligns with Java/Lombok conventions (`isX()` for `boolean`) for clearer, more consistent APIs - Spring provides sane defaults for missing booleans (`false`), reducing boilerplate and cognitive load --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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. |
||
|
|
5535e5003d
|
🤖 format everything with pre-commit by stirlingbot (#4839)
Auto-generated by [create-pull-request][1] with **stirlingbot** [1]: https://github.com/peter-evans/create-pull-request Signed-off-by: stirlingbot[bot] <stirlingbot[bot]@users.noreply.github.com> Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com> |
||
|
|
de27ea02c5
|
build(deps): bump commons-io:commons-io from 2.20.0 to 2.21.0 (#4852)
Bumps [commons-io:commons-io](https://github.com/apache/commons-io) from 2.20.0 to 2.21.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/apache/commons-io/blob/master/RELEASE-NOTES.txt">commons-io:commons-io's changelog</a>.</em></p> <blockquote> <p>Apache Commons IO 2.21.0 Release Notes</p> <p>The Apache Commons IO team is pleased to announce the release of Apache Commons IO 2.21.0.</p> <h2>Introduction</h2> <p>The Apache Commons IO library contains utility classes, stream implementations, file filters, file comparators, endian transformation classes, and much more.</p> <p>Version 2.21.0: Java 8 or later is required.</p> <h2>New features</h2> <p>o FileUtils#byteCountToDisplaySize() supports Zettabyte, Yottabyte, Ronnabyte and Quettabyte <a href="https://redirect.github.com/apache/commons-io/issues/763">#763</a>. Thanks to strangelookingnerd, Gary Gregory. o Add org.apache.commons.io.FileUtils.ONE_RB <a href="https://redirect.github.com/apache/commons-io/issues/763">#763</a>. Thanks to strangelookingnerd, Gary Gregory. o Add org.apache.commons.io.FileUtils.ONE_QB <a href="https://redirect.github.com/apache/commons-io/issues/763">#763</a>. Thanks to strangelookingnerd, Gary Gregory. o Add org.apache.commons.io.output.ProxyOutputStream.writeRepeat(byte[], int, int, long). Thanks to Gary Gregory. o Add org.apache.commons.io.output.ProxyOutputStream.writeRepeat(byte[], long). Thanks to Gary Gregory. o Add org.apache.commons.io.output.ProxyOutputStream.writeRepeat(int, long). Thanks to Gary Gregory. o Add length unit support in FileSystem limits. Thanks to Piotr P. Karwasz. o Add IOUtils.toByteArray(InputStream, int, int) for safer chunked reading with size validation. Thanks to Piotr P. Karwasz. o Add org.apache.commons.io.file.PathUtils.getPath(String, String). Thanks to Gary Gregory. o Add org.apache.commons.io.channels.ByteArraySeekableByteChannel. Thanks to Gary Gregory. o Add IOIterable.asIterable(). Thanks to Gary Gregory. o Add NIO channel support to <code>AbstractStreamBuilder</code>. Thanks to Piotr P. Karwasz. o Add CloseShieldChannel to close-shielded NIO Channels <a href="https://redirect.github.com/apache/commons-io/issues/786">#786</a>. Thanks to Piotr P. Karwasz. o Added IOUtils.checkFromIndexSize as a Java 8 backport of Objects.checkFromIndexSize <a href="https://redirect.github.com/apache/commons-io/issues/790">#790</a>. Thanks to Piotr P. Karwasz.</p> <h2>Fixed Bugs</h2> <p>o When testing on Java 21 and up, enable -XX:+EnableDynamicAgentLoading. Thanks to Gary Gregory. o When testing on Java 24 and up, don't fail FileUtilsListFilesTest for a different behavior in the JRE. Thanks to Gary Gregory. o ValidatingObjectInputStream does not validate dynamic proxy interfaces. Thanks to Stanislav Fort, Gary Gregory. o BoundedInputStream.getRemaining() now reports Long.MAX_VALUE instead of 0 when no limit is set. Thanks to Piotr P. Karwasz. o BoundedInputStream.available() correctly accounts for the maximum read limit. Thanks to Piotr P. Karwasz. o Deprecate IOUtils.readFully(InputStream, int) in favor of toByteArray(InputStream, int). Thanks to Gary Gregory, Piotr P. Karwasz. o IOUtils.toByteArray(InputStream) now throws IOException on byte array overflow. Thanks to Piotr P. Karwasz. o Javadoc general improvements. Thanks to Gary Gregory, Piotr P. Karwasz. o IOUtils.toByteArray() now throws EOFException when not enough data is available <a href="https://redirect.github.com/apache/commons-io/issues/796">#796</a>. Thanks to Piotr P. Karwasz. o Fix IOUtils.skip() usage in concurrent scenarios. Thanks to Piotr P. Karwasz. o [javadoc] Fix XmlStreamReader Javadoc to indicate the correct class that is built <a href="https://redirect.github.com/apache/commons-io/issues/806">#806</a>. Thanks to J Hawkins.</p> <h2>Changes</h2> <p>o Bump org.apache.commons:commons-parent from 85 to 91 <a href="https://redirect.github.com/apache/commons-io/issues/774">#774</a>, <a href="https://redirect.github.com/apache/commons-io/issues/783">#783</a>, <a href="https://redirect.github.com/apache/commons-io/issues/808">#808</a>. Thanks to Gary Gregory, Dependabot.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
abd1ae1bf2
|
feat(sort): enhance file sorting and order handling (#4813)
# Description of Changes - Added async support to sorting functions for improved UI responsiveness in merge.js. - Enhanced logging for debugging file orders in both JavaScript and Java. - Improved file order validation and handling in the backend, ensuring consistent sorting and upload order. - Refactored file order processing with better trimming, handling for empty entries, and logging unmatched filenames. Closes: #4810 <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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. --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
2acb3aa6e5
|
chore(tests): add comprehensive web/controller and security service tests; stabilize AttemptCounter timing (#4822)
# Description of Changes - **What was changed** - Added new MVC tests: - `ConverterWebControllerTest` covering simple converter routes, `/pdf-to-cbr` enable/disable behavior via `EndpointConfiguration`, Python availability flag, and `maxDPI` defaults/overrides for `/pdf-to-img` and `/pdf-to-video`. - `GeneralWebControllerTest` covering many editor/organizer routes’ view/model mapping, `/sign` font discovery from classpath and `/opt/static/fonts`, handling of missing `UserService`, robust filtering of malformed font entries, and `/pipeline` JSON config discovery with graceful fallback on `Files.walk` errors. - `HomeWebControllerTest` covering `/about`, `/releases`, legacy redirects, root page’s `SHOW_SURVEY` behavior, `/robots.txt` for `googlevisibility` true/false/null, and `/licenses` JSON parsing with IOException fallback. - Extended proprietary security tests: - `LoginAttemptServiceTest` (reflective construction) validating `getRemainingAttempts(...)` for disabled/blank keys, empty cache, decreasing logic, and intentionally negative values when over the limit (documented current behavior). - Hardened `AttemptCounterTest`: - Eliminated timing flakiness by using generous windows and setting `lastAttemptTime` to “now”. - Added edge-case assertions for zero/negative windows to document current semantics after switching comparison to `elapsed >= attemptIncrementTime`. - **Why the change was made** - To increase test coverage across critical web endpoints and security logic, document current edge-case behavior, and prevent regressions around view resolution, environment/property-driven flags, resource discovery, and timing-sensitive logic. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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 - [x] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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. |
||
|
|
d673670ebc
|
refactor(tests): Eliminate test flakiness through deterministic implementation (#4708)
# Description of Changes Updated test files to use fixed string identifiers and timestamps instead of random UUIDs and system-dependent times. These changes make the tests more deterministic and easier to debug. **Test determinism and clarity improvements:** * Replaced randomly generated UUIDs with fixed string identifiers in test cases for `FileStorageTest.java` and `TaskManagerTest.java` to ensure predictable test data. * Changed usages of `System.currentTimeMillis()` and `Instant.now()` to fixed values in tests for `TempFileCleanupServiceTest.java`, `FileMonitorTest.java`, and `TextFinderTest.java` to avoid flakiness due to timing issues. * Improved code clarity by adding explanatory comments for time offsets and by using direct string comparisons instead of `equals()` where appropriate. * Refactored a timeout simulation in `JobExecutorServiceTest.java` to use busy-waiting instead of `Thread.sleep`, reducing test flakiness and improving reliability. <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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. --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
6e82f124a4
|
refactor(common,core,proprietary): standardize Locale.ROOT usage for case/format & safer string handling (#4628)
# Description of Changes - Standardized all locale-sensitive operations to use `Locale.ROOT`: - Replaced `toLowerCase()/toUpperCase()` and `String.format(...)` with `Locale.ROOT` variants across services, controllers, utils, and tests (e.g., `InstallationPathConfig`, `ApplicationProperties`, `ResourceMonitor`, `ChecksumUtils`, `PdfUtils`, `UploadLimitService`). - Hardened comparisons and parsing: - Normalized host/domain and file-extension checks with `toLowerCase(Locale.ROOT)`; switched several `equals` calls to constant-first style (e.g., content types, security domain checks). - Logging & formatting improvements: - Ensured percent/size values and hex formatting use root-locale formatting to avoid locale-dependent output. - Code quality & readability: - Converted multiple if/else ladders to modern `switch` expressions. - Minor refactors (method references, early returns), removed redundant returns, and clarified log messages. - Minor fixes/behavioral nits: - Normalized printer selection by lowercasing the searched name once; made some equality checks null-safe/constant-first; added missing `@Override` annotations where appropriate. ## Why - Consistent use of `Locale.ROOT` avoids surprises in different user/system locales (e.g., Turkish-I issues), makes string comparisons deterministic, and keeps numeric/hex formatting stable across environments. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Co-authored-by: James Brunton <jbrunton96@gmail.com> |
||
|
|
7f801157c8
|
fix(security): reset attempt counter when window elapsed (treat equality as elapsed) (#4820)
Updated shouldReset to use '>=' instead of '>' so that the counter resets when the elapsed time is exactly equal to the window. Adjusted the corresponding test to expect a reset in this case. # Description of Changes - **What was changed** - Updated `AttemptCounter.shouldReset(long attemptIncrementTime)` to treat the boundary as elapsed by switching from a strict `>` comparison to `>=` and introducing a local `elapsed` variable for clarity. - Adjusted unit tests in `AttemptCounterTest` to reflect the corrected behavior: - Renamed the equality-boundary test to communicate the new expectation. - Changed the assertion for the "exactly equal to window" case from `assertFalse` to `assertTrue`. - **Why the change was made** - Fixes an off-by-one boundary issue where resets did **not** occur when the elapsed time was **exactly** equal to the configured window. This could permit one extra attempt beyond the intended rate-limit window. - Aligns logic with common rate-limiting semantics: once the window has fully elapsed, a reset should occur. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### 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. |
||
|
|
60b522f1be
|
fix(ui): correct CSS visibility typo; clean up spelling/grammar across codebase (#4661)
# Description of Changes **What was changed** - Fixed a CSS typo in `imageHighlighter.css` (`visbility` → `visibility`) to restore the intended transition behavior. - Corrected spelling/grammar in logs, comments, and console messages: - `PdfUtils.java`: log message “overlayed” → “overlaid”. - `CustomPDFDocumentFactoryTest.java`: comment typo “neeed” → “need”. - `FlattenController.java`: comment “readd” → “re-add”. - `PdfContainer.js`: console log “Hidding” → “Hiding”. - `navbar.js`: clarified tooltip comment wording. - `languages.html`: corrected Vietnamese label to “Tiếng Việt”. - `ConvertWebsiteToPdfTest.java`: converted/de-duplicated comments to clear English and improved assertion messages. - No functional code paths altered except the CSS fix; the rest are non-functional text improvements (logs/comments/tests/labels). **Why the change was made** - The CSS typo prevented the `visibility` transition from working as intended. - Consistent, correct wording improves developer experience, test readability, and UI polish (language list). --- ## 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: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Reece Browne <74901996+reecebrowne@users.noreply.github.com> |
||
|
|
759d172bd7
|
Update messages_nl_NL.properties (#4811)
# Description of Changes Translations updated to best of abilities |
||
|
|
69ae2d89e9
|
🤖 format everything with pre-commit by stirlingbot (#4807)
Auto-generated by [create-pull-request][1] with **stirlingbot** [1]: https://github.com/peter-evans/create-pull-request Signed-off-by: stirlingbot[bot] <stirlingbot[bot]@users.noreply.github.com> Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com> |
||
|
|
407903a332
|
Bulgarian lang update/optimizations (#4705)
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Bulgarian language optimizations and new translations - Why the change was made - to keep the language up-to-date towards the new versions/improvements - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [x] 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) - [x] 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) - [x] 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: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Co-authored-by: Ludy <Ludy87@users.noreply.github.com> |
||
|
|
727ef4483f
|
Update messages_ar_AR.properties : enhace arabic translation (#4414)
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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: Ludy <Ludy87@users.noreply.github.com> |
||
|
|
7ca0981642
|
feat: Update Brazilian Portuguese translation (#4198)
# Description of Changes Update Brazilian Portuguese translation: - messages_pt_BR.properties --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [x] 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) Co-authored-by: Ludy <Ludy87@users.noreply.github.com> |
||
|
|
02d6b9967f
|
Update messages_nl_NL.properties (#4519)
Dutch translations completed, corrected and made consistent. (Additional line at the end of the file removed. Hope this one passes well.) (Really; as translators shouldn't code like coders shouldn't translate, projects would do well to move their translation work off to seperate online localisation platforms such as Crowdin, Transifex, or Weblate.) Co-authored-by: Ludy <Ludy87@users.noreply.github.com> |
||
|
|
c6b8434e0d
|
feat(i18n): add German translations (#4796)
# Description of Changes This pull request makes minor improvements to the German localization and translation management. The changes primarily update UI strings for clarity and consistency and adjust the translation ignore list. Localization improvements: * Updated urgent update notification and related UI strings in `messages_de_DE.properties` for better clarity and consistency. * Improved analytics labels and translated "Scarf Pixel" to "Schal-Pixel" in `messages_de_DE.properties`. Translation management: * Removed `scannerEffect.quality.medium` from the translation ignore list in `ignore_translation.toml`. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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. |
||
|
|
8d4bf15ce4
|
feat(i18n): update Polish translations (#4659)
# Description of Changes - What was changed Updated and refined the Polish (pl_PL) translation file to improve linguistic accuracy, consistency, and terminology alignment with the UI. Corrected minor spelling and grammatical issues. Standardized phrasing to ensure a more natural and user-friendly experience. - Why the change was made To align the translation with recent UI/feature updates and improve overall user experience for native speakers. - Any challenges encountered none --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [X] 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) - [x] I have performed a self-review of my own code - [x] 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: Ludy <Ludy87@users.noreply.github.com> |
||
|
|
e8472ed0b3
|
Improve French translations and update ignore_translation.toml (#4799)
# Description of Changes - add French translations of last added items in messages_fr_FR.properties - translate most of the language names - Update ignore_translation.toml to exclude untranslated messages. I hope this PR will reach the 98 % Progress score for fr_FR translation. |
||
|
|
ebe3f59ce1
|
feat(localization): update Hungarian translations (#4798)
- Localized English strings in `messages_hu_HU.properties` to Hungarian - Updated UI labels, descriptions, tags, and tooltips for consistency - Improved wording for better native understanding # Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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. Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> |
||
|
|
970f3ea37b
|
[#4262] Added date and time to a stamp (#4431)
# Description of Changes Changed `addTextStamp` method to automatically add time and date when stamping a file Closes #4262 --- ## 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: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> |
||
|
|
c858c131a3
|
Update messages_it_IT.properties (#4793)
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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. |
||
|
|
9f00335258
|
test(core): add comprehensive unit tests for controllers, services, models, and utilities (#4160)
# Description of Changes - **What was changed** - **CI**: Enhanced `build.yml` to publish JaCoCo coverage and post a PR summary comment per matrix job (Spring Security/JDK). Also archives JaCoCo XML reports alongside existing test results. - **Tests (new & expanded)**: Added a broad set of unit tests across `app/common`, `app/core`, and `app/proprietary` modules, e.g.: - Common: `ShowAdminInterfaceTest`, `UnsupportedClaimExceptionTest`, `ExceptionUtilsTest`, `TempDirectoryTest`, etc. - Core: `ConnectedInputStreamTest`, `ReplaceAndInvertColorFactoryTest`, controller/model/service tests (e.g. `SettingsControllerTest`, `ApiEndpointTest`, `FlexibleCSVWriterTest`, `MetricsAggregatorServiceTest`, etc.). - Proprietary: security/database/model/web tests (e.g. `H2SQLConditionTest`, `JPATokenRepositoryImplTest`, `AuditWebFilterTest`, `CorrelationIdFilterTest`, etc.). - **JUnit 5 cleanup**: Consolidated assertion imports (`import static org.junit.jupiter.api.Assertions.*`), standardized on Jupiter APIs, and minor Mockito/Jupiter setup tweaks. - **Fix**: `ReplaceAndInvertColorFactory` now safely returns `null` when `replaceAndInvertOption` is `null` to avoid NPEs. - **Testability refactor**: Broadened visibility of `SPDFApplication#getActiveProfile(String[] args)` (from `private` to `protected`) to enable direct unit testing. - **Chore**: Removed obsolete `ValidationUtil` from `app/common`. - **Why the change was made** - Improve **signal in PRs** via automatic coverage summaries. - Increase **test coverage** and reduce regressions across core and proprietary modules. - Eliminate a potential **NullPointerException** in color strategy selection. - Enable targeted testing of application startup/profile resolution logic. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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. |
||
|
|
ad002a6129
|
feat(i18n): add German translations (#4786)
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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. |
||
|
|
c933d248a3
|
Updated pt_PT translation (#4655)
# Description of Changes **Summary** - Updated and refined the Portuguese (Portugal) (pt_PT) translation file to improve linguistic accuracy, consistency, and terminology alignment with the UI. - Corrected minor spelling and grammatical issues. - Standardized phrasing to ensure a more natural and user-friendly experience. **Reason for Change** - To enhance the quality and clarity of the Portuguese (Portugal) localization. - To align the translation with recent UI/feature updates and improve overall user experience for native speakers. **Challenges Encountered** - Ensuring contextual consistency across multiple translation keys and avoiding conflicts with the Portuguese (Brazil) translation. - Verifying terminology alignment with existing technical terms and interface patterns. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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) - [x] 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: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> |
||
|
|
7f7d6fd1c9
|
feat(convert): add PDF to Video converter (FFmpeg) with MP4/WebM support (#4704)
# Description of Changes This pull request introduces support for FFmpeg as a new external tool in the application. It adds configuration options for FFmpeg session limits and timeouts, updates the process execution and tool-checking utilities to handle FFmpeg, and expands endpoint configuration to include FFmpeg-dependent features. Corresponding unit tests have also been added to ensure FFmpeg detection works as expected. **FFmpeg Integration and Configuration:** * Added FFmpeg session limit and timeout configuration options to `ApplicationProperties`, with default values and getter methods. [[1]](diffhunk://#diff-1c357db0a3e88cf5bedd4a5852415fadad83b8b3b9eb56e67059d8b9d8b10702R631) [[2]](diffhunk://#diff-1c357db0a3e88cf5bedd4a5852415fadad83b8b3b9eb56e67059d8b9d8b10702R672-R675) [[3]](diffhunk://#diff-1c357db0a3e88cf5bedd4a5852415fadad83b8b3b9eb56e67059d8b9d8b10702R702) [[4]](diffhunk://#diff-1c357db0a3e88cf5bedd4a5852415fadad83b8b3b9eb56e67059d8b9d8b10702R743-R746) * Updated `ProcessExecutor` to recognize FFmpeg as a process type, and to use the new session limit and timeout configuration for FFmpeg processes. [[1]](diffhunk://#diff-8424a11112fff55cc28467c4d531e451a485911ed1aeb0aea772c9fa7dc3aa6aL305-R316) [[2]](diffhunk://#diff-8424a11112fff55cc28467c4d531e451a485911ed1aeb0aea772c9fa7dc3aa6aR74-R78) [[3]](diffhunk://#diff-8424a11112fff55cc28467c4d531e451a485911ed1aeb0aea772c9fa7dc3aa6aR133-R137) **Tool Detection and Exception Handling:** * Implemented `isFfmpegAvailable()` in `CheckProgramInstall` to detect FFmpeg installation, with caching for efficiency. [[1]](diffhunk://#diff-7b61807107c689e3824a5f8fd42c27ab072a67a5666f24445bd6895937351690R14) [[2]](diffhunk://#diff-7b61807107c689e3824a5f8fd42c27ab072a67a5666f24445bd6895937351690R60-R78) * Added a specific exception factory method for missing FFmpeg in `ExceptionUtils`. **Endpoint Configuration:** * Registered the new `pdf-to-video` endpoint under the "Convert", "Java", and "FFmpeg" groups, and updated the tool group logic to include "FFmpeg". [[1]](diffhunk://#diff-3cddb66d1cf93eeb8103ccd17cee8ed006e0c0ee006d0ee1cf42d512f177e437R265) [[2]](diffhunk://#diff-3cddb66d1cf93eeb8103ccd17cee8ed006e0c0ee006d0ee1cf42d512f177e437R395) [[3]](diffhunk://#diff-3cddb66d1cf93eeb8103ccd17cee8ed006e0c0ee006d0ee1cf42d512f177e437R452-R454) [[4]](diffhunk://#diff-3cddb66d1cf93eeb8103ccd17cee8ed006e0c0ee006d0ee1cf42d512f177e437L496-R502) **Testing Enhancements:** * Added and updated unit tests in `CheckProgramInstallTest` to verify FFmpeg detection, including scenarios for installed, not installed, and caching behavior. [[1]](diffhunk://#diff-0eaf917d935710f0f5e18f12db600be47b8439d628d65a97a3db34133231790eR29) [[2]](diffhunk://#diff-0eaf917d935710f0f5e18f12db600be47b8439d628d65a97a3db34133231790eR38-R45) [[3]](diffhunk://#diff-0eaf917d935710f0f5e18f12db600be47b8439d628d65a97a3db34133231790eR67-R75) [[4]](diffhunk://#diff-0eaf917d935710f0f5e18f12db600be47b8439d628d65a97a3db34133231790eR222-R262) --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] 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) - [x] I have performed a self-review of my own code - [x] 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. |
||
|
|
43e0d73338
|
Update messages_it_IT.properties (#4697)
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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. |
||
|
|
11bb8bf1fd
|
Update Hungarian translations (#4698)
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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. --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> |