Compare commits

..

11 Commits

Author SHA1 Message Date
Ludy
c388ba73c1
Update Google Java Format to v1.26.0 across devcontainer, VSCode, and Gradle configuration (#3375)
# Description of Changes

Please provide a summary of the changes, including:

- **What was changed**  
Updated `java.format.settings.google.version` from `1.25.2` to `1.26.0`
in:
  - `.devcontainer/devcontainer.json`  
  - `.vscode/settings.json`  
  - `build.gradle` (Spotless plugin configuration)

- **Why the change was made**  
Bump to the latest Google Java Format release (v1.26.0) to pick up
formatting improvements, bug fixes, and maintain consistency across all
development environments.

---

## Checklist

### General

- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/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/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/DeveloperGuide.md#6-testing)
for more details.
2025-04-17 22:11:30 +01:00
Ludy
54f2e012f5
Bump ruff to v0.11.6 and gitleaks to v8.24.3 in pre-commit config (#3376)
# Description of Changes

Please provide a summary of the changes, including:

- **What was changed**  
Updated the versions of two pre-commit hooks in
`.pre-commit-config.yaml`:
  - `ruff` from `v0.9.10` to `v0.11.6`  
  - `gitleaks` from `v8.24.0` to `v8.24.3`

- **Why the change was made**  
Keeping linting and security-scanning tools up to date ensures we
benefit from the latest bug fixes, performance improvements, and new
checks. This helps maintain code quality and reduces the risk of false
positives or unfixed vulnerabilities.


---

## 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/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/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/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/DeveloperGuide.md#6-testing)
for more details.
2025-04-17 22:10:39 +01:00
Anthony Stirling
ef6c0f2383
fix security deploy (#3373)
# Description of Changes

Please provide a summary of the changes, including:

- What was changed
- Why the change was made
- Any challenges encountered

Closes #(issue_number)

---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/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/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/DeveloperGuide.md#6-testing)
for more details.
2025-04-17 18:52:03 +01:00
Muratcan Yeldan
7bdefb69c2
Make file extension checks case-insensitive in pipeline (#3368)
# Description of Changes

File extensions in the pipeline were being checked in a case-sensitive
manner. Since supported extensions were defined in lowercase only, files
with uppercase extensions were being rejected directly, and logs like
the following were being printed:

<img width="1542" alt="Screenshot 2025-04-17 at 00 14 16"
src="https://github.com/user-attachments/assets/a584b8d8-0a56-4a76-b409-9d6cd38f1a80"
/>

With this change, the uploaded file’s extension is now converted to
lowercase using toLowerCase, making the extension check
case-insensitive. After this change, the logs flow as expected, as shown
below:

<img width="1317" alt="Screenshot 2025-04-17 at 00 49 52"
src="https://github.com/user-attachments/assets/2abdcfc7-4c74-4b06-bbea-ef12e0f737b4"
/>

Closes #3243

---

## 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/DeveloperGuide.md)
(if applicable)
- [X] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

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

### Testing (if applicable)

- [X] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing)
for more details.
2025-04-17 11:23:08 +01:00
stirlingbot[bot]
49e3706a30
🌐 Sync Translations + Update README Progress Table (#3364)
### 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>
2025-04-16 19:03:54 +01:00
Muratcan Yeldan
06a2360247
Update messages_fr_FR.properties to fix translation mistake (#3365)
# Description of Changes

Fixed incorrect French translations: changed 'Image en PDF' to 'PDF en
Image' for title and header in messages_fr_FR.properties.

Closes #3357

---

## 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/DeveloperGuide.md)
(if applicable)
- [X] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/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/DeveloperGuide.md#6-testing)
for more details.
2025-04-16 19:03:34 +01:00
ConnorYoh
3fda82e39d
2728 bug signed rotated document different than preview (#3360)
# Description of Changes

Please provide a summary of the changes, including:

- Change the maths for accounting for rotation in add image and sign.
- Images are now placed in the expected place


Closes #2728 

---

## 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/DeveloperGuide.md)
(if applicable)
- [x] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/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/DeveloperGuide.md#6-testing)
for more details.
2025-04-16 16:21:08 +01:00
Muratcan Yeldan
a1013a339a
Update messages_tr_TR.properties (#3363)
# Description of Changes

Completed the rest of the untranslated labels to Turkish(tr_TR).

---

## 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/DeveloperGuide.md)
(if applicable)
- [X] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/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/DeveloperGuide.md#6-testing)
for more details.
2025-04-16 16:20:37 +01:00
Peter Dave Hello
5430e6d159
Update and improve zh_TW Traditional Chinese locale (#3362)
# Description of Changes

Update and improve zh_TW Traditional Chinese locale

cc #3152 #3337

---

## Checklist

### General

- [x] 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/DeveloperGuide.md)
(if applicable)
- [x] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/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/DeveloperGuide.md#6-testing)
for more details.
2025-04-16 16:20:26 +01:00
stirlingbot[bot]
6906344178
🌐 Sync Translations + Update README Progress Table (#3359)
### 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>
2025-04-15 17:10:44 +01:00
thiagoor-cpu
4bbbbdfafc
Update messages_pt_BR.properties (#3356)
Up-to-date 0.45.5 PT-BR

# Description of Changes

Up-to-date 0.45.5 PT-BR

- What was changed
- Why the change was made
- Any challenges encountered

Closes #(issue_number)

---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/HowToAddNewLanguage.md)
(if applicable)
- [X] I have performed a self-review of my own code
- [ ] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/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/DeveloperGuide.md#6-testing)
for more details.
2025-04-15 15:17:56 +01:00
14 changed files with 372 additions and 365 deletions

View File

@ -49,7 +49,7 @@
"java.configuration.updateBuildConfiguration": "interactive", "java.configuration.updateBuildConfiguration": "interactive",
"java.format.enabled": true, "java.format.enabled": true,
"java.format.settings.profile": "GoogleStyle", "java.format.settings.profile": "GoogleStyle",
"java.format.settings.google.version": "1.25.2", "java.format.settings.google.version": "1.26.0",
"java.format.settings.google.extra": "--aosp --skip-sorting-imports --skip-javadoc-formatting", "java.format.settings.google.extra": "--aosp --skip-sorting-imports --skip-javadoc-formatting",
"java.saveActions.cleanup": true, "java.saveActions.cleanup": true,
"java.cleanup.actions": [ "java.cleanup.actions": [

View File

@ -186,7 +186,7 @@ jobs:
file: ./Dockerfile file: ./Dockerfile
push: true push: true
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/test:pr-${{ needs.check-comment.outputs.pr_number }} tags: ${{ secrets.DOCKER_HUB_USERNAME }}/test:pr-${{ needs.check-comment.outputs.pr_number }}
build-args: VERSION_TAG=${{ steps.versionNumber.outputs.versionNumber }} build-args: VERSION_TAG=alpha
platforms: linux/amd64 platforms: linux/amd64
- name: Set up SSH - name: Set up SSH

View File

@ -1,6 +1,6 @@
repos: repos:
- repo: https://github.com/astral-sh/ruff-pre-commit - repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.9.10 rev: v0.11.6
hooks: hooks:
- id: ruff - id: ruff
args: args:
@ -22,7 +22,7 @@ repos:
files: \.(html|css|js|py|md)$ files: \.(html|css|js|py|md)$
exclude: (.vscode|.devcontainer|src/main/resources|Dockerfile|.*/pdfjs.*|.*/thirdParty.*|bootstrap.*|.*\.min\..*|.*diff\.js) exclude: (.vscode|.devcontainer|src/main/resources|Dockerfile|.*/pdfjs.*|.*/thirdParty.*|bootstrap.*|.*\.min\..*|.*diff\.js)
- repo: https://github.com/gitleaks/gitleaks - repo: https://github.com/gitleaks/gitleaks
rev: v8.24.0 rev: v8.24.3
hooks: hooks:
- id: gitleaks - id: gitleaks
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks

View File

@ -10,7 +10,7 @@
"java.configuration.updateBuildConfiguration": "interactive", "java.configuration.updateBuildConfiguration": "interactive",
"java.format.enabled": true, "java.format.enabled": true,
"java.format.settings.profile": "GoogleStyle", "java.format.settings.profile": "GoogleStyle",
"java.format.settings.google.version": "1.25.2", "java.format.settings.google.version": "1.26.0",
"java.format.settings.google.extra": "--aosp --skip-sorting-imports --skip-javadoc-formatting", "java.format.settings.google.extra": "--aosp --skip-sorting-imports --skip-javadoc-formatting",
// (DE) Aktiviert Kommentare im Java-Format. // (DE) Aktiviert Kommentare im Java-Format.
// (EN) Enables comments in Java formatting. // (EN) Enables comments in Java formatting.

View File

@ -141,7 +141,7 @@ Stirling-PDF currently supports 39 languages!
| Persian (فارسی) (fa_IR) | ![88%](https://geps.dev/progress/88) | | Persian (فارسی) (fa_IR) | ![88%](https://geps.dev/progress/88) |
| Polish (Polski) (pl_PL) | ![96%](https://geps.dev/progress/96) | | Polish (Polski) (pl_PL) | ![96%](https://geps.dev/progress/96) |
| Portuguese (Português) (pt_PT) | ![91%](https://geps.dev/progress/91) | | Portuguese (Português) (pt_PT) | ![91%](https://geps.dev/progress/91) |
| Portuguese Brazilian (Português) (pt_BR) | ![94%](https://geps.dev/progress/94) | | Portuguese Brazilian (Português) (pt_BR) | ![98%](https://geps.dev/progress/98) |
| Romanian (Română) (ro_RO) | ![75%](https://geps.dev/progress/75) | | Romanian (Română) (ro_RO) | ![75%](https://geps.dev/progress/75) |
| Russian (Русский) (ru_RU) | ![94%](https://geps.dev/progress/94) | | Russian (Русский) (ru_RU) | ![94%](https://geps.dev/progress/94) |
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![60%](https://geps.dev/progress/60) | | Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![60%](https://geps.dev/progress/60) |
@ -153,7 +153,7 @@ Stirling-PDF currently supports 39 languages!
| Thai (ไทย) (th_TH) | ![80%](https://geps.dev/progress/80) | | Thai (ไทย) (th_TH) | ![80%](https://geps.dev/progress/80) |
| Tibetan (བོད་ཡིག་) (zh_BO) | ![89%](https://geps.dev/progress/89) | | Tibetan (བོད་ཡིག་) (zh_BO) | ![89%](https://geps.dev/progress/89) |
| Traditional Chinese (繁體中文) (zh_TW) | ![99%](https://geps.dev/progress/99) | | Traditional Chinese (繁體中文) (zh_TW) | ![99%](https://geps.dev/progress/99) |
| Turkish (Türkçe) (tr_TR) | ![77%](https://geps.dev/progress/77) | | Turkish (Türkçe) (tr_TR) | ![98%](https://geps.dev/progress/98) |
| Ukrainian (Українська) (uk_UA) | ![97%](https://geps.dev/progress/97) | | Ukrainian (Українська) (uk_UA) | ![97%](https://geps.dev/progress/97) |
| Vietnamese (Tiếng Việt) (vi_VN) | ![74%](https://geps.dev/progress/74) | | Vietnamese (Tiếng Việt) (vi_VN) | ![74%](https://geps.dev/progress/74) |

View File

@ -365,7 +365,7 @@ spotless {
java { java {
target project.fileTree('src').include('**/*.java') target project.fileTree('src').include('**/*.java')
googleJavaFormat("1.25.2").aosp().reorderImports(false) googleJavaFormat("1.26.0").aosp().reorderImports(false)
importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling") importOrder("java", "javax", "org", "com", "net", "io", "jakarta", "lombok", "me", "stirling")
toggleOffOn() toggleOffOn()

View File

@ -208,7 +208,8 @@ public class PipelineDirectoryProcessor {
// Check against allowed extensions // Check against allowed extensions
boolean isAllowed = boolean isAllowed =
allowAllFiles allowAllFiles
|| inputExtensions.contains(extension); || inputExtensions.contains(
extension.toLowerCase());
if (!isAllowed) { if (!isAllowed) {
log.info( log.info(
"Skipping file with unsupported extension: {} ({})", "Skipping file with unsupported extension: {} ({})",

View File

@ -112,7 +112,8 @@ public class PipelineProcessor {
for (Resource file : outputFiles) { for (Resource file : outputFiles) {
boolean hasInputFileType = false; boolean hasInputFileType = false;
for (String extension : inputFileTypes) { for (String extension : inputFileTypes) {
if ("ALL".equals(extension) || file.getFilename().endsWith(extension)) { if ("ALL".equals(extension)
|| file.getFilename().toLowerCase().endsWith(extension)) {
hasInputFileType = true; hasInputFileType = true;
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("fileInput", file); body.add("fileInput", file);
@ -166,7 +167,9 @@ public class PipelineProcessor {
.filter( .filter(
file -> file ->
finalinputFileTypes.stream() finalinputFileTypes.stream()
.anyMatch(file.getFilename()::endsWith)) .anyMatch(
file.getFilename().toLowerCase()
::endsWith))
.toList(); .toList();
} }
// Check if there are matching files // Check if there are matching files

View File

@ -1094,8 +1094,8 @@ imageToPDF.selectText.5=Convertir en PDF séparés
#pdfToImage #pdfToImage
pdfToImage.title=Image en PDF pdfToImage.title=PDF en Image
pdfToImage.header=Image en PDF pdfToImage.header=PDF en Image
pdfToImage.selectText=Format d'image pdfToImage.selectText=Format d'image
pdfToImage.singleOrMultiple=Type de résultat pdfToImage.singleOrMultiple=Type de résultat
pdfToImage.single=Une seule grande image pdfToImage.single=Une seule grande image

View File

@ -10,9 +10,9 @@ multiPdfPrompt=Selecione os PDFs (2+)
multiPdfDropPrompt=Selecione (ou arraste e solte) todos os PDFs desejados: multiPdfDropPrompt=Selecione (ou arraste e solte) todos os PDFs desejados:
imgPrompt=Selecione a(s) Imagem(ns) imgPrompt=Selecione a(s) Imagem(ns)
genericSubmit=Enviar genericSubmit=Enviar
uploadLimit=Maximum file size: uploadLimit=Tamanho máximo do arquivo:
uploadLimitExceededSingular=is too large. Maximum allowed size is uploadLimitExceededSingular=está acima do limite. Tamanho máximo permitido é
uploadLimitExceededPlural=are too large. Maximum allowed size is uploadLimitExceededPlural=estão acima do limite. Tamanho máximo permitido é
processTimeWarning=Aviso: Este processo pode levar até um minuto, dependendo do tamanho do arquivo processTimeWarning=Aviso: Este processo pode levar até um minuto, dependendo do tamanho do arquivo
pageOrderPrompt=Ordem de Página Personalizada (Digite uma lista de números de páginas, separadas por vírgula ou funções como 2n+1): pageOrderPrompt=Ordem de Página Personalizada (Digite uma lista de números de páginas, separadas por vírgula ou funções como 2n+1):
pageSelectionPrompt=Seleção de Página Personalizada (Digite uma lista de números de páginas, separadas por vírgula como 1,5,6 ou funções como 2n+1): pageSelectionPrompt=Seleção de Página Personalizada (Digite uma lista de números de páginas, separadas por vírgula como 1,5,6 ou funções como 2n+1):
@ -86,14 +86,14 @@ loading=Carregando...
addToDoc=Adicionar ao Documento addToDoc=Adicionar ao Documento
reset=Reiniciar reset=Reiniciar
apply=Aplicar apply=Aplicar
noFileSelected=No file selected. Please upload one. noFileSelected=Nenhum arquivo selecionado. Por favo, envie um arquivo.
legal.privacy=Política de Privacidade legal.privacy=Política de Privacidade
legal.terms=Termos e Condições legal.terms=Termos e Condições
legal.accessibility=Acessibilidade legal.accessibility=Acessibilidade
legal.cookie=Política de Cookies legal.cookie=Política de Cookies
legal.impressum=Informações legais legal.impressum=Informações legais
legal.showCookieBanner=Cookie Preferences legal.showCookieBanner=Preferências de Cookies
############### ###############
# Pipeline # # Pipeline #
@ -237,31 +237,31 @@ adminUserSettings.activeUsers=Usuários Ativos:
adminUserSettings.disabledUsers=Usuários Desabilitados: adminUserSettings.disabledUsers=Usuários Desabilitados:
adminUserSettings.totalUsers=Total de Usuários: adminUserSettings.totalUsers=Total de Usuários:
adminUserSettings.lastRequest=Última solicitação adminUserSettings.lastRequest=Última solicitação
adminUserSettings.usage=View Usage adminUserSettings.usage=Ver Utilização
endpointStatistics.title=Endpoint Statistics endpointStatistics.title=Estatísticas de Endpoints
endpointStatistics.header=Endpoint Statistics endpointStatistics.header=Estatísticas de Endpoints
endpointStatistics.top10=Top 10 endpointStatistics.top10=Top 10
endpointStatistics.top20=Top 20 endpointStatistics.top20=Top 20
endpointStatistics.all=All endpointStatistics.all=Todos
endpointStatistics.refresh=Refresh endpointStatistics.refresh=Atualizar
endpointStatistics.includeHomepage=Include Homepage ('/') endpointStatistics.includeHomepage=Incluir Página Inicial ('/')
endpointStatistics.includeLoginPage=Include Login Page ('/login') endpointStatistics.includeLoginPage=Incluir Página de Login ('/login')
endpointStatistics.totalEndpoints=Total Endpoints endpointStatistics.totalEndpoints=Total de Endpoints
endpointStatistics.totalVisits=Total Visits endpointStatistics.totalVisits=Total de Visitas
endpointStatistics.showing=Showing endpointStatistics.showing=Mostrando
endpointStatistics.selectedVisits=Selected Visits endpointStatistics.selectedVisits=Visitas Selecionadas
endpointStatistics.endpoint=Endpoint endpointStatistics.endpoint=Endpoint
endpointStatistics.visits=Visits endpointStatistics.visits=Visitas
endpointStatistics.percentage=Percentage endpointStatistics.percentage=Percentagem
endpointStatistics.loading=Loading... endpointStatistics.loading=Carregando...
endpointStatistics.failedToLoad=Failed to load endpoint data. Please try refreshing. endpointStatistics.failedToLoad=Falha ao carregar dados do Endpoint. Por favor, tente atualizar.
endpointStatistics.home=Home endpointStatistics.home=Home
endpointStatistics.login=Login endpointStatistics.login=Login
endpointStatistics.top=Top endpointStatistics.top=Top
endpointStatistics.numberOfVisits=Number of Visits endpointStatistics.numberOfVisits=Número de Visitas
endpointStatistics.visitsTooltip=Visits: {0} ({1}% of total) endpointStatistics.visitsTooltip=Visitas: {0} ({1}% do total)
endpointStatistics.retry=Retry endpointStatistics.retry=Tentar novamente
database.title=Importar/Exportar banco de dados database.title=Importar/Exportar banco de dados
database.header=Importar/Exportar banco de dados database.header=Importar/Exportar banco de dados
@ -739,10 +739,10 @@ sanitizePDF.title=Higienizar
sanitizePDF.header=Higienizar sanitizePDF.header=Higienizar
sanitizePDF.selectText.1=Remover scripts de JavaScript. sanitizePDF.selectText.1=Remover scripts de JavaScript.
sanitizePDF.selectText.2=Remover arquivos embutidos. sanitizePDF.selectText.2=Remover arquivos embutidos.
sanitizePDF.selectText.3=Remove XMP metadata sanitizePDF.selectText.3=Remover metadados XMP.
sanitizePDF.selectText.4=Remover links. sanitizePDF.selectText.4=Remover links.
sanitizePDF.selectText.5=Remover fontes. sanitizePDF.selectText.5=Remover fontes.
sanitizePDF.selectText.6=Remove Document Info Metadata sanitizePDF.selectText.6=Remover metadados de informações do documento.
sanitizePDF.submit=Higienizar PDF sanitizePDF.submit=Higienizar PDF
@ -1408,25 +1408,25 @@ validateSignature.cert.bits=bits
#################### ####################
# Cookie banner # # Cookie banner #
#################### ####################
cookieBanner.popUp.title=How we use Cookies cookieBanner.popUp.title=Como nós utilizamos 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.1=Nós utilizamos cookies e outras tecnologias para melhorar o Stirling PDF, ajude-nos para que possamos desenvolver novas funcionalidades que você irá amar.
cookieBanner.popUp.description.2=If youd rather not, clicking 'No Thanks' will only enable the essential cookies needed to keep things running smoothly. cookieBanner.popUp.description.2=Se você não tiver interesse, clicando em "Não, Obrigado" será habilitado apenas cookies essenciais, para o site funcionar sem problemas.
cookieBanner.popUp.acceptAllBtn=Okay cookieBanner.popUp.acceptAllBtn=Aceito
cookieBanner.popUp.acceptNecessaryBtn=No Thanks cookieBanner.popUp.acceptNecessaryBtn=Não, Obrigado
cookieBanner.popUp.showPreferencesBtn=Manage preferences cookieBanner.popUp.showPreferencesBtn=Gerenciar Preferências
cookieBanner.preferencesModal.title=Consent Preferences Center cookieBanner.preferencesModal.title=Central de Preferências de Consentimento
cookieBanner.preferencesModal.acceptAllBtn=Accept all cookieBanner.preferencesModal.acceptAllBtn=Aceitar tudo
cookieBanner.preferencesModal.acceptNecessaryBtn=Reject all cookieBanner.preferencesModal.acceptNecessaryBtn=Rejeitar tudo
cookieBanner.preferencesModal.savePreferencesBtn=Save preferences cookieBanner.preferencesModal.savePreferencesBtn=Salvar preferências
cookieBanner.preferencesModal.closeIconLabel=Close modal cookieBanner.preferencesModal.closeIconLabel=Fechar janela
cookieBanner.preferencesModal.serviceCounterLabel=Service|Services cookieBanner.preferencesModal.serviceCounterLabel=Serviço|Serviços
cookieBanner.preferencesModal.subtitle=Cookie Usage cookieBanner.preferencesModal.subtitle=Uso de Cookies
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.1=Stirling PDF utiliza cookies e tecnologias semelhantes para aprimorar sua experiência e entender como nossas ferramentas são utilizadas. Isso nos ajuda a melhorar o desempenho, desenvolver os recursos de seu interesse e fornecer suporte contínuo aos nossos usuários.
cookieBanner.preferencesModal.description.2=Stirling PDF cannot—and will never—track or access the content of the documents you use. cookieBanner.preferencesModal.description.2=O Stirling PDF não pode e nunca irá rastrear ou acessar o conteúdo dos documentos que você manipula.
cookieBanner.preferencesModal.description.3=Your privacy and trust are at the core of what we do. cookieBanner.preferencesModal.description.3=Sua privacidade e confiança são prioridades para nós.
cookieBanner.preferencesModal.necessary.title.1=Strictly Necessary Cookies cookieBanner.preferencesModal.necessary.title.1=Cookies Estritamente Necessários
cookieBanner.preferencesModal.necessary.title.2=Always Enabled cookieBanner.preferencesModal.necessary.title.2=Sempre Ativado
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 cant be turned off. cookieBanner.preferencesModal.necessary.description=Estes cookies são essenciais para o bom funcionamento do site. Eles habilitam recursos básicos como definir suas preferências de privacidade, realizar login e preencher formulários e é por isso que não podem ser desativados.
cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.title=Cookies Analíticos
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.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.

View File

@ -10,9 +10,9 @@ multiPdfPrompt=PDFleri seçin (2+)
multiPdfDropPrompt=Tüm gerekli PDF'leri seçin (ya da sürükleyip bırakın) multiPdfDropPrompt=Tüm gerekli PDF'leri seçin (ya da sürükleyip bırakın)
imgPrompt=Resim(leri) seçin imgPrompt=Resim(leri) seçin
genericSubmit=Gönder genericSubmit=Gönder
uploadLimit=Maximum file size: uploadLimit=Maksimum dosya boyutu:
uploadLimitExceededSingular=is too large. Maximum allowed size is uploadLimitExceededSingular=çok büyük. İzin verilen maksimum boyut:
uploadLimitExceededPlural=are too large. Maximum allowed size is uploadLimitExceededPlural=çok büyük. İzin verilen maksimum boyut:
processTimeWarning=Uyarı: Bu işlem, dosya boyutuna bağlı olarak bir dakikaya kadar sürebilir. processTimeWarning=Uyarı: Bu işlem, dosya boyutuna bağlı olarak bir dakikaya kadar sürebilir.
pageOrderPrompt=Özel Sayfa Sırası (Virgülle ayrılmış sayfa numaraları veya 2n+1 gibi bir fonksiyon girin) : pageOrderPrompt=Özel Sayfa Sırası (Virgülle ayrılmış sayfa numaraları veya 2n+1 gibi bir fonksiyon girin) :
pageSelectionPrompt=Özel Sayfa Seçimi (1,5,6 sayfa numaralarının virgülle ayrılmış bir listesini veya 2n+1 gibi bir fonksiyon girin) : pageSelectionPrompt=Özel Sayfa Seçimi (1,5,6 sayfa numaralarının virgülle ayrılmış bir listesini veya 2n+1 gibi bir fonksiyon girin) :
@ -80,20 +80,20 @@ color=Renk
sponsor=Bağış sponsor=Bağış
info=Bilgi info=Bilgi
pro=Pro pro=Pro
page=Page page=Sayfa
pages=Pages pages=Sayfalar
loading=Loading... loading=Yükleniyor...
addToDoc=Add to Document addToDoc=Dökümana Ekle
reset=Reset reset=Sıfırla
apply=Apply apply=Uygula
noFileSelected=No file selected. Please upload one. noFileSelected=Hiçbir dosya seçilmedi. Lütfen bir dosya yükleyin.
legal.privacy=Gizlilik Politikası legal.privacy=Gizlilik Politikası
legal.terms=Şartlar ve koşullar legal.terms=Şartlar ve koşullar
legal.accessibility=Erişilebilirlik legal.accessibility=Erişilebilirlik
legal.cookie=Çerez Politikası legal.cookie=Çerez Politikası
legal.impressum=Hakkımızda legal.impressum=Hakkımızda
legal.showCookieBanner=Cookie Preferences legal.showCookieBanner=Çerez Tercihleri
############### ###############
# Pipeline # # Pipeline #
@ -123,21 +123,21 @@ pipelineOptions.validateButton=Doğrula
######################## ########################
# ENTERPRISE EDITION # # ENTERPRISE EDITION #
######################## ########################
enterpriseEdition.button=Upgrade to Pro enterpriseEdition.button=Pro Sürümüne Yükselt
enterpriseEdition.warning=This feature is only available to Pro users. enterpriseEdition.warning=Bu özellik yalnızca Pro kullanıcılarına sunulmaktadır.
enterpriseEdition.yamlAdvert=Stirling PDF Pro supports YAML configuration files and other SSO features. enterpriseEdition.yamlAdvert=Stirling PDF Pro, YAML yapılandırma dosyalarını ve diğer SSO özelliklerini destekler.
enterpriseEdition.ssoAdvert=Looking for more user management features? Check out Stirling PDF Pro enterpriseEdition.ssoAdvert=Daha fazla kullanıcı yönetimi özelliği mi arıyorsunuz? Stirling PDF Pro'ya göz atın
################# #################
# Analytics # # Analytics #
################# #################
analytics.title=Do you want make Stirling PDF better? analytics.title=Stirling PDFi daha iyi hale getirmek ister misiniz?
analytics.paragraph1=Stirling PDF has opt in analytics to help us improve the product. We do not track any personal information or file contents. analytics.paragraph1=Stirling PDF, ürünü geliştirmemize yardımcı olmak için isteğe bağlı analizleri içerir. Kişisel bilgileri veya dosya içeriklerini asla takip etmiyoruz.
analytics.paragraph2=Please consider enabling analytics to help Stirling-PDF grow and to allow us to understand our users better. analytics.paragraph2=Stirling PDFin büyümesine destek olmak ve kullanıcılarımızı daha iyi anlayabilmemiz için analizleri etkinleştirmeyi düşünebilirsiniz.
analytics.enable=Enable analytics analytics.enable=Analizi Etkinleştir
analytics.disable=Disable analytics analytics.disable=Analizi Devre Dışı Bırak
analytics.settings=You can change the settings for analytics in the config/settings.yml file analytics.settings=Analiz ayarlarını config/settings.yml dosyasından değiştirebilirsiniz
############# #############
@ -237,31 +237,31 @@ adminUserSettings.activeUsers=Aktif Kullanıcılar:
adminUserSettings.disabledUsers=Devre Dışı Kullanıcılar: adminUserSettings.disabledUsers=Devre Dışı Kullanıcılar:
adminUserSettings.totalUsers=Toplam Kullanıcılar: adminUserSettings.totalUsers=Toplam Kullanıcılar:
adminUserSettings.lastRequest=Son İstek adminUserSettings.lastRequest=Son İstek
adminUserSettings.usage=View Usage adminUserSettings.usage=Kullanımı Görüntüle
endpointStatistics.title=Endpoint Statistics endpointStatistics.title=Endpoint İstatistikleri
endpointStatistics.header=Endpoint Statistics endpointStatistics.header=Endpoint İstatistikleri
endpointStatistics.top10=Top 10 endpointStatistics.top10=En Çok Kullanılan 10
endpointStatistics.top20=Top 20 endpointStatistics.top20=En Çok Kullanılan 20
endpointStatistics.all=All endpointStatistics.all=Hepsi
endpointStatistics.refresh=Refresh endpointStatistics.refresh=Yenile
endpointStatistics.includeHomepage=Include Homepage ('/') endpointStatistics.includeHomepage=Ana Sayfayı Dahil Et ('/')
endpointStatistics.includeLoginPage=Include Login Page ('/login') endpointStatistics.includeLoginPage=Giriş Sayfasını Dahil Et ('/login')
endpointStatistics.totalEndpoints=Total Endpoints endpointStatistics.totalEndpoints=Toplam Uç Nokta
endpointStatistics.totalVisits=Total Visits endpointStatistics.totalVisits=Toplam Ziyaret
endpointStatistics.showing=Showing endpointStatistics.showing=Gösteriliyor
endpointStatistics.selectedVisits=Selected Visits endpointStatistics.selectedVisits=Seçilen Ziyaretler
endpointStatistics.endpoint=Endpoint endpointStatistics.endpoint=Endpoint
endpointStatistics.visits=Visits endpointStatistics.visits=Ziyaret
endpointStatistics.percentage=Percentage endpointStatistics.percentage=Yüzde
endpointStatistics.loading=Loading... endpointStatistics.loading=Yükleniyor...
endpointStatistics.failedToLoad=Failed to load endpoint data. Please try refreshing. endpointStatistics.failedToLoad=Endpoint verileri yüklenemedi. Lütfen sayfayı yenileyin.
endpointStatistics.home=Home endpointStatistics.home=Ana Sayfa
endpointStatistics.login=Login endpointStatistics.login=Giriş
endpointStatistics.top=Top endpointStatistics.top=En Çok
endpointStatistics.numberOfVisits=Number of Visits endpointStatistics.numberOfVisits=Ziyaret Sayısı
endpointStatistics.visitsTooltip=Visits: {0} ({1}% of total) endpointStatistics.visitsTooltip=Ziyaret: {0} (toplamın %{1}i)
endpointStatistics.retry=Retry endpointStatistics.retry=Yeniden Dene
database.title=Veri Tabanını İçe/Dışa Aktar database.title=Veri Tabanını İçe/Dışa Aktar
database.header=Veri Tabanını İçe/Dışa Aktar database.header=Veri Tabanını İçe/Dışa Aktar
@ -276,14 +276,14 @@ database.info_1=Verileri içe aktarırken, yapının doğru olduğundan emin olm
database.info_2=Karşıya yüklerken dosya adı önemli değildir. Daha sonra yedekleme_kullanıcısı_yyyyAAggSdd.sql biçiminde yeniden adlandırılacak ve tutarlı bir adlandırma kuralı sağlanacaktır. database.info_2=Karşıya yüklerken dosya adı önemli değildir. Daha sonra yedekleme_kullanıcısı_yyyyAAggSdd.sql biçiminde yeniden adlandırılacak ve tutarlı bir adlandırma kuralı sağlanacaktır.
database.submit=Yedeklemeyi İçe Aktar database.submit=Yedeklemeyi İçe Aktar
database.importIntoDatabaseSuccessed=Veri tabanına başarıyla aktarıldı database.importIntoDatabaseSuccessed=Veri tabanına başarıyla aktarıldı
database.backupCreated=Database backup successful database.backupCreated=Veritabanı yedeklemesi başarılı
database.fileNotFound=Dosya bulunamadı database.fileNotFound=Dosya bulunamadı
database.fileNullOrEmpty=Dosya yok veya boş olmamalıdır database.fileNullOrEmpty=Dosya yok veya boş olmamalıdır
database.failedImportFile=Dosya İçe Aktarılamadı database.failedImportFile=Dosya İçe Aktarılamadı
database.notSupported=This function is not available for your database connection. database.notSupported=Bu işlev, mevcut veritabanı bağlantınız için desteklenmiyor.
session.expired=Your session has expired. Please refresh the page and try again. session.expired=Oturumunuzun süresi doldu. Lütfen sayfayı yenileyip tekrar deneyin.
session.refreshPage=Refresh Page session.refreshPage=Sayfayı Yenile
############# #############
# HOME-PAGE # # HOME-PAGE #
@ -296,14 +296,14 @@ home.viewPdf.title=View/Edit PDF
home.viewPdf.desc=Görüntüleyin, açıklama ekleyin, metin veya resim ekleyin home.viewPdf.desc=Görüntüleyin, açıklama ekleyin, metin veya resim ekleyin
viewPdf.tags=görüntüle,oku,açıklama ekle,metin,görüntü viewPdf.tags=görüntüle,oku,açıklama ekle,metin,görüntü
home.setFavorites=Set Favourites home.setFavorites=Favorilere Ekle
home.hideFavorites=Hide Favourites home.hideFavorites=Favorileri Gizle
home.showFavorites=Show Favourites home.showFavorites=Favorileri Göster
home.legacyHomepage=Old homepage home.legacyHomepage=Eski ana sayfa
home.newHomePage=Try our new homepage! home.newHomePage=Yeni ana sayfamızı deneyin!
home.alphabetical=Alphabetical home.alphabetical=Alfabetik
home.globalPopularity=Global Popularity home.globalPopularity=Global Popülerlik
home.sortBy=Sort by: home.sortBy=Sıralama ölçütü:
home.multiTool.title=PDF Çoklu Araç home.multiTool.title=PDF Çoklu Araç
home.multiTool.desc=Birleştir, Döndür, Yeniden Düzenle ve Sayfaları Kaldır home.multiTool.desc=Birleştir, Döndür, Yeniden Düzenle ve Sayfaları Kaldır
@ -492,9 +492,9 @@ home.MarkdownToPDF.title=Markdown'dan PDF'e
home.MarkdownToPDF.desc=Herhangi bir Markdown dosyasını PDF'e dönüştürür home.MarkdownToPDF.desc=Herhangi bir Markdown dosyasını PDF'e dönüştürür
MarkdownToPDF.tags=biçimlendirme,web-içeriği,dönüşüm,dönüştür MarkdownToPDF.tags=biçimlendirme,web-içeriği,dönüşüm,dönüştür
home.PDFToMarkdown.title=PDF to Markdown home.PDFToMarkdown.title=PDF'den Markdown'a
home.PDFToMarkdown.desc=Converts any PDF to Markdown home.PDFToMarkdown.desc=Herhangi bir PDF'yi Markdown formatına dönüştürür
PDFToMarkdown.tags=markup,web-content,transformation,convert,md PDFToMarkdown.tags=biçimlendirme,web-içeriği,dönüşüm,dönüştür,md
home.getPdfInfo.title=PDF Hakkında TÜM Bilgiyi Al home.getPdfInfo.title=PDF Hakkında TÜM Bilgiyi Al
home.getPdfInfo.desc=PDF'ler hakkında mümkün olan her türlü bilgiyi toplar home.getPdfInfo.desc=PDF'ler hakkında mümkün olan her türlü bilgiyi toplar
@ -519,9 +519,9 @@ home.autoRedact.title=Otomatik Karartma
home.autoRedact.desc=Giriş metnine dayanarak bir PDF'teki metni Otomatik Karartır (Redakte) home.autoRedact.desc=Giriş metnine dayanarak bir PDF'teki metni Otomatik Karartır (Redakte)
autoRedact.tags=Karart,Gizle,karartma,siyah,markör,gizli autoRedact.tags=Karart,Gizle,karartma,siyah,markör,gizli
home.redact.title=Manual Redaction home.redact.title=Manuel Sansürleme
home.redact.desc=Redacts a PDF based on selected text, drawn shapes and/or selected page(s) home.redact.desc=Seçilen metinler, çizilen şekiller ve/veya belirli sayfalar üzerinden PDF'yi sansürler
redact.tags=Redact,Hide,black out,black,marker,hidden,manual redact.tags=Sansürle,Gizle,karart,karartma,işaretleyici,gizli,manuel
home.tableExtraxt.title=PDF'den CSV'ye home.tableExtraxt.title=PDF'den CSV'ye
home.tableExtraxt.desc=PDF'den Tabloları çıkarır ve CSV'ye dönüştürür home.tableExtraxt.desc=PDF'den Tabloları çıkarır ve CSV'ye dönüştürür
@ -551,32 +551,32 @@ home.removeImagePdf.desc=Dosya boyutunu küçültmek için PDF'den resmi kaldır
removeImagePdf.tags=Resmi Kaldır,Sayfa İşlemleri,Arka uç,sunucu tarafı removeImagePdf.tags=Resmi Kaldır,Sayfa İşlemleri,Arka uç,sunucu tarafı
home.splitPdfByChapters.title=Split PDF by Chapters home.splitPdfByChapters.title=PDF'yi Bölümlere Göre Böl
home.splitPdfByChapters.desc=Split a PDF into multiple files based on its chapter structure. home.splitPdfByChapters.desc=PDF'yi bölüm yapısına göre birden fazla dosyaya ayırın.
splitPdfByChapters.tags=split,chapters,bookmarks,organize splitPdfByChapters.tags=böl, bölümler, yer imleri, düzenle
home.validateSignature.title=Validate PDF Signature home.validateSignature.title=PDF İmzasını Doğrula
home.validateSignature.desc=Verify digital signatures and certificates in PDF documents home.validateSignature.desc=PDF belgelerindeki dijital imzaları ve sertifikaları doğrulayın
validateSignature.tags=signature,verify,validate,pdf,certificate,digital signature,Validate Signature,Validate certificate validateSignature.tags=imza, doğrula, geçerlilik kontrolü, pdf, sertifika, dijital imza, İmzayı Doğrula, Sertifikayı Doğrula
#replace-invert-color #replace-invert-color
replace-color.title=Replace-Invert-Color replace-color.title=Renk Değiştir-Tersine Çevir
replace-color.header=Replace-Invert Color PDF replace-color.header=PDF Renklerini Değiştir veya Tersine Çevir
home.replaceColorPdf.title=Replace and Invert Color home.replaceColorPdf.title=Renkleri Değiştir ve Tersine Çevir
home.replaceColorPdf.desc=Replace color for text and background in PDF and invert full color of pdf to reduce file size home.replaceColorPdf.desc=PDF'deki metin ve arka plan renklerini değiştirin ve PDF'nin tüm renklerini tersine çevirerek dosya boyutunu azaltın
replaceColorPdf.tags=Replace Color,Page operations,Back end,server side replaceColorPdf.tags=Renk Değiştir, Sayfa işlemleri, Arka yüz, Sunucu tarafı
replace-color.selectText.1=Replace or Invert color Options replace-color.selectText.1=Renk Değiştir veya Tersine Çevirme Seçenekleri
replace-color.selectText.2=Default(Default high contrast colors) replace-color.selectText.2=Varsayılan (Yüksek kontrastlı varsayılan renkler)
replace-color.selectText.3=Custom(Customized colors) replace-color.selectText.3=Özel (Kişiselleştirilmiş renkler)
replace-color.selectText.4=Full-Invert(Invert all colors) replace-color.selectText.4=Tümü Tersine Çevir (Tüm renkleri tersine çevir)
replace-color.selectText.5=High contrast color options replace-color.selectText.5=Yüksek kontrastlı renk seçenekleri
replace-color.selectText.6=white text on black background replace-color.selectText.6=Siyah arka plan üzerine beyaz metin
replace-color.selectText.7=Black text on white background replace-color.selectText.7=Beyaz arka plan üzerine siyah metin
replace-color.selectText.8=Yellow text on black background replace-color.selectText.8=Siyah arka plan üzerine sarı metin
replace-color.selectText.9=Green text on black background replace-color.selectText.9=Siyah arka plan üzerine yeşil metin
replace-color.selectText.10=Choose text Color replace-color.selectText.10=Metin Rengini Seç
replace-color.selectText.11=Choose background Color replace-color.selectText.11=Arka Plan Rengini Seç
replace-color.submit=Replace replace-color.submit=Değiştir
@ -602,11 +602,11 @@ login.oauth2invalidRequest=Geçersiz İstek
login.oauth2AccessDenied=Erişim Reddedildi login.oauth2AccessDenied=Erişim Reddedildi
login.oauth2InvalidTokenResponse=Geçersiz Belirteç Yanıtı login.oauth2InvalidTokenResponse=Geçersiz Belirteç Yanıtı
login.oauth2InvalidIdToken=Geçersiz Kimlik Belirteci login.oauth2InvalidIdToken=Geçersiz Kimlik Belirteci
login.relyingPartyRegistrationNotFound=No relying party registration found login.relyingPartyRegistrationNotFound=Bağlı taraf kaydı bulunamadı
login.userIsDisabled=Kullanıcı devre dışı bırakıldı, şu anda bu kullanıcı adıyla giriş engellendi. Lütfen yöneticiyle iletişime geçin. login.userIsDisabled=Kullanıcı devre dışı bırakıldı, şu anda bu kullanıcı adıyla giriş engellendi. Lütfen yöneticiyle iletişime geçin.
login.alreadyLoggedIn=You are already logged in to login.alreadyLoggedIn=Zaten şu cihazlarda oturum açılmış:
login.alreadyLoggedIn2=devices. Please log out of the devices and try again. login.alreadyLoggedIn2=Lütfen bu cihazlardan çıkış yaparak tekrar deneyin.
login.toManySessions=You have too many active sessions login.toManySessions=Çok fazla aktif oturumunuz var
#auto-redact #auto-redact
autoRedact.title=Otomatik Karartma autoRedact.title=Otomatik Karartma
@ -621,31 +621,31 @@ autoRedact.convertPDFToImageLabel=PDF'i PDF-Görüntü'ye dönüştür (Kutunun
autoRedact.submitButton=Gönder autoRedact.submitButton=Gönder
#redact #redact
redact.title=Manual Redaction redact.title=Manuel Sansürleme
redact.header=Manual Redaction redact.header=Manuel Sansürleme
redact.submit=Redact redact.submit=Sansürle
redact.textBasedRedaction=Text based Redaction redact.textBasedRedaction=Metin Tabanlı Sansürleme
redact.pageBasedRedaction=Page-based Redaction redact.pageBasedRedaction=Sayfa Tabanlı Sansürleme
redact.convertPDFToImageLabel=Convert PDF to PDF-Image (Used to remove text behind the box) redact.convertPDFToImageLabel=PDF'yi Görsel PDF'ye Dönüştür (Kutunun arkasındaki metni kaldırmak için kullanılır)
redact.pageRedactionNumbers.title=Pages redact.pageRedactionNumbers.title=Sayfalar
redact.pageRedactionNumbers.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1) redact.pageRedactionNumbers.placeholder=(örneğin: 1,2,8 veya 4,7,12-16 ya da 2n-1)
redact.redactionColor.title=Redaction Color redact.redactionColor.title=Sansür Rengi
redact.export=Export redact.export=Dışa Aktar
redact.upload=Upload redact.upload=Yükle
redact.boxRedaction=Box draw redaction redact.boxRedaction=Kutu Çizerek Sansürleme
redact.zoom=Zoom redact.zoom=Yakınlaştırma
redact.zoomIn=Zoom in redact.zoomIn=Yakınlaştır
redact.zoomOut=Zoom out redact.zoomOut=Uzaklaştır
redact.nextPage=Next Page redact.nextPage=Sonraki Sayfa
redact.previousPage=Previous Page redact.previousPage=Önceki Sayfa
redact.toggleSidebar=Toggle Sidebar redact.toggleSidebar=Kenar Çubuğunu Aç/Kapat
redact.showThumbnails=Show Thumbnails redact.showThumbnails=Küçük Resimleri Göster
redact.showDocumentOutline=Show Document Outline (double-click to expand/collapse all items) redact.showDocumentOutline=Belge Anahatlarını Göster (tüm öğeleri genişletmek/daraltmak için çift tıklayın)
redact.showAttatchments=Show Attachments redact.showAttatchments=Ekleri Göster
redact.showLayers=Show Layers (double-click to reset all layers to the default state) redact.showLayers=Katmanları Göster (tüm katmanları varsayılana döndürmek için çift tıklayın)
redact.colourPicker=Colour Picker redact.colourPicker=Renk Seçici
redact.findCurrentOutlineItem=Find current outline item redact.findCurrentOutlineItem=Geçerli Anahat Öğesini Bul
redact.applyChanges=Apply Changes redact.applyChanges=Değişiklikleri Uygula
#showJS #showJS
showJS.title=Javascript'i Göster showJS.title=Javascript'i Göster
@ -739,10 +739,10 @@ sanitizePDF.title=PDF'i Temizle
sanitizePDF.header=PDF dosyasını temizle sanitizePDF.header=PDF dosyasını temizle
sanitizePDF.selectText.1=JavaScript işlemlerini kaldır sanitizePDF.selectText.1=JavaScript işlemlerini kaldır
sanitizePDF.selectText.2=Gömülü dosyaları kaldır sanitizePDF.selectText.2=Gömülü dosyaları kaldır
sanitizePDF.selectText.3=Remove XMP metadata sanitizePDF.selectText.3=XMP meta verisini kaldır
sanitizePDF.selectText.4=Linkleri kaldır sanitizePDF.selectText.4=Linkleri kaldır
sanitizePDF.selectText.5=Fontları kaldır sanitizePDF.selectText.5=Fontları kaldır
sanitizePDF.selectText.6=Remove Document Info Metadata sanitizePDF.selectText.6=Belge Bilgisi Meta Verisini Kaldır
sanitizePDF.submit=PDF'i Temizle sanitizePDF.submit=PDF'i Temizle
@ -821,7 +821,7 @@ scalePages.submit=Gönder
certSign.title=Sertifika İmzalama certSign.title=Sertifika İmzalama
certSign.header=Sertifikanızla bir PDF imzalayın (Devam eden iş) certSign.header=Sertifikanızla bir PDF imzalayın (Devam eden iş)
certSign.selectPDF=İmzalamak için bir PDF Dosyası seçin: certSign.selectPDF=İmzalamak için bir PDF Dosyası seçin:
certSign.jksNote=Note: Sertifika türünüz aşağıda listelenmemişse, lütfen keytool komut satırı aracını kullanarak sertifikanızı bir Java Keystore (.jks) dosyasına dönüştürün. Ardından, aşağıdaki .jks dosyası seçeneğini seçin. certSign.jksNote=Not: Sertifika türünüz aşağıda listelenmemişse, lütfen keytool komut satırı aracını kullanarak sertifikanızı bir Java Keystore (.jks) dosyasına dönüştürün. Ardından, aşağıdaki .jks dosyası seçeneğini seçin.
certSign.selectKey=Özel Anahtar Dosyanızı Seçin (PKCS#8 formatında, .pem veya .der olabilir): certSign.selectKey=Özel Anahtar Dosyanızı Seçin (PKCS#8 formatında, .pem veya .der olabilir):
certSign.selectCert=Sertifika Dosyanızı Seçin (X.509 formatında, .pem veya .der olabilir): certSign.selectCert=Sertifika Dosyanızı Seçin (X.509 formatında, .pem veya .der olabilir):
certSign.selectP12=PKCS#12 Anahtar Deposu Dosyanızı Seçin (.p12 veya .pfx) (İsteğe bağlı, sağlanırsa, özel anahtarınızı ve sertifikanızı içermelidir): certSign.selectP12=PKCS#12 Anahtar Deposu Dosyanızı Seçin (.p12 veya .pfx) (İsteğe bağlı, sağlanırsa, özel anahtarınızı ve sertifikanızı içermelidir):
@ -867,9 +867,9 @@ compare.highlightColor.2=Vurgu Rengi 2:
compare.document.1=Belge 1 compare.document.1=Belge 1
compare.document.2=Belge 2 compare.document.2=Belge 2
compare.submit=Karşılaştır compare.submit=Karşılaştır
compare.complex.message=One or both of the provided documents are large files, accuracy of comparison may be reduced compare.complex.message=Verilen belgelerden biri veya her ikisi büyük dosyalar olduğundan karşılaştırma doğruluğu azalabilir
compare.large.file.message=One or Both of the provided documents are too large to process compare.large.file.message=Verilen belgelerden biri veya her ikisi işlenemeyecek kadar büyük
compare.no.text.message=One or both of the selected PDFs have no text content. Please choose PDFs with text for comparison. compare.no.text.message=Seçilen PDF'lerden biri veya her ikisinde metin içeriği yok. Lütfen karşılaştırma için metin içeren PDF'ler seçin.
#sign #sign
sign.title=İmzala sign.title=İmzala
@ -879,20 +879,20 @@ sign.draw=İmza Çiz
sign.text=Metin Girişi sign.text=Metin Girişi
sign.clear=Temizle sign.clear=Temizle
sign.add=Ekle sign.add=Ekle
sign.saved=Saved Signatures sign.saved=Kaydedilmiş İmzalar
sign.save=Save Signature sign.save=İmzayı Kaydet
sign.personalSigs=Personal Signatures sign.personalSigs=Kişisel İmzalar
sign.sharedSigs=Shared Signatures sign.sharedSigs=Paylaşılan İmzalar
sign.noSavedSigs=No saved signatures found sign.noSavedSigs=Kayıtlı imza bulunamadı
sign.addToAll=Add to all pages sign.addToAll=Tüm sayfalara ekle
sign.delete=Delete sign.delete=Sil
sign.first=First page sign.first=İlk sayfa
sign.last=Last page sign.last=Son sayfa
sign.next=Next page sign.next=Sonraki sayfa
sign.previous=Previous page sign.previous=Önceki sayfa
sign.maintainRatio=Toggle maintain aspect ratio sign.maintainRatio=Oranı korumayı değiştir
sign.undo=Undo sign.undo=Geri Al
sign.redo=Redo sign.redo=Yinele
#repair #repair
repair.title=Onar repair.title=Onar
@ -1003,7 +1003,7 @@ pdfOrganiser.mode.7=İlk Önce Kaldır
pdfOrganiser.mode.8=Sonuncuyu Kaldır pdfOrganiser.mode.8=Sonuncuyu Kaldır
pdfOrganiser.mode.9=İlk ve Sonu Kaldır pdfOrganiser.mode.9=İlk ve Sonu Kaldır
pdfOrganiser.mode.10=Tek-Çift Birleştirme pdfOrganiser.mode.10=Tek-Çift Birleştirme
pdfOrganiser.mode.11=Duplicate all pages pdfOrganiser.mode.11=Tüm sayfaları çoğalt
pdfOrganiser.placeholder=(örn. 1,3,2 veya 4-8,2,10-12 veya 2n-1) pdfOrganiser.placeholder=(örn. 1,3,2 veya 4-8,2,10-12 veya 2n-1)
@ -1011,39 +1011,39 @@ pdfOrganiser.placeholder=(örn. 1,3,2 veya 4-8,2,10-12 veya 2n-1)
multiTool.title=PDF Çoklu Araç multiTool.title=PDF Çoklu Araç
multiTool.header=PDF Çoklu Araç multiTool.header=PDF Çoklu Araç
multiTool.uploadPrompts=Dosya Adı multiTool.uploadPrompts=Dosya Adı
multiTool.selectAll=Select All multiTool.selectAll=Tümünü Seç
multiTool.deselectAll=Deselect All multiTool.deselectAll=Seçimi Kaldır
multiTool.selectPages=Page Select multiTool.selectPages=Sayfa Seç
multiTool.selectedPages=Selected Pages multiTool.selectedPages=Seçilen Sayfalar
multiTool.page=Page multiTool.page=Sayfa
multiTool.deleteSelected=Delete Selected multiTool.deleteSelected=Seçilenleri Sil
multiTool.downloadAll=Export multiTool.downloadAll=Dışa Aktar
multiTool.downloadSelected=Export Selected multiTool.downloadSelected=Seçilenleri Dışa Aktar
multiTool.insertPageBreak=Insert Page Break multiTool.insertPageBreak=Sayfa Sonu Ekle
multiTool.addFile=Add File multiTool.addFile=Dosya Ekle
multiTool.rotateLeft=Rotate Left multiTool.rotateLeft=Sola Döndür
multiTool.rotateRight=Rotate Right multiTool.rotateRight=Sağa Döndür
multiTool.split=Split multiTool.split=Böl
multiTool.moveLeft=Move Left multiTool.moveLeft=Sola Taşı
multiTool.moveRight=Move Right multiTool.moveRight=Sağa Taşı
multiTool.delete=Delete multiTool.delete=Sil
multiTool.dragDropMessage=Page(s) Selected multiTool.dragDropMessage=Sayfa(lar) Seçildi
multiTool.undo=Undo multiTool.undo=Geri Al
multiTool.redo=Redo multiTool.redo=Yinele
#decrypt #decrypt
decrypt.passwordPrompt=This file is password-protected. Please enter the password: decrypt.passwordPrompt=Bu dosya parola korumalı. Lütfen parolayı girin:
decrypt.cancelled=Operation cancelled for PDF: {0} decrypt.cancelled=PDF için işlem iptal edildi: {0}
decrypt.noPassword=No password provided for encrypted PDF: {0} decrypt.noPassword=Şifrelenmiş PDF için parola girilmedi: {0}
decrypt.invalidPassword=Please try again with the correct password. decrypt.invalidPassword=Lütfen doğru parolayla tekrar deneyin.
decrypt.invalidPasswordHeader=Incorrect password or unsupported encryption for PDF: {0} decrypt.invalidPasswordHeader=PDF için yanlış parola veya desteklenmeyen şifreleme: {0}
decrypt.unexpectedError=There was an error processing the file. Please try again. decrypt.unexpectedError=Dosya işlenirken bir hata oluştu. Lütfen tekrar deneyin.
decrypt.serverError=Server error while decrypting: {0} decrypt.serverError=Şifre çözme sırasında sunucu hatası: {0}
decrypt.success=File decrypted successfully. decrypt.success=Dosyanın şifresi başarıyla çözüldü.
#multiTool-advert #multiTool-advert
multiTool-advert.message=This feature is also available in our <a href="{0}">multi-tool page</a>. Check it out for enhanced page-by-page UI and additional features! multiTool-advert.message=Bu özellik <a href="{0}">çoklu araçlar sayfamızda</a> da mevcuttur. Sayfa sayfa gelişmiş arayüz ve ek özellikler için göz atın!
#view pdf #view pdf
viewPdf.title=View/Edit PDF viewPdf.title=View/Edit PDF
@ -1306,21 +1306,21 @@ licenses.license=Lisans
survey.nav=Anket survey.nav=Anket
survey.title=Stirling-PDF Anketi survey.title=Stirling-PDF Anketi
survey.description=Stirling-PDF'te izleme yok, bu yüzden Stirling-PDF'i iyileştirmek için kullanıcılarımızdan geri bildirim almak istiyoruz! survey.description=Stirling-PDF'te izleme yok, bu yüzden Stirling-PDF'i iyileştirmek için kullanıcılarımızdan geri bildirim almak istiyoruz!
survey.changes=Stirling-PDF has changed since the last survey! To find out more please check our blog post here: survey.changes=Stirling-PDF son ankete göre değişti! Daha fazla bilgi için blog yazımıza göz atın:
survey.changes2=With these changes we are getting paid business support and funding survey.changes2=Bu değişikliklerle birlikte ücretli kurumsal destek ve fon alıyoruz
survey.please=Lütfen anketimize katılmayı düşünün! survey.please=Lütfen anketimize katılmayı düşünün!
survey.disabled=(Anket açılır penceresi sonraki güncellemelerde devre dışı bırakılacak ancak sayfanın alt kısmında yer alacaktır) survey.disabled=(Anket açılır penceresi sonraki güncellemelerde devre dışı bırakılacak ancak sayfanın alt kısmında yer alacaktır)
survey.button=Ankete Katıl survey.button=Ankete Katıl
survey.dontShowAgain=Tekrar gösterme survey.dontShowAgain=Tekrar gösterme
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.1=Eğer Stirling PDF'i iş yerinizde kullanıyorsanız, sizinle görüşmek isteriz. 15 dakikalık bir kullanıcı keşif oturumu karşılığında teknik destek sunuyoruz.
survey.meeting.2=This is a chance to: survey.meeting.2=Bu fırsat sayesinde:
survey.meeting.3=Get help with deployment, integrations, or troubleshooting survey.meeting.3=Kurulum, entegrasyonlar veya sorun giderme konularında yardım alabilirsiniz
survey.meeting.4=Provide direct feedback on performance, edge cases, and feature gaps survey.meeting.4=Performans, uç durumlar ve eksik özellikler hakkında doğrudan geri bildirim sağlayabilirsiniz
survey.meeting.5=Help us refine Stirling PDF for real-world enterprise use survey.meeting.5=Stirling PDFi gerçek dünya kurumsal kullanımı için daha iyi hale getirmemize yardımcı olabilirsiniz
survey.meeting.6=If you're interested, you can book time with our team directly. (English speaking only) survey.meeting.6=İlgileniyorsanız, ekibimizden doğrudan zaman ayırabilirsiniz. (Yalnızca İngilizce)
survey.meeting.7=Looking forward to digging into your use cases and making Stirling PDF even better! survey.meeting.7=Kullanım senaryolarınızı dinlemeyi ve Stirling PDFi daha da iyi hale getirmeyi sabırsızlıkla bekliyoruz!
survey.meeting.notInterested=Not a business and/or interested in a meeting? survey.meeting.notInterested=Kurumsal kullanıcı değilseniz ve/veya görüşmeye ilgi duymuyorsanız
survey.meeting.button=Book meeting survey.meeting.button=Görüşme Planla
#error #error
error.sorry=Sorun için özür dileriz! error.sorry=Sorun için özür dileriz!
@ -1343,90 +1343,90 @@ removeImage.removeImage=Resmi kaldır
removeImage.submit=Resmi kaldır removeImage.submit=Resmi kaldır
splitByChapters.title=Split PDF by Chapters splitByChapters.title=PDF'yi Bölümlere Ayır
splitByChapters.header=Split PDF by Chapters splitByChapters.header=PDF'yi Bölümlere Ayır
splitByChapters.bookmarkLevel=Bookmark Level splitByChapters.bookmarkLevel=Yer imi Seviyesi
splitByChapters.includeMetadata=Include Metadata splitByChapters.includeMetadata=Meta Veriyi Dahil Et
splitByChapters.allowDuplicates=Allow Duplicates splitByChapters.allowDuplicates=Yinelenen Yer İmlerine İzin Ver
splitByChapters.desc.1=This tool splits a PDF file into multiple PDFs based on its chapter structure. splitByChapters.desc.1=Bu araç, bir PDF dosyasını bölüm yapısına göre birden fazla PDF'ye böler.
splitByChapters.desc.2=Bookmark Level: Choose the level of bookmarks to use for splitting (0 for top-level, 1 for second-level, etc.). splitByChapters.desc.2=Bölme için kullanılacak yer imi seviyesini seçin (0 en üst seviye, 1 ikinci seviye vb.).
splitByChapters.desc.3=Include Metadata: If checked, the original PDF's metadata will be included in each split PDF. splitByChapters.desc.3=Meta Veriyi Dahil Et: İşaretlenirse, orijinal PDF'nin meta verisi her bir bölünmüş PDF'ye dahil edilir.
splitByChapters.desc.4=Allow Duplicates: If checked, allows multiple bookmarks on the same page to create separate PDFs. splitByChapters.desc.4=Yinelenen Yer İmlerine İzin Ver: İşaretlenirse, aynı sayfadaki birden fazla yer imi ayrı PDF'ler oluşturabilir.
splitByChapters.submit=Split PDF splitByChapters.submit=PDF'yi Ayır
#File Chooser #File Chooser
fileChooser.click=Click fileChooser.click=Seç
fileChooser.or=or fileChooser.or=veya
fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDrop=Sürükle & Bırak
fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropPDF=PDF dosyasını Sürükle & Bırak
fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.dragAndDropImage=Görsel dosyasını Sürükle & Bırak
fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here fileChooser.hoveredDragAndDrop=Dosya(lar)ı buraya sürükleyip bırakın
fileChooser.extractPDF=Extracting... fileChooser.extractPDF=PDF Çıkarılıyor...
#release notes #release notes
releases.footer=Releases releases.footer=Sürümler
releases.title=Release Notes releases.title=Sürüm Notları
releases.header=Release Notes releases.header=Sürüm Notları
releases.current.version=Current Release releases.current.version=Mevcut Sürüm
releases.note=Release notes are only available in English releases.note=Sürüm notları yalnızca İngilizce dilinde mevcuttur
#Validate Signature #Validate Signature
validateSignature.title=Validate PDF Signatures validateSignature.title=PDF İmzalarını Doğrula
validateSignature.header=Validate Digital Signatures validateSignature.header=Dijital İmzaları Doğrula
validateSignature.selectPDF=Select signed PDF file validateSignature.selectPDF=İmzalanmış PDF dosyasını seçin
validateSignature.submit=Validate Signatures validateSignature.submit=İmzaları Doğrula
validateSignature.results=Validation Results validateSignature.results=Doğrulama Sonuçları
validateSignature.status=Status validateSignature.status=Durum
validateSignature.signer=Signer validateSignature.signer=İmzalayan
validateSignature.date=Date validateSignature.date=Tarih
validateSignature.reason=Reason validateSignature.reason=Gerekçe
validateSignature.location=Location validateSignature.location=Konum
validateSignature.noSignatures=No digital signatures found in this document validateSignature.noSignatures=Bu belgede dijital imza bulunamadı
validateSignature.status.valid=Valid validateSignature.status.valid=Geçerli
validateSignature.status.invalid=Invalid validateSignature.status.invalid=Geçersiz
validateSignature.chain.invalid=Certificate chain validation failed - cannot verify signer's identity validateSignature.chain.invalid=Sertifika zinciri doğrulaması başarısız - imzalayanın kimliği doğrulanamıyor
validateSignature.trust.invalid=Certificate not in trust store - source cannot be verified validateSignature.trust.invalid=Sertifika güvenilir mağazada değil - kaynak doğrulanamıyor
validateSignature.cert.expired=Certificate has expired validateSignature.cert.expired=Sertifika süresi dolmuş
validateSignature.cert.revoked=Certificate has been revoked validateSignature.cert.revoked=Sertifika iptal edilmiş
validateSignature.signature.info=Signature Information validateSignature.signature.info=İmza Bilgisi
validateSignature.signature=Signature validateSignature.signature=İmza
validateSignature.signature.mathValid=Signature is mathematically valid BUT: validateSignature.signature.mathValid=İmza matematiksel olarak geçerli, ANCAK:
validateSignature.selectCustomCert=Custom Certificate File X.509 (Optional) validateSignature.selectCustomCert=Özel Sertifika Dosyası X.509 (İsteğe Bağlı)
validateSignature.cert.info=Certificate Details validateSignature.cert.info=Sertifika Detayları
validateSignature.cert.issuer=Issuer validateSignature.cert.issuer=Veren
validateSignature.cert.subject=Subject validateSignature.cert.subject=Konu
validateSignature.cert.serialNumber=Serial Number validateSignature.cert.serialNumber=Seri Numarası
validateSignature.cert.validFrom=Valid From validateSignature.cert.validFrom=Geçerlilik Başlangıcı
validateSignature.cert.validUntil=Valid Until validateSignature.cert.validUntil=Geçerlilik Bitişi
validateSignature.cert.algorithm=Algorithm validateSignature.cert.algorithm=Algoritma
validateSignature.cert.keySize=Key Size validateSignature.cert.keySize=Anahtar Boyutu
validateSignature.cert.version=Version validateSignature.cert.version=Sürüm
validateSignature.cert.keyUsage=Key Usage validateSignature.cert.keyUsage=Anahtar Kullanımı
validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.selfSigned=Kendi Kendine İmzalı
validateSignature.cert.bits=bits validateSignature.cert.bits=bits
#################### ####################
# Cookie banner # # Cookie banner #
#################### ####################
cookieBanner.popUp.title=How we use Cookies cookieBanner.popUp.title=Çerezleri Nasıl Kullanıyoruz
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.1=Stirling PDFyi sizin için daha iyi çalıştırmak için çerezler ve diğer teknolojileri kullanıyoruz — araçlarımızı geliştirmemize ve seveceğiniz özellikler oluşturmamıza yardımcı oluyorlar.
cookieBanner.popUp.description.2=If youd rather not, clicking 'No Thanks' will only enable the essential cookies needed to keep things running smoothly. cookieBanner.popUp.description.2=İstemiyorsanız, Hayır Teşekkürler butonuna tıklayarak yalnızca temel, gerekli çerezleri etkinleştirebilirsiniz.
cookieBanner.popUp.acceptAllBtn=Okay cookieBanner.popUp.acceptAllBtn=Tamam
cookieBanner.popUp.acceptNecessaryBtn=No Thanks cookieBanner.popUp.acceptNecessaryBtn=Hayır Teşekkürler
cookieBanner.popUp.showPreferencesBtn=Manage preferences cookieBanner.popUp.showPreferencesBtn=Tercihleri Yönet
cookieBanner.preferencesModal.title=Consent Preferences Center cookieBanner.preferencesModal.title=Onay Tercih Merkezi
cookieBanner.preferencesModal.acceptAllBtn=Accept all cookieBanner.preferencesModal.acceptAllBtn=Tümünü Kabul Et
cookieBanner.preferencesModal.acceptNecessaryBtn=Reject all cookieBanner.preferencesModal.acceptNecessaryBtn=Tümünü Reddet
cookieBanner.preferencesModal.savePreferencesBtn=Save preferences cookieBanner.preferencesModal.savePreferencesBtn=Tercihleri Kaydet
cookieBanner.preferencesModal.closeIconLabel=Close modal cookieBanner.preferencesModal.closeIconLabel=Kapat
cookieBanner.preferencesModal.serviceCounterLabel=Service|Services cookieBanner.preferencesModal.serviceCounterLabel=Hizmet|Hizmetler
cookieBanner.preferencesModal.subtitle=Cookie Usage cookieBanner.preferencesModal.subtitle=Çerez Kullanımı
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.1=Stirling PDF, deneyiminizi geliştirmek ve araçlarımızın nasıl kullanıldığını anlamak için çerezler ve benzeri teknolojiler kullanır. Bu, performansı iyileştirmemize, önemsediğiniz özellikleri geliştirmemize ve kullanıcılarımıza sürekli destek sağlamamıza yardımcı olur.
cookieBanner.preferencesModal.description.2=Stirling PDF cannot—and will never—track or access the content of the documents you use. cookieBanner.preferencesModal.description.2=Stirling PDF, kullandığınız belgelerin içeriğini asla takip edemez veya erişemez.
cookieBanner.preferencesModal.description.3=Your privacy and trust are at the core of what we do. cookieBanner.preferencesModal.description.3=Gizliliğiniz ve güveniniz bizim için en önemli şeydir.
cookieBanner.preferencesModal.necessary.title.1=Strictly Necessary Cookies cookieBanner.preferencesModal.necessary.title.1=Kesinlikle Gerekli Çerezler
cookieBanner.preferencesModal.necessary.title.2=Always Enabled cookieBanner.preferencesModal.necessary.title.2=Her Zaman Etkin
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 cant be turned off. cookieBanner.preferencesModal.necessary.description=Bu çerezler, web sitesinin düzgün çalışabilmesi için gereklidir. Gizlilik tercihlerinizi ayarlama, giriş yapma ve form doldurma gibi temel işlevleri mümkün kılarlar — bu nedenle devre dışı bırakılamazlar.
cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.title=Analitik
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.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.

View File

@ -10,9 +10,9 @@ multiPdfPrompt=選擇多個 PDF 檔案
multiPdfDropPrompt=選擇(或拖放)所有需要的 PDF 檔案 multiPdfDropPrompt=選擇(或拖放)所有需要的 PDF 檔案
imgPrompt=選擇圖片 imgPrompt=選擇圖片
genericSubmit=送出 genericSubmit=送出
uploadLimit=Maximum file size: uploadLimit=檔案大小上限:
uploadLimitExceededSingular=is too large. Maximum allowed size is uploadLimitExceededSingular=太大。允許的最大檔案大小為
uploadLimitExceededPlural=are too large. Maximum allowed size is uploadLimitExceededPlural=太大。允許的最大檔案大小為
processTimeWarning=警告:此過程可能長達一分鐘,具體取決於檔案大小 processTimeWarning=警告:此過程可能長達一分鐘,具體取決於檔案大小
pageOrderPrompt=自訂頁面順序(輸入以逗號分隔的頁碼或函式,如 2n+1 pageOrderPrompt=自訂頁面順序(輸入以逗號分隔的頁碼或函式,如 2n+1
pageSelectionPrompt=自訂頁面選擇(輸入以逗號分隔的頁碼 1、5、6 或 2n+1 等函式的清單): pageSelectionPrompt=自訂頁面選擇(輸入以逗號分隔的頁碼 1、5、6 或 2n+1 等函式的清單):
@ -237,30 +237,30 @@ adminUserSettings.activeUsers=使用中的使用者:
adminUserSettings.disabledUsers=已停用的使用者: adminUserSettings.disabledUsers=已停用的使用者:
adminUserSettings.totalUsers=使用者總數: adminUserSettings.totalUsers=使用者總數:
adminUserSettings.lastRequest=最後請求時間 adminUserSettings.lastRequest=最後請求時間
adminUserSettings.usage=查看使用方式 adminUserSettings.usage=檢視使用情況
endpointStatistics.title=端點統計資料 endpointStatistics.title=端點統計
endpointStatistics.header=端點統計資料 endpointStatistics.header=端點統計
endpointStatistics.top10=前 10 endpointStatistics.top10=前 10
endpointStatistics.top20=前 20 endpointStatistics.top20=前 20
endpointStatistics.all=選擇全部 endpointStatistics.all=全部
endpointStatistics.refresh=重新載入 endpointStatistics.refresh=重新整理
endpointStatistics.includeHomepage=包含頁 ('/') endpointStatistics.includeHomepage=包含頁 ('/')
endpointStatistics.includeLoginPage=包含登入頁面 ('/login') endpointStatistics.includeLoginPage=包含登入頁面 ('/login')
endpointStatistics.totalEndpoints=全部端點 endpointStatistics.totalEndpoints=端點總數
endpointStatistics.totalVisits=瀏覽次數 endpointStatistics.totalVisits=造訪次數
endpointStatistics.showing=顯示中 endpointStatistics.showing=顯示中
endpointStatistics.selectedVisits=所選瀏覽次數 endpointStatistics.selectedVisits=選取的造訪次數
endpointStatistics.endpoint=端點 endpointStatistics.endpoint=端點
endpointStatistics.visits=次數 endpointStatistics.visits=訪次數
endpointStatistics.percentage=百分比 endpointStatistics.percentage=百分比
endpointStatistics.loading=載入中... endpointStatistics.loading=載入中...
endpointStatistics.failedToLoad=無法載入端點。請嘗試重新載入 endpointStatistics.failedToLoad=無法載入端點資料。請嘗試重新整理
endpointStatistics.home= endpointStatistics.home=
endpointStatistics.login=登入 endpointStatistics.login=登入
endpointStatistics.top=最多瀏覽 endpointStatistics.top=
endpointStatistics.numberOfVisits=瀏覽次數 endpointStatistics.numberOfVisits=造訪次數
endpointStatistics.visitsTooltip=瀏覽次數: {0} ({1}% of total) endpointStatistics.visitsTooltip=造訪次數:{0}(總數的 {1}%
endpointStatistics.retry=重試 endpointStatistics.retry=重試
database.title=資料庫匯入/匯出 database.title=資料庫匯入/匯出
@ -891,7 +891,7 @@ sign.last=最後一頁
sign.next=下一頁 sign.next=下一頁
sign.previous=上一頁 sign.previous=上一頁
sign.maintainRatio=切換維持長寬比 sign.maintainRatio=切換維持長寬比
sign.undo= sign.undo=
sign.redo=重做 sign.redo=重做
#repair #repair
@ -1319,7 +1319,7 @@ survey.meeting.4=針對效能、特殊案例和缺少的功能提供直接意見
survey.meeting.5=協助我們改良 Stirling PDF 以符合實際企業使用需求 survey.meeting.5=協助我們改良 Stirling PDF 以符合實際企業使用需求
survey.meeting.6=如果您有興趣,可以直接預約時間與我們的團隊交流。(僅提供英語服務) survey.meeting.6=如果您有興趣,可以直接預約時間與我們的團隊交流。(僅提供英語服務)
survey.meeting.7=期待深入了解您的使用情境,讓 Stirling PDF 變得更好! survey.meeting.7=期待深入了解您的使用情境,讓 Stirling PDF 變得更好!
survey.meeting.notInterested=不是企業用戶或對會議不感興趣? survey.meeting.notInterested=不是企業使用者或對會議不感興趣?
survey.meeting.button=預約會議 survey.meeting.button=預約會議
#error #error
@ -1418,11 +1418,11 @@ cookieBanner.preferencesModal.title=喜好設定中心
cookieBanner.preferencesModal.acceptAllBtn=全部接受 cookieBanner.preferencesModal.acceptAllBtn=全部接受
cookieBanner.preferencesModal.acceptNecessaryBtn=全部拒絕 cookieBanner.preferencesModal.acceptNecessaryBtn=全部拒絕
cookieBanner.preferencesModal.savePreferencesBtn=儲存設定 cookieBanner.preferencesModal.savePreferencesBtn=儲存設定
cookieBanner.preferencesModal.closeIconLabel=Close modal cookieBanner.preferencesModal.closeIconLabel=關閉視窗
cookieBanner.preferencesModal.serviceCounterLabel=服務|服務 cookieBanner.preferencesModal.serviceCounterLabel=服務|服務
cookieBanner.preferencesModal.subtitle=Cookies 的用途 cookieBanner.preferencesModal.subtitle=Cookies 的用途
cookieBanner.preferencesModal.description.1=Stirling PDF 使用 Cookies 與其他相似技術去改善您的體驗和分析您如何使用我們的工具。這有助於我們改善效能、開發您注目的功能,和提供使用者協助。 cookieBanner.preferencesModal.description.1=Stirling PDF 使用 Cookies 與其他相似技術去改善您的體驗和分析您如何使用我們的工具。這有助於我們改善效能、開發您注目的功能,和提供使用者協助。
cookieBanner.preferencesModal.description.2=Stirling PDF 不會——且永遠——追蹤或存取您的文件。 cookieBanner.preferencesModal.description.2=Stirling PDF 不能——且永遠不會——追蹤或存取您的文件。
cookieBanner.preferencesModal.description.3=您的隱私和信任是我們的核心理念。 cookieBanner.preferencesModal.description.3=您的隱私和信任是我們的核心理念。
cookieBanner.preferencesModal.necessary.title.1=必要的 Cookies cookieBanner.preferencesModal.necessary.title.1=必要的 Cookies
cookieBanner.preferencesModal.necessary.title.2=永遠開啟 cookieBanner.preferencesModal.necessary.title.2=永遠開啟

View File

@ -544,21 +544,17 @@ const DraggableUtils = {
angle: rotateAngle, // Store rotation angle: rotateAngle, // Store rotation
}; };
// Auxiliary variables const pageRotation = page.getRotation();
let widthAdjusted = page.getWidth();
let heightAdjusted = page.getHeight();
const rotation = page.getRotation();
// Normalize page rotation angle // Normalize page rotation angle
let normalizedAngle = rotation.angle % 360; let normalizedAngle = pageRotation.angle % 360;
if (normalizedAngle < 0) { if (normalizedAngle < 0) {
normalizedAngle += 360; normalizedAngle += 360;
} }
// Adjust page dimensions for rotated pages // Determine the viewed page dimensions based on the normalized rotation angle
if (normalizedAngle === 90 || normalizedAngle === 270) { let viewedPageWidth = (normalizedAngle === 90 || normalizedAngle === 270) ? page.getHeight() : page.getWidth();
[widthAdjusted, heightAdjusted] = [heightAdjusted, widthAdjusted]; let viewedPageHeight = (normalizedAngle === 90 || normalizedAngle === 270) ? page.getWidth() : page.getHeight();
}
const draggablePositionRelative = { const draggablePositionRelative = {
x: draggablePositionPixels.x / offsetWidth, x: draggablePositionPixels.x / offsetWidth,
@ -569,51 +565,58 @@ const DraggableUtils = {
}; };
const draggablePositionPdf = { const draggablePositionPdf = {
x: draggablePositionRelative.x * widthAdjusted, x: draggablePositionRelative.x * viewedPageWidth,
y: draggablePositionRelative.y * heightAdjusted, y: draggablePositionRelative.y * viewedPageHeight,
width: draggablePositionRelative.width * widthAdjusted, width: draggablePositionRelative.width * viewedPageWidth,
height: draggablePositionRelative.height * heightAdjusted, height: draggablePositionRelative.height * viewedPageHeight,
}; };
// Calculate position based on normalized page rotation // Calculate position based on normalized page rotation
let x = draggablePositionPdf.x; let x = draggablePositionPdf.x;
let y = heightAdjusted - draggablePositionPdf.y - draggablePositionPdf.height; let y = viewedPageHeight - draggablePositionPdf.y - draggablePositionPdf.height;
let originx = x + draggablePositionPdf.width / 2;
let originy = heightAdjusted - draggablePositionPdf.y - draggablePositionPdf.height / 2;
if (normalizedAngle === 90) { if (normalizedAngle === 90) {
x = draggablePositionPdf.y + draggablePositionPdf.height; x = draggablePositionPdf.y;
y = draggablePositionPdf.x; y = draggablePositionPdf.x;
} else if (normalizedAngle === 180) { } else if (normalizedAngle === 180) {
x = widthAdjusted - draggablePositionPdf.x; x = viewedPageWidth - draggablePositionPdf.x - draggablePositionPdf.width;
y = draggablePositionPdf.y + draggablePositionPdf.height; y = draggablePositionPdf.y;
} else if (normalizedAngle === 270) { } else if (normalizedAngle === 270) {
x = heightAdjusted - draggablePositionPdf.y - draggablePositionPdf.height; x = viewedPageHeight - draggablePositionPdf.y - draggablePositionPdf.height;
y = widthAdjusted - draggablePositionPdf.x; y = viewedPageWidth - draggablePositionPdf.x - draggablePositionPdf.width;
} }
// let angle = draggablePositionPixels.angle % 360;
// if (angle < 0) angle += 360; // Normalize to positive angle // Convert rotation angle to radians
const radians = -draggablePositionPixels.angle; // Convert angle to radians let pageRotationInRadians = PDFLib.degreesToRadians(normalizedAngle);
const rotationInRadians = pageRotationInRadians - draggablePositionPixels.angle;
// Calculate the center of the image
const imageCenterX = x + draggablePositionPdf.width / 2;
const imageCenterY = y + draggablePositionPdf.height / 2;
// Apply transformations to rotate the image about its center
page.pushOperators( page.pushOperators(
PDFLib.pushGraphicsState(), PDFLib.pushGraphicsState(),
PDFLib.concatTransformationMatrix(1, 0, 0, 1, originx, originy), PDFLib.concatTransformationMatrix(1, 0, 0, 1, imageCenterX, imageCenterY), // Translate to center
PDFLib.concatTransformationMatrix( PDFLib.concatTransformationMatrix(
Math.cos(radians), Math.cos(rotationInRadians),
Math.sin(radians), Math.sin(rotationInRadians),
-Math.sin(radians), -Math.sin(rotationInRadians),
Math.cos(radians), Math.cos(rotationInRadians),
0, 0,
0 0
), ), // Rotate
PDFLib.concatTransformationMatrix(1, 0, 0, 1, -1 * originx, -1 * originy) PDFLib.concatTransformationMatrix(1, 0, 0, 1, -imageCenterX, -imageCenterY) // Translate back
); );
page.drawImage(pdfImageObject, { page.drawImage(pdfImageObject, {
x: x, x: x,
y: y, y: y,
width: draggablePositionPdf.width, width: draggablePositionPdf.width,
height: draggablePositionPdf.height, height: draggablePositionPdf.height,
}); });
// Restore the graphics state
page.pushOperators(PDFLib.popGraphicsState()); page.pushOperators(PDFLib.popGraphicsState());
} }
} }

View File

@ -170,7 +170,7 @@ function setupFileInput(chooser) {
inputContainer.querySelector('#fileInputText').innerHTML = window.fileInput.loading; inputContainer.querySelector('#fileInputText').innerHTML = window.fileInput.loading;
async function checkZipFile() { async function checkZipFile() {
const hasZipFiles = allFiles.some(file => file.type && zipTypes.includes(file.type)); const hasZipFiles = allFiles.some(file => ((typeof(file.type) != undefined) && zipTypes.includes(file.type)));
// Only change to extractPDF message if we actually have zip files // Only change to extractPDF message if we actually have zip files
if (hasZipFiles) { if (hasZipFiles) {