mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-04-19 19:21:18 +00:00
Compare commits
55 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c388ba73c1 | ||
![]() |
54f2e012f5 | ||
![]() |
ef6c0f2383 | ||
![]() |
7bdefb69c2 | ||
![]() |
49e3706a30 | ||
![]() |
06a2360247 | ||
![]() |
3fda82e39d | ||
![]() |
a1013a339a | ||
![]() |
5430e6d159 | ||
![]() |
6906344178 | ||
![]() |
4bbbbdfafc | ||
![]() |
def0552f24 | ||
![]() |
de9e3edf5c | ||
![]() |
1e0e942d93 | ||
![]() |
6da84338dc | ||
![]() |
1c27944329 | ||
![]() |
5a0567cf6a | ||
![]() |
63a9e40aa9 | ||
![]() |
9f5f333f57 | ||
![]() |
485fc65798 | ||
![]() |
ac231e0c92 | ||
![]() |
f0ed60a933 | ||
![]() |
1c655f0ba0 | ||
![]() |
e24e420142 | ||
![]() |
fadb5ee5a9 | ||
![]() |
c4f59487e9 | ||
![]() |
fe3915ab5f | ||
![]() |
c278de5737 | ||
![]() |
7e726f8ac9 | ||
![]() |
d47dbef41e | ||
![]() |
fd34782bcc | ||
![]() |
4220a28276 | ||
![]() |
7fa302f322 | ||
![]() |
2d646c1e18 | ||
![]() |
322cb88649 | ||
![]() |
b14c00b627 | ||
![]() |
84127867a0 | ||
![]() |
6ae9484e5b | ||
![]() |
3365ea4c91 | ||
![]() |
ad52806a5e | ||
![]() |
5159fd9f29 | ||
![]() |
5cda961756 | ||
![]() |
cd2cbb927c | ||
![]() |
2a2aabc359 | ||
![]() |
c93722ec05 | ||
![]() |
c57f68551f | ||
![]() |
8e9b364052 | ||
![]() |
ec77123789 | ||
![]() |
d039224b58 | ||
![]() |
211383bbf9 | ||
![]() |
6887e15610 | ||
![]() |
7f8e3d676d | ||
![]() |
4e63a684b5 | ||
![]() |
b28cabe63b | ||
![]() |
1de1f43762 |
@ -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": [
|
||||||
|
@ -6,13 +6,15 @@ on:
|
|||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
issues: write # Required for adding reactions to comments
|
||||||
|
pull-requests: read # Required for reading PR information
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check-comment:
|
check-comment:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
|
issues: write
|
||||||
pull-requests: read
|
pull-requests: read
|
||||||
issues: read
|
|
||||||
if: |
|
if: |
|
||||||
github.event.issue.pull_request &&
|
github.event.issue.pull_request &&
|
||||||
(
|
(
|
||||||
@ -34,6 +36,8 @@ jobs:
|
|||||||
pr_number: ${{ steps.get-pr.outputs.pr_number }}
|
pr_number: ${{ steps.get-pr.outputs.pr_number }}
|
||||||
pr_repository: ${{ steps.get-pr-info.outputs.repository }}
|
pr_repository: ${{ steps.get-pr-info.outputs.repository }}
|
||||||
pr_ref: ${{ steps.get-pr-info.outputs.ref }}
|
pr_ref: ${{ steps.get-pr-info.outputs.ref }}
|
||||||
|
comment_id: ${{ github.event.comment.id }}
|
||||||
|
enable_security: ${{ steps.check-security-flag.outputs.enable_security }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Harden Runner
|
- name: Harden Runner
|
||||||
@ -41,6 +45,14 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
|
# Generate GitHub App token
|
||||||
|
- name: Generate GitHub App Token
|
||||||
|
id: generate-token
|
||||||
|
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||||
|
with:
|
||||||
|
app-id: ${{ secrets.GH_APP_ID }}
|
||||||
|
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
|
||||||
|
|
||||||
- name: Get PR data
|
- name: Get PR data
|
||||||
id: get-pr
|
id: get-pr
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
@ -73,11 +85,46 @@ jobs:
|
|||||||
core.setOutput('repository', repository);
|
core.setOutput('repository', repository);
|
||||||
core.setOutput('ref', pr.head.ref);
|
core.setOutput('ref', pr.head.ref);
|
||||||
|
|
||||||
|
- name: Check for security/login flag
|
||||||
|
id: check-security-flag
|
||||||
|
env:
|
||||||
|
COMMENT_BODY: ${{ github.event.comment.body }}
|
||||||
|
run: |
|
||||||
|
if [[ "$COMMENT_BODY" == *"security"* ]] || [[ "$COMMENT_BODY" == *"login"* ]]; then
|
||||||
|
echo "Security flags detected in comment"
|
||||||
|
echo "enable_security=true" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "No security flags detected in comment"
|
||||||
|
echo "enable_security=false" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Add 'in_progress' reaction to comment
|
||||||
|
id: add-eyes-reaction
|
||||||
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
|
with:
|
||||||
|
github-token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
script: |
|
||||||
|
console.log(`Adding eyes reaction to comment ID: ${context.payload.comment.id}`);
|
||||||
|
try {
|
||||||
|
const { data: reaction } = await github.rest.reactions.createForIssueComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
comment_id: context.payload.comment.id,
|
||||||
|
content: 'eyes'
|
||||||
|
});
|
||||||
|
console.log(`Added reaction with ID: ${reaction.id}`);
|
||||||
|
return { success: true, id: reaction.id };
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Failed to add reaction: ${error.message}`);
|
||||||
|
console.error(error);
|
||||||
|
return { success: false, error: error.message };
|
||||||
|
}
|
||||||
|
|
||||||
deploy-pr:
|
deploy-pr:
|
||||||
needs: check-comment
|
needs: check-comment
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
pull-requests: write
|
contents: read
|
||||||
issues: write
|
issues: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@ -86,6 +133,13 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
|
- name: Generate GitHub App Token
|
||||||
|
id: generate-token
|
||||||
|
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||||
|
with:
|
||||||
|
app-id: ${{ secrets.GH_APP_ID }}
|
||||||
|
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
|
||||||
|
|
||||||
- name: Checkout PR
|
- name: Checkout PR
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
@ -94,15 +148,20 @@ jobs:
|
|||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Set up JDK
|
- name: Set up JDK
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "17"
|
java-version: "17"
|
||||||
distribution: "temurin"
|
distribution: "temurin"
|
||||||
|
|
||||||
- name: Run Gradle Command
|
- name: Run Gradle Command
|
||||||
run: ./gradlew clean build
|
run: |
|
||||||
|
if [ "${{ needs.check-comment.outputs.enable_security }}" == "true" ]; then
|
||||||
|
export DOCKER_ENABLE_SECURITY=true
|
||||||
|
else
|
||||||
|
export DOCKER_ENABLE_SECURITY=false
|
||||||
|
fi
|
||||||
|
./gradlew clean build
|
||||||
env:
|
env:
|
||||||
DOCKER_ENABLE_SECURITY: false
|
|
||||||
STIRLING_PDF_DESKTOP_UI: false
|
STIRLING_PDF_DESKTOP_UI: false
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
@ -127,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
|
||||||
@ -137,9 +196,21 @@ jobs:
|
|||||||
sudo chmod 600 ../private.key
|
sudo chmod 600 ../private.key
|
||||||
|
|
||||||
- name: Deploy to VPS
|
- name: Deploy to VPS
|
||||||
|
id: deploy
|
||||||
run: |
|
run: |
|
||||||
|
# Set security settings based on flags
|
||||||
|
if [ "${{ needs.check-comment.outputs.enable_security }}" == "true" ]; then
|
||||||
|
DOCKER_SECURITY="true"
|
||||||
|
LOGIN_SECURITY="true"
|
||||||
|
SECURITY_STATUS="🔒 Security Enabled"
|
||||||
|
else
|
||||||
|
DOCKER_SECURITY="false"
|
||||||
|
LOGIN_SECURITY="false"
|
||||||
|
SECURITY_STATUS="Security Disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
# First create the docker-compose content locally
|
# First create the docker-compose content locally
|
||||||
cat > docker-compose.yml << 'EOF'
|
cat > docker-compose.yml << EOF
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
services:
|
services:
|
||||||
stirling-pdf:
|
stirling-pdf:
|
||||||
@ -152,8 +223,8 @@ jobs:
|
|||||||
- /stirling/PR-${{ needs.check-comment.outputs.pr_number }}/config:/configs:rw
|
- /stirling/PR-${{ needs.check-comment.outputs.pr_number }}/config:/configs:rw
|
||||||
- /stirling/PR-${{ needs.check-comment.outputs.pr_number }}/logs:/logs:rw
|
- /stirling/PR-${{ needs.check-comment.outputs.pr_number }}/logs:/logs:rw
|
||||||
environment:
|
environment:
|
||||||
DOCKER_ENABLE_SECURITY: "false"
|
DOCKER_ENABLE_SECURITY: "${DOCKER_SECURITY}"
|
||||||
SECURITY_ENABLELOGIN: "false"
|
SECURITY_ENABLELOGIN: "${LOGIN_SECURITY}"
|
||||||
SYSTEM_DEFAULTLOCALE: en-GB
|
SYSTEM_DEFAULTLOCALE: en-GB
|
||||||
UI_APPNAME: "Stirling-PDF PR#${{ needs.check-comment.outputs.pr_number }}"
|
UI_APPNAME: "Stirling-PDF PR#${{ needs.check-comment.outputs.pr_number }}"
|
||||||
UI_HOMEDESCRIPTION: "PR#${{ needs.check-comment.outputs.pr_number }} for Stirling-PDF Latest"
|
UI_HOMEDESCRIPTION: "PR#${{ needs.check-comment.outputs.pr_number }} for Stirling-PDF Latest"
|
||||||
@ -167,7 +238,7 @@ jobs:
|
|||||||
# Then copy the file and execute commands
|
# Then copy the file and execute commands
|
||||||
scp -i ../private.key -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null docker-compose.yml ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_HOST }}:/tmp/docker-compose.yml
|
scp -i ../private.key -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null docker-compose.yml ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_HOST }}:/tmp/docker-compose.yml
|
||||||
|
|
||||||
ssh -i ../private.key -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -T ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_HOST }} << 'ENDSSH'
|
ssh -i ../private.key -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -T ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_HOST }} << ENDSSH
|
||||||
# Create PR-specific directories
|
# Create PR-specific directories
|
||||||
mkdir -p /stirling/PR-${{ needs.check-comment.outputs.pr_number }}/{data,config,logs}
|
mkdir -p /stirling/PR-${{ needs.check-comment.outputs.pr_number }}/{data,config,logs}
|
||||||
|
|
||||||
@ -180,19 +251,65 @@ jobs:
|
|||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
ENDSSH
|
ENDSSH
|
||||||
|
|
||||||
|
# Set output for use in PR comment
|
||||||
|
echo "security_status=${SECURITY_STATUS}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Add success reaction to comment
|
||||||
|
if: success()
|
||||||
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
|
with:
|
||||||
|
github-token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
script: |
|
||||||
|
console.log(`Adding rocket reaction to comment ID: ${{ needs.check-comment.outputs.comment_id }}`);
|
||||||
|
try {
|
||||||
|
const { data: reaction } = await github.rest.reactions.createForIssueComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
comment_id: ${{ needs.check-comment.outputs.comment_id }},
|
||||||
|
content: 'rocket'
|
||||||
|
});
|
||||||
|
console.log(`Added rocket reaction with ID: ${reaction.id}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Failed to add reaction: ${error.message}`);
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
- name: Add failure reaction to comment
|
||||||
|
if: failure()
|
||||||
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
|
with:
|
||||||
|
github-token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
script: |
|
||||||
|
console.log(`Adding -1 reaction to comment ID: ${{ needs.check-comment.outputs.comment_id }}`);
|
||||||
|
try {
|
||||||
|
const { data: reaction } = await github.rest.reactions.createForIssueComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
comment_id: ${{ needs.check-comment.outputs.comment_id }},
|
||||||
|
content: '-1'
|
||||||
|
});
|
||||||
|
console.log(`Added -1 reaction with ID: ${reaction.id}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Failed to add reaction: ${error.message}`);
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
|
||||||
- name: Post deployment URL to PR
|
- name: Post deployment URL to PR
|
||||||
if: success()
|
if: success()
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
with:
|
with:
|
||||||
|
github-token: ${{ steps.generate-token.outputs.token }}
|
||||||
script: |
|
script: |
|
||||||
const { GITHUB_REPOSITORY } = process.env;
|
const { GITHUB_REPOSITORY } = process.env;
|
||||||
const [repoOwner, repoName] = GITHUB_REPOSITORY.split('/');
|
const [repoOwner, repoName] = GITHUB_REPOSITORY.split('/');
|
||||||
const prNumber = ${{ needs.check-comment.outputs.pr_number }};
|
const prNumber = ${{ needs.check-comment.outputs.pr_number }};
|
||||||
|
const securityStatus = process.env.security_status || "Security Disabled";
|
||||||
|
|
||||||
const deploymentUrl = `http://${{ secrets.VPS_HOST }}:${prNumber}`;
|
const deploymentUrl = `http://${{ secrets.VPS_HOST }}:${prNumber}`;
|
||||||
const commentBody = `## 🚀 PR Test Deployment\n\n` +
|
const commentBody = `## 🚀 PR Test Deployment\n\n` +
|
||||||
`Your PR has been deployed for testing!\n\n` +
|
`Your PR has been deployed for testing!\n\n` +
|
||||||
`🔗 **Test URL:** [${deploymentUrl}](${deploymentUrl})\n\n` +
|
`🔗 **Test URL:** [${deploymentUrl}](${deploymentUrl})\n` +
|
||||||
|
`${securityStatus}\n\n` +
|
||||||
`This deployment will be automatically cleaned up when the PR is closed.\n\n`;
|
`This deployment will be automatically cleaned up when the PR is closed.\n\n`;
|
||||||
|
|
||||||
await github.rest.issues.createComment({
|
await github.rest.issues.createComment({
|
7
.github/workflows/build.yml
vendored
7
.github/workflows/build.yml
vendored
@ -32,7 +32,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK ${{ matrix.jdk-version }}
|
- name: Set up JDK ${{ matrix.jdk-version }}
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: ${{ matrix.jdk-version }}
|
java-version: ${{ matrix.jdk-version }}
|
||||||
distribution: "temurin"
|
distribution: "temurin"
|
||||||
@ -70,7 +70,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "17"
|
java-version: "17"
|
||||||
distribution: "adopt"
|
distribution: "adopt"
|
||||||
@ -114,7 +114,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up Java 17
|
- name: Set up Java 17
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "17"
|
java-version: "17"
|
||||||
distribution: "adopt"
|
distribution: "adopt"
|
||||||
@ -141,4 +141,5 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
chmod +x ./testing/test_webpages.sh
|
chmod +x ./testing/test_webpages.sh
|
||||||
chmod +x ./testing/test.sh
|
chmod +x ./testing/test.sh
|
||||||
|
chmod +x ./testing/test_disabledEndpoints.sh
|
||||||
./testing/test.sh
|
./testing/test.sh
|
||||||
|
2
.github/workflows/licenses-update.yml
vendored
2
.github/workflows/licenses-update.yml
vendored
@ -33,7 +33,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "17"
|
java-version: "17"
|
||||||
distribution: "adopt"
|
distribution: "adopt"
|
||||||
|
31
.github/workflows/multiOSReleases.yml
vendored
31
.github/workflows/multiOSReleases.yml
vendored
@ -4,6 +4,11 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
release:
|
release:
|
||||||
types: [created]
|
types: [created]
|
||||||
|
inputs:
|
||||||
|
test_mode:
|
||||||
|
description: "Run in test mode (skips release step)"
|
||||||
|
required: false
|
||||||
|
default: "false"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
@ -58,7 +63,7 @@ jobs:
|
|||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK 21
|
- name: Set up JDK 21
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "21"
|
java-version: "21"
|
||||||
distribution: "temurin"
|
distribution: "temurin"
|
||||||
@ -146,7 +151,7 @@ jobs:
|
|||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK 21
|
- name: Set up JDK 21
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "21"
|
java-version: "21"
|
||||||
distribution: "temurin"
|
distribution: "temurin"
|
||||||
@ -170,17 +175,35 @@ jobs:
|
|||||||
STIRLING_PDF_DESKTOP_UI: true
|
STIRLING_PDF_DESKTOP_UI: true
|
||||||
BROWSER_OPEN: true
|
BROWSER_OPEN: true
|
||||||
|
|
||||||
|
- name: ☕ Set up JDK (x86_64)
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
run: |
|
||||||
|
curl -L -o jdk.tar.gz https://cdn.azul.com/zulu/bin/zulu17.56.15-ca-jdk17.0.14-macosx_x64.tar.gz
|
||||||
|
mkdir -p zulu17
|
||||||
|
tar -xzf jdk.tar.gz -C zulu17 --strip-components=1
|
||||||
|
echo "JAVA_HOME=$PWD/zulu17" >> $GITHUB_ENV
|
||||||
|
echo "$PWD/zulu17/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
|
- name: Verify JDK architecture
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
run: file $JAVA_HOME/bin/java
|
||||||
|
|
||||||
|
- name: Build project and run jpackage (x86_64)
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
run: arch -x86_64 ./gradlew jpackageMacX64
|
||||||
|
|
||||||
# Rename and collect artifacts based on OS
|
# Rename and collect artifacts based on OS
|
||||||
- name: Prepare artifacts
|
- name: Prepare artifacts
|
||||||
id: prepare
|
id: prepare
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
ls -lah ./build/jpackage/
|
||||||
mkdir ./binaries
|
mkdir ./binaries
|
||||||
if [ "${{ matrix.os }}" = "windows-latest" ]; then
|
if [ "${{ matrix.os }}" = "windows-latest" ]; then
|
||||||
mv "./build/jpackage/Stirling-PDF-${{ needs.read_versions.outputs.version }}.exe" "./binaries/Stirling-PDF-win-installer.exe"
|
mv "./build/jpackage/Stirling-PDF-${{ needs.read_versions.outputs.version }}.exe" "./binaries/Stirling-PDF-win-installer.exe"
|
||||||
elif [ "${{ matrix.os }}" = "macos-latest" ]; then
|
elif [ "${{ matrix.os }}" = "macos-latest" ]; then
|
||||||
mv "./build/jpackage/Stirling-PDF-${{ needs.read_versions.outputs.versionMac }}.dmg" "./binaries/Stirling-PDF-mac-installer.dmg"
|
mv "./build/jpackage/Stirling-PDF-${{ needs.read_versions.outputs.versionMac }}.dmg" "./binaries/Stirling-PDF-mac-installer.dmg"
|
||||||
mv "./build/jpackage/Stirling-PDF-x86_64-${{ needs.read_versions.outputs.versionMac }}.dmg" "./binaries/Stirling-PDF-mac-x86_64-installer.dmg"
|
mv "./build/jpackage/x86_64/Stirling-PDF (x86_64)-${{ needs.read_versions.outputs.versionMac }}.dmg" "./binaries/Stirling-PDF-mac-x86_64-installer.dmg"
|
||||||
else
|
else
|
||||||
mv "./build/jpackage/stirling-pdf_${{ needs.read_versions.outputs.version }}-1_amd64.deb" "./binaries/Stirling-PDF-linux-installer.deb"
|
mv "./build/jpackage/stirling-pdf_${{ needs.read_versions.outputs.version }}-1_amd64.deb" "./binaries/Stirling-PDF-linux-installer.deb"
|
||||||
fi
|
fi
|
||||||
@ -263,9 +286,11 @@ jobs:
|
|||||||
name: ${{ matrix.platform }}signed
|
name: ${{ matrix.platform }}signed
|
||||||
path: |
|
path: |
|
||||||
./Stirling-PDF-${{ matrix.platform }}installer.*
|
./Stirling-PDF-${{ matrix.platform }}installer.*
|
||||||
|
./Stirling-PDF-${{ matrix.platform }}x86_64-installer.*
|
||||||
!cosign.*
|
!cosign.*
|
||||||
|
|
||||||
create-release:
|
create-release:
|
||||||
|
if: github.event_name != 'workflow_dispatch' || github.event.inputs.test_mode != 'true'
|
||||||
needs: [read_versions, sign_verify, sign_verify-portable]
|
needs: [read_versions, sign_verify, sign_verify-portable]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
|
2
.github/workflows/push-docker.yml
vendored
2
.github/workflows/push-docker.yml
vendored
@ -25,7 +25,7 @@ jobs:
|
|||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "17"
|
java-version: "17"
|
||||||
distribution: "temurin"
|
distribution: "temurin"
|
||||||
|
2
.github/workflows/releaseArtifacts.yml
vendored
2
.github/workflows/releaseArtifacts.yml
vendored
@ -30,7 +30,7 @@ jobs:
|
|||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "17"
|
java-version: "17"
|
||||||
distribution: "temurin"
|
distribution: "temurin"
|
||||||
|
2
.github/workflows/swagger.yml
vendored
2
.github/workflows/swagger.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
|||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: "17"
|
java-version: "17"
|
||||||
distribution: "temurin"
|
distribution: "temurin"
|
||||||
|
2
.github/workflows/testdriver.yml
vendored
2
.github/workflows/testdriver.yml
vendored
@ -20,7 +20,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Set up JDK
|
- name: Set up JDK
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
|
@ -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
|
||||||
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -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.
|
||||||
|
76
README.md
76
README.md
@ -116,46 +116,46 @@ Stirling-PDF currently supports 39 languages!
|
|||||||
|
|
||||||
| Language | Progress |
|
| Language | Progress |
|
||||||
| -------------------------------------------- | -------------------------------------- |
|
| -------------------------------------------- | -------------------------------------- |
|
||||||
| Arabic (العربية) (ar_AR) |  |
|
| Arabic (العربية) (ar_AR) |  |
|
||||||
| Azerbaijani (Azərbaycan Dili) (az_AZ) |  |
|
| Azerbaijani (Azərbaycan Dili) (az_AZ) |  |
|
||||||
| Basque (Euskara) (eu_ES) |  |
|
| Basque (Euskara) (eu_ES) |  |
|
||||||
| Bulgarian (Български) (bg_BG) |  |
|
| Bulgarian (Български) (bg_BG) |  |
|
||||||
| Catalan (Català) (ca_CA) |  |
|
| Catalan (Català) (ca_CA) |  |
|
||||||
| Croatian (Hrvatski) (hr_HR) |  |
|
| Croatian (Hrvatski) (hr_HR) |  |
|
||||||
| Czech (Česky) (cs_CZ) |  |
|
| Czech (Česky) (cs_CZ) |  |
|
||||||
| Danish (Dansk) (da_DK) |  |
|
| Danish (Dansk) (da_DK) |  |
|
||||||
| Dutch (Nederlands) (nl_NL) |  |
|
| Dutch (Nederlands) (nl_NL) |  |
|
||||||
| English (English) (en_GB) |  |
|
| English (English) (en_GB) |  |
|
||||||
| English (US) (en_US) |  |
|
| English (US) (en_US) |  |
|
||||||
| French (Français) (fr_FR) |  |
|
| French (Français) (fr_FR) |  |
|
||||||
| German (Deutsch) (de_DE) |  |
|
| German (Deutsch) (de_DE) |  |
|
||||||
| Greek (Ελληνικά) (el_GR) |  |
|
| Greek (Ελληνικά) (el_GR) |  |
|
||||||
| Hindi (हिंदी) (hi_IN) |  |
|
| Hindi (हिंदी) (hi_IN) |  |
|
||||||
| Hungarian (Magyar) (hu_HU) |  |
|
| Hungarian (Magyar) (hu_HU) |  |
|
||||||
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
||||||
| Irish (Gaeilge) (ga_IE) |  |
|
| Irish (Gaeilge) (ga_IE) |  |
|
||||||
| Italian (Italiano) (it_IT) |  |
|
| Italian (Italiano) (it_IT) |  |
|
||||||
| Japanese (日本語) (ja_JP) |  |
|
| Japanese (日本語) (ja_JP) |  |
|
||||||
| Korean (한국어) (ko_KR) |  |
|
| Korean (한국어) (ko_KR) |  |
|
||||||
| Norwegian (Norsk) (no_NB) |  |
|
| Norwegian (Norsk) (no_NB) |  |
|
||||||
| Persian (فارسی) (fa_IR) |  |
|
| Persian (فارسی) (fa_IR) |  |
|
||||||
| Polish (Polski) (pl_PL) |  |
|
| Polish (Polski) (pl_PL) |  |
|
||||||
| Portuguese (Português) (pt_PT) |  |
|
| Portuguese (Português) (pt_PT) |  |
|
||||||
| Portuguese Brazilian (Português) (pt_BR) |  |
|
| Portuguese Brazilian (Português) (pt_BR) |  |
|
||||||
| Romanian (Română) (ro_RO) |  |
|
| Romanian (Română) (ro_RO) |  |
|
||||||
| Russian (Русский) (ru_RU) |  |
|
| Russian (Русский) (ru_RU) |  |
|
||||||
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) |  |
|
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) |  |
|
||||||
| Simplified Chinese (简体中文) (zh_CN) |  |
|
| Simplified Chinese (简体中文) (zh_CN) |  |
|
||||||
| Slovakian (Slovensky) (sk_SK) |  |
|
| Slovakian (Slovensky) (sk_SK) |  |
|
||||||
| Slovenian (Slovenščina) (sl_SI) |  |
|
| Slovenian (Slovenščina) (sl_SI) |  |
|
||||||
| Spanish (Español) (es_ES) |  |
|
| Spanish (Español) (es_ES) |  |
|
||||||
| Swedish (Svenska) (sv_SE) |  |
|
| Swedish (Svenska) (sv_SE) |  |
|
||||||
| Thai (ไทย) (th_TH) |  |
|
| Thai (ไทย) (th_TH) |  |
|
||||||
| Tibetan (བོད་ཡིག་) (zh_BO) |  |
|
| Tibetan (བོད་ཡིག་) (zh_BO) |  |
|
||||||
| Traditional Chinese (繁體中文) (zh_TW) |  |
|
| Traditional Chinese (繁體中文) (zh_TW) |  |
|
||||||
| Turkish (Türkçe) (tr_TR) |  |
|
| Turkish (Türkçe) (tr_TR) |  |
|
||||||
| Ukrainian (Українська) (uk_UA) |  |
|
| Ukrainian (Українська) (uk_UA) |  |
|
||||||
| Vietnamese (Tiếng Việt) (vi_VN) |  |
|
| Vietnamese (Tiếng Việt) (vi_VN) |  |
|
||||||
|
|
||||||
|
|
||||||
## Stirling PDF Enterprise
|
## Stirling PDF Enterprise
|
||||||
|
50
build.gradle
50
build.gradle
@ -5,7 +5,7 @@ plugins {
|
|||||||
id "org.springdoc.openapi-gradle-plugin" version "1.9.0"
|
id "org.springdoc.openapi-gradle-plugin" version "1.9.0"
|
||||||
id "io.swagger.swaggerhub" version "1.3.2"
|
id "io.swagger.swaggerhub" version "1.3.2"
|
||||||
id "edu.sc.seis.launch4j" version "3.0.6"
|
id "edu.sc.seis.launch4j" version "3.0.6"
|
||||||
id "com.diffplug.spotless" version "7.0.2"
|
id "com.diffplug.spotless" version "7.0.3"
|
||||||
id "com.github.jk1.dependency-license-report" version "2.9"
|
id "com.github.jk1.dependency-license-report" version "2.9"
|
||||||
//id "nebula.lint" version "19.0.3"
|
//id "nebula.lint" version "19.0.3"
|
||||||
id("org.panteleyev.jpackageplugin") version "1.6.1"
|
id("org.panteleyev.jpackageplugin") version "1.6.1"
|
||||||
@ -29,7 +29,7 @@ ext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "stirling.software"
|
group = "stirling.software"
|
||||||
version = "0.45.1"
|
version = "0.45.6"
|
||||||
|
|
||||||
java {
|
java {
|
||||||
// 17 is lowest but we support and recommend 21
|
// 17 is lowest but we support and recommend 21
|
||||||
@ -164,14 +164,12 @@ jpackage {
|
|||||||
appVersion = getMacVersion(project.version.toString())
|
appVersion = getMacVersion(project.version.toString())
|
||||||
icon = "src/main/resources/static/favicon.icns"
|
icon = "src/main/resources/static/favicon.icns"
|
||||||
type = "dmg"
|
type = "dmg"
|
||||||
macPackageIdentifier = "com.stirling.software.pdf"
|
macPackageIdentifier = "Stirling-PDF"
|
||||||
macPackageName = "Stirling-PDF_aarch64"
|
macPackageName = "Stirling-PDF"
|
||||||
macAppCategory = "public.app-category.productivity"
|
macAppCategory = "public.app-category.productivity"
|
||||||
macSign = false // Enable signing
|
macSign = false // Enable signing
|
||||||
macAppStore = false // Not targeting App Store initially
|
macAppStore = false // Not targeting App Store initially
|
||||||
//
|
|
||||||
// //installDir = "Applications"
|
|
||||||
//
|
|
||||||
// // Add license and other documentation to DMG
|
// // Add license and other documentation to DMG
|
||||||
// /*macDmgContent = [
|
// /*macDmgContent = [
|
||||||
// "README.md",
|
// "README.md",
|
||||||
@ -230,6 +228,8 @@ tasks.register('jpackageMacX64') {
|
|||||||
group = 'distribution'
|
group = 'distribution'
|
||||||
description = 'Packages app for MacOS x86_64'
|
description = 'Packages app for MacOS x86_64'
|
||||||
|
|
||||||
|
println "Running jpackageMacX64 task"
|
||||||
|
|
||||||
if (OperatingSystem.current().isMacOsX()) {
|
if (OperatingSystem.current().isMacOsX()) {
|
||||||
println "MacOS detected. Downloading temp JRE."
|
println "MacOS detected. Downloading temp JRE."
|
||||||
dependsOn("downloadTempJre")
|
dependsOn("downloadTempJre")
|
||||||
@ -250,16 +250,16 @@ tasks.register('jpackageMacX64') {
|
|||||||
def result = exec {
|
def result = exec {
|
||||||
commandLine 'jpackage',
|
commandLine 'jpackage',
|
||||||
'--type', 'dmg',
|
'--type', 'dmg',
|
||||||
'--name', 'Stirling-PDF-x86_64',
|
'--name', 'Stirling-PDF (x86_64)',
|
||||||
'--input', 'build/libs',
|
'--input', 'build/libs',
|
||||||
'--main-jar', "Stirling-PDF-${project.version}.jar",
|
'--main-jar', "Stirling-PDF-${project.version}.jar",
|
||||||
'--main-class', 'stirling.software.SPDF.SPDFApplication',
|
'--main-class', 'org.springframework.boot.loader.launch.JarLauncher',
|
||||||
'--runtime-image', file(jrePath + "/zulu-17.jre/Contents/Home"),
|
'--runtime-image', file(jrePath + "/zulu-17.jre/Contents/Home"),
|
||||||
'--dest', 'build/jpackage',
|
'--dest', 'build/jpackage/x86_64',
|
||||||
'--icon', 'src/main/resources/static/favicon.icns',
|
'--icon', 'src/main/resources/static/favicon.icns',
|
||||||
'--app-version', getMacVersion(project.version.toString()),
|
'--app-version', getMacVersion(project.version.toString()),
|
||||||
'--mac-package-name', 'Stirling-PDF',
|
'--mac-package-name', 'Stirling-PDF (x86_64)',
|
||||||
'--mac-package-identifier', 'com.stirling.software.pdf',
|
'--mac-package-identifier', 'Stirling-PDF (x86_64)',
|
||||||
'--mac-app-category', 'public.app-category.productivity'
|
'--mac-app-category', 'public.app-category.productivity'
|
||||||
standardOutput = outputStream
|
standardOutput = outputStream
|
||||||
errorOutput = errorStream
|
errorOutput = errorStream
|
||||||
@ -270,16 +270,16 @@ tasks.register('jpackageMacX64') {
|
|||||||
def stderr = errorStream.toString("UTF-8")
|
def stderr = errorStream.toString("UTF-8")
|
||||||
|
|
||||||
if (!stdout.isBlank()) {
|
if (!stdout.isBlank()) {
|
||||||
println "📝 jpackage stdout:\n$stdout"
|
println "jpackage stdout:\n$stdout"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result.exitValue != 0) {
|
if (result.exitValue != 0) {
|
||||||
throw new GradleException("❌ jpackage failed with exit code ${result.exitValue}.\n\n$stderr")
|
throw new GradleException("jpackage failed with exit code ${result.exitValue}.\n\n$stderr")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jpackage.finalizedBy(jpackageMacX64)
|
//jpackage.finalizedBy(jpackageMacX64)
|
||||||
|
|
||||||
tasks.register('downloadTempJre') {
|
tasks.register('downloadTempJre') {
|
||||||
group = 'distribution'
|
group = 'distribution'
|
||||||
@ -322,7 +322,7 @@ tasks.register('cleanTempJre') {
|
|||||||
def path = project.ext.tempJrePath
|
def path = project.ext.tempJrePath
|
||||||
|
|
||||||
if (path && new File("$path").exists()) {
|
if (path && new File("$path").exists()) {
|
||||||
println "🧹 Cleaning up temporary JRE: $path"
|
println "Cleaning up temporary JRE: $path"
|
||||||
new File("$path").parentFile.deleteDir()
|
new File("$path").parentFile.deleteDir()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -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()
|
||||||
@ -491,7 +491,7 @@ dependencies {
|
|||||||
// Image metadata extractor
|
// Image metadata extractor
|
||||||
implementation "com.drewnoakes:metadata-extractor:2.19.0"
|
implementation "com.drewnoakes:metadata-extractor:2.19.0"
|
||||||
|
|
||||||
implementation "commons-io:commons-io:2.18.0"
|
implementation "commons-io:commons-io:2.19.0"
|
||||||
implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0"
|
implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0"
|
||||||
//general PDF
|
//general PDF
|
||||||
|
|
||||||
@ -516,7 +516,7 @@ dependencies {
|
|||||||
implementation "org.bouncycastle:bcprov-jdk18on:$bouncycastleVersion"
|
implementation "org.bouncycastle:bcprov-jdk18on:$bouncycastleVersion"
|
||||||
implementation "org.bouncycastle:bcpkix-jdk18on:$bouncycastleVersion"
|
implementation "org.bouncycastle:bcpkix-jdk18on:$bouncycastleVersion"
|
||||||
implementation "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
|
implementation "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
|
||||||
implementation "io.micrometer:micrometer-core:1.14.5"
|
implementation "io.micrometer:micrometer-core:1.14.6"
|
||||||
implementation group: "com.google.zxing", name: "core", version: "3.5.3"
|
implementation group: "com.google.zxing", name: "core", version: "3.5.3"
|
||||||
// https://mvnrepository.com/artifact/org.commonmark/commonmark
|
// https://mvnrepository.com/artifact/org.commonmark/commonmark
|
||||||
implementation "org.commonmark:commonmark:0.24.0"
|
implementation "org.commonmark:commonmark:0.24.0"
|
||||||
@ -543,12 +543,22 @@ compileJava {
|
|||||||
}
|
}
|
||||||
|
|
||||||
task writeVersion {
|
task writeVersion {
|
||||||
def propsFile = file("src/main/resources/version.properties")
|
def propsFile = file("$projectDir/src/main/resources/version.properties")
|
||||||
|
def propsDir = propsFile.parentFile
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
if (!propsDir.exists()) {
|
||||||
|
propsDir.mkdirs()
|
||||||
|
}
|
||||||
|
|
||||||
def props = new Properties()
|
def props = new Properties()
|
||||||
props.setProperty("version", version)
|
props.setProperty("version", version)
|
||||||
props.store(propsFile.newWriter(), null)
|
props.store(propsFile.newWriter(), null)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
processResources.dependsOn(writeVersion)
|
||||||
|
|
||||||
swaggerhubUpload {
|
swaggerhubUpload {
|
||||||
// dependsOn = generateOpenApiDocs // Depends on your task generating Swagger docs
|
// dependsOn = generateOpenApiDocs // Depends on your task generating Swagger docs
|
||||||
api = "Stirling-PDF" // The name of your API on SwaggerHub
|
api = "Stirling-PDF" // The name of your API on SwaggerHub
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
services:
|
||||||
|
stirling-pdf:
|
||||||
|
container_name: Stirling-PDF-Fat-Disable-Endpoints
|
||||||
|
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-fat
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 4G
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP'"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 16
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
volumes:
|
||||||
|
- ./stirling/latest/data:/usr/share/tessdata:rw
|
||||||
|
- ./stirling/latest/config:/configs:rw
|
||||||
|
- ./stirling/latest/logs:/logs:rw
|
||||||
|
- ../testing/allEndpointsRemovedSettings.yml:/configs/settings.yml:rw
|
||||||
|
environment:
|
||||||
|
DOCKER_ENABLE_SECURITY: "true"
|
||||||
|
SECURITY_ENABLELOGIN: "false"
|
||||||
|
PUID: 1002
|
||||||
|
PGID: 1002
|
||||||
|
UMASK: "022"
|
||||||
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
|
UI_APPNAME: Stirling-PDF
|
||||||
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest-fat with all Endpoints Disabled
|
||||||
|
UI_APPNAMENAVBAR: Stirling-PDF Latest-fat
|
||||||
|
SYSTEM_MAXFILESIZE: "100"
|
||||||
|
METRICS_ENABLED: "true"
|
||||||
|
SYSTEM_GOOGLEVISIBILITY: "true"
|
||||||
|
restart: on-failure:5
|
@ -53,24 +53,37 @@ public class KeygenLicenseVerifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public License verifyLicense(String licenseKeyOrCert) {
|
public License verifyLicense(String licenseKeyOrCert) {
|
||||||
|
License license;
|
||||||
|
|
||||||
if (isCertificateLicense(licenseKeyOrCert)) {
|
if (isCertificateLicense(licenseKeyOrCert)) {
|
||||||
log.info("Detected certificate-based license. Processing...");
|
log.info("Detected certificate-based license. Processing...");
|
||||||
return resultToEnum(verifyCertificateLicense(licenseKeyOrCert), License.ENTERPRISE);
|
boolean isValid = verifyCertificateLicense(licenseKeyOrCert);
|
||||||
|
if (isValid) {
|
||||||
|
license = isEnterpriseLicense ? License.ENTERPRISE : License.PRO;
|
||||||
|
} else {
|
||||||
|
license = License.NORMAL;
|
||||||
|
}
|
||||||
} else if (isJWTLicense(licenseKeyOrCert)) {
|
} else if (isJWTLicense(licenseKeyOrCert)) {
|
||||||
log.info("Detected JWT-style license key. Processing...");
|
log.info("Detected JWT-style license key. Processing...");
|
||||||
return resultToEnum(verifyJWTLicense(licenseKeyOrCert), License.ENTERPRISE);
|
boolean isValid = verifyJWTLicense(licenseKeyOrCert);
|
||||||
|
if (isValid) {
|
||||||
|
license = isEnterpriseLicense ? License.ENTERPRISE : License.PRO;
|
||||||
|
} else {
|
||||||
|
license = License.NORMAL;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
log.info("Detected standard license key. Processing...");
|
log.info("Detected standard license key. Processing...");
|
||||||
return resultToEnum(verifyStandardLicense(licenseKeyOrCert), License.PRO);
|
boolean isValid = verifyStandardLicense(licenseKeyOrCert);
|
||||||
|
if (isValid) {
|
||||||
|
license = isEnterpriseLicense ? License.ENTERPRISE : License.PRO;
|
||||||
|
} else {
|
||||||
|
license = License.NORMAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return license;
|
||||||
|
}
|
||||||
|
|
||||||
private License resultToEnum(boolean result, License option) {
|
private boolean isEnterpriseLicense = false;
|
||||||
if (result) {
|
|
||||||
return option;
|
|
||||||
}
|
|
||||||
return License.NORMAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isCertificateLicense(String license) {
|
private boolean isCertificateLicense(String license) {
|
||||||
return license != null && license.trim().startsWith(CERT_PREFIX);
|
return license != null && license.trim().startsWith(CERT_PREFIX);
|
||||||
@ -82,8 +95,6 @@ public class KeygenLicenseVerifier {
|
|||||||
|
|
||||||
private boolean verifyCertificateLicense(String licenseFile) {
|
private boolean verifyCertificateLicense(String licenseFile) {
|
||||||
try {
|
try {
|
||||||
log.info("Verifying certificate-based license");
|
|
||||||
|
|
||||||
String encodedPayload = licenseFile;
|
String encodedPayload = licenseFile;
|
||||||
// Remove the header
|
// Remove the header
|
||||||
encodedPayload = encodedPayload.replace(CERT_PREFIX, "");
|
encodedPayload = encodedPayload.replace(CERT_PREFIX, "");
|
||||||
@ -106,8 +117,6 @@ public class KeygenLicenseVerifier {
|
|||||||
encryptedData = (String) attrs.get("enc");
|
encryptedData = (String) attrs.get("enc");
|
||||||
encodedSignature = (String) attrs.get("sig");
|
encodedSignature = (String) attrs.get("sig");
|
||||||
algorithm = (String) attrs.get("alg");
|
algorithm = (String) attrs.get("alg");
|
||||||
|
|
||||||
log.info("Certificate algorithm: {}", algorithm);
|
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
log.error("Failed to parse license file: {}", e.getMessage());
|
log.error("Failed to parse license file: {}", e.getMessage());
|
||||||
return false;
|
return false;
|
||||||
@ -151,7 +160,6 @@ public class KeygenLicenseVerifier {
|
|||||||
private boolean verifyEd25519Signature(String encryptedData, String encodedSignature) {
|
private boolean verifyEd25519Signature(String encryptedData, String encodedSignature) {
|
||||||
try {
|
try {
|
||||||
log.info("Signature to verify: {}", encodedSignature);
|
log.info("Signature to verify: {}", encodedSignature);
|
||||||
log.info("Public key being used: {}", PUBLIC_KEY);
|
|
||||||
|
|
||||||
byte[] signatureBytes = Base64.getDecoder().decode(encodedSignature);
|
byte[] signatureBytes = Base64.getDecoder().decode(encodedSignature);
|
||||||
|
|
||||||
@ -185,7 +193,7 @@ public class KeygenLicenseVerifier {
|
|||||||
|
|
||||||
private boolean processCertificateData(String certData) {
|
private boolean processCertificateData(String certData) {
|
||||||
try {
|
try {
|
||||||
log.info("Processing certificate data: {}", certData);
|
|
||||||
|
|
||||||
JSONObject licenseData = new JSONObject(certData);
|
JSONObject licenseData = new JSONObject(certData);
|
||||||
JSONObject metaObj = licenseData.optJSONObject("meta");
|
JSONObject metaObj = licenseData.optJSONObject("meta");
|
||||||
@ -234,18 +242,9 @@ public class KeygenLicenseVerifier {
|
|||||||
applicationProperties.getPremium().setMaxUsers(users);
|
applicationProperties.getPremium().setMaxUsers(users);
|
||||||
log.info("License allows for {} users", users);
|
log.info("License allows for {} users", users);
|
||||||
}
|
}
|
||||||
|
isEnterpriseLicense = metadataObj.optBoolean("isEnterprise", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check maxUsers directly in attributes if present from policy definition
|
|
||||||
// if (attributesObj.has("maxUsers")) {
|
|
||||||
// int maxUsers = attributesObj.optInt("maxUsers", 0);
|
|
||||||
// if (maxUsers > 0) {
|
|
||||||
// applicationProperties.getPremium().setMaxUsers(maxUsers);
|
|
||||||
// log.info("License directly specifies {} max users",
|
|
||||||
// maxUsers);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Check license status if available
|
// Check license status if available
|
||||||
String status = attributesObj.optString("status", null);
|
String status = attributesObj.optString("status", null);
|
||||||
if (status != null
|
if (status != null
|
||||||
@ -388,9 +387,10 @@ public class KeygenLicenseVerifier {
|
|||||||
String policyId = policyObj.optString("id", "unknown");
|
String policyId = policyObj.optString("id", "unknown");
|
||||||
log.info("License uses policy: {}", policyId);
|
log.info("License uses policy: {}", policyId);
|
||||||
|
|
||||||
// Extract max users from policy if available (customize based on your policy
|
// Extract max users and isEnterprise from policy or metadata
|
||||||
// structure)
|
|
||||||
int users = policyObj.optInt("users", 0);
|
int users = policyObj.optInt("users", 0);
|
||||||
|
isEnterpriseLicense = policyObj.optBoolean("isEnterprise", false);
|
||||||
|
|
||||||
if (users > 0) {
|
if (users > 0) {
|
||||||
applicationProperties.getPremium().setMaxUsers(users);
|
applicationProperties.getPremium().setMaxUsers(users);
|
||||||
log.info("License allows for {} users", users);
|
log.info("License allows for {} users", users);
|
||||||
@ -402,12 +402,16 @@ public class KeygenLicenseVerifier {
|
|||||||
users = metadata.optInt("users", 1);
|
users = metadata.optInt("users", 1);
|
||||||
applicationProperties.getPremium().setMaxUsers(users);
|
applicationProperties.getPremium().setMaxUsers(users);
|
||||||
log.info("License allows for {} users (from metadata)", users);
|
log.info("License allows for {} users (from metadata)", users);
|
||||||
|
|
||||||
|
// Check for isEnterprise flag in metadata
|
||||||
|
isEnterpriseLicense = metadata.optBoolean("isEnterprise", false);
|
||||||
} else {
|
} else {
|
||||||
// Default value
|
// Default value
|
||||||
applicationProperties.getPremium().setMaxUsers(1);
|
applicationProperties.getPremium().setMaxUsers(1);
|
||||||
log.info("Using default of 1 user for license");
|
log.info("Using default of 1 user for license");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -494,6 +498,7 @@ public class KeygenLicenseVerifier {
|
|||||||
log.info("Validation detail: " + detail);
|
log.info("Validation detail: " + detail);
|
||||||
log.info("Validation code: " + code);
|
log.info("Validation code: " + code);
|
||||||
|
|
||||||
|
// Extract user count
|
||||||
int users =
|
int users =
|
||||||
jsonResponse
|
jsonResponse
|
||||||
.path("data")
|
.path("data")
|
||||||
@ -502,6 +507,16 @@ public class KeygenLicenseVerifier {
|
|||||||
.path("users")
|
.path("users")
|
||||||
.asInt(0);
|
.asInt(0);
|
||||||
applicationProperties.getPremium().setMaxUsers(users);
|
applicationProperties.getPremium().setMaxUsers(users);
|
||||||
|
|
||||||
|
// Extract isEnterprise flag
|
||||||
|
isEnterpriseLicense =
|
||||||
|
jsonResponse
|
||||||
|
.path("data")
|
||||||
|
.path("attributes")
|
||||||
|
.path("metadata")
|
||||||
|
.path("isEnterprise")
|
||||||
|
.asBoolean(false);
|
||||||
|
|
||||||
log.info(applicationProperties.toString());
|
log.info(applicationProperties.toString());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -20,6 +20,8 @@ import org.springframework.core.io.Resource;
|
|||||||
import org.springframework.core.io.ResourceLoader;
|
import org.springframework.core.io.ResourceLoader;
|
||||||
import org.thymeleaf.spring6.SpringTemplateEngine;
|
import org.thymeleaf.spring6.SpringTemplateEngine;
|
||||||
|
|
||||||
|
import com.posthog.java.shaded.kotlin.text.Regex;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import stirling.software.SPDF.model.ApplicationProperties;
|
import stirling.software.SPDF.model.ApplicationProperties;
|
||||||
|
@ -45,6 +45,10 @@ public class EndpointConfiguration {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, Boolean> getEndpointStatuses() {
|
||||||
|
return endpointStatuses;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isEndpointEnabled(String endpoint) {
|
public boolean isEndpointEnabled(String endpoint) {
|
||||||
if (endpoint.startsWith("/")) {
|
if (endpoint.startsWith("/")) {
|
||||||
endpoint = endpoint.substring(1);
|
endpoint = endpoint.substring(1);
|
||||||
|
@ -23,7 +23,29 @@ public class EndpointInterceptor implements HandlerInterceptor {
|
|||||||
HttpServletRequest request, HttpServletResponse response, Object handler)
|
HttpServletRequest request, HttpServletResponse response, Object handler)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
String requestURI = request.getRequestURI();
|
String requestURI = request.getRequestURI();
|
||||||
if (!endpointConfiguration.isEndpointEnabled(requestURI)) {
|
boolean isEnabled;
|
||||||
|
|
||||||
|
// Extract the specific endpoint name (e.g: /api/v1/general/remove-pages -> remove-pages)
|
||||||
|
if (requestURI.contains("/api/v1") && requestURI.split("/").length > 4) {
|
||||||
|
|
||||||
|
String[] requestURIParts = requestURI.split("/");
|
||||||
|
String requestEndpoint;
|
||||||
|
|
||||||
|
// Endpoint: /api/v1/convert/pdf/img becomes pdf-to-img
|
||||||
|
if ("convert".equals(requestURIParts[3]) && requestURIParts.length > 5) {
|
||||||
|
requestEndpoint = requestURIParts[4] + "-to-" + requestURIParts[5];
|
||||||
|
} else {
|
||||||
|
requestEndpoint = requestURIParts[4];
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("Request endpoint: {}", requestEndpoint);
|
||||||
|
isEnabled = endpointConfiguration.isEndpointEnabled(requestEndpoint);
|
||||||
|
log.debug("Is endpoint enabled: {}", isEnabled);
|
||||||
|
} else {
|
||||||
|
isEnabled = endpointConfiguration.isEndpointEnabled(requestURI);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isEnabled) {
|
||||||
response.sendError(HttpServletResponse.SC_FORBIDDEN, "This endpoint is disabled");
|
response.sendError(HttpServletResponse.SC_FORBIDDEN, "This endpoint is disabled");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -475,6 +475,12 @@ public class UserService implements UserServiceInterface {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getTotalUsersCount() {
|
public long getTotalUsersCount() {
|
||||||
return userRepository.count();
|
// Count all users in the database
|
||||||
|
long userCount = userRepository.count();
|
||||||
|
// Exclude the internal API user from the count
|
||||||
|
if (findByUsernameIgnoreCase(Role.INTERNAL_API_USER.getRoleId()).isPresent()) {
|
||||||
|
userCount -= 1;
|
||||||
|
}
|
||||||
|
return userCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
package stirling.software.SPDF.controller.api;
|
package stirling.software.SPDF.controller.api;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import io.swagger.v3.oas.annotations.Hidden;
|
import io.swagger.v3.oas.annotations.Hidden;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
|
import stirling.software.SPDF.config.EndpointConfiguration;
|
||||||
import stirling.software.SPDF.config.InstallationPathConfig;
|
import stirling.software.SPDF.config.InstallationPathConfig;
|
||||||
import stirling.software.SPDF.model.ApplicationProperties;
|
import stirling.software.SPDF.model.ApplicationProperties;
|
||||||
import stirling.software.SPDF.utils.GeneralUtils;
|
import stirling.software.SPDF.utils.GeneralUtils;
|
||||||
@ -23,9 +26,13 @@ import stirling.software.SPDF.utils.GeneralUtils;
|
|||||||
public class SettingsController {
|
public class SettingsController {
|
||||||
|
|
||||||
private final ApplicationProperties applicationProperties;
|
private final ApplicationProperties applicationProperties;
|
||||||
|
private final EndpointConfiguration endpointConfiguration;
|
||||||
|
|
||||||
public SettingsController(ApplicationProperties applicationProperties) {
|
public SettingsController(
|
||||||
|
ApplicationProperties applicationProperties,
|
||||||
|
EndpointConfiguration endpointConfiguration) {
|
||||||
this.applicationProperties = applicationProperties;
|
this.applicationProperties = applicationProperties;
|
||||||
|
this.endpointConfiguration = endpointConfiguration;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/update-enable-analytics")
|
@PostMapping("/update-enable-analytics")
|
||||||
@ -41,4 +48,10 @@ public class SettingsController {
|
|||||||
applicationProperties.getSystem().setEnableAnalytics(enabled);
|
applicationProperties.getSystem().setEnableAnalytics(enabled);
|
||||||
return ResponseEntity.ok("Updated");
|
return ResponseEntity.ok("Updated");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get-endpoints-status")
|
||||||
|
@Hidden
|
||||||
|
public ResponseEntity<Map<String, Boolean>> getDisabledEndpoints() {
|
||||||
|
return ResponseEntity.ok(endpointConfiguration.getEndpointStatuses());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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: {} ({})",
|
||||||
|
@ -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
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
package stirling.software.SPDF.controller.web;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import stirling.software.SPDF.model.ApplicationProperties;
|
||||||
|
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class UploadLimitService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationProperties applicationProperties;
|
||||||
|
|
||||||
|
public long getUploadLimit() {
|
||||||
|
String maxUploadSize =
|
||||||
|
applicationProperties.getSystem().getFileUploadLimit() != null
|
||||||
|
? applicationProperties.getSystem().getFileUploadLimit()
|
||||||
|
: "";
|
||||||
|
|
||||||
|
if (maxUploadSize.isEmpty()) {
|
||||||
|
return 0;
|
||||||
|
} else if (!Pattern.compile("^[1-9][0-9]{0,2}[KMGkmg][Bb]$").matcher(maxUploadSize).matches()) {
|
||||||
|
log.error(
|
||||||
|
"Invalid maxUploadSize format. Expected format: [1-9][0-9]{0,2}[KMGkmg][Bb], but got: {}",
|
||||||
|
maxUploadSize);
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
String unit = maxUploadSize.replaceAll("[1-9][0-9]{0,2}", "").toUpperCase();
|
||||||
|
String number = maxUploadSize.replaceAll("[KMGkmg][Bb]", "");
|
||||||
|
long size = Long.parseLong(number);
|
||||||
|
return switch (unit) {
|
||||||
|
case "KB" -> size * 1024;
|
||||||
|
case "MB" -> size * 1024 * 1024;
|
||||||
|
case "GB" -> size * 1024 * 1024 * 1024;
|
||||||
|
default -> 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: why do this server side not client?
|
||||||
|
public String getReadableUploadLimit() {
|
||||||
|
return humanReadableByteCount(getUploadLimit());
|
||||||
|
}
|
||||||
|
|
||||||
|
private String humanReadableByteCount(long bytes) {
|
||||||
|
if (bytes < 1024) return bytes + " B";
|
||||||
|
int exp = (int) (Math.log(bytes) / Math.log(1024));
|
||||||
|
String pre = "KMGTPE".charAt(exp - 1) + "B";
|
||||||
|
return String.format("%.1f %s", bytes / Math.pow(1024, exp), pre);
|
||||||
|
}
|
||||||
|
}
|
@ -290,6 +290,7 @@ public class ApplicationProperties {
|
|||||||
private Boolean disableSanitize;
|
private Boolean disableSanitize;
|
||||||
private Boolean enableUrlToPDF;
|
private Boolean enableUrlToPDF;
|
||||||
private CustomPaths customPaths = new CustomPaths();
|
private CustomPaths customPaths = new CustomPaths();
|
||||||
|
private String fileUploadLimit;
|
||||||
|
|
||||||
public boolean isAnalyticsEnabled() {
|
public boolean isAnalyticsEnabled() {
|
||||||
return this.getEnableAnalytics() != null && this.getEnableAnalytics();
|
return this.getEnableAnalytics() != null && this.getEnableAnalytics();
|
||||||
|
@ -63,6 +63,8 @@ public class PostHogService {
|
|||||||
if (!applicationProperties.getSystem().isAnalyticsEnabled()) {
|
if (!applicationProperties.getSystem().isAnalyticsEnabled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
properties.put("app_version", appVersion);
|
||||||
postHog.capture(uniqueId, eventName, properties);
|
postHog.capture(uniqueId, eventName, properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=اختر ملفات PDF (2+)
|
|||||||
multiPdfDropPrompt=حدد (أو اسحب وأفلت) جميع ملفات PDF التي تحتاجها
|
multiPdfDropPrompt=حدد (أو اسحب وأفلت) جميع ملفات PDF التي تحتاجها
|
||||||
imgPrompt=اختر صورة
|
imgPrompt=اختر صورة
|
||||||
genericSubmit=إرسال
|
genericSubmit=إرسال
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=تحذير: يمكن أن تستغرق هذه العملية ما يصل إلى دقيقة حسب حجم الملف
|
processTimeWarning=تحذير: يمكن أن تستغرق هذه العملية ما يصل إلى دقيقة حسب حجم الملف
|
||||||
pageOrderPrompt=ترتيب الصفحات (أدخل قائمة بأرقام الصفحات مفصولة بفواصل):
|
pageOrderPrompt=ترتيب الصفحات (أدخل قائمة بأرقام الصفحات مفصولة بفواصل):
|
||||||
pageSelectionPrompt=اختيار الصفحات المخصص (أدخل قائمة بأرقام الصفحات مفصولة بفواصل 1،5،6 أو دوال مثل 2n+1):
|
pageSelectionPrompt=اختيار الصفحات المخصص (أدخل قائمة بأرقام الصفحات مفصولة بفواصل 1،5،6 أو دوال مثل 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=شروط الاستخدام
|
|||||||
legal.accessibility=إمكانية الوصول
|
legal.accessibility=إمكانية الوصول
|
||||||
legal.cookie=سياسة ملفات تعريف الارتباط
|
legal.cookie=سياسة ملفات تعريف الارتباط
|
||||||
legal.impressum=بيان الهوية
|
legal.impressum=بيان الهوية
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=تفعيل الإحصائيات
|
|||||||
analytics.disable=تعطيل الإحصائيات
|
analytics.disable=تعطيل الإحصائيات
|
||||||
analytics.settings=يمكنك تغيير إعدادات الإحصائيات في ملف config/settings.yml
|
analytics.settings=يمكنك تغيير إعدادات الإحصائيات في ملف config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=PDFləri Seç (2+)
|
|||||||
multiPdfDropPrompt=Ehtiyacınız olan bütün PDFləri seçin (və ya sürükləyib buraxın)
|
multiPdfDropPrompt=Ehtiyacınız olan bütün PDFləri seçin (və ya sürükləyib buraxın)
|
||||||
imgPrompt=Şəkil(lər)i Seç
|
imgPrompt=Şəkil(lər)i Seç
|
||||||
genericSubmit=Təsdiq Et
|
genericSubmit=Təsdiq Et
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Xəbərdarlıq: Bu proses fayl ölçüsündən asılı olaraq bir dəqiqəyə qədər vaxt ala bilər
|
processTimeWarning=Xəbərdarlıq: Bu proses fayl ölçüsündən asılı olaraq bir dəqiqəyə qədər vaxt ala bilər
|
||||||
pageOrderPrompt=Xüsusi Səhifə Ardıcıllığı (Vergüllə ayrılmış səhifə nömrələri listini və ya 2n+1 tərzində Funksiyalar daxil edin) :
|
pageOrderPrompt=Xüsusi Səhifə Ardıcıllığı (Vergüllə ayrılmış səhifə nömrələri listini və ya 2n+1 tərzində Funksiyalar daxil edin) :
|
||||||
pageSelectionPrompt=Xüsusi Səhifə Seçimi (1, 5, 6 tərzində vergüllə ayrılmış səhifə nömrələri listini və ya 2n+1 tərzində Funksiyalar daxil edin) :
|
pageSelectionPrompt=Xüsusi Səhifə Seçimi (1, 5, 6 tərzində vergüllə ayrılmış səhifə nömrələri listini və ya 2n+1 tərzində Funksiyalar daxil edin) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Qaydalar və Şərtlər
|
|||||||
legal.accessibility=Əlçatanlıq
|
legal.accessibility=Əlçatanlıq
|
||||||
legal.cookie=Kuki Siyasəti
|
legal.cookie=Kuki Siyasəti
|
||||||
legal.impressum=Təəssürat
|
legal.impressum=Təəssürat
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Analitikanı aktivləşdir
|
|||||||
analytics.disable=Analitikanı deaktivləşdir
|
analytics.disable=Analitikanı deaktivləşdir
|
||||||
analytics.settings=Analitikanın parametrlərini config/settings.yml faylından dəyişə bilərsiniz.
|
analytics.settings=Analitikanın parametrlərini config/settings.yml faylından dəyişə bilərsiniz.
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Изберете PDF (2+)
|
|||||||
multiPdfDropPrompt=Изберете (или плъзнете и пуснете) всички PDF файлове, от които се нуждаете
|
multiPdfDropPrompt=Изберете (или плъзнете и пуснете) всички PDF файлове, от които се нуждаете
|
||||||
imgPrompt=Изберете изображение(я)
|
imgPrompt=Изберете изображение(я)
|
||||||
genericSubmit=Подайте
|
genericSubmit=Подайте
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Предупреждение: Този процес може да отнеме до минута в зависимост от размера на файла
|
processTimeWarning=Предупреждение: Този процес може да отнеме до минута в зависимост от размера на файла
|
||||||
pageOrderPrompt=Персонализиран ред на страниците (Въведете разделен със запетаи списък с номера на страници или функции като 2n+1):
|
pageOrderPrompt=Персонализиран ред на страниците (Въведете разделен със запетаи списък с номера на страници или функции като 2n+1):
|
||||||
pageSelectionPrompt=Персонализиран избор на страница (Въведете списък с номера на страници 1,5,6, разделени със запетая, или функции като 2n+1) :
|
pageSelectionPrompt=Персонализиран избор на страница (Въведете списък с номера на страници 1,5,6, разделени със запетая, или функции като 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Правила и условия
|
|||||||
legal.accessibility=Достъпност
|
legal.accessibility=Достъпност
|
||||||
legal.cookie=Политика за бисквитки
|
legal.cookie=Политика за бисквитки
|
||||||
legal.impressum=Отпечатък
|
legal.impressum=Отпечатък
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Активиране на анализа
|
|||||||
analytics.disable=Деактивиране на анализа
|
analytics.disable=Деактивиране на анализа
|
||||||
analytics.settings=Можете да промените настройките за анализ във config/settings.yml файла
|
analytics.settings=Можете да промените настройките за анализ във config/settings.yml файла
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Версия
|
|||||||
validateSignature.cert.keyUsage=Предназначение на ключа за използване
|
validateSignature.cert.keyUsage=Предназначение на ключа за използване
|
||||||
validateSignature.cert.selfSigned=Самостоятелно подписан
|
validateSignature.cert.selfSigned=Самостоятелно подписан
|
||||||
validateSignature.cert.bits=битове
|
validateSignature.cert.bits=битове
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Selecciona PDFs (2+)
|
|||||||
multiPdfDropPrompt=Selecciona (o arrossega) els documents PDF
|
multiPdfDropPrompt=Selecciona (o arrossega) els documents PDF
|
||||||
imgPrompt=Selecciona Imatge(s)
|
imgPrompt=Selecciona Imatge(s)
|
||||||
genericSubmit=Envia
|
genericSubmit=Envia
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Alerta: Aquest procés pot tardar 1 minut depenent de la mida de l'arxiu
|
processTimeWarning=Alerta: Aquest procés pot tardar 1 minut depenent de la mida de l'arxiu
|
||||||
pageOrderPrompt=Ordre de Pàgines (Llista separada per comes) :
|
pageOrderPrompt=Ordre de Pàgines (Llista separada per comes) :
|
||||||
pageSelectionPrompt=Selecció de pàgines personalitzada (Introdueix una llista separada per comes de números de pàgina, 1,5,6 o funcions com 2n+1):
|
pageSelectionPrompt=Selecció de pàgines personalitzada (Introdueix una llista separada per comes de números de pàgina, 1,5,6 o funcions com 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=Termes i condicions
|
|||||||
legal.accessibility=Accessibilitat
|
legal.accessibility=Accessibilitat
|
||||||
legal.cookie=Política de galetes
|
legal.cookie=Política de galetes
|
||||||
legal.impressum=Avís Legal
|
legal.impressum=Avís Legal
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Habilita analítiques
|
|||||||
analytics.disable=Desactiva analítiques
|
analytics.disable=Desactiva analítiques
|
||||||
analytics.settings=Pots canviar la configuració de les analítiques al fitxer config/settings.yml
|
analytics.settings=Pots canviar la configuració de les analítiques al fitxer config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Versió
|
|||||||
validateSignature.cert.keyUsage=Ús de la clau
|
validateSignature.cert.keyUsage=Ús de la clau
|
||||||
validateSignature.cert.selfSigned=Autofirmat
|
validateSignature.cert.selfSigned=Autofirmat
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Vyberte PDF soubory (2+)
|
|||||||
multiPdfDropPrompt=Vyberte (nebo přetáhněte) všechny požadované PDF soubory
|
multiPdfDropPrompt=Vyberte (nebo přetáhněte) všechny požadované PDF soubory
|
||||||
imgPrompt=Vyberte obrázek(y)
|
imgPrompt=Vyberte obrázek(y)
|
||||||
genericSubmit=Odeslat
|
genericSubmit=Odeslat
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Upozornění: Tento proces může trvat až minutu v závislosti na velikosti souboru
|
processTimeWarning=Upozornění: Tento proces může trvat až minutu v závislosti na velikosti souboru
|
||||||
pageOrderPrompt=Vlastní pořadí stránek (Zadejte seznam čísel stránek oddělených čárkou nebo funkci jako např. 2n+1):
|
pageOrderPrompt=Vlastní pořadí stránek (Zadejte seznam čísel stránek oddělených čárkou nebo funkci jako např. 2n+1):
|
||||||
pageSelectionPrompt=Vlastní výběr stránek (Zadejte seznam čísel stránek oddělených čárkou jako 1,5,6 nebo funkci jako např. 2n+1):
|
pageSelectionPrompt=Vlastní výběr stránek (Zadejte seznam čísel stránek oddělených čárkou jako 1,5,6 nebo funkci jako např. 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=Podmínky použití
|
|||||||
legal.accessibility=Přístupnost
|
legal.accessibility=Přístupnost
|
||||||
legal.cookie=Zásady používání cookies
|
legal.cookie=Zásady používání cookies
|
||||||
legal.impressum=Tiráž
|
legal.impressum=Tiráž
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Povolit analytiku
|
|||||||
analytics.disable=Zakázat analytiku
|
analytics.disable=Zakázat analytiku
|
||||||
analytics.settings=Nastavení analytiky můžete změnit v souboru config/settings.yml
|
analytics.settings=Nastavení analytiky můžete změnit v souboru config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Verze
|
|||||||
validateSignature.cert.keyUsage=Použití klíče
|
validateSignature.cert.keyUsage=Použití klíče
|
||||||
validateSignature.cert.selfSigned=Podepsaný sám sebou
|
validateSignature.cert.selfSigned=Podepsaný sám sebou
|
||||||
validateSignature.cert.bits=bitů
|
validateSignature.cert.bits=bitů
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Vælg PDF-filerne (2+)
|
|||||||
multiPdfDropPrompt=Vælg (eller drag & drop) alle PDF-filerne du skal bruge
|
multiPdfDropPrompt=Vælg (eller drag & drop) alle PDF-filerne du skal bruge
|
||||||
imgPrompt=Vælg Billede(r)
|
imgPrompt=Vælg Billede(r)
|
||||||
genericSubmit=Indsend
|
genericSubmit=Indsend
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Advarsel: Denne proces kan tage op til et helt minut, alt efter størrelsen på filen
|
processTimeWarning=Advarsel: Denne proces kan tage op til et helt minut, alt efter størrelsen på filen
|
||||||
pageOrderPrompt=Brugerdefineret siderækkefølge (Indtast en kommasepareret liste af sidenumre eller funktioner som 2n+1) :
|
pageOrderPrompt=Brugerdefineret siderækkefølge (Indtast en kommasepareret liste af sidenumre eller funktioner som 2n+1) :
|
||||||
pageSelectionPrompt=Brugerdefineret sidevalg (Indtast en kommasepareret liste af sidenumre 1,5,6 eller funktioner som 2n+1) :
|
pageSelectionPrompt=Brugerdefineret sidevalg (Indtast en kommasepareret liste af sidenumre 1,5,6 eller funktioner som 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Vilkår og betingelser
|
|||||||
legal.accessibility=Adgangsnævnteglen
|
legal.accessibility=Adgangsnævnteglen
|
||||||
legal.cookie=Cokiebelejring
|
legal.cookie=Cokiebelejring
|
||||||
legal.impressum=Angivelse af ansvar
|
legal.impressum=Angivelse af ansvar
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Aktivér analytics
|
|||||||
analytics.disable=Deaktiver analytics
|
analytics.disable=Deaktiver analytics
|
||||||
analytics.settings=Du kan ændre analytics-indstillingerne i config/settings.yml-filen
|
analytics.settings=Du kan ændre analytics-indstillingerne i config/settings.yml-filen
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=PDFs auswählen(2+)
|
|||||||
multiPdfDropPrompt=Wählen Sie alle gewünschten PDFs aus (oder ziehen Sie sie per Drag & Drop hierhin)
|
multiPdfDropPrompt=Wählen Sie alle gewünschten PDFs aus (oder ziehen Sie sie per Drag & Drop hierhin)
|
||||||
imgPrompt=Wählen Sie ein Bild
|
imgPrompt=Wählen Sie ein Bild
|
||||||
genericSubmit=Absenden
|
genericSubmit=Absenden
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Achtung: Abhängig von der Dateigröße kann dieser Prozess bis zu einer Minute dauern
|
processTimeWarning=Achtung: Abhängig von der Dateigröße kann dieser Prozess bis zu einer Minute dauern
|
||||||
pageOrderPrompt=Seitenreihenfolge (Geben Sie eine durch Komma getrennte Liste von Seitenzahlen ein):
|
pageOrderPrompt=Seitenreihenfolge (Geben Sie eine durch Komma getrennte Liste von Seitenzahlen ein):
|
||||||
pageSelectionPrompt=Benutzerdefinierte Seitenauswahl (Geben Sie eine durch Kommas getrennte Liste von Seitenzahlen 1,5,6 oder Funktionen wie 2n+1 ein):
|
pageSelectionPrompt=Benutzerdefinierte Seitenauswahl (Geben Sie eine durch Kommas getrennte Liste von Seitenzahlen 1,5,6 oder Funktionen wie 2n+1 ein):
|
||||||
@ -90,6 +93,7 @@ legal.terms=AGB
|
|||||||
legal.accessibility=Barrierefreiheit
|
legal.accessibility=Barrierefreiheit
|
||||||
legal.cookie=Cookie-Richtlinie
|
legal.cookie=Cookie-Richtlinie
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Analytics aktivieren
|
|||||||
analytics.disable=Analytics deaktivieren
|
analytics.disable=Analytics deaktivieren
|
||||||
analytics.settings=Sie können die Einstellungen für die Analytics in der config/settings.yml Datei bearbeiten
|
analytics.settings=Sie können die Einstellungen für die Analytics in der config/settings.yml Datei bearbeiten
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Schlüsselverwendung
|
validateSignature.cert.keyUsage=Schlüsselverwendung
|
||||||
validateSignature.cert.selfSigned=Selbstsigniert
|
validateSignature.cert.selfSigned=Selbstsigniert
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Επιλέξτε PDFs (2+)
|
|||||||
multiPdfDropPrompt=Επιλέξτε (ή σύρετε & αφήστε) όλα τα PDF που χρειάζεστε
|
multiPdfDropPrompt=Επιλέξτε (ή σύρετε & αφήστε) όλα τα PDF που χρειάζεστε
|
||||||
imgPrompt=Επιλέξτε εικόνα(ες)
|
imgPrompt=Επιλέξτε εικόνα(ες)
|
||||||
genericSubmit=Υποβολή
|
genericSubmit=Υποβολή
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Προειδοποίηση: Αυτή η διαδικασία μπορεί να διαρκέσει έως ένα λεπτό ανάλογα με το μέγεθος του αρχείου
|
processTimeWarning=Προειδοποίηση: Αυτή η διαδικασία μπορεί να διαρκέσει έως ένα λεπτό ανάλογα με το μέγεθος του αρχείου
|
||||||
pageOrderPrompt=Προσαρμοσμένη σειρά σελίδων (Εισάγετε μια λίστα αριθμών σελίδων χωρισμένη με κόμματα ή συναρτήσεις όπως 2n+1):
|
pageOrderPrompt=Προσαρμοσμένη σειρά σελίδων (Εισάγετε μια λίστα αριθμών σελίδων χωρισμένη με κόμματα ή συναρτήσεις όπως 2n+1):
|
||||||
pageSelectionPrompt=Προσαρμοσμένη επιλογή σελίδων (Εισάγετε μια λίστα αριθμών σελίδων χωρισμένη με κόμματα 1,5,6 ή συναρτήσεις όπως 2n+1):
|
pageSelectionPrompt=Προσαρμοσμένη επιλογή σελίδων (Εισάγετε μια λίστα αριθμών σελίδων χωρισμένη με κόμματα 1,5,6 ή συναρτήσεις όπως 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=Όροι και προϋποθέσεις
|
|||||||
legal.accessibility=Προσβασιμότητα
|
legal.accessibility=Προσβασιμότητα
|
||||||
legal.cookie=Πολιτική cookies
|
legal.cookie=Πολιτική cookies
|
||||||
legal.impressum=Ταυτότητα
|
legal.impressum=Ταυτότητα
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Ενεργοποίηση analytics
|
|||||||
analytics.disable=Απενεργοποίηση analytics
|
analytics.disable=Απενεργοποίηση analytics
|
||||||
analytics.settings=Μπορείτε να αλλάξετε τις ρυθμίσεις για τα analytics στο αρχείο config/settings.yml
|
analytics.settings=Μπορείτε να αλλάξετε τις ρυθμίσεις για τα analytics στο αρχείο config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Έκδοση
|
|||||||
validateSignature.cert.keyUsage=Χρήση κλειδιού
|
validateSignature.cert.keyUsage=Χρήση κλειδιού
|
||||||
validateSignature.cert.selfSigned=Αυτο-υπογεγραμμένο
|
validateSignature.cert.selfSigned=Αυτο-υπογεγραμμένο
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Select PDFs (2+)
|
|||||||
multiPdfDropPrompt=Select (or drag & drop) all PDFs you require
|
multiPdfDropPrompt=Select (or drag & drop) all PDFs you require
|
||||||
imgPrompt=Select Image(s)
|
imgPrompt=Select Image(s)
|
||||||
genericSubmit=Submit
|
genericSubmit=Submit
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Warning: This process can take up to a minute depending on file-size
|
processTimeWarning=Warning: This process can take up to a minute depending on file-size
|
||||||
pageOrderPrompt=Custom Page Order (Enter a comma-separated list of page numbers or Functions like 2n+1) :
|
pageOrderPrompt=Custom Page Order (Enter a comma-separated list of page numbers or Functions like 2n+1) :
|
||||||
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
||||||
@ -1406,7 +1409,8 @@ validateSignature.cert.bits=bits
|
|||||||
# Cookie banner #
|
# Cookie banner #
|
||||||
####################
|
####################
|
||||||
cookieBanner.popUp.title=How we use Cookies
|
cookieBanner.popUp.title=How we use Cookies
|
||||||
cookieBanner.popUp.description=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. <br>If you’d rather not, clicking 'No Thanks' will only enable the essential cookies needed to keep things running smoothly.
|
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.acceptAllBtn=Okay
|
||||||
cookieBanner.popUp.acceptNecessaryBtn=No Thanks
|
cookieBanner.popUp.acceptNecessaryBtn=No Thanks
|
||||||
cookieBanner.popUp.showPreferencesBtn=Manage preferences
|
cookieBanner.popUp.showPreferencesBtn=Manage preferences
|
||||||
@ -1417,8 +1421,11 @@ cookieBanner.preferencesModal.savePreferencesBtn=Save preferences
|
|||||||
cookieBanner.preferencesModal.closeIconLabel=Close modal
|
cookieBanner.preferencesModal.closeIconLabel=Close modal
|
||||||
cookieBanner.preferencesModal.serviceCounterLabel=Service|Services
|
cookieBanner.preferencesModal.serviceCounterLabel=Service|Services
|
||||||
cookieBanner.preferencesModal.subtitle=Cookie Usage
|
cookieBanner.preferencesModal.subtitle=Cookie Usage
|
||||||
cookieBanner.preferencesModal.description=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. <br><br>Stirling PDF cannot—and will never—track or access the content of the documents you use. <b>Your privacy and trust are at the core of what we do<b>.
|
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.necessary.title=Strictly Necessary Cookies <span class=\"pm__badge\">Always Enabled</span>
|
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.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.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.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.
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Select PDFs (2+)
|
|||||||
multiPdfDropPrompt=Select (or drag & drop) all PDFs you require
|
multiPdfDropPrompt=Select (or drag & drop) all PDFs you require
|
||||||
imgPrompt=Select Image(s)
|
imgPrompt=Select Image(s)
|
||||||
genericSubmit=Submit
|
genericSubmit=Submit
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Warning: This process can take up to a minute depending on file-size
|
processTimeWarning=Warning: This process can take up to a minute depending on file-size
|
||||||
pageOrderPrompt=Custom Page Order (Enter a comma-separated list of page numbers or Functions like 2n+1) :
|
pageOrderPrompt=Custom Page Order (Enter a comma-separated list of page numbers or Functions like 2n+1) :
|
||||||
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Terms and Conditions
|
|||||||
legal.accessibility=Accessibility
|
legal.accessibility=Accessibility
|
||||||
legal.cookie=Cookie Policy
|
legal.cookie=Cookie Policy
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Enable analytics
|
|||||||
analytics.disable=Disable analytics
|
analytics.disable=Disable analytics
|
||||||
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Seleccionar PDFs (2+)
|
|||||||
multiPdfDropPrompt=Seleccione (o arrastre y suelte) todos los PDFs que quiera
|
multiPdfDropPrompt=Seleccione (o arrastre y suelte) todos los PDFs que quiera
|
||||||
imgPrompt=Seleccionar Imagen(es)
|
imgPrompt=Seleccionar Imagen(es)
|
||||||
genericSubmit=Enviar
|
genericSubmit=Enviar
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Advertencia: este proceso puede tardar hasta un minuto dependiendo del tamaño del archivo
|
processTimeWarning=Advertencia: este proceso puede tardar hasta un minuto dependiendo del tamaño del archivo
|
||||||
pageOrderPrompt=Orden de páginas (Introduzca una lista de números de página separados por coma):
|
pageOrderPrompt=Orden de páginas (Introduzca una lista de números de página separados por coma):
|
||||||
pageSelectionPrompt=Selección de página personalizada (Intruduzca una lista de números de página separados por comas 1,5,6 o funciones como 2n+1) :
|
pageSelectionPrompt=Selección de página personalizada (Intruduzca una lista de números de página separados por comas 1,5,6 o funciones como 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Términos y Condiciones
|
|||||||
legal.accessibility=Accesibilidad
|
legal.accessibility=Accesibilidad
|
||||||
legal.cookie=Política de Cookies
|
legal.cookie=Política de Cookies
|
||||||
legal.impressum=Impresión
|
legal.impressum=Impresión
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Habilitar analíticas
|
|||||||
analytics.disable=Deshabilitar analíticas
|
analytics.disable=Deshabilitar analíticas
|
||||||
analytics.settings=Puede cambiar la configuración de analíticas en el archivo config/settings.yml
|
analytics.settings=Puede cambiar la configuración de analíticas en el archivo config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Versión
|
|||||||
validateSignature.cert.keyUsage=Uso de la llave
|
validateSignature.cert.keyUsage=Uso de la llave
|
||||||
validateSignature.cert.selfSigned=Autofirmado
|
validateSignature.cert.selfSigned=Autofirmado
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Hautatu PDFak (2+)
|
|||||||
multiPdfDropPrompt=Hautatu (edo arrastatu eta jaregin) nahi dituzun PDFak
|
multiPdfDropPrompt=Hautatu (edo arrastatu eta jaregin) nahi dituzun PDFak
|
||||||
imgPrompt=Hautatu Irudia(k)
|
imgPrompt=Hautatu Irudia(k)
|
||||||
genericSubmit=Bidali
|
genericSubmit=Bidali
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Oharra: prozesu honetarako minutu bat ere beharko da fitxategiaren tamaiaren arabera
|
processTimeWarning=Oharra: prozesu honetarako minutu bat ere beharko da fitxategiaren tamaiaren arabera
|
||||||
pageOrderPrompt=Orrialdeen ordena (sartu komaz bereizitako orrialde-zenbakien zerrenda)
|
pageOrderPrompt=Orrialdeen ordena (sartu komaz bereizitako orrialde-zenbakien zerrenda)
|
||||||
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Terms and Conditions
|
|||||||
legal.accessibility=Accessibility
|
legal.accessibility=Accessibility
|
||||||
legal.cookie=Cookie Policy
|
legal.cookie=Cookie Policy
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Enable analytics
|
|||||||
analytics.disable=Disable analytics
|
analytics.disable=Disable analytics
|
||||||
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=انتخاب فایلهای PDF (دو یا بیشتر)
|
|||||||
multiPdfDropPrompt=انتخاب (یا کشیدن و رها کردن) تمام فایلهای PDF مورد نیاز
|
multiPdfDropPrompt=انتخاب (یا کشیدن و رها کردن) تمام فایلهای PDF مورد نیاز
|
||||||
imgPrompt=انتخاب تصویر(ها)
|
imgPrompt=انتخاب تصویر(ها)
|
||||||
genericSubmit=ارسال
|
genericSubmit=ارسال
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=هشدار: این فرآیند ممکن است بسته به اندازه فایل تا یک دقیقه طول بکشد
|
processTimeWarning=هشدار: این فرآیند ممکن است بسته به اندازه فایل تا یک دقیقه طول بکشد
|
||||||
pageOrderPrompt=ترتیب صفحات سفارشی (یک لیست از شماره صفحات به صورت جدا شده با کاما وارد کنید یا از توابعی مانند 2n+1 استفاده کنید):
|
pageOrderPrompt=ترتیب صفحات سفارشی (یک لیست از شماره صفحات به صورت جدا شده با کاما وارد کنید یا از توابعی مانند 2n+1 استفاده کنید):
|
||||||
pageSelectionPrompt=انتخاب صفحات سفارشی (یک لیست از شماره صفحات به صورت جدا شده با کاما وارد کنید مانند 1,5,6 یا از توابعی مانند 2n+1 استفاده کنید):
|
pageSelectionPrompt=انتخاب صفحات سفارشی (یک لیست از شماره صفحات به صورت جدا شده با کاما وارد کنید مانند 1,5,6 یا از توابعی مانند 2n+1 استفاده کنید):
|
||||||
@ -90,6 +93,7 @@ legal.terms=شرایط و ضوابط
|
|||||||
legal.accessibility=دسترسی
|
legal.accessibility=دسترسی
|
||||||
legal.cookie=سیاست کوکیها
|
legal.cookie=سیاست کوکیها
|
||||||
legal.impressum=توضیحات قانونی
|
legal.impressum=توضیحات قانونی
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=فعال کردن تحلیلها
|
|||||||
analytics.disable=غیرفعال کردن تحلیلها
|
analytics.disable=غیرفعال کردن تحلیلها
|
||||||
analytics.settings=میتوانید تنظیمات مربوط به تحلیلها را در فایل config/settings.yml تغییر دهید
|
analytics.settings=میتوانید تنظیمات مربوط به تحلیلها را در فایل config/settings.yml تغییر دهید
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=نسخه
|
|||||||
validateSignature.cert.keyUsage=کاربرد کلید
|
validateSignature.cert.keyUsage=کاربرد کلید
|
||||||
validateSignature.cert.selfSigned=با امضای خود
|
validateSignature.cert.selfSigned=با امضای خود
|
||||||
validateSignature.cert.bits=بیتها
|
validateSignature.cert.bits=بیتها
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Sélectionnez les PDF
|
|||||||
multiPdfDropPrompt=Sélectionnez (ou glissez-déposez) tous les PDF dont vous avez besoin
|
multiPdfDropPrompt=Sélectionnez (ou glissez-déposez) tous les PDF dont vous avez besoin
|
||||||
imgPrompt=Choisir une image
|
imgPrompt=Choisir une image
|
||||||
genericSubmit=Envoyer
|
genericSubmit=Envoyer
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Attention, ce processus peut prendre jusqu'à une minute en fonction de la taille du fichier.
|
processTimeWarning=Attention, ce processus peut prendre jusqu'à une minute en fonction de la taille du fichier.
|
||||||
pageOrderPrompt=Ordre des pages (entrez une liste de numéros de page séparés par des virgules ou des fonctions telles que 2n+1) :
|
pageOrderPrompt=Ordre des pages (entrez une liste de numéros de page séparés par des virgules ou des fonctions telles que 2n+1) :
|
||||||
pageSelectionPrompt=Sélection des pages (entrez une liste de numéros de page séparés par des virgules ou des fonctions telles que 2n+1) :
|
pageSelectionPrompt=Sélection des pages (entrez une liste de numéros de page séparés par des virgules ou des fonctions telles que 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Conditions Générales
|
|||||||
legal.accessibility=Accessibilité
|
legal.accessibility=Accessibilité
|
||||||
legal.cookie=Politique des Cookies
|
legal.cookie=Politique des Cookies
|
||||||
legal.impressum=Mentions Légales
|
legal.impressum=Mentions Légales
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Activer les analyses
|
|||||||
analytics.disable=Désactiver les analyses
|
analytics.disable=Désactiver les analyses
|
||||||
analytics.settings=Vous pouvez modifier les paramètres des analyses dans le fichier config/settings.yml
|
analytics.settings=Vous pouvez modifier les paramètres des analyses dans le fichier config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1089,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
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Usage de la clé
|
validateSignature.cert.keyUsage=Usage de la clé
|
||||||
validateSignature.cert.selfSigned=Auto-signé
|
validateSignature.cert.selfSigned=Auto-signé
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Roghnaigh PDFs (2+)
|
|||||||
multiPdfDropPrompt=Roghnaigh (nó tarraing & scaoil) gach PDF atá uait
|
multiPdfDropPrompt=Roghnaigh (nó tarraing & scaoil) gach PDF atá uait
|
||||||
imgPrompt=Roghnaigh Íomhá(í)
|
imgPrompt=Roghnaigh Íomhá(í)
|
||||||
genericSubmit=Cuir isteach
|
genericSubmit=Cuir isteach
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Rabhadh: Féadfaidh an próiseas seo suas le nóiméad a ghlacadh ag brath ar mhéid an chomhaid
|
processTimeWarning=Rabhadh: Féadfaidh an próiseas seo suas le nóiméad a ghlacadh ag brath ar mhéid an chomhaid
|
||||||
pageOrderPrompt=Ordú Leathanach Saincheaptha (Iontráil liosta uimhreacha leathanaigh nó Feidhmeanna ar nós 2n+1 le camóga deighilte):
|
pageOrderPrompt=Ordú Leathanach Saincheaptha (Iontráil liosta uimhreacha leathanaigh nó Feidhmeanna ar nós 2n+1 le camóga deighilte):
|
||||||
pageSelectionPrompt=Roghnú Leathanach Saincheaptha (Iontráil liosta leathanach scartha le camóg d'uimhreacha 1,5,6 nó Feidhmeanna ar nós 2n+1):
|
pageSelectionPrompt=Roghnú Leathanach Saincheaptha (Iontráil liosta leathanach scartha le camóg d'uimhreacha 1,5,6 nó Feidhmeanna ar nós 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=Téarmaí agus Coinníollacha
|
|||||||
legal.accessibility=Inrochtaineacht
|
legal.accessibility=Inrochtaineacht
|
||||||
legal.cookie=Polasaí Fianán
|
legal.cookie=Polasaí Fianán
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Cumasaigh anailísíocht
|
|||||||
analytics.disable=Díchumasaigh anailísíocht
|
analytics.disable=Díchumasaigh anailísíocht
|
||||||
analytics.settings=Is féidir leat na socruithe don anailísíocht a athrú sa chomhad config/settings.yml
|
analytics.settings=Is féidir leat na socruithe don anailísíocht a athrú sa chomhad config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Leagan
|
|||||||
validateSignature.cert.keyUsage=Úsáid Eochrach
|
validateSignature.cert.keyUsage=Úsáid Eochrach
|
||||||
validateSignature.cert.selfSigned=Féin-Sínithe
|
validateSignature.cert.selfSigned=Féin-Sínithe
|
||||||
validateSignature.cert.bits=giotáin
|
validateSignature.cert.bits=giotáin
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=पीडीएफ फ़ाइलें चुनें (2+)
|
|||||||
multiPdfDropPrompt=आवश्यक सभी पीडीएफ फ़ाइलों को चुनें (या खींच कर छोड़ें)
|
multiPdfDropPrompt=आवश्यक सभी पीडीएफ फ़ाइलों को चुनें (या खींच कर छोड़ें)
|
||||||
imgPrompt=छवि(यां) चुनें
|
imgPrompt=छवि(यां) चुनें
|
||||||
genericSubmit=जमा करें
|
genericSubmit=जमा करें
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=चेतावनी: फ़ाइल के आकार के आधार पर यह प्रक्रिया एक मिनट तक ले सकती है
|
processTimeWarning=चेतावनी: फ़ाइल के आकार के आधार पर यह प्रक्रिया एक मिनट तक ले सकती है
|
||||||
pageOrderPrompt=कस्टम पृष्ठ क्रम (पृष्ठ संख्याओं की अल्पविराम से अलग सूची या 2n+1 जैसे फ़ंक्शन दर्ज करें):
|
pageOrderPrompt=कस्टम पृष्ठ क्रम (पृष्ठ संख्याओं की अल्पविराम से अलग सूची या 2n+1 जैसे फ़ंक्शन दर्ज करें):
|
||||||
pageSelectionPrompt=कस्टम पृष्ठ चयन (पृष्ठ संख्याओं 1,5,6 या 2n+1 जैसे फ़ंक्शन की अल्पविराम से अलग सूची दर्ज करें):
|
pageSelectionPrompt=कस्टम पृष्ठ चयन (पृष्ठ संख्याओं 1,5,6 या 2n+1 जैसे फ़ंक्शन की अल्पविराम से अलग सूची दर्ज करें):
|
||||||
@ -90,6 +93,7 @@ legal.terms=नियम और शर्तें
|
|||||||
legal.accessibility=सुलभता
|
legal.accessibility=सुलभता
|
||||||
legal.cookie=कुकी नीति
|
legal.cookie=कुकी नीति
|
||||||
legal.impressum=इम्प्रेसम
|
legal.impressum=इम्प्रेसम
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=विश्लेषण सक्षम करें
|
|||||||
analytics.disable=विश्लेषण अक्षम करें
|
analytics.disable=विश्लेषण अक्षम करें
|
||||||
analytics.settings=आप config/settings.yml फ़ाइल में विश्लेषण के लिए सेटिंग्स बदल सकते हैं
|
analytics.settings=आप config/settings.yml फ़ाइल में विश्लेषण के लिए सेटिंग्स बदल सकते हैं
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=संस्करण
|
|||||||
validateSignature.cert.keyUsage=कुंजी उपयोग
|
validateSignature.cert.keyUsage=कुंजी उपयोग
|
||||||
validateSignature.cert.selfSigned=स्व-हस्ताक्षरित
|
validateSignature.cert.selfSigned=स्व-हस्ताक्षरित
|
||||||
validateSignature.cert.bits=बिट्स
|
validateSignature.cert.bits=बिट्स
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Odaberi PDF-ove (2+)
|
|||||||
multiPdfDropPrompt=Odaberi (ili povuci i ispusti) sve potrebne PDF-ove
|
multiPdfDropPrompt=Odaberi (ili povuci i ispusti) sve potrebne PDF-ove
|
||||||
imgPrompt=Odaberi sliku (slike)
|
imgPrompt=Odaberi sliku (slike)
|
||||||
genericSubmit=Pošalji
|
genericSubmit=Pošalji
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Upozorenje: Ovaj proces može trajati i do minutu, u zavisnosti od veličine dokumenta
|
processTimeWarning=Upozorenje: Ovaj proces može trajati i do minutu, u zavisnosti od veličine dokumenta
|
||||||
pageOrderPrompt=Prilagođeni redoslijed stranica (unesi listu brojeva stranica ili funkcija, kao što su 2n+1, razdvojene zarezima) :
|
pageOrderPrompt=Prilagođeni redoslijed stranica (unesi listu brojeva stranica ili funkcija, kao što su 2n+1, razdvojene zarezima) :
|
||||||
pageSelectionPrompt=Prilagođeni odabir stranica (unesi listu brojeva stranica ili funkcija, kao što su 2n+1, razdvojene zarezima) :
|
pageSelectionPrompt=Prilagođeni odabir stranica (unesi listu brojeva stranica ili funkcija, kao što su 2n+1, razdvojene zarezima) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Uspe sodržine
|
|||||||
legal.accessibility=Dostupnost
|
legal.accessibility=Dostupnost
|
||||||
legal.cookie=Politika kolačića
|
legal.cookie=Politika kolačića
|
||||||
legal.impressum=Vedro ishoda
|
legal.impressum=Vedro ishoda
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Omogući analitike
|
|||||||
analytics.disable=Onemogući analitike
|
analytics.disable=Onemogući analitike
|
||||||
analytics.settings=Možete promijeniti postavke za analitike u datoteci config/settings.yml
|
analytics.settings=Možete promijeniti postavke za analitike u datoteci config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=PDF-fájlok kiválasztása (2+)
|
|||||||
multiPdfDropPrompt=Válassza ki (vagy húzza ide) az összes szükséges PDF-fájlt
|
multiPdfDropPrompt=Válassza ki (vagy húzza ide) az összes szükséges PDF-fájlt
|
||||||
imgPrompt=Kép kiválasztása
|
imgPrompt=Kép kiválasztása
|
||||||
genericSubmit=Küldés
|
genericSubmit=Küldés
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Figyelmeztetés: A folyamat akár egy percig is eltarthat a fájlmérettől függően
|
processTimeWarning=Figyelmeztetés: A folyamat akár egy percig is eltarthat a fájlmérettől függően
|
||||||
pageOrderPrompt=Egyedi oldalsorrend (Adja meg az oldalszámokat vesszővel elválasztva vagy használjon függvényeket, pl. 2n+1):
|
pageOrderPrompt=Egyedi oldalsorrend (Adja meg az oldalszámokat vesszővel elválasztva vagy használjon függvényeket, pl. 2n+1):
|
||||||
pageSelectionPrompt=Egyedi oldalválasztás (Adja meg az oldalszámokat vesszővel elválasztva, pl. 1,5,6 vagy használjon függvényeket, pl. 2n+1):
|
pageSelectionPrompt=Egyedi oldalválasztás (Adja meg az oldalszámokat vesszővel elválasztva, pl. 1,5,6 vagy használjon függvényeket, pl. 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=Felhasználási feltételek
|
|||||||
legal.accessibility=Akadálymentesítési nyilatkozat
|
legal.accessibility=Akadálymentesítési nyilatkozat
|
||||||
legal.cookie=Süti szabályzat
|
legal.cookie=Süti szabályzat
|
||||||
legal.impressum=Impresszum
|
legal.impressum=Impresszum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Analitika engedélyezése
|
|||||||
analytics.disable=Analitika letiltása
|
analytics.disable=Analitika letiltása
|
||||||
analytics.settings=Az analitikai beállításokat a config/settings.yml fájlban módosíthatja
|
analytics.settings=Az analitikai beállításokat a config/settings.yml fájlban módosíthatja
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Verzió
|
|||||||
validateSignature.cert.keyUsage=Kulcshasználat
|
validateSignature.cert.keyUsage=Kulcshasználat
|
||||||
validateSignature.cert.selfSigned=Önaláírt
|
validateSignature.cert.selfSigned=Önaláírt
|
||||||
validateSignature.cert.bits=bit
|
validateSignature.cert.bits=bit
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Pilih PDF (2+)
|
|||||||
multiPdfDropPrompt=Pilih (atau seret & letakkan)) semua PDF yang Anda butuhkan
|
multiPdfDropPrompt=Pilih (atau seret & letakkan)) semua PDF yang Anda butuhkan
|
||||||
imgPrompt=Pilih Gambar
|
imgPrompt=Pilih Gambar
|
||||||
genericSubmit=Kirim
|
genericSubmit=Kirim
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Peringatan: Proses ini dapat memakan waktu hingga satu menit, tergantung pada ukuran berkas
|
processTimeWarning=Peringatan: Proses ini dapat memakan waktu hingga satu menit, tergantung pada ukuran berkas
|
||||||
pageOrderPrompt=Urutan Halaman Khusus (Masukkan daftar nomor halaman yang dipisahkan dengan koma atau Fungsi seperti 2n + 1) :
|
pageOrderPrompt=Urutan Halaman Khusus (Masukkan daftar nomor halaman yang dipisahkan dengan koma atau Fungsi seperti 2n + 1) :
|
||||||
pageSelectionPrompt=Pemilihan Halaman Kustom (Masukkan daftar nomor halaman dipisahkan dengan koma 1,5,6 atau Fungsi seperti 2n+1) :
|
pageSelectionPrompt=Pemilihan Halaman Kustom (Masukkan daftar nomor halaman dipisahkan dengan koma 1,5,6 atau Fungsi seperti 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Syarat dan Ketentuan
|
|||||||
legal.accessibility=Aksesibilitas
|
legal.accessibility=Aksesibilitas
|
||||||
legal.cookie=Kebijakan Kuki
|
legal.cookie=Kebijakan Kuki
|
||||||
legal.impressum=Impresum
|
legal.impressum=Impresum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Aktifkan analitik
|
|||||||
analytics.disable=Nonaktifkan analitik
|
analytics.disable=Nonaktifkan analitik
|
||||||
analytics.settings=Anda dapat mengubah pengaturan untuk analitik di berkas config/settings.yml
|
analytics.settings=Anda dapat mengubah pengaturan untuk analitik di berkas config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Scegli 2 o più PDF
|
|||||||
multiPdfDropPrompt=Scegli (o trascina e rilascia) uno o più PDF
|
multiPdfDropPrompt=Scegli (o trascina e rilascia) uno o più PDF
|
||||||
imgPrompt=Scegli immagine/i
|
imgPrompt=Scegli immagine/i
|
||||||
genericSubmit=Invia
|
genericSubmit=Invia
|
||||||
|
uploadLimit=Dimensione massima del file:
|
||||||
|
uploadLimitExceededSingular=è troppo grande. La dimensione massima consentita è
|
||||||
|
uploadLimitExceededPlural=sono troppo grandi. La dimensione massima consentita è
|
||||||
processTimeWarning=Nota: Questo processo potrebbe richiedere fino a un minuto in base alla dimensione dei file
|
processTimeWarning=Nota: Questo processo potrebbe richiedere fino a un minuto in base alla dimensione dei file
|
||||||
pageOrderPrompt=Ordine delle pagine (inserisci una lista di numeri separati da virgola):
|
pageOrderPrompt=Ordine delle pagine (inserisci una lista di numeri separati da virgola):
|
||||||
pageSelectionPrompt=Selezione pagina personalizzata (inserisci un elenco separato da virgole di numeri di pagina 1,5,6 o funzioni come 2n+1) :
|
pageSelectionPrompt=Selezione pagina personalizzata (inserisci un elenco separato da virgole di numeri di pagina 1,5,6 o funzioni come 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Termini e Condizioni
|
|||||||
legal.accessibility=Accessibilità
|
legal.accessibility=Accessibilità
|
||||||
legal.cookie=Informativa sui cookie
|
legal.cookie=Informativa sui cookie
|
||||||
legal.impressum=Informazioni legali
|
legal.impressum=Informazioni legali
|
||||||
|
legal.showCookieBanner=Preferenze sui cookie
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Abilita analytics
|
|||||||
analytics.disable=Disabilita analytics
|
analytics.disable=Disabilita analytics
|
||||||
analytics.settings=È possibile modificare le impostazioni per analitycs nel file config/settings.yml
|
analytics.settings=È possibile modificare le impostazioni per analitycs nel file config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Versione
|
|||||||
validateSignature.cert.keyUsage=Utilizzo della chiave
|
validateSignature.cert.keyUsage=Utilizzo della chiave
|
||||||
validateSignature.cert.selfSigned=Autofirmato
|
validateSignature.cert.selfSigned=Autofirmato
|
||||||
validateSignature.cert.bits=bit
|
validateSignature.cert.bits=bit
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Cookie banner #
|
||||||
|
####################
|
||||||
|
cookieBanner.popUp.title=Come utilizziamo i cookie
|
||||||
|
cookieBanner.popUp.description.1=Utilizziamo cookie e altre tecnologie per migliorare l'esperienza utente di Stirling PDF, aiutandoci a perfezionare i nostri strumenti e a continuare a sviluppare funzionalità che amerai.
|
||||||
|
cookieBanner.popUp.description.2=Se preferisci non farlo, cliccando su "No grazie" verranno abilitati solo i cookie essenziali, necessari per il corretto funzionamento del sito.
|
||||||
|
cookieBanner.popUp.acceptAllBtn=Acconsento
|
||||||
|
cookieBanner.popUp.acceptNecessaryBtn=No grazie
|
||||||
|
cookieBanner.popUp.showPreferencesBtn=Gestisci preferenze
|
||||||
|
cookieBanner.preferencesModal.title=Gestore delle preferenze per il consenso
|
||||||
|
cookieBanner.preferencesModal.acceptAllBtn=Accetta tutto
|
||||||
|
cookieBanner.preferencesModal.acceptNecessaryBtn=Rifiuta tutto
|
||||||
|
cookieBanner.preferencesModal.savePreferencesBtn=Salva preferenze
|
||||||
|
cookieBanner.preferencesModal.closeIconLabel=Chiusura modale
|
||||||
|
cookieBanner.preferencesModal.serviceCounterLabel=Servizio|Servizi
|
||||||
|
cookieBanner.preferencesModal.subtitle=Utilizzo dei cookie
|
||||||
|
cookieBanner.preferencesModal.description.1=Stirling PDF utilizza cookie e tecnologie simili per migliorare la tua esperienza e comprendere come vengono utilizzati i nostri strumenti. Questo ci aiuta a migliorare le prestazioni, a sviluppare le funzionalità che ti interessano e a fornire supporto continuo ai nostri utenti.
|
||||||
|
cookieBanner.preferencesModal.description.2=Stirling PDF non può e non potrà mai tracciare o accedere al contenuto dei documenti che utilizzi.
|
||||||
|
cookieBanner.preferencesModal.description.3=La tua privacy e la tua fiducia sono al centro del nostro operato.
|
||||||
|
cookieBanner.preferencesModal.necessary.title.1=Cookie strettamente necessari
|
||||||
|
cookieBanner.preferencesModal.necessary.title.2=Sempre abilitati
|
||||||
|
cookieBanner.preferencesModal.necessary.description=Questi cookie sono essenziali per il corretto funzionamento del sito web. Abilitano funzionalità fondamentali come l'impostazione delle preferenze sulla privacy, l'accesso e la compilazione di moduli, motivo per cui non possono essere disattivati.
|
||||||
|
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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=PDFを選択 (2つ以上)
|
|||||||
multiPdfDropPrompt=PDFを選択 (又はドラッグ&ドロップ)
|
multiPdfDropPrompt=PDFを選択 (又はドラッグ&ドロップ)
|
||||||
imgPrompt=画像を選択
|
imgPrompt=画像を選択
|
||||||
genericSubmit=送信
|
genericSubmit=送信
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=警告:この処理はファイルサイズによって1分程度かかることがあります
|
processTimeWarning=警告:この処理はファイルサイズによって1分程度かかることがあります
|
||||||
pageOrderPrompt=ページ順序 (ページ番号をカンマ区切り又は2n+1のような関数で入力):
|
pageOrderPrompt=ページ順序 (ページ番号をカンマ区切り又は2n+1のような関数で入力):
|
||||||
pageSelectionPrompt=カスタムページ選択(ページ番号1、5、6または2n + 1などの関数のコンマ区切りリストを入力します):
|
pageSelectionPrompt=カスタムページ選択(ページ番号1、5、6または2n + 1などの関数のコンマ区切りリストを入力します):
|
||||||
@ -90,6 +93,7 @@ legal.terms=利用規約
|
|||||||
legal.accessibility=アクセシビリティ
|
legal.accessibility=アクセシビリティ
|
||||||
legal.cookie=Cookieポリシー
|
legal.cookie=Cookieポリシー
|
||||||
legal.impressum=著作権利者情報
|
legal.impressum=著作権利者情報
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=分析を有効にする
|
|||||||
analytics.disable=分析を無効にする
|
analytics.disable=分析を無効にする
|
||||||
analytics.settings=config/settings.ymlファイルでアナリティクスの設定を変更できます。
|
analytics.settings=config/settings.ymlファイルでアナリティクスの設定を変更できます。
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=バージョン
|
|||||||
validateSignature.cert.keyUsage=キーの使用法
|
validateSignature.cert.keyUsage=キーの使用法
|
||||||
validateSignature.cert.selfSigned=自己署名
|
validateSignature.cert.selfSigned=自己署名
|
||||||
validateSignature.cert.bits=ビット
|
validateSignature.cert.bits=ビット
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=PDF 선택 (2개 이상)
|
|||||||
multiPdfDropPrompt=필요한 모든 PDF를 선택(또는 끌어다 놓기)하세요
|
multiPdfDropPrompt=필요한 모든 PDF를 선택(또는 끌어다 놓기)하세요
|
||||||
imgPrompt=이미지 선택
|
imgPrompt=이미지 선택
|
||||||
genericSubmit=제출
|
genericSubmit=제출
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=경고: 이 과정은 파일 크기에 따라 최대 1분이 소요될 수 있습니다
|
processTimeWarning=경고: 이 과정은 파일 크기에 따라 최대 1분이 소요될 수 있습니다
|
||||||
pageOrderPrompt=사용자 지정 페이지 순서 (쉼표로 구분된 페이지 번호 목록 또는 2n+1과 같은 함수 입력):
|
pageOrderPrompt=사용자 지정 페이지 순서 (쉼표로 구분된 페이지 번호 목록 또는 2n+1과 같은 함수 입력):
|
||||||
pageSelectionPrompt=사용자 지정 페이지 선택 (페이지 번호 1,5,6 또는 2n+1과 같은 함수를 쉼표로 구분하여 목록 입력):
|
pageSelectionPrompt=사용자 지정 페이지 선택 (페이지 번호 1,5,6 또는 2n+1과 같은 함수를 쉼표로 구분하여 목록 입력):
|
||||||
@ -90,6 +93,7 @@ legal.terms=이용약관
|
|||||||
legal.accessibility=접근성
|
legal.accessibility=접근성
|
||||||
legal.cookie=쿠키 정책
|
legal.cookie=쿠키 정책
|
||||||
legal.impressum=법적 고지
|
legal.impressum=법적 고지
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=분석 활성화
|
|||||||
analytics.disable=분석 비활성화
|
analytics.disable=분석 비활성화
|
||||||
analytics.settings=config/settings.yml 파일에서 분석 설정을 변경할 수 있습니다
|
analytics.settings=config/settings.yml 파일에서 분석 설정을 변경할 수 있습니다
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=버전
|
|||||||
validateSignature.cert.keyUsage=키 용도
|
validateSignature.cert.keyUsage=키 용도
|
||||||
validateSignature.cert.selfSigned=자체 서명
|
validateSignature.cert.selfSigned=자체 서명
|
||||||
validateSignature.cert.bits=비트
|
validateSignature.cert.bits=비트
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Selecteer PDF's (2+)
|
|||||||
multiPdfDropPrompt=Selecteer (of sleep & zet neer) alle PDF's die je nodig hebt
|
multiPdfDropPrompt=Selecteer (of sleep & zet neer) alle PDF's die je nodig hebt
|
||||||
imgPrompt=Selecteer afbeelding(en)
|
imgPrompt=Selecteer afbeelding(en)
|
||||||
genericSubmit=Indienen
|
genericSubmit=Indienen
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Waarschuwing: Dit proces kan tot een minuut duren afhankelijk van de bestandsgrootte
|
processTimeWarning=Waarschuwing: Dit proces kan tot een minuut duren afhankelijk van de bestandsgrootte
|
||||||
pageOrderPrompt=Aangepaste pagina volgorde (Voer een komma-gescheiden lijst van paginanummers of functies in, zoals 2n+1) :
|
pageOrderPrompt=Aangepaste pagina volgorde (Voer een komma-gescheiden lijst van paginanummers of functies in, zoals 2n+1) :
|
||||||
pageSelectionPrompt=Aangepaste pagina selectie (Voer een komma-gescheiden lijst van paginanummer 1,5,6 of functies zoals 2n+1 in) :
|
pageSelectionPrompt=Aangepaste pagina selectie (Voer een komma-gescheiden lijst van paginanummer 1,5,6 of functies zoals 2n+1 in) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Voorwaarden van gebruik
|
|||||||
legal.accessibility=Toegankelijkheid
|
legal.accessibility=Toegankelijkheid
|
||||||
legal.cookie=Cookiesbeleid
|
legal.cookie=Cookiesbeleid
|
||||||
legal.impressum=Imprint
|
legal.impressum=Imprint
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Enable analytics
|
|||||||
analytics.disable=Disable analytics
|
analytics.disable=Disable analytics
|
||||||
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Velg PDF-filer (2+)
|
|||||||
multiPdfDropPrompt=Velg (eller dra og slipp) alle PDF-ene du trenger
|
multiPdfDropPrompt=Velg (eller dra og slipp) alle PDF-ene du trenger
|
||||||
imgPrompt=Velg Bilde(r)
|
imgPrompt=Velg Bilde(r)
|
||||||
genericSubmit=Send inn
|
genericSubmit=Send inn
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Denne prosessen kan ta opptil ett minutt avhengig av filstørrelse
|
processTimeWarning=Denne prosessen kan ta opptil ett minutt avhengig av filstørrelse
|
||||||
pageOrderPrompt=Tilpasset side rekkefølge (Skriv inn en kommaseparert liste over sidetall eller funksjoner som 2n+1):
|
pageOrderPrompt=Tilpasset side rekkefølge (Skriv inn en kommaseparert liste over sidetall eller funksjoner som 2n+1):
|
||||||
pageSelectionPrompt=Tilpasset Sidevalg (Skriv inn en kommaseparert liste over sidetall 1,5,6 eller Funksjoner som 2n+1):
|
pageSelectionPrompt=Tilpasset Sidevalg (Skriv inn en kommaseparert liste over sidetall 1,5,6 eller Funksjoner som 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=Vilkår og betingelser
|
|||||||
legal.accessibility=Tilgjengelighet
|
legal.accessibility=Tilgjengelighet
|
||||||
legal.cookie=Informasjonskapsler
|
legal.cookie=Informasjonskapsler
|
||||||
legal.impressum=Juridisk informasjon
|
legal.impressum=Juridisk informasjon
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Aktiver analyse
|
|||||||
analytics.disable=Deaktiver analyse
|
analytics.disable=Deaktiver analyse
|
||||||
analytics.settings=Du kan endre innstillingene for analyse i config/settings.yml filen
|
analytics.settings=Du kan endre innstillingene for analyse i config/settings.yml filen
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Versjon
|
|||||||
validateSignature.cert.keyUsage=Nøkkelbruk
|
validateSignature.cert.keyUsage=Nøkkelbruk
|
||||||
validateSignature.cert.selfSigned=Selv-signert
|
validateSignature.cert.selfSigned=Selv-signert
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Wybierz PDF (2+)
|
|||||||
multiPdfDropPrompt=Wybierz (lub przeciągnij i puść) wszystkie dokumenty PDF
|
multiPdfDropPrompt=Wybierz (lub przeciągnij i puść) wszystkie dokumenty PDF
|
||||||
imgPrompt=Wybierz obraz(y)
|
imgPrompt=Wybierz obraz(y)
|
||||||
genericSubmit=Wyślij
|
genericSubmit=Wyślij
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Ostrzeżenie: Ten proces może potrwać do minuty, w zależności od rozmiaru pliku
|
processTimeWarning=Ostrzeżenie: Ten proces może potrwać do minuty, w zależności od rozmiaru pliku
|
||||||
pageOrderPrompt=Kolejność stron (wprowadź listę numerów stron oddzielonych przecinkami) :
|
pageOrderPrompt=Kolejność stron (wprowadź listę numerów stron oddzielonych przecinkami) :
|
||||||
pageSelectionPrompt=Niestandardowy wybór strony (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
pageSelectionPrompt=Niestandardowy wybór strony (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Zasady i Postanowienia
|
|||||||
legal.accessibility=Dostępność
|
legal.accessibility=Dostępność
|
||||||
legal.cookie=Polityka plików cookie
|
legal.cookie=Polityka plików cookie
|
||||||
legal.impressum=Impresja
|
legal.impressum=Impresja
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Włącz analitykę
|
|||||||
analytics.disable=Wyłącz analitykę
|
analytics.disable=Wyłącz analitykę
|
||||||
analytics.settings=Możesz zmienić ustawienia analityki w pliku config/settings.yml
|
analytics.settings=Możesz zmienić ustawienia analityki w pliku config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Wersja
|
|||||||
validateSignature.cert.keyUsage=Zastosowanie klucza
|
validateSignature.cert.keyUsage=Zastosowanie klucza
|
||||||
validateSignature.cert.selfSigned=Samopodpisany
|
validateSignature.cert.selfSigned=Samopodpisany
|
||||||
validateSignature.cert.bits=bity
|
validateSignature.cert.bits=bity
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +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=Tamanho máximo do arquivo:
|
||||||
|
uploadLimitExceededSingular=está acima do limite. Tamanho máximo permitido é
|
||||||
|
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):
|
||||||
@ -83,13 +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=Preferências de Cookies
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Habilitar coleta de dados
|
|||||||
analytics.disable=Desabilitar coleta de dados
|
analytics.disable=Desabilitar coleta de dados
|
||||||
analytics.settings=Você pode alterar as configurações de coleta de dados no arquivo config/settings.yml
|
analytics.settings=Você pode alterar as configurações de coleta de dados no arquivo config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -232,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
|
||||||
@ -734,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
|
||||||
|
|
||||||
|
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Versão
|
|||||||
validateSignature.cert.keyUsage=Uso da chave
|
validateSignature.cert.keyUsage=Uso da chave
|
||||||
validateSignature.cert.selfSigned=Autoassinados
|
validateSignature.cert.selfSigned=Autoassinados
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Cookie banner #
|
||||||
|
####################
|
||||||
|
cookieBanner.popUp.title=Como nós utilizamos Cookies:
|
||||||
|
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=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=Aceito
|
||||||
|
cookieBanner.popUp.acceptNecessaryBtn=Não, Obrigado
|
||||||
|
cookieBanner.popUp.showPreferencesBtn=Gerenciar Preferências
|
||||||
|
cookieBanner.preferencesModal.title=Central de Preferências de Consentimento
|
||||||
|
cookieBanner.preferencesModal.acceptAllBtn=Aceitar tudo
|
||||||
|
cookieBanner.preferencesModal.acceptNecessaryBtn=Rejeitar tudo
|
||||||
|
cookieBanner.preferencesModal.savePreferencesBtn=Salvar preferências
|
||||||
|
cookieBanner.preferencesModal.closeIconLabel=Fechar janela
|
||||||
|
cookieBanner.preferencesModal.serviceCounterLabel=Serviço|Serviços
|
||||||
|
cookieBanner.preferencesModal.subtitle=Uso de Cookies
|
||||||
|
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=O Stirling PDF não pode – e nunca irá – rastrear ou acessar o conteúdo dos documentos que você manipula.
|
||||||
|
cookieBanner.preferencesModal.description.3=Sua privacidade e confiança são prioridades para nós.
|
||||||
|
cookieBanner.preferencesModal.necessary.title.1=Cookies Estritamente Necessários
|
||||||
|
cookieBanner.preferencesModal.necessary.title.2=Sempre Ativado
|
||||||
|
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=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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Selecione PDFs (2+)
|
|||||||
multiPdfDropPrompt=Selecione (ou arraste e solte) todos os PDFs necessários
|
multiPdfDropPrompt=Selecione (ou arraste e solte) todos os PDFs necessários
|
||||||
imgPrompt=Selecione Imagem(ns)
|
imgPrompt=Selecione Imagem(ns)
|
||||||
genericSubmit=Submeter
|
genericSubmit=Submeter
|
||||||
|
uploadLimit=Tamanho máximo de ficheiro:
|
||||||
|
uploadLimitExceededSingular=é muito grande. O tamanho máximo permitido é
|
||||||
|
uploadLimitExceededPlural=são muito grandes. O tamanho máximo permitido é
|
||||||
processTimeWarning=Aviso: Este processo pode demorar até um minuto dependendo do tamanho do ficheiro
|
processTimeWarning=Aviso: Este processo pode demorar até um minuto dependendo do tamanho do ficheiro
|
||||||
pageOrderPrompt=Ordem Personalizada de Páginas (Insira uma lista de números de página separados por vírgulas ou Funções como 2n+1):
|
pageOrderPrompt=Ordem Personalizada de Páginas (Insira uma lista de números de página separados por vírgulas ou Funções como 2n+1):
|
||||||
pageSelectionPrompt=Seleção Personalizada de Páginas (Insira uma lista de números de página separados por vírgulas 1,5,6 ou Funções como 2n+1):
|
pageSelectionPrompt=Seleção Personalizada de Páginas (Insira uma lista de números de página separados por vírgulas 1,5,6 ou Funções como 2n+1):
|
||||||
@ -90,6 +93,7 @@ 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=Aviso Legal
|
legal.impressum=Aviso Legal
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Ativar análises
|
|||||||
analytics.disable=Desativar análises
|
analytics.disable=Desativar análises
|
||||||
analytics.settings=Pode alterar as definições para análises no ficheiro config/settings.yml
|
analytics.settings=Pode alterar as definições para análises no ficheiro config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Versão
|
|||||||
validateSignature.cert.keyUsage=Utilização da Chave
|
validateSignature.cert.keyUsage=Utilização da Chave
|
||||||
validateSignature.cert.selfSigned=Auto-Assinado
|
validateSignature.cert.selfSigned=Auto-Assinado
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Selectează mai multe fișiere PDF (2+)
|
|||||||
multiPdfDropPrompt=Selectează (sau trage și plasează) toate fișierele PDF de care ai nevoie
|
multiPdfDropPrompt=Selectează (sau trage și plasează) toate fișierele PDF de care ai nevoie
|
||||||
imgPrompt=Selectează imagini
|
imgPrompt=Selectează imagini
|
||||||
genericSubmit=Trimite
|
genericSubmit=Trimite
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Avertisment: Acest proces poate dura până la un minut în funcție de dimensiunea fișierului
|
processTimeWarning=Avertisment: Acest proces poate dura până la un minut în funcție de dimensiunea fișierului
|
||||||
pageOrderPrompt=Ordinea paginilor (Introdu o listă separată prin virgulă de numere de pagină):
|
pageOrderPrompt=Ordinea paginilor (Introdu o listă separată prin virgulă de numere de pagină):
|
||||||
pageSelectionPrompt=Selecție Personalizată de Pagini (Introduceți o listă separată prin virgule a numerelor de pagini 1,5,6 sau funcții precum 2n+1) :
|
pageSelectionPrompt=Selecție Personalizată de Pagini (Introduceți o listă separată prin virgule a numerelor de pagini 1,5,6 sau funcții precum 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Terms and Conditions
|
|||||||
legal.accessibility=Accessibility
|
legal.accessibility=Accessibility
|
||||||
legal.cookie=Cookie Policy
|
legal.cookie=Cookie Policy
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Enable analytics
|
|||||||
analytics.disable=Disable analytics
|
analytics.disable=Disable analytics
|
||||||
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Выберите PDF-файлы (2+)
|
|||||||
multiPdfDropPrompt=Выберите (или перетащите) все необходимые PDF-файлы
|
multiPdfDropPrompt=Выберите (или перетащите) все необходимые PDF-файлы
|
||||||
imgPrompt=Выберите изображение(я)
|
imgPrompt=Выберите изображение(я)
|
||||||
genericSubmit=Отправить
|
genericSubmit=Отправить
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Внимание: Данный процесс может занять до минуты в зависимости от размера файла
|
processTimeWarning=Внимание: Данный процесс может занять до минуты в зависимости от размера файла
|
||||||
pageOrderPrompt=Пользовательский порядок страниц (Введите список номеров страниц через запятую или функции типа 2n+1):
|
pageOrderPrompt=Пользовательский порядок страниц (Введите список номеров страниц через запятую или функции типа 2n+1):
|
||||||
pageSelectionPrompt=Выбор страниц (Введите список номеров страниц через запятую 1,5,6 или функции типа 2n+1):
|
pageSelectionPrompt=Выбор страниц (Введите список номеров страниц через запятую 1,5,6 или функции типа 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=Условия использования
|
|||||||
legal.accessibility=Доступность
|
legal.accessibility=Доступность
|
||||||
legal.cookie=Политика использования файлов cookie
|
legal.cookie=Политика использования файлов cookie
|
||||||
legal.impressum=Выходные данные
|
legal.impressum=Выходные данные
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Включить аналитику
|
|||||||
analytics.disable=Отключить аналитику
|
analytics.disable=Отключить аналитику
|
||||||
analytics.settings=Вы можете изменить настройки аналитики в файле config/settings.yml
|
analytics.settings=Вы можете изменить настройки аналитики в файле config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Версия
|
|||||||
validateSignature.cert.keyUsage=Использование ключа
|
validateSignature.cert.keyUsage=Использование ключа
|
||||||
validateSignature.cert.selfSigned=Самоподписанный
|
validateSignature.cert.selfSigned=Самоподписанный
|
||||||
validateSignature.cert.bits=бит
|
validateSignature.cert.bits=бит
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Vyberte PDF súbory (2+)
|
|||||||
multiPdfDropPrompt=Vyberte (alebo pretiahnite) všetky požadované PDF súbory
|
multiPdfDropPrompt=Vyberte (alebo pretiahnite) všetky požadované PDF súbory
|
||||||
imgPrompt=Vyberte obrázok(y)
|
imgPrompt=Vyberte obrázok(y)
|
||||||
genericSubmit=Odoslať
|
genericSubmit=Odoslať
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Varovanie: Tento proces môže trvať až minútu v závislosti od veľkosti súboru
|
processTimeWarning=Varovanie: Tento proces môže trvať až minútu v závislosti od veľkosti súboru
|
||||||
pageOrderPrompt=Vlastné poradie stránok (Zadajte zoznam čísel stránok oddelených čiarkou alebo funkcie ako 2n+1):
|
pageOrderPrompt=Vlastné poradie stránok (Zadajte zoznam čísel stránok oddelených čiarkou alebo funkcie ako 2n+1):
|
||||||
pageSelectionPrompt=Vlastný výber stránok (Zadajte zoznam čísel stránok oddelených čiarkou 1,5,6 alebo funkcie ako 2n+1):
|
pageSelectionPrompt=Vlastný výber stránok (Zadajte zoznam čísel stránok oddelených čiarkou 1,5,6 alebo funkcie ako 2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=Terms and Conditions
|
|||||||
legal.accessibility=Accessibility
|
legal.accessibility=Accessibility
|
||||||
legal.cookie=Cookie Policy
|
legal.cookie=Cookie Policy
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Enable analytics
|
|||||||
analytics.disable=Disable analytics
|
analytics.disable=Disable analytics
|
||||||
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Izberi PDF (2+)
|
|||||||
multiPdfDropPrompt=Izberite (ali povlecite in spustite) vse datoteke PDF, ki jih potrebujete
|
multiPdfDropPrompt=Izberite (ali povlecite in spustite) vse datoteke PDF, ki jih potrebujete
|
||||||
imgPrompt=Izberite sliko(e)
|
imgPrompt=Izberite sliko(e)
|
||||||
genericSubmit=Pošlji
|
genericSubmit=Pošlji
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Opozorilo: ta postopek lahko traja do minute, odvisno od velikosti datoteke
|
processTimeWarning=Opozorilo: ta postopek lahko traja do minute, odvisno od velikosti datoteke
|
||||||
pageOrderPrompt=Vrstni red strani po meri (Vnesite z vejicami ločen seznam številk strani ali funkcij, kot je 2n+1) :
|
pageOrderPrompt=Vrstni red strani po meri (Vnesite z vejicami ločen seznam številk strani ali funkcij, kot je 2n+1) :
|
||||||
pageSelectionPrompt=Izbira strani po meri (Vnesite z vejicami ločen seznam številk strani 1,5,6 ali funkcije, kot je 2n+1) :
|
pageSelectionPrompt=Izbira strani po meri (Vnesite z vejicami ločen seznam številk strani 1,5,6 ali funkcije, kot je 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Določila in pogoji
|
|||||||
legal.accessibility=Dostopnost
|
legal.accessibility=Dostopnost
|
||||||
legal.cookie=Pravilnik o piškotkih
|
legal.cookie=Pravilnik o piškotkih
|
||||||
legal.impressum=Impresum
|
legal.impressum=Impresum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Omogoči analitiko
|
|||||||
analytics.disable=Onemogoči analitiko
|
analytics.disable=Onemogoči analitiko
|
||||||
analytics.settings=Nastavitve za analitiko lahko spremenite v datoteki config/settings.yml
|
analytics.settings=Nastavitve za analitiko lahko spremenite v datoteki config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Različica
|
|||||||
validateSignature.cert.keyUsage=Uporaba ključa
|
validateSignature.cert.keyUsage=Uporaba ključa
|
||||||
validateSignature.cert.selfSigned=Samopodpisano
|
validateSignature.cert.selfSigned=Samopodpisano
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Odaberi PDF-ove (2+)
|
|||||||
multiPdfDropPrompt=Odaberi (prevuci i pusti ) sve PDF-ove koji su vam potrebni
|
multiPdfDropPrompt=Odaberi (prevuci i pusti ) sve PDF-ove koji su vam potrebni
|
||||||
imgPrompt=Odaberi sliku (slike)
|
imgPrompt=Odaberi sliku (slike)
|
||||||
genericSubmit=Prihvatiti
|
genericSubmit=Prihvatiti
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Warning:Upozorenje: Ovaj proces može trajati i do minut, u zavisnosti od veličine dokumenta
|
processTimeWarning=Warning:Upozorenje: Ovaj proces može trajati i do minut, u zavisnosti od veličine dokumenta
|
||||||
pageOrderPrompt=Prilagođeni redosled stranica (unesi listu brojeva stranica ili funkcija, kao što su 2n+1, razdvojene zarezima) :
|
pageOrderPrompt=Prilagođeni redosled stranica (unesi listu brojeva stranica ili funkcija, kao što su 2n+1, razdvojene zarezima) :
|
||||||
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Terms and Conditions
|
|||||||
legal.accessibility=Accessibility
|
legal.accessibility=Accessibility
|
||||||
legal.cookie=Cookie Policy
|
legal.cookie=Cookie Policy
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Enable analytics
|
|||||||
analytics.disable=Disable analytics
|
analytics.disable=Disable analytics
|
||||||
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Välj PDF-filer (2+)
|
|||||||
multiPdfDropPrompt=Välj (eller dra och släpp) alla PDF-filer du behöver
|
multiPdfDropPrompt=Välj (eller dra och släpp) alla PDF-filer du behöver
|
||||||
imgPrompt=Välj bild(er)
|
imgPrompt=Välj bild(er)
|
||||||
genericSubmit=Skicka
|
genericSubmit=Skicka
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Varning: Denna process kan ta upp till en minut beroende på filstorlek
|
processTimeWarning=Varning: Denna process kan ta upp till en minut beroende på filstorlek
|
||||||
pageOrderPrompt=Sidordning (Ange en kommaseparerad lista med sidnummer) :
|
pageOrderPrompt=Sidordning (Ange en kommaseparerad lista med sidnummer) :
|
||||||
pageSelectionPrompt=Anpassat sidval (Ange en kommaseparerad lista med sidnummer 1,5,6 eller funktioner som 2n+1) :
|
pageSelectionPrompt=Anpassat sidval (Ange en kommaseparerad lista med sidnummer 1,5,6 eller funktioner som 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Villkor och betingelser
|
|||||||
legal.accessibility=Gängeshållbarhet
|
legal.accessibility=Gängeshållbarhet
|
||||||
legal.cookie=Cockiropfer
|
legal.cookie=Cockiropfer
|
||||||
legal.impressum=Riksdagens utskott för teknikfrihet
|
legal.impressum=Riksdagens utskott för teknikfrihet
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Aktivera analys
|
|||||||
analytics.disable=Avaktivera analys
|
analytics.disable=Avaktivera analys
|
||||||
analytics.settings=Du kan ändra analysinställningarna i config/settings.yml-filen
|
analytics.settings=Du kan ändra analysinställningarna i config/settings.yml-filen
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=เลือก PDF หลายไฟล์ (2 ขึ้นไ
|
|||||||
multiPdfDropPrompt=เลือก (หรือลากและวาง) PDF ทั้งหมดที่คุณต้องการ
|
multiPdfDropPrompt=เลือก (หรือลากและวาง) PDF ทั้งหมดที่คุณต้องการ
|
||||||
imgPrompt=เลือกภาพ
|
imgPrompt=เลือกภาพ
|
||||||
genericSubmit=ส่ง
|
genericSubmit=ส่ง
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=คำเตือน: กระบวนการนี้อาจใช้เวลาสูงสุดหนึ่งนาทีขึ้นอยู่กับขนาดไฟล์
|
processTimeWarning=คำเตือน: กระบวนการนี้อาจใช้เวลาสูงสุดหนึ่งนาทีขึ้นอยู่กับขนาดไฟล์
|
||||||
pageOrderPrompt=เรียงลำดับหน้าตามความต้องการ (ป้อนหมายเลขหน้าแยกด้วยเครื่องหมายจุลภาคหรือฟังก์ชัน เช่น 2n+1) :
|
pageOrderPrompt=เรียงลำดับหน้าตามความต้องการ (ป้อนหมายเลขหน้าแยกด้วยเครื่องหมายจุลภาคหรือฟังก์ชัน เช่น 2n+1) :
|
||||||
pageSelectionPrompt=เลือกหน้าตามความต้องการ (ป้อนหมายเลขหน้าแยกด้วยเครื่องหมายจุลภาค เช่น 1,5,6 หรือฟังก์ชัน เช่น 2n+1) :
|
pageSelectionPrompt=เลือกหน้าตามความต้องการ (ป้อนหมายเลขหน้าแยกด้วยเครื่องหมายจุลภาค เช่น 1,5,6 หรือฟังก์ชัน เช่น 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=ข้อกำหนดการใช้งาน
|
|||||||
legal.accessibility=ความเข้าถึง
|
legal.accessibility=ความเข้าถึง
|
||||||
legal.cookie=นโยบายคุกกี้
|
legal.cookie=นโยบายคุกกี้
|
||||||
legal.impressum=ปฏิญญา
|
legal.impressum=ปฏิญญา
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=เปิดการวิเคราะห์
|
|||||||
analytics.disable=ปิดการวิเคราะห์
|
analytics.disable=ปิดการวิเคราะห์
|
||||||
analytics.settings=คุณสามารถเปลี่ยนแปลงการตั้งค่าการวิเคราะห์ในไฟล์ config/settings.yml
|
analytics.settings=คุณสามารถเปลี่ยนแปลงการตั้งค่าการวิเคราะห์ในไฟล์ config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +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=Maksimum dosya boyutu:
|
||||||
|
uploadLimitExceededSingular=çok büyük. İzin verilen maksimum boyut:
|
||||||
|
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) :
|
||||||
@ -77,19 +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=Çerez Tercihleri
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -119,21 +123,22 @@ 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 PDF’i 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 PDF’in 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
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
@ -232,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
|
||||||
@ -271,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 #
|
||||||
@ -291,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
|
||||||
@ -487,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
|
||||||
@ -514,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
|
||||||
@ -546,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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -597,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
|
||||||
@ -616,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
|
||||||
@ -734,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
|
||||||
|
|
||||||
|
|
||||||
@ -816,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):
|
||||||
@ -862,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
|
||||||
@ -874,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
|
||||||
@ -998,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)
|
||||||
|
|
||||||
|
|
||||||
@ -1006,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
|
||||||
@ -1301,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 PDF’i 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 PDF’i 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!
|
||||||
@ -1338,64 +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 #
|
||||||
|
####################
|
||||||
|
cookieBanner.popUp.title=Çerezleri Nasıl Kullanıyoruz
|
||||||
|
cookieBanner.popUp.description.1=Stirling PDF’yi 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=İstemiyorsanız, ‘Hayır Teşekkürler’ butonuna tıklayarak yalnızca temel, gerekli çerezleri etkinleştirebilirsiniz.
|
||||||
|
cookieBanner.popUp.acceptAllBtn=Tamam
|
||||||
|
cookieBanner.popUp.acceptNecessaryBtn=Hayır Teşekkürler
|
||||||
|
cookieBanner.popUp.showPreferencesBtn=Tercihleri Yönet
|
||||||
|
cookieBanner.preferencesModal.title=Onay Tercih Merkezi
|
||||||
|
cookieBanner.preferencesModal.acceptAllBtn=Tümünü Kabul Et
|
||||||
|
cookieBanner.preferencesModal.acceptNecessaryBtn=Tümünü Reddet
|
||||||
|
cookieBanner.preferencesModal.savePreferencesBtn=Tercihleri Kaydet
|
||||||
|
cookieBanner.preferencesModal.closeIconLabel=Kapat
|
||||||
|
cookieBanner.preferencesModal.serviceCounterLabel=Hizmet|Hizmetler
|
||||||
|
cookieBanner.preferencesModal.subtitle=Çerez Kullanımı
|
||||||
|
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, kullandığınız belgelerin içeriğini asla takip edemez veya erişemez.
|
||||||
|
cookieBanner.preferencesModal.description.3=Gizliliğiniz ve güveniniz bizim için en önemli şeydir.
|
||||||
|
cookieBanner.preferencesModal.necessary.title.1=Kesinlikle Gerekli Çerezler
|
||||||
|
cookieBanner.preferencesModal.necessary.title.2=Her Zaman Etkin
|
||||||
|
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=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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Оберіть PDFи (2+)
|
|||||||
multiPdfDropPrompt=Оберіть (або перетягніть) всі необхідні PDFи
|
multiPdfDropPrompt=Оберіть (або перетягніть) всі необхідні PDFи
|
||||||
imgPrompt=Оберіть зображення(я)
|
imgPrompt=Оберіть зображення(я)
|
||||||
genericSubmit=Надіслати
|
genericSubmit=Надіслати
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Увага: Цей процес може тривати до хвилини в залежності від розміру файлу.
|
processTimeWarning=Увага: Цей процес може тривати до хвилини в залежності від розміру файлу.
|
||||||
pageOrderPrompt=Порядок сторінок (введіть список номерів сторінок через кому):
|
pageOrderPrompt=Порядок сторінок (введіть список номерів сторінок через кому):
|
||||||
pageSelectionPrompt=Користувацький вибір сторінки (введіть список номерів сторінок через кому 1,5,6 або функції типу 2n+1) :
|
pageSelectionPrompt=Користувацький вибір сторінки (введіть список номерів сторінок через кому 1,5,6 або функції типу 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Правила та умови
|
|||||||
legal.accessibility=Доступність
|
legal.accessibility=Доступність
|
||||||
legal.cookie=Політика використання файлів cookie
|
legal.cookie=Політика використання файлів cookie
|
||||||
legal.impressum=Вихідні дані
|
legal.impressum=Вихідні дані
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Увімкнути аналітику
|
|||||||
analytics.disable=Вимкнути аналітику
|
analytics.disable=Вимкнути аналітику
|
||||||
analytics.settings=Ви можете змінити параметри аналітики у файлі config/settings.yml
|
analytics.settings=Ви можете змінити параметри аналітики у файлі config/settings.yml
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Версія
|
|||||||
validateSignature.cert.keyUsage=Використання ключа
|
validateSignature.cert.keyUsage=Використання ключа
|
||||||
validateSignature.cert.selfSigned=Самоподписанный
|
validateSignature.cert.selfSigned=Самоподписанный
|
||||||
validateSignature.cert.bits=біт
|
validateSignature.cert.bits=біт
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=Chọn các tệp PDF (2+)
|
|||||||
multiPdfDropPrompt=Chọn (hoặc kéo và thả) tất cả các tệp PDF bạn cần
|
multiPdfDropPrompt=Chọn (hoặc kéo và thả) tất cả các tệp PDF bạn cần
|
||||||
imgPrompt=Chọn (các) hình ảnh
|
imgPrompt=Chọn (các) hình ảnh
|
||||||
genericSubmit=Gửi
|
genericSubmit=Gửi
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=Cảnh báo: Quá trình này có thể mất đến một phút tùy thuộc vào kích thước tệp
|
processTimeWarning=Cảnh báo: Quá trình này có thể mất đến một phút tùy thuộc vào kích thước tệp
|
||||||
pageOrderPrompt=Thứ tự trang tùy chỉnh (Nhập danh sách số trang được phân tách bằng dấu phẩy hoặc Các hàm như 2n+1) :
|
pageOrderPrompt=Thứ tự trang tùy chỉnh (Nhập danh sách số trang được phân tách bằng dấu phẩy hoặc Các hàm như 2n+1) :
|
||||||
pageSelectionPrompt=Lựa chọn trang tùy chỉnh (Nhập danh sách số trang được phân tách bằng dấu phẩy 1,5,6 hoặc Các hàm như 2n+1) :
|
pageSelectionPrompt=Lựa chọn trang tùy chỉnh (Nhập danh sách số trang được phân tách bằng dấu phẩy 1,5,6 hoặc Các hàm như 2n+1) :
|
||||||
@ -90,6 +93,7 @@ legal.terms=Terms and Conditions
|
|||||||
legal.accessibility=Accessibility
|
legal.accessibility=Accessibility
|
||||||
legal.cookie=Cookie Policy
|
legal.cookie=Cookie Policy
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=Enable analytics
|
|||||||
analytics.disable=Disable analytics
|
analytics.disable=Disable analytics
|
||||||
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
analytics.settings=You can change the settings for analytics in the config/settings.yml file
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=Version
|
|||||||
validateSignature.cert.keyUsage=Key Usage
|
validateSignature.cert.keyUsage=Key Usage
|
||||||
validateSignature.cert.selfSigned=Self-Signed
|
validateSignature.cert.selfSigned=Self-Signed
|
||||||
validateSignature.cert.bits=bits
|
validateSignature.cert.bits=bits
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=PDF གཉིས་ཡན་འདེམས་རོགས།
|
|||||||
multiPdfDropPrompt=དགོས་མཁོ་འདི་ PDF ཡིག་ཆ་ཚང་མ་འདེམས་པའམ་འཐེན་རོགས།
|
multiPdfDropPrompt=དགོས་མཁོ་འདི་ PDF ཡིག་ཆ་ཚང་མ་འདེམས་པའམ་འཐེན་རོགས།
|
||||||
imgPrompt=པར་རིས་འདེམས་རོགས།
|
imgPrompt=པར་རིས་འདེམས་རོགས།
|
||||||
genericSubmit=ཕུལ་བཅོས།
|
genericSubmit=ཕུལ་བཅོས།
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=ཉེན་བཅོས། བྱ་རིམ་འདི་ཡིག་ཆའི་ཆེ་ཆུང་ལ་གཞིགས་ནས་སྐར་མ་གཅིག་བར་འགོར་སྲིད།
|
processTimeWarning=ཉེན་བཅོས། བྱ་རིམ་འདི་ཡིག་ཆའི་ཆེ་ཆུང་ལ་གཞིགས་ནས་སྐར་མ་གཅིག་བར་འགོར་སྲིད།
|
||||||
pageOrderPrompt=ཤོག་ངོས་གོ་རིམ་རང་སྒྲིག(ཤོག་གྲངས་ཀྱི་ཐོ་གཞུང་ངམ་རྩིས་རྒྱག་བྱེད་ཐབས་ 2n+1 ལྟ་བུ་འཇུག་རོགས།)
|
pageOrderPrompt=ཤོག་ངོས་གོ་རིམ་རང་སྒྲིག(ཤོག་གྲངས་ཀྱི་ཐོ་གཞུང་ངམ་རྩིས་རྒྱག་བྱེད་ཐབས་ 2n+1 ལྟ་བུ་འཇུག་རོགས།)
|
||||||
pageSelectionPrompt=ཤོག་ངོས་འདེམས་སྒྲུག(ཤོག་གྲངས་ཀྱི་ཐོ་གཞུང་ 1,5,6 འམ་རྩིས་རྒྱག་བྱེད་ཐབས་ 2n+1 ལྟ་བུ་འཇུག་རོགས།)
|
pageSelectionPrompt=ཤོག་ངོས་འདེམས་སྒྲུག(ཤོག་གྲངས་ཀྱི་ཐོ་གཞུང་ 1,5,6 འམ་རྩིས་རྒྱག་བྱེད་ཐབས་ 2n+1 ལྟ་བུ་འཇུག་རོགས།)
|
||||||
@ -90,6 +93,7 @@ legal.terms=བེད་སྤྱོད་ཆ་རྐྱེན།
|
|||||||
legal.accessibility=བེད་སྤྱོད་ནུས་པ།
|
legal.accessibility=བེད་སྤྱོད་ནུས་པ།
|
||||||
legal.cookie=Cookie སྲིད་བྱུས།
|
legal.cookie=Cookie སྲིད་བྱུས།
|
||||||
legal.impressum=པར་འདེབས་བདག་དབང་།
|
legal.impressum=པར་འདེབས་བདག་དབང་།
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=དཔྱད་ཞིབ་སྤྱོད་འགོ་འཛ
|
|||||||
analytics.disable=དཔྱད་ཞིབ་སྤྱོད་མཚམས་འཇོག
|
analytics.disable=དཔྱད་ཞིབ་སྤྱོད་མཚམས་འཇོག
|
||||||
analytics.settings=དཔྱད་ཞིབ་ཀྱི་སྒྲིག་འགོད་ config/settings.yml ཡིག་ཆའི་ནང་བསྒྱུར་བཅོས་བྱེད་ཆོག
|
analytics.settings=དཔྱད་ཞིབ་ཀྱི་སྒྲིག་འགོད་ config/settings.yml ཡིག་ཆའི་ནང་བསྒྱུར་བཅོས་བྱེད་ཆོག
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=པར་གཞི།
|
|||||||
validateSignature.cert.keyUsage=ལྡེ་མིག་བེད་སྤྱོད།
|
validateSignature.cert.keyUsage=ལྡེ་མིག་བེད་སྤྱོད།
|
||||||
validateSignature.cert.selfSigned=རང་མིང་རྟགས།
|
validateSignature.cert.selfSigned=རང་མིང་རྟགས།
|
||||||
validateSignature.cert.bits=གནས།
|
validateSignature.cert.bits=གནས།
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=选择多个 PDF(2个或更多)
|
|||||||
multiPdfDropPrompt=选择(或拖拽)所需的 PDF
|
multiPdfDropPrompt=选择(或拖拽)所需的 PDF
|
||||||
imgPrompt=选择图像
|
imgPrompt=选择图像
|
||||||
genericSubmit=提交
|
genericSubmit=提交
|
||||||
|
uploadLimit=Maximum file size:
|
||||||
|
uploadLimitExceededSingular=is too large. Maximum allowed size is
|
||||||
|
uploadLimitExceededPlural=are too large. Maximum allowed size is
|
||||||
processTimeWarning=警告:此过程可能需要多达一分钟,具体时间取决于文件大小
|
processTimeWarning=警告:此过程可能需要多达一分钟,具体时间取决于文件大小
|
||||||
pageOrderPrompt=页面顺序(输入逗号分隔的页码列表或函数):
|
pageOrderPrompt=页面顺序(输入逗号分隔的页码列表或函数):
|
||||||
pageSelectionPrompt=自定义页面选择(输入以逗号分隔的页码列表或函数:1,5,6、2n+1):
|
pageSelectionPrompt=自定义页面选择(输入以逗号分隔的页码列表或函数:1,5,6、2n+1):
|
||||||
@ -90,6 +93,7 @@ legal.terms=服务条款
|
|||||||
legal.accessibility=无障碍
|
legal.accessibility=无障碍
|
||||||
legal.cookie=Cookie 政策
|
legal.cookie=Cookie 政策
|
||||||
legal.impressum=Impressum
|
legal.impressum=Impressum
|
||||||
|
legal.showCookieBanner=Cookie Preferences
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=启用分析功能
|
|||||||
analytics.disable=禁用分析功能
|
analytics.disable=禁用分析功能
|
||||||
analytics.settings=您可以在 config/settings.yml 文件中变更分析功能的设定
|
analytics.settings=您可以在 config/settings.yml 文件中变更分析功能的设定
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=版本
|
|||||||
validateSignature.cert.keyUsage=密钥用途
|
validateSignature.cert.keyUsage=密钥用途
|
||||||
validateSignature.cert.selfSigned=自签名
|
validateSignature.cert.selfSigned=自签名
|
||||||
validateSignature.cert.bits=比特
|
validateSignature.cert.bits=比特
|
||||||
|
|
||||||
|
####################
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@ multiPdfPrompt=選擇多個 PDF 檔案
|
|||||||
multiPdfDropPrompt=選擇(或拖放)所有需要的 PDF 檔案
|
multiPdfDropPrompt=選擇(或拖放)所有需要的 PDF 檔案
|
||||||
imgPrompt=選擇圖片
|
imgPrompt=選擇圖片
|
||||||
genericSubmit=送出
|
genericSubmit=送出
|
||||||
|
uploadLimit=檔案大小上限:
|
||||||
|
uploadLimitExceededSingular=太大。允許的最大檔案大小為
|
||||||
|
uploadLimitExceededPlural=太大。允許的最大檔案大小為
|
||||||
processTimeWarning=警告:此過程可能長達一分鐘,具體取決於檔案大小
|
processTimeWarning=警告:此過程可能長達一分鐘,具體取決於檔案大小
|
||||||
pageOrderPrompt=自訂頁面順序(輸入以逗號分隔的頁碼或函式,如 2n+1):
|
pageOrderPrompt=自訂頁面順序(輸入以逗號分隔的頁碼或函式,如 2n+1):
|
||||||
pageSelectionPrompt=自訂頁面選擇(輸入以逗號分隔的頁碼 1、5、6 或 2n+1 等函式的清單):
|
pageSelectionPrompt=自訂頁面選擇(輸入以逗號分隔的頁碼 1、5、6 或 2n+1 等函式的清單):
|
||||||
@ -83,13 +86,14 @@ loading=載入中...
|
|||||||
addToDoc=新增至文件
|
addToDoc=新增至文件
|
||||||
reset=重設
|
reset=重設
|
||||||
apply=套用
|
apply=套用
|
||||||
noFileSelected=No file selected. Please upload one.
|
noFileSelected=未選擇檔案,請上傳一個。
|
||||||
|
|
||||||
legal.privacy=隱私權政策
|
legal.privacy=隱私權政策
|
||||||
legal.terms=使用條款
|
legal.terms=使用條款
|
||||||
legal.accessibility=無障礙性聲明
|
legal.accessibility=無障礙性聲明
|
||||||
legal.cookie=Cookie 政策
|
legal.cookie=Cookie 政策
|
||||||
legal.impressum=版本說明
|
legal.impressum=版本說明
|
||||||
|
legal.showCookieBanner=Cookie 偏好設定
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Pipeline #
|
# Pipeline #
|
||||||
@ -135,6 +139,7 @@ analytics.enable=啟用分析功能
|
|||||||
analytics.disable=停用分析功能
|
analytics.disable=停用分析功能
|
||||||
analytics.settings=您可以在 config/settings.yml 檔案中變更分析功能的設定
|
analytics.settings=您可以在 config/settings.yml 檔案中變更分析功能的設定
|
||||||
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# NAVBAR #
|
# NAVBAR #
|
||||||
#############
|
#############
|
||||||
@ -232,31 +237,31 @@ adminUserSettings.activeUsers=使用中的使用者:
|
|||||||
adminUserSettings.disabledUsers=已停用的使用者:
|
adminUserSettings.disabledUsers=已停用的使用者:
|
||||||
adminUserSettings.totalUsers=使用者總數:
|
adminUserSettings.totalUsers=使用者總數:
|
||||||
adminUserSettings.lastRequest=最後請求時間
|
adminUserSettings.lastRequest=最後請求時間
|
||||||
adminUserSettings.usage=View Usage
|
adminUserSettings.usage=檢視使用情況
|
||||||
|
|
||||||
endpointStatistics.title=Endpoint Statistics
|
endpointStatistics.title=端點統計
|
||||||
endpointStatistics.header=Endpoint Statistics
|
endpointStatistics.header=端點統計
|
||||||
endpointStatistics.top10=Top 10
|
endpointStatistics.top10=前 10 名
|
||||||
endpointStatistics.top20=Top 20
|
endpointStatistics.top20=前 20 名
|
||||||
endpointStatistics.all=All
|
endpointStatistics.all=全部
|
||||||
endpointStatistics.refresh=Refresh
|
endpointStatistics.refresh=重新整理
|
||||||
endpointStatistics.includeHomepage=Include Homepage ('/')
|
endpointStatistics.includeHomepage=包含首頁 ('/')
|
||||||
endpointStatistics.includeLoginPage=Include Login Page ('/login')
|
endpointStatistics.includeLoginPage=包含登入頁面 ('/login')
|
||||||
endpointStatistics.totalEndpoints=Total Endpoints
|
endpointStatistics.totalEndpoints=端點總數
|
||||||
endpointStatistics.totalVisits=Total Visits
|
endpointStatistics.totalVisits=總造訪次數
|
||||||
endpointStatistics.showing=Showing
|
endpointStatistics.showing=顯示中
|
||||||
endpointStatistics.selectedVisits=Selected Visits
|
endpointStatistics.selectedVisits=選取的造訪次數
|
||||||
endpointStatistics.endpoint=Endpoint
|
endpointStatistics.endpoint=端點
|
||||||
endpointStatistics.visits=Visits
|
endpointStatistics.visits=造訪次數
|
||||||
endpointStatistics.percentage=Percentage
|
endpointStatistics.percentage=百分比
|
||||||
endpointStatistics.loading=Loading...
|
endpointStatistics.loading=載入中...
|
||||||
endpointStatistics.failedToLoad=Failed to load endpoint data. Please try refreshing.
|
endpointStatistics.failedToLoad=無法載入端點資料。請嘗試重新整理。
|
||||||
endpointStatistics.home=Home
|
endpointStatistics.home=首頁
|
||||||
endpointStatistics.login=Login
|
endpointStatistics.login=登入
|
||||||
endpointStatistics.top=Top
|
endpointStatistics.top=前
|
||||||
endpointStatistics.numberOfVisits=Number of Visits
|
endpointStatistics.numberOfVisits=造訪次數
|
||||||
endpointStatistics.visitsTooltip=Visits: {0} ({1}% of total)
|
endpointStatistics.visitsTooltip=造訪次數:{0}(總數的 {1}%)
|
||||||
endpointStatistics.retry=Retry
|
endpointStatistics.retry=重試
|
||||||
|
|
||||||
database.title=資料庫匯入/匯出
|
database.title=資料庫匯入/匯出
|
||||||
database.header=資料庫匯入/匯出
|
database.header=資料庫匯入/匯出
|
||||||
@ -678,9 +683,9 @@ MarkdownToPDF.credit=此服務使用 WeasyPrint 進行轉換
|
|||||||
|
|
||||||
|
|
||||||
#pdf-to-markdown
|
#pdf-to-markdown
|
||||||
PDFToMarkdown.title=PDF To Markdown
|
PDFToMarkdown.title=PDF 轉 Markdown
|
||||||
PDFToMarkdown.header=PDF To Markdown
|
PDFToMarkdown.header=PDF 轉 Markdown
|
||||||
PDFToMarkdown.submit=Convert
|
PDFToMarkdown.submit=轉換
|
||||||
|
|
||||||
|
|
||||||
#url-to-pdf
|
#url-to-pdf
|
||||||
@ -734,10 +739,10 @@ sanitizePDF.title=清理 PDF
|
|||||||
sanitizePDF.header=清理 PDF 檔案
|
sanitizePDF.header=清理 PDF 檔案
|
||||||
sanitizePDF.selectText.1=移除 JavaScript 操作
|
sanitizePDF.selectText.1=移除 JavaScript 操作
|
||||||
sanitizePDF.selectText.2=移除內嵌文件
|
sanitizePDF.selectText.2=移除內嵌文件
|
||||||
sanitizePDF.selectText.3=Remove XMP metadata
|
sanitizePDF.selectText.3=移除內嵌 XMP 資訊
|
||||||
sanitizePDF.selectText.4=移除連結
|
sanitizePDF.selectText.4=移除連結
|
||||||
sanitizePDF.selectText.5=移除字型
|
sanitizePDF.selectText.5=移除字型
|
||||||
sanitizePDF.selectText.6=Remove Document Info Metadata
|
sanitizePDF.selectText.6=移除文件中繼資料
|
||||||
sanitizePDF.submit=清理 PDF
|
sanitizePDF.submit=清理 PDF
|
||||||
|
|
||||||
|
|
||||||
@ -886,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
|
||||||
@ -1314,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
|
||||||
@ -1399,3 +1404,29 @@ validateSignature.cert.version=版本
|
|||||||
validateSignature.cert.keyUsage=金鑰用途
|
validateSignature.cert.keyUsage=金鑰用途
|
||||||
validateSignature.cert.selfSigned=自我簽署
|
validateSignature.cert.selfSigned=自我簽署
|
||||||
validateSignature.cert.bits=位元
|
validateSignature.cert.bits=位元
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Cookie banner #
|
||||||
|
####################
|
||||||
|
cookieBanner.popUp.title=我們如何使用 Cookies
|
||||||
|
cookieBanner.popUp.description.1=我們使用 Cookies 和其他技術來讓 Stirling PDF 變得更好——幫助我們改善工具並繼續創造您會喜愛的新功能
|
||||||
|
cookieBanner.popUp.description.2=如果您仍不想,點擊「不,謝謝」只會開啟必要的 Cookies 好讓網站功能保持運作
|
||||||
|
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=Cookies 的用途
|
||||||
|
cookieBanner.preferencesModal.description.1=Stirling PDF 使用 Cookies 與其他相似技術去改善您的體驗和分析您如何使用我們的工具。這有助於我們改善效能、開發您注目的功能,和提供使用者協助。
|
||||||
|
cookieBanner.preferencesModal.description.2=Stirling PDF 不能——且永遠不會——追蹤或存取您的文件。
|
||||||
|
cookieBanner.preferencesModal.description.3=您的隱私和信任是我們的核心理念。
|
||||||
|
cookieBanner.preferencesModal.necessary.title.1=必要的 Cookies
|
||||||
|
cookieBanner.preferencesModal.necessary.title.2=永遠開啟
|
||||||
|
cookieBanner.preferencesModal.necessary.description=這些 Cookies 對網站正常運作至關重要。它們讓核心功能,像是隱私設定、登入、填入表格能夠運作——這也是為什麼它們不能被關掉。
|
||||||
|
cookieBanner.preferencesModal.analytics.title=分析 Cookies
|
||||||
|
cookieBanner.preferencesModal.analytics.description=這些 Cookies 幫助我們分析您如何使用我們的工具,好讓我們能專注在構建社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件
|
||||||
|
|
||||||
|
@ -110,6 +110,7 @@ system:
|
|||||||
operations:
|
operations:
|
||||||
weasyprint: '' #Defaults to /opt/venv/bin/weasyprint
|
weasyprint: '' #Defaults to /opt/venv/bin/weasyprint
|
||||||
unoconvert: '' #Defaults to /opt/venv/bin/unoconvert
|
unoconvert: '' #Defaults to /opt/venv/bin/unoconvert
|
||||||
|
fileUploadLimit: '' # Defaults to "". No limit when string is empty. Set a number, between 0 and 999, followed by one of the following strings to set a limit. "KB", "MB", "GB".
|
||||||
|
|
||||||
ui:
|
ui:
|
||||||
appName: '' # application's visible name
|
appName: '' # application's visible name
|
||||||
|
@ -526,7 +526,7 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "commons-io:commons-io",
|
"moduleName": "commons-io:commons-io",
|
||||||
"moduleUrl": "https://commons.apache.org/proper/commons-io/",
|
"moduleUrl": "https://commons.apache.org/proper/commons-io/",
|
||||||
"moduleVersion": "2.18.0",
|
"moduleVersion": "2.19.0",
|
||||||
"moduleLicense": "Apache-2.0",
|
"moduleLicense": "Apache-2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
@ -553,7 +553,7 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "io.micrometer:micrometer-core",
|
"moduleName": "io.micrometer:micrometer-core",
|
||||||
"moduleUrl": "https://github.com/micrometer-metrics/micrometer",
|
"moduleUrl": "https://github.com/micrometer-metrics/micrometer",
|
||||||
"moduleVersion": "1.14.5",
|
"moduleVersion": "1.14.6",
|
||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
@ -59,17 +59,21 @@ html[dir="rtl"] .drag-manager_draghover img {
|
|||||||
background-color: #ffffff10;
|
background-color: #ffffff10;
|
||||||
transition: width 0.1s;
|
transition: width 0.1s;
|
||||||
animation: end-drop-expand 0.3s ease;
|
animation: end-drop-expand 0.3s ease;
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-left:16px;
|
margin-left:16px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.drag-manager_endpoint svg {
|
.drag-manager_endpoint svg {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
|
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
translate: -50% -50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.drag-manager_endpoint.drag-manager_draghover {
|
.drag-manager_endpoint.drag-manager_draghover {
|
||||||
|
@ -85,18 +85,14 @@ label {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
border-radius: 25px;
|
border-radius: 25px;
|
||||||
overflow-y: clip;
|
|
||||||
overflow-x: auto;
|
|
||||||
min-height: 275px;
|
min-height: 275px;
|
||||||
margin: 0 0 30px 0;
|
margin: 0 0 30px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pages-container {
|
#pages-container {
|
||||||
gap: 0px;
|
margin: 0 auto;
|
||||||
display: flex;
|
width: 95%;
|
||||||
flex-wrap: wrap;
|
font-size: 0;
|
||||||
margin-left: -15px;
|
|
||||||
margin-right: -15px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* width */
|
/* width */
|
||||||
@ -121,18 +117,20 @@ label {
|
|||||||
background: var(--scroll-bar-thumb-hover);
|
background: var(--scroll-bar-thumb-hover);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.page-container {
|
.page-container {
|
||||||
|
display: inline-block;
|
||||||
|
list-style-type: none;
|
||||||
|
width: 250px;
|
||||||
height: 250px;
|
height: 250px;
|
||||||
display: flex;
|
line-height: 50px;
|
||||||
align-items: center;
|
margin: 15px 25px;
|
||||||
flex-direction: column-reverse;
|
box-sizing: border-box;
|
||||||
aspect-ratio: 1;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
aspect-ratio: 1;
|
||||||
position: relative;
|
position: relative;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
transition: width 1s linear;
|
transition: width 1s linear;
|
||||||
margin-top: 16px;
|
|
||||||
margin-bottom: 16px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-container.split-before {
|
.page-container.split-before {
|
||||||
@ -196,9 +194,8 @@ label {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.page-container img {
|
.page-container img {
|
||||||
/* max-width: calc(100% - 15px); */
|
max-width: calc(100% - 15px);
|
||||||
max-height: calc(100% - 15px);
|
max-height: calc(100% - 15px);
|
||||||
max-width: 237px;
|
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
@ -217,6 +214,7 @@ label {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
top: 5px;
|
top: 5px;
|
||||||
left: 5px;
|
left: 5px;
|
||||||
|
line-height: normal;
|
||||||
color: var(--md-sys-color-on-secondary);
|
color: var(--md-sys-color-on-secondary);
|
||||||
background-color: rgba(162, 201, 255, 0.8);
|
background-color: rgba(162, 201, 255, 0.8);
|
||||||
padding: 6px 8px;
|
padding: 6px 8px;
|
||||||
@ -294,6 +292,13 @@ label {
|
|||||||
.checkbox-label {
|
.checkbox-label {
|
||||||
font-size: medium;
|
font-size: medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 767px) { #pages-container { width:300px; } }
|
||||||
|
@media only screen and (min-width: 768px) and (max-width: 991px) { #pages-container { width: 600px; } }
|
||||||
|
@media only screen and (min-width: 992px) and (max-width: 1199px) { #pages-container { width: 900px; } }
|
||||||
|
@media only screen and (min-width: 1200px) and (max-width: 1399px) { #pages-container { width: 900px; } }
|
||||||
|
@media only screen and (min-width: 1399px) { #pages-container { width: 1200px; } }
|
@ -89,6 +89,22 @@
|
|||||||
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); /* Auto-fill columns, with a minimum width of 180px */
|
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); /* Auto-fill columns, with a minimum width of 180px */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:not(:has(> :nth-child(4))) .lang-dropdown-item-wrapper:last-child {
|
||||||
|
border: 0px !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:has(> *:nth-child(1)) {
|
||||||
|
--count: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:has(> *:nth-child(2)) {
|
||||||
|
--count: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:has(> *:nth-child(3)) {
|
||||||
|
--count: 3;
|
||||||
|
}
|
||||||
|
|
||||||
html[dir="ltr"] .lang-dropdown-item-wrapper {
|
html[dir="ltr"] .lang-dropdown-item-wrapper {
|
||||||
border-right: 2px solid var(--md-nav-color-on-seperator);
|
border-right: 2px solid var(--md-nav-color-on-seperator);
|
||||||
}
|
}
|
||||||
@ -99,8 +115,8 @@ html[dir="rtl"] .lang-dropdown-item-wrapper {
|
|||||||
|
|
||||||
/* Responsive adjustments */
|
/* Responsive adjustments */
|
||||||
@media (min-width: 1200px){
|
@media (min-width: 1200px){
|
||||||
.lang_dropdown-mw{
|
.lang-dropdown-item-wrapper .dropdown-item {
|
||||||
min-width: 800px
|
min-width: 200px
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,7 +124,9 @@ html[dir="rtl"] .lang-dropdown-item-wrapper {
|
|||||||
.scalable-languages-container {
|
.scalable-languages-container {
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
}
|
}
|
||||||
|
.scalable-languages-container:not(:has(> :nth-child(2))){
|
||||||
|
grid-template-columns: repeat(var(--count), 1fr) !important;
|
||||||
|
}
|
||||||
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(2n) {
|
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(2n) {
|
||||||
border: 0px
|
border: 0px
|
||||||
}
|
}
|
||||||
@ -118,15 +136,23 @@ html[dir="rtl"] .lang-dropdown-item-wrapper {
|
|||||||
.scalable-languages-container {
|
.scalable-languages-container {
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
}
|
}
|
||||||
|
.scalable-languages-container:not(:has(> :nth-child(3))){
|
||||||
|
grid-template-columns: repeat(var(--count), 1fr) !important;
|
||||||
|
}
|
||||||
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(3n) {
|
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(3n) {
|
||||||
border: 0px
|
border: 0px
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@media (min-width: 901px) {
|
@media (min-width: 901px) {
|
||||||
.scalable-languages-container {
|
.scalable-languages-container {
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(4, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:not(:has(> :nth-child(4))){
|
||||||
|
grid-template-columns: repeat(var(--count), 1fr) !important;
|
||||||
|
}
|
||||||
|
|
||||||
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(4n) {
|
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(4n) {
|
||||||
border: 0px
|
border: 0px
|
||||||
}
|
}
|
||||||
@ -215,13 +241,13 @@ span.icon-text::after {
|
|||||||
|
|
||||||
.dropdown-menu.scrollable-y {
|
.dropdown-menu.scrollable-y {
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
height: 360px;
|
max-height: 360px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Dropdown Scrollbar*/
|
/* Dropdown Scrollbar*/
|
||||||
.scrollable-y {
|
.scrollable-y {
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
height: 190px;
|
max-height: 190px;
|
||||||
overscroll-behavior: contain;
|
overscroll-behavior: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
.pdf-actions_button-container {
|
.pdf-actions_button-container {
|
||||||
z-index: 4;
|
z-index: 4;
|
||||||
display: flex;
|
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity 0.1s linear;
|
transition: opacity 0.1s linear;
|
||||||
|
|
||||||
|
position: absolute !important;
|
||||||
|
bottom: 0px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.pdf-actions_container:hover .pdf-actions_button-container {
|
.pdf-actions_container:hover .pdf-actions_button-container {
|
||||||
@ -42,17 +46,43 @@
|
|||||||
|
|
||||||
/* "insert pdf" buttons that appear on the right when hover */
|
/* "insert pdf" buttons that appear on the right when hover */
|
||||||
.pdf-actions_insert-file-button-container {
|
.pdf-actions_insert-file-button-container {
|
||||||
|
display:flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 10px;
|
||||||
translate: 0 -50%;
|
translate: 0 -50%;
|
||||||
width: 80px;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
width: 100px;
|
||||||
|
padding-left: 30px;
|
||||||
|
padding-right:30px;
|
||||||
|
justify-content: center;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity 0.2s;
|
transition: opacity 0.4s;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.pdf-actions_insert-file-button-container button .material-symbols-rounded {
|
.pdf-actions_insert-file-button-container.left {
|
||||||
vertical-align: top;
|
left: -50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pdf-actions_insert-file-button-container.right {
|
||||||
|
right: -50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="ltr"] .pdf-actions_insert-file-button-container.right {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .pdf-actions_insert-file-button-container.left {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="ltr"] .pdf-actions_container:last-child>.pdf-actions_insert-file-button-container.right {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .pdf-actions_container:last-child>.pdf-actions_insert-file-button-container.left {
|
||||||
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pdf-actions_insert-file-button-container.left button,
|
.pdf-actions_insert-file-button-container.left button,
|
||||||
@ -65,70 +95,11 @@
|
|||||||
vertical-align: sub;
|
vertical-align: sub;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pdf-actions_insert-file-button {
|
|
||||||
padding: 0;
|
|
||||||
vertical-align: sub;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdf-actions_insert-file-button-container.left {
|
|
||||||
left: -20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdf-actions_insert-file-button-container.right {
|
|
||||||
right: -20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
html[dir="ltr"] .pdf-actions_insert-file-button-container.right {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
html[dir="rtl"] .pdf-actions_insert-file-button-container.left {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdf-actions_insert-file-button-container.left .pdf-actions_insert-file-button {
|
|
||||||
left: 0;
|
|
||||||
translate: 0 -50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdf-actions_insert-file-button-container.right .pdf-actions_insert-file-button {
|
|
||||||
right: 0;
|
|
||||||
translate: 0 -50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
html[dir="ltr"] .pdf-actions_container:last-child>.pdf-actions_insert-file-button-container.right {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
html[dir="rtl"] .pdf-actions_container:last-child>.pdf-actions_insert-file-button-container.left {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdf-actions_insert-file-button-container:hover {
|
.pdf-actions_insert-file-button-container:hover {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transition: opacity 0.05s;
|
transition: opacity 0.05s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pdf-actions_insert-file-button {
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
right: 50%;
|
|
||||||
translate: 50% -50%;
|
|
||||||
aspect-ratio: 1;
|
|
||||||
border-radius: 100px;
|
|
||||||
z-index: 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdf-actions_split-file-button {
|
|
||||||
position: absolute;
|
|
||||||
top: 25%;
|
|
||||||
right: 50%;
|
|
||||||
translate: 0 -50%;
|
|
||||||
aspect-ratio: 1;
|
|
||||||
border-radius: 100px;
|
|
||||||
z-index: 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdf-actions_checkbox {
|
.pdf-actions_checkbox {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 5px;
|
top: 5px;
|
||||||
@ -144,12 +115,3 @@ html[dir="rtl"] .pdf-actions_container:last-child>.pdf-actions_insert-file-butto
|
|||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.pdf-actions_insert-file-blank-button {
|
|
||||||
position: absolute;
|
|
||||||
top: 75%;
|
|
||||||
right: 50%;
|
|
||||||
translate: 0% -50%;
|
|
||||||
aspect-ratio: 1;
|
|
||||||
border-radius: 100px;
|
|
||||||
z-index: 5;
|
|
||||||
}
|
|
||||||
|
@ -172,26 +172,6 @@ html {
|
|||||||
height: 0;
|
height: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#apply-redaction {
|
|
||||||
height: var(--toolButton-height);
|
|
||||||
width: var(--toolButton-width);
|
|
||||||
|
|
||||||
border-radius: var(--toolButton-border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
#apply-redaction[disabled=true], #apply-redaction:disabled:not([disabled=false]) {
|
|
||||||
color: rgb(147, 149, 153);
|
|
||||||
box-shadow: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#apply-redaction:is(:hover):not([disabled=true], :disabled:not([disabled=false])) {
|
|
||||||
cursor: pointer;
|
|
||||||
background-color: rgba(6, 114, 197, 0.82);
|
|
||||||
color: rgb(14, 12, 12);
|
|
||||||
outline:rgba(6, 114, 197, 0.82) !important;
|
|
||||||
border-color: rgba(6, 114, 197, 0.82) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toolbar-btn-hover:hover {
|
.toolbar-btn-hover:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background-color: rgba(6, 114, 197, 0.82) !important;
|
background-color: rgba(6, 114, 197, 0.82) !important;
|
||||||
@ -200,15 +180,6 @@ html {
|
|||||||
border-color: rgba(6, 114, 197, 0.82) !important;
|
border-color: rgba(6, 114, 197, 0.82) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#apply-redaction-icon {
|
|
||||||
font-size: var(--toolButton-icon-font-size);
|
|
||||||
}
|
|
||||||
|
|
||||||
#apply-redaction > span {
|
|
||||||
user-select: none;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pageRedactColor, input[data-for=pageRedactColor] {
|
#pageRedactColor, input[data-for=pageRedactColor] {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
|
@ -43,6 +43,20 @@
|
|||||||
firstErrorOccurred = false;
|
firstErrorOccurred = false;
|
||||||
const url = this.action;
|
const url = this.action;
|
||||||
let files = $('#fileInput-input')[0].files;
|
let files = $('#fileInput-input')[0].files;
|
||||||
|
const uploadLimit = window.stirlingPDF?.uploadLimit ?? 0;
|
||||||
|
if (uploadLimit > 0) {
|
||||||
|
const oversizedFiles = Array.from(files).filter(f => f.size > uploadLimit);
|
||||||
|
if (oversizedFiles.length > 0) {
|
||||||
|
const names = oversizedFiles.map(f => `"${f.name}"`).join(', ');
|
||||||
|
if (names.length === 1) {
|
||||||
|
alert(`${names} ${window.stirlingPDF.uploadLimitExceededSingular} ${window.stirlingPDF.uploadLimitReadable}.`);
|
||||||
|
} else {
|
||||||
|
alert(`${names} ${window.stirlingPDF.uploadLimitExceededPlural} ${window.stirlingPDF.uploadLimitReadable}.`);
|
||||||
|
}
|
||||||
|
files = Array.from(files).filter(f => f.size <= uploadLimit);
|
||||||
|
if (files.length === 0) return;
|
||||||
|
}
|
||||||
|
}
|
||||||
const formData = new FormData(this);
|
const formData = new FormData(this);
|
||||||
const submitButton = document.getElementById('submitBtn');
|
const submitButton = document.getElementById('submitBtn');
|
||||||
const showGameBtn = document.getElementById('show-game-btn');
|
const showGameBtn = document.getElementById('show-game-btn');
|
||||||
@ -118,7 +132,9 @@
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
clearTimeout(timeoutId);
|
clearTimeout(timeoutId);
|
||||||
|
if(showGameBtn){
|
||||||
showGameBtn.style.display = 'none';
|
showGameBtn.style.display = 'none';
|
||||||
|
}
|
||||||
submitButton.textContent = originalButtonText;
|
submitButton.textContent = originalButtonText;
|
||||||
submitButton.disabled = false;
|
submitButton.disabled = false;
|
||||||
handleDownloadError(error);
|
handleDownloadError(error);
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 => 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) {
|
||||||
@ -196,6 +196,28 @@ function setupFileInput(chooser) {
|
|||||||
|
|
||||||
await checkZipFile();
|
await checkZipFile();
|
||||||
|
|
||||||
|
const uploadLimit = window.stirlingPDF?.uploadLimit ?? 0;
|
||||||
|
if (uploadLimit > 0) {
|
||||||
|
const oversizedFiles = allFiles.filter(f => f.size > uploadLimit);
|
||||||
|
if (oversizedFiles.length > 0) {
|
||||||
|
const names = oversizedFiles.map(f => `"${f.name}"`).join(', ');
|
||||||
|
if (names.length === 1) {
|
||||||
|
alert(`${names} ${window.stirlingPDF.uploadLimitExceededSingular} ${window.stirlingPDF.uploadLimitReadable}.`);
|
||||||
|
} else {
|
||||||
|
alert(`${names} ${window.stirlingPDF.uploadLimitExceededPlural} ${window.stirlingPDF.uploadLimitReadable}.`);
|
||||||
|
}
|
||||||
|
allFiles = allFiles.filter(f => f.size <= uploadLimit);
|
||||||
|
const dataTransfer = new DataTransfer();
|
||||||
|
allFiles.forEach(f => dataTransfer.items.add(f));
|
||||||
|
input.files = dataTransfer.files;
|
||||||
|
|
||||||
|
if (allFiles.length === 0) {
|
||||||
|
inputContainer.querySelector('#fileInputText').innerHTML = originalText;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
allFiles = await Promise.all(
|
allFiles = await Promise.all(
|
||||||
allFiles.map(async (file) => {
|
allFiles.map(async (file) => {
|
||||||
let decryptedFile = file;
|
let decryptedFile = file;
|
||||||
|
@ -255,5 +255,12 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
});
|
});
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
||||||
|
Array.from(document.querySelectorAll('.feature-group-header')).forEach((header) => {
|
||||||
|
const parent = header.parentNode;
|
||||||
|
header.onclick = () => {
|
||||||
|
expandCollapseToggle(parent);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
showFavoritesOnly();
|
showFavoritesOnly();
|
||||||
});
|
});
|
||||||
|
@ -241,10 +241,5 @@ document.addEventListener('DOMContentLoaded', async function () {
|
|||||||
console.error('Material Symbols Rounded font failed to load.');
|
console.error('Material Symbols Rounded font failed to load.');
|
||||||
});
|
});
|
||||||
|
|
||||||
Array.from(document.querySelectorAll('.feature-group-header')).forEach((header) => {
|
|
||||||
const parent = header.parentNode;
|
|
||||||
header.onclick = () => {
|
|
||||||
expandCollapseToggle(parent);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
@ -57,11 +57,15 @@ function initLanguageSettings() {
|
|||||||
|
|
||||||
function sortLanguageDropdown() {
|
function sortLanguageDropdown() {
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
const dropdownMenu = document.querySelector('.dropdown-menu .dropdown-item.lang_dropdown-item').parentElement;
|
const dropdownMenu = document.getElementById('languageSelection');
|
||||||
if (dropdownMenu) {
|
if (dropdownMenu) {
|
||||||
const items = Array.from(dropdownMenu.children).filter((child) => child.matches('a'));
|
const items = Array.from(dropdownMenu.children).filter((child) => child.querySelector('a'));
|
||||||
items
|
items
|
||||||
.sort((a, b) => a.dataset.bsLanguageCode.localeCompare(b.dataset.bsLanguageCode))
|
.sort((wrapperA, wrapperB) => {
|
||||||
|
const a = wrapperA.querySelector('a');
|
||||||
|
const b = wrapperB.querySelector('a');
|
||||||
|
return a.dataset.bsLanguageCode.localeCompare(b.dataset.bsLanguageCode);
|
||||||
|
})
|
||||||
.forEach((node) => dropdownMenu.appendChild(node));
|
.forEach((node) => dropdownMenu.appendChild(node));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -194,21 +194,21 @@ class PdfActionsManager {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const insertFileButton = document.createElement("button");
|
const insertFileButton = document.createElement("button");
|
||||||
insertFileButton.classList.add("btn", "btn-primary", "pdf-actions_insert-file-button");
|
insertFileButton.classList.add("btn", "btn-primary");
|
||||||
moveUp.setAttribute('title', window.translations.addFile);
|
moveUp.setAttribute('title', window.translations.addFile);
|
||||||
insertFileButton.innerHTML = `<span class="material-symbols-rounded">add</span>`;
|
insertFileButton.innerHTML = `<span class="material-symbols-rounded">add</span>`;
|
||||||
insertFileButton.onclick = this.insertFileButtonCallback;
|
insertFileButton.onclick = this.insertFileButtonCallback;
|
||||||
insertFileButtonContainer.appendChild(insertFileButton);
|
insertFileButtonContainer.appendChild(insertFileButton);
|
||||||
|
|
||||||
const splitFileButton = document.createElement("button");
|
const splitFileButton = document.createElement("button");
|
||||||
splitFileButton.classList.add("btn", "btn-primary", "pdf-actions_split-file-button");
|
splitFileButton.classList.add("btn", "btn-primary");
|
||||||
splitFileButton.setAttribute('title', window.translations.split);
|
splitFileButton.setAttribute('title', window.translations.split);
|
||||||
splitFileButton.innerHTML = `<span class="material-symbols-rounded">cut</span>`;
|
splitFileButton.innerHTML = `<span class="material-symbols-rounded">cut</span>`;
|
||||||
splitFileButton.onclick = this.splitFileButtonCallback;
|
splitFileButton.onclick = this.splitFileButtonCallback;
|
||||||
insertFileButtonContainer.appendChild(splitFileButton);
|
insertFileButtonContainer.appendChild(splitFileButton);
|
||||||
|
|
||||||
const insertFileBlankButton = document.createElement("button");
|
const insertFileBlankButton = document.createElement("button");
|
||||||
insertFileBlankButton.classList.add("btn", "btn-primary", "pdf-actions_insert-file-blank-button");
|
insertFileBlankButton.classList.add("btn", "btn-primary");
|
||||||
insertFileBlankButton.setAttribute('title', window.translations.insertPageBreak);
|
insertFileBlankButton.setAttribute('title', window.translations.insertPageBreak);
|
||||||
insertFileBlankButton.innerHTML = `<span class="material-symbols-rounded">insert_page_break</span>`;
|
insertFileBlankButton.innerHTML = `<span class="material-symbols-rounded">insert_page_break</span>`;
|
||||||
insertFileBlankButton.onclick = this.insertFileBlankButtonCallback;
|
insertFileBlankButton.onclick = this.insertFileBlankButtonCallback;
|
||||||
@ -225,7 +225,7 @@ class PdfActionsManager {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const insertFileButtonRight = document.createElement("button");
|
const insertFileButtonRight = document.createElement("button");
|
||||||
insertFileButtonRight.classList.add("btn", "btn-primary", "pdf-actions_insert-file-button");
|
insertFileButtonRight.classList.add("btn", "btn-primary");
|
||||||
insertFileButtonRight.innerHTML = `<span class="material-symbols-rounded">add</span>`;
|
insertFileButtonRight.innerHTML = `<span class="material-symbols-rounded">add</span>`;
|
||||||
insertFileButtonRight.onclick = () => addFiles();
|
insertFileButtonRight.onclick = () => addFiles();
|
||||||
insertFileButtonRightContainer.appendChild(insertFileButtonRight);
|
insertFileButtonRightContainer.appendChild(insertFileButtonRight);
|
||||||
|
@ -21,12 +21,10 @@ export class DeletePageCommand extends Command {
|
|||||||
this.pagesContainer.removeChild(this.element);
|
this.pagesContainer.removeChild(this.element);
|
||||||
if (this.pagesContainer.childElementCount === 0) {
|
if (this.pagesContainer.childElementCount === 0) {
|
||||||
const filenameInput = document.getElementById("filename-input");
|
const filenameInput = document.getElementById("filename-input");
|
||||||
const filenameParagraph = document.getElementById("filename");
|
|
||||||
const downloadBtn = document.getElementById("export-button");
|
const downloadBtn = document.getElementById("export-button");
|
||||||
|
|
||||||
filenameInput.disabled = true;
|
filenameInput.disabled = true;
|
||||||
filenameInput.value = "";
|
filenameInput.value = "";
|
||||||
filenameParagraph.innerText = "";
|
|
||||||
|
|
||||||
downloadBtn.disabled = true;
|
downloadBtn.disabled = true;
|
||||||
}
|
}
|
||||||
@ -43,13 +41,10 @@ export class DeletePageCommand extends Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const filenameInput = document.getElementById("filename-input");
|
const filenameInput = document.getElementById("filename-input");
|
||||||
const filenameParagraph = document.getElementById("filename");
|
|
||||||
const downloadBtn = document.getElementById("export-button");
|
const downloadBtn = document.getElementById("export-button");
|
||||||
|
|
||||||
filenameInput.disabled = false;
|
filenameInput.disabled = false;
|
||||||
filenameInput.value = this.filenameInputValue;
|
filenameInput.value = this.filenameInputValue;
|
||||||
if (this.filenameParagraph)
|
|
||||||
filenameParagraph.innerText = this.filenameParagraphText;
|
|
||||||
|
|
||||||
downloadBtn.disabled = false;
|
downloadBtn.disabled = false;
|
||||||
}
|
}
|
||||||
@ -63,12 +58,10 @@ export class DeletePageCommand extends Command {
|
|||||||
this.pagesContainer.removeChild(this.element);
|
this.pagesContainer.removeChild(this.element);
|
||||||
if (this.pagesContainer.childElementCount === 0) {
|
if (this.pagesContainer.childElementCount === 0) {
|
||||||
const filenameInput = document.getElementById("filename-input");
|
const filenameInput = document.getElementById("filename-input");
|
||||||
const filenameParagraph = document.getElementById("filename");
|
|
||||||
const downloadBtn = document.getElementById("export-button");
|
const downloadBtn = document.getElementById("export-button");
|
||||||
|
|
||||||
filenameInput.disabled = true;
|
filenameInput.disabled = true;
|
||||||
filenameInput.value = "";
|
filenameInput.value = "";
|
||||||
filenameParagraph.innerText = "";
|
|
||||||
|
|
||||||
downloadBtn.disabled = true;
|
downloadBtn.disabled = true;
|
||||||
}
|
}
|
||||||
|
@ -112,10 +112,10 @@ function setAsDefault(value) {
|
|||||||
|
|
||||||
function adjustVisibleElements() {
|
function adjustVisibleElements() {
|
||||||
const container = document.querySelector('.recent-features');
|
const container = document.querySelector('.recent-features');
|
||||||
|
if(!container) return;
|
||||||
const subElements = Array.from(container.children);
|
const subElements = Array.from(container.children);
|
||||||
|
|
||||||
let totalWidth = 0;
|
let totalWidth = 0;
|
||||||
const containerWidth = container.offsetWidth;
|
|
||||||
|
|
||||||
subElements.forEach((element) => {
|
subElements.forEach((element) => {
|
||||||
totalWidth += 12 * parseFloat(getComputedStyle(document.documentElement).fontSize);
|
totalWidth += 12 * parseFloat(getComputedStyle(document.documentElement).fontSize);
|
||||||
|
@ -153,22 +153,32 @@ document.getElementById("submitConfigBtn").addEventListener("click", function ()
|
|||||||
let apiDocs = {};
|
let apiDocs = {};
|
||||||
let apiSchemas = {};
|
let apiSchemas = {};
|
||||||
let operationSettings = {};
|
let operationSettings = {};
|
||||||
|
let operationStatus = {};
|
||||||
|
|
||||||
fetchWithCsrf("v1/api-docs")
|
fetchWithCsrf("v1/api-docs")
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
apiDocs = data.paths;
|
apiDocs = data.paths;
|
||||||
apiSchemas = data.components.schemas;
|
apiSchemas = data.components.schemas;
|
||||||
let operationsDropdown = document.getElementById("operationsDropdown");
|
return fetchWithCsrf("api/v1/settings/get-endpoints-status")
|
||||||
|
.then((response) => response.json())
|
||||||
|
.then((data) => {
|
||||||
|
operationStatus = data;
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error("Error:", error);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
const ignoreOperations = ["/api/v1/pipeline/handleData", "/api/v1/pipeline/operationToIgnore"]; // Add the operations you want to ignore here
|
const ignoreOperations = ["/api/v1/pipeline/handleData", "/api/v1/pipeline/operationToIgnore"]; // Add the operations you want to ignore here
|
||||||
|
let operationsDropdown = document.getElementById("operationsDropdown");
|
||||||
operationsDropdown.innerHTML = "";
|
operationsDropdown.innerHTML = "";
|
||||||
|
|
||||||
let operationsByTag = {};
|
let operationsByTag = {};
|
||||||
|
|
||||||
// Group operations by tags
|
// Group operations by tags
|
||||||
Object.keys(data.paths).forEach((operationPath) => {
|
Object.keys(apiDocs).forEach((operationPath) => {
|
||||||
let operation = data.paths[operationPath].post;
|
let operation = apiDocs[operationPath].post;
|
||||||
if (!operation || !operation.description) {
|
if (!operation || !operation.description) {
|
||||||
console.log(operationPath);
|
console.log(operationPath);
|
||||||
}
|
}
|
||||||
@ -209,13 +219,19 @@ fetchWithCsrf("v1/api-docs")
|
|||||||
}
|
}
|
||||||
operationPathDisplay = operationPathDisplay.replaceAll(" ", "-");
|
operationPathDisplay = operationPathDisplay.replaceAll(" ", "-");
|
||||||
option.textContent = operationPathDisplay;
|
option.textContent = operationPathDisplay;
|
||||||
|
|
||||||
|
if (!(operationPathDisplay in operationStatus)) {
|
||||||
option.value = operationPath; // Keep the value with slashes for querying
|
option.value = operationPath; // Keep the value with slashes for querying
|
||||||
group.appendChild(option);
|
group.appendChild(option);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
operationsDropdown.appendChild(group);
|
operationsDropdown.appendChild(group);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error("Error:", error);
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById('deletePipelineBtn').addEventListener('click', function(event) {
|
document.getElementById('deletePipelineBtn').addEventListener('click', function(event) {
|
||||||
|
@ -206,8 +206,6 @@ window.addEventListener('load', (e) => {
|
|||||||
|
|
||||||
let redactionsPaletteContainer = document.getElementById('redactionsPaletteContainer');
|
let redactionsPaletteContainer = document.getElementById('redactionsPaletteContainer');
|
||||||
|
|
||||||
let applyRedactionBtn = document.getElementById('apply-redaction');
|
|
||||||
|
|
||||||
let redactedPagesDetails = {
|
let redactedPagesDetails = {
|
||||||
numbers: new Set(),
|
numbers: new Set(),
|
||||||
ranges: new Set(),
|
ranges: new Set(),
|
||||||
@ -249,7 +247,6 @@ window.addEventListener('load', (e) => {
|
|||||||
displayFieldErrorMessages(input, errors);
|
displayFieldErrorMessages(input, errors);
|
||||||
} else {
|
} else {
|
||||||
pageBasedRedactionOverlay.classList.add('d-none');
|
pageBasedRedactionOverlay.classList.add('d-none');
|
||||||
applyRedactionBtn.removeAttribute('disabled');
|
|
||||||
input.classList.remove('is-valid');
|
input.classList.remove('is-valid');
|
||||||
|
|
||||||
let totalPagesCount = PDFViewerApplication.pdfViewer.pagesCount;
|
let totalPagesCount = PDFViewerApplication.pdfViewer.pagesCount;
|
||||||
@ -320,19 +317,28 @@ window.addEventListener('load', (e) => {
|
|||||||
|
|
||||||
redactionsPaletteContainer.onclick = (e) => redactionsPalette.click();
|
redactionsPaletteContainer.onclick = (e) => redactionsPalette.click();
|
||||||
|
|
||||||
|
function clearSelection() {
|
||||||
|
if (window.getSelection) {
|
||||||
|
if (window.getSelection().empty) {
|
||||||
|
// Chrome
|
||||||
|
window.getSelection().empty();
|
||||||
|
} else if (window.getSelection().removeAllRanges) {
|
||||||
|
// Firefox
|
||||||
|
window.getSelection().removeAllRanges();
|
||||||
|
}
|
||||||
|
} else if (document.selection) {
|
||||||
|
// IE?
|
||||||
|
document.selection.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
viewer.onmouseup = (e) => {
|
viewer.onmouseup = (e) => {
|
||||||
if (redactionMode !== RedactionModes.TEXT) return;
|
if (redactionMode !== RedactionModes.TEXT) return;
|
||||||
const containsText = window.getSelection() && window.getSelection().toString() != '';
|
const containsText = window.getSelection() && window.getSelection().toString() != '';
|
||||||
applyRedactionBtn.disabled = !containsText;
|
if(containsText){
|
||||||
};
|
|
||||||
|
|
||||||
applyRedactionBtn.onclick = (e) => {
|
|
||||||
if (redactionMode !== RedactionModes.TEXT) {
|
|
||||||
applyRedactionBtn.disabled = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
redactTextSelection();
|
redactTextSelection();
|
||||||
applyRedactionBtn.disabled = true;
|
clearSelection();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
redactionsPaletteInput.onchange = (e) => {
|
redactionsPaletteInput.onchange = (e) => {
|
||||||
@ -413,41 +419,28 @@ window.addEventListener('load', (e) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
initDraw(layer, redactionsContainer);
|
initDraw(layer, redactionsContainer);
|
||||||
|
enableTextRedactionMode();
|
||||||
|
|
||||||
function _handleTextSelectionRedactionBtnClick(e) {
|
function _handleTextSelectionRedactionBtnClick(e) {
|
||||||
if (textSelectionRedactionBtn.classList.contains('toggled')) {
|
if (textSelectionRedactionBtn.classList.contains('toggled')) {
|
||||||
resetTextSelection();
|
resetTextSelection();
|
||||||
} else {
|
} else {
|
||||||
resetDrawRedactions();
|
enableTextRedactionMode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function enableTextRedactionMode() {
|
||||||
|
if(!textSelectionRedactionBtn.classList.contains('toggled')){
|
||||||
textSelectionRedactionBtn.classList.add('toggled');
|
textSelectionRedactionBtn.classList.add('toggled');
|
||||||
|
}
|
||||||
|
resetDrawRedactions();
|
||||||
redactionMode = RedactionModes.TEXT;
|
redactionMode = RedactionModes.TEXT;
|
||||||
const containsText = window.getSelection() && window.getSelection().toString() != '';
|
};
|
||||||
applyRedactionBtn.disabled = !containsText;
|
|
||||||
applyRedactionBtn.classList.remove('d-none');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function resetTextSelection() {
|
function resetTextSelection() {
|
||||||
textSelectionRedactionBtn.classList.remove('toggled');
|
textSelectionRedactionBtn.classList.remove('toggled');
|
||||||
redactionMode = RedactionModes.NONE;
|
redactionMode = RedactionModes.NONE;
|
||||||
clearSelection();
|
clearSelection();
|
||||||
applyRedactionBtn.disabled = true;
|
|
||||||
applyRedactionBtn.classList.add('d-none');
|
|
||||||
}
|
|
||||||
|
|
||||||
function clearSelection() {
|
|
||||||
if (window.getSelection) {
|
|
||||||
if (window.getSelection().empty) {
|
|
||||||
// Chrome
|
|
||||||
window.getSelection().empty();
|
|
||||||
} else if (window.getSelection().removeAllRanges) {
|
|
||||||
// Firefox
|
|
||||||
window.getSelection().removeAllRanges();
|
|
||||||
}
|
|
||||||
} else if (document.selection) {
|
|
||||||
// IE?
|
|
||||||
document.selection.empty();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _handleDrawRedactionBtnClick(e) {
|
function _handleDrawRedactionBtnClick(e) {
|
||||||
@ -791,7 +784,6 @@ window.addEventListener('load', (e) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_setRedactionsInput(redactions);
|
_setRedactionsInput(redactions);
|
||||||
applyRedactionBtn.disabled = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _scaleToDisplay(value) {
|
function _scaleToDisplay(value) {
|
||||||
|
@ -26,7 +26,6 @@ window.addEventListener("keydown", (event) => {
|
|||||||
|
|
||||||
function undoDraw() {
|
function undoDraw() {
|
||||||
const data = signaturePad.toData();
|
const data = signaturePad.toData();
|
||||||
|
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
const removed = data.pop();
|
const removed = data.pop();
|
||||||
undoData.push(removed);
|
undoData.push(removed);
|
||||||
@ -35,7 +34,6 @@ function undoDraw() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function redoDraw() {
|
function redoDraw() {
|
||||||
|
|
||||||
if (undoData.length > 0) {
|
if (undoData.length > 0) {
|
||||||
const data = signaturePad.toData();
|
const data = signaturePad.toData();
|
||||||
data.push(undoData.pop());
|
data.push(undoData.pop());
|
||||||
@ -52,24 +50,18 @@ function addDraggableFromPad() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getCroppedCanvasDataUrl(canvas) {
|
function getCroppedCanvasDataUrl(canvas) {
|
||||||
let originalCtx = canvas.getContext('2d');
|
let originalCtx = canvas.getContext('2d', { willReadFrequently: true });
|
||||||
let originalWidth = canvas.width;
|
let originalWidth = canvas.width;
|
||||||
let originalHeight = canvas.height;
|
let originalHeight = canvas.height;
|
||||||
let imageData = originalCtx.getImageData(0, 0, originalWidth, originalHeight);
|
let imageData = originalCtx.getImageData(0, 0, originalWidth, originalHeight);
|
||||||
|
|
||||||
let minX = originalWidth + 1,
|
let minX = originalWidth + 1, maxX = -1, minY = originalHeight + 1, maxY = -1;
|
||||||
maxX = -1,
|
|
||||||
minY = originalHeight + 1,
|
|
||||||
maxY = -1,
|
|
||||||
x = 0,
|
|
||||||
y = 0,
|
|
||||||
currentPixelColorValueIndex;
|
|
||||||
|
|
||||||
for (y = 0; y < originalHeight; y++) {
|
for (let y = 0; y < originalHeight; y++) {
|
||||||
for (x = 0; x < originalWidth; x++) {
|
for (let x = 0; x < originalWidth; x++) {
|
||||||
currentPixelColorValueIndex = (y * originalWidth + x) * 4;
|
let idx = (y * originalWidth + x) * 4;
|
||||||
let currentPixelAlphaValue = imageData.data[currentPixelColorValueIndex + 3];
|
let alpha = imageData.data[idx + 3];
|
||||||
if (currentPixelAlphaValue > 0) {
|
if (alpha > 0) {
|
||||||
if (minX > x) minX = x;
|
if (minX > x) minX = x;
|
||||||
if (maxX < x) maxX = x;
|
if (maxX < x) maxX = x;
|
||||||
if (minY > y) minY = y;
|
if (minY > y) minY = y;
|
||||||
@ -81,14 +73,14 @@ function getCroppedCanvasDataUrl(canvas) {
|
|||||||
let croppedWidth = maxX - minX;
|
let croppedWidth = maxX - minX;
|
||||||
let croppedHeight = maxY - minY;
|
let croppedHeight = maxY - minY;
|
||||||
if (croppedWidth < 0 || croppedHeight < 0) return null;
|
if (croppedWidth < 0 || croppedHeight < 0) return null;
|
||||||
let cuttedImageData = originalCtx.getImageData(minX, minY, croppedWidth, croppedHeight);
|
let cutImageData = originalCtx.getImageData(minX, minY, croppedWidth, croppedHeight);
|
||||||
|
|
||||||
let croppedCanvas = document.createElement('canvas'),
|
let croppedCanvas = document.createElement('canvas');
|
||||||
croppedCtx = croppedCanvas.getContext('2d');
|
let croppedCtx = croppedCanvas.getContext('2d');
|
||||||
|
|
||||||
croppedCanvas.width = croppedWidth;
|
croppedCanvas.width = croppedWidth;
|
||||||
croppedCanvas.height = croppedHeight;
|
croppedCanvas.height = croppedHeight;
|
||||||
croppedCtx.putImageData(cuttedImageData, 0, 0);
|
croppedCtx.putImageData(cutImageData, 0, 0);
|
||||||
|
|
||||||
return croppedCanvas.toDataURL();
|
return croppedCanvas.toDataURL();
|
||||||
}
|
}
|
||||||
@ -114,10 +106,20 @@ function resizeCanvas() {
|
|||||||
signaturePad.clear();
|
signaturePad.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
new IntersectionObserver((entries, observer) => {
|
const debounce = (fn, delay = 100) => {
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
clearTimeout(timer);
|
||||||
|
timer = setTimeout(() => fn(...args), delay);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const debouncedResize = debounce(resizeCanvas, 200);
|
||||||
|
|
||||||
|
new IntersectionObserver((entries) => {
|
||||||
if (entries.some((entry) => entry.intersectionRatio > 0)) {
|
if (entries.some((entry) => entry.intersectionRatio > 0)) {
|
||||||
resizeCanvas();
|
debouncedResize();
|
||||||
}
|
}
|
||||||
}).observe(signaturePadCanvas);
|
}).observe(signaturePadCanvas);
|
||||||
|
|
||||||
new ResizeObserver(resizeCanvas).observe(signaturePadCanvas);
|
new ResizeObserver(debouncedResize).observe(signaturePadCanvas);
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import './cookieconsent.umd.js';
|
import './cookieconsent.umd.js';
|
||||||
import 'https://cdn.jsdelivr.net/gh/orestbida/cookieconsent@3.1.0/dist/cookieconsent.umd.js';
|
|
||||||
|
|
||||||
// Enable dark mode
|
// Enable dark mode
|
||||||
document.documentElement.classList.add('cc--darkmode');
|
document.documentElement.classList.add('cc--darkmode');
|
||||||
@ -31,7 +30,7 @@ CookieConsent.run({
|
|||||||
en: {
|
en: {
|
||||||
consentModal: {
|
consentModal: {
|
||||||
title: cookieBannerPopUpTitle,
|
title: cookieBannerPopUpTitle,
|
||||||
description: cookieBannerPopUpDescription,
|
description: cookieBannerPopUpDescription1 + "<br>" + cookieBannerPopUpDescription2,
|
||||||
acceptAllBtn: cookieBannerPopUpAcceptAllBtn,
|
acceptAllBtn: cookieBannerPopUpAcceptAllBtn,
|
||||||
acceptNecessaryBtn: cookieBannerPopUpAcceptNecessaryBtn,
|
acceptNecessaryBtn: cookieBannerPopUpAcceptNecessaryBtn,
|
||||||
showPreferencesBtn: cookieBannerPopUpShowPreferencesBtn,
|
showPreferencesBtn: cookieBannerPopUpShowPreferencesBtn,
|
||||||
@ -46,10 +45,10 @@ CookieConsent.run({
|
|||||||
sections: [
|
sections: [
|
||||||
{
|
{
|
||||||
title: cookieBannerPreferencesModalSubtitle,
|
title: cookieBannerPreferencesModalSubtitle,
|
||||||
description: cookieBannerPreferencesModalDescription
|
description: cookieBannerPreferencesModalDescription1 + "<br><br>" + cookieBannerPreferencesModalDescription2 + "<b> " + cookieBannerPreferencesModalDescription3 + "</b>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title:cookieBannerPreferencesModalNecessaryTitle,
|
title:cookieBannerPreferencesModalNecessaryTitle1 + "<span class=\"pm__badge\">" + cookieBannerPreferencesModalNecessaryTitle2 + "</span>",
|
||||||
description: cookieBannerPreferencesModalNecessaryDescription,
|
description: cookieBannerPreferencesModalNecessaryDescription,
|
||||||
linkedCategory: "necessary"
|
linkedCategory: "necessary"
|
||||||
},
|
},
|
||||||
|
@ -83,15 +83,19 @@
|
|||||||
<script th:inline="javascript">
|
<script th:inline="javascript">
|
||||||
|
|
||||||
function UpdatePosthogConsent(){
|
function UpdatePosthogConsent(){
|
||||||
|
if(typeof(posthog) == "undefined") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
window.CookieConsent.acceptedCategory('analytics')?
|
window.CookieConsent.acceptedCategory('analytics')?
|
||||||
posthog.opt_in_capturing() : posthog.opt_out_capturing();
|
posthog.opt_in_capturing() : posthog.opt_out_capturing();
|
||||||
console.log("Posthog: Opted " + (posthog.has_opted_out_capturing()? "out" : "in"));
|
|
||||||
}
|
}
|
||||||
const stirlingPDFLabel = /*[[${@StirlingPDFLabel}]]*/ '';
|
const stirlingPDFLabel = /*[[${@StirlingPDFLabel}]]*/ '';
|
||||||
const analyticsEnabled = /*[[${@analyticsEnabled}]]*/ false;
|
const analyticsEnabled = /*[[${@analyticsEnabled}]]*/ false;
|
||||||
|
|
||||||
const cookieBannerPopUpTitle = /*[[#{cookieBanner.popUp.title}]]*/ "How we use Cookies";
|
const cookieBannerPopUpTitle = /*[[#{cookieBanner.popUp.title}]]*/ "How we use Cookies";
|
||||||
const cookieBannerPopUpDescription = /*[[#{cookieBanner.popUp.description}]]*/ "";
|
const cookieBannerPopUpDescription1 = /*[[#{cookieBanner.popUp.description.1}]]*/ "";
|
||||||
|
const cookieBannerPopUpDescription2 = /*[[#{cookieBanner.popUp.description.2}]]*/ "";
|
||||||
const cookieBannerPopUpAcceptAllBtn = /*[[#{cookieBanner.popUp.acceptAllBtn}]]*/ "";
|
const cookieBannerPopUpAcceptAllBtn = /*[[#{cookieBanner.popUp.acceptAllBtn}]]*/ "";
|
||||||
const cookieBannerPopUpAcceptNecessaryBtn = /*[[#{cookieBanner.popUp.acceptNecessaryBtn}]]*/ "";
|
const cookieBannerPopUpAcceptNecessaryBtn = /*[[#{cookieBanner.popUp.acceptNecessaryBtn}]]*/ "";
|
||||||
const cookieBannerPopUpShowPreferencesBtn = /*[[#{cookieBanner.popUp.showPreferencesBtn}]]*/ "";
|
const cookieBannerPopUpShowPreferencesBtn = /*[[#{cookieBanner.popUp.showPreferencesBtn}]]*/ "";
|
||||||
@ -102,8 +106,11 @@
|
|||||||
const cookieBannerPreferencesModalCloseIconLabel = /*[[#{cookieBanner.preferencesModal.closeIconLabel}]]*/ "";
|
const cookieBannerPreferencesModalCloseIconLabel = /*[[#{cookieBanner.preferencesModal.closeIconLabel}]]*/ "";
|
||||||
const cookieBannerPreferencesModalServiceCounterLabel = /*[[#{cookieBanner.preferencesModal.serviceCounterLabel}]]*/ "";
|
const cookieBannerPreferencesModalServiceCounterLabel = /*[[#{cookieBanner.preferencesModal.serviceCounterLabel}]]*/ "";
|
||||||
const cookieBannerPreferencesModalSubtitle = /*[[#{cookieBanner.preferencesModal.subtitle}]]*/ "";
|
const cookieBannerPreferencesModalSubtitle = /*[[#{cookieBanner.preferencesModal.subtitle}]]*/ "";
|
||||||
const cookieBannerPreferencesModalDescription = /*[[#{cookieBanner.preferencesModal.description}]]*/ "";
|
const cookieBannerPreferencesModalDescription1 = /*[[#{cookieBanner.preferencesModal.description.1}]]*/ "";
|
||||||
const cookieBannerPreferencesModalNecessaryTitle = /*[[#{cookieBanner.preferencesModal.necessary.title}]]*/ "";
|
const cookieBannerPreferencesModalDescription2= /*[[#{cookieBanner.preferencesModal.description.2}]]*/ "";
|
||||||
|
const cookieBannerPreferencesModalDescription3 = /*[[#{cookieBanner.preferencesModal.description.3}]]*/ "";
|
||||||
|
const cookieBannerPreferencesModalNecessaryTitle1 = /*[[#{cookieBanner.preferencesModal.necessary.title.1}]]*/ "";
|
||||||
|
const cookieBannerPreferencesModalNecessaryTitle2 = /*[[#{cookieBanner.preferencesModal.necessary.title.2}]]*/ "";
|
||||||
const cookieBannerPreferencesModalNecessaryDescription = /*[[#{cookieBanner.preferencesModal.necessary.description}]]*/ "";
|
const cookieBannerPreferencesModalNecessaryDescription = /*[[#{cookieBanner.preferencesModal.necessary.description}]]*/ "";
|
||||||
const cookieBannerPreferencesModalAnalyticsTitle = /*[[#{cookieBanner.preferencesModal.analytics.title}]]*/ "";
|
const cookieBannerPreferencesModalAnalyticsTitle = /*[[#{cookieBanner.preferencesModal.analytics.title}]]*/ "";
|
||||||
const cookieBannerPreferencesModalAnalyticsDescription = /*[[#{cookieBanner.preferencesModal.analytics.description}]]*/ "";
|
const cookieBannerPreferencesModalAnalyticsDescription = /*[[#{cookieBanner.preferencesModal.analytics.description}]]*/ "";
|
||||||
@ -141,8 +148,9 @@
|
|||||||
const baseUrl = window.location.hostname;
|
const baseUrl = window.location.hostname;
|
||||||
posthog.register_once({
|
posthog.register_once({
|
||||||
'hostname': baseUrl,
|
'hostname': baseUrl,
|
||||||
'UUID': /*[[${@UUID}]]*/ ''
|
'UUID': /*[[${@UUID}]]*/ '',
|
||||||
})
|
'app_version': /*[[${@appVersion}]]*/ '',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener("cc:onConsent", UpdatePosthogConsent);
|
window.addEventListener("cc:onConsent", UpdatePosthogConsent);
|
||||||
@ -232,6 +240,10 @@
|
|||||||
window.stirlingPDF.sessionExpired = /*[[#{session.expired}]]*/ '';
|
window.stirlingPDF.sessionExpired = /*[[#{session.expired}]]*/ '';
|
||||||
window.stirlingPDF.refreshPage = /*[[#{session.refreshPage}]]*/ 'Refresh Page';
|
window.stirlingPDF.refreshPage = /*[[#{session.refreshPage}]]*/ 'Refresh Page';
|
||||||
window.stirlingPDF.error = /*[[#{error}]]*/ "Error";
|
window.stirlingPDF.error = /*[[#{error}]]*/ "Error";
|
||||||
|
window.stirlingPDF.uploadLimitReadable = /*[[${@uploadLimitService.getReadableUploadLimit()}]]*/ 'Unlimited';
|
||||||
|
window.stirlingPDF.uploadLimit = /*[[${@uploadLimitService.getUploadLimit()}]]*/ 0;
|
||||||
|
window.stirlingPDF.uploadLimitExceededSingular = /*[[#{uploadLimitExceededSingular}]]*/ 'is too large. Maximum allowed size is';
|
||||||
|
window.stirlingPDF.uploadLimitExceededPlural = /*[[#{uploadLimitExceededPlural}]]*/ 'are too large. Maximum allowed size is';
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
<script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script>
|
<script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script>
|
||||||
@ -280,8 +292,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="selected-files flex-wrap"></div>
|
<div class="selected-files flex-wrap"></div>
|
||||||
|
<div class="text-muted small mt-0 text-end w-100" th:if="${@uploadLimitService.getUploadLimit() != 0}">
|
||||||
|
<span th:text="#{uploadLimit}">Maximum file size: </span>
|
||||||
|
<span th:text="${@uploadLimitService.getReadableUploadLimit()}"></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="progressBarContainer" style="display: none; position: relative;">
|
<div class="progressBarContainer" style="display: none; position: relative;">
|
||||||
<div class="progress" style="height: 1rem;">
|
<div class="progress" style="height: 1rem;">
|
||||||
<div class="progressBar progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar"
|
<div class="progressBar progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar"
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<ul class="list-unstyled d-flex">
|
<ul class="list-unstyled d-flex">
|
||||||
<li><a class="footer-link px-2" id="licenses" target="_blank" th:href="@{'/licenses'}" th:text="#{licenses.nav}">Licenses</a></li>
|
<li><a class="footer-link px-2" id="licenses" target="_blank" th:href="@{'/licenses'}" th:text="#{licenses.nav}">Licenses</a></li>
|
||||||
<li><a class="footer-link px-2" id="licenses" target="_blank" th:href="@{'/releases'}" th:text="#{releases.footer}">Releases</a></li>
|
<li><a class="footer-link px-2" id="releases" target="_blank" th:href="@{'/releases'}" th:text="#{releases.footer}">Releases</a></li>
|
||||||
<li><a class="footer-link px-2" id="survey" target="_blank" href="https://stirlingpdf.info/s/cm28y3niq000o56dv7liv8wsu" th:text="#{survey.nav}">Survey</a></li>
|
<li><a class="footer-link px-2" id="survey" target="_blank" href="https://stirlingpdf.info/s/cm28y3niq000o56dv7liv8wsu" th:text="#{survey.nav}">Survey</a></li>
|
||||||
<li th:if="${@privacyPolicy != ''}"><a class="footer-link px-2" target="_blank" th:href="${@privacyPolicy}" th:text="#{legal.privacy}">privacyPolicy</a></li>
|
<li th:if="${@privacyPolicy != ''}"><a class="footer-link px-2" target="_blank" th:href="${@privacyPolicy}" th:text="#{legal.privacy}">privacyPolicy</a></li>
|
||||||
<li th:if="${@termsAndConditions != ''}"><a class="footer-link px-2" target="_blank" th:href="${@termsAndConditions}" th:text="#{legal.terms}">termsAndConditions</a></li>
|
<li th:if="${@termsAndConditions != ''}"><a class="footer-link px-2" target="_blank" th:href="${@termsAndConditions}" th:text="#{legal.terms}">termsAndConditions</a></li>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<th:block th:fragment="languageEntry(code, name)">
|
<th:block th:fragment="languageEntry(code, name)">
|
||||||
<div class="lang-dropdown-item-wrapper">
|
<div th:if="${code} == 'en_GB' or ${#lists.isEmpty(@languages) or #lists.contains(@languages, code)}" class="lang-dropdown-item-wrapper">
|
||||||
<a th:if="${code} == 'en_GB' or ${#lists.isEmpty(@languages) or #lists.contains(@languages, code)}"
|
<a
|
||||||
class="dropdown-item lang_dropdown-item" href="" th:data-bs-language-code="@{${code}}" th:text="${name}">
|
class="dropdown-item lang_dropdown-item" href="" th:data-bs-language-code="@{${code}}" th:text="${name}">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -143,7 +143,7 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-tp" aria-labelledby="languageDropdown">
|
<div class="dropdown-menu dropdown-menu-tp" aria-labelledby="languageDropdown">
|
||||||
<div class="dropdown-menu-wrapper px-xl-2 px-2">
|
<div class="dropdown-menu-wrapper px-xl-2 px-2">
|
||||||
<div class="scrollable-y lang_dropdown-mw scalable-languages-container">
|
<div id="languageSelection" class="scrollable-y lang_dropdown-mw scalable-languages-container">
|
||||||
<th:block th:insert="~{fragments/languages :: langs}"></th:block>
|
<th:block th:insert="~{fragments/languages :: langs}"></th:block>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -143,7 +143,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu" aria-labelledby="languageDropdown">
|
<div class="dropdown-menu" aria-labelledby="languageDropdown">
|
||||||
<!-- Here's where the fragment will be included -->
|
<!-- Here's where the fragment will be included -->
|
||||||
<div class="scrollable-y">
|
<div id="languageSelection" class="scrollable-y" >
|
||||||
<th:block th:replace="~{fragments/languages :: langs}"></th:block>
|
<th:block th:replace="~{fragments/languages :: langs}"></th:block>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script>
|
<script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script>
|
||||||
<script type="module" th:src="@{'/js/pages/add-image.js'}"></script>
|
<script type="module" th:src="@{'/js/pages/add-image.js'}"></script>
|
||||||
<div class="tab-group show-on-file-selected">
|
<div class="show-on-file-selected">
|
||||||
<div
|
<div
|
||||||
th:replace="~{fragments/common :: fileSelector(name='image-upload', disableMultipleFiles=false, multipleInputsForSingleRequest=true, accept='image/*', inputText=#{imgPrompt})}">
|
th:replace="~{fragments/common :: fileSelector(name='image-upload', disableMultipleFiles=false, multipleInputsForSingleRequest=true, accept='image/*', inputText=#{imgPrompt})}">
|
||||||
</div>
|
</div>
|
||||||
|
@ -453,11 +453,6 @@
|
|||||||
<input type="color" name="color-picker">
|
<input type="color" name="color-picker">
|
||||||
</label>
|
</label>
|
||||||
</button>
|
</button>
|
||||||
<button id="apply-redaction" th:title="#{redact.applyChanges}" class="btn-success d-none" disabled>
|
|
||||||
<span id="apply-redaction-icon" class="material-symbols-rounded">
|
|
||||||
check
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="toolbarViewerRight">
|
<div id="toolbarViewerRight">
|
||||||
<div class="splitToolbarButton">
|
<div class="splitToolbarButton">
|
||||||
|
@ -43,13 +43,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script>
|
<script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script>
|
||||||
<div class="tab-group show-on-file-selected">
|
<div class="tab-group show-on-file-selected">
|
||||||
<div class="tab-container" th:title="#{sign.upload}" th:data-title="#{sign.upload}">
|
<div class="tab-container"th:data-title="#{sign.upload}">
|
||||||
<div
|
<div
|
||||||
th:replace="~{fragments/common :: fileSelector(name='image-upload', disableMultipleFiles=false, multipleInputsForSingleRequest=true, accept='image/*', inputText=#{imgPrompt})}">
|
th:replace="~{fragments/common :: fileSelector(name='image-upload', disableMultipleFiles=false, multipleInputsForSingleRequest=true, accept='image/*', inputText=#{imgPrompt})}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab-container drawing-pad-container" th:title="#{sign.draw}" th:data-title="#{sign.draw}">
|
<div class="tab-container drawing-pad-container" th:data-title="#{sign.draw}">
|
||||||
<canvas id="drawing-pad-canvas"></canvas>
|
<canvas id="drawing-pad-canvas"></canvas>
|
||||||
<br>
|
<br>
|
||||||
<button id="clear-signature" class="btn btn-outline-danger mt-2" onclick="signaturePad.clear()"
|
<button id="clear-signature" class="btn btn-outline-danger mt-2" onclick="signaturePad.clear()"
|
||||||
@ -62,7 +62,7 @@
|
|||||||
onclick="redoDraw()"></button>
|
onclick="redoDraw()"></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab-container" th:title="#{sign.saved}" th:data-title="#{sign.saved}">
|
<div class="tab-container" th:data-title="#{sign.saved}">
|
||||||
<div class="saved-signatures-section" th:if="${not #lists.isEmpty(signatures)}">
|
<div class="saved-signatures-section" th:if="${not #lists.isEmpty(signatures)}">
|
||||||
|
|
||||||
<!-- Preview Modal -->
|
<!-- Preview Modal -->
|
||||||
@ -134,7 +134,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab-container" th:title="#{sign.text}" th:data-title="#{sign.text}">
|
<div class="tab-container" th:data-title="#{sign.text}">
|
||||||
<label class="form-check-label" for="sigText" th:text="#{text}"></label>
|
<label class="form-check-label" for="sigText" th:text="#{text}"></label>
|
||||||
<textarea class="form-control" id="sigText" name="sigText" rows="3"></textarea>
|
<textarea class="form-control" id="sigText" name="sigText" rows="3"></textarea>
|
||||||
<label th:text="#{font}"></label>
|
<label th:text="#{font}"></label>
|
||||||
|
147
testing/allEndpointsRemovedSettings.yml
Normal file
147
testing/allEndpointsRemovedSettings.yml
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
#############################################################################################################
|
||||||
|
# Welcome to settings file from #
|
||||||
|
# ____ _____ ___ ____ _ ___ _ _ ____ ____ ____ _____ #
|
||||||
|
# / ___|_ _|_ _| _ \| | |_ _| \ | |/ ___| | _ \| _ \| ___| #
|
||||||
|
# \___ \ | | | || |_) | | | || \| | | _ _____| |_) | | | | |_ #
|
||||||
|
# ___) || | | || _ <| |___ | || |\ | |_| |_____| __/| |_| | _| #
|
||||||
|
# |____/ |_| |___|_| \_\_____|___|_| \_|\____| |_| |____/|_| #
|
||||||
|
# #
|
||||||
|
# Custom setting.yml file with all endpoints disabled to only be used for testing purposes #
|
||||||
|
# Do not comment out any entry, it will be removed on next startup #
|
||||||
|
# If you want to override with environment parameter follow parameter naming SECURITY_INITIALLOGIN_USERNAME #
|
||||||
|
#############################################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
security:
|
||||||
|
enableLogin: false # set to 'true' to enable login
|
||||||
|
csrfDisabled: false # set to 'true' to disable CSRF protection (not recommended for production)
|
||||||
|
loginAttemptCount: 5 # lock user account after 5 tries; when using e.g. Fail2Ban you can deactivate the function with -1
|
||||||
|
loginResetTimeMinutes: 120 # lock account for 2 hours after x attempts
|
||||||
|
loginMethod: all # Accepts values like 'all' and 'normal'(only Login with Username/Password), 'oauth2'(only Login with OAuth2) or 'saml2'(only Login with SAML2)
|
||||||
|
initialLogin:
|
||||||
|
username: '' # initial username for the first login
|
||||||
|
password: '' # initial password for the first login
|
||||||
|
oauth2:
|
||||||
|
enabled: false # set to 'true' to enable login (Note: enableLogin must also be 'true' for this to work)
|
||||||
|
client:
|
||||||
|
keycloak:
|
||||||
|
issuer: '' # URL of the Keycloak realm's OpenID Connect Discovery endpoint
|
||||||
|
clientId: '' # client ID for Keycloak OAuth2
|
||||||
|
clientSecret: '' # client secret for Keycloak OAuth2
|
||||||
|
scopes: openid, profile, email # scopes for Keycloak OAuth2
|
||||||
|
useAsUsername: preferred_username # field to use as the username for Keycloak OAuth2. Available options are: [email | name | given_name | family_name | preferred_name]
|
||||||
|
google:
|
||||||
|
clientId: '' # client ID for Google OAuth2
|
||||||
|
clientSecret: '' # client secret for Google OAuth2
|
||||||
|
scopes: email, profile # scopes for Google OAuth2
|
||||||
|
useAsUsername: email # field to use as the username for Google OAuth2. Available options are: [email | name | given_name | family_name]
|
||||||
|
github:
|
||||||
|
clientId: '' # client ID for GitHub OAuth2
|
||||||
|
clientSecret: '' # client secret for GitHub OAuth2
|
||||||
|
scopes: read:user # scope for GitHub OAuth2
|
||||||
|
useAsUsername: login # field to use as the username for GitHub OAuth2. Available options are: [email | login | name]
|
||||||
|
issuer: '' # set to any Provider that supports OpenID Connect Discovery (/.well-known/openid-configuration) endpoint
|
||||||
|
clientId: '' # client ID from your Provider
|
||||||
|
clientSecret: '' # client secret from your Provider
|
||||||
|
autoCreateUser: true # set to 'true' to allow auto-creation of non-existing users
|
||||||
|
blockRegistration: false # set to 'true' to deny login with SSO without prior registration by an admin
|
||||||
|
useAsUsername: email # default is 'email'; custom fields can be used as the username
|
||||||
|
scopes: openid, profile, email # specify the scopes for which the application will request permissions
|
||||||
|
provider: google # set this to your OAuth Provider's name, e.g., 'google' or 'keycloak'
|
||||||
|
saml2:
|
||||||
|
enabled: false # Only enabled for paid enterprise clients (enterpriseEdition.enabled must be true)
|
||||||
|
provider: '' # The name of your Provider
|
||||||
|
autoCreateUser: true # set to 'true' to allow auto-creation of non-existing users
|
||||||
|
blockRegistration: false # set to 'true' to deny login with SSO without prior registration by an admin
|
||||||
|
registrationId: stirling # The name of your Service Provider (SP) app name. Should match the name in the path for your SSO & SLO URLs
|
||||||
|
idpMetadataUri: https://dev-XXXXXXXX.okta.com/app/externalKey/sso/saml/metadata # The uri for your Provider's metadata
|
||||||
|
idpSingleLoginUrl: https://dev-XXXXXXXX.okta.com/app/dev-XXXXXXXX_stirlingpdf_1/externalKey/sso/saml # The URL for initiating SSO. Provided by your Provider
|
||||||
|
idpSingleLogoutUrl: https://dev-XXXXXXXX.okta.com/app/dev-XXXXXXXX_stirlingpdf_1/externalKey/slo/saml # The URL for initiating SLO. Provided by your Provider
|
||||||
|
idpIssuer: '' # The ID of your Provider
|
||||||
|
idpCert: classpath:okta.cert # The certificate your Provider will use to authenticate your app's SAML authentication requests. Provided by your Provider
|
||||||
|
privateKey: classpath:saml-private-key.key # Your private key. Generated from your keypair
|
||||||
|
spCert: classpath:saml-public-cert.crt # Your signing certificate. Generated from your keypair
|
||||||
|
|
||||||
|
enterpriseEdition:
|
||||||
|
enabled: false # set to 'true' to enable enterprise edition
|
||||||
|
key: 00000000-0000-0000-0000-000000000000
|
||||||
|
SSOAutoLogin: false # Enable to auto login to first provided SSO
|
||||||
|
CustomMetadata:
|
||||||
|
autoUpdateMetadata: false # set to 'true' to automatically update metadata with below values
|
||||||
|
author: username # supports text such as 'John Doe' or types such as username to autopopulate with user's username
|
||||||
|
creator: Stirling-PDF # supports text such as 'Company-PDF'
|
||||||
|
producer: Stirling-PDF # supports text such as 'Company-PDF'
|
||||||
|
|
||||||
|
legal:
|
||||||
|
termsAndConditions: https://www.stirlingpdf.com/terms-and-conditions # URL to the terms and conditions of your application (e.g. https://example.com/terms). Empty string to disable or filename to load from local file in static folder
|
||||||
|
privacyPolicy: https://www.stirlingpdf.com/privacy-policy # URL to the privacy policy of your application (e.g. https://example.com/privacy). Empty string to disable or filename to load from local file in static folder
|
||||||
|
accessibilityStatement: '' # URL to the accessibility statement of your application (e.g. https://example.com/accessibility). Empty string to disable or filename to load from local file in static folder
|
||||||
|
cookiePolicy: '' # URL to the cookie policy of your application (e.g. https://example.com/cookie). Empty string to disable or filename to load from local file in static folder
|
||||||
|
impressum: '' # URL to the impressum of your application (e.g. https://example.com/impressum). Empty string to disable or filename to load from local file in static folder
|
||||||
|
|
||||||
|
system:
|
||||||
|
defaultLocale: en-US # set the default language (e.g. 'de-DE', 'fr-FR', etc)
|
||||||
|
googlevisibility: false # 'true' to allow Google visibility (via robots.txt), 'false' to disallow
|
||||||
|
enableAlphaFunctionality: false # set to enable functionality which might need more testing before it fully goes live (this feature might make no changes)
|
||||||
|
showUpdate: false # see when a new update is available
|
||||||
|
showUpdateOnlyAdmin: false # only admins can see when a new update is available, depending on showUpdate it must be set to 'true'
|
||||||
|
customHTMLFiles: false # enable to have files placed in /customFiles/templates override the existing template HTML files
|
||||||
|
tessdataDir: /usr/share/tessdata # path to the directory containing the Tessdata files. This setting is relevant for Windows systems. For Windows users, this path should be adjusted to point to the appropriate directory where the Tessdata files are stored.
|
||||||
|
enableAnalytics: true # set to 'true' to enable analytics, set to 'false' to disable analytics; for enterprise users, this is set to true
|
||||||
|
disableSanitize: false # set to true to disable Sanitize HTML; (can lead to injections in HTML)
|
||||||
|
datasource:
|
||||||
|
enableCustomDatabase: false # Enterprise users ONLY, set this property to 'true' if you would like to use your own custom database configuration
|
||||||
|
customDatabaseUrl: '' # eg jdbc:postgresql://localhost:5432/postgres, set the url for your own custom database connection. If provided, the type, hostName, port and name are not necessary and will not be used
|
||||||
|
username: postgres # set the database username
|
||||||
|
password: postgres # set the database password
|
||||||
|
type: postgresql # the type of the database to set (e.g. 'h2', 'postgresql')
|
||||||
|
hostName: localhost # the host name to use for the database url. Set to 'localhost' when running the app locally. Set to match the name of the container name of your database container when running the app on a server (Docker configuration)
|
||||||
|
port: 5432 # set the port number of the database. Ensure this matches the port the database is listening to
|
||||||
|
name: postgres # set the name of your database. Should match the name of the database you create
|
||||||
|
customPaths:
|
||||||
|
pipeline:
|
||||||
|
watchedFoldersDir: "" #Defaults to /pipeline/watchedFolders
|
||||||
|
finishedFoldersDir: "" #Defaults to /pipeline/finishedFolders
|
||||||
|
operations:
|
||||||
|
weasyprint: "" #Defaults to /opt/venv/bin/weasyprint
|
||||||
|
unoconvert: "" #Defaults to /opt/venv/bin/unoconvert
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ui:
|
||||||
|
appName: '' # application's visible name
|
||||||
|
homeDescription: '' # short description or tagline shown on the homepage
|
||||||
|
appNameNavbar: '' # name displayed on the navigation bar
|
||||||
|
languages: [] # If empty, all languages are enabled. To display only German and Polish ["de_DE", "pl_PL"]. British English is always enabled.
|
||||||
|
|
||||||
|
endpoints: # All the possible endpoints are disabled
|
||||||
|
toRemove: [crop, merge-pdfs, multi-page-layout, overlay-pdfs, pdf-to-single-page, rearrange-pages, remove-image-pdf, remove-pages, rotate-pdf, scale-pages, split-by-size-or-count, split-pages, split-pdf-by-chapters, split-pdf-by-sections, add-password, add-watermark, auto-redact, cert-sign, get-info-on-pdf, redact, remove-cert-sign, remove-password, sanitize-pdf, validate-signature, file-to-pdf, html-to-pdf, img-to-pdf, markdown-to-pdf, pdf-to-csv, pdf-to-html, pdf-to-img, pdf-to-markdown, pdf-to-pdfa, pdf-to-presentation, pdf-to-text, pdf-to-word, pdf-to-xml, url-to-pdf, add-image, add-page-numbers, add-stamp, auto-rename, auto-split-pdf, compress-pdf, decompress-pdf, extract-image-scans, extract-images, flatten, ocr-pdf, remove-blanks, repair, replace-invert-pdf, show-javascript, update-metadata, filter-contains-image, filter-contains-text, filter-file-size, filter-page-count, filter-page-rotation, filter-page-size] # list endpoints to disable (e.g. ['img-to-pdf', 'remove-pages'])
|
||||||
|
groupsToRemove: [] # list groups to disable (e.g. ['LibreOffice'])
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
enabled: true # 'true' to enable Info APIs (`/api/*`) endpoints, 'false' to disable
|
||||||
|
|
||||||
|
# Automatically Generated Settings (Do Not Edit Directly)
|
||||||
|
AutomaticallyGenerated:
|
||||||
|
key: cbb81c0f-50b1-450c-a2b5-89ae527776eb
|
||||||
|
UUID: 10dd4fba-01fa-4717-9b78-3dc4f54e398a
|
||||||
|
appVersion: 0.44.3
|
||||||
|
|
||||||
|
processExecutor:
|
||||||
|
sessionLimit: # Process executor instances limits
|
||||||
|
libreOfficeSessionLimit: 1
|
||||||
|
pdfToHtmlSessionLimit: 1
|
||||||
|
qpdfSessionLimit: 4
|
||||||
|
tesseractSessionLimit: 1
|
||||||
|
pythonOpenCvSessionLimit: 8
|
||||||
|
weasyPrintSessionLimit: 16
|
||||||
|
installAppSessionLimit: 1
|
||||||
|
calibreSessionLimit: 1
|
||||||
|
timeoutMinutes: # Process executor timeout in minutes
|
||||||
|
libreOfficetimeoutMinutes: 30
|
||||||
|
pdfToHtmltimeoutMinutes: 20
|
||||||
|
pythonOpenCvtimeoutMinutes: 30
|
||||||
|
weasyPrinttimeoutMinutes: 30
|
||||||
|
installApptimeoutMinutes: 60
|
||||||
|
calibretimeoutMinutes: 30
|
||||||
|
tesseractTimeoutMinutes: 30
|
60
testing/endpoints.txt
Normal file
60
testing/endpoints.txt
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/api/v1/filter/filter-page-size
|
||||||
|
/api/v1/filter/filter-page-rotation
|
||||||
|
/api/v1/filter/filter-page-count
|
||||||
|
/api/v1/filter/filter-file-size
|
||||||
|
/api/v1/filter/filter-contains-text
|
||||||
|
/api/v1/filter/filter-contains-image
|
||||||
|
/api/v1/security/validate-signature
|
||||||
|
/api/v1/security/sanitize-pdf
|
||||||
|
/api/v1/security/remove-password
|
||||||
|
/api/v1/security/remove-cert-sign
|
||||||
|
/api/v1/security/redact
|
||||||
|
/api/v1/security/get-info-on-pdf
|
||||||
|
/api/v1/security/cert-sign
|
||||||
|
/api/v1/security/auto-redact
|
||||||
|
/api/v1/security/add-watermark
|
||||||
|
/api/v1/security/add-password
|
||||||
|
/api/v1/misc/update-metadata
|
||||||
|
/api/v1/misc/show-javascript
|
||||||
|
/api/v1/misc/replace-invert-pdf
|
||||||
|
/api/v1/misc/repair
|
||||||
|
/api/v1/misc/remove-blanks
|
||||||
|
/api/v1/misc/ocr-pdf
|
||||||
|
/api/v1/misc/flatten
|
||||||
|
/api/v1/misc/extract-images
|
||||||
|
/api/v1/misc/extract-image-scans
|
||||||
|
/api/v1/misc/decompress-pdf
|
||||||
|
/api/v1/misc/compress-pdf
|
||||||
|
/api/v1/misc/auto-split-pdf
|
||||||
|
/api/v1/misc/auto-rename
|
||||||
|
/api/v1/misc/add-stamp
|
||||||
|
/api/v1/misc/add-page-numbers
|
||||||
|
/api/v1/misc/add-image
|
||||||
|
/api/v1/convert/url/pdf
|
||||||
|
/api/v1/convert/pdf/xml
|
||||||
|
/api/v1/convert/pdf/word
|
||||||
|
/api/v1/convert/pdf/text
|
||||||
|
/api/v1/convert/pdf/presentation
|
||||||
|
/api/v1/convert/pdf/pdfa
|
||||||
|
/api/v1/convert/pdf/markdown
|
||||||
|
/api/v1/convert/pdf/img
|
||||||
|
/api/v1/convert/pdf/html
|
||||||
|
/api/v1/convert/pdf/csv
|
||||||
|
/api/v1/convert/markdown/pdf
|
||||||
|
/api/v1/convert/img/pdf
|
||||||
|
/api/v1/convert/html/pdf
|
||||||
|
/api/v1/convert/file/pdf
|
||||||
|
/api/v1/general/split-pdf-by-sections
|
||||||
|
/api/v1/general/split-pdf-by-chapters
|
||||||
|
/api/v1/general/split-pages
|
||||||
|
/api/v1/general/split-by-size-or-count
|
||||||
|
/api/v1/general/scale-pages
|
||||||
|
/api/v1/general/rotate-pdf
|
||||||
|
/api/v1/general/remove-pages
|
||||||
|
/api/v1/general/remove-image-pdf
|
||||||
|
/api/v1/general/rearrange-pages
|
||||||
|
/api/v1/general/pdf-to-single-page
|
||||||
|
/api/v1/general/overlay-pdfs
|
||||||
|
/api/v1/general/multi-page-layout
|
||||||
|
/api/v1/general/merge-pdfs
|
||||||
|
/api/v1/general/crop
|
@ -332,6 +332,18 @@ main() {
|
|||||||
|
|
||||||
docker-compose -f "./exampleYmlFiles/test_cicd.yml" down
|
docker-compose -f "./exampleYmlFiles/test_cicd.yml" down
|
||||||
|
|
||||||
|
run_tests "Stirling-PDF-Fat-Disable-Endpoints" "./exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml"
|
||||||
|
|
||||||
|
echo "Testing disabled endpoints..."
|
||||||
|
if ./testing/test_disabledEndpoints.sh -f ./testing/endpoints.txt -b http://localhost:8080; then
|
||||||
|
passed_tests+=("Disabled-Endpoints")
|
||||||
|
else
|
||||||
|
failed_tests+=("Disabled-Endpoints")
|
||||||
|
echo "Disabled Endpoints tests failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker-compose -f "./exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml" down
|
||||||
|
|
||||||
# Report results
|
# Report results
|
||||||
echo "All tests completed in $SECONDS seconds."
|
echo "All tests completed in $SECONDS seconds."
|
||||||
|
|
||||||
|
183
testing/test_disabledEndpoints.sh
Normal file
183
testing/test_disabledEndpoints.sh
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to check a single endpoint
|
||||||
|
check_endpoint() {
|
||||||
|
local endpoint=$(echo "$1" | tr -d '\r') # Remove carriage returns
|
||||||
|
local base_url=$(echo "$2" | tr -d '\r')
|
||||||
|
local full_url="${base_url}${endpoint}"
|
||||||
|
local timeout=10
|
||||||
|
local result_file="$3"
|
||||||
|
local api_key="$4"
|
||||||
|
|
||||||
|
# Use curl to fetch the endpoint with timeout
|
||||||
|
|
||||||
|
response=$(curl -s -w "\n%{http_code}" --max-time $timeout \
|
||||||
|
-H "accept: */*" \
|
||||||
|
-H "Content-Type: multipart/form-data" \
|
||||||
|
-F "additional_field=" \
|
||||||
|
"$full_url")
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "FAILED - Connection error or timeout $full_url" >> "$result_file"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Split response into body and status code
|
||||||
|
HTTP_STATUS=$(echo "$response" | tail -n1)
|
||||||
|
BODY=$(echo "$response" | sed '$d')
|
||||||
|
|
||||||
|
# Check HTTP status
|
||||||
|
if [ "$HTTP_STATUS" != "403" ]; then
|
||||||
|
echo "FAILED - HTTP Status: $HTTP_STATUS - $full_url" >> "$result_file"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "OK - $full_url" >> "$result_file"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to test an endpoint and update counters
|
||||||
|
test_endpoint() {
|
||||||
|
local endpoint="$1"
|
||||||
|
local base_url="$2"
|
||||||
|
local tmp_dir="$3"
|
||||||
|
local endpoint_index="$4"
|
||||||
|
local api_key="$5"
|
||||||
|
local result_file="${tmp_dir}/result_${endpoint_index}.txt"
|
||||||
|
|
||||||
|
if ! check_endpoint "$endpoint" "$base_url" "$result_file" "$api_key"; then
|
||||||
|
echo "1" > "${tmp_dir}/failed_${endpoint_index}"
|
||||||
|
else
|
||||||
|
echo "0" > "${tmp_dir}/failed_${endpoint_index}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main function to test all endpoints from the list in parallel
|
||||||
|
test_all_endpoints() {
|
||||||
|
local endpoint_file="$1"
|
||||||
|
local base_url="${2:-"http://localhost:8080"}"
|
||||||
|
local api_key="$3"
|
||||||
|
local max_parallel="${4:-10}" # Default to 10 parallel processes
|
||||||
|
local failed_count=0
|
||||||
|
local total_count=0
|
||||||
|
local start_time=$(date +%s)
|
||||||
|
local tmp_dir=$(mktemp -d)
|
||||||
|
local active_jobs=0
|
||||||
|
local endpoint_index=0
|
||||||
|
|
||||||
|
echo "Starting endpoint tests..."
|
||||||
|
echo "Base URL: $base_url"
|
||||||
|
echo "Number of lines: $(wc -l < "$endpoint_file")"
|
||||||
|
echo "Max parallel jobs: $max_parallel"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
|
||||||
|
# Process each endpoint
|
||||||
|
while IFS= read -r endpoint || [ -n "$endpoint" ]; do
|
||||||
|
# Skip empty lines and comments
|
||||||
|
[[ -z "$endpoint" || "$endpoint" =~ ^#.*$ ]] && continue
|
||||||
|
|
||||||
|
((total_count++))
|
||||||
|
((endpoint_index++))
|
||||||
|
|
||||||
|
# Run the check in background
|
||||||
|
test_endpoint "$endpoint" "$base_url" "$tmp_dir" "$endpoint_index" "$api_key" &
|
||||||
|
|
||||||
|
# Track the job
|
||||||
|
((active_jobs++))
|
||||||
|
|
||||||
|
# If we've reached max_parallel, wait for a job to finish
|
||||||
|
if [ $active_jobs -ge $max_parallel ]; then
|
||||||
|
wait -n # Wait for any child process to exit
|
||||||
|
((active_jobs--))
|
||||||
|
fi
|
||||||
|
done < "$endpoint_file"
|
||||||
|
|
||||||
|
# Wait for remaining jobs to finish
|
||||||
|
wait
|
||||||
|
|
||||||
|
# Print results in order and count failures
|
||||||
|
for i in $(seq 1 $endpoint_index); do
|
||||||
|
if [ -f "${tmp_dir}/result_${i}.txt" ]; then
|
||||||
|
cat "${tmp_dir}/result_${i}.txt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "${tmp_dir}/failed_${i}" ]; then
|
||||||
|
failed_count=$((failed_count + $(cat "${tmp_dir}/failed_${i}")))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
rm -rf "$tmp_dir"
|
||||||
|
|
||||||
|
local end_time=$(date +%s)
|
||||||
|
local duration=$((end_time - start_time))
|
||||||
|
|
||||||
|
echo "----------------------------------------"
|
||||||
|
echo "Test Summary:"
|
||||||
|
echo "Total tests: $total_count"
|
||||||
|
echo "Failed tests: $failed_count"
|
||||||
|
echo "Passed tests: $((total_count - failed_count))"
|
||||||
|
echo "Duration: ${duration} seconds"
|
||||||
|
|
||||||
|
return $failed_count
|
||||||
|
}
|
||||||
|
|
||||||
|
# Print usage information
|
||||||
|
usage() {
|
||||||
|
echo "Usage: $0 [-f endpoint_file] [-b base_url] [-k api_key] [-p max_parallel]"
|
||||||
|
echo "Options:"
|
||||||
|
echo " -f endpoint_file Path to file containing endpoints to test (required)"
|
||||||
|
echo " -b base_url Base URL to prepend to test endpoints (default: http://localhost:8080)"
|
||||||
|
echo " -k api_key API key to use for authentication (required)"
|
||||||
|
echo " -p max_parallel Maximum number of parallel requests (default: 10)"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main execution
|
||||||
|
main() {
|
||||||
|
local endpoint_file=""
|
||||||
|
local base_url="http://localhost:8080"
|
||||||
|
local api_key="123456789"
|
||||||
|
local max_parallel=10
|
||||||
|
|
||||||
|
# Parse command line options
|
||||||
|
while getopts ":f:b:h" opt; do
|
||||||
|
case $opt in
|
||||||
|
f) endpoint_file="$OPTARG" ;;
|
||||||
|
b) base_url="$OPTARG" ;;
|
||||||
|
h) usage ;;
|
||||||
|
\?) echo "Invalid option -$OPTARG" >&2; usage ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check if endpoint file is provided
|
||||||
|
if [ -z "$endpoint_file" ]; then
|
||||||
|
echo "Error: Endpoint file is required"
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if endpoint file exists
|
||||||
|
if [ ! -f "$endpoint_file" ]; then
|
||||||
|
echo "Error: Endpoint list file not found: $endpoint_file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if API key is provided
|
||||||
|
if [ -z "$api_key" ]; then
|
||||||
|
echo "Error: API key is required"
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run tests using the endpoint list
|
||||||
|
if test_all_endpoints "$endpoint_file" "$base_url" "$api_key" "$max_parallel"; then
|
||||||
|
echo "All endpoint tests passed!"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "Some endpoint tests failed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run main if script is executed directly
|
||||||
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||||
|
main "$@"
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user