From 5923cb38d3ac6c0c74086b646ddc79f6fcad5a34 Mon Sep 17 00:00:00 2001 From: "stirlingbot[bot]" <195170888+stirlingbot[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 10:34:51 +0100 Subject: [PATCH 01/22] :globe_with_meridians: Sync Translations + Update README Progress Table (#3960) ### 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> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02712a1ad..8e592bd7a 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ Stirling-PDF currently supports 40 languages! | Portuguese (Português) (pt_PT) | ![70%](https://geps.dev/progress/70) | | Portuguese Brazilian (Português) (pt_BR) | ![77%](https://geps.dev/progress/77) | | Romanian (Română) (ro_RO) | ![59%](https://geps.dev/progress/59) | -| Russian (Русский) (ru_RU) | ![70%](https://geps.dev/progress/70) | +| Russian (Русский) (ru_RU) | ![81%](https://geps.dev/progress/81) | | Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![97%](https://geps.dev/progress/97) | | Simplified Chinese (简体中文) (zh_CN) | ![95%](https://geps.dev/progress/95) | | Slovakian (Slovensky) (sk_SK) | ![53%](https://geps.dev/progress/53) | From 638d9ec43c14568dd606476e9fae7151f5821fe4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 12:42:05 +0100 Subject: [PATCH 02/22] build(deps): bump io.micrometer:micrometer-core from 1.15.1 to 1.15.2 (#3947) [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=io.micrometer:micrometer-core&package-manager=gradle&previous-version=1.15.1&new-version=1.15.2)](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) ---
Dependabot commands and options
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 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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- app/core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/core/build.gradle b/app/core/build.gradle index 0974a0577..745dbb87a 100644 --- a/app/core/build.gradle +++ b/app/core/build.gradle @@ -46,7 +46,7 @@ dependencies { implementation 'commons-io:commons-io:2.19.0' implementation "org.bouncycastle:bcprov-jdk18on:$bouncycastleVersion" implementation "org.bouncycastle:bcpkix-jdk18on:$bouncycastleVersion" - implementation 'io.micrometer:micrometer-core:1.15.1' + implementation 'io.micrometer:micrometer-core:1.15.2' implementation 'com.google.zxing:core:3.5.3' implementation "org.commonmark:commonmark:$commonmarkVersion" // https://mvnrepository.com/artifact/org.commonmark/commonmark implementation "org.commonmark:commonmark-ext-gfm-tables:$commonmarkVersion" From cc7f16308541eee3fc7b94285d5d290b3e6870e5 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:33:04 +0100 Subject: [PATCH 03/22] fake scan to scanner effect (#3954) # Description of Changes --- ## 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. --- ...ller.java => ScannerEffectController.java} | 18 ++--- .../controller/web/OtherWebController.java | 8 +-- ...Request.java => ScannerEffectRequest.java} | 2 +- .../main/resources/messages_ar_AR.properties | 66 +++++++++--------- .../main/resources/messages_az_AZ.properties | 66 +++++++++--------- .../main/resources/messages_bg_BG.properties | 66 +++++++++--------- .../main/resources/messages_bo_CN.properties | 66 +++++++++--------- .../main/resources/messages_ca_CA.properties | 66 +++++++++--------- .../main/resources/messages_cs_CZ.properties | 66 +++++++++--------- .../main/resources/messages_da_DK.properties | 66 +++++++++--------- .../main/resources/messages_de_DE.properties | 66 +++++++++--------- .../main/resources/messages_el_GR.properties | 66 +++++++++--------- .../main/resources/messages_en_GB.properties | 66 +++++++++--------- .../main/resources/messages_en_US.properties | 66 +++++++++--------- .../main/resources/messages_es_ES.properties | 66 +++++++++--------- .../main/resources/messages_eu_ES.properties | 66 +++++++++--------- .../main/resources/messages_fa_IR.properties | 66 +++++++++--------- .../main/resources/messages_fr_FR.properties | 66 +++++++++--------- .../main/resources/messages_ga_IE.properties | 66 +++++++++--------- .../main/resources/messages_hi_IN.properties | 66 +++++++++--------- .../main/resources/messages_hr_HR.properties | 66 +++++++++--------- .../main/resources/messages_hu_HU.properties | 66 +++++++++--------- .../main/resources/messages_id_ID.properties | 66 +++++++++--------- .../main/resources/messages_it_IT.properties | 66 +++++++++--------- .../main/resources/messages_ja_JP.properties | 66 +++++++++--------- .../main/resources/messages_ko_KR.properties | 66 +++++++++--------- .../main/resources/messages_ml_IN.properties | 66 +++++++++--------- .../main/resources/messages_nl_NL.properties | 66 +++++++++--------- .../main/resources/messages_no_NB.properties | 66 +++++++++--------- .../main/resources/messages_pl_PL.properties | 66 +++++++++--------- .../main/resources/messages_pt_BR.properties | 66 +++++++++--------- .../main/resources/messages_pt_PT.properties | 66 +++++++++--------- .../main/resources/messages_ro_RO.properties | 66 +++++++++--------- .../main/resources/messages_ru_RU.properties | 67 +++++++++---------- .../main/resources/messages_sk_SK.properties | 66 +++++++++--------- .../main/resources/messages_sl_SI.properties | 66 +++++++++--------- .../resources/messages_sr_LATN_RS.properties | 66 +++++++++--------- .../main/resources/messages_sv_SE.properties | 66 +++++++++--------- .../main/resources/messages_th_TH.properties | 66 +++++++++--------- .../main/resources/messages_tr_TR.properties | 66 +++++++++--------- .../main/resources/messages_uk_UA.properties | 66 +++++++++--------- .../main/resources/messages_vi_VN.properties | 66 +++++++++--------- .../main/resources/messages_zh_CN.properties | 66 +++++++++--------- .../main/resources/messages_zh_TW.properties | 66 +++++++++--------- .../templates/fragments/navElements.html | 2 +- .../src/main/resources/templates/home.html | 2 +- .../{fake-scan.html => scanner-effect.html} | 52 +++++++------- scripts/ignore_translation.toml | 2 +- 48 files changed, 1396 insertions(+), 1397 deletions(-) rename app/core/src/main/java/stirling/software/SPDF/controller/api/misc/{FakeScanController.java => ScannerEffectController.java} (96%) rename app/core/src/main/java/stirling/software/SPDF/model/api/misc/{FakeScanRequest.java => ScannerEffectRequest.java} (98%) rename app/core/src/main/resources/templates/misc/{fake-scan.html => scanner-effect.html} (80%) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/FakeScanController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ScannerEffectController.java similarity index 96% rename from app/core/src/main/java/stirling/software/SPDF/controller/api/misc/FakeScanController.java rename to app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ScannerEffectController.java index d221ed52c..a94b487b4 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/FakeScanController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ScannerEffectController.java @@ -33,7 +33,7 @@ import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import stirling.software.SPDF.model.api.misc.FakeScanRequest; +import stirling.software.SPDF.model.api.misc.ScannerEffectRequest; import stirling.software.common.service.CustomPDFDocumentFactory; import stirling.software.common.util.WebResponseUtils; @@ -42,7 +42,7 @@ import stirling.software.common.util.WebResponseUtils; @Tag(name = "Misc", description = "Miscellaneous PDF APIs") @RequiredArgsConstructor @Slf4j -public class FakeScanController { +public class ScannerEffectController { private final CustomPDFDocumentFactory pdfDocumentFactory; private static final Random RANDOM = new Random(); @@ -52,12 +52,12 @@ public class FakeScanController { private static final int MAX_IMAGE_HEIGHT = 8192; private static final long MAX_IMAGE_PIXELS = 16_777_216; // 4096x4096 - @PostMapping(value = "/fake-scan", consumes = "multipart/form-data") + @PostMapping(value = "/scanner-effect", consumes = "multipart/form-data") @Operation( - summary = "Convert PDF to look like a scanned document", + summary = "Apply scanner effect to PDF", description = - "Applies various effects to make a PDF look like it was scanned, including rotation, noise, and edge softening. Input:PDF Output:PDF Type:SISO") - public ResponseEntity fakeScan(@Valid @ModelAttribute FakeScanRequest request) + "Applies various effects to simulate a scanned document, including rotation, noise, and edge softening. Input:PDF Output:PDF Type:SISO") + public ResponseEntity scannerEffect(@Valid @ModelAttribute ScannerEffectRequest request) throws IOException { MultipartFile file = request.getFileInput(); @@ -80,7 +80,7 @@ public class FakeScanController { float noise = request.getNoise(); boolean yellowish = request.isYellowish(); int resolution = request.getResolution(); - FakeScanRequest.Colorspace colorspace = request.getColorspace(); + ScannerEffectRequest.Colorspace colorspace = request.getColorspace(); try (PDDocument document = pdfDocumentFactory.load(file)) { PDDocument outputDocument = new PDDocument(); @@ -130,7 +130,7 @@ public class FakeScanController { // 1. Convert to grayscale or keep color BufferedImage processed; - if (colorspace == FakeScanRequest.Colorspace.grayscale) { + if (colorspace == ScannerEffectRequest.Colorspace.grayscale) { processed = new BufferedImage( image.getWidth(), @@ -316,7 +316,7 @@ public class FakeScanController { String outputFilename = Filenames.toSimpleFileName(file.getOriginalFilename()) .replaceFirst("[.][^.]+$", "") - + "_scanned.pdf"; + + "_scanner_effect.pdf"; return WebResponseUtils.bytesToWebResponse( outputStream.toByteArray(), outputFilename, MediaType.APPLICATION_PDF); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/web/OtherWebController.java b/app/core/src/main/java/stirling/software/SPDF/controller/web/OtherWebController.java index aac9cb6a0..bc63a4b84 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/web/OtherWebController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/web/OtherWebController.java @@ -70,11 +70,11 @@ public class OtherWebController { return "misc/add-page-numbers"; } - @GetMapping("/fake-scan") + @GetMapping("/scanner-effect") @Hidden - public String fakeScanForm(Model model) { - model.addAttribute("currentPage", "fake-scan"); - return "misc/fake-scan"; + public String scannerEffectForm(Model model) { + model.addAttribute("currentPage", "scanner-effect"); + return "misc/scanner-effect"; } @GetMapping("/extract-images") diff --git a/app/core/src/main/java/stirling/software/SPDF/model/api/misc/FakeScanRequest.java b/app/core/src/main/java/stirling/software/SPDF/model/api/misc/ScannerEffectRequest.java similarity index 98% rename from app/core/src/main/java/stirling/software/SPDF/model/api/misc/FakeScanRequest.java rename to app/core/src/main/java/stirling/software/SPDF/model/api/misc/ScannerEffectRequest.java index 1237d2305..72ecb42f6 100644 --- a/app/core/src/main/java/stirling/software/SPDF/model/api/misc/FakeScanRequest.java +++ b/app/core/src/main/java/stirling/software/SPDF/model/api/misc/ScannerEffectRequest.java @@ -11,7 +11,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode -public class FakeScanRequest { +public class ScannerEffectRequest { public enum Quality { low, medium, diff --git a/app/core/src/main/resources/messages_ar_AR.properties b/app/core/src/main/resources/messages_ar_AR.properties index 4691fa989..2993800ac 100644 --- a/app/core/src/main/resources/messages_ar_AR.properties +++ b/app/core/src/main/resources/messages_ar_AR.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_az_AZ.properties b/app/core/src/main/resources/messages_az_AZ.properties index 79ebfdcdb..c719d7139 100644 --- a/app/core/src/main/resources/messages_az_AZ.properties +++ b/app/core/src/main/resources/messages_az_AZ.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_bg_BG.properties b/app/core/src/main/resources/messages_bg_BG.properties index a5f12ec06..eaaeb5d95 100644 --- a/app/core/src/main/resources/messages_bg_BG.properties +++ b/app/core/src/main/resources/messages_bg_BG.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_bo_CN.properties b/app/core/src/main/resources/messages_bo_CN.properties index 87cf84b24..d84b4a387 100644 --- a/app/core/src/main/resources/messages_bo_CN.properties +++ b/app/core/src/main/resources/messages_bo_CN.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_ca_CA.properties b/app/core/src/main/resources/messages_ca_CA.properties index 488ac87a8..30a7f7624 100644 --- a/app/core/src/main/resources/messages_ca_CA.properties +++ b/app/core/src/main/resources/messages_ca_CA.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_cs_CZ.properties b/app/core/src/main/resources/messages_cs_CZ.properties index ab0b45b4d..7eb854aaa 100644 --- a/app/core/src/main/resources/messages_cs_CZ.properties +++ b/app/core/src/main/resources/messages_cs_CZ.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_da_DK.properties b/app/core/src/main/resources/messages_da_DK.properties index ba2b18cf5..118e545e6 100644 --- a/app/core/src/main/resources/messages_da_DK.properties +++ b/app/core/src/main/resources/messages_da_DK.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_de_DE.properties b/app/core/src/main/resources/messages_de_DE.properties index 207a36007..5f01823f1 100644 --- a/app/core/src/main/resources/messages_de_DE.properties +++ b/app/core/src/main/resources/messages_de_DE.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=Diese Cookies sind für das cookieBanner.preferencesModal.analytics.title=Analyse cookieBanner.preferencesModal.analytics.description=Diese Cookies helfen uns zu verstehen, wie unsere Tools genutzt werden, damit wir uns darauf konzentrieren können, die Funktionen zu entwickeln, die unserer Community am meisten am Herzen liegen. Seien Sie beruhigt – Stirling PDF kann und wird niemals den Inhalt der Dokumente verfolgen, mit denen Sie arbeiten. -#fakeScan -fakeScan.title=Fake-Scan-PDF -fakeScan.header=Fake-Scan-PDF -fakeScan.description=Erstellen Sie ein PDF, das so aussieht, als wäre es gescannt worden -fakeScan.selectPDF=Wählen Sie PDF: -fakeScan.quality=Scan-Qualität -fakeScan.quality.low=Niedrig -fakeScan.quality.medium=Medium -fakeScan.quality.high=Hoch -fakeScan.rotation=Rotationswinkel -fakeScan.rotation.none=Keiner -fakeScan.rotation.slight=Leicht -fakeScan.rotation.moderate=Mäßig -fakeScan.rotation.severe=Schwer -fakeScan.submit=Erstellen Sie einen Fake-Scan +#scannerEffect +scannerEffect.title=Scanner-Effect-PDF +scannerEffect.header=Scanner-Effect-PDF +scannerEffect.description=Erstellen Sie ein PDF, das so aussieht, als wäre es gescannt worden +scannerEffect.selectPDF=Wählen Sie PDF: +scannerEffect.quality=Scan-Qualität +scannerEffect.quality.low=Niedrig +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=Hoch +scannerEffect.rotation=Rotationswinkel +scannerEffect.rotation.none=Keiner +scannerEffect.rotation.slight=Leicht +scannerEffect.rotation.moderate=Mäßig +scannerEffect.rotation.severe=Schwer +scannerEffect.submit=Erstellen Sie einen Scanner-Effect -#home.fakeScan -home.fakeScan.title=Fake-Scan-PDF -home.fakeScan.desc=Erstellen Sie ein PDF, das so aussieht, als wäre es gescannt worden -fakeScan.tags=scannen,simulieren,realistisch,konvertieren,fake,scan,pdf +#home.scannerEffect +home.scannerEffect.title=Scanner-Effect-PDF +home.scannerEffect.desc=Erstellen Sie ein PDF, das so aussieht, als wäre es gescannt worden +scannerEffect.tags=scannen,simulieren,realistisch,konvertieren,fake,scan,pdf -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Aktivieren Sie erweiterte Scaneinstellungen -fakeScan.colorspace=Farbraum -fakeScan.colorspace.grayscale=Graustufen -fakeScan.colorspace.color=Farbe -fakeScan.border=Grenze (PX) -fakeScan.rotate=Grundrotation (Grad) -fakeScan.rotateVariance=Rotationsvarianz (Grad) -fakeScan.brightness=Helligkeit -fakeScan.contrast=Kontrast -fakeScan.blur=Verwischen -fakeScan.noise=Rauschen -fakeScan.yellowish=Gelblich (simulieren Sie altes Papier) -fakeScan.resolution=Auflösung (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Aktivieren Sie erweiterte Scaneinstellungen +scannerEffect.colorspace=Farbraum +scannerEffect.colorspace.grayscale=Graustufen +scannerEffect.colorspace.color=Farbe +scannerEffect.border=Grenze (PX) +scannerEffect.rotate=Grundrotation (Grad) +scannerEffect.rotateVariance=Rotationsvarianz (Grad) +scannerEffect.brightness=Helligkeit +scannerEffect.contrast=Kontrast +scannerEffect.blur=Verwischen +scannerEffect.noise=Rauschen +scannerEffect.yellowish=Gelblich (simulieren Sie altes Papier) +scannerEffect.resolution=Auflösung (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_el_GR.properties b/app/core/src/main/resources/messages_el_GR.properties index b04948a41..82fc98ef9 100644 --- a/app/core/src/main/resources/messages_el_GR.properties +++ b/app/core/src/main/resources/messages_el_GR.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_en_GB.properties b/app/core/src/main/resources/messages_en_GB.properties index 24ad9b465..f78e80b65 100644 --- a/app/core/src/main/resources/messages_en_GB.properties +++ b/app/core/src/main/resources/messages_en_GB.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_en_US.properties b/app/core/src/main/resources/messages_en_US.properties index 0b37cc0ea..eb8a9236c 100644 --- a/app/core/src/main/resources/messages_en_US.properties +++ b/app/core/src/main/resources/messages_en_US.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_es_ES.properties b/app/core/src/main/resources/messages_es_ES.properties index bf86c3dee..5601e76c0 100644 --- a/app/core/src/main/resources/messages_es_ES.properties +++ b/app/core/src/main/resources/messages_es_ES.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=Estas cookies son esenciales cookieBanner.preferencesModal.analytics.title=Análisis cookieBanner.preferencesModal.analytics.description=Estas cookies nos ayudan a entender cómo se están utilizando nuestras herramientas, para que podamos centrarnos en desarrollar las funciones que nuestra comunidad valora más. Tenga la seguridad de que Stirling PDF no puede y nunca podrá rastrear el contenido de los documentos con los que trabaja. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_eu_ES.properties b/app/core/src/main/resources/messages_eu_ES.properties index 8a614af65..bda28227f 100644 --- a/app/core/src/main/resources/messages_eu_ES.properties +++ b/app/core/src/main/resources/messages_eu_ES.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_fa_IR.properties b/app/core/src/main/resources/messages_fa_IR.properties index 50dc3f6f7..a1cfbe5b5 100644 --- a/app/core/src/main/resources/messages_fa_IR.properties +++ b/app/core/src/main/resources/messages_fa_IR.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_fr_FR.properties b/app/core/src/main/resources/messages_fr_FR.properties index 7b1e71100..2a3a7c6b5 100644 --- a/app/core/src/main/resources/messages_fr_FR.properties +++ b/app/core/src/main/resources/messages_fr_FR.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=Ces cookies sont essentiels cookieBanner.preferencesModal.analytics.title=Analyse cookieBanner.preferencesModal.analytics.description=Ces cookies nous aident à comprendre comment nos outils sont utilisés, afin que nous puissions nous concentrer sur les fonctionnalités les plus appréciées par notre communauté. Soyez rassuré — Stirling PDF ne peut pas et ne suivra jamais le contenu des documents que vous utilisez. -#fakeScan -fakeScan.title=Fausse numérisation -fakeScan.header=Fausse numérisation -fakeScan.description=Créer un PDF qui ressemble à une numérisation -fakeScan.selectPDF=Sélectionner un PDF : -fakeScan.quality=Qualité de numérisation -fakeScan.quality.low=Faible -fakeScan.quality.medium=Moyenne -fakeScan.quality.high=Élevée -fakeScan.rotation=Angle de rotation -fakeScan.rotation.none=Aucun -fakeScan.rotation.slight=Léger -fakeScan.rotation.moderate=Modéré -fakeScan.rotation.severe=Sévère -fakeScan.submit=Créer une fausse numérisation +#scannerEffect +scannerEffect.title=Fausse numérisation +scannerEffect.header=Fausse numérisation +scannerEffect.description=Créer un PDF qui ressemble à une numérisation +scannerEffect.selectPDF=Sélectionner un PDF : +scannerEffect.quality=Qualité de numérisation +scannerEffect.quality.low=Faible +scannerEffect.quality.medium=Moyenne +scannerEffect.quality.high=Élevée +scannerEffect.rotation=Angle de rotation +scannerEffect.rotation.none=Aucun +scannerEffect.rotation.slight=Léger +scannerEffect.rotation.moderate=Modéré +scannerEffect.rotation.severe=Sévère +scannerEffect.submit=Créer une fausse numérisation -#home.fakeScan -home.fakeScan.title=Fausse numérisation -home.fakeScan.desc=Créer un PDF qui ressemble à une numérisation -fakeScan.tags=numérisation,simuler,réaliste,convertir,scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Fausse numérisation +home.scannerEffect.desc=Créer un PDF qui ressemble à une numérisation +scannerEffect.tags=numérisation,simuler,réaliste,convertir,scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Activer les paramètres de numérisation avancés -fakeScan.colorspace=Espace colorimétrique -fakeScan.colorspace.grayscale=Niveaux de gris -fakeScan.colorspace.color=Couleur -fakeScan.border=Bordure (px) -fakeScan.rotate=Rotation de base (degrés) -fakeScan.rotateVariance=Variance de rotation (degrés) -fakeScan.brightness=Luminosité -fakeScan.contrast=Contraste -fakeScan.blur=Flou -fakeScan.noise=Bruit -fakeScan.yellowish=Jaunâtre (simuler du vieux papier) -fakeScan.resolution=Résolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Activer les paramètres de numérisation avancés +scannerEffect.colorspace=Espace colorimétrique +scannerEffect.colorspace.grayscale=Niveaux de gris +scannerEffect.colorspace.color=Couleur +scannerEffect.border=Bordure (px) +scannerEffect.rotate=Rotation de base (degrés) +scannerEffect.rotateVariance=Variance de rotation (degrés) +scannerEffect.brightness=Luminosité +scannerEffect.contrast=Contraste +scannerEffect.blur=Flou +scannerEffect.noise=Bruit +scannerEffect.yellowish=Jaunâtre (simuler du vieux papier) +scannerEffect.resolution=Résolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_ga_IE.properties b/app/core/src/main/resources/messages_ga_IE.properties index 332ac4e76..7a5d87de3 100644 --- a/app/core/src/main/resources/messages_ga_IE.properties +++ b/app/core/src/main/resources/messages_ga_IE.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_hi_IN.properties b/app/core/src/main/resources/messages_hi_IN.properties index 29d1e1ee5..ced3f3300 100644 --- a/app/core/src/main/resources/messages_hi_IN.properties +++ b/app/core/src/main/resources/messages_hi_IN.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_hr_HR.properties b/app/core/src/main/resources/messages_hr_HR.properties index 321e1b141..f311a93dd 100644 --- a/app/core/src/main/resources/messages_hr_HR.properties +++ b/app/core/src/main/resources/messages_hr_HR.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_hu_HU.properties b/app/core/src/main/resources/messages_hu_HU.properties index 8c38c44c4..f04440968 100644 --- a/app/core/src/main/resources/messages_hu_HU.properties +++ b/app/core/src/main/resources/messages_hu_HU.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=Ezek a sütik elengedhetetle cookieBanner.preferencesModal.analytics.title=Adatelemzések cookieBanner.preferencesModal.analytics.description=Ezek a sütik segítenek megérteni, hogyan használják eszközeinket, így a közösségünk által leginkább értékelt funkciókra összpontosíthatunk. Nyugodt lehet-a Stirling PDF nem képes és soha nem is fog nyomon követni az Ön által használt dokumentumok tartalmát. -#fakeScan -fakeScan.title=Látszat szkennelés -fakeScan.header=Látszat szkennelés -fakeScan.description=Olyan PDF létrehozása, amely szkenneltnek tűnik -fakeScan.selectPDF=PDF kiválasztása: -fakeScan.quality=Szkennelési minőség -fakeScan.quality.low=Alacsony -fakeScan.quality.medium=Közepes -fakeScan.quality.high=Magas -fakeScan.rotation=Forgatási szög -fakeScan.rotation.none=Nincs -fakeScan.rotation.slight=Enyhe -fakeScan.rotation.moderate=Mérsékelt -fakeScan.rotation.severe=Erős -fakeScan.submit=Látszat szkennelés létrehozása +#scannerEffect +scannerEffect.title=Látszat szkennelés +scannerEffect.header=Látszat szkennelés +scannerEffect.description=Olyan PDF létrehozása, amely szkenneltnek tűnik +scannerEffect.selectPDF=PDF kiválasztása: +scannerEffect.quality=Szkennelési minőség +scannerEffect.quality.low=Alacsony +scannerEffect.quality.medium=Közepes +scannerEffect.quality.high=Magas +scannerEffect.rotation=Forgatási szög +scannerEffect.rotation.none=Nincs +scannerEffect.rotation.slight=Enyhe +scannerEffect.rotation.moderate=Mérsékelt +scannerEffect.rotation.severe=Erős +scannerEffect.submit=Látszat szkennelés létrehozása -#home.fakeScan -home.fakeScan.title=Látszat szkennelés -home.fakeScan.desc=Olyan PDF létrehozása, amely szkenneltnek tűnik -fakeScan.tags=szkennelés,szimuláció,valósághű,konvertálás +#home.scannerEffect +home.scannerEffect.title=Látszat szkennelés +home.scannerEffect.desc=Olyan PDF létrehozása, amely szkenneltnek tűnik +scannerEffect.tags=szkennelés,szimuláció,valósághű,konvertálás -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Haladó szkennelési beállítások engedélyezése -fakeScan.colorspace=Színtér -fakeScan.colorspace.grayscale=Szürkeárnyalatos -fakeScan.colorspace.color=Színes -fakeScan.border=Keret (px) -fakeScan.rotate=Alapforgatás (fok) -fakeScan.rotateVariance=Forgatási változó (fok) -fakeScan.brightness=Fényerő -fakeScan.contrast=Kontraszt -fakeScan.blur=Elmosás -fakeScan.noise=Zaj -fakeScan.yellowish=Sárgás (régi papír szimulálása) -fakeScan.resolution=Felbontás (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Haladó szkennelési beállítások engedélyezése +scannerEffect.colorspace=Színtér +scannerEffect.colorspace.grayscale=Szürkeárnyalatos +scannerEffect.colorspace.color=Színes +scannerEffect.border=Keret (px) +scannerEffect.rotate=Alapforgatás (fok) +scannerEffect.rotateVariance=Forgatási változó (fok) +scannerEffect.brightness=Fényerő +scannerEffect.contrast=Kontraszt +scannerEffect.blur=Elmosás +scannerEffect.noise=Zaj +scannerEffect.yellowish=Sárgás (régi papír szimulálása) +scannerEffect.resolution=Felbontás (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_id_ID.properties b/app/core/src/main/resources/messages_id_ID.properties index 218a7275c..3a706535a 100644 --- a/app/core/src/main/resources/messages_id_ID.properties +++ b/app/core/src/main/resources/messages_id_ID.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_it_IT.properties b/app/core/src/main/resources/messages_it_IT.properties index 2cce71c66..bba74394b 100644 --- a/app/core/src/main/resources/messages_it_IT.properties +++ b/app/core/src/main/resources/messages_it_IT.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=Questi cookie sono essenzial cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=Questi cookie ci aiutano a capire come vengono utilizzati i nostri strumenti, così possiamo concentrarci sullo sviluppo delle funzionalità che la nostra community apprezza di più. Non preoccuparti: Stirling PDF non può e non traccerà mai il contenuto dei documenti con cui lavori. -#fakeScan -fakeScan.title=Falsa scansione -fakeScan.header=Falsa scansione -fakeScan.description=Crea un PDF che sembra scansionato -fakeScan.selectPDF=Seleziona PDF: -fakeScan.quality=Qualità di scansione -fakeScan.quality.low=Bassa -fakeScan.quality.medium=Media -fakeScan.quality.high=Alta -fakeScan.rotation=Angolo di rotazione -fakeScan.rotation.none=Nessuno -fakeScan.rotation.slight=Lieve -fakeScan.rotation.moderate=Moderato -fakeScan.rotation.severe=Severo -fakeScan.submit=Crea una falsa scansione +#scannerEffect +scannerEffect.title=Falsa scansione +scannerEffect.header=Falsa scansione +scannerEffect.description=Crea un PDF che sembra scansionato +scannerEffect.selectPDF=Seleziona PDF: +scannerEffect.quality=Qualità di scansione +scannerEffect.quality.low=Bassa +scannerEffect.quality.medium=Media +scannerEffect.quality.high=Alta +scannerEffect.rotation=Angolo di rotazione +scannerEffect.rotation.none=Nessuno +scannerEffect.rotation.slight=Lieve +scannerEffect.rotation.moderate=Moderato +scannerEffect.rotation.severe=Severo +scannerEffect.submit=Crea una falsa scansione -#home.fakeScan -home.fakeScan.title=Falsa scansione -home.fakeScan.desc=Crea un PDF che sembra scansionato -fakeScan.tags=scansiona, simula, realistico, converti +#home.scannerEffect +home.scannerEffect.title=Falsa scansione +home.scannerEffect.desc=Crea un PDF che sembra scansionato +scannerEffect.tags=scansiona, simula, realistico, converti -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Abilita impostazioni di scansione avanzate -fakeScan.colorspace=Spazio colore -fakeScan.colorspace.grayscale=Scala di grigi -fakeScan.colorspace.color=Colore -fakeScan.border=Bordo (px) -fakeScan.rotate=Rotazione di base (gradi) -fakeScan.rotateVariance=Varianza di rotazione (gradi) -fakeScan.brightness=Luminosità -fakeScan.contrast=Contrasto -fakeScan.blur=Sfocatura -fakeScan.noise=Rumore -fakeScan.yellowish=Giallastro (simula carta vecchia) -fakeScan.resolution=Risoluzione (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Abilita impostazioni di scansione avanzate +scannerEffect.colorspace=Spazio colore +scannerEffect.colorspace.grayscale=Scala di grigi +scannerEffect.colorspace.color=Colore +scannerEffect.border=Bordo (px) +scannerEffect.rotate=Rotazione di base (gradi) +scannerEffect.rotateVariance=Varianza di rotazione (gradi) +scannerEffect.brightness=Luminosità +scannerEffect.contrast=Contrasto +scannerEffect.blur=Sfocatura +scannerEffect.noise=Rumore +scannerEffect.yellowish=Giallastro (simula carta vecchia) +scannerEffect.resolution=Risoluzione (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_ja_JP.properties b/app/core/src/main/resources/messages_ja_JP.properties index b4a2bdbc0..bdb30dc7b 100644 --- a/app/core/src/main/resources/messages_ja_JP.properties +++ b/app/core/src/main/resources/messages_ja_JP.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=これらのCookieはウェ cookieBanner.preferencesModal.analytics.title=分析 cookieBanner.preferencesModal.analytics.description=これらのCookieはツールがどのように使用されているかを把握するのに役立ちます。これによりコミュニティが最も重視する機能の開発に集中することができます。ご安心ください。Stirling PDFはお客様が操作するドキュメントの内容を追跡することは決してありません。 -#fakeScan -fakeScan.title=フェイクスキャン -fakeScan.header=フェイクスキャン -fakeScan.description=スキャンされたように見えるPDFを作成します -fakeScan.selectPDF=PDFを選択: -fakeScan.quality=スキャン品質 -fakeScan.quality.low=低 -fakeScan.quality.medium=中 -fakeScan.quality.high=高 -fakeScan.rotation=回転角度 -fakeScan.rotation.none=なし -fakeScan.rotation.slight=微少 -fakeScan.rotation.moderate=適度 -fakeScan.rotation.severe=多大 -fakeScan.submit=フェイクスキャンの生成 +#scannerEffect +scannerEffect.title=フェイクスキャン +scannerEffect.header=フェイクスキャン +scannerEffect.description=スキャンされたように見えるPDFを作成します +scannerEffect.selectPDF=PDFを選択: +scannerEffect.quality=スキャン品質 +scannerEffect.quality.low=低 +scannerEffect.quality.medium=中 +scannerEffect.quality.high=高 +scannerEffect.rotation=回転角度 +scannerEffect.rotation.none=なし +scannerEffect.rotation.slight=微少 +scannerEffect.rotation.moderate=適度 +scannerEffect.rotation.severe=多大 +scannerEffect.submit=フェイクスキャンの生成 -#home.fakeScan -home.fakeScan.title=フェイクスキャン -home.fakeScan.desc=スキャンされたように見えるPDFを作成します -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=フェイクスキャン +home.scannerEffect.desc=スキャンされたように見えるPDFを作成します +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=高度なスキャン設定を有効にする -fakeScan.colorspace=色空間 -fakeScan.colorspace.grayscale=グレースケール -fakeScan.colorspace.color=カラー -fakeScan.border=縁 (px) -fakeScan.rotate=ベースの回転(度) -fakeScan.rotateVariance=回転分散(度) -fakeScan.brightness=輝度 -fakeScan.contrast=コントラスト -fakeScan.blur=ぼかし -fakeScan.noise=ノイズ -fakeScan.yellowish=黄色がかった(古い紙をシミュレート) -fakeScan.resolution=解像度 (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=高度なスキャン設定を有効にする +scannerEffect.colorspace=色空間 +scannerEffect.colorspace.grayscale=グレースケール +scannerEffect.colorspace.color=カラー +scannerEffect.border=縁 (px) +scannerEffect.rotate=ベースの回転(度) +scannerEffect.rotateVariance=回転分散(度) +scannerEffect.brightness=輝度 +scannerEffect.contrast=コントラスト +scannerEffect.blur=ぼかし +scannerEffect.noise=ノイズ +scannerEffect.yellowish=黄色がかった(古い紙をシミュレート) +scannerEffect.resolution=解像度 (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_ko_KR.properties b/app/core/src/main/resources/messages_ko_KR.properties index 224e84ce0..76f7ca715 100644 --- a/app/core/src/main/resources/messages_ko_KR.properties +++ b/app/core/src/main/resources/messages_ko_KR.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_ml_IN.properties b/app/core/src/main/resources/messages_ml_IN.properties index 418cfe100..164209212 100644 --- a/app/core/src/main/resources/messages_ml_IN.properties +++ b/app/core/src/main/resources/messages_ml_IN.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=വെബ്സൈറ്റ cookieBanner.preferencesModal.analytics.title=അനലിറ്റിക്സ് cookieBanner.preferencesModal.analytics.description=ഞങ്ങളുടെ ടൂളുകൾ എങ്ങനെ ഉപയോഗിക്കുന്നുവെന്ന് മനസ്സിലാക്കാൻ ഈ കുക്കികൾ ഞങ്ങളെ സഹായിക്കുന്നു, അതിനാൽ ഞങ്ങളുടെ കമ്മ്യൂണിറ്റി ഏറ്റവും കൂടുതൽ വിലമതിക്കുന്ന ഫീച്ചറുകൾ നിർമ്മിക്കുന്നതിൽ ഞങ്ങൾക്ക് ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ കഴിയും. ഉറപ്പാക്കുക—സ്റ്റെർലിംഗ് PDF-ന് നിങ്ങൾ പ്രവർത്തിക്കുന്ന പ്രമാണങ്ങളുടെ ഉള്ളടക്കം ട്രാക്ക് ചെയ്യാൻ കഴിയില്ല, ഒരിക്കലും കഴിയില്ല. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_nl_NL.properties b/app/core/src/main/resources/messages_nl_NL.properties index eb6f132af..9a1af6e0a 100644 --- a/app/core/src/main/resources/messages_nl_NL.properties +++ b/app/core/src/main/resources/messages_nl_NL.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_no_NB.properties b/app/core/src/main/resources/messages_no_NB.properties index fa99d5ac9..03d42816d 100644 --- a/app/core/src/main/resources/messages_no_NB.properties +++ b/app/core/src/main/resources/messages_no_NB.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_pl_PL.properties b/app/core/src/main/resources/messages_pl_PL.properties index c08fda43d..4963d7bc6 100644 --- a/app/core/src/main/resources/messages_pl_PL.properties +++ b/app/core/src/main/resources/messages_pl_PL.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_pt_BR.properties b/app/core/src/main/resources/messages_pt_BR.properties index ef570453c..552139b52 100644 --- a/app/core/src/main/resources/messages_pt_BR.properties +++ b/app/core/src/main/resources/messages_pt_BR.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=Estes cookies são essenciai cookieBanner.preferencesModal.analytics.title=Cookies Analíticos cookieBanner.preferencesModal.analytics.description=Estes cookies nos ajudam a entender como nossas ferramentas estão sendo utilizadas, para que possamos nos concentrar na construção dos recursos que nossa comunidade mais valoriza. Fique tranquilo: o Stirling PDF não pode e nunca rastreará o conteúdo dos documentos com os quais você manipula. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_pt_PT.properties b/app/core/src/main/resources/messages_pt_PT.properties index fd6c34b90..dc99a45c9 100644 --- a/app/core/src/main/resources/messages_pt_PT.properties +++ b/app/core/src/main/resources/messages_pt_PT.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_ro_RO.properties b/app/core/src/main/resources/messages_ro_RO.properties index da8f7eaf2..25bc477b1 100644 --- a/app/core/src/main/resources/messages_ro_RO.properties +++ b/app/core/src/main/resources/messages_ro_RO.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_ru_RU.properties b/app/core/src/main/resources/messages_ru_RU.properties index 66a1bc93d..302a518f8 100644 --- a/app/core/src/main/resources/messages_ru_RU.properties +++ b/app/core/src/main/resources/messages_ru_RU.properties @@ -1811,42 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Поддельное сканирование -fakeScan.header=Поддельное сканирование -fakeScan.description=Создайте PDF-файл, который выглядит так, как будто он был отсканирован -fakeScan.selectPDF=Выбрать PDF: -fakeScan.quality=Качество сканирования -fakeScan.quality.low=Низкое -fakeScan.quality.medium=Среднее -fakeScan.quality.high=Хорошее -fakeScan.rotation=Угол поворота -fakeScan.rotation.none=Нет -fakeScan.rotation.slight=Незначительный -fakeScan.rotation.moderate=Умеренный -fakeScan.rotation.severe=Сильный -fakeScan.submit=Создать поддельное сканирование +#scannerEffect +scannerEffect.title=Поддельное сканирование +scannerEffect.header=Поддельное сканирование +scannerEffect.description=Создайте PDF-файл, который выглядит так, как будто он был отсканирован +scannerEffect.selectPDF=Выбрать PDF: +scannerEffect.quality=Качество сканирования +scannerEffect.quality.low=Низкое +scannerEffect.quality.medium=Среднее +scannerEffect.quality.high=Хорошее +scannerEffect.rotation=Угол поворота +scannerEffect.rotation.none=Нет +scannerEffect.rotation.slight=Незначительный +scannerEffect.rotation.moderate=Умеренный +scannerEffect.rotation.severe=Сильный +scannerEffect.submit=Создать поддельное сканирование -#home.fakeScan -home.fakeScan.title=Поддельное сканирование -home.fakeScan.desc=Создайте PDF-файл, который выглядит так, как будто он был отсканирован -fakeScan.tags=scan,simulate,realistic,convert - -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Включите расширенные параметры сканирования -fakeScan.colorspace=Цветовое пространство -fakeScan.colorspace.grayscale=Оттенки серого -fakeScan.colorspace.color=Цветное -fakeScan.border=Рамка (px) -fakeScan.rotate=Базовый наклон (degrees) -fakeScan.rotateVariance=Скорость вращения (degrees) -fakeScan.brightness=Яркость -fakeScan.contrast=Контраст -fakeScan.blur=Размытие -fakeScan.noise=Шум -fakeScan.yellowish=Желтоватый оттенок (имитация старой бумаги) -fakeScan.resolution=Разрешение (DPI) +#home.scannerEffect +home.scannerEffect.title=Поддельное сканирование +home.scannerEffect.desc=Создайте PDF-файл, который выглядит так, как будто он был отсканирован +scannerEffect.tags=scan,simulate,realistic,convert +# scannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Включите расширенные параметры сканирования +scannerEffect.colorspace=Цветовое пространство +scannerEffect.colorspace.grayscale=Оттенки серого +scannerEffect.colorspace.color=Цветное +scannerEffect.border=Рамка (px) +scannerEffect.rotate=Базовый наклон (degrees) +scannerEffect.rotateVariance=Скорость вращения (degrees) +scannerEffect.brightness=Яркость +scannerEffect.contrast=Контраст +scannerEffect.blur=Размытие +scannerEffect.noise=Шум +scannerEffect.yellowish=Желтоватый оттенок (имитация старой бумаги) +scannerEffect.resolution=Разрешение (DPI) # Table of Contents Feature home.editTableOfContents.title=Редактировать оглавление diff --git a/app/core/src/main/resources/messages_sk_SK.properties b/app/core/src/main/resources/messages_sk_SK.properties index 0b77464ad..094265d29 100644 --- a/app/core/src/main/resources/messages_sk_SK.properties +++ b/app/core/src/main/resources/messages_sk_SK.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_sl_SI.properties b/app/core/src/main/resources/messages_sl_SI.properties index de27dccc4..f75e714af 100644 --- a/app/core/src/main/resources/messages_sl_SI.properties +++ b/app/core/src/main/resources/messages_sl_SI.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_sr_LATN_RS.properties b/app/core/src/main/resources/messages_sr_LATN_RS.properties index 12f8f9abd..809a785ee 100644 --- a/app/core/src/main/resources/messages_sr_LATN_RS.properties +++ b/app/core/src/main/resources/messages_sr_LATN_RS.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=Ovi kolačići su neophodni cookieBanner.preferencesModal.analytics.title=Analitika cookieBanner.preferencesModal.analytics.description=Ovi kolačići nam pomažu da razumemo kako se naši alati koriste, kako bismo mogli da se fokusiramo na razvoj funkcija koje naša zajednica najviše ceni. Budite sigurni — Stirling PDF ne može i nikada neće pratiti sadržaj dokumenata sa kojima radite. -#fakeScan -fakeScan.title=Lažno skeniranje -fakeScan.header=Lažno skeniranje -fakeScan.description=Kreiraj PDF koji izgleda kao da je skeniran -fakeScan.selectPDF=Izaberi PDF: -fakeScan.quality=Kvalitet skeniranja: -fakeScan.quality.low=Nizak -fakeScan.quality.medium=Srednji -fakeScan.quality.high=Visok -fakeScan.rotation=Ugao rotiranja: -fakeScan.rotation.none=Nijedno -fakeScan.rotation.slight=Blago -fakeScan.rotation.moderate=Umereno -fakeScan.rotation.severe=Značajno -fakeScan.submit=Kreiraj lažno skeniranje +#scannerEffect +scannerEffect.title=Lažno skeniranje +scannerEffect.header=Lažno skeniranje +scannerEffect.description=Kreiraj PDF koji izgleda kao da je skeniran +scannerEffect.selectPDF=Izaberi PDF: +scannerEffect.quality=Kvalitet skeniranja: +scannerEffect.quality.low=Nizak +scannerEffect.quality.medium=Srednji +scannerEffect.quality.high=Visok +scannerEffect.rotation=Ugao rotiranja: +scannerEffect.rotation.none=Nijedno +scannerEffect.rotation.slight=Blago +scannerEffect.rotation.moderate=Umereno +scannerEffect.rotation.severe=Značajno +scannerEffect.submit=Kreiraj lažno skeniranje -#home.fakeScan -home.fakeScan.title=Lažno skeniranje -home.fakeScan.desc=Kreiraj PDF koji izgleda kao da je skeniran -fakeScan.tags=sken,simuliraj,realistično,konvertuj +#home.scannerEffect +home.scannerEffect.title=Lažno skeniranje +home.scannerEffect.desc=Kreiraj PDF koji izgleda kao da je skeniran +scannerEffect.tags=sken,simuliraj,realistično,konvertuj -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Omogući naprednja podešavanja za skeniranje -fakeScan.colorspace=Režim boja: -fakeScan.colorspace.grayscale=Monohromatski -fakeScan.colorspace.color=Kolor -fakeScan.border=Ivica (px) -fakeScan.rotate=Osnovni ugao rotacije (stepeni) -fakeScan.rotateVariance=Varijacija rotacije (stepeni) -fakeScan.brightness=Osvetljenje -fakeScan.contrast=Kontrast -fakeScan.blur=Zamućenje -fakeScan.noise=Buka -fakeScan.yellowish=Žutilo (simulacija starog papira) -fakeScan.resolution=Rezolucija (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Omogući naprednja podešavanja za skeniranje +scannerEffect.colorspace=Režim boja: +scannerEffect.colorspace.grayscale=Monohromatski +scannerEffect.colorspace.color=Kolor +scannerEffect.border=Ivica (px) +scannerEffect.rotate=Osnovni ugao rotacije (stepeni) +scannerEffect.rotateVariance=Varijacija rotacije (stepeni) +scannerEffect.brightness=Osvetljenje +scannerEffect.contrast=Kontrast +scannerEffect.blur=Zamućenje +scannerEffect.noise=Buka +scannerEffect.yellowish=Žutilo (simulacija starog papira) +scannerEffect.resolution=Rezolucija (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_sv_SE.properties b/app/core/src/main/resources/messages_sv_SE.properties index 1b05a7b05..086789fcd 100644 --- a/app/core/src/main/resources/messages_sv_SE.properties +++ b/app/core/src/main/resources/messages_sv_SE.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_th_TH.properties b/app/core/src/main/resources/messages_th_TH.properties index 094bf6632..2637eadf2 100644 --- a/app/core/src/main/resources/messages_th_TH.properties +++ b/app/core/src/main/resources/messages_th_TH.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_tr_TR.properties b/app/core/src/main/resources/messages_tr_TR.properties index 5a16196cd..2da6244ff 100644 --- a/app/core/src/main/resources/messages_tr_TR.properties +++ b/app/core/src/main/resources/messages_tr_TR.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=Bu çerezler, web sitesinin cookieBanner.preferencesModal.analytics.title=Analitik cookieBanner.preferencesModal.analytics.description=Bu çerezler, araçlarımızın nasıl kullanıldığını anlamamıza yardımcı olur, böylece topluluğumuzun en çok değer verdiği özellikleri geliştirmeye odaklanabiliriz. İçiniz rahat olsun — Stirling PDF, belgelerinizin içeriğini asla takip etmez ve etmeyecektir. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Sahte Tarama -home.fakeScan.desc=Tarama yapılmış gibi görünen bir PDF oluşturun -fakeScan.tags=tarama,simülasyon,gerçekçi,dönüştürme +#home.scannerEffect +home.scannerEffect.title=Sahte Tarama +home.scannerEffect.desc=Tarama yapılmış gibi görünen bir PDF oluşturun +scannerEffect.tags=tarama,simülasyon,gerçekçi,dönüştürme -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Gelişmiş Tarama Ayarlarını Etkinleştir -fakeScan.colorspace=Renk Uzayı -fakeScan.colorspace.grayscale=Gri Tonlama -fakeScan.colorspace.color=Renkli -fakeScan.border=Kenar Boşluğu (piksel) -fakeScan.rotate=Temel Döndürme (derece) -fakeScan.rotateVariance=Döndürme Varyansı (derece) -fakeScan.brightness=Parlaklık -fakeScan.contrast=Kontrast -fakeScan.blur=Bulanıklık -fakeScan.noise=Gürültü -fakeScan.yellowish=Sarartı (eski kağıt efekti) -fakeScan.resolution=Çözünürlük (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Gelişmiş Tarama Ayarlarını Etkinleştir +scannerEffect.colorspace=Renk Uzayı +scannerEffect.colorspace.grayscale=Gri Tonlama +scannerEffect.colorspace.color=Renkli +scannerEffect.border=Kenar Boşluğu (piksel) +scannerEffect.rotate=Temel Döndürme (derece) +scannerEffect.rotateVariance=Döndürme Varyansı (derece) +scannerEffect.brightness=Parlaklık +scannerEffect.contrast=Kontrast +scannerEffect.blur=Bulanıklık +scannerEffect.noise=Gürültü +scannerEffect.yellowish=Sarartı (eski kağıt efekti) +scannerEffect.resolution=Çözünürlük (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_uk_UA.properties b/app/core/src/main/resources/messages_uk_UA.properties index 1389189d2..89518dca8 100644 --- a/app/core/src/main/resources/messages_uk_UA.properties +++ b/app/core/src/main/resources/messages_uk_UA.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_vi_VN.properties b/app/core/src/main/resources/messages_vi_VN.properties index e7aa8b568..dcf69cce8 100644 --- a/app/core/src/main/resources/messages_vi_VN.properties +++ b/app/core/src/main/resources/messages_vi_VN.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=These cookies are essential cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_zh_CN.properties b/app/core/src/main/resources/messages_zh_CN.properties index 8dba289a2..247b6ea70 100644 --- a/app/core/src/main/resources/messages_zh_CN.properties +++ b/app/core/src/main/resources/messages_zh_CN.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=这些Cookie对网站基础 cookieBanner.preferencesModal.analytics.title=分析统计 cookieBanner.preferencesModal.analytics.description=这些Cookie帮助我们分析工具使用情况,以便聚焦开发用户最需要的功能。再次强调:Stirling PDF绝不会追踪您处理的文档内容。 -#fakeScan -fakeScan.title=模拟扫描 -fakeScan.header=模拟扫描 -fakeScan.description=创建一个看起来像扫描的 PDF -fakeScan.selectPDF=选择 PDF: -fakeScan.quality=扫描质量 -fakeScan.quality.low=低 -fakeScan.quality.medium=中 -fakeScan.quality.high=高 -fakeScan.rotation=旋转角度 -fakeScan.rotation.none=无 -fakeScan.rotation.slight=轻微 -fakeScan.rotation.moderate=中等 -fakeScan.rotation.severe=严重 -fakeScan.submit=创建模拟扫描 +#scannerEffect +scannerEffect.title=模拟扫描 +scannerEffect.header=模拟扫描 +scannerEffect.description=创建一个看起来像扫描的 PDF +scannerEffect.selectPDF=选择 PDF: +scannerEffect.quality=扫描质量 +scannerEffect.quality.low=低 +scannerEffect.quality.medium=中 +scannerEffect.quality.high=高 +scannerEffect.rotation=旋转角度 +scannerEffect.rotation.none=无 +scannerEffect.rotation.slight=轻微 +scannerEffect.rotation.moderate=中等 +scannerEffect.rotation.severe=严重 +scannerEffect.submit=创建模拟扫描 -#home.fakeScan -home.fakeScan.title=模拟扫描 -home.fakeScan.desc=创建一个看起来像扫描的 PDF -fakeScan.tags=扫描、模拟、真实、转换 +#home.scannerEffect +home.scannerEffect.title=模拟扫描 +home.scannerEffect.desc=创建一个看起来像扫描的 PDF +scannerEffect.tags=扫描、模拟、真实、转换 -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=启用高级扫描设置 -fakeScan.colorspace=色彩空间 -fakeScan.colorspace.grayscale=灰度 -fakeScan.colorspace.color=颜色 -fakeScan.border=边框(像素) -fakeScan.rotate=基础旋转(度) -fakeScan.rotateVariance=旋转偏差(度) -fakeScan.brightness=亮度 -fakeScan.contrast=对比度 -fakeScan.blur=模糊 -fakeScan.noise=噪点 -fakeScan.yellowish=泛黄效果(模拟旧纸张) -fakeScan.resolution=分辨率(DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=启用高级扫描设置 +scannerEffect.colorspace=色彩空间 +scannerEffect.colorspace.grayscale=灰度 +scannerEffect.colorspace.color=颜色 +scannerEffect.border=边框(像素) +scannerEffect.rotate=基础旋转(度) +scannerEffect.rotateVariance=旋转偏差(度) +scannerEffect.brightness=亮度 +scannerEffect.contrast=对比度 +scannerEffect.blur=模糊 +scannerEffect.noise=噪点 +scannerEffect.yellowish=泛黄效果(模拟旧纸张) +scannerEffect.resolution=分辨率(DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/messages_zh_TW.properties b/app/core/src/main/resources/messages_zh_TW.properties index 7ef8b99f4..134f7c8a6 100644 --- a/app/core/src/main/resources/messages_zh_TW.properties +++ b/app/core/src/main/resources/messages_zh_TW.properties @@ -1811,41 +1811,41 @@ cookieBanner.preferencesModal.necessary.description=這些 Cookies 對網站正 cookieBanner.preferencesModal.analytics.title=分析 Cookies cookieBanner.preferencesModal.analytics.description=這些 Cookies 幫助我們分析您如何使用我們的工具,好讓我們能專注在建構社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件 -#fakeScan -fakeScan.title=Fake Scan -fakeScan.header=Fake Scan -fakeScan.description=Create a PDF that looks like it was scanned -fakeScan.selectPDF=Select PDF: -fakeScan.quality=Scan Quality -fakeScan.quality.low=Low -fakeScan.quality.medium=Medium -fakeScan.quality.high=High -fakeScan.rotation=Rotation Angle -fakeScan.rotation.none=None -fakeScan.rotation.slight=Slight -fakeScan.rotation.moderate=Moderate -fakeScan.rotation.severe=Severe -fakeScan.submit=Create Fake Scan +#scannerEffect +scannerEffect.title=Scanner Effect +scannerEffect.header=Scanner Effect +scannerEffect.description=Create a PDF that looks like it was scanned +scannerEffect.selectPDF=Select PDF: +scannerEffect.quality=Scan Quality +scannerEffect.quality.low=Low +scannerEffect.quality.medium=Medium +scannerEffect.quality.high=High +scannerEffect.rotation=Rotation Angle +scannerEffect.rotation.none=None +scannerEffect.rotation.slight=Slight +scannerEffect.rotation.moderate=Moderate +scannerEffect.rotation.severe=Severe +scannerEffect.submit=Create Scanner Effect -#home.fakeScan -home.fakeScan.title=Fake Scan -home.fakeScan.desc=Create a PDF that looks like it was scanned -fakeScan.tags=scan,simulate,realistic,convert +#home.scannerEffect +home.scannerEffect.title=Scanner Effect +home.scannerEffect.desc=Create a PDF that looks like it was scanned +scannerEffect.tags=scan,simulate,realistic,convert -# FakeScan advanced settings (frontend) -fakeScan.advancedSettings=Enable Advanced Scan Settings -fakeScan.colorspace=Colorspace -fakeScan.colorspace.grayscale=Grayscale -fakeScan.colorspace.color=Color -fakeScan.border=Border (px) -fakeScan.rotate=Base Rotation (degrees) -fakeScan.rotateVariance=Rotation Variance (degrees) -fakeScan.brightness=Brightness -fakeScan.contrast=Contrast -fakeScan.blur=Blur -fakeScan.noise=Noise -fakeScan.yellowish=Yellowish (simulate old paper) -fakeScan.resolution=Resolution (DPI) +# ScannerEffect advanced settings (frontend) +scannerEffect.advancedSettings=Enable Advanced Scan Settings +scannerEffect.colorspace=Colorspace +scannerEffect.colorspace.grayscale=Grayscale +scannerEffect.colorspace.color=Color +scannerEffect.border=Border (px) +scannerEffect.rotate=Base Rotation (degrees) +scannerEffect.rotateVariance=Rotation Variance (degrees) +scannerEffect.brightness=Brightness +scannerEffect.contrast=Contrast +scannerEffect.blur=Blur +scannerEffect.noise=Noise +scannerEffect.yellowish=Yellowish (simulate old paper) +scannerEffect.resolution=Resolution (DPI) # Table of Contents Feature diff --git a/app/core/src/main/resources/templates/fragments/navElements.html b/app/core/src/main/resources/templates/fragments/navElements.html index 38dfa0ac6..19d6536ce 100644 --- a/app/core/src/main/resources/templates/fragments/navElements.html +++ b/app/core/src/main/resources/templates/fragments/navElements.html @@ -270,7 +270,7 @@
-
+
diff --git a/app/core/src/main/resources/templates/home.html b/app/core/src/main/resources/templates/home.html index 4415a0a8f..8770e4323 100644 --- a/app/core/src/main/resources/templates/home.html +++ b/app/core/src/main/resources/templates/home.html @@ -39,7 +39,7 @@ th:insert="~{fragments/navbarEntry :: navbarEntry('add-attachments', 'attachment', 'home.attachments.title', 'home.attachments.desc', 'attachments.tags', 'other')}">
+ th:insert="~{fragments/navbarEntry :: navbarEntry('scanner-effect', 'scanner', 'scannerEffect.title', 'scannerEffect.description', 'scannerEffect.tags', 'advance')}">
diff --git a/app/core/src/main/resources/templates/misc/fake-scan.html b/app/core/src/main/resources/templates/misc/scanner-effect.html similarity index 80% rename from app/core/src/main/resources/templates/misc/fake-scan.html rename to app/core/src/main/resources/templates/misc/scanner-effect.html index dc625084c..4c4b35b5f 100644 --- a/app/core/src/main/resources/templates/misc/fake-scan.html +++ b/app/core/src/main/resources/templates/misc/scanner-effect.html @@ -1,7 +1,7 @@ - + @@ -15,81 +15,81 @@
scanner - +
-
+

- +
- +
- +
- +
diff --git a/scripts/ignore_translation.toml b/scripts/ignore_translation.toml index 3773308d4..0534dd514 100644 --- a/scripts/ignore_translation.toml +++ b/scripts/ignore_translation.toml @@ -207,7 +207,7 @@ ignore = [ 'cookieBanner.popUp.acceptAllBtn', 'endpointStatistics.top10', 'endpointStatistics.top20', - 'fakeScan.quality.medium', + 'scannerEffect.quality.medium', 'fileChooser.dragAndDrop', 'home.pipeline.title', 'lang.afr', From 71394a2f853ac351a25bc0bbe1e4ca29b7ea7f67 Mon Sep 17 00:00:00 2001 From: "stirlingbot[bot]" <195170888+stirlingbot[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:52:27 +0100 Subject: [PATCH 04/22] :globe_with_meridians: Sync Translations + Update README Progress Table (#3962) ### 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> --- app/core/src/main/resources/messages_ru_RU.properties | 3 ++- scripts/ignore_translation.toml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/core/src/main/resources/messages_ru_RU.properties b/app/core/src/main/resources/messages_ru_RU.properties index 302a518f8..819d415cd 100644 --- a/app/core/src/main/resources/messages_ru_RU.properties +++ b/app/core/src/main/resources/messages_ru_RU.properties @@ -1832,7 +1832,7 @@ home.scannerEffect.title=Поддельное сканирование home.scannerEffect.desc=Создайте PDF-файл, который выглядит так, как будто он был отсканирован scannerEffect.tags=scan,simulate,realistic,convert -# scannerEffect advanced settings (frontend) +# ScannerEffect advanced settings (frontend) scannerEffect.advancedSettings=Включите расширенные параметры сканирования scannerEffect.colorspace=Цветовое пространство scannerEffect.colorspace.grayscale=Оттенки серого @@ -1847,6 +1847,7 @@ scannerEffect.noise=Шум scannerEffect.yellowish=Желтоватый оттенок (имитация старой бумаги) scannerEffect.resolution=Разрешение (DPI) + # Table of Contents Feature home.editTableOfContents.title=Редактировать оглавление home.editTableOfContents.desc=Добавление или редактирование закладок и оглавления в PDF-документах diff --git a/scripts/ignore_translation.toml b/scripts/ignore_translation.toml index 0534dd514..fde2da33f 100644 --- a/scripts/ignore_translation.toml +++ b/scripts/ignore_translation.toml @@ -207,7 +207,6 @@ ignore = [ 'cookieBanner.popUp.acceptAllBtn', 'endpointStatistics.top10', 'endpointStatistics.top20', - 'scannerEffect.quality.medium', 'fileChooser.dragAndDrop', 'home.pipeline.title', 'lang.afr', @@ -242,6 +241,7 @@ ignore = [ 'pipelineOptions.pipelineHeader', 'pro', 'redact.zoom', + 'scannerEffect.quality.medium', 'sponsor', 'team.status', 'text', From b510df9951e0e47e3bda3543793f7780954fee48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:53:10 +0100 Subject: [PATCH 05/22] build(deps): bump org.snakeyaml:snakeyaml-engine from 2.9 to 2.10 (#3948) Bumps [org.snakeyaml:snakeyaml-engine](https://bitbucket.org/snakeyaml/snakeyaml-engine) from 2.9 to 2.10.
Commits
  • 61e3f77 Issue 56: improve code
  • ab996bb Issue 56: refactor rename variable
  • 7b316bb Issue 56: refactor rename variable
  • c46d5f7 Issue 56: remove unused merge code in StandardConstructor
  • 553748c Fix issue 55 only for JSON
  • b484094 Clarify when to expect NoSuchElementException
  • e6b30e3 Wrap IOException in UncheckedIOException by default
  • 5d0fa73 Update changes
  • 3e19067 Update changes
  • 4de1481 Merge branch 'master' into issue-55-json
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.snakeyaml:snakeyaml-engine&package-manager=gradle&previous-version=2.9&new-version=2.10)](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) ---
Dependabot commands and options
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 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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- app/common/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/common/build.gradle b/app/common/build.gradle index 2ab8c3b97..3c46a59af 100644 --- a/app/common/build.gradle +++ b/app/common/build.gradle @@ -26,7 +26,7 @@ dependencies { api 'com.vladsch.flexmark:flexmark-html2md-converter:0.64.8' api "org.apache.pdfbox:pdfbox:$pdfboxVersion" api 'jakarta.servlet:jakarta.servlet-api:6.1.0' - api 'org.snakeyaml:snakeyaml-engine:2.9' + api 'org.snakeyaml:snakeyaml-engine:2.10' api "org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9" api 'jakarta.mail:jakarta.mail-api:2.1.3' runtimeOnly 'org.eclipse.angus:angus-mail:2.0.3' From fc9551a3320332bead30b65be210c513483c8706 Mon Sep 17 00:00:00 2001 From: Ludy Date: Wed, 16 Jul 2025 18:17:11 +0200 Subject: [PATCH 06/22] ci: enhance GitHub Actions workflows with Gradle setup, caching improvements, and Docker image testing (#3956) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description of Changes - **What was changed**: - Added a new path filter configuration file at `.github/config/.files.yaml` to centralize filter groups (`build`, `app`, `openapi`, `project`). - Updated `.github/workflows/build.yml` to: - Rename the workflow to “Build and Test Workflow” and add a manual `workflow_dispatch` trigger. - Integrate the path-filter step and conditionally run jobs (`check-generateOpenApiDocs`, `check-licence`, `docker-compose-tests`) based on changed files. - Standardize Gradle setup to version 8.14. - Introduce a new `test-build-docker-images` job that builds Docker images for each `Dockerfile*` in PRs. - Updated `.github/workflows/pre_commit.yml` to cache pre-commit dependencies via `cache-dependency-path: ./.github/scripts/requirements_pre_commit.txt`. - Updated `.github/workflows/testdriver.yml` to add dedicated Gradle (`gradle-version: 8.14`) and Node/npm setup steps with caching. - **Why the change was made**: To optimize CI performance by only running relevant jobs when specific files change, improve maintainability through a single source of truth for path filters, enable manual workflow dispatch, ensure consistent environments (Gradle, Node), and speed up runs with better caching. --- ## 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. --- .github/config/.files.yaml | 36 ++++ .../workflows/PR-Demo-Comment-with-react.yml | 1 + .github/workflows/build.yml | 188 +++++++++++++++--- .github/workflows/licenses-update.yml | 3 +- .github/workflows/multiOSReleases.yml | 3 + .github/workflows/pre_commit.yml | 1 + .github/workflows/push-docker.yml | 1 + .github/workflows/releaseArtifacts.yml | 1 + .github/workflows/swagger.yml | 1 + .github/workflows/testdriver.yml | 11 + lauch4jConfig.xml => launch4jConfig.xml | 0 11 files changed, 213 insertions(+), 33 deletions(-) create mode 100644 .github/config/.files.yaml rename lauch4jConfig.xml => launch4jConfig.xml (100%) diff --git a/.github/config/.files.yaml b/.github/config/.files.yaml new file mode 100644 index 000000000..4e335b350 --- /dev/null +++ b/.github/config/.files.yaml @@ -0,0 +1,36 @@ +build: &build + - build.gradle + - app/core/build.gradle + - app/common/build.gradle + - app/proprietary/build.gradle + +app: &app + - app/core/src/main/java/** + - app/common/src/main/java/** + - app/proprietary/src/main/java/** + +openapi: &openapi + - build.gradle + - app/core/build.gradle + - app/core/src/main/java/** + - app/common/build.gradle + - app/common/src/main/java/** + - app/proprietary/build.gradle + - app/proprietary/src/main/java/** + +project: &project + - app/** + - exampleYmlFiles/** + - gradle/** + - libs/** + - scripts/** + - testing/** + - build.gradle + - Dockerfile + - Dockerfile.fat + - Dockerfile.ultra-lite + - gradle.properties + - gradlew + - gradlew.bat + - launch4jConfig.xml + - settings.gradle \ No newline at end of file diff --git a/.github/workflows/PR-Demo-Comment-with-react.yml b/.github/workflows/PR-Demo-Comment-with-react.yml index 877a78524..6375f73d2 100644 --- a/.github/workflows/PR-Demo-Comment-with-react.yml +++ b/.github/workflows/PR-Demo-Comment-with-react.yml @@ -180,6 +180,7 @@ jobs: with: java-version: "17" distribution: "temurin" + cache: gradle - name: Run Gradle Command run: | diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aa98d2a1e..126c82221 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,8 +1,9 @@ -name: Build repo +name: Build and Test Workflow on: - push: - branches: ["main"] + workflow_dispatch: + # push: + # branches: ["main"] pull_request: branches: ["main"] @@ -37,6 +38,12 @@ jobs: with: java-version: ${{ matrix.jdk-version }} distribution: "temurin" + cache: gradle + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 + with: + gradle-version: 8.14 - name: Build with Gradle and spring security ${{ matrix.spring-security }} run: ./gradlew clean build @@ -88,33 +95,7 @@ jobs: if-no-files-found: warn check-generateOpenApiDocs: - runs-on: ubuntu-latest - steps: - - name: Harden Runner - uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2 - with: - egress-policy: audit - - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Set up JDK 17 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 - with: - java-version: "17" - distribution: "temurin" - - - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 - - - name: Generate OpenAPI documentation - run: ./gradlew :stirling-pdf:generateOpenApiDocs - - - name: Upload OpenAPI Documentation - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: openapi-docs - path: ./SwaggerDoc.json - - check-licence: + needs: build runs-on: ubuntu-latest steps: - name: Harden Runner @@ -125,13 +106,63 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Filter for integration changes + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: files + with: + filters: ".github/config/.files.yaml" + - name: Set up JDK 17 + if: ${{ steps.files.outputs.openapi == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" - distribution: "adopt" + distribution: "temurin" + cache: gradle + + - name: Setup Gradle + if: ${{ steps.files.outputs.openapi == 'true' }} + uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 + + - name: Generate OpenAPI documentation + if: ${{ steps.files.outputs.openapi == 'true' }} + run: ./gradlew :stirling-pdf:generateOpenApiDocs + + - name: Upload OpenAPI Documentation + if: ${{ steps.files.outputs.openapi == 'true' }} + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: openapi-docs + path: ./SwaggerDoc.json + + check-licence: + needs: build + runs-on: ubuntu-latest + steps: + - name: Harden Runner + uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2 + with: + egress-policy: audit + + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Filter for integration changes + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: files + with: + filters: ".github/config/.files.yaml" + + - name: Set up JDK 17 + if: ${{ steps.files.outputs.build == 'true' }} + uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 + with: + java-version: "17" + distribution: "temurin" + cache: gradle - name: check the licenses for compatibility + if: ${{ steps.files.outputs.build == 'true' }} run: ./gradlew clean checkLicense - name: FAILED - check the licenses for compatibility @@ -169,33 +200,126 @@ jobs: - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Filter for integration changes + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: files + with: + filters: ".github/config/.files.yaml" + - name: Set up Java 17 + if: ${{ steps.files.outputs.project == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" - distribution: "adopt" + distribution: "temurin" + cache: gradle - name: Set up Docker Buildx + if: ${{ steps.files.outputs.project == 'true' }} uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - name: Install Docker Compose + if: ${{ steps.files.outputs.project == 'true' }} run: | sudo curl -SL "https://github.com/docker/compose/releases/download/v2.37.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose - name: Set up Python + if: ${{ steps.files.outputs.project == 'true' }} uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: "3.12" cache: 'pip' # caching pip dependencies + cache-dependency-path: ./testing/cucumber/requirements.txt - name: Pip requirements + if: ${{ steps.files.outputs.project == 'true' }} run: | pip install --require-hashes -r ./testing/cucumber/requirements.txt - name: Run Docker Compose Tests + if: ${{ steps.files.outputs.project == 'true' }} run: | chmod +x ./testing/test_webpages.sh chmod +x ./testing/test.sh chmod +x ./testing/test_disabledEndpoints.sh ./testing/test.sh + + test-build-docker-images: + if: github.event_name == 'pull_request' + needs: [build, check-generateOpenApiDocs, check-licence] + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + docker-rev: ["Dockerfile", "Dockerfile.ultra-lite", "Dockerfile.fat"] + steps: + - name: Harden Runner + uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2 + with: + egress-policy: audit + + - name: Checkout Repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Filter for integration changes + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: files + with: + filters: ".github/config/.files.yaml" + + - name: Set up JDK 17 + if: ${{ steps.files.outputs.project == 'true' }} + uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 + with: + java-version: "17" + distribution: "temurin" + cache: gradle + + - name: Set up Gradle + if: ${{ steps.files.outputs.project == 'true' }} + uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 + with: + gradle-version: 8.14 + + - name: Build application + if: ${{ steps.files.outputs.project == 'true' }} + run: ./gradlew clean build + env: + DISABLE_ADDITIONAL_FEATURES: true + STIRLING_PDF_DESKTOP_UI: false + + - name: Set up QEMU + if: ${{ steps.files.outputs.project == 'true' }} + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 + + - name: Set up Docker Buildx + if: ${{ steps.files.outputs.project == 'true' }} + id: buildx + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 + + - name: Build ${{ matrix.docker-rev }} + if: ${{ steps.files.outputs.project == 'true' }} + uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 + with: + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./${{ matrix.docker-rev }} + push: false + cache-from: type=gha + cache-to: type=gha,mode=max + platforms: linux/amd64,linux/arm64/v8 + provenance: true + sbom: true + + - name: Upload Reports + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: reports-docker-${{ matrix.docker-rev }} + path: | + build/reports/tests/ + build/test-results/ + build/reports/problems/ + retention-days: 3 + if-no-files-found: warn diff --git a/.github/workflows/licenses-update.yml b/.github/workflows/licenses-update.yml index ba66627ad..4c6188476 100644 --- a/.github/workflows/licenses-update.yml +++ b/.github/workflows/licenses-update.yml @@ -39,7 +39,8 @@ jobs: uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" - distribution: "adopt" + distribution: "temurin" + cache: gradle - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 diff --git a/.github/workflows/multiOSReleases.yml b/.github/workflows/multiOSReleases.yml index 3cac33e1f..014410193 100644 --- a/.github/workflows/multiOSReleases.yml +++ b/.github/workflows/multiOSReleases.yml @@ -32,6 +32,7 @@ jobs: with: distribution: 'temurin' java-version: '21' + cache: gradle # ✅ Get version from Gradle - name: Get version number @@ -71,6 +72,7 @@ jobs: with: java-version: "21" distribution: "temurin" + cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: @@ -159,6 +161,7 @@ jobs: with: java-version: "21" distribution: "temurin" + cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/pre_commit.yml b/.github/workflows/pre_commit.yml index ebe81c5a8..ba80e9bcd 100644 --- a/.github/workflows/pre_commit.yml +++ b/.github/workflows/pre_commit.yml @@ -37,6 +37,7 @@ jobs: with: python-version: 3.12 cache: 'pip' # caching pip dependencies + cache-dependency-path: ./.github/scripts/requirements_pre_commit.txt - name: Run Pre-Commit Hooks run: | diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index 432925f1a..f31e5c9b7 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -29,6 +29,7 @@ jobs: with: java-version: "17" distribution: "temurin" + cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/releaseArtifacts.yml b/.github/workflows/releaseArtifacts.yml index 701bb678e..3294c7246 100644 --- a/.github/workflows/releaseArtifacts.yml +++ b/.github/workflows/releaseArtifacts.yml @@ -34,6 +34,7 @@ jobs: with: java-version: "17" distribution: "temurin" + cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/swagger.yml b/.github/workflows/swagger.yml index 463736b65..97c4ffa0e 100644 --- a/.github/workflows/swagger.yml +++ b/.github/workflows/swagger.yml @@ -25,6 +25,7 @@ jobs: with: java-version: "17" distribution: "temurin" + cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 diff --git a/.github/workflows/testdriver.yml b/.github/workflows/testdriver.yml index 2f818fbd0..c0e6f589c 100644 --- a/.github/workflows/testdriver.yml +++ b/.github/workflows/testdriver.yml @@ -24,6 +24,12 @@ jobs: with: java-version: '17' distribution: 'temurin' + cache: gradle + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 + with: + gradle-version: 8.14 - name: Build with Gradle run: ./gradlew clean build @@ -111,6 +117,11 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Set up Node + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + cache: 'npm' + - name: Run TestDriver.ai uses: testdriverai/action@f0d0f45fdd684db628baa843fe9313f3ca3a8aa8 #1.1.3 with: diff --git a/lauch4jConfig.xml b/launch4jConfig.xml similarity index 100% rename from lauch4jConfig.xml rename to launch4jConfig.xml From de43038fd957fbb770c06aa6af9c9a5d3d28b5d6 Mon Sep 17 00:00:00 2001 From: "pixeebotstirling[bot]" <221352955+pixeebotstirling[bot]@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:15:39 +0100 Subject: [PATCH 07/22] =?UTF-8?q?=E2=9C=A8=20(Snyk)=20Fixed=20finding:=20"?= =?UTF-8?q?java/PT"=20(#3971)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Pixee Fix ID:** [baa2e86a-2e2f-4c8e-99e0-bc99ce846b94](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/baa2e86a-2e2f-4c8e-99e0-bc99ce846b94)
Confidence: HIGH Fix confidence is a rating derived from an internal benchmark and includes High, Medium, and Low confidence fixes. It comprises three weighted scores reflecting the safety, effectiveness and cleanliness of Pixee's code changes within a fix. [View Details in Pixee.](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/baa2e86a-2e2f-4c8e-99e0-bc99ce846b94)
--- ✨✨✨ ## Remediation This change fixes "java/PT" (id = java/PT) identified by Snyk. ## Details Path Traversal is a security vulnerability that enables attackers to gain unauthorized access to files and directories stored outside the web root folder. To address this, a fix was made by adding java.nio.file.Paths import for path validation, ensuring that paths are properly sanitized and validated. Co-authored-by: pixeebotstirling[bot] <221352955+pixeebotstirling[bot]@users.noreply.github.com> --- .../SPDF/controller/api/misc/PrintFileController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java index 79140c571..e572432df 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/PrintFileController.java @@ -7,6 +7,7 @@ import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import java.io.IOException; +import java.nio.file.Paths; import java.util.Arrays; import javax.imageio.ImageIO; @@ -45,6 +46,10 @@ public class PrintFileController { public ResponseEntity printFile(@ModelAttribute PrintFileRequest request) throws IOException { MultipartFile file = request.getFileInput(); + String originalFilename = file.getOriginalFilename(); + if (originalFilename != null && (originalFilename.contains("..") || Paths.get(originalFilename).isAbsolute())) { + throw new IOException("Invalid file path detected: " + originalFilename); + } String printerName = request.getPrinterName(); String contentType = file.getContentType(); try { From 526071059e640caee654fb7958ac525be864ecb9 Mon Sep 17 00:00:00 2001 From: "pixeebotstirling[bot]" <221352955+pixeebotstirling[bot]@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:16:09 +0100 Subject: [PATCH 08/22] =?UTF-8?q?=E2=9C=A8=20(Snyk)=20Fixed=20finding:=20"?= =?UTF-8?q?java/PT"=20(#3972)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Pixee Fix ID:** [8be62d8f-950d-4780-bc08-a8c04d176806](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/8be62d8f-950d-4780-bc08-a8c04d176806)
Confidence: HIGH Fix confidence is a rating derived from an internal benchmark and includes High, Medium, and Low confidence fixes. It comprises three weighted scores reflecting the safety, effectiveness and cleanliness of Pixee's code changes within a fix. [View Details in Pixee.](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/8be62d8f-950d-4780-bc08-a8c04d176806)
--- ✨✨✨ ## Remediation This change fixes "java/PT" (id = java/PT) identified by Snyk. ## Details Path Traversal vulnerabilities allow attackers to manipulate paths to access files and directories that are outside of the intended scope. The fix involves adding an import for java.io.File to handle file paths more securely. Co-authored-by: pixeebotstirling[bot] <221352955+pixeebotstirling[bot]@users.noreply.github.com> --- .../controller/api/converters/ConvertImgPDFController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java index 2466a0007..82dcc2bc5 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java @@ -1,6 +1,7 @@ package stirling.software.SPDF.controller.api.converters; import java.io.ByteArrayOutputStream; +import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.URLConnection; @@ -87,7 +88,7 @@ public class ConvertImgPDFController { // returns bytes for image boolean singleImage = "single".equals(singleOrMultiple); String filename = - Filenames.toSimpleFileName(file.getOriginalFilename()) + Filenames.toSimpleFileName(new File(file.getOriginalFilename()).getName()) .replaceFirst("[.][^.]+$", ""); result = @@ -231,7 +232,7 @@ public class ConvertImgPDFController { PdfUtils.imageToPdf(file, fitOption, autoRotate, colorType, pdfDocumentFactory); return WebResponseUtils.bytesToWebResponse( bytes, - file[0].getOriginalFilename().replaceFirst("[.][^.]+$", "") + "_converted.pdf"); + new File(file[0].getOriginalFilename()).getName().replaceFirst("[.][^.]+$", "") + "_converted.pdf"); } private String getMediaType(String imageFormat) { From 76d150289e97d8be471a30af6d500fc80bb31cd1 Mon Sep 17 00:00:00 2001 From: "pixeebotstirling[bot]" <221352955+pixeebotstirling[bot]@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:16:50 +0100 Subject: [PATCH 09/22] =?UTF-8?q?=E2=9C=A8=20(Snyk)=20Fixed=20finding:=20"?= =?UTF-8?q?java/Ssrf"=20(#3973)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Pixee Fix ID:** [54568072-e1ef-4428-9da3-46b9197f6dcd](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/54568072-e1ef-4428-9da3-46b9197f6dcd)
Confidence: HIGH Fix confidence is a rating derived from an internal benchmark and includes High, Medium, and Low confidence fixes. It comprises three weighted scores reflecting the safety, effectiveness and cleanliness of Pixee's code changes within a fix. [View Details in Pixee.](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/54568072-e1ef-4428-9da3-46b9197f6dcd)
--- ✨✨✨ ## Remediation This change fixes "java/Ssrf" (id = java/Ssrf) identified by Snyk. ## Details Server-Side Request Forgery (SSRF) can allow attackers to make unauthorized requests from the server, potentially accessing sensitive internal systems. The fix involved adding a validation check to ensure that the 'operation' parameter matches a safe regex pattern, thereby preventing such vulnerabilities. Co-authored-by: pixeebotstirling[bot] <221352955+pixeebotstirling[bot]@users.noreply.github.com> --- .../SPDF/controller/api/pipeline/PipelineProcessor.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java index 5c1fd5f4a..9d919c12a 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java @@ -108,7 +108,9 @@ public class PipelineProcessor { if (inputFileTypes == null) { inputFileTypes = new ArrayList(Arrays.asList("ALL")); } - // List outputFileTypes = apiDocService.getExtensionTypes(true, operation); + if (!operation.matches("^[a-zA-Z0-9_-]+$")) { + throw new IllegalArgumentException("Invalid operation value received."); + } String url = getBaseUrl() + operation; List newOutputFiles = new ArrayList<>(); if (!isMultiInputOperation) { From ed894f021b25df46d48ff91b78e169a8e2199506 Mon Sep 17 00:00:00 2001 From: "pixeebotstirling[bot]" <221352955+pixeebotstirling[bot]@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:17:11 +0100 Subject: [PATCH 10/22] =?UTF-8?q?=E2=9C=A8=20(Snyk)=20Fixed=20finding:=20"?= =?UTF-8?q?java/PT"=20(#3974)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Pixee Fix ID:** [dab7f6f1-da39-4654-a537-2de8eee936db](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/dab7f6f1-da39-4654-a537-2de8eee936db)
Confidence: HIGH Fix confidence is a rating derived from an internal benchmark and includes High, Medium, and Low confidence fixes. It comprises three weighted scores reflecting the safety, effectiveness and cleanliness of Pixee's code changes within a fix. [View Details in Pixee.](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/dab7f6f1-da39-4654-a537-2de8eee936db)
--- ✨✨✨ ## Remediation This change fixes "java/PT" (id = java/PT) identified by Snyk. ## Details Path Traversal is a security vulnerability that allows attackers to access files and directories stored outside the web root folder. The impact can include unauthorized access to sensitive files. The fix involved adding validation checks on filenames to ensure they do not contain suspicious patterns like '..' or '/' which are indicative of path traversal attempts. Co-authored-by: pixeebotstirling[bot] <221352955+pixeebotstirling[bot]@users.noreply.github.com> --- .../SPDF/controller/api/misc/StampController.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java index bdf27c519..a784b0f39 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java @@ -42,6 +42,7 @@ import stirling.software.common.service.CustomPDFDocumentFactory; import stirling.software.common.util.TempFile; import stirling.software.common.util.TempFileManager; import stirling.software.common.util.WebResponseUtils; +import java.lang.IllegalArgumentException; @RestController @RequestMapping("/api/v1/misc") @@ -62,9 +63,18 @@ public class StampController { public ResponseEntity addStamp(@ModelAttribute AddStampRequest request) throws IOException, Exception { MultipartFile pdfFile = request.getFileInput(); + String pdfFileName = pdfFile.getOriginalFilename(); + if (pdfFileName.contains("..") || pdfFileName.startsWith("/")) { + throw new IllegalArgumentException("Invalid PDF file path"); + } + String stampType = request.getStampType(); String stampText = request.getStampText(); MultipartFile stampImage = request.getStampImage(); + String stampImageName = stampImage.getOriginalFilename(); + if (stampImageName.contains("..") || stampImageName.startsWith("/")) { + throw new IllegalArgumentException("Invalid stamp image file path"); + } String alphabet = request.getAlphabet(); float fontSize = request.getFontSize(); float rotation = request.getRotation(); From d15a27540682b9e9718a24aef1f2429c122a9df4 Mon Sep 17 00:00:00 2001 From: "pixeebotstirling[bot]" <221352955+pixeebotstirling[bot]@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:17:55 +0100 Subject: [PATCH 11/22] =?UTF-8?q?=E2=9C=A8=20(Snyk)=20Fixed=20finding:=20"?= =?UTF-8?q?java/PT"=20(#3975)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Pixee Fix ID:** [203062ab-1b9b-42b8-be64-1358106dccab](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/203062ab-1b9b-42b8-be64-1358106dccab)
Confidence: HIGH Fix confidence is a rating derived from an internal benchmark and includes High, Medium, and Low confidence fixes. It comprises three weighted scores reflecting the safety, effectiveness and cleanliness of Pixee's code changes within a fix. [View Details in Pixee.](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/203062ab-1b9b-42b8-be64-1358106dccab)
--- ✨✨✨ ## Remediation This change fixes "java/PT" (id = java/PT) identified by Snyk. ## Details Path Traversal is a security vulnerability that allows attackers to gain unauthorized access to files and directories outside the permitted access path by manipulating file paths. The fix involves adding validation to detect potential directory traversal attempts by normalizing the file path and checking if it begins with '..', thereby preventing malicious manipulation. Co-authored-by: pixeebotstirling[bot] <221352955+pixeebotstirling[bot]@users.noreply.github.com> --- .../SPDF/controller/api/pipeline/PipelineProcessor.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java index 9d919c12a..d79105c26 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java @@ -329,6 +329,10 @@ public class PipelineProcessor { } List outputFiles = new ArrayList<>(); for (File file : files) { + Path normalizedPath = Paths.get(file.getName()).normalize(); + if (normalizedPath.startsWith("..")) { + throw new SecurityException("Potential path traversal attempt in file name: " + file.getName()); + } Path path = Paths.get(file.getAbsolutePath()); // debug statement log.info("Reading file: " + path); From d79d179d80a8b39264f91928a06ff2b6b6b0855a Mon Sep 17 00:00:00 2001 From: "pixeebotstirling[bot]" <221352955+pixeebotstirling[bot]@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:18:27 +0100 Subject: [PATCH 12/22] =?UTF-8?q?=E2=9C=A8=20(Snyk)=20Fixed=20finding:=20"?= =?UTF-8?q?java/PT"=20(#3976)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Pixee Fix ID:** [fb5fe72b-5b22-4654-a733-20930cb4f96a](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/fb5fe72b-5b22-4654-a733-20930cb4f96a)
Confidence: HIGH Fix confidence is a rating derived from an internal benchmark and includes High, Medium, and Low confidence fixes. It comprises three weighted scores reflecting the safety, effectiveness and cleanliness of Pixee's code changes within a fix. [View Details in Pixee.](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/fb5fe72b-5b22-4654-a733-20930cb4f96a)
--- ✨✨✨ ## Remediation This change fixes "java/PT" (id = java/PT) identified by Snyk. ## Details Path traversal is a security vulnerability that occurs when an attacker is able to access directories and files stored outside the intended directory. It bypasses security mechanisms by manipulating variables that reference files with `../` sequences. The fix involved adding validation for `pdfFile` and `watermarkImage` to check for directory traversal sequences, thereby preventing SecurityException occurrences. Co-authored-by: pixeebotstirling[bot] <221352955+pixeebotstirling[bot]@users.noreply.github.com> --- .../controller/api/security/WatermarkController.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java index 47a53a4f9..fd5a9b288 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java @@ -74,9 +74,19 @@ public class WatermarkController { public ResponseEntity addWatermark(@ModelAttribute AddWatermarkRequest request) throws IOException, Exception { MultipartFile pdfFile = request.getFileInput(); + String pdfFileName = pdfFile.getOriginalFilename(); + if (pdfFileName != null && (pdfFileName.contains("..") || pdfFileName.startsWith("/"))) { + throw new SecurityException("Invalid file path in pdfFile"); + } String watermarkType = request.getWatermarkType(); String watermarkText = request.getWatermarkText(); MultipartFile watermarkImage = request.getWatermarkImage(); + if (watermarkImage != null) { + String watermarkImageFileName = watermarkImage.getOriginalFilename(); + if (watermarkImageFileName != null && (watermarkImageFileName.contains("..") || watermarkImageFileName.startsWith("/"))) { + throw new SecurityException("Invalid file path in watermarkImage"); + } + } String alphabet = request.getAlphabet(); float fontSize = request.getFontSize(); float rotation = request.getRotation(); From 64d8ef4a39ae58a87b56e16ae4abd4514cbb4a24 Mon Sep 17 00:00:00 2001 From: ConnorYoh <40631091+ConnorYoh@users.noreply.github.com> Date: Fri, 18 Jul 2025 18:25:50 +0100 Subject: [PATCH 13/22] Update CODEOWNERS (#3981) Co-authored-by: Connor Yoh --- .github/CODEOWNERS | 2 +- .github/config/repo_devs.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 85e115bff..8d4e98e5a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,2 @@ # All PRs to V1 must be approved by Frooodle -* @Frooodle @reecebrowne @Ludy87 @DarioGii @ConnorYoh +* @Frooodle @reecebrowne @Ludy87 @DarioGii @ConnorYoh @EthanHealy01 diff --git a/.github/config/repo_devs.json b/.github/config/repo_devs.json index 6f8b9f90c..86d43fd98 100644 --- a/.github/config/repo_devs.json +++ b/.github/config/repo_devs.json @@ -7,6 +7,7 @@ "sbplat", "reecebrowne", "DarioGii", - "ConnorYoh" + "ConnorYoh", + "EthanHealy01" ] } From d1b9cfd1a4fce9359668cee6ec3dcbb2a7ed04ed Mon Sep 17 00:00:00 2001 From: Ludy Date: Sun, 20 Jul 2025 22:37:04 +0200 Subject: [PATCH 14/22] fix(ci): disable Gradle caching in GitHub workflows to resolve cache conflicts (#3986) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description of Changes - **What was changed** In all affected GitHub Actions workflow files under `.github/workflows/`, the `cache: gradle` setting was replaced with `cache: false # Disable Gradle caching for this job`. - **Why the change was made** Gradle’s cache was causing intermittent build conflicts; disabling it ensures each job starts from a clean state and avoids cache corruption. #3980 --- ## 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. --- .github/config/.files.yaml | 16 +--- .../workflows/PR-Demo-Comment-with-react.yml | 1 - .github/workflows/build.yml | 77 +++++++------------ .github/workflows/licenses-update.yml | 1 - .github/workflows/multiOSReleases.yml | 3 - .github/workflows/push-docker.yml | 1 - .github/workflows/releaseArtifacts.yml | 1 - .github/workflows/swagger.yml | 1 - .github/workflows/testdriver.yml | 1 - 9 files changed, 30 insertions(+), 72 deletions(-) diff --git a/.github/config/.files.yaml b/.github/config/.files.yaml index 4e335b350..5ee241863 100644 --- a/.github/config/.files.yaml +++ b/.github/config/.files.yaml @@ -1,22 +1,14 @@ build: &build - build.gradle - - app/core/build.gradle - - app/common/build.gradle - - app/proprietary/build.gradle + - app/(common|core|proprietary)/build.gradle app: &app - - app/core/src/main/java/** - - app/common/src/main/java/** - - app/proprietary/src/main/java/** + - app/(common|core|proprietary)/src/main/java/** openapi: &openapi - build.gradle - - app/core/build.gradle - - app/core/src/main/java/** - - app/common/build.gradle - - app/common/src/main/java/** - - app/proprietary/build.gradle - - app/proprietary/src/main/java/** + - app/(common|core|proprietary)/build.gradle + - app/(common|core|proprietary)/src/main/java/** project: &project - app/** diff --git a/.github/workflows/PR-Demo-Comment-with-react.yml b/.github/workflows/PR-Demo-Comment-with-react.yml index 6375f73d2..877a78524 100644 --- a/.github/workflows/PR-Demo-Comment-with-react.yml +++ b/.github/workflows/PR-Demo-Comment-with-react.yml @@ -180,7 +180,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - name: Run Gradle Command run: | diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 126c82221..d5b637899 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,6 +11,24 @@ permissions: contents: read jobs: + files-changed: + name: detect what files changed + runs-on: ubuntu-latest + timeout-minutes: 3 + # Map a step output to a job output + outputs: + build: ${{ steps.changes.outputs.build }} + app: ${{ steps.changes.outputs.app }} + project: ${{ steps.changes.outputs.project }} + openapi: ${{ steps.changes.outputs.openapi }} + steps: + - uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # v2 + + - name: Check for file changes + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: changes + with: + filters: ".github/config/.files.yaml" build: runs-on: ubuntu-latest @@ -38,7 +56,6 @@ jobs: with: java-version: ${{ matrix.jdk-version }} distribution: "temurin" - cache: gradle - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 @@ -95,7 +112,8 @@ jobs: if-no-files-found: warn check-generateOpenApiDocs: - needs: build + if: needs.files-changed.outputs.openapi == 'true' + needs: [files-changed, build] runs-on: ubuntu-latest steps: - name: Harden Runner @@ -106,37 +124,27 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Filter for integration changes - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: files - with: - filters: ".github/config/.files.yaml" - - name: Set up JDK 17 - if: ${{ steps.files.outputs.openapi == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" distribution: "temurin" - cache: gradle - name: Setup Gradle - if: ${{ steps.files.outputs.openapi == 'true' }} uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 - name: Generate OpenAPI documentation - if: ${{ steps.files.outputs.openapi == 'true' }} run: ./gradlew :stirling-pdf:generateOpenApiDocs - name: Upload OpenAPI Documentation - if: ${{ steps.files.outputs.openapi == 'true' }} uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: openapi-docs path: ./SwaggerDoc.json check-licence: - needs: build + if: needs.files-changed.outputs.build == 'true' + needs: [files-changed, build] runs-on: ubuntu-latest steps: - name: Harden Runner @@ -147,22 +155,13 @@ jobs: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Filter for integration changes - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: files - with: - filters: ".github/config/.files.yaml" - - name: Set up JDK 17 - if: ${{ steps.files.outputs.build == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" distribution: "temurin" - cache: gradle - name: check the licenses for compatibility - if: ${{ steps.files.outputs.build == 'true' }} run: ./gradlew clean checkLicense - name: FAILED - check the licenses for compatibility @@ -175,6 +174,8 @@ jobs: retention-days: 3 docker-compose-tests: + if: needs.files-changed.outputs.project == 'true' + needs: files-changed # if: github.event_name == 'push' && github.ref == 'refs/heads/main' || # (github.event_name == 'pull_request' && # contains(github.event.pull_request.labels.*.name, 'licenses') == false && @@ -200,32 +201,21 @@ jobs: - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Filter for integration changes - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: files - with: - filters: ".github/config/.files.yaml" - - name: Set up Java 17 - if: ${{ steps.files.outputs.project == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" distribution: "temurin" - cache: gradle - name: Set up Docker Buildx - if: ${{ steps.files.outputs.project == 'true' }} uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - name: Install Docker Compose - if: ${{ steps.files.outputs.project == 'true' }} run: | sudo curl -SL "https://github.com/docker/compose/releases/download/v2.37.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose - name: Set up Python - if: ${{ steps.files.outputs.project == 'true' }} uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: "3.12" @@ -233,12 +223,10 @@ jobs: cache-dependency-path: ./testing/cucumber/requirements.txt - name: Pip requirements - if: ${{ steps.files.outputs.project == 'true' }} run: | pip install --require-hashes -r ./testing/cucumber/requirements.txt - name: Run Docker Compose Tests - if: ${{ steps.files.outputs.project == 'true' }} run: | chmod +x ./testing/test_webpages.sh chmod +x ./testing/test.sh @@ -246,8 +234,8 @@ jobs: ./testing/test.sh test-build-docker-images: - if: github.event_name == 'pull_request' - needs: [build, check-generateOpenApiDocs, check-licence] + if: github.event_name == 'pull_request' && needs.files-changed.outputs.project == 'true' + needs: [files-changed, build, check-generateOpenApiDocs, check-licence] runs-on: ubuntu-latest strategy: fail-fast: false @@ -262,44 +250,31 @@ jobs: - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Filter for integration changes - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: files - with: - filters: ".github/config/.files.yaml" - - name: Set up JDK 17 - if: ${{ steps.files.outputs.project == 'true' }} uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 with: java-version: "17" distribution: "temurin" - cache: gradle - name: Set up Gradle - if: ${{ steps.files.outputs.project == 'true' }} uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: gradle-version: 8.14 - name: Build application - if: ${{ steps.files.outputs.project == 'true' }} run: ./gradlew clean build env: DISABLE_ADDITIONAL_FEATURES: true STIRLING_PDF_DESKTOP_UI: false - name: Set up QEMU - if: ${{ steps.files.outputs.project == 'true' }} uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 - name: Set up Docker Buildx - if: ${{ steps.files.outputs.project == 'true' }} id: buildx uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - name: Build ${{ matrix.docker-rev }} - if: ${{ steps.files.outputs.project == 'true' }} uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 with: builder: ${{ steps.buildx.outputs.name }} diff --git a/.github/workflows/licenses-update.yml b/.github/workflows/licenses-update.yml index 4c6188476..23c15816f 100644 --- a/.github/workflows/licenses-update.yml +++ b/.github/workflows/licenses-update.yml @@ -40,7 +40,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 diff --git a/.github/workflows/multiOSReleases.yml b/.github/workflows/multiOSReleases.yml index 014410193..3cac33e1f 100644 --- a/.github/workflows/multiOSReleases.yml +++ b/.github/workflows/multiOSReleases.yml @@ -32,7 +32,6 @@ jobs: with: distribution: 'temurin' java-version: '21' - cache: gradle # ✅ Get version from Gradle - name: Get version number @@ -72,7 +71,6 @@ jobs: with: java-version: "21" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: @@ -161,7 +159,6 @@ jobs: with: java-version: "21" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index f31e5c9b7..432925f1a 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -29,7 +29,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/releaseArtifacts.yml b/.github/workflows/releaseArtifacts.yml index 3294c7246..701bb678e 100644 --- a/.github/workflows/releaseArtifacts.yml +++ b/.github/workflows/releaseArtifacts.yml @@ -34,7 +34,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 with: diff --git a/.github/workflows/swagger.yml b/.github/workflows/swagger.yml index 97c4ffa0e..463736b65 100644 --- a/.github/workflows/swagger.yml +++ b/.github/workflows/swagger.yml @@ -25,7 +25,6 @@ jobs: with: java-version: "17" distribution: "temurin" - cache: gradle - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 diff --git a/.github/workflows/testdriver.yml b/.github/workflows/testdriver.yml index c0e6f589c..85c93a244 100644 --- a/.github/workflows/testdriver.yml +++ b/.github/workflows/testdriver.yml @@ -24,7 +24,6 @@ jobs: with: java-version: '17' distribution: 'temurin' - cache: gradle - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 From be7780d7f812cbc73be4d5aae1abb875936302e7 Mon Sep 17 00:00:00 2001 From: Angel <41905618+TheShadowAngel@users.noreply.github.com> Date: Mon, 21 Jul 2025 03:41:27 +0700 Subject: [PATCH 15/22] Update messages_ru_RU.properties (#3967) Updated Russian translation Co-authored-by: Ludy --- .../main/resources/messages_ru_RU.properties | 346 +++++++++--------- 1 file changed, 173 insertions(+), 173 deletions(-) diff --git a/app/core/src/main/resources/messages_ru_RU.properties b/app/core/src/main/resources/messages_ru_RU.properties index 819d415cd..8663ec404 100644 --- a/app/core/src/main/resources/messages_ru_RU.properties +++ b/app/core/src/main/resources/messages_ru_RU.properties @@ -221,7 +221,7 @@ error.fileNotFound=Файл с идентификатором: {0} не найд # Database and configuration messages error.noBackupScripts=Сценарий резервного копирования не найден error.unsupportedProvider={0} в настоящее время не поддерживается. -error.pathTraversalDetected=Path traversal detected for security reasons. +error.pathTraversalDetected=Обнаружено пересечение пути по соображениям безопасности. # Validation messages error.invalidArgument=Недопустимый аргумент: {0} @@ -439,8 +439,8 @@ adminUserSettings.activeUsers=Активные пользователи: adminUserSettings.disabledUsers=Отключенные пользователи: adminUserSettings.totalUsers=Всего пользователей: adminUserSettings.lastRequest=Последний запрос -adminUserSettings.usage=View Usage -adminUserSettings.teams=View/Edit Teams +adminUserSettings.usage=Просмотр использования +adminUserSettings.teams=Просмотр/редактирование групп adminUserSettings.team=Группа adminUserSettings.manageTeams=Управление группами adminUserSettings.createTeam=Создать группу @@ -454,34 +454,34 @@ adminUserSettings.teamHidden=Скрытая adminUserSettings.totalMembers=Общее количество участников adminUserSettings.confirmDeleteTeam=Вы уверены, что хотите удалить эту группу? -teamCreated=Team created successfully -teamExists=A team with that name already exists -teamNameExists=Another team with that name already exists -teamNotFound=Team not found -teamDeleted=Team deleted -teamHasUsers=Cannot delete a team with users assigned -teamRenamed=Team renamed successfully +teamCreated=Группа успешно создана +teamExists=Группа с таким названием уже существует +teamNameExists=Другая группа с таким названием уже существует +teamNotFound=Группа не найдена +teamDeleted=Группа удалена +teamHasUsers=Не удается удалить группу с назначенными пользователями +teamRenamed=Команда успешно переименована # Team user management -team.addUser=Add User to Team -team.selectUser=Select User -team.warning.moveUser=Warning: This will move the user from "{0}" team to "{1}" team. Are you sure? -team.confirm.moveUser=Are you sure you want to move this user from "{0}" team to "{1}" team? -team.userAdded=User successfully added to team -team.back=Back to Teams -team.internal=Internal Team -team.internalTeamNotAccessible=The Internal team is a system team and cannot be accessed -team.cannotMoveInternalUsers=Users in the Internal team cannot be moved to other teams -team.hidden=Hidden -team.name=Team Name -team.totalMembers=Total Members -team.members=Members -team.username=Username -team.role=Role -team.status=Status -team.enabled=Enabled -team.disabled=Disabled -team.noMembers=This team has no members yet. +team.addUser=Добавить пользователя в группу +team.selectUser=Выбрать пользователя +team.warning.moveUser=Внимание: Это приведет к перемещению пользователя из группы "{0}" в группу "{1}". Вы уверены? +team.confirm.moveUser=Вы уверены, что хотите перевести этого пользователя из группы "{0}" в группу "{1}"? +team.userAdded=Пользователь успешно добавлен в группу +team.back=Назад в группы +team.internal=Внутренняя группа +team.internalTeamNotAccessible=Внутренняя группа - это системная группа, и доступ к ней невозможен +team.cannotMoveInternalUsers=Пользователи из внутренней группы не могут быть переведены в другие группы +team.hidden=Скрытая +team.name=Имя группы +team.totalMembers=Общее количество участников +team.members=Участники +team.username=Имя пользователя +team.role=Роль +team.status=Статус +team.enabled=Включен +team.disabled=Отключен +team.noMembers=В этой команде пока нет участников. @@ -565,16 +565,16 @@ split.tags=операции со страницами,разделение,мн home.rotate.title=Повернуть home.rotate.desc=Легко поворачивайте ваши PDF-файлы. -rotate.tags=серверная часть +rotate.tags=повернуть,наклонить home.imageToPdf.title=Изображение в PDF home.imageToPdf.desc=Преобразование изображения (PNG, JPEG, GIF) в PDF. -imageToPdf.tags=конвертация,изображение,jpg,картинка,фото +imageToPdf.tags=png,jpeg,gif,конвертация,изображение,картинка,фото home.pdfToImage.title=PDF в изображение home.pdfToImage.desc=Преобразование PDF в изображение (PNG, JPEG, GIF). -pdfToImage.tags=конвертация,изображение,jpg,картинка,фото +pdfToImage.tags=png,jpeg,gif,конвертация,изображение,картинка,фото home.pdfOrganiser.title=Организация home.pdfOrganiser.desc=Удаление/переупорядочивание страниц в любом порядке @@ -587,7 +587,7 @@ addImage.tags=изображение,jpg,картинка,фото home.attachments.title=Добавлять вложения home.attachments.desc=Добавление или удаление встроенных файлов (вложений) в PDF-файл или из него -attachments.tags=embed,attach,file,attachment,attachments +attachments.tags=вставлять,прикреплять,файл,вложение,вложения home.watermark.title=Добавить водяной знак home.watermark.desc=Добавьте собственный водяной знак в ваш PDF-документ. @@ -615,8 +615,8 @@ home.compressPdfs.desc=Сжимайте PDF-файлы для уменьшени compressPdfs.tags=сжатие,маленький,крошечный home.unlockPDFForms.title=Разблокировать PDF-формы -home.unlockPDFForms.desc=Удалите свойство "только для чтения" для полей формы в PDF-документа. -unlockPDFForms.tags=remove,delete,form,field,readonly +home.unlockPDFForms.desc=Удалите свойство 'только для чтения' для полей формы в PDF-документа. +unlockPDFForms.tags=удалить,форма,поле,только для чтения home.changeMetadata.title=Изменить метаданные home.changeMetadata.desc=Изменить/удалить/добавить метаданные из PDF-документа @@ -644,15 +644,15 @@ PDFToWord.tags=doc,docx,odt,word,преобразование,формат,ко home.PDFToPresentation.title=PDF в презентацию home.PDFToPresentation.desc=Преобразование PDF в форматы презентаций (PPT, PPTX и ODP) -PDFToPresentation.tags=слайды,показ,офис,microsoft +PDFToPresentation.tags=слайды,презентация,офис,microsoft home.PDFToText.title=PDF в RTF (текст) home.PDFToText.desc=Преобразование PDF в текстовый или RTF формат -PDFToText.tags=richformat,richtextformat,rich text format +PDFToText.tags=rtf,richformat,richtextformat,rich text format home.PDFToHTML.title=PDF в HTML home.PDFToHTML.desc=Преобразование PDF в формат HTML -PDFToHTML.tags=веб-контент,браузерный формат +PDFToHTML.tags=html,веб-контент,браузерный формат home.PDFToXML.title=PDF в XML @@ -733,16 +733,16 @@ sanitizePdf.tags=очистка,безопасность,защита,удале home.URLToPDF.title=URL/веб-сайт в PDF home.URLToPDF.desc=Преобразует любой http(s)URL в PDF -URLToPDF.tags=веб-захват,сохранение страницы,веб в док,архивация +URLToPDF.tags=url,веб-захват,сохранение страницы,веб в док,архивация home.HTMLToPDF.title=HTML в PDF home.HTMLToPDF.desc=Преобразует любой HTML-файл или zip в PDF -HTMLToPDF.tags=разметка,веб-контент,преобразование,конвертация +HTMLToPDF.tags=html,разметка,веб-контент,преобразование,конвертация #eml-to-pdf home.EMLToPDF.title=Email в PDF home.EMLToPDF.desc=Преобразует файлы электронной почты (EML) в формат PDF, включая заголовки, основную часть и встроенные изображения -EMLToPDF.tags=email,conversion,eml,message,transformation,convert,mail +EMLToPDF.tags=eml,email,сообщение,преобразование,конвертация,почта,письмо EMLToPDF.title=Email в PDF EMLToPDF.header=Email в PDF @@ -752,17 +752,17 @@ EMLToPDF.downloadHtmlHelp=Это позволит вам просмотреть EMLToPDF.includeAttachments=Включать вложения в формате PDF EMLToPDF.maxAttachmentSize=Максимальный размер вложения (MB) EMLToPDF.help=Преобразует файлы электронной почты (EML) в формат PDF, включая заголовки, основную часть и встроенные изображения -EMLToPDF.troubleshootingTip1=Электронная почта в формате HTML является более надежным процессом, поэтому при пакетной обработке рекомендуется сохранять оба +EMLToPDF.troubleshootingTip1=Электронная почта в формате HTML является более надежным процессом, поэтому при пакетной обработке рекомендуется сохранять оба формата EMLToPDF.troubleshootingTip2=При небольшом количестве электронных писем, если формат PDF искажен, вы можете загрузить HTML и переопределить часть проблемного HTML/CSS-кода. -EMLToPDF.troubleshootingTip3=Embeddings, however, do not work with HTMLs +EMLToPDF.troubleshootingTip3=Однако, встраивания не работают с HTMLs home.MarkdownToPDF.title=Markdown в PDF home.MarkdownToPDF.desc=Преобразует любой файл Markdown в PDF -MarkdownToPDF.tags=разметка,веб-контент,преобразование,конвертация +MarkdownToPDF.tags=разметка,веб-контент,преобразование,конвертация,md home.PDFToMarkdown.title=PDF to Markdown home.PDFToMarkdown.desc=Преобразует любой PDF-файл в формат Markdown -PDFToMarkdown.tags=markup,web-content,transformation,convert,md +PDFToMarkdown.tags=разметка,веб-контент,преобразование,конвертацтя,md home.getPdfInfo.title=Получить ВСЮ информацию о PDF home.getPdfInfo.desc=Собирает всю возможную информацию о PDF @@ -781,11 +781,11 @@ PdfToSinglePage.tags=одна страница home.showJS.title=Показать Javascript home.showJS.desc=Ищет и отображает любой JS, внедрённый в PDF -showJS.tags=JS +showJS.tags=JS,Javascript home.autoRedact.title=Автоматическое редактирование home.autoRedact.desc=Автоматически закрашивает (чернит) текст в PDF на основе входного текста -autoRedact.tags=Редактирование,Скрытие,зачернение,чёрный,маркер,скрытый +autoRedact.tags=Редактирование,Скрытие,зачернение,чёрный,маркер,скрытый,автоматический home.redact.title=Ручное редактирование home.redact.desc=Редактирует PDF на основе выбранного текста, нарисованных форм и/или выбранных страниц @@ -798,7 +798,7 @@ tableExtraxt.tags=CSV,Извлечение таблиц,извлечение,к home.autoSizeSplitPDF.title=Авторазделение по размеру/количеству home.autoSizeSplitPDF.desc=Разделяет один PDF на несколько документов на основе размера, количества страниц или количества документов -autoSizeSplitPDF.tags=pdf,разделение,документ,организация +autoSizeSplitPDF.tags=разделение,документ,организация home.overlay-pdfs.title=Наложение PDF @@ -807,25 +807,25 @@ overlay-pdfs.tags=Наложение home.split-by-sections.title=Разделить PDF по секциям home.split-by-sections.desc=Разделяет каждую страницу PDF на меньшие горизонтальные и вертикальные секции -split-by-sections.tags=Разделение по секциям,Разделить,Настроить +split-by-sections.tags=Разделение по секциям,Разделить home.AddStampRequest.title=Добавить штамп в PDF home.AddStampRequest.desc=Добавляет текстовые или графические штампы в указанных местах -AddStampRequest.tags=Штамп,Добавить изображение,центрировать изображение,Водяной знак,PDF,Встраивание,Настройка +AddStampRequest.tags=Штамп,Добавить изображение,центрировать изображение,Водяной знак,Встраивание home.removeImagePdf.title=Удалить изображение home.removeImagePdf.desc=Удаляет изображения из PDF для уменьшения размера файла -removeImagePdf.tags=Удаление изображения,операции со страницами,Серверная часть +removeImagePdf.tags=Удаление изображения,операции со страницами home.splitPdfByChapters.title=Разделить PDF по главам home.splitPdfByChapters.desc=Разделяет PDF на несколько файлов на основе структуры его глав -splitPdfByChapters.tags=разделение,главы,закладки,организация +splitPdfByChapters.tags=разделение,главы,закладки,оглавление home.validateSignature.title=Проверка подписи PDF home.validateSignature.desc=Проверка цифровых подписей и сертификатов в PDF-документах -validateSignature.tags=подпись,проверка,валидация,pdf,сертификат,цифровая подпись,Проверка подписи,Проверка сертификата +validateSignature.tags=подпись,проверка,валидация,сертификат,цифровая подпись,проверка подписи,проверка сертификата #replace-invert-color replace-color.title=Замена-Инверсия цвета @@ -941,7 +941,7 @@ getPdfInfo.title=Получить информацию о PDF getPdfInfo.header=Получить информацию о PDF getPdfInfo.submit=Получить информацию getPdfInfo.downloadJson=Скачать JSON -getPdfInfo.summary=PDF Summary +getPdfInfo.summary=Краткое содержание PDF-файла getPdfInfo.summary.encrypted=Этот PDF-файл зашифрован, поэтому с некоторыми приложениями могут возникнуть проблемы getPdfInfo.summary.permissions=Этот PDF-файл имеет {0} ограниченные права доступа, которые могут ограничить то, что вы можете с ним делать getPdfInfo.summary.compliance=Этот PDF-файл соответствует стандарту {0} @@ -951,18 +951,18 @@ getPdfInfo.summary.encrypted.alert=Зашифрованный PDF-файл - э getPdfInfo.summary.not.encrypted.alert=Незашифрованный PDF-файл - без защиты паролем getPdfInfo.summary.permissions.alert=Права доступа ограничены - {0} действия запрещены getPdfInfo.summary.all.permissions.alert=Полные права доступа -getPdfInfo.summary.compliance.alert={0} Compliant -getPdfInfo.summary.no.compliance.alert=No Compliance Standards -getPdfInfo.summary.security.section=Security Status -getPdfInfo.section.BasicInfo=Basic Information about the PDF document including file size, page count, and language -getPdfInfo.section.Metadata=Document metadata including title, author, creation date and other document properties -getPdfInfo.section.DocumentInfo=Technical details about the PDF document structure and version -getPdfInfo.section.Compliancy=PDF standards compliance information (PDF/A, PDF/X, etc.) -getPdfInfo.section.Encryption=Security and encryption details of the document -getPdfInfo.section.Permissions=Document permission settings that control what actions can be performed -getPdfInfo.section.Other=Additional document components like bookmarks, layers, and embedded files -getPdfInfo.section.FormFields=Interactive form fields present in the document -getPdfInfo.section.PerPageInfo=Detailed information about each page in the document +getPdfInfo.summary.compliance.alert={0} Совместимый +getPdfInfo.summary.no.compliance.alert=Не содержит стандартов соответствия +getPdfInfo.summary.security.section=Уровень безопасности +getPdfInfo.section.BasicInfo=Основная информация о документе PDF включает: размер файла, количество страниц и язык +getPdfInfo.section.Metadata=Метаданные документа содержат: название, автора, дату создания и другие свойства документа +getPdfInfo.section.DocumentInfo=Технические подробности о структуре и версии PDF-документа +getPdfInfo.section.Compliancy=Информация о соответствии стандартам PDF (PDF/A, PDF/X, и т.д.) +getPdfInfo.section.Encryption=Сведения о безопасности и шифровании документа +getPdfInfo.section.Permissions=Настройки разрешений документа, контролирующие, какие действия можно выполнять +getPdfInfo.section.Other=Дополнительные компоненты документа, такие как закладки, слои и встроенные файлы +getPdfInfo.section.FormFields=Поля интерактивной формы, присутствующие в документе +getPdfInfo.section.PerPageInfo=Подробная информация о каждой странице документа #markdown-to-pdf @@ -970,7 +970,7 @@ MarkdownToPDF.title=Markdown в PDF MarkdownToPDF.header=Markdown в PDF MarkdownToPDF.submit=Преобразовать MarkdownToPDF.help=В разработке -MarkdownToPDF.credit=Использует WeasyPrint +MarkdownToPDF.credit=Этот сервис использует WeasyPrint для преобразования файлов #pdf-to-markdown @@ -983,7 +983,7 @@ PDFToMarkdown.submit=Преобразовать URLToPDF.title=URL в PDF URLToPDF.header=URL в PDF URLToPDF.submit=Преобразовать -URLToPDF.credit=Использует WeasyPrint +URLToPDF.credit=Этот сервис использует WeasyPrint для преобразования файлов #html-to-pdf @@ -991,7 +991,7 @@ HTMLToPDF.title=HTML в PDF HTMLToPDF.header=HTML в PDF HTMLToPDF.help=Принимает HTML-файлы и ZIP-архивы, содержащие html/css/изображения и т.д. HTMLToPDF.submit=Преобразовать -HTMLToPDF.credit=Использует WeasyPrint +HTMLToPDF.credit=Этот сервис использует WeasyPrint для преобразования файлов HTMLToPDF.zoom=Уровень масштабирования для отображения веб-сайта. HTMLToPDF.pageWidth=Ширина страницы в сантиметрах. (Пусто для значения по умолчанию) HTMLToPDF.pageHeight=Высота страницы в сантиметрах. (Пусто для значения по умолчанию) @@ -1047,7 +1047,7 @@ addPageNumbers.selectText.4=Начальный номер addPageNumbers.selectText.5=Страницы для нумерации addPageNumbers.selectText.6=Пользовательский текст addPageNumbers.customTextDesc=Пользовательский текст -addPageNumbers.numberPagesDesc=Какие страницы нумеровать, по умолчанию 'все', также принимает 1-5 или 2,5,9 и т.д. +addPageNumbers.numberPagesDesc=Какие страницы нумеровать, по умолчанию 'все', также принимаются значения 1-5 или 2,5,9 и т.д. addPageNumbers.customNumberDesc=По умолчанию {n}, также принимает 'Страница {n} из {total}', 'Текст-{n}', '{filename}-{n}' addPageNumbers.submit=Добавить номера страниц @@ -1083,7 +1083,7 @@ autoSplitPDF.selectText.3=Загрузите один большой отска autoSplitPDF.selectText.4=Разделительные страницы автоматически обнаруживаются и удаляются, гарантируя аккуратный конечный документ. autoSplitPDF.formPrompt=Отправить PDF, содержащий разделители страниц Stirling-PDF: autoSplitPDF.duplexMode=Двусторонний режим (сканирование с двух сторон) -autoSplitPDF.dividerDownload2=Скачать 'Автоматический разделитель (с инструкциями).pdf' +autoSplitPDF.dividerDownload2=Скачать 'Auto Splitter Divider (with instructions).pdf' autoSplitPDF.submit=Отправить @@ -1253,7 +1253,7 @@ fileToPDF.submit=Преобразовать в PDF compress.title=Сжать compress.header=Сжать PDF compress.credit=Этот сервис использует qpdf для сжатия/оптимизации PDF. -compress.grayscale.label=Применить шкалу серого для сжатия +compress.grayscale.label=Примените оттенки серого для сжатия compress.selectText.1=Параметры сжатия compress.selectText.1.1=1-3 сжатие PDF,
4-6 лёгкое сжатие изображений,
7-9 интенсивное сжатие изображений (значительно снижает качество изображений) compress.selectText.2=Уровень оптимизации: @@ -1265,7 +1265,7 @@ compress.submit=Сжать #Add image addImage.title=Добавить изображение addImage.header=Добавить изображение в PDF -addImage.everyPage=Каждая страница? +addImage.everyPage=На каждую страницу? addImage.upload=Добавить изображение addImage.submit=Добавить изображение @@ -1341,7 +1341,7 @@ decrypt.serverError=Ошибка сервера при расшифровке: { decrypt.success=Файл успешно расшифрован. #multiTool-advert -multiTool-advert.message=Эта функция также доступна на нашей странице мультиинструмента. Попробуйте её для улучшенного постраничного интерфейса и дополнительных возможностей! +multiTool-advert.message=Эта функция также доступна на нашей странице мультиинструментов. Ознакомьтесь с расширенным постраничным интерфейсом и дополнительными функциями! #view pdf viewPdf.title=Смотреть/Редактировать PDF @@ -1486,7 +1486,7 @@ changeMetadata.keywords=Ключевые слова: changeMetadata.modDate=Дата изменения (yyyy/MM/dd HH:mm:ss): changeMetadata.producer=Производитель: changeMetadata.subject=Тема: -changeMetadata.trapped=Trapped: +changeMetadata.trapped=Захвачен: changeMetadata.selectText.4=Другие метаданные: changeMetadata.selectText.5=Добавить пользовательскую запись метаданных changeMetadata.submit=Изменить @@ -1614,15 +1614,15 @@ survey.please=Пожалуйста, примите участие в нашем survey.disabled=(Всплывающее окно опроса будет отключено в следующих обновлениях, но будет доступно в нижней части страницы) survey.button=Пройти опрос survey.dontShowAgain=Больше не показывать -survey.meeting.1=If you're using Stirling PDF at work, we'd love to speak to you. We're offering technical support sessions in exchange for a 15 minute user discovery session. -survey.meeting.2=This is a chance to: -survey.meeting.3=Get help with deployment, integrations, or troubleshooting -survey.meeting.4=Provide direct feedback on performance, edge cases, and feature gaps -survey.meeting.5=Help us refine Stirling PDF for real-world enterprise use -survey.meeting.6=If you're interested, you can book time with our team directly. (English speaking only) -survey.meeting.7=Looking forward to digging into your use cases and making Stirling PDF even better! -survey.meeting.notInterested=Not a business and/or interested in a meeting? -survey.meeting.button=Book meeting +survey.meeting.1=Если вы используете Stirling PDF в своей работе, мы будем рады с вами пообщаться. Мы предлагаем сеансы технической поддержки в обмен на 15-минутный сеанс знакомства с пользователями. +survey.meeting.2=Это возможность: +survey.meeting.3=Получить помощь в развертывании, интеграции или устранении неполадок +survey.meeting.4=Предоставляйте прямые отзывы о производительности, передовых решениях и недостатках в функциях +survey.meeting.5=Помогите нам усовершенствовать Stirling PDF для использования в реальных корпоративных условиях +survey.meeting.6=Если вы заинтересованы, вы можете забронировать время у нашей команды напрямую. (Только для говорящих по-английски) +survey.meeting.7=С нетерпением ждем возможности изучить ваши варианты использования и сделать Stirling PDF еще лучше! +survey.meeting.notInterested=Не занимаетесь бизнесом и/или не заинтересованы во встрече? +survey.meeting.button=Забронировать встречу #error error.sorry=Извините за неполадки! @@ -1664,7 +1664,7 @@ fileChooser.dragAndDropPDF=Перетащите PDF-файл fileChooser.dragAndDropImage=Перетащите файл изображения fileChooser.hoveredDragAndDrop=Перетащите файл(ы) сюда fileChooser.extractPDF=Извлечение... -fileChooser.addAttachments=drag & drop attachments here +fileChooser.addAttachments=Перетащите вложения сюда #release notes releases.footer=Релизы @@ -1709,20 +1709,20 @@ validateSignature.cert.selfSigned=Самоподписанный validateSignature.cert.bits=бит # Audit Dashboard -audit.dashboard.title=Audit Dashboard -audit.dashboard.systemStatus=Audit System Status -audit.dashboard.status=Status -audit.dashboard.enabled=Enabled -audit.dashboard.disabled=Disabled -audit.dashboard.currentLevel=Current Level -audit.dashboard.retentionPeriod=Retention Period -audit.dashboard.days=days -audit.dashboard.totalEvents=Total Events +audit.dashboard.title=Панель аудита +audit.dashboard.systemStatus=Состояние системы аудита +audit.dashboard.status=Состояние +audit.dashboard.enabled=Включено +audit.dashboard.disabled=Выключено +audit.dashboard.currentLevel=Текущий уровень +audit.dashboard.retentionPeriod=Срок хранения +audit.dashboard.days=дней +audit.dashboard.totalEvents=Общее количество событий # Audit Dashboard Tabs -audit.dashboard.tab.dashboard=Dashboard -audit.dashboard.tab.events=Audit Events -audit.dashboard.tab.export=Export +audit.dashboard.tab.dashboard=Панель инструментов +audit.dashboard.tab.events=Аудит событий +audit.dashboard.tab.export=Экспорт # Dashboard Charts audit.dashboard.eventsByType=События по типу audit.dashboard.eventsByUser=События по пользователю @@ -1732,88 +1732,88 @@ audit.dashboard.period.30days=30 дней audit.dashboard.period.90days=90 дней # Events Tab -audit.dashboard.auditEvents=Audit Events -audit.dashboard.filter.eventType=Event Type -audit.dashboard.filter.allEventTypes=All event types -audit.dashboard.filter.user=User -audit.dashboard.filter.userPlaceholder=Filter by user -audit.dashboard.filter.startDate=Start Date -audit.dashboard.filter.endDate=End Date -audit.dashboard.filter.apply=Apply Filters -audit.dashboard.filter.reset=Reset Filters +audit.dashboard.auditEvents=Аудит событий +audit.dashboard.filter.eventType=Тип события +audit.dashboard.filter.allEventTypes=Все типы событий +audit.dashboard.filter.user=Пользователь +audit.dashboard.filter.userPlaceholder=Фильтровать по пользователю +audit.dashboard.filter.startDate=Дата начала +audit.dashboard.filter.endDate=Дата окончания +audit.dashboard.filter.apply=Применить фильтры +audit.dashboard.filter.reset=Сбросить фильтры # Table Headers audit.dashboard.table.id=ID -audit.dashboard.table.time=Time -audit.dashboard.table.user=User -audit.dashboard.table.type=Type -audit.dashboard.table.details=Details -audit.dashboard.table.viewDetails=View Details +audit.dashboard.table.time=Время +audit.dashboard.table.user=Пользователь +audit.dashboard.table.type=Тип +audit.dashboard.table.details=Подробности +audit.dashboard.table.viewDetails=Просмотр подробной информации # Pagination -audit.dashboard.pagination.show=Show -audit.dashboard.pagination.entries=entries -audit.dashboard.pagination.pageInfo1=Page -audit.dashboard.pagination.pageInfo2=of -audit.dashboard.pagination.totalRecords=Total records: +audit.dashboard.pagination.show=Показать +audit.dashboard.pagination.entries=записи +audit.dashboard.pagination.pageInfo1=Страница +audit.dashboard.pagination.pageInfo2=из +audit.dashboard.pagination.totalRecords=Всего записей: # Modal -audit.dashboard.modal.eventDetails=Event Details +audit.dashboard.modal.eventDetails=Подробности события audit.dashboard.modal.id=ID -audit.dashboard.modal.user=User -audit.dashboard.modal.type=Type -audit.dashboard.modal.time=Time -audit.dashboard.modal.data=Data +audit.dashboard.modal.user=Пользователь +audit.dashboard.modal.type=Тип +audit.dashboard.modal.time=Время +audit.dashboard.modal.data=Дата # Export Tab -audit.dashboard.export.title=Export Audit Data -audit.dashboard.export.format=Export Format +audit.dashboard.export.title=Экспорт данных аудита +audit.dashboard.export.format=Формат экспорта audit.dashboard.export.csv=CSV (Comma Separated Values) audit.dashboard.export.json=JSON (JavaScript Object Notation) -audit.dashboard.export.button=Export Data -audit.dashboard.export.infoTitle=Export Information -audit.dashboard.export.infoDesc1=The export will include all audit events matching the selected filters. For large datasets, the export may take a few moments to generate. -audit.dashboard.export.infoDesc2=Exported data will include: -audit.dashboard.export.infoItem1=Event ID -audit.dashboard.export.infoItem2=User -audit.dashboard.export.infoItem3=Event Type -audit.dashboard.export.infoItem4=Timestamp -audit.dashboard.export.infoItem5=Event Data +audit.dashboard.export.button=Экспортировать данные +audit.dashboard.export.infoTitle=Экспорт информации +audit.dashboard.export.infoDesc1=Экспорт будет включать в себя все события аудита, соответствующие выбранным фильтрам. Для создания больших массивов данных экспорт может занять несколько минут. +audit.dashboard.export.infoDesc2=Экспортируемые данные будут включать: +audit.dashboard.export.infoItem1=Идентификатор события +audit.dashboard.export.infoItem2=Пользователь +audit.dashboard.export.infoItem3=Тип события +audit.dashboard.export.infoItem4=Время события +audit.dashboard.export.infoItem5=Данные события # JavaScript i18n keys -audit.dashboard.js.noEventsFound=No audit events found matching the current filters -audit.dashboard.js.errorLoading=Error loading data: -audit.dashboard.js.errorRendering=Error rendering table: -audit.dashboard.js.loadingPage=Loading page +audit.dashboard.js.noEventsFound=События аудита, соответствующие текущим фильтрам, не найдены. +audit.dashboard.js.errorLoading=Ошибка загрузки данных: +audit.dashboard.js.errorRendering=Ошибка рендеринга таблицы: +audit.dashboard.js.loadingPage=Загрузка страницы #################### # Cookie banner # #################### -cookieBanner.popUp.title=How we use Cookies -cookieBanner.popUp.description.1=We use cookies and other technologies to make Stirling PDF work better for you—helping us improve our tools and keep building features you'll love. -cookieBanner.popUp.description.2=If you’d rather not, clicking 'No Thanks' will only enable the essential cookies needed to keep things running smoothly. -cookieBanner.popUp.acceptAllBtn=Okay -cookieBanner.popUp.acceptNecessaryBtn=No Thanks -cookieBanner.popUp.showPreferencesBtn=Manage preferences -cookieBanner.preferencesModal.title=Consent Preferences Center -cookieBanner.preferencesModal.acceptAllBtn=Accept all -cookieBanner.preferencesModal.acceptNecessaryBtn=Reject all -cookieBanner.preferencesModal.savePreferencesBtn=Save preferences -cookieBanner.preferencesModal.closeIconLabel=Close modal -cookieBanner.preferencesModal.serviceCounterLabel=Service|Services -cookieBanner.preferencesModal.subtitle=Cookie Usage -cookieBanner.preferencesModal.description.1=Stirling PDF uses cookies and similar technologies to enhance your experience and understand how our tools are used. This helps us improve performance, develop the features you care about, and provide ongoing support to our users. -cookieBanner.preferencesModal.description.2=Stirling PDF cannot—and will never—track or access the content of the documents you use. -cookieBanner.preferencesModal.description.3=Your privacy and trust are at the core of what we do. -cookieBanner.preferencesModal.necessary.title.1=Strictly Necessary Cookies -cookieBanner.preferencesModal.necessary.title.2=Always Enabled -cookieBanner.preferencesModal.necessary.description=These cookies are essential for the website to function properly. They enable core features like setting your privacy preferences, logging in, and filling out forms—which is why they can’t be turned off. -cookieBanner.preferencesModal.analytics.title=Analytics -cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. +cookieBanner.popUp.title=Как мы используем файлы cookie +cookieBanner.popUp.description.1=Мы используем файлы cookie и другие технологии, чтобы улучшить работу Stirling PDF для вас, это помогает нам совершенствовать наши инструменты и создавать функции, которые вам понравятся. +cookieBanner.popUp.description.2=Если вы предпочитаете этого не делать, нажав 'Нет, спасибо', вы активируете только основные файлы cookie, необходимые для бесперебойной работы. +cookieBanner.popUp.acceptAllBtn=Хорошо +cookieBanner.popUp.acceptNecessaryBtn=Нет, спасибо +cookieBanner.popUp.showPreferencesBtn=Управление предпочтениями +cookieBanner.preferencesModal.title=Центр согласия предпочтений +cookieBanner.preferencesModal.acceptAllBtn=Принять все +cookieBanner.preferencesModal.acceptNecessaryBtn=Отклонить все +cookieBanner.preferencesModal.savePreferencesBtn=Сохранить предпочтения +cookieBanner.preferencesModal.closeIconLabel=Закрыть модальное окно +cookieBanner.preferencesModal.serviceCounterLabel=Сервис|Услуги +cookieBanner.preferencesModal.subtitle=Использование файлов cookie +cookieBanner.preferencesModal.description.1=Stirling PDF использует файлы cookie и аналогичные технологии, чтобы улучшить ваш опыт и понять, как используются наши инструменты. Это помогает нам повышать производительность, разрабатывать функции, которые вам интересны, и обеспечивать постоянную поддержку наших пользователей. +cookieBanner.preferencesModal.description.2=Stirling PDF не может — и никогда не будет — отслеживать или получать доступ к содержимому используемых вами документов. +cookieBanner.preferencesModal.description.3=Ваша конфиденциальность и доверие лежат в основе того, что мы делаем. +cookieBanner.preferencesModal.necessary.title.1=Строго необходимые файлы cookie +cookieBanner.preferencesModal.necessary.title.2=Всегда включены +cookieBanner.preferencesModal.necessary.description=Эти файлы cookie необходимы для корректной работы веб-сайта. Они позволяют выполнять основные функции, такие как настройка параметров конфиденциальности, вход в систему и заполнение форм — именно поэтому их нельзя отключить. +cookieBanner.preferencesModal.analytics.title=Аналитика +cookieBanner.preferencesModal.analytics.description=Эти файлы cookie помогают нам понять, как используются наши инструменты, чтобы мы могли сосредоточиться на создании функций, которые больше всего ценятся нашим сообществом. Будьте уверены — Stirling PDF не может и никогда не будет отслеживать содержание документов, с которыми вы работаете. #scannerEffect -scannerEffect.title=Поддельное сканирование -scannerEffect.header=Поддельное сканирование +scannerEffect.title=Эффект сканирования +scannerEffect.header=Эффект сканирования scannerEffect.description=Создайте PDF-файл, который выглядит так, как будто он был отсканирован scannerEffect.selectPDF=Выбрать PDF: scannerEffect.quality=Качество сканирования @@ -1825,12 +1825,12 @@ scannerEffect.rotation.none=Нет scannerEffect.rotation.slight=Незначительный scannerEffect.rotation.moderate=Умеренный scannerEffect.rotation.severe=Сильный -scannerEffect.submit=Создать поддельное сканирование +scannerEffect.submit=Создать эффект сканирования #home.scannerEffect -home.scannerEffect.title=Поддельное сканирование +home.scannerEffect.title=Эффект сканирования home.scannerEffect.desc=Создайте PDF-файл, который выглядит так, как будто он был отсканирован -scannerEffect.tags=scan,simulate,realistic,convert +scannerEffect.tags=scan,сканирование,симуляция,имитация,реалистично,преобразование # ScannerEffect advanced settings (frontend) scannerEffect.advancedSettings=Включите расширенные параметры сканирования @@ -1849,17 +1849,17 @@ scannerEffect.resolution=Разрешение (DPI) # Table of Contents Feature -home.editTableOfContents.title=Редактировать оглавление +home.editTableOfContents.title=Редактир оглавления home.editTableOfContents.desc=Добавление или редактирование закладок и оглавления в PDF-документах -editTableOfContents.tags=bookmarks,toc,navigation,index,table of contents,chapters,sections,outline -editTableOfContents.title=Редактировать оглавление +editTableOfContents.tags=закладки, указатель, индекс, оглавление, главы, разделы, схема, навигация, структура +editTableOfContents.title=Редактор оглавления editTableOfContents.header=Добавление или редактирование закладок и оглавления в PDF-документах -editTableOfContents.replaceExisting=Replace existing bookmarks (uncheck to append to existing) -editTableOfContents.editorTitle=Bookmark Editor -editTableOfContents.editorDesc=Add and arrange bookmarks below. Click + to add child bookmarks. -editTableOfContents.addBookmark=Add New Bookmark -editTableOfContents.desc.1=This tool allows you to add or edit the table of contents (bookmarks) in a PDF document. -editTableOfContents.desc.2=You can create a hierarchical structure by adding child bookmarks to parent bookmarks. -editTableOfContents.desc.3=Each bookmark requires a title and target page number. -editTableOfContents.submit=Apply Table of Contents +editTableOfContents.replaceExisting=Заменить существующие закладки (снимите флажок, чтобы добавить к существующим) +editTableOfContents.editorTitle=Редактор закладок +editTableOfContents.editorDesc=Добавьте и упорядочьте закладки ниже. Нажмите «+», чтобы добавить дочерние закладки. +editTableOfContents.addBookmark=Добавить новую закладку +editTableOfContents.desc.1=Этот инструмент позволяет вам добавлять или редактировать оглавление (закладки) в PDF-документе. +editTableOfContents.desc.2=Вы можете создать иерархическую структуру, добавив дочерние закладки к родительским. +editTableOfContents.desc.3=Для каждой закладки требуется название и номер целевой страницы. +editTableOfContents.submit=Применить оглавление From 7b61bbaced69af98772d9c9c569ba6178007b03f Mon Sep 17 00:00:00 2001 From: "stirlingbot[bot]" <195170888+stirlingbot[bot]@users.noreply.github.com> Date: Sun, 20 Jul 2025 22:00:51 +0100 Subject: [PATCH 16/22] :globe_with_meridians: Sync Translations + Update README Progress Table (#3994) ### 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> --- README.md | 2 +- app/core/src/main/resources/messages_ru_RU.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8e592bd7a..836762158 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ Stirling-PDF currently supports 40 languages! | Portuguese (Português) (pt_PT) | ![70%](https://geps.dev/progress/70) | | Portuguese Brazilian (Português) (pt_BR) | ![77%](https://geps.dev/progress/77) | | Romanian (Română) (ro_RO) | ![59%](https://geps.dev/progress/59) | -| Russian (Русский) (ru_RU) | ![81%](https://geps.dev/progress/81) | +| Russian (Русский) (ru_RU) | ![90%](https://geps.dev/progress/90) | | Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![97%](https://geps.dev/progress/97) | | Simplified Chinese (简体中文) (zh_CN) | ![95%](https://geps.dev/progress/95) | | Slovakian (Slovensky) (sk_SK) | ![53%](https://geps.dev/progress/53) | diff --git a/app/core/src/main/resources/messages_ru_RU.properties b/app/core/src/main/resources/messages_ru_RU.properties index 8663ec404..e414408f1 100644 --- a/app/core/src/main/resources/messages_ru_RU.properties +++ b/app/core/src/main/resources/messages_ru_RU.properties @@ -616,7 +616,7 @@ compressPdfs.tags=сжатие,маленький,крошечный home.unlockPDFForms.title=Разблокировать PDF-формы home.unlockPDFForms.desc=Удалите свойство 'только для чтения' для полей формы в PDF-документа. -unlockPDFForms.tags=удалить,форма,поле,только для чтения +unlockPDFForms.tags=удалить,форма,поле,только для чтения home.changeMetadata.title=Изменить метаданные home.changeMetadata.desc=Изменить/удалить/добавить метаданные из PDF-документа From 04ba3cebabe84cd4ae3a13945d136c196697cec9 Mon Sep 17 00:00:00 2001 From: Ludy Date: Sun, 20 Jul 2025 23:21:12 +0200 Subject: [PATCH 17/22] fix: correct paths for python scripts and implement classpath extraction (#3984) # Description of Changes - **What was changed** - Relocated `png_to_webp.py` and `split_photos.py` from `scripts/` to `app/core/src/main/resources/static/python/`. - Updated `.github/labeler-config-srvaroa.yml` and `.pre-commit-config.yaml` to include the new script directory in their file-matching patterns. - Added `GeneralUtils.extractScript(String scriptName)` to load Python scripts from the classpath (`static/python/`), extract them into a temporary directory at runtime, and return the filesystem path. - **Why the change was made** - To fix the Internal Server Error caused by missing script files at their old locations. - Ensure the Python helper scripts are packaged inside the JAR/WAR and reliably accessible when the application runs. - Only local installations were affected --- ## 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: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/config/.files.yaml | 5 ++- .github/labeler-config-srvaroa.yml | 8 ++-- .pre-commit-config.yaml | 4 +- .../configuration/InstallationPathConfig.java | 6 +++ .../software/common/util/GeneralUtils.java | 38 +++++++++++++++++++ app/core/.gitignore | 2 + .../converters/ConvertImgPDFController.java | 13 +++++-- .../api/misc/ExtractImageScansController.java | 10 +++-- .../resources/static/python}/png_to_webp.py | 0 .../resources/static/python}/split_photos.py | 0 10 files changed, 70 insertions(+), 16 deletions(-) rename {scripts => app/core/src/main/resources/static/python}/png_to_webp.py (100%) rename {scripts => app/core/src/main/resources/static/python}/split_photos.py (100%) diff --git a/.github/config/.files.yaml b/.github/config/.files.yaml index 5ee241863..2f4f242cb 100644 --- a/.github/config/.files.yaml +++ b/.github/config/.files.yaml @@ -11,11 +11,12 @@ openapi: &openapi - app/(common|core|proprietary)/src/main/java/** project: &project - - app/** + - app/(common|core|proprietary)/src/(main|test)/java/** + - app/(common|core|proprietary)/build.gradle + - 'app/(common|core|proprietary)/src/(main|test)/resources/**/!(messages_*.properties|*.md)*' - exampleYmlFiles/** - gradle/** - libs/** - - scripts/** - testing/** - build.gradle - Dockerfile diff --git a/.github/labeler-config-srvaroa.yml b/.github/labeler-config-srvaroa.yml index bdc48da53..44a234e3b 100644 --- a/.github/labeler-config-srvaroa.yml +++ b/.github/labeler-config-srvaroa.yml @@ -76,8 +76,8 @@ labels: - 'app/core/src/main/resources/settings.yml.template' - 'app/core/src/main/resources/application.properties' - 'app/core/src/main/resources/banner.txt' - - 'scripts/png_to_webp.py' - - 'split_photos.py' + - 'app/core/src/main/resources/static/python/png_to_webp.py' + - 'app/core/src/main/resources/static/python/split_photos.py' - 'application.properties' - label: 'Security' @@ -95,8 +95,8 @@ labels: - 'app/core/src/main/java/stirling/software/SPDF/model/api/.*' - 'app/core/src/main/java/stirling/software/SPDF/service/ApiDocService.java' - 'app/proprietary/src/main/java/stirling/software/proprietary/security/controller/api/.*' - - 'scripts/png_to_webp.py' - - 'split_photos.py' + - 'app/core/src/main/resources/static/python/png_to_webp.py' + - 'app/core/src/main/resources/static/python/split_photos.py' - '.github/workflows/swagger.yml' - label: 'Documentation' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 094e9b2fa..ec2d837e2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,10 +6,10 @@ repos: args: - --fix - --line-length=127 - files: ^((\.github/scripts|scripts)/.+)?[^/]+\.py$ + files: ^((\.github/scripts|scripts|app/core/src/main/resources/static/python)/.+)?[^/]+\.py$ exclude: (split_photos.py) - id: ruff-format - files: ^((\.github/scripts|scripts)/.+)?[^/]+\.py$ + files: ^((\.github/scripts|scripts|app/core/src/main/resources/static/python)/.+)?[^/]+\.py$ exclude: (split_photos.py) - repo: https://github.com/codespell-project/codespell rev: v2.4.1 diff --git a/app/common/src/main/java/stirling/software/common/configuration/InstallationPathConfig.java b/app/common/src/main/java/stirling/software/common/configuration/InstallationPathConfig.java index d087f2a7a..08618329d 100644 --- a/app/common/src/main/java/stirling/software/common/configuration/InstallationPathConfig.java +++ b/app/common/src/main/java/stirling/software/common/configuration/InstallationPathConfig.java @@ -14,6 +14,7 @@ public class InstallationPathConfig { private static final String CONFIG_PATH; private static final String CUSTOM_FILES_PATH; private static final String CLIENT_WEBUI_PATH; + private static final String SCRIPTS_PATH; // Config paths private static final String SETTINGS_PATH; @@ -36,6 +37,7 @@ public class InstallationPathConfig { // Initialize config paths SETTINGS_PATH = CONFIG_PATH + "settings.yml"; CUSTOM_SETTINGS_PATH = CONFIG_PATH + "custom_settings.yml"; + SCRIPTS_PATH = CONFIG_PATH + "scripts" + File.separator; // Initialize custom file paths STATIC_PATH = CUSTOM_FILES_PATH + "static" + File.separator; @@ -89,6 +91,10 @@ public class InstallationPathConfig { return CLIENT_WEBUI_PATH; } + public static String getScriptsPath() { + return SCRIPTS_PATH; + } + public static String getSettingsPath() { return SETTINGS_PATH; } diff --git a/app/common/src/main/java/stirling/software/common/util/GeneralUtils.java b/app/common/src/main/java/stirling/software/common/util/GeneralUtils.java index ddbec92e0..a164faec2 100644 --- a/app/common/src/main/java/stirling/software/common/util/GeneralUtils.java +++ b/app/common/src/main/java/stirling/software/common/util/GeneralUtils.java @@ -16,6 +16,7 @@ import java.util.List; import java.util.Locale; import java.util.UUID; +import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.support.ResourcePatternUtils; @@ -33,6 +34,9 @@ import stirling.software.common.configuration.InstallationPathConfig; @Slf4j public class GeneralUtils { + private static final List DEFAULT_VALID_SCRIPTS = + List.of("png_to_webp.py", "split_photos.py"); + public static File convertMultipartFileToFile(MultipartFile multipartFile) throws IOException { String customTempDir = System.getenv("STIRLING_TEMPFILES_DIRECTORY"); if (customTempDir == null || customTempDir.isEmpty()) { @@ -442,6 +446,40 @@ public class GeneralUtils { } } + /** + * Extracts a file from classpath:/static/python to a temporary directory and returns the path. + */ + public static Path extractScript(String scriptName) throws IOException { + // Validate input + if (scriptName == null || scriptName.trim().isEmpty()) { + throw new IllegalArgumentException("scriptName must not be null or empty"); + } + if (scriptName.contains("..") || scriptName.contains("/")) { + throw new IllegalArgumentException( + "scriptName must not contain path traversal characters"); + } + + if (!DEFAULT_VALID_SCRIPTS.contains(scriptName)) { + throw new IllegalArgumentException( + "scriptName must be either 'png_to_webp.py' or 'split_photos.py'"); + } + + Path scriptsDir = Paths.get(InstallationPathConfig.getScriptsPath(), "python"); + Files.createDirectories(scriptsDir); + + Path scriptFile = scriptsDir.resolve(scriptName); + if (!Files.exists(scriptFile)) { + ClassPathResource resource = new ClassPathResource("static/python/" + scriptName); + try (InputStream in = resource.getInputStream()) { + Files.copy(in, scriptFile, StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { + log.error("Failed to extract Python script", e); + throw e; + } + } + return scriptFile; + } + public static boolean isVersionHigher(String currentVersion, String compareVersion) { if (currentVersion == null || compareVersion == null) { return false; diff --git a/app/core/.gitignore b/app/core/.gitignore index f85be51d5..2b3880de6 100644 --- a/app/core/.gitignore +++ b/app/core/.gitignore @@ -194,3 +194,5 @@ id_ed25519.pub # node_modules node_modules/ + +scripts/**/* diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java index 82dcc2bc5..8efd983b0 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java @@ -56,8 +56,8 @@ public class ConvertImgPDFController { summary = "Convert PDF to image(s)", description = "This endpoint converts a PDF file to image(s) with the specified image format," - + " color type, and DPI. Users can choose to get a single image or multiple" - + " images. Input:PDF Output:Image Type:SI-Conditional") + + " color type, and DPI. Users can choose to get a single image or multiple" + + " images. Input:PDF Output:Image Type:SI-Conditional") public ResponseEntity convertToImage(@ModelAttribute ConvertToImageRequest request) throws Exception { MultipartFile file = request.getFileInput(); @@ -117,10 +117,14 @@ public class ConvertImgPDFController { } String pythonVersion = CheckProgramInstall.getAvailablePythonCommand(); + Path pngToWebpScript = GeneralUtils.extractScript("png_to_webp.py"); List command = new ArrayList<>(); command.add(pythonVersion); - command.add("./scripts/png_to_webp.py"); // Python script to handle the conversion + command.add( + pngToWebpScript + .toAbsolutePath() + .toString()); // Python script to handle the conversion // Create a temporary directory for the output WebP files tempOutputDir = Files.createTempDirectory("webp_output"); @@ -232,7 +236,8 @@ public class ConvertImgPDFController { PdfUtils.imageToPdf(file, fitOption, autoRotate, colorType, pdfDocumentFactory); return WebResponseUtils.bytesToWebResponse( bytes, - new File(file[0].getOriginalFilename()).getName().replaceFirst("[.][^.]+$", "") + "_converted.pdf"); + new File(file[0].getOriginalFilename()).getName().replaceFirst("[.][^.]+$", "") + + "_converted.pdf"); } private String getMediaType(String imageFormat) { diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java index 7ecc04e1a..1a0ae7516 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java @@ -34,6 +34,7 @@ import stirling.software.SPDF.model.api.misc.ExtractImageScansRequest; import stirling.software.common.service.CustomPDFDocumentFactory; import stirling.software.common.util.CheckProgramInstall; import stirling.software.common.util.ExceptionUtils; +import stirling.software.common.util.GeneralUtils; import stirling.software.common.util.ProcessExecutor; import stirling.software.common.util.ProcessExecutor.ProcessExecutorResult; import stirling.software.common.util.WebResponseUtils; @@ -54,9 +55,9 @@ public class ExtractImageScansController { summary = "Extract image scans from an input file", description = "This endpoint extracts image scans from a given file based on certain" - + " parameters. Users can specify angle threshold, tolerance, minimum area," - + " minimum contour area, and border size. Input:PDF Output:IMAGE/ZIP" - + " Type:SIMO") + + " parameters. Users can specify angle threshold, tolerance, minimum area," + + " minimum contour area, and border size. Input:PDF Output:IMAGE/ZIP" + + " Type:SIMO") public ResponseEntity extractImageScans( @ModelAttribute ExtractImageScansRequest request) throws IOException, InterruptedException { @@ -78,6 +79,7 @@ public class ExtractImageScansController { } String pythonVersion = CheckProgramInstall.getAvailablePythonCommand(); + Path splitPhotosScript = GeneralUtils.extractScript("split_photos.py"); try { // Check if input file is a PDF if ("pdf".equalsIgnoreCase(extension)) { @@ -120,7 +122,7 @@ public class ExtractImageScansController { new ArrayList<>( Arrays.asList( pythonVersion, - "./scripts/split_photos.py", + splitPhotosScript.toAbsolutePath().toString(), images.get(i), tempDir.toString(), "--angle_threshold", diff --git a/scripts/png_to_webp.py b/app/core/src/main/resources/static/python/png_to_webp.py similarity index 100% rename from scripts/png_to_webp.py rename to app/core/src/main/resources/static/python/png_to_webp.py diff --git a/scripts/split_photos.py b/app/core/src/main/resources/static/python/split_photos.py similarity index 100% rename from scripts/split_photos.py rename to app/core/src/main/resources/static/python/split_photos.py From c553c613763de32657fa995043e4f71491f40fc4 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Mon, 21 Jul 2025 10:25:32 +0100 Subject: [PATCH 18/22] Disable cookie banner when analytics disabled (#3989) ## Summary - gate cookie consent resources behind the analytics flag - hide the cookie preferences link in the footer when analytics are disabled Generated with AI. ## Testing - `./gradlew build` ------ https://chatgpt.com/codex/tasks/task_b_687c9568b2a8832891ffebddb65a9480 --- app/core/src/main/resources/templates/fragments/common.html | 4 ++-- app/core/src/main/resources/templates/fragments/footer.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/core/src/main/resources/templates/fragments/common.html b/app/core/src/main/resources/templates/fragments/common.html index 78f0d5662..f5fdbfa9d 100644 --- a/app/core/src/main/resources/templates/fragments/common.html +++ b/app/core/src/main/resources/templates/fragments/common.html @@ -200,8 +200,8 @@ - - + + diff --git a/app/core/src/main/resources/templates/fragments/footer.html b/app/core/src/main/resources/templates/fragments/footer.html index 2d8465bf5..89c3c78b1 100644 --- a/app/core/src/main/resources/templates/fragments/footer.html +++ b/app/core/src/main/resources/templates/fragments/footer.html @@ -1,6 +1,6 @@