Compare commits

..

No commits in common. "master" and "v5.4.530" have entirely different histories.

863 changed files with 25025 additions and 676834 deletions

View File

@ -8,6 +8,8 @@ The issue tracking system is designed to record a single technical problem. A bu
If you are developing a custom solution, first check the examples at https://github.com/mozilla/pdf.js#learning and search existing issues. If this does not help, please prepare a short well-documented example that demonstrates the problem and make it accessible online on your website, JS Bin, GitHub, etc. before opening a new issue or contacting us in the Matrix room -- keep in mind that just code snippets won't help us troubleshoot the problem.
Note that the translations for PDF.js in the `l10n` folder are imported from the Nightly channel of Mozilla Firefox, such that we don't have to maintain them ourselves. This means that we will not accept pull requests that add new languages and/or modify existing translations, unless the corresponding changes have been made in Mozilla Firefox first.
See also:
- https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions
- https://github.com/mozilla/pdf.js/wiki/Contributing

View File

@ -6,5 +6,3 @@ updates:
interval: "weekly"
labels:
- "dependencies"
cooldown:
default-days: 7

View File

@ -1 +0,0 @@
fonttools==4.*

View File

@ -7,59 +7,28 @@ jobs:
test:
name: Test
runs-on: ubuntu-latest
environment: code-coverage
strategy:
fail-fast: false
matrix:
node-version: [22, 24, 26]
node-version: [20, 22, 24, 25]
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Restore cached PDF files
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
restore-keys: |
cached-pdf-files-
enableCrossOsArchive: true
- name: Run external tests
run: npx gulp externaltest
- name: Run CLI unit tests with code coverage
run: npx gulp unittestcli --coverage --coverage-output build/coverage/unitcli
- name: Save cached PDF files
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
enableCrossOsArchive: true
- name: Upload results to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
files: ./build/coverage/unitcli/lcov.info
flags: unittestcli
name: codecov-umbrella
disable_search: true
disable_telem: true
verbose: true
- name: Run CLI unit tests
run: npx gulp unittestcli

View File

@ -18,19 +18,18 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
queries: security-and-quality
- name: Autobuild CodeQL
uses: github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
uses: github/codeql-action/autobuild@v4
- name: Perform CodeQL analysis
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
uses: github/codeql-action/analyze@v4

View File

@ -1,99 +0,0 @@
name: Coverage (Browser tests)
on:
push:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/images/**'
- 'test/pdfs/**'
- 'test/resources/**'
- 'test/*.css'
- 'test/driver.js'
- 'test/test.mjs'
- 'test/test_manifest.json'
- 'test/test_slave.html'
- 'web/**'
- '.github/workflows/coverage_browser_tests.yml'
branches:
- master
pull_request:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/images/**'
- 'test/pdfs/**'
- 'test/resources/**'
- 'test/*.css'
- 'test/driver.js'
- 'test/test.mjs'
- 'test/test_manifest.json'
- 'test/test_slave.html'
- 'web/**'
- '.github/workflows/coverage_browser_tests.yml'
branches:
- master
workflow_dispatch:
permissions:
contents: read
jobs:
test:
name: ${{ matrix.os }} / firefox
strategy:
fail-fast: false
matrix:
node-version: [lts/*]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
environment: code-coverage
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Restore cached PDF files
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
restore-keys: |
cached-pdf-files-
enableCrossOsArchive: true
- name: Run browser tests with code coverage
run: npx gulp botbrowsertest --headless -j$(nproc) --coverage --coverage-output build/coverage/browser --noChrome
- name: Save cached PDF files
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
enableCrossOsArchive: true
- name: Upload results to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
files: ./build/coverage/browser/lcov.info
flags: browsertest
name: codecov-umbrella
disable_search: true
disable_telem: true
verbose: true

View File

@ -25,19 +25,18 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
uses: actions/checkout@v6
- name: Use Python 3.14
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
uses: actions/setup-python@v6
with:
python-version: '3.14'
cache: 'pip'
cache-dependency-path: '.github/fluent_linter_requirements.txt'
- name: Install requirements
run: pip install -r .github/fluent_linter_requirements.txt
- name: Install Fluent dependencies
run: |
pip install -r .github/requirements.txt
- name: Lint Fluent reference files
run: moz-fluent-lint ./l10n/en-US --config .github/fluent_linter_config.yml
run: |
moz-fluent-lint ./l10n/en-US --config .github/fluent_linter_config.yml

View File

@ -3,7 +3,6 @@ on:
push:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/test.mjs'
- 'test/font/**'
@ -13,7 +12,6 @@ on:
pull_request:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/test.mjs'
- 'test/font/**'
@ -26,60 +24,38 @@ permissions:
jobs:
test:
name: ${{ matrix.os }} / ${{ matrix.browser }}
name: Test
strategy:
fail-fast: false
matrix:
node-version: [lts/*]
os: [windows-latest, ubuntu-latest]
browser: [firefox, chrome]
include:
- browser: firefox
skip: --noChrome
- browser: chrome
skip: --noFirefox
runs-on: ${{ matrix.os }}
environment: code-coverage
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Use Python 3.14
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
uses: actions/setup-python@v6
with:
python-version: '3.14'
cache: 'pip'
cache-dependency-path: '.github/font_tests_requirements.txt'
- name: Install requirements
run: pip install -r .github/font_tests_requirements.txt
- name: Install Fonttools
run: pip install fonttools
- name: Run font tests with code coverage
run: npx gulp fonttest --headless --coverage --coverage-output build/coverage/font ${{ matrix.skip }}
- name: Upload results to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
files: ./build/coverage/font/lcov.info
flags: fonttest
name: codecov-umbrella
disable_search: true
disable_telem: true
verbose: true
- name: Run font tests
run: npx gulp fonttest --headless

View File

@ -1,106 +0,0 @@
name: Integration tests
on:
push:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/test.mjs'
- 'test/integration/**'
- 'web/**'
- '.github/workflows/integration_tests.yml'
branches:
- master
pull_request:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/test.mjs'
- 'test/integration/**'
- 'web/**'
- '.github/workflows/integration_tests.yml'
branches:
- master
workflow_dispatch:
permissions:
contents: read
jobs:
test:
name: ${{ matrix.os }} / ${{ matrix.browser }}
strategy:
fail-fast: false
matrix:
node-version: [lts/*]
os: [windows-latest, ubuntu-latest]
browser: [firefox, chrome]
include:
- browser: firefox
skip: --noChrome
- browser: chrome
skip: --noFirefox
runs-on: ${{ matrix.os }}
environment: code-coverage
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Restore cached PDF files
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
restore-keys: |
cached-pdf-files-
enableCrossOsArchive: true
# Note that the integration tests can't run in headless mode until bug
# 1878643 (tracked in #20918), and possibly others, have been fixed
# upstream, so we can't run with the `--headless` flag and thus have to
# configure a standard resolution for the headful browser windows.
- name: Update resolution (Windows)
if: ${{ matrix.os == 'windows-latest' }}
run: Set-DisplayResolution -Width 1920 -Height 1080 -Force
- name: Run integration tests with code coverage (Windows)
if: ${{ matrix.os == 'windows-latest' }}
run: npx gulp integrationtest --coverage --coverage-output build/coverage/integration ${{ matrix.skip }}
- name: Run integration tests with code coverage (Linux)
if: ${{ matrix.os == 'ubuntu-latest' }}
run: xvfb-run -a --server-args="-screen 0, 1920x1080x24" npx gulp integrationtest --coverage --coverage-output build/coverage/integration ${{ matrix.skip }}
- name: Save cached PDF files
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
enableCrossOsArchive: true
- name: Upload results to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
files: ./build/coverage/integration/lcov.info
flags: integrationtest
name: codecov-umbrella
disable_search: true
disable_telem: true
verbose: true

View File

@ -15,16 +15,14 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
@ -32,5 +30,8 @@ jobs:
- name: Run lint
run: npx gulp lint
- name: Run lint-chromium
run: npx gulp lint-chromium
- name: Run lint-mozcentral
run: npx gulp lint-mozcentral

View File

@ -1,77 +0,0 @@
name: Notify PDF sync
on:
push:
branches: [master]
paths:
- "test/pdfs/*.pdf"
- "test/pdfs/*.pdf.link"
permissions:
contents: read
jobs:
notify:
runs-on: ubuntu-latest
environment: sync_pdfs
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 1
persist-credentials: false
- name: Check for added PDF files
id: check
run: |
git fetch --no-tags --depth=1 origin ${{ github.event.before }}
mapfile -t added < <(
git diff --diff-filter=A --name-only \
${{ github.event.before }} \
${{ github.sha }} \
-- \
':(glob)test/pdfs/*.pdf' \
':(glob)test/pdfs/*.pdf.link'
)
if [ "${#added[@]}" -gt 0 ]; then
echo "has_added=true" >> "$GITHUB_OUTPUT"
printf 'files_json=%s\n' "$(printf '%s\n' "${added[@]}" | jq -Rsc 'split("\n")[:-1]')" >> "$GITHUB_OUTPUT"
else
echo "has_added=false" >> "$GITHUB_OUTPUT"
echo 'files_json=[]' >> "$GITHUB_OUTPUT"
fi
- name: Generate app token
if: steps.check.outputs.has_added == 'true'
id: app-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ secrets.CLIENT_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
owner: mozilla
repositories: pdf.js.pdfs
- name: Trigger sync
if: steps.check.outputs.has_added == 'true'
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
FILES_JSON: ${{ steps.check.outputs.files_json }}
run: |
payload=$(jq -nc \
--arg before "${{ github.event.before }}" \
--arg after "${{ github.sha }}" \
--argjson files "$FILES_JSON" \
'{
event_type: "pdf-added",
client_payload: {
before: $before,
after: $after,
files: $files
}
}')
gh api repos/mozilla/pdf.js.pdfs/dispatches \
--method POST \
--input - <<< "$payload"

View File

@ -1,33 +0,0 @@
name: Prefs tests
on: [push, pull_request]
permissions:
contents: read
jobs:
test:
name: Test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [lts/*]
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run prefs tests
run: npx gulp prefstest

View File

@ -1,184 +0,0 @@
name: Publish per-test coverage index
# Builds the per-test coverage index (which ref test exercises which source
# line/function) and publishes it to the gh-pages branch of mozilla/pdf.js.refs,
# where it's served at:
# https://mozilla.github.io/pdf.js.refs/per-test-index.json
# The index can then be queried with `npx gulp coverage_search`.
#
# This only runs when something is merged into master (push event); the build is
# heavy (a full browser test run), so it's deliberately kept off pull requests.
on:
push:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/images/**'
- 'test/pdfs/**'
- 'test/resources/**'
- 'test/*.css'
- 'test/driver.js'
- 'test/test.mjs'
- 'test/test_manifest.json'
- 'test/test_slave.html'
- 'web/**'
- '.github/workflows/publish_coverage_index.yml'
branches:
- master
workflow_dispatch:
concurrency:
group: publish-coverage-index-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
publish:
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
environment: sync_pdfs
strategy:
matrix:
node-version: [lts/*]
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 1
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Restore cached PDF files
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
restore-keys: |
cached-pdf-files-
enableCrossOsArchive: true
- name: Build the per-test coverage index
run: npx gulp botbrowsertest --headless -j$(nproc) --coverage-per-test --coverage-output build/coverage/browser --noChrome
- name: Save cached PDF files
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
enableCrossOsArchive: true
- name: Check current master
id: current-master
run: |
set -euo pipefail
git fetch --no-tags --depth=1 origin master:refs/remotes/origin/master
current_master="$(git rev-parse refs/remotes/origin/master)"
if [ "$GITHUB_SHA" = "$current_master" ]; then
echo "current=true" >> "$GITHUB_OUTPUT"
else
echo "::notice::Skipping publish because ${GITHUB_SHA} is no longer origin/master (${current_master})"
echo "current=false" >> "$GITHUB_OUTPUT"
fi
- name: Generate app token for pdf.js.refs
if: steps.current-master.outputs.current == 'true'
id: refs-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ secrets.CLIENT_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
owner: mozilla
repositories: pdf.js.refs
# Least privilege: the token only needs to push to gh-pages.
permission-contents: write
- name: Publish per-test coverage index
if: steps.current-master.outputs.current == 'true'
env:
GH_TOKEN: ${{ steps.refs-token.outputs.token }}
INDEX_FILE: build/coverage/browser/per-test-index.json
run: |
set -euo pipefail
if [ ! -f "$INDEX_FILE" ]; then
# A successful per-test run always writes the index; test.mjs only
# skips it when no per-test coverage was collected at all, so a
# missing file here means a broken build, not "nothing to publish".
echo "::error::Per-test coverage index not found at $INDEX_FILE"
exit 1
fi
repo_url="https://github.com/mozilla/pdf.js.refs.git"
# Authenticate with a short-lived header rather than embedding the
# token in the remote URL, so it never persists in .git/config.
auth_header="Authorization: basic $(printf 'x-access-token:%s' "$GH_TOKEN" | base64 | tr -d '\n')"
git_refs() { git -c http.extraheader="$auth_header" "$@"; }
stage_index() {
cp "$GITHUB_WORKSPACE/$INDEX_FILE" per-test-index.json
git add per-test-index.json
}
commit_index() {
git \
-c user.name="github-actions[bot]" \
-c user.email="41898282+github-actions[bot]@users.noreply.github.com" \
commit -q -m "Update per-test coverage index for ${GITHUB_SHA}"
}
work="$(mktemp -d)"
# Does gh-pages already exist? Probe explicitly so a transient network
# error isn't mistaken for "first run" (the orphan path below discards
# whatever else the branch holds).
ls_status=0
git_refs ls-remote --exit-code --heads "$repo_url" gh-pages >/dev/null 2>&1 || ls_status=$?
case "$ls_status" in
0)
# Reuse gh-pages, keeping any other files it holds.
git_refs clone --depth=1 --branch gh-pages "$repo_url" "$work"
cd "$work"
;;
2)
# First run: start a fresh orphan branch without cloning history.
git init -q "$work"
cd "$work"
git remote add origin "$repo_url"
git checkout -q --orphan gh-pages
;;
*)
echo "::error::Could not query gh-pages on pdf.js.refs (git ls-remote exit ${ls_status})"
exit 1
;;
esac
stage_index
if git diff --cached --quiet; then
echo "No changes to publish"
exit 0
fi
commit_index
# Retry against a concurrent update to gh-pages: re-sync onto the new
# tip, re-apply our index (latest build wins), and push again.
for attempt in 1 2 3; do
if git_refs push origin gh-pages; then
exit 0
fi
if [ "$attempt" -eq 3 ]; then
echo "::error::Failed to push the per-test coverage index after ${attempt} attempts"
exit 1
fi
echo "gh-pages advanced during the run; re-syncing and retrying (attempt ${attempt})"
git_refs fetch --depth=1 origin gh-pages
git reset --hard FETCH_HEAD
stage_index
if git diff --cached --quiet; then
echo "No changes after re-sync"
exit 0
fi
commit_index
done

View File

@ -17,16 +17,14 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies

View File

@ -6,12 +6,6 @@ on:
permissions:
contents: read
# Allow only one concurrent deployment, without cancelling in-progress runs, so
# that an in-flight Pages deployment is allowed to finish before the next starts.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
name: Build
@ -23,16 +17,14 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
@ -57,7 +49,7 @@ jobs:
INPUT_PATH: build/gh-pages
- name: Upload the website
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@v6
with:
name: github-pages
path: ${{ runner.temp }}/website.tar
@ -74,4 +66,4 @@ jobs:
steps:
- name: Deploy the website
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0
uses: actions/deploy-pages@v4

View File

@ -15,16 +15,14 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@v6
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci

View File

@ -1,93 +0,0 @@
name: Unit tests
on:
push:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/test.mjs'
- 'test/unit/**'
- 'web/**'
- '.github/workflows/unit_tests.yml'
branches:
- master
pull_request:
paths:
- 'gulpfile.mjs'
- 'external/**'
- 'src/**'
- 'test/test.mjs'
- 'test/unit/**'
- 'web/**'
- '.github/workflows/unit_tests.yml'
branches:
- master
workflow_dispatch:
permissions:
contents: read
jobs:
test:
name: ${{ matrix.os }} / ${{ matrix.browser }}
strategy:
fail-fast: false
matrix:
node-version: [lts/*]
os: [windows-latest, ubuntu-latest]
browser: [firefox, chrome]
include:
- browser: firefox
skip: --noChrome
- browser: chrome
skip: --noFirefox
runs-on: ${{ matrix.os }}
environment: code-coverage
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Restore cached PDF files
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
restore-keys: |
cached-pdf-files-
enableCrossOsArchive: true
- name: Run unit tests with code coverage
run: npx gulp unittest --headless --coverage --coverage-output build/coverage/unit ${{ matrix.skip }}
- name: Save cached PDF files
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: test/pdfs/*.pdf
key: cached-pdf-files-${{ hashFiles('test/pdfs/*.pdf') }}
enableCrossOsArchive: true
- name: Upload results to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
files: ./build/coverage/unit/lcov.info
flags: unittest
name: codecov-umbrella
disable_search: true
disable_telem: true
verbose: true

View File

@ -1,61 +0,0 @@
name: Update locales
on:
schedule:
- cron: "0 0 * * 5" # Every Friday at midnight UTC
workflow_dispatch: # Allow manual triggering
permissions:
contents: read
jobs:
update-locales:
name: Update locales
runs-on: ubuntu-latest
environment: sync_l10n
steps:
- name: Generate app token
id: app-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ secrets.CLIENT_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
token: ${{ steps.app-token.outputs.token }}
persist-credentials: false
- name: Use Node.js LTS
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: lts/*
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Import translations from mozilla-central
run: npx gulp importl10n
- name: Create Pull Request
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
if [ -z "$(git status --porcelain l10n/)" ]; then
echo "No locale changes to commit."
exit 0
fi
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git remote set-url origin "https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}"
git switch -C update-locales
git add l10n/
git commit -m "l10n: Update locale files"
git push --force origin update-locales
gh pr create \
--title "l10n: Update locale files" \
--body "Automated weekly update of locale files from mozilla-central." \
--label l10n || true

View File

@ -1,9 +0,0 @@
{
"mcpServers": {
"firefox-devtools": {
"type": "stdio",
"command": "npx",
"args": ["@padenot/firefox-devtools-mcp"]
}
}
}

View File

@ -13,6 +13,3 @@ test/tmp/
test/pdfs/
web/locale/
*~/
.claude/
.codex/
.cursor/

9
.puppeteerrc Normal file
View File

@ -0,0 +1,9 @@
{
"chrome": {
"skipDownload": false
},
"firefox": {
"skipDownload": false,
"version": "nightly"
}
}

View File

@ -1,13 +0,0 @@
{
"chrome": {
"skipDownload": true,
"version": "stable"
},
"chrome-headless-shell": {
"skipDownload": true
},
"firefox": {
"skipDownload": true,
"version": "nightly"
}
}

View File

@ -13,6 +13,9 @@
"color-no-invalid-hex": true,
"declaration-block-no-duplicate-properties": true,
"declaration-block-no-redundant-longhand-properties": true,
"declaration-property-value-disallowed-list": {
"float": ["inline-start", "inline-end"]
},
"length-zero-no-unit": [true, {
"ignore": ["custom-properties"]
}],

View File

@ -1,4 +1,4 @@
# PDF.js [![CI](https://github.com/mozilla/pdf.js/actions/workflows/ci.yml/badge.svg?query=branch%3Amaster)](https://github.com/mozilla/pdf.js/actions/workflows/ci.yml?query=branch%3Amaster) [![codecov](https://codecov.io/gh/mozilla/pdf.js/branch/master/graph/badge.svg)](https://codecov.io/gh/mozilla/pdf.js)
# PDF.js [![CI](https://github.com/mozilla/pdf.js/actions/workflows/ci.yml/badge.svg?query=branch%3Amaster)](https://github.com/mozilla/pdf.js/actions/workflows/ci.yml?query=branch%3Amaster)
[PDF.js](https://mozilla.github.io/pdf.js/) is a Portable Document Format (PDF) viewer that is built with HTML5.
@ -44,10 +44,6 @@ PDF.js is built into version 19+ of Firefox.
Chrome, go to `Tools > Extension` and load the (unpackaged) extension from the
directory `build/chromium`.
### PDF debugger
Browse the internal structure of a PDF document with https://mozilla.github.io/pdf.js/internal-viewer/web/debugger.html
## Getting the Code
To get a local copy of the current code, clone it using git:
@ -91,71 +87,6 @@ This will generate `pdf.js` and `pdf.worker.js` in the `build/generic/build/` di
Both scripts are needed but only `pdf.js` needs to be included since `pdf.worker.js` will
be loaded by `pdf.js`. The PDF.js files are large and should be minified for production.
## Code coverage
We track how much of the code is exercised by the test suite on
[Codecov](https://codecov.io/gh/mozilla/pdf.js) (see the badge at the top of this
file).
### How it is collected
When coverage is enabled, the build instruments the bundled code with
[`babel-plugin-istanbul`](https://github.com/istanbuljs/babel-plugin-istanbul),
which adds counters that record every line, branch and function that runs:
+ For browser-based tests (unit, integration and reference tests) the
instrumented code runs in the browser, fills a global `window.__coverage__`
object, and the test runner collects it from each browser session, merges the
results, and writes the report.
+ For the Node-based unit tests (`unittestcli`) the raw data is written to
`build/tmp/unittestcli-coverage.json` and turned into a report afterwards.
### Collecting coverage locally
Add the `--coverage` flag to any of the test tasks, for example:
$ npx gulp unittest --coverage # browser unit tests
$ npx gulp unittestcli --coverage # Node unit tests
$ npx gulp integrationtest --coverage # Puppeteer integration tests
$ npx gulp botbrowsertest --coverage # reference tests
The following options control the output:
| Option | Description | Default |
| --- | --- | --- |
| `--coverage` | Enable coverage collection. | off |
| `--coverage-output <dir>` | Directory where the report is written. | `build/coverage` |
| `--coverage-formats <list>` | Comma-separated list of formats: `info`, `html`, `json`, `text`, `cobertura`, `clover`. | `info` |
| `--coverage-per-test` | Also build a per-test index (see below). | off |
By default the report is written to `build/coverage` in the `info` format, i.e.
an [LCOV](https://github.com/linux-test-project/lcov) `lcov.info` file (the same
format that is uploaded to Codecov). Use `--coverage-formats html` to get a
browsable HTML report instead, or pass several formats at once, e.g.
`--coverage-formats info,html`.
### Finding which tests cover a given line
Run a browser test task with `--coverage-per-test` to build an index
(`per-test-index.json`) in the coverage directory, then query it to list the
tests that exercised a specific source line or function:
$ npx gulp botbrowsertest --coverage-per-test
$ npx gulp coverage_search --code="canvas.js::205"
$ npx gulp coverage_search --code="canvas.js::drawImageAtIntegerCoords"
### Continuous integration
On every push and pull request three GitHub Actions workflows collect coverage
and upload it to Codecov, each tagged with its own Codecov *flag* so the test
types can be told apart:
| Workflow | Task | Codecov flag |
| --- | --- | --- |
| `unit_tests.yml` | `unittest` | `unittest` |
| `integration_tests.yml` | `integrationtest` | `integrationtest` |
| `coverage_browser_tests.yml` | `botbrowsertest` | `browsertest` |
## Using PDF.js in a web application
To use PDF.js in a web application you can choose to use a pre-built version of the library

View File

@ -1,3 +0,0 @@
flag_management:
default_rules:
carryforward: true

View File

@ -18,13 +18,13 @@ This tutorial shows how PDF.js can be used as a library in a web browser.
The object structure of PDF.js loosely follows the structure of an actual PDF. At the top level there is a document object. From the document, more information and individual pages can be fetched. To get the document:
```js
pdfjsLib.getDocument({ url: "helloworld.pdf" })
pdfjsLib.getDocument('helloworld.pdf')
```
Remember though that PDF.js uses promises, and the above will return a `PDFDocumentLoadingTask` instance that has a `promise` property which is resolved with the document object.
```js
var loadingTask = pdfjsLib.getDocument({ url: "helloworld.pdf" });
var loadingTask = pdfjsLib.getDocument('helloworld.pdf');
loadingTask.promise.then(function(pdf) {
// you can now use *pdf* here
});
@ -48,8 +48,8 @@ var viewport = page.getViewport({ scale: scale, });
// Support HiDPI-screens.
var outputScale = window.devicePixelRatio || 1;
var canvas = document.getElementById("the-canvas");
var context = canvas.getContext("2d");
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.width = Math.floor(viewport.width * outputScale);
canvas.height = Math.floor(viewport.height * outputScale);

View File

@ -1,13 +1,11 @@
import globals from "globals";
import import_ from "eslint-plugin-import-x";
import import_ from "eslint-plugin-import";
import jasmine from "eslint-plugin-jasmine";
import json from "@eslint/json";
import json from "eslint-plugin-json";
import noUnsanitized from "eslint-plugin-no-unsanitized";
import perfectionist from "eslint-plugin-perfectionist";
import preferMathClamp from "./external/eslint_plugins/prefer-math-clamp.mjs";
import prettierRecommended from "eslint-plugin-prettier/recommended";
import regexpPlugin from "eslint-plugin-regexp";
import unicorn from "eslint-plugin-unicorn";
const jsFiles = folder => {
@ -28,18 +26,15 @@ const chromiumExtensionServiceWorkerFiles = [
export default [
{
ignores: [
"package-lock.json",
"**/build/",
"**/l10n/",
"**/docs/",
"**/node_modules/",
"external/bcmaps/",
"external/brotli/",
"external/builder/fixtures/",
"external/builder/fixtures_babel/",
"external/openjpeg/",
"external/qcms/",
"external/jbig2/",
"external/quickjs/",
"test/stats/results/",
"test/tmp/",
@ -47,7 +42,6 @@ export default [
"web/locale/",
"web/wasm/",
"**/*~/",
".{claude,codex,cursor}/",
],
},
@ -57,16 +51,7 @@ export default [
prettierRecommended,
{
files: jsFiles("."),
plugins: regexpPlugin.configs["flat/recommended"].plugins,
rules: {
...regexpPlugin.configs["flat/recommended"].rules,
"regexp/no-legacy-features": "off",
},
},
{
files: ["**/*.json", "**/.*.json"],
language: "json/json",
files: ["**/*.json"],
...json.configs.recommended,
},
{
@ -80,24 +65,18 @@ export default [
files: jsFiles("."),
plugins: {
import: import_.flatConfigs.recommended.plugins["import-x"],
import: import_.flatConfigs.recommended.plugins.import,
json,
"no-unsanitized": noUnsanitized,
perfectionist,
"prefer-math-clamp": preferMathClamp,
unicorn,
},
settings: {
"import-x/resolver-next": [import_.createNodeResolver()],
},
languageOptions: {
globals: {
...globals.worker,
PDFJSDev: "readonly",
__raw_import__: "readonly",
__eager_import__: "readonly",
},
ecmaVersion: 2025,
@ -135,13 +114,8 @@ export default [
"pdfjs-lib",
"pdfjs-web",
"web",
"@csstools/postcss-light-dark-function",
"fluent-bundle",
"fluent-dom",
"postcss-dir-pseudo-class",
"postcss-nesting",
"postcss-values-parser",
"stylelint",
// See https://github.com/firebase/firebase-admin-node/discussions/1359.
"eslint-plugin-perfectionist",
],
@ -162,7 +136,6 @@ export default [
"unicorn/no-unnecessary-array-flat-depth": "error",
"unicorn/no-unnecessary-array-splice-count": "error",
"unicorn/no-unnecessary-slice-end": "error",
"unicorn/no-useless-collection-argument": "error",
"unicorn/no-useless-promise-resolve-reject": "error",
"unicorn/no-useless-spread": "error",
"unicorn/prefer-array-find": "error",
@ -171,18 +144,11 @@ export default [
"unicorn/prefer-array-index-of": "error",
"unicorn/prefer-array-some": "error",
"unicorn/prefer-at": "error",
"unicorn/prefer-class-fields": "error",
"unicorn/prefer-classlist-toggle": "error",
"unicorn/prefer-date-now": "error",
"unicorn/prefer-dom-node-append": "error",
"unicorn/prefer-dom-node-remove": "error",
"unicorn/prefer-import-meta-properties": "error",
"unicorn/prefer-includes": "error",
"unicorn/logical-assignment-operators": [
"error",
"always",
{ enforceForIfStatements: true },
],
"unicorn/prefer-logical-operator-over-ternary": "error",
"unicorn/prefer-modern-dom-apis": "error",
"unicorn/prefer-modern-math-apis": "error",
@ -195,8 +161,6 @@ export default [
"unicorn/prefer-ternary": ["error", "only-single-line"],
"unicorn/throw-new-error": "error",
"prefer-math-clamp/prefer-math-clamp": "error",
// Possible errors
"for-direction": "error",
"getter-return": "error",
@ -280,10 +244,8 @@ export default [
"no-useless-concat": "error",
"no-useless-escape": "error",
"no-useless-return": "error",
"prefer-object-has-own": "error",
"prefer-promise-reject-errors": "error",
"prefer-spread": "error",
radix: "error",
"wrap-iife": ["error", "any"],
yoda: ["error", "never", { exceptRange: true }],
@ -318,11 +280,6 @@ export default [
"BinaryExpression[operator='instanceof'][right.name='Object']",
message: "Use `typeof` rather than `instanceof Object`.",
},
{
selector: "MemberExpression[property.name='hasOwnProperty']",
message:
"Use `Object.hasOwn` rather than `Object.prototype.hasOwnProperty`.",
},
{
selector: "CallExpression[callee.name='assert'][arguments.length!=2]",
message: "`assert()` must always be invoked with two arguments.",

View File

@ -40,8 +40,6 @@ const SANDBOX_BUNDLE_SRC = new URL(
window.location
);
const WASM_URL = "../../node_modules/pdfjs-dist/build/wasm/";
const container = document.getElementById("viewerContainer");
const eventBus = new pdfjsViewer.EventBus();
@ -61,7 +59,6 @@ const pdfFindController = new pdfjsViewer.PDFFindController({
const pdfScriptingManager = new pdfjsViewer.PDFScriptingManager({
eventBus,
sandboxBundleSrc: SANDBOX_BUNDLE_SRC,
wasmUrl: WASM_URL,
});
const pdfViewer = new pdfjsViewer.PDFViewer({

View File

@ -40,8 +40,6 @@ const SANDBOX_BUNDLE_SRC = new URL(
window.location
);
const WASM_URL = "../../node_modules/pdfjs-dist/build/wasm/";
const container = document.getElementById("viewerContainer");
const eventBus = new pdfjsViewer.EventBus();
@ -61,7 +59,6 @@ const pdfFindController = new pdfjsViewer.PDFFindController({
const pdfScriptingManager = new pdfjsViewer.PDFScriptingManager({
eventBus,
sandboxBundleSrc: SANDBOX_BUNDLE_SRC,
wasmUrl: WASM_URL,
});
const pdfSinglePageViewer = new pdfjsViewer.PDFSinglePageViewer({

View File

@ -29,7 +29,7 @@ const response = await fetch(JPEG_IMAGE);
if (!response.ok) {
throw new Error(response.statusText);
}
const typedArrayImage = await response.bytes();
const typedArrayImage = new Uint8Array(await response.arrayBuffer());
// Parse the image data using `JpegImage`.
//
@ -48,7 +48,7 @@ const jpegData = jpegImage.getData({
//
const imageData = jpegCtx.createImageData(width, height);
const imageBytes = imageData.data;
for (let j = 0, k = 0, jj = width * height * 4; j < jj;) {
for (let j = 0, k = 0, jj = width * height * 4; j < jj; ) {
imageBytes[j++] = jpegData[k++];
imageBytes[j++] = jpegData[k++];
imageBytes[j++] = jpegData[k++];

View File

@ -26,7 +26,7 @@
//
// Asynchronous download PDF
//
const loadingTask = pdfjsLib.getDocument({ url });
const loadingTask = pdfjsLib.getDocument(url);
const pdf = await loadingTask.promise;
//
// Fetch the first page

View File

@ -123,7 +123,7 @@
/**
* Asynchronously downloads PDF.
*/
var loadingTask = pdfjsLib.getDocument({ url });
var loadingTask = pdfjsLib.getDocument(url);
pdfDoc = await loadingTask.promise;
document.getElementById("page_count").textContent = pdfDoc.numPages;

View File

@ -46,13 +46,19 @@ const PDFViewerApplication = {
* @returns {Promise} - Returns the promise, which is resolved when document
* is opened.
*/
async open(params) {
open(params) {
if (this.pdfLoadingTask) {
// We need to destroy already opened document.
await this.close();
// We need to destroy already opened document
return this.close().then(
function () {
// ... and repeat the open() call.
return this.open(params);
}.bind(this)
);
}
const { url } = params;
const url = params.url;
const self = this;
this.setTitleUsingUrl(url);
// Loading document.
@ -64,22 +70,24 @@ const PDFViewerApplication = {
});
this.pdfLoadingTask = loadingTask;
loadingTask.onProgress = evt => this.progress(evt.percent);
loadingTask.onProgress = function (progressData) {
self.progress(progressData.loaded / progressData.total);
};
return loadingTask.promise.then(
pdfDocument => {
function (pdfDocument) {
// Document loaded, specifying document for the viewer.
this.pdfDocument = pdfDocument;
this.pdfViewer.setDocument(pdfDocument);
this.pdfLinkService.setDocument(pdfDocument);
this.pdfHistory.initialize({
self.pdfDocument = pdfDocument;
self.pdfViewer.setDocument(pdfDocument);
self.pdfLinkService.setDocument(pdfDocument);
self.pdfHistory.initialize({
fingerprint: pdfDocument.fingerprints[0],
});
this.loadingBar.hide();
this.setTitleUsingMetadata(pdfDocument);
self.loadingBar.hide();
self.setTitleUsingMetadata(pdfDocument);
},
reason => {
function (reason) {
let key = "pdfjs-loading-error";
if (reason instanceof pdfjsLib.InvalidPDFException) {
key = "pdfjs-invalid-file-error";
@ -88,10 +96,10 @@ const PDFViewerApplication = {
? "pdfjs-missing-file-error"
: "pdfjs-unexpected-response-error";
}
this.l10n.get(key).then(msg => {
this.error(msg, { message: reason.message });
self.l10n.get(key).then(msg => {
self.error(msg, { message: reason?.message });
});
this.loadingBar.hide();
self.loadingBar.hide();
}
);
},
@ -101,9 +109,9 @@ const PDFViewerApplication = {
* @returns {Promise} - Returns the promise, which is resolved when all
* destruction is completed.
*/
async close() {
close() {
if (!this.pdfLoadingTask) {
return;
return Promise.resolve();
}
const promise = this.pdfLoadingTask.destroy();
@ -120,7 +128,7 @@ const PDFViewerApplication = {
}
}
await promise;
return promise;
},
get loadingBar() {
@ -144,33 +152,48 @@ const PDFViewerApplication = {
this.setTitle(title);
},
async setTitleUsingMetadata(pdfDocument) {
const { info, metadata } = await pdfDocument.getMetadata();
this.documentInfo = info;
this.metadata = metadata;
setTitleUsingMetadata(pdfDocument) {
const self = this;
pdfDocument.getMetadata().then(function (data) {
const info = data.info,
metadata = data.metadata;
self.documentInfo = info;
self.metadata = metadata;
// Provides some basic debug information
console.log(
`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` +
`${(metadata?.get("pdf:producer") || info.Producer || "-").trim()} / ` +
`${(metadata?.get("xmp:creatortool") || info.Creator || "-").trim()}` +
`] (PDF.js: ${pdfjsLib.version || "?"} [${pdfjsLib.build || "?"}])`
);
// Provides some basic debug information
console.log(
"PDF " +
pdfDocument.fingerprints[0] +
" [" +
info.PDFFormatVersion +
" " +
(info.Producer || "-").trim() +
" / " +
(info.Creator || "-").trim() +
"]" +
" (PDF.js: " +
(pdfjsLib.version || "-") +
")"
);
let pdfTitle;
if (metadata?.has("dc:title")) {
const title = metadata.get("dc:title");
// Ghostscript sometimes returns 'Untitled', so prevent setting the
// title to 'Untitled.
if (title !== "Untitled") {
pdfTitle = title;
let pdfTitle;
if (metadata && metadata.has("dc:title")) {
const title = metadata.get("dc:title");
// Ghostscript sometimes returns 'Untitled', so prevent setting the
// title to 'Untitled.
if (title !== "Untitled") {
pdfTitle = title;
}
}
}
pdfTitle ||= info?.Title;
if (pdfTitle) {
this.setTitle(pdfTitle + " - " + document.title);
}
if (!pdfTitle && info && info.Title) {
pdfTitle = info.Title;
}
if (pdfTitle) {
self.setTitle(pdfTitle + " - " + document.title);
}
});
},
setTitle: function pdfViewSetTitle(title) {
@ -200,7 +223,8 @@ const PDFViewerApplication = {
console.error(`${message}\n\n${moreInfoText.join("\n")}`);
},
progress(percent) {
progress: function pdfViewProgress(level) {
const percent = Math.round(level * 100);
// Updating the bar if value increases.
if (percent > this.loadingBar.percent || isNaN(percent)) {
this.loadingBar.percent = percent;

View File

@ -14,7 +14,7 @@ const pdfPath =
// Will be using promises to load document, pages and misc data instead of
// callback.
const loadingTask = getDocument({ url: pdfPath });
const loadingTask = getDocument(pdfPath);
loadingTask.promise
.then(function (doc) {
const numPages = doc.numPages;

View File

@ -45,7 +45,7 @@ function watchObjectOrEmbed(elem) {
// <embed src> <object data>
var srcAttribute = "src" in elem ? "src" : "data";
var path = elem[srcAttribute];
if (!mimeType && !/\.pdf(?:$|[?#])/i.test(path)) {
if (!mimeType && !/\.pdf($|[?#])/i.test(path)) {
return;
}

View File

@ -168,7 +168,7 @@ function renderEnumPref(shortDescription, prefName) {
var select = wrapper.querySelector("select");
select.onchange = function () {
var pref = {};
pref[prefName] = parseInt(this.value, 10);
pref[prefName] = parseInt(this.value);
storageArea.set(pref);
};
wrapper.querySelector("span").textContent = shortDescription;
@ -192,7 +192,7 @@ function renderDefaultZoomValue(shortDescription) {
document.getElementById("settings-boxes").append(wrapper);
function renderPreference(value) {
value ||= "auto";
value = value || "auto";
select.value = value;
var customOption = select.querySelector("option.custom-zoom");
if (select.selectedIndex === -1 && value) {

View File

@ -0,0 +1,252 @@
{
"type": "object",
"properties": {
"viewerCssTheme": {
"title": "Theme",
"description": "The theme to use.\n0 = Use system theme.\n1 = Light theme.\n2 = Dark theme.",
"type": "integer",
"enum": [0, 1, 2],
"default": 2
},
"showPreviousViewOnLoad": {
"description": "DEPRECATED. Set viewOnLoad to 1 to disable showing the last page/position on load.",
"type": "boolean",
"default": true
},
"viewOnLoad": {
"title": "View position on load",
"description": "The position in the document upon load.\n -1 = Default (uses OpenAction if available, otherwise equal to `viewOnLoad = 0`).\n 0 = The last viewed page/position.\n 1 = The initial page/position.",
"type": "integer",
"enum": [-1, 0, 1],
"default": 0
},
"defaultZoomDelay": {
"title": "Default zoom delay",
"description": "Delay (in ms) to wait before redrawing the canvas.",
"type": "integer",
"default": 400
},
"defaultZoomValue": {
"title": "Default zoom level",
"description": "Default zoom level of the viewer. Accepted values: 'auto', 'page-actual', 'page-width', 'page-height', 'page-fit', or a zoom level in percents.",
"type": "string",
"pattern": "|auto|page-actual|page-width|page-height|page-fit|[0-9]+\\.?[0-9]*(,[0-9]+\\.?[0-9]*){0,2}",
"default": ""
},
"sidebarViewOnLoad": {
"title": "Sidebar state on load",
"description": "Controls the state of the sidebar upon load.\n -1 = Default (uses PageMode if available, otherwise the last position if available/enabled).\n 0 = Do not show sidebar.\n 1 = Show thumbnails in sidebar.\n 2 = Show document outline in sidebar.\n 3 = Show attachments in sidebar.",
"type": "integer",
"enum": [-1, 0, 1, 2, 3],
"default": -1
},
"enableHandToolOnLoad": {
"description": "DEPRECATED. Set cursorToolOnLoad to 1 to enable the hand tool by default.",
"type": "boolean",
"default": false
},
"enableHWA": {
"title": "Enable hardware acceleration",
"description": "Whether to enable hardware acceleration.",
"type": "boolean",
"default": true
},
"enableAltText": {
"type": "boolean",
"default": false
},
"enableGuessAltText": {
"type": "boolean",
"default": true
},
"enableAltTextModelDownload": {
"type": "boolean",
"default": true
},
"enableNewAltTextWhenAddingImage": {
"type": "boolean",
"default": true
},
"altTextLearnMoreUrl": {
"type": "string",
"default": ""
},
"commentLearnMoreUrl": {
"type": "string",
"default": ""
},
"enableSignatureEditor": {
"type": "boolean",
"default": false
},
"enableUpdatedAddImage": {
"type": "boolean",
"default": false
},
"cursorToolOnLoad": {
"title": "Cursor tool on load",
"description": "The cursor tool that is enabled upon load.\n 0 = Text selection tool.\n 1 = Hand tool.",
"type": "integer",
"enum": [0, 1],
"default": 0
},
"pdfBugEnabled": {
"title": "Enable debugging tools",
"description": "Whether to enable debugging tools.",
"type": "boolean",
"default": false
},
"enableScripting": {
"title": "Enable active content (JavaScript) in PDFs",
"type": "boolean",
"description": "Whether to allow execution of active content (JavaScript) by PDF files.",
"default": false
},
"enableHighlightFloatingButton": {
"type": "boolean",
"default": false
},
"highlightEditorColors": {
"type": "string",
"default": "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F,yellow_HCM=#FFFFCC,green_HCM=#53FFBC,blue_HCM=#80EBFF,pink_HCM=#F6B8FF,red_HCM=#C50043"
},
"disableRange": {
"title": "Disable range requests",
"description": "Whether to disable range requests (not recommended).",
"type": "boolean",
"default": false
},
"disableStream": {
"title": "Disable streaming for requests",
"description": "Whether to disable streaming for requests (not recommended).",
"type": "boolean",
"default": false
},
"disableAutoFetch": {
"type": "boolean",
"default": false
},
"disableFontFace": {
"title": "Disable @font-face",
"description": "Whether to disable @font-face and fall back to canvas rendering (this is more resource-intensive).",
"type": "boolean",
"default": false
},
"disableTextLayer": {
"description": "DEPRECATED. Set textLayerMode to 0 to disable the text selection layer by default.",
"type": "boolean",
"default": false
},
"textLayerMode": {
"title": "Text layer mode",
"description": "Controls if the text layer is enabled, and the selection mode that is used.\n 0 = Disabled.\n 1 = Enabled.",
"type": "integer",
"enum": [0, 1],
"default": 1
},
"externalLinkTarget": {
"title": "External links target window",
"description": "Controls how external links will be opened.\n 0 = default.\n 1 = replaces current window.\n 2 = new window/tab.\n 3 = parent.\n 4 = in top window.",
"type": "integer",
"enum": [0, 1, 2, 3, 4],
"default": 0
},
"disablePageLabels": {
"type": "boolean",
"default": false
},
"disablePageMode": {
"description": "DEPRECATED.",
"type": "boolean",
"default": false
},
"disableTelemetry": {
"title": "Disable telemetry",
"type": "boolean",
"description": "Whether to prevent the extension from reporting the extension and browser version to the extension developers.",
"default": false
},
"annotationMode": {
"type": "integer",
"enum": [0, 1, 2, 3],
"default": 2
},
"annotationEditorMode": {
"type": "integer",
"enum": [-1, 0, 3, 15],
"default": 0
},
"capCanvasAreaFactor": {
"type": "integer",
"default": 200
},
"enablePermissions": {
"type": "boolean",
"default": false
},
"enableXfa": {
"type": "boolean",
"default": true
},
"historyUpdateUrl": {
"type": "boolean",
"default": false
},
"ignoreDestinationZoom": {
"title": "Ignore the zoom argument in destinations",
"description": "When enabled it will maintain the currently active zoom level, rather than letting the PDF document modify it, when navigating to internal destinations.",
"type": "boolean",
"default": false
},
"enablePrintAutoRotate": {
"title": "Automatically rotate printed pages",
"description": "When enabled, landscape pages are rotated when printed.",
"type": "boolean",
"default": true
},
"scrollModeOnLoad": {
"title": "Scroll mode on load",
"description": "Controls how the viewer scrolls upon load.\n -1 = Default (uses the last position if available/enabled).\n 3 = Page scrolling.\n 0 = Vertical scrolling.\n 1 = Horizontal scrolling.\n 2 = Wrapped scrolling.",
"type": "integer",
"enum": [-1, 0, 1, 2, 3],
"default": -1
},
"spreadModeOnLoad": {
"title": "Spread mode on load",
"description": "Whether the viewer should join pages into spreads upon load.\n -1 = Default (uses the last position if available/enabled).\n 0 = No spreads.\n 1 = Odd spreads.\n 2 = Even spreads.",
"type": "integer",
"enum": [-1, 0, 1, 2],
"default": -1
},
"forcePageColors": {
"description": "When enabled, the pdf rendering will use the high contrast mode colors",
"type": "boolean",
"default": false
},
"pageColorsBackground": {
"description": "The color is a string as defined in CSS. Its goal is to help improve readability in high contrast mode",
"type": "string",
"default": "Canvas"
},
"pageColorsForeground": {
"description": "The color is a string as defined in CSS. Its goal is to help improve readability in high contrast mode",
"type": "string",
"default": "CanvasText"
},
"enableAutoLinking": {
"description": "Enable creation of hyperlinks from text that look like URLs.",
"type": "boolean",
"default": true
},
"enableComment": {
"description": "Enable creation of comment annotations.",
"type": "boolean",
"default": false
},
"enableOptimizedPartialRendering": {
"description": "Enable tracking of PDF operations to optimize partial rendering.",
"type": "boolean",
"default": false
}
}
}

View File

@ -96,7 +96,7 @@ limitations under the License.
chrome.storage.local.get(localStorage, items => {
Object.assign(localStorage, items);
var lastTime = parseInt(localStorage.telemetryLastTime, 10) || 0;
var lastTime = parseInt(localStorage.telemetryLastTime) || 0;
var wasUpdated = didUpdateSinceLastCheck();
if (!wasUpdated && Date.now() - lastTime < MINIMUM_TIME_BETWEEN_PING) {
return;
@ -150,7 +150,7 @@ limitations under the License.
*/
function didUpdateSinceLastCheck() {
var chromeVersion = /Chrome\/(\d+)\./.exec(navigator.userAgent);
chromeVersion &&= chromeVersion[1];
chromeVersion = chromeVersion && chromeVersion[1];
if (!chromeVersion || localStorage.telemetryLastVersion === chromeVersion) {
return false;
}

View File

@ -1,19 +0,0 @@
Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@ -1,8 +0,0 @@
## Release
In order to get the file `decoder.js`:
* `gulp release-brotli --hash` followed by the git hash of the revision.
## Licensing
[brotli](https://github.com/google/brotli/) is under [MIT License](https://github.com/google/brotli/blob/master/LICENSE)

File diff suppressed because one or more lines are too long

View File

@ -190,19 +190,6 @@ function babelPluginPDFJSPreprocessor(babel, ctx) {
},
];
path.replaceWith(t.importExpression(source));
} else if (t.isIdentifier(node.callee, { name: "__eager_import__" })) {
if (node.arguments.length !== 1) {
throw new Error("Invalid `__eager_import__` usage.");
}
// Replace it with a standard `import`-call and inline the module.
const source = node.arguments[0];
source.leadingComments = [
{
type: "CommentBlock",
value: "webpackMode: 'eager'",
},
];
path.replaceWith(t.importExpression(source));
}
},
"BlockStatement|StaticBlock": {
@ -305,30 +292,6 @@ function babelPluginPDFJSPreprocessor(babel, ctx) {
};
}
function babelPluginStripSrcPath() {
return {
name: "babel-plugin-strip-src-path",
visitor: {
"ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration":
function ({ node }) {
if (node.source?.value.includes("/src/")) {
node.source.value = node.source.value.replace("/src/", "/");
}
},
},
};
}
function babelPluginAddHeaderComment(babel, { header }) {
return {
visitor: {
Program(path) {
path.addComment("leading", header);
},
},
};
}
function preprocessPDFJSCode(ctx, content) {
return transformSync(content, {
configFile: false,
@ -336,9 +299,4 @@ function preprocessPDFJSCode(ctx, content) {
}).code;
}
export {
babelPluginAddHeaderComment,
babelPluginPDFJSPreprocessor,
babelPluginStripSrcPath,
preprocessPDFJSCode,
};
export { babelPluginPDFJSPreprocessor, preprocessPDFJSCode };

View File

@ -132,7 +132,7 @@ function preprocess(inFilename, outFilename, defines) {
}
}
function expand(line) {
line = line.replaceAll(/__\w+__/g, function (variable) {
line = line.replaceAll(/__[\w]+__/g, function (variable) {
variable = variable.substring(2, variable.length - 2);
if (variable in defines) {
return defines[variable];
@ -158,7 +158,6 @@ function preprocess(inFilename, outFilename, defines) {
let state = STATE_NONE;
const stack = [];
const control =
// eslint-disable-next-line regexp/no-super-linear-backtracking
/^(?:\/\/|\s*\/\*|\s*<!--)\s*#(if|elif|else|endif|expand|include|error)\b(?:\s+(.*?)(?:\*\/|-->)?$)?/;
while ((line = readLine()) !== null) {

View File

@ -1,40 +0,0 @@
/* Copyright 2026 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const COVERAGE_FORMAT_TO_REPORTER = {
info: "lcovonly",
html: "html",
json: "json",
text: "text",
cobertura: "cobertura",
clover: "clover",
};
function parseCoverageFormats(str) {
const formats = new Set();
for (const fmt of (str ?? "").split(",")) {
const name = fmt.trim();
if (name && COVERAGE_FORMAT_TO_REPORTER[name]) {
formats.add(name);
} else if (name) {
console.warn(
`### Unknown coverage format "${name}", valid values: ${Object.keys(COVERAGE_FORMAT_TO_REPORTER).join(", ")}`
);
}
}
return formats.size > 0 ? formats : new Set(["info"]);
}
export { COVERAGE_FORMAT_TO_REPORTER, parseCoverageFormats };

View File

@ -1,110 +0,0 @@
/* Copyright 2026 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import fs from "fs";
import { parseArgs } from "node:util";
import path from "path";
const __dirname = import.meta.dirname;
const PROJECT_ROOT = path.join(__dirname, "../..");
const { values } = parseArgs({
args: process.argv.slice(2),
options: {
code: { type: "string" },
"coverage-dir": { type: "string", default: "build/coverage" },
help: { type: "boolean", short: "h", default: false },
},
});
if (values.help || !values.code) {
console.log(
"Usage: coverage_search.mjs --code=<file>::<line|function> [--coverage-dir=<path>]\n\n" +
" --code Source file and line number or function name to search for.\n" +
" Examples:\n" +
" --code=canvas.js::205\n" +
" --code=canvas.js::drawImageAtIntegerCoords\n" +
" --coverage-dir Coverage directory containing per-test-index.json [build/coverage]\n\n" +
"Prints to stdout the IDs of tests whose coverage includes the given line or\n" +
"function (one ID per line).\n" +
"Run browsertest with --coverage-per-test first to generate the index."
);
process.exit(values.help ? 0 : 1);
}
const sep = values.code.indexOf("::");
if (sep === -1) {
console.error(
"Error: --code must be in format 'file.js::line_or_function', e.g. canvas.js::205"
);
process.exit(1);
}
const fileName = values.code.slice(0, sep);
const location = values.code.slice(sep + 2);
const isLine = /^\d+$/.test(location);
const lineNum = isLine ? parseInt(location, 10) : null;
const funcName = isLine ? null : location;
const coverageDir = path.isAbsolute(values["coverage-dir"])
? values["coverage-dir"]
: path.join(PROJECT_ROOT, values["coverage-dir"]);
const indexPath = path.join(coverageDir, "per-test-index.json");
if (!fs.existsSync(indexPath)) {
console.error(`Error: index file not found: ${indexPath}`);
console.error("Run browsertest with --coverage-per-test first.");
process.exit(1);
}
const { ids, files } = JSON.parse(fs.readFileSync(indexPath, "utf8"));
// Find the file entry whose path matches fileName.
let fileEntry = null;
for (const [filePath, entry] of Object.entries(files)) {
if (
filePath === fileName ||
filePath.endsWith(`/${fileName}`) ||
filePath.endsWith(`\\${fileName}`)
) {
fileEntry = entry;
break;
}
}
if (!fileEntry) {
process.exit(0);
}
let testIndices = null;
if (lineNum !== null) {
// Direct line lookup.
testIndices = fileEntry.l?.[lineNum];
// If no hit, check whether lineNum is a function declaration start and
// redirect to that function's coverage.
if (!testIndices && fileEntry.fstarts?.[lineNum]) {
testIndices = fileEntry.f?.[fileEntry.fstarts[lineNum]];
}
} else {
testIndices = fileEntry.f?.[funcName];
}
if (testIndices) {
for (const idx of testIndices) {
console.log(ids[idx]);
}
}

View File

@ -1,190 +0,0 @@
#!/usr/bin/env node
/* Copyright 2026 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Checks that every message ID defined in l10n/en-US/viewer.ftl is referenced
* in at least one HTML or JS/MJS file under the web/ directory.
*
* Usage: node external/check_l10n/check_l10n.mjs
*/
import { extname, join } from "path";
import { readdirSync, readFileSync, statSync } from "fs";
const ROOT = join(import.meta.dirname, "..", "..");
const FTL_PATH = join(ROOT, "l10n", "en-US", "viewer.ftl");
const SEARCH_DIRS = ["web", "src"];
const SEARCH_EXTENSIONS = new Set([".html", ".js", ".mjs"]);
// Minimum number of characters a prefix or suffix fragment must have to be
// considered a meaningful match when detecting dynamically-built IDs.
const MIN_FRAGMENT_LENGTH = 6;
/**
* Extract all message IDs from a Fluent (.ftl) file.
* A message ID is an identifier at the start of a line followed by " =".
* @param {string} ftlPath - Absolute path to the .ftl file.
* @returns {string[]} Ordered list of message IDs.
*/
function extractFtlIds(ftlPath) {
const lines = readFileSync(ftlPath, "utf8").split("\n");
const ids = [];
for (const line of lines) {
const match = line.match(/^([a-z][a-z0-9-]*)\s*=/i);
if (match) {
ids.push(match[1]);
}
}
return ids;
}
/**
* Recursively collect all files with matching extensions under a directory.
* @param {string} dir - Directory to walk.
* @param {Set<string>} extensions - Allowed file extensions (e.g. `".js"`).
* @returns {string[]} Absolute paths of matching files.
*/
function collectFiles(dir, extensions) {
const results = [];
for (const entry of readdirSync(dir)) {
const fullPath = join(dir, entry);
const stat = statSync(fullPath);
if (stat.isDirectory()) {
results.push(...collectFiles(fullPath, extensions));
} else if (extensions.has(extname(entry))) {
results.push(fullPath);
}
}
return results;
}
/**
* Load the contents of all source files found under the given directories.
* @param {string[]} dirs - Directory names relative to ROOT.
* @param {Set<string>} extensions - Allowed file extensions.
* @returns {{ path: string, content: string }[]}
*/
function loadSources(dirs, extensions) {
const files = dirs.flatMap(d => collectFiles(join(ROOT, d), extensions));
return files.map(f => ({ path: f, content: readFileSync(f, "utf8") }));
}
/**
* Check whether a message ID appears as a quoted string literal in any source
* file. Handles double quotes, single quotes, and backticks, covering:
* - `data-l10n-id="pdfjs-foo"` (HTML attribute)
* - `"pdfjs-foo"` / `'pdfjs-foo'` / `` `pdfjs-foo` `` (JS string literals,
* `setAttribute`, `l10n.get`, )
* @param {string} id - Message ID to look up.
* @param {{ path: string, content: string }[]} sources
* @returns {boolean}
*/
function isUsed(id, sources) {
const dq = `"${id}"`;
const sq = `'${id}'`;
const bt = `\`${id}\``;
return sources.some(
({ content }) =>
content.includes(dq) || content.includes(sq) || content.includes(bt)
);
}
/**
* For IDs not found as complete literals, check whether the ID is likely
* constructed dynamically via a template literal such as:
* `pdfjs-editor-${editorType}-added-alert`
*
* Strategy: try every (prefix, suffix) pair obtained by splitting the ID's
* dash-separated components, leaving one or more components as the "variable"
* gap. The prefix must appear immediately followed by `${` in a template
* literal; the suffix (if non-empty) must also appear in the same file.
* Minimum length guards prevent matches on trivially short fragments.
*
* @param {string} id - Message ID to test.
* @param {{ path: string, content: string }[]} sources
* @returns {{ path: string, line: number } | null} Location of the first
* matching template literal, or `null` if none found.
*/
function findDynamicLocation(id, sources) {
const parts = id.split("-");
// i = end of prefix (exclusive), j = start of suffix (inclusive)
for (let i = 1; i < parts.length; i++) {
for (let j = i + 1; j <= parts.length; j++) {
const prefix = parts.slice(0, i).join("-") + "-"; // e.g. "pdfjs-editor-"
const suffix = j < parts.length ? "-" + parts.slice(j).join("-") : ""; // e.g. "-added-alert"
if (prefix.length < MIN_FRAGMENT_LENGTH) {
continue;
}
if (suffix !== "" && suffix.length < MIN_FRAGMENT_LENGTH) {
continue;
}
// The prefix must be immediately followed by "${" in a template literal.
const prefixWithVar = prefix + "${";
for (const { path, content } of sources) {
if (
content.includes(prefixWithVar) &&
(suffix === "" || content.includes(suffix))
) {
const idx = content.indexOf(prefixWithVar);
const line = content.slice(0, idx).split("\n").length;
return { path, line };
}
}
}
}
return null;
}
function main() {
const ids = extractFtlIds(FTL_PATH);
console.log(`Found ${ids.length} message IDs in viewer.ftl\n`);
const sources = loadSources(SEARCH_DIRS, SEARCH_EXTENSIONS);
console.log(
`Searching in ${sources.length} files under: ${SEARCH_DIRS.join(", ")}\n`
);
const notFound = ids.filter(id => !isUsed(id, sources));
const dynamicEntries = notFound
.map(id => ({ id, loc: findDynamicLocation(id, sources) }))
.filter(({ loc }) => loc !== null);
const dynamicIds = new Set(dynamicEntries.map(({ id }) => id));
const unused = notFound.filter(id => !dynamicIds.has(id));
if (dynamicEntries.length > 0) {
console.log(
`~ ${dynamicEntries.length} ID(s) likely built dynamically (template literals):\n`
);
for (const { id, loc } of dynamicEntries) {
const rel = loc.path.replace(ROOT + "/", "").replace(ROOT + "\\", "");
console.log(` ${id}`);
console.log(`${rel}:${loc.line}`);
}
console.log();
}
if (unused.length === 0) {
console.log("✓ All remaining message IDs are used.");
} else {
console.log(`${unused.length} unused message ID(s):\n`);
for (const id of unused) {
console.log(` ${id}`);
}
process.exitCode = 1;
}
}
main();

View File

@ -1,270 +0,0 @@
/* Copyright 2026 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const prefsMetadata = {
annotationEditorMode: {
enum: [-1, 0, 3, 15],
},
annotationMode: {
enum: [0, 1, 2, 3],
},
cursorToolOnLoad: {
title: "Cursor tool on load",
description:
"The cursor tool that is enabled upon load.\n 0 = Text selection tool.\n 1 = Hand tool.",
enum: [0, 1],
},
defaultZoomDelay: {
title: "Default zoom delay",
description: "Delay (in ms) to wait before redrawing the canvas.",
},
defaultZoomValue: {
title: "Default zoom level",
description:
"Default zoom level of the viewer. Accepted values: 'auto', 'page-actual', 'page-width', 'page-height', 'page-fit', or a zoom level in percents.",
pattern:
"|auto|page-actual|page-width|page-height|page-fit|[0-9]+\\.?[0-9]*(,[0-9]+\\.?[0-9]*){0,2}",
},
disableFontFace: {
title: "Disable @font-face",
description:
"Whether to disable @font-face and fall back to canvas rendering (this is more resource-intensive).",
},
disableRange: {
title: "Disable range requests",
description: "Whether to disable range requests (not recommended).",
},
disableStream: {
title: "Disable streaming for requests",
description: "Whether to disable streaming for requests (not recommended).",
},
disableTelemetry: {
title: "Disable telemetry",
description:
"Whether to prevent the extension from reporting the extension and browser version to the extension developers.",
},
enableAutoLinking: {
description: "Enable creation of hyperlinks from text that look like URLs.",
},
enableComment: {
description: "Enable creation of comment annotations.",
},
enableHWA: {
title: "Enable hardware acceleration",
description: "Whether to enable hardware acceleration.",
},
enableOptimizedPartialRendering: {
description:
"Enable tracking of PDF operations to optimize partial rendering.",
},
enablePrintAutoRotate: {
title: "Automatically rotate printed pages",
description: "When enabled, landscape pages are rotated when printed.",
},
enableScripting: {
title: "Enable active content (JavaScript) in PDFs",
description:
"Whether to allow execution of active content (JavaScript) by PDF files.",
},
externalLinkTarget: {
title: "External links target window",
description:
"Controls how external links will be opened.\n 0 = default.\n 1 = replaces current window.\n 2 = new window/tab.\n 3 = parent.\n 4 = in top window.",
enum: [0, 1, 2, 3, 4],
},
forcePageColors: {
description:
"When enabled, the pdf rendering will use the high contrast mode colors",
},
ignoreDestinationZoom: {
title: "Ignore the zoom argument in destinations",
description:
"When enabled it will maintain the currently active zoom level, rather than letting the PDF document modify it, when navigating to internal destinations.",
},
pageColorsBackground: {
description:
"The color is a string as defined in CSS. Its goal is to help improve readability in high contrast mode",
},
pageColorsForeground: {
description:
"The color is a string as defined in CSS. Its goal is to help improve readability in high contrast mode",
},
pdfBugEnabled: {
title: "Enable debugging tools",
description: "Whether to enable debugging tools.",
},
scrollModeOnLoad: {
title: "Scroll mode on load",
description:
"Controls how the viewer scrolls upon load.\n -1 = Default (uses the last position if available/enabled).\n 0 = Vertical scrolling.\n 1 = Horizontal scrolling.\n 2 = Wrapped scrolling.\n 3 = Page scrolling.",
enum: [-1, 0, 1, 2, 3],
},
sidebarViewOnLoad: {
title: "Sidebar state on load",
description:
"Controls the state of the sidebar upon load.\n -1 = Default (uses PageMode if available, otherwise the last position if available/enabled).\n 0 = Do not show sidebar.\n 1 = Show thumbnails in sidebar.\n 2 = Show document outline in sidebar.\n 3 = Show attachments in sidebar.",
enum: [-1, 0, 1, 2, 3],
},
spreadModeOnLoad: {
title: "Spread mode on load",
description:
"Whether the viewer should join pages into spreads upon load.\n -1 = Default (uses the last position if available/enabled).\n 0 = No spreads.\n 1 = Odd spreads.\n 2 = Even spreads.",
enum: [-1, 0, 1, 2],
},
textLayerMode: {
title: "Text layer mode",
description:
"Controls if the text layer is enabled, and the selection mode that is used.\n 0 = Disabled.\n 1 = Enabled.",
enum: [0, 1],
},
viewerCssTheme: {
title: "Theme",
description:
"The theme to use.\n0 = Use system theme.\n1 = Light theme.\n2 = Dark theme.",
enum: [0, 1, 2],
},
viewOnLoad: {
title: "View position on load",
description:
"The position in the document upon load.\n -1 = Default (uses OpenAction if available, otherwise equal to `viewOnLoad = 0`).\n 0 = The last viewed page/position.\n 1 = The initial page/position.",
enum: [-1, 0, 1],
},
};
// Deprecated keys are allowed in the managed preferences file.
// The code maintainer is responsible for adding migration logic to
// extensions/chromium/options/migration.js and web/chromecom.js .
const deprecatedPrefs = {
disablePageMode: {
description: "DEPRECATED.",
type: "boolean",
default: false,
},
disableTextLayer: {
description:
"DEPRECATED. Set textLayerMode to 0 to disable the text selection layer by default.",
type: "boolean",
default: false,
},
enableHandToolOnLoad: {
description:
"DEPRECATED. Set cursorToolOnLoad to 1 to enable the hand tool by default.",
type: "boolean",
default: false,
},
showPreviousViewOnLoad: {
description:
"DEPRECATED. Set viewOnLoad to 1 to disable showing the last page/position on load.",
type: "boolean",
default: true,
},
};
function buildPrefsSchema(prefs) {
const properties = Object.create(null);
for (const name in prefs) {
const pref = prefs[name];
let type = typeof pref;
switch (type) {
case "boolean":
case "string":
break;
case "number":
type = "integer";
break;
default:
throw new Error(`Invalid type (${type}) for "${name}"-preference.`);
}
const metadata = prefsMetadata[name];
if (metadata) {
let numMetadataKeys = 0;
// Do some (very basic) validation of the metadata.
for (const key in metadata) {
const entry = metadata[key];
switch (key) {
case "default":
case "type":
throw new Error(
`Invalid key (${key}) in metadata for "${name}"-preference.`
);
case "description":
if (entry.startsWith("DEPRECATED.")) {
throw new Error(
`The \`description\` of the "${name}"-preference cannot begin with "DEPRECATED."`
);
}
break;
}
numMetadataKeys++;
}
if (numMetadataKeys === 0) {
throw new Error(
`No metadata for "${name}"-preference, remove the entry.`
);
}
}
properties[name] = {
type,
default: pref,
...metadata,
};
}
for (const name in prefsMetadata) {
if (!properties[name]) {
// Do *not* throw here, since keeping the metadata up-to-date should be
// the responsibility of the CHROMIUM-addon maintainer.
console.error(
`The "${name}"-preference was removed, add it to \`deprecatedPrefs\` instead.\n`
);
}
}
for (const name in deprecatedPrefs) {
const entry = deprecatedPrefs[name];
if (properties[name]) {
throw new Error(
`The "${name}"-preference should not be listed as deprecated.`
);
}
if (!entry.description?.startsWith("DEPRECATED.")) {
throw new Error(
`The \`description\` of the deprecated "${name}"-preference must begin with "DEPRECATED."`
);
}
for (const key of ["default", "type"]) {
if (key in entry) {
continue;
}
throw new Error(
`A \`${key}\` entry must be provided for the deprecated "${name}"-preference.`
);
}
properties[name] = entry;
}
return {
type: "object",
properties,
};
}
export { buildPrefsSchema };

View File

@ -14,7 +14,7 @@
*/
function parseAdobeCMap(content) {
let m = /(\bbegincmap\b[\s\S]+?)\bendcmap\b/.exec(content);
let m = /(\bbegincmap\b[\s\S]*?)\bendcmap\b/.exec(content);
if (!m) {
throw new Error("cmap was not found");
}
@ -37,7 +37,7 @@ function parseAdobeCMap(content) {
result.usecmap = m[1];
}
const re =
/(\d+)\s+(begincodespacerange|beginnotdefrange|begincidchar|begincidrange|beginbfchar|beginbfrange)\n([\s\S]*?)\n(?:endcodespacerange|endnotdefrange|endcidchar|endcidrange|endbfchar|endbfrange)/g;
/(\d+)\s+(begincodespacerange|beginnotdefrange|begincidchar|begincidrange|beginbfchar|beginbfrange)\n([\s\S]*?)\n(endcodespacerange|endnotdefrange|endcidchar|endcidrange|endbfchar|endbfrange)/g;
while ((m = re.exec(body))) {
const lines = m[3].toLowerCase().split("\n");

View File

@ -1,118 +0,0 @@
/**
* ESLint rule to prefer `MathClamp(v, min, max)` over nested
* `Math.min(Math.max(...), ...)` / `Math.max(Math.min(...), ...)` patterns.
*
* Detected patterns and their fixes:
* Math.min(Math.max(A, B), C) MathClamp(A, B, C)
* Math.min(C, Math.max(A, B)) MathClamp(A, B, C)
* Math.max(Math.min(A, B), C) MathClamp(A, C, B)
* Math.max(C, Math.min(A, B)) MathClamp(A, C, B)
*/
function isMathCall(node, method) {
return (
node.type === "CallExpression" &&
node.callee.type === "MemberExpression" &&
!node.callee.computed &&
node.callee.object.type === "Identifier" &&
node.callee.object.name === "Math" &&
node.callee.property.type === "Identifier" &&
node.callee.property.name === method &&
node.arguments.length === 2 &&
node.arguments.every(a => a.type !== "SpreadElement")
);
}
// Returns true if node is a Math.min or Math.max call.
function isMathMinMax(node) {
return isMathCall(node, "min") || isMathCall(node, "max");
}
const preferMathClampRule = {
meta: {
type: "suggestion",
fixable: "code",
docs: {
description:
"Prefer MathClamp(v, min, max) over nested Math.min/Math.max",
},
messages: {
useClamp:
"Use MathClamp(v, min, max) instead of nested Math.min/Math.max.",
},
schema: [],
},
create(context) {
const src = context.sourceCode ?? context.getSourceCode();
return {
CallExpression(node) {
// Pattern: Math.min(Math.max(A, B), C) or Math.min(C, Math.max(A, B)).
// Fix as MathClamp(A, B, C) where A,B are inner args, C is outer arg.
if (isMathCall(node, "min")) {
const [arg0, arg1] = node.arguments;
let outerArg, innerNode;
// Math.max(Math.min(A, B), Math.min(C, D)) isn't a clamp pattern, so
// require the outer arg to not be a min/max call.
if (isMathCall(arg0, "max") && !isMathMinMax(arg1)) {
innerNode = arg0;
outerArg = arg1;
} else if (isMathCall(arg1, "max") && !isMathMinMax(arg0)) {
innerNode = arg1;
outerArg = arg0;
} else {
return;
}
const v = src.getText(innerNode.arguments[0]);
const min = src.getText(innerNode.arguments[1]);
const max = src.getText(outerArg);
context.report({
node,
messageId: "useClamp",
fix(fixer) {
return fixer.replaceText(node, `MathClamp(${v}, ${min}, ${max})`);
},
});
}
// Pattern: Math.max(Math.min(A, B), C) or Math.max(C, Math.min(A, B)).
// Fix as MathClamp(A, C, B) where A,B are inner args, C is outer arg.
if (isMathCall(node, "max")) {
const [arg0, arg1] = node.arguments;
let outerArg, innerNode;
if (isMathCall(arg0, "min") && !isMathMinMax(arg1)) {
innerNode = arg0;
outerArg = arg1;
} else if (isMathCall(arg1, "min") && !isMathMinMax(arg0)) {
innerNode = arg1;
outerArg = arg0;
} else {
return;
}
const v = src.getText(innerNode.arguments[0]);
const max = src.getText(innerNode.arguments[1]);
const min = src.getText(outerArg);
context.report({
node,
messageId: "useClamp",
fix(fixer) {
return fixer.replaceText(node, `MathClamp(${v}, ${min}, ${max})`);
},
});
}
},
};
},
};
export default {
rules: {
"prefer-math-clamp": preferMathClampRule,
},
};

0
external/iccs/CGATS001Compat-v2-micro.icc vendored Normal file → Executable file
View File

View File

@ -91,7 +91,7 @@ async function downloadL10n(root) {
await downloadLanguageFiles(root, langCode);
}
const rmCodes = [];
const removeCodes = [];
for (const entry of fs.readdirSync(root)) {
const dirPath = path.join(root, entry),
stat = fs.lstatSync(dirPath);
@ -101,13 +101,14 @@ async function downloadL10n(root) {
entry !== DEFAULT_LOCALE &&
!langCodes.includes(entry)
) {
fs.rmSync(dirPath, { recursive: true, force: true });
rmCodes.push(entry);
removeCodes.push(entry);
}
}
if (rmCodes.length) {
if (removeCodes.length) {
console.log(
`\nRemoved the following unmaintained locales: ${rmCodes.join(", ")}\n`
"\nConsider removing the following unmaintained locales:\n" +
removeCodes.join(", ") +
"\n"
);
}
}

View File

@ -1,196 +0,0 @@
// Copyright 2014 The PDFium Authors
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Apache License
Version 2.0, January 2004
https://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -1,13 +0,0 @@
Copyright 2026 Mozilla Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -1,12 +0,0 @@
## Build
In order to generate the file `jbig2.js`:
* git clone https://github.com/mozilla/pdf.js.jbig2/
* the build requires to have a [Docker](https://www.docker.com/) setup and then:
* `node build.js -C` to build the Docker image
* `node build.js -co /pdf.js/external/jbig2/` to compile the decoder
## Licensing
[PDFium](https://pdfium.googlesource.com/pdfium/) is under [Apache-2.0](https://pdfium.googlesource.com/pdfium/+/main/LICENSE)
and [pdf.js.jbig2](https://github.com/mozilla/pdf.js.jbig2/) is released under [Apache-2.0](https://github.com/mozilla/pdf.js.jbig2/blob/main/LICENSE) license so `jbig2.js` is released under [Apache-2.0](https://github.com/mozilla/pdf.js.jbig2/blob/main/LICENSE) license too.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

244
external/qcms/qcms.js vendored
View File

@ -1,29 +1,34 @@
/* THIS FILE IS GENERATED - DO NOT EDIT */
import { copy_result, copy_rgb, make_cssRGB } from './qcms_utils.js';
let wasm;
/**
* @enum {0 | 1 | 2 | 3 | 4 | 5}
*/
export const DataType = Object.freeze({
RGB8: 0, "0": "RGB8",
RGBA8: 1, "1": "RGBA8",
BGRA8: 2, "2": "BGRA8",
Gray8: 3, "3": "Gray8",
GrayA8: 4, "4": "GrayA8",
CMYK: 5, "5": "CMYK",
});
const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );
/**
* @enum {0 | 1 | 2 | 3}
*/
export const Intent = Object.freeze({
Perceptual: 0, "0": "Perceptual",
RelativeColorimetric: 1, "1": "RelativeColorimetric",
Saturation: 2, "2": "Saturation",
AbsoluteColorimetric: 3, "3": "AbsoluteColorimetric",
});
if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };
let cachedUint8ArrayMemory0 = null;
function getUint8ArrayMemory0() {
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
}
return cachedUint8ArrayMemory0;
}
function getStringFromWasm0(ptr, len) {
ptr = ptr >>> 0;
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
}
let WASM_VECTOR_LEN = 0;
function passArray8ToWasm0(arg, malloc) {
const ptr = malloc(arg.length * 1, 1) >>> 0;
getUint8ArrayMemory0().set(arg, ptr / 1);
WASM_VECTOR_LEN = arg.length;
return ptr;
}
/**
* # Safety
*
@ -37,21 +42,6 @@ export function qcms_convert_array(transformer, src) {
wasm.qcms_convert_array(transformer, ptr0, len0);
}
/**
* # Safety
*
* This function is called directly from JavaScript.
* @param {number} transformer
* @param {number} src1
* @param {number} src2
* @param {number} src3
* @param {number} src4
* @param {boolean} css
*/
export function qcms_convert_four(transformer, src1, src2, src3, src4, css) {
wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css);
}
/**
* # Safety
*
@ -83,9 +73,14 @@ export function qcms_convert_three(transformer, src1, src2, src3, css) {
*
* This function is called directly from JavaScript.
* @param {number} transformer
* @param {number} src1
* @param {number} src2
* @param {number} src3
* @param {number} src4
* @param {boolean} css
*/
export function qcms_drop_transformer(transformer) {
wasm.qcms_drop_transformer(transformer);
export function qcms_convert_four(transformer, src1, src2, src3, src4, css) {
wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css);
}
/**
@ -103,122 +98,117 @@ export function qcms_transformer_from_memory(mem, in_type, intent) {
const ret = wasm.qcms_transformer_from_memory(ptr0, len0, in_type, intent);
return ret >>> 0;
}
function __wbg_get_imports() {
const import0 = {
__proto__: null,
__wbg___wbindgen_throw_6b64449b9b9ed33c: function(arg0, arg1) {
throw new Error(getStringFromWasm0(arg0, arg1));
},
__wbg_copy_result_0d15f3bf9d9012ae: function(arg0, arg1) {
copy_result(arg0 >>> 0, arg1 >>> 0);
},
__wbg_copy_rgb_0106d9d9464fce43: function(arg0) {
copy_rgb(arg0 >>> 0);
},
__wbg_make_cssRGB_8e24b34f71f5363e: function(arg0) {
make_cssRGB(arg0 >>> 0);
},
__wbindgen_init_externref_table: function() {
const table = wasm.__wbindgen_externrefs;
const offset = table.grow(4);
table.set(0, undefined);
table.set(offset + 0, undefined);
table.set(offset + 1, null);
table.set(offset + 2, true);
table.set(offset + 3, false);
},
};
return {
__proto__: null,
"./qcms_bg.js": import0,
};
/**
* # Safety
*
* This function is called directly from JavaScript.
* @param {number} transformer
*/
export function qcms_drop_transformer(transformer) {
wasm.qcms_drop_transformer(transformer);
}
function getStringFromWasm0(ptr, len) {
ptr = ptr >>> 0;
return decodeText(ptr, len);
}
let cachedUint8ArrayMemory0 = null;
function getUint8ArrayMemory0() {
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
}
return cachedUint8ArrayMemory0;
}
function passArray8ToWasm0(arg, malloc) {
const ptr = malloc(arg.length * 1, 1) >>> 0;
getUint8ArrayMemory0().set(arg, ptr / 1);
WASM_VECTOR_LEN = arg.length;
return ptr;
}
let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
cachedTextDecoder.decode();
const MAX_SAFARI_DECODE_BYTES = 2146435072;
let numBytesDecoded = 0;
function decodeText(ptr, len) {
numBytesDecoded += len;
if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
cachedTextDecoder.decode();
numBytesDecoded = len;
}
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
}
let WASM_VECTOR_LEN = 0;
let wasmModule, wasm;
function __wbg_finalize_init(instance, module) {
wasm = instance.exports;
wasmModule = module;
cachedUint8ArrayMemory0 = null;
wasm.__wbindgen_start();
return wasm;
}
/**
* @enum {0 | 1 | 2 | 3 | 4 | 5}
*/
export const DataType = Object.freeze({
RGB8: 0, "0": "RGB8",
RGBA8: 1, "1": "RGBA8",
BGRA8: 2, "2": "BGRA8",
Gray8: 3, "3": "Gray8",
GrayA8: 4, "4": "GrayA8",
CMYK: 5, "5": "CMYK",
});
/**
* @enum {0 | 1 | 2 | 3}
*/
export const Intent = Object.freeze({
Perceptual: 0, "0": "Perceptual",
RelativeColorimetric: 1, "1": "RelativeColorimetric",
Saturation: 2, "2": "Saturation",
AbsoluteColorimetric: 3, "3": "AbsoluteColorimetric",
});
async function __wbg_load(module, imports) {
if (typeof Response === 'function' && module instanceof Response) {
if (typeof WebAssembly.instantiateStreaming === 'function') {
try {
return await WebAssembly.instantiateStreaming(module, imports);
} catch (e) {
const validResponse = module.ok && expectedResponseType(module.type);
if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
} catch (e) {
if (module.headers.get('Content-Type') != 'application/wasm') {
console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
} else { throw e; }
} else {
throw e;
}
}
}
const bytes = await module.arrayBuffer();
return await WebAssembly.instantiate(bytes, imports);
} else {
const instance = await WebAssembly.instantiate(module, imports);
if (instance instanceof WebAssembly.Instance) {
return { instance, module };
} else {
return instance;
}
}
}
function expectedResponseType(type) {
switch (type) {
case 'basic': case 'cors': case 'default': return true;
}
return false;
}
function __wbg_get_imports() {
const imports = {};
imports.wbg = {};
imports.wbg.__wbg_copyresult_b08ee7d273f295dd = function(arg0, arg1) {
copy_result(arg0 >>> 0, arg1 >>> 0);
};
imports.wbg.__wbg_copyrgb_d60ce17bb05d9b67 = function(arg0) {
copy_rgb(arg0 >>> 0);
};
imports.wbg.__wbg_makecssRGB_893bf0cd9fdb302d = function(arg0) {
make_cssRGB(arg0 >>> 0);
};
imports.wbg.__wbindgen_init_externref_table = function() {
const table = wasm.__wbindgen_export_0;
const offset = table.grow(4);
table.set(0, undefined);
table.set(offset + 0, undefined);
table.set(offset + 1, null);
table.set(offset + 2, true);
table.set(offset + 3, false);
;
};
imports.wbg.__wbindgen_throw = function(arg0, arg1) {
throw new Error(getStringFromWasm0(arg0, arg1));
};
return imports;
}
function __wbg_init_memory(imports, memory) {
}
function __wbg_finalize_init(instance, module) {
wasm = instance.exports;
__wbg_init.__wbindgen_wasm_module = module;
cachedUint8ArrayMemory0 = null;
wasm.__wbindgen_start();
return wasm;
}
function initSync(module) {
if (wasm !== undefined) return wasm;
if (module !== undefined) {
if (typeof module !== 'undefined') {
if (Object.getPrototypeOf(module) === Object.prototype) {
({module} = module)
} else {
@ -227,10 +217,15 @@ function initSync(module) {
}
const imports = __wbg_get_imports();
__wbg_init_memory(imports);
if (!(module instanceof WebAssembly.Module)) {
module = new WebAssembly.Module(module);
}
const instance = new WebAssembly.Instance(module, imports);
return __wbg_finalize_init(instance, module);
}
@ -238,7 +233,7 @@ async function __wbg_init(module_or_path) {
if (wasm !== undefined) return wasm;
if (module_or_path !== undefined) {
if (typeof module_or_path !== 'undefined') {
if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
({module_or_path} = module_or_path)
} else {
@ -253,9 +248,12 @@ async function __wbg_init(module_or_path) {
module_or_path = fetch(module_or_path);
}
__wbg_init_memory(imports);
const { instance, module } = await __wbg_load(await module_or_path, imports);
return __wbg_finalize_init(instance, module);
}
export { initSync, __wbg_init as default };
export { initSync };
export default __wbg_init;

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -13,6 +13,8 @@
* limitations under the License.
*/
// TODO: Remove the exception below once someone figures out how to fix it.
// eslint-disable-next-line import/no-unresolved
import { parse, registerWalkers, Root } from "postcss-values-parser";
import { isString } from "stylelint/lib/utils/validateTypes.mjs";
import stylelint from "stylelint";

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,5 @@
+ Only the translations for the `en-US` locale are maintained here.
+ The translations for all other locales are imported automatically from Firefox. Please see https://mozilla-l10n.github.io/introduction/ for information about contributing.
Most of the files in this folder (except for the `en-US` folder) have been
imported from the Firefox Nightly branch;
please see https://hg.mozilla.org/l10n-central. Some of the files are
licensed under the MPL license. You can obtain a copy of the license at
https://mozilla.org/MPL/2.0.

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = مصغّرة صفحة { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = حدّد الصفحة { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = الصفحة { $page } من { $total }
## Find panel button title and messages
@ -295,7 +286,7 @@ pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", tim
pdfjs-password-label = أدخل لكلمة السر لفتح هذا الملف.
pdfjs-password-invalid = كلمة سر خطأ. من فضلك أعد المحاولة.
pdfjs-password-ok-button = حسنًا
pdfjs-password-ok-button = حسنا
pdfjs-password-cancel-button = ألغِ
pdfjs-web-fonts-disabled = خطوط الوب مُعطّلة: تعذّر استخدام خطوط PDF المُضمّنة.
@ -303,13 +294,9 @@ pdfjs-web-fonts-disabled = خطوط الوب مُعطّلة: تعذّر استخ
pdfjs-editor-free-text-button =
.title = نص
pdfjs-editor-color-picker-free-text-input =
.title = غيِّر لون النص
pdfjs-editor-free-text-button-label = نص
pdfjs-editor-ink-button =
.title = ارسم
pdfjs-editor-color-picker-ink-input =
.title = غيِّر لون الرسم
pdfjs-editor-ink-button-label = ارسم
pdfjs-editor-stamp-button =
.title = أضِف أو حرّر الصور
@ -321,14 +308,6 @@ pdfjs-highlight-floating-button1 =
.title = أبرِز
.aria-label = أبرِز
pdfjs-highlight-floating-button-label = أبرِز
pdfjs-comment-floating-button =
.title = علق
.aria-label = علق
pdfjs-comment-floating-button-label = علق
pdfjs-editor-comment-button =
.title = علق
.aria-label = علق
pdfjs-editor-comment-button-label = التعليق
pdfjs-editor-signature-button =
.title = أضِف توقيع
pdfjs-editor-signature-button-label = أضِف توقيع
@ -391,25 +370,6 @@ pdfjs-editor-add-saved-signature-button =
pdfjs-free-text2 =
.aria-label = محرِّر النص
.default-content = ابدأ في كتابة…
# Used to show how many comments are present in the pdf file.
# Variables:
# $count (Number) - the number of comments.
pdfjs-editor-comments-sidebar-title =
{ $count ->
[zero] تعليق
[one] تعليق
[two] تعليقات
[few] تعليقات
[many] تعليقات
*[other] تعليقات
}
pdfjs-editor-comments-sidebar-close-button =
.title = أغلِق الشريط الجانبي
.aria-label = أغلِق الشريط الجانبي
pdfjs-editor-comments-sidebar-close-button-label = أغلِق الشريط الجانبي
# Instructional copy to add a comment by selecting text or an annotations.
pdfjs-editor-comments-sidebar-no-comments1 = هل رأيت شيئاً جديرًا بالملاحظة؟ ابرزه واترك تعليقًا.
pdfjs-editor-comments-sidebar-no-comments-link = اطّلع على المزيد
## Alt-text dialog
@ -540,14 +500,6 @@ pdfjs-editor-alt-text-settings-show-dialog-button-label = أظهِر مُحرّ
pdfjs-editor-alt-text-settings-show-dialog-description = يساعدك على التأكد من أن جميع صورك تحتوي على نص بديل.
pdfjs-editor-alt-text-settings-close-button = أغلق
## Accessibility labels (announced by screen readers) for objects added to the editor.
pdfjs-editor-highlight-added-alert = أُضيف إبراز
pdfjs-editor-freetext-added-alert = أُضيف النص
pdfjs-editor-ink-added-alert = أُضيف رسم
pdfjs-editor-stamp-added-alert = أُضيف صورة
pdfjs-editor-signature-added-alert = أُضيف توقيع
## "Annotations removed" bar
pdfjs-editor-undo-bar-message-highlight = أُزِيل البرز
@ -555,7 +507,6 @@ pdfjs-editor-undo-bar-message-freetext = أُزيل النص
pdfjs-editor-undo-bar-message-ink = أُزِيلت الرسمة
pdfjs-editor-undo-bar-message-stamp = أُزيلت الصورة
pdfjs-editor-undo-bar-message-signature = أُزيل التوقيع
pdfjs-editor-undo-bar-message-comment = أُزيل التعليق
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -577,7 +528,7 @@ pdfjs-editor-undo-bar-close-button-label = أغلق
## Add a signature dialog
pdfjs-editor-add-signature-dialog-label = يتيح هذا النموذج للمستخدم إنشاء توقيع لإضافته إلى مستند PDF. ويمكن للمستخدم تحرير الاسم (الذي يعمل أيضًا كنص بديل)، وحفظ التوقيع بشكل اختياري للاستخدام المتكرر.
pdfjs-editor-add-signature-dialog-title = أضِف توقيعًا
pdfjs-editor-add-signature-dialog-title = أضِف توقيعا
## Tab names
@ -621,8 +572,6 @@ pdfjs-editor-add-signature-save-checkbox = احفظ التوقيع
pdfjs-editor-add-signature-save-warning-message = لقد وصلت إلى الحد الأقصى وهو 5 توقيعات محفوظة. أزِل توقيع واحد لحفظ المزيد.
pdfjs-editor-add-signature-image-upload-error-title = تعذر رفع الصورة.
pdfjs-editor-add-signature-image-upload-error-description = تحقق من اتصال الشبكة لديك أو جرّب صورة أخرى.
pdfjs-editor-add-signature-image-no-data-error-title = لا يمكن تحويل هذه الصورة إلى توقيع
pdfjs-editor-add-signature-image-no-data-error-description = من فضلك حاول رفع صورة أخرى.
pdfjs-editor-add-signature-error-close-button = أغلق
## Dialog buttons
@ -631,139 +580,6 @@ pdfjs-editor-add-signature-cancel-button = ألغِ
pdfjs-editor-add-signature-add-button = أضِف
pdfjs-editor-edit-signature-update-button = حدّث
## Comment popup
pdfjs-editor-edit-comment-popup-button-label = حرّر التعليق
pdfjs-editor-edit-comment-popup-button =
.title = حرّر التعليق
pdfjs-editor-delete-comment-popup-button-label = أزِل التعليق
pdfjs-editor-delete-comment-popup-button =
.title = أزِل التعليق
pdfjs-show-comment-button =
.title = أظهر التعليق
## Edit a comment dialog
# An existing comment is edited
pdfjs-editor-edit-comment-dialog-title-when-editing = حرّر التعليق
pdfjs-editor-edit-comment-dialog-save-button-when-editing = حدّث
# No existing comment
pdfjs-editor-edit-comment-dialog-title-when-adding = أضِف تعليقًا
pdfjs-editor-edit-comment-dialog-save-button-when-adding = أضف
pdfjs-editor-edit-comment-dialog-text-input =
.placeholder = ابدأ الكتابة…
pdfjs-editor-edit-comment-dialog-cancel-button = ألغِ
## Edit a comment button in the editor toolbar
pdfjs-editor-add-comment-button =
.title = أضف التعليق
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = تبديل الشريط الجانبي (يحتوي المستند على صور مصغرة/مخطط تفصيلي/مرفقات/طبقات)
pdfjs-toggle-views-manager-button1-label = أدِر الصفحات
pdfjs-views-manager-sidebar =
.aria-label = الشريط الجانبي
pdfjs-views-manager-sidebar-resizer =
.aria-label = أداة تغيير حجم الشريط الجانبي
pdfjs-views-manager-view-selector-button =
.title = المناظير
pdfjs-views-manager-view-selector-button-label = المناظير
pdfjs-views-manager-pages-title = الصفحات
pdfjs-views-manager-outlines-title1 = مخطط المستند
.title = مخطط المستند (انقر نقرًا مزدوجًا لتوسيع/طي كافة العناصر)
pdfjs-views-manager-attachments-title = المرفقات
pdfjs-views-manager-layers-title1 = ‏‏طبقات
.title = الطبقات (انقر نقرًا مزدوجًا لإعادة تعيين كافة الطبقات إلى الحالة المبدئية)
pdfjs-views-manager-pages-option-label = الصفحات
pdfjs-views-manager-outlines-option-label = مخطط المستند
pdfjs-views-manager-attachments-option-label = المرفقات
pdfjs-views-manager-layers-option-label = ‏‏الطبقات
pdfjs-views-manager-add-file-button =
.title = أضف ملف
pdfjs-views-manager-add-file-button-label = أضف ملف
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[zero] { $count } محدّد
[one] { $count } محدّد
[two] { $count } محدّدان
[few] { $count } محدّد
[many] { $count } محدّد
*[other] { $count } محدّد
}
pdfjs-views-manager-pages-status-none-action-label = حدّد الصفحات
pdfjs-views-manager-pages-status-action-button-label = أدِر
pdfjs-views-manager-pages-status-copy-button-label = انسخ
pdfjs-views-manager-pages-status-cut-button-label = قصّ
pdfjs-views-manager-pages-status-delete-button-label = احذف
pdfjs-views-manager-pages-status-export-selected-button-label = حُدِّد التصدير…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[zero] لا صفحات قُصت
[one] صفحة قُصت
[two] { $count } صفحتان قُصت
[few] { $count } صفحات قُصت
[many] { $count } صفحةً قُصت
*[other] { $count } صفحة قُصت
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[zero] لا صفحة منسوخة
[one] صفحة منسوخة
[two] صفحتان منسوختان
[few] { $count } صفحات منسوخة
[many] { $count } صفحةً منسوخةً
*[other] { $count } صفحة منسوخة
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[zero] لا صفحات محذوفة
[one] حُذف صفحة
[two] حُذف صفحتان
[few] حُذف { $count } صفحات
[many] حُذف { $count } صفحةً
*[other] حُذف { $count } صفحة
}
pdfjs-views-manager-pages-status-waiting-ready-label = يجهز ملفك…
pdfjs-views-manager-pages-status-waiting-uploading-label = يرفع ملف…
pdfjs-views-manager-status-warning-cut-label = تعذّر القص. أنعش الصفحة وحاول مجددًا.
pdfjs-views-manager-status-warning-copy-label = تعذّر النسخ. أنعش الصفحة وحاول مجددًا.
pdfjs-views-manager-status-warning-delete-label = تعذّر الحذف. حدِّث الصفحة وحاول مجددًا.
pdfjs-views-manager-status-warning-save-label = تعذّر الحفظ. أنعش الصفحة وحاول مجددًا.
pdfjs-views-manager-status-undo-button-label = تراجع
pdfjs-views-manager-status-done-button-label = تمّ
pdfjs-views-manager-status-close-button =
.title = أغلق
pdfjs-views-manager-status-close-button-label = أغلق
pdfjs-views-manager-paste-button-label = ألصق
pdfjs-views-manager-paste-button-before =
.title = ألصق قبل الصفحة الأولى
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = ألصق بعد الصفحة { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = جديد
pdfjs-views-manager-waiting-for-file = يرفع ملف…
pdfjs-toggle-views-manager-button1 =
.title = أدِر الصفحات
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Мініяцюра старонкі { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Выбраць старонку { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Старонка { $page } з { $total }
## Find panel button title and messages
@ -546,7 +537,6 @@ pdfjs-editor-undo-bar-message-freetext = Тэкст выдалены
pdfjs-editor-undo-bar-message-ink = Малюнак выдалены
pdfjs-editor-undo-bar-message-stamp = Відарыс выдалены
pdfjs-editor-undo-bar-message-signature = Подпіс выдалены
pdfjs-editor-undo-bar-message-comment = Каментарый выдалены
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -647,99 +637,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Скасаваць
pdfjs-editor-add-comment-button =
.title = Дадаць каментарый
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Паказаць/схаваць бакавую панэль (дакумент мае мініяцюры/змест/далучэнні/пласты)
pdfjs-toggle-views-manager-button1-label = Кіраванне старонкамі
pdfjs-views-manager-sidebar =
.aria-label = Бакавая панэль
pdfjs-views-manager-sidebar-resizer =
.aria-label = Змена памеру бакавой панэлі
pdfjs-views-manager-view-selector-button =
.title = Выгляд
pdfjs-views-manager-view-selector-button-label = Выгляд
pdfjs-views-manager-pages-title = Старонкі
pdfjs-views-manager-outlines-title1 = Структура дакумента
.title = Структура дакумента (націсніце двойчы, каб разгарнуць/згарнуць усе элементы)
pdfjs-views-manager-attachments-title = Далучэнні
pdfjs-views-manager-layers-title1 = Пласты
.title = Пласты (націсніце двойчы каб скінуць у прадвызначаны стан)
pdfjs-views-manager-pages-option-label = Старонкі
pdfjs-views-manager-outlines-option-label = Структура дакумента
pdfjs-views-manager-attachments-option-label = Далучэнні
pdfjs-views-manager-layers-option-label = Пласты
pdfjs-views-manager-add-file-button =
.title = Дадаць файл
pdfjs-views-manager-add-file-button-label = Дадаць файл
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] Вылучана { $count }
[few] Вылучаны { $count }
*[many] Вылучана { $count }
}
pdfjs-views-manager-pages-status-none-action-label = Выбраць старонкі
pdfjs-views-manager-pages-status-action-button-label = Кіраваць
pdfjs-views-manager-pages-status-copy-button-label = Капіяваць
pdfjs-views-manager-pages-status-cut-button-label = Выразаць
pdfjs-views-manager-pages-status-delete-button-label = Выдаліць
pdfjs-views-manager-pages-status-export-selected-button-label = Экспартаваць выбранае…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] Выразана { $count } старонка
[few] Выразана { $count } старонкі
*[many] Выразана { $count } старонак
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] Скапіравана { $count } старонка
[few] Скапіравана { $count } старонкі
*[many] Скапіравана { $count } старонак
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] Выдалена { $count } старонка
[few] Выдалена { $count } старонкі
*[many] Выдалена { $count } старонак
}
pdfjs-views-manager-pages-status-waiting-ready-label = Рыхтуецца ваш файл…
pdfjs-views-manager-pages-status-waiting-uploading-label = Зацягваецца файл…
pdfjs-views-manager-status-warning-cut-label = Не ўдалося выразаць. Абнавіце старонку і паспрабуйце зноў.
pdfjs-views-manager-status-warning-copy-label = Не ўдалося скапіяваць. Абнавіце старонку і паспрабуйце зноў.
pdfjs-views-manager-status-warning-delete-label = Не ўдалося выдаліць. Абнавіце старонку і паспрабуйце зноў.
pdfjs-views-manager-status-warning-save-label = Не ўдалося захаваць. Абнавіце старонку і паспрабуйце зноў.
pdfjs-views-manager-status-undo-button-label = Адмяніць
pdfjs-views-manager-status-done-button-label = Гатова
pdfjs-views-manager-status-close-button =
.title = Закрыць
pdfjs-views-manager-status-close-button-label = Закрыць
pdfjs-views-manager-paste-button-label = Уставіць
pdfjs-views-manager-paste-button-before =
.title = Уставіць перад першай старонкай
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Уставіць пасля старонкі { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = НОВАЕ
pdfjs-views-manager-waiting-for-file = Зацягваецца файл…
pdfjs-toggle-views-manager-button1 =
.title = Кіраванне старонкамі
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -386,7 +386,3 @@ pdfjs-editor-new-alt-text-not-now-button = Не сега
## Image alt-text settings
pdfjs-editor-alt-text-settings-delete-model-button = Изтриване
## Controls
pdfjs-editor-add-signature-image-upload-error-description = Проверете мрежовата си връзка или опитайте с друго изображение.

View File

@ -1,67 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
## Main toolbar buttons (tooltips and alt text for images)
pdfjs-print-button =
.title = چاپ
pdfjs-print-button-label = چاپ
##
pdfjs-document-properties-linearized-yes = هری
## Print
pdfjs-print-progress-close-button = لقو
## Password
pdfjs-password-ok-button = خا
pdfjs-password-cancel-button = لقو
## Editing
pdfjs-editor-stamp-button =
.title = ٱووردن یا آلشت شؽواتا
pdfjs-editor-stamp-button-label = ٱووردن یا آلشت شؽواتا
## Default editor aria labels
pdfjs-editor-stamp-editor =
.aria-label = آلشتگر شؽوات
##
# .default-content is used as a placeholder in an empty text editor.
pdfjs-free-text2 =
.aria-label = آلشتگر هؽل
.default-content = ناهاڌن پا هؽل کردن...
pdfjs-editor-comments-sidebar-no-comments-link = قلوه دووسته بۊین
## Alt-text dialog
pdfjs-editor-alt-text-cancel-button = لقو
## New alt-text dialog
## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.
pdfjs-editor-new-alt-text-disclaimer-learn-more-url = قلوه دووسته بۊین
## Dialog buttons
pdfjs-editor-add-signature-cancel-button = لقو
## Comment popup
pdfjs-editor-edit-comment-popup-button-label = آلشت منشڌ
pdfjs-editor-edit-comment-popup-button =
.title = آلشت منشڌ
## Edit a comment dialog
# An existing comment is edited
pdfjs-editor-edit-comment-dialog-title-when-editing = آلشت منشڌ
pdfjs-editor-edit-comment-dialog-cancel-button = لقو

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Náhled strany { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Vybrat stranu { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Strana { $page } z { $total }
## Find panel button title and messages
@ -549,7 +540,6 @@ pdfjs-editor-undo-bar-message-freetext = Text odstraněn
pdfjs-editor-undo-bar-message-ink = Kresba odstraněna
pdfjs-editor-undo-bar-message-stamp = Obrázek odebrán
pdfjs-editor-undo-bar-message-signature = Podpis odebrán
pdfjs-editor-undo-bar-message-comment = Komentář odebrán
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -651,103 +641,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Zrušit
pdfjs-editor-add-comment-button =
.title = Přidání komentáře
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Přepnout postranní lištu (dokument obsahuje náhledy/osnovu/přílohy/vrstvy)
pdfjs-toggle-views-manager-button1-label = Spravovat strany
pdfjs-views-manager-sidebar =
.aria-label = Postranní lišta
pdfjs-views-manager-sidebar-resizer =
.aria-label = Změna velikosti v postranní liště
pdfjs-views-manager-view-selector-button =
.title = Zobrazení
pdfjs-views-manager-view-selector-button-label = Zobrazení
pdfjs-views-manager-pages-title = Stránky
pdfjs-views-manager-outlines-title1 = Osnova dokumentu
.title = Osnova dokumentu (dvojité klepnutí rozbalí/sbalí všechny položky)
pdfjs-views-manager-attachments-title = Přílohy
pdfjs-views-manager-layers-title1 = Vrstvy
.title = Vrstvy (dvojité klepnutí obnoví všechny vrstvy do výchozího stavu)
pdfjs-views-manager-pages-option-label = Stránky
pdfjs-views-manager-outlines-option-label = Osnova dokumentu
pdfjs-views-manager-attachments-option-label = Přílohy
pdfjs-views-manager-layers-option-label = Vrstvy
pdfjs-views-manager-add-file-button =
.title = Přidat soubor
pdfjs-views-manager-add-file-button-label = Přidat soubor
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } vybrána
[few] { $count } vybrány
[many] { $count } vybráno
*[other] { $count } vybráno
}
pdfjs-views-manager-pages-status-none-action-label = Výběr stránek
pdfjs-views-manager-pages-status-action-button-label = Správa
pdfjs-views-manager-pages-status-copy-button-label = Kopírovat
pdfjs-views-manager-pages-status-cut-button-label = Vyjmout
pdfjs-views-manager-pages-status-delete-button-label = Smazat
pdfjs-views-manager-pages-status-export-selected-button-label = Exportovat vybrané…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 stránka vyjmuta
[few] { $count } stránky vyjmuty
[many] { $count } stránek vyjmuto
*[other] { $count } stránek vyjmuto
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 stránka zkopírována
[few] { $count } stránky zkopírovány
[many] { $count } stránek zkopírováno
*[other] { $count } stránek zkopírováno
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 stránka smazána
[few] { $count } stránky smazány
[many] { $count } stránek smazáno
*[other] { $count } stránek smazáno
}
pdfjs-views-manager-pages-status-waiting-ready-label = Příprava vašeho souboru…
pdfjs-views-manager-pages-status-waiting-uploading-label = Nahrávání souboru…
pdfjs-views-manager-status-warning-cut-label = Nelze vyjmout. Obnovte stránku a zkuste to znovu.
pdfjs-views-manager-status-warning-copy-label = Kopírování se nezdařilo. Obnovte stránku a zkuste to znovu.
pdfjs-views-manager-status-warning-delete-label = Smazání se nezdařilo. Obnovte stránku a zkuste to znovu.
pdfjs-views-manager-status-warning-save-label = Nepodařilo se uložit. Obnovte stránku a zkuste to znovu.
pdfjs-views-manager-status-undo-button-label = Zpět
pdfjs-views-manager-status-done-button-label = Hotovo
pdfjs-views-manager-status-close-button =
.title = Zavřít
pdfjs-views-manager-status-close-button-label = Zavřít
pdfjs-views-manager-paste-button-label = Vložit
pdfjs-views-manager-paste-button-before =
.title = Vloží před první stránku
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Vložit za stránku { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NOVÉ
pdfjs-views-manager-waiting-for-file = Nahrávání souboru…
pdfjs-toggle-views-manager-button1 =
.title = Spravovat strany
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Llun Bach Tudalen { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Dewis tudalen { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Tudalen { $page } o { $total }
## Find panel button title and messages
@ -555,7 +546,6 @@ pdfjs-editor-undo-bar-message-freetext = Tynnwyd y testun
pdfjs-editor-undo-bar-message-ink = Tynnwyd y lluniad
pdfjs-editor-undo-bar-message-stamp = Tynnwyd y ddelwedd
pdfjs-editor-undo-bar-message-signature = Llofnod wedi'i dynnu
pdfjs-editor-undo-bar-message-comment = Sylw wedi'i dynnu
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -659,111 +649,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Diddymu
pdfjs-editor-add-comment-button =
.title = Ychwanegu sylw
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Togl y Bar Ochr (dogfen yn cynnwys lluniau bach/amlinelliad/atodiadau/haenau)
pdfjs-toggle-views-manager-button1-label = Rheoli tudalennau
pdfjs-views-manager-sidebar =
.aria-label = Bar Ochr
pdfjs-views-manager-sidebar-resizer =
.aria-label = Newid maint bar ochr
pdfjs-views-manager-view-selector-button =
.title = Golygon
pdfjs-views-manager-view-selector-button-label = Golygon
pdfjs-views-manager-pages-title = Tudalennau
pdfjs-views-manager-outlines-title1 = Amlinelliad Dogfen
.title = Amlinelliad dogfen (clic dwbl i ehangu/leihau pob eitem)
pdfjs-views-manager-attachments-title = Atodiadau
pdfjs-views-manager-layers-title1 = Haenau
.title = Haenau clic dwbl i ailosod pob haen i'r cyflwr ragosodedig)
pdfjs-views-manager-pages-option-label = Tudalennau
pdfjs-views-manager-outlines-option-label = Amlinelliad dogfen
pdfjs-views-manager-attachments-option-label = Atodiadau
pdfjs-views-manager-layers-option-label = Haenau
pdfjs-views-manager-add-file-button =
.title = Ychwanegu ffeil
pdfjs-views-manager-add-file-button-label = Ychwanegu ffeil
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[zero] { $count } wedi'u dewis
[one] { $count } wedi'i dewis
[two] { $count } wedi'u dewis
[few] { $count } wedi'u dewis
[many] { $count } wedi'u dewis
*[other] { $count } wedi'u dewis
}
pdfjs-views-manager-pages-status-none-action-label = Dewiswch dudalennau
pdfjs-views-manager-pages-status-action-button-label = Rheoli
pdfjs-views-manager-pages-status-copy-button-label = Copïo
pdfjs-views-manager-pages-status-cut-button-label = Torri
pdfjs-views-manager-pages-status-delete-button-label = Dileu
pdfjs-views-manager-pages-status-export-selected-button-label = Wedi dewis allforio…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[zero] { $count } tudalennau wedi'u torri
[one] { $count } dudalen wedi'i thorri
[two] { $count } dudalen wedi'u torri
[few] { $count } tudalen wedi'u torri
[many] { $count } tudalen wedi'u torri
*[other] { $count } tudalen wedi'u torri
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[zero] { $count } tudalennau wedi'u copïo
[one] { $count } tudalen wedi'i chopïo
[two] { $count } tudalen wedi'u copïo
[few] { $count } tudalen wedi'u copïo
[many] { $count } tudalen wedi'u copïo
*[other] { $count } tudalen wedi'u copïo
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[zero] { $count } tudalennau wedi'u dileu
[one] { $count } tudalen wedi'i dileu
[two] { $count } dudalen wedi'u dileu
[few] { $count } tudalen wedi'u dileu
[many] { $count } tudalen wedi'u dileu
*[other] { $count } tudalen wedi'u dileu
}
pdfjs-views-manager-pages-status-waiting-ready-label = Yn paratoi eich ffeil…
pdfjs-views-manager-pages-status-waiting-uploading-label = Yn llwytho ffeil i fyny…
pdfjs-views-manager-status-warning-cut-label = Methu torri. Adnewyddwch y dudalen a cheisio eto.
pdfjs-views-manager-status-warning-copy-label = Methu copïo. Adnewyddwch y dudalen a cheisio eto.
pdfjs-views-manager-status-warning-delete-label = Methu dileu. Adnewyddwch y dudalen a cheisio eto.
pdfjs-views-manager-status-warning-save-label = Methu cadw. Adnewyddwch y dudalen a cheisio eto.
pdfjs-views-manager-status-undo-button-label = Dadwneud
pdfjs-views-manager-status-done-button-label = Gorffen
pdfjs-views-manager-status-close-button =
.title = Cau
pdfjs-views-manager-status-close-button-label = Cau
pdfjs-views-manager-paste-button-label = Gludo
pdfjs-views-manager-paste-button-before =
.title = Gludo cyn y dudalen gyntaf
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Gludo ar ôl tudalen { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NEWYDD
pdfjs-views-manager-waiting-for-file = Yn llwytho ffeil i fyny…
pdfjs-toggle-views-manager-button1 =
.title = Rheoli tudalennau
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniature af side { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Vælg side { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Side { $page } af { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Tekst fjernet
pdfjs-editor-undo-bar-message-ink = Tegning fjernet
pdfjs-editor-undo-bar-message-stamp = Billede fjernet
pdfjs-editor-undo-bar-message-signature = Signatur fjernet
pdfjs-editor-undo-bar-message-comment = Kommentar fjernet
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,87 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Annuller
pdfjs-editor-add-comment-button =
.title = Tilføj kommentar
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Slå sidepanel til eller fra (dokumentet indeholder miniaturer/disposition/vedhæftede filer/lag)
pdfjs-toggle-views-manager-button1-label = Håndter sider
pdfjs-views-manager-sidebar =
.aria-label = Sidepanel
pdfjs-views-manager-view-selector-button =
.title = Visninger
pdfjs-views-manager-view-selector-button-label = Visninger
pdfjs-views-manager-pages-title = Sider
pdfjs-views-manager-attachments-title = Vedhæftede filer
pdfjs-views-manager-layers-title1 = Lag
.title = Lag (dobbeltklik for at nulstille alle lag til standard-tilstanden)
pdfjs-views-manager-pages-option-label = Sider
pdfjs-views-manager-outlines-option-label = Dokument-disposition
pdfjs-views-manager-attachments-option-label = Vedhæftede filer
pdfjs-views-manager-layers-option-label = Lag
pdfjs-views-manager-add-file-button =
.title = Tilføj fil
pdfjs-views-manager-add-file-button-label = Tilføj fil
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } valgt
*[other] { $count } valgt
}
pdfjs-views-manager-pages-status-none-action-label = Vælg sider
pdfjs-views-manager-pages-status-action-button-label = Håndter
pdfjs-views-manager-pages-status-copy-button-label = Kopier
pdfjs-views-manager-pages-status-cut-button-label = Klip
pdfjs-views-manager-pages-status-delete-button-label = Slet
pdfjs-views-manager-pages-status-export-selected-button-label = Eksporter valgte…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 side klippet
*[other] { $count } sider klippet
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 side kopieret
*[other] { $count } sider kopieret
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 side slettet
*[other] { $count } sider slettet
}
pdfjs-views-manager-pages-status-waiting-ready-label = Gør din fil klar…
pdfjs-views-manager-pages-status-waiting-uploading-label = Uploader fil…
pdfjs-views-manager-status-undo-button-label = Fortryd
pdfjs-views-manager-status-done-button-label = Færdig
pdfjs-views-manager-status-close-button =
.title = Luk
pdfjs-views-manager-status-close-button-label = Luk
pdfjs-views-manager-paste-button-label = Indsæt
pdfjs-views-manager-paste-button-before =
.title = Indsæt før første side
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Indsæt efter side { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NY
pdfjs-views-manager-waiting-for-file = Uploader fil…
pdfjs-toggle-views-manager-button1 =
.title = Håndter sider
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniaturansicht von Seite { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Seite { $page } auswählen
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Seite { $page } von { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Text entfernt
pdfjs-editor-undo-bar-message-ink = Zeichnung entfernt
pdfjs-editor-undo-bar-message-stamp = Grafik entfernt
pdfjs-editor-undo-bar-message-signature = Unterschrift entfernt
pdfjs-editor-undo-bar-message-comment = Kommentar entfernt
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Abbrechen
pdfjs-editor-add-comment-button =
.title = Kommentar hinzufügen
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Sidebar umschalten (Dokument enthält Miniaturansichten/Dokumentstruktur/Anhänge/Ebenen)
pdfjs-toggle-views-manager-button1-label = Seiten verwalten
pdfjs-views-manager-sidebar =
.aria-label = Sidebar
pdfjs-views-manager-sidebar-resizer =
.aria-label = Größenanpassung der Sidebar
pdfjs-views-manager-view-selector-button =
.title = Ansichten
pdfjs-views-manager-view-selector-button-label = Ansichten
pdfjs-views-manager-pages-title = Seiten
pdfjs-views-manager-outlines-title1 = Dokumentstruktur
.title = Dokumentstruktur (Doppelklick zum Ein- bzw. Ausblenden aller Einträge)
pdfjs-views-manager-attachments-title = Anhänge
pdfjs-views-manager-layers-title1 = Ebenen
.title = Ebenen (Doppelklick, um alle Ebenen auf den Standard-Zustand zurückzusetzen)
pdfjs-views-manager-pages-option-label = Seiten
pdfjs-views-manager-outlines-option-label = Dokumentstruktur
pdfjs-views-manager-attachments-option-label = Anhänge
pdfjs-views-manager-layers-option-label = Ebenen
pdfjs-views-manager-add-file-button =
.title = Datei hinzufügen
pdfjs-views-manager-add-file-button-label = Datei hinzufügen
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } ausgewählt
*[other] { $count } ausgewählt
}
pdfjs-views-manager-pages-status-none-action-label = Seiten auswählen
pdfjs-views-manager-pages-status-action-button-label = Verwalten
pdfjs-views-manager-pages-status-copy-button-label = Kopieren
pdfjs-views-manager-pages-status-cut-button-label = Ausschneiden
pdfjs-views-manager-pages-status-delete-button-label = Löschen
pdfjs-views-manager-pages-status-export-selected-button-label = Ausgewählte exportieren…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 Seite ausgeschnitten
*[other] { $count } Seiten ausgeschnitten
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 Seite kopiert
*[other] { $count } Seiten kopiert
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 Seite gelöscht
*[other] { $count } Seiten gelöscht
}
pdfjs-views-manager-pages-status-waiting-ready-label = Ihre Datei wird vorbereitet…
pdfjs-views-manager-pages-status-waiting-uploading-label = Datei wird hochgeladen…
pdfjs-views-manager-status-warning-cut-label = Ausschneiden war nicht möglich. Aktualisieren Sie die Seite und versuchen Sie es erneut.
pdfjs-views-manager-status-warning-copy-label = Kopieren nicht möglich. Aktualisieren Sie die Seite und versuchen Sie es erneut.
pdfjs-views-manager-status-warning-delete-label = Löschen war nicht möglich. Aktualisieren Sie die Seite und versuchen Sie es erneut.
pdfjs-views-manager-status-warning-save-label = Speichern nicht möglich. Aktualisieren Sie die Seite und versuchen Sie es erneut.
pdfjs-views-manager-status-undo-button-label = Rückgängig
pdfjs-views-manager-status-done-button-label = Fertig
pdfjs-views-manager-status-close-button =
.title = Schließen
pdfjs-views-manager-status-close-button-label = Schließen
pdfjs-views-manager-paste-button-label = Einfügen
pdfjs-views-manager-paste-button-before =
.title = Vor der ersten Seite einfügen
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Nach Seite { $page } einfügen
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NEU
pdfjs-views-manager-waiting-for-file = Datei wird hochgeladen…
pdfjs-toggle-views-manager-button1 =
.title = Seiten verwalten
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -167,10 +167,10 @@ pdfjs-printing-not-ready = Warnowanje: PDF njejo se za śišćanje dopołnje zac
## Tooltips and alt text for side panel toolbar buttons
pdfjs-toggle-sidebar-button =
.title = Bocnicu pokazaś/schowaś
.title = Bócnicu pokazaś/schowaś
pdfjs-toggle-sidebar-notification-button =
.title = Bocnicu pśešaltowaś (dokument rozrědowanje/pśipiski/warstwy wopśimujo)
pdfjs-toggle-sidebar-button-label = Bocnicu pokazaś/schowaś
pdfjs-toggle-sidebar-button-label = Bócnicu pokazaś/schowaś
pdfjs-document-outline-button =
.title = Dokumentowe naraźenje pokazaś (dwójne kliknjenje, aby se wšykne zapiski pokazali/schowali)
pdfjs-document-outline-button-label = Dokumentowa struktura
@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniatura boka { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Bok { $page } wubraś
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Bok { $page } z { $total }
## Find panel button title and messages
@ -398,9 +389,9 @@ pdfjs-editor-comments-sidebar-title =
*[other] { $count } komentarow
}
pdfjs-editor-comments-sidebar-close-button =
.title = Bocnicu zacyniś
.aria-label = Bocnicu zacyniś
pdfjs-editor-comments-sidebar-close-button-label = Bocnicu zacyniś
.title = Bócnicu zacyniś
.aria-label = Bócnicu zacyniś
pdfjs-editor-comments-sidebar-close-button-label = Bócnicu zacyniś
# Instructional copy to add a comment by selecting text or an annotations.
pdfjs-editor-comments-sidebar-no-comments1 = Wiźiśo něco wobspomnjeśa gódnego? Wuzwigniśo to a zawóstajśo komentar.
pdfjs-editor-comments-sidebar-no-comments-link = Dalšne informacije
@ -549,7 +540,6 @@ pdfjs-editor-undo-bar-message-freetext = Tekst jo se wótwónoźeł
pdfjs-editor-undo-bar-message-ink = Kreslanka jo se wótwónoźeła
pdfjs-editor-undo-bar-message-stamp = Wobraz jo se wótwónoźeł
pdfjs-editor-undo-bar-message-signature = Signatura jo se wótwónoźeła
pdfjs-editor-undo-bar-message-comment = Komentar jo se wótwónoźeł
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -651,103 +641,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Pśetergnuś
pdfjs-editor-add-comment-button =
.title = Komentar pśidaś
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Bocnicu pśešaltowaś (dokument miniatury/rozrědowanje/pśipiski/warstwy wopśimujo)
pdfjs-toggle-views-manager-button1-label = Boki zastojaś
pdfjs-views-manager-sidebar =
.aria-label = Bocnica
pdfjs-views-manager-sidebar-resizer =
.aria-label = Pśiměrjenje wjelikosći bocnice
pdfjs-views-manager-view-selector-button =
.title = Naglědy
pdfjs-views-manager-view-selector-button-label = Naglědy
pdfjs-views-manager-pages-title = Boki
pdfjs-views-manager-outlines-title1 = Dokumentowa struktura
.title = Dokumentowa struktura (klikniśo dwójcy, aby wšykne zapiski pokazał/schował)
pdfjs-views-manager-attachments-title = Pśidanki
pdfjs-views-manager-layers-title1 = Rowniny
.title = Rowniny (klikniśo dwójcy, aby wšykne rowniny na standardny status slědk stajił)
pdfjs-views-manager-pages-option-label = Boki
pdfjs-views-manager-outlines-option-label = Dokumentowa struktura
pdfjs-views-manager-attachments-option-label = Pśidanki
pdfjs-views-manager-layers-option-label = Rowniny
pdfjs-views-manager-add-file-button =
.title = Dataju pśidaś
pdfjs-views-manager-add-file-button-label = Dataju pśidaś
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } wubrany
[two] { $count } wubranej
[few] { $count } wubrane
*[other] { $count } wubrane
}
pdfjs-views-manager-pages-status-none-action-label = Boki wubraś
pdfjs-views-manager-pages-status-action-button-label = Zastojaś
pdfjs-views-manager-pages-status-copy-button-label = Kopěrowaś
pdfjs-views-manager-pages-status-cut-button-label = Wurězaś
pdfjs-views-manager-pages-status-delete-button-label = Lašowaś
pdfjs-views-manager-pages-status-export-selected-button-label = Wubrane eksportěrowaś…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] { $count } bok wurězany
[two] { $count } boka wurězanej
[few] { $count } boki wurězane
*[other] { $count } bokow wurězane
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] { $count } bok kopěrowany
[two] { $count } boka kopěrowanej
[few] { $count } boki kopěrowane
*[other] { $count } bokow kopěrowane
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] { $count } bok wulašowany
[two] { $count } boka wulašowanej
[few] { $count } boki wulašowane
*[other] { $count } bokow wulašowane
}
pdfjs-views-manager-pages-status-waiting-ready-label = Waša dataja se pśigótujo…
pdfjs-views-manager-pages-status-waiting-uploading-label = Dataja se nagrawa…
pdfjs-views-manager-status-warning-cut-label = Njedajo se wurězaś. Aktualizěrujśo bok a wopytajśo hyšći raz.
pdfjs-views-manager-status-warning-copy-label = Njedajo se kopěrowaś. Aktualizěrujśo bok a wopytajśo hyšći raz.
pdfjs-views-manager-status-warning-delete-label = Njedajo se lašowaś. Aktualizěrujśo bok a wopytajśo hyšći raz.
pdfjs-views-manager-status-warning-save-label = Njedajo se składowaś. Aktualizěrujśo bok a wopytajśo hyšći raz.
pdfjs-views-manager-status-undo-button-label = Anulěrowaś
pdfjs-views-manager-status-done-button-label = Dokóńcony
pdfjs-views-manager-status-close-button =
.title = Zacyniś
pdfjs-views-manager-status-close-button-label = Zacyniś
pdfjs-views-manager-paste-button-label = Zasajźiś
pdfjs-views-manager-paste-button-before =
.title = Pśed prědnym bokom zasajźiś
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Za bokom { $page } zasajźiś
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NOWY
pdfjs-views-manager-waiting-for-file = Dataja se nagrawa…
pdfjs-toggle-views-manager-button1 =
.title = Boki zastojaś
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Μικρογραφία σελίδας { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Επιλογή σελίδας { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Σελίδα { $page } από { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Το κείμενο αφαιρέθηκ
pdfjs-editor-undo-bar-message-ink = Το σχέδιο αφαιρέθηκε
pdfjs-editor-undo-bar-message-stamp = Η εικόνα αφαιρέθηκε
pdfjs-editor-undo-bar-message-signature = Η υπογραφή αφαιρέθηκε
pdfjs-editor-undo-bar-message-comment = Το σχόλιο αφαιρέθηκε
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Ακύρωση
pdfjs-editor-add-comment-button =
.title = Προσθήκη σχολίου
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = (Απ)ενεργοποίηση πλαϊνής γραμμής (το έγγραφο περιέχει μικρογραφίες/περίγραμμα/συνημμένα/επίπεδα)
pdfjs-toggle-views-manager-button1-label = Διαχείριση σελίδων
pdfjs-views-manager-sidebar =
.aria-label = Πλαϊνή γραμμή
pdfjs-views-manager-sidebar-resizer =
.aria-label = Αλλαγή μεγέθους πλαϊνής γραμμής
pdfjs-views-manager-view-selector-button =
.title = Προβολές
pdfjs-views-manager-view-selector-button-label = Προβολές
pdfjs-views-manager-pages-title = Σελίδες
pdfjs-views-manager-outlines-title1 = Διάρθρωση εγγράφου
.title = Διάρθρωση εγγράφου (διπλό κλικ για ανάπτυξη/σύμπτυξη όλων των στοιχείων)
pdfjs-views-manager-attachments-title = Συνημμένα
pdfjs-views-manager-layers-title1 = Επίπεδα
.title = Επίπεδα (διπλό κλικ για επαναφορά όλων των επιπέδων στην προεπιλεγμένη κατάσταση)
pdfjs-views-manager-pages-option-label = Σελίδες
pdfjs-views-manager-outlines-option-label = Διάρθρωση εγγράφου
pdfjs-views-manager-attachments-option-label = Συνημμένα
pdfjs-views-manager-layers-option-label = Επίπεδα
pdfjs-views-manager-add-file-button =
.title = Προσθήκη αρχείου
pdfjs-views-manager-add-file-button-label = Προσθήκη αρχείου
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } επιλεγμένη
*[other] { $count } επιλεγμένες
}
pdfjs-views-manager-pages-status-none-action-label = Επιλογή σελίδων
pdfjs-views-manager-pages-status-action-button-label = Διαχείριση
pdfjs-views-manager-pages-status-copy-button-label = Αντιγραφή
pdfjs-views-manager-pages-status-cut-button-label = Αποκοπή
pdfjs-views-manager-pages-status-delete-button-label = Διαγραφή
pdfjs-views-manager-pages-status-export-selected-button-label = Εξαγωγή επιλεγμένων…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] Αποκόπηκε 1 σελίδα
*[other] Αποκόπηκαν { $count } σελίδες
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] Αντιγράφηκε 1 σελίδα
*[other] Αντιγράφηκαν { $count } σελίδες
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] Διαγράφηκε 1 σελίδα
*[other] Διαγράφηκαν { $count } σελίδες
}
pdfjs-views-manager-pages-status-waiting-ready-label = Προετοιμασία αρχείου…
pdfjs-views-manager-pages-status-waiting-uploading-label = Μεταφόρτωση αρχείου…
pdfjs-views-manager-status-warning-cut-label = Δεν ήταν δυνατή η αποκοπή. Ανανεώστε τη σελίδα και δοκιμάστε ξανά.
pdfjs-views-manager-status-warning-copy-label = Δεν ήταν δυνατή η αντιγραφή. Ανανεώστε τη σελίδα και δοκιμάστε ξανά.
pdfjs-views-manager-status-warning-delete-label = Δεν ήταν δυνατή η διαγραφή. Ανανεώστε τη σελίδα και δοκιμάστε ξανά.
pdfjs-views-manager-status-warning-save-label = Δεν ήταν δυνατή η αποθήκευση. Ανανεώστε τη σελίδα και δοκιμάστε ξανά.
pdfjs-views-manager-status-undo-button-label = Αναίρεση
pdfjs-views-manager-status-done-button-label = Τέλος
pdfjs-views-manager-status-close-button =
.title = Κλείσιμο
pdfjs-views-manager-status-close-button-label = Κλείσιμο
pdfjs-views-manager-paste-button-label = Επικόλληση
pdfjs-views-manager-paste-button-before =
.title = Επικόλληση πριν από την πρώτη σελίδα
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Επικόλληση μετά τη σελίδα { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = ΝΕΟ
pdfjs-views-manager-waiting-for-file = Μεταφόρτωση αρχείου…
pdfjs-toggle-views-manager-button1 =
.title = Διαχείριση σελίδων
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Thumbnail of Page { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Select page { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Page { $page } of { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Text removed
pdfjs-editor-undo-bar-message-ink = Drawing removed
pdfjs-editor-undo-bar-message-stamp = Image removed
pdfjs-editor-undo-bar-message-signature = Signature removed
pdfjs-editor-undo-bar-message-comment = Comment removed
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Cancel
pdfjs-editor-add-comment-button =
.title = Add comment
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Toggle Sidebar (document contains thumbnails/outline/attachments/layers)
pdfjs-toggle-views-manager-button1-label = Manage pages
pdfjs-views-manager-sidebar =
.aria-label = Sidebar
pdfjs-views-manager-sidebar-resizer =
.aria-label = Sidebar resizer
pdfjs-views-manager-view-selector-button =
.title = Views
pdfjs-views-manager-view-selector-button-label = Views
pdfjs-views-manager-pages-title = Pages
pdfjs-views-manager-outlines-title1 = Document outline
.title = Document outline (double-click to expand/collapse all items)
pdfjs-views-manager-attachments-title = Attachments
pdfjs-views-manager-layers-title1 = Layers
.title = Layers (double-click to reset all layers to the default state)
pdfjs-views-manager-pages-option-label = Pages
pdfjs-views-manager-outlines-option-label = Document outline
pdfjs-views-manager-attachments-option-label = Attachments
pdfjs-views-manager-layers-option-label = Layers
pdfjs-views-manager-add-file-button =
.title = Add file
pdfjs-views-manager-add-file-button-label = Add file
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } selected
*[other] { $count } selected
}
pdfjs-views-manager-pages-status-none-action-label = Select pages
pdfjs-views-manager-pages-status-action-button-label = Manage
pdfjs-views-manager-pages-status-copy-button-label = Copy
pdfjs-views-manager-pages-status-cut-button-label = Cut
pdfjs-views-manager-pages-status-delete-button-label = Delete
pdfjs-views-manager-pages-status-export-selected-button-label = Export selected…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 page cut
*[other] { $count } pages cut
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 page copied
*[other] { $count } pages copied
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 page deleted
*[other] { $count } pages deleted
}
pdfjs-views-manager-pages-status-waiting-ready-label = Getting your file ready…
pdfjs-views-manager-pages-status-waiting-uploading-label = Uploading file…
pdfjs-views-manager-status-warning-cut-label = Couldnt cut. Refresh page and try again.
pdfjs-views-manager-status-warning-copy-label = Couldnt copy. Refresh page and try again.
pdfjs-views-manager-status-warning-delete-label = Couldnt delete. Refresh page and try again.
pdfjs-views-manager-status-warning-save-label = Couldnt save. Refresh page and try again.
pdfjs-views-manager-status-undo-button-label = Undo
pdfjs-views-manager-status-done-button-label = Done
pdfjs-views-manager-status-close-button =
.title = Close
pdfjs-views-manager-status-close-button-label = Close
pdfjs-views-manager-paste-button-label = Paste
pdfjs-views-manager-paste-button-before =
.title = Paste before the first page
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Paste after page { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NEW
pdfjs-views-manager-waiting-for-file = Uploading file…
pdfjs-toggle-views-manager-button1 =
.title = Manage pages
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Thumbnail of Page { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Select page { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Page { $page } of { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Text removed
pdfjs-editor-undo-bar-message-ink = Drawing removed
pdfjs-editor-undo-bar-message-stamp = Image removed
pdfjs-editor-undo-bar-message-signature = Signature removed
pdfjs-editor-undo-bar-message-comment = Comment removed
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Cancel
pdfjs-editor-add-comment-button =
.title = Add comment
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Toggle Sidebar (document contains thumbnails/outline/attachments/layers)
pdfjs-toggle-views-manager-button1-label = Manage pages
pdfjs-views-manager-sidebar =
.aria-label = Sidebar
pdfjs-views-manager-sidebar-resizer =
.aria-label = Sidebar resizer
pdfjs-views-manager-view-selector-button =
.title = Views
pdfjs-views-manager-view-selector-button-label = Views
pdfjs-views-manager-pages-title = Pages
pdfjs-views-manager-outlines-title1 = Document outline
.title = Document outline (double-click to expand/collapse all items)
pdfjs-views-manager-attachments-title = Attachments
pdfjs-views-manager-layers-title1 = Layers
.title = Layers (double-click to reset all layers to the default state)
pdfjs-views-manager-pages-option-label = Pages
pdfjs-views-manager-outlines-option-label = Document outline
pdfjs-views-manager-attachments-option-label = Attachments
pdfjs-views-manager-layers-option-label = Layers
pdfjs-views-manager-add-file-button =
.title = Add file
pdfjs-views-manager-add-file-button-label = Add file
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } selected
*[other] { $count } selected
}
pdfjs-views-manager-pages-status-none-action-label = Select pages
pdfjs-views-manager-pages-status-action-button-label = Manage
pdfjs-views-manager-pages-status-copy-button-label = Copy
pdfjs-views-manager-pages-status-cut-button-label = Cut
pdfjs-views-manager-pages-status-delete-button-label = Delete
pdfjs-views-manager-pages-status-export-selected-button-label = Export selected…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 page cut
*[other] { $count } pages cut
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 page copied
*[other] { $count } pages copied
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 page deleted
*[other] { $count } pages deleted
}
pdfjs-views-manager-pages-status-waiting-ready-label = Getting your file ready…
pdfjs-views-manager-pages-status-waiting-uploading-label = Uploading file…
pdfjs-views-manager-status-warning-cut-label = Couldnt cut. Refresh page and try again.
pdfjs-views-manager-status-warning-copy-label = Couldnt copy. Refresh page and try again.
pdfjs-views-manager-status-warning-delete-label = Couldnt delete. Refresh page and try again.
pdfjs-views-manager-status-warning-save-label = Couldnt save. Refresh page and try again.
pdfjs-views-manager-status-undo-button-label = Undo
pdfjs-views-manager-status-done-button-label = Done
pdfjs-views-manager-status-close-button =
.title = Close
pdfjs-views-manager-status-close-button-label = Close
pdfjs-views-manager-paste-button-label = Paste
pdfjs-views-manager-paste-button-before =
.title = Paste before the first page
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Paste after page { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NEW
pdfjs-views-manager-waiting-for-file = Uploading file…
pdfjs-toggle-views-manager-button1 =
.title = Manage pages
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -192,20 +192,14 @@ pdfjs-additional-layers = Additional Layers
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Page { $page } of { $total }
pdfjs-thumb-page-title =
.title = Page { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Thumbnail of Page { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Select page { $page }
## Find panel button title and messages
pdfjs-find-input =
@ -538,6 +532,15 @@ pdfjs-editor-alt-text-settings-automatic-title = Automatic alt text
pdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically
pdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who cant see the image or when the image doesnt load.
# Variables:
# $totalSize (Number) - the total size (in MB) of the AI model.
pdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB)
pdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text.
pdfjs-editor-alt-text-settings-delete-model-button = Delete
pdfjs-editor-alt-text-settings-download-model-button = Download
pdfjs-editor-alt-text-settings-downloading-model-button = Downloading…
pdfjs-editor-alt-text-settings-editor-title = Alt text editor
pdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image
pdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.
@ -558,7 +561,6 @@ pdfjs-editor-undo-bar-message-freetext = Text removed
pdfjs-editor-undo-bar-message-ink = Drawing removed
pdfjs-editor-undo-bar-message-stamp = Image removed
pdfjs-editor-undo-bar-message-signature = Signature removed
pdfjs-editor-undo-bar-message-comment = Comment removed
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -691,25 +693,21 @@ pdfjs-editor-add-comment-button =
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-button1 =
.title = Manage pages
pdfjs-toggle-views-manager-button =
.title = Toggle Sidebar
pdfjs-toggle-views-manager-notification-button =
.title = Toggle Sidebar (document contains thumbnails/outline/attachments/layers)
pdfjs-toggle-views-manager-button1-label = Manage pages
pdfjs-toggle-views-manager-button-label = Toggle Sidebar
pdfjs-views-manager-sidebar =
.aria-label = Sidebar
pdfjs-views-manager-sidebar-resizer =
.aria-label = Sidebar resizer
pdfjs-views-manager-view-selector-button =
.title = Views
pdfjs-views-manager-view-selector-button-label = Views
pdfjs-views-manager-pages-title = Pages
pdfjs-views-manager-outlines-title1 = Document outline
.title = Document outline (double-click to expand/collapse all items)
pdfjs-views-manager-outlines-title = Document outline
pdfjs-views-manager-attachments-title = Attachments
pdfjs-views-manager-layers-title1 = Layers
.title = Layers (double-click to reset all layers to the default state)
pdfjs-views-manager-layers-title = Layers
pdfjs-views-manager-pages-option-label = Pages
pdfjs-views-manager-outlines-option-label = Document outline
@ -732,7 +730,7 @@ pdfjs-views-manager-pages-status-action-button-label = Manage
pdfjs-views-manager-pages-status-copy-button-label = Copy
pdfjs-views-manager-pages-status-cut-button-label = Cut
pdfjs-views-manager-pages-status-delete-button-label = Delete
pdfjs-views-manager-pages-status-export-selected-button-label = Export selected
pdfjs-views-manager-pages-status-save-as-button-label = Save as
# Variables:
# $count (Number) - the number of selected pages to be cut.
@ -766,115 +764,6 @@ pdfjs-views-manager-status-warning-copy-label = Couldnt copy. Refresh page an
pdfjs-views-manager-status-warning-delete-label = Couldnt delete. Refresh page and try again.
pdfjs-views-manager-status-warning-save-label = Couldnt save. Refresh page and try again.
pdfjs-views-manager-status-undo-button-label = Undo
pdfjs-views-manager-status-done-button-label = Done
pdfjs-views-manager-status-close-button =
.title = Close
pdfjs-views-manager-status-close-button-label = Close
pdfjs-views-manager-paste-button-label = Paste
pdfjs-views-manager-paste-button-before =
.title = Paste before the first page
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Paste after page { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NEW
pdfjs-views-manager-waiting-for-file = Uploading file…
## Digital signature properties (signature verification panel)
pdfjs-digital-signature-properties-button =
.title = Digital signature properties
.aria-label = Digital signature properties
pdfjs-digital-signature-properties-button-label = Digital signature properties
## Banner shown above the signature list summarising the overall
## verification state of the document. Each variant is selected by the
## viewer based on the worst per-signature status; one signature is
## enough to lower the banner.
##
## Variables:
## $count (Number) - number of signatures at the worst level.
pdfjs-digital-signature-properties-banner-verified = Document was signed with a valid digital signature
pdfjs-digital-signature-properties-banner-unknown =
{ $count ->
[one] Document signed but { $count } digital signature could not be verified
*[other] Document signed but { $count } digital signatures could not be verified
}
pdfjs-digital-signature-properties-banner-untrusted =
{ $count ->
[one] Document signed with { $count } certificate that is not trusted
*[other] Document signed with { $count } certificates that are not trusted
}
pdfjs-digital-signature-properties-banner-expired =
{ $count ->
[one] Document signed with { $count } expired certificate
*[other] Document signed with { $count } expired certificates
}
pdfjs-digital-signature-properties-banner-invalid =
{ $count ->
[one] Document has { $count } invalid digital signature
*[other] Document has { $count } invalid digital signatures
}
pdfjs-digital-signature-properties-banner-revoked =
{ $count ->
[one] Document signed with { $count } revoked certificate
*[other] Document signed with { $count } revoked certificates
}
## Per-signature status row. Only three distinct strings are needed:
## the signature crypto either verified (the cert chain may still be
## untrusted/expired/revoked, but that's surfaced on the cert row
## below), or it failed, or its sub-format isn't supported.
pdfjs-digital-signature-properties-status-verified = Status: Signature verified
pdfjs-digital-signature-properties-status-invalid = Status: Signature invalid
pdfjs-digital-signature-properties-status-unknown = Status: Unable to verify (unsupported)
## Per-signature certificate row. The variants with an issuer / date in
## parentheses embed fully-localized context — no English fall-through.
##
## Variables:
## $issuer (String) - issuer or subject common name from the cert.
## $dateObj (Date) - notAfter date for the expired-with-date form.
pdfjs-digital-signature-properties-certificate-trusted = Certificate: Trusted ({ $issuer })
pdfjs-digital-signature-properties-certificate-unknown = Certificate: Unavailable
pdfjs-digital-signature-properties-certificate-untrusted = Certificate: Untrusted
pdfjs-digital-signature-properties-certificate-untrusted-unknown-issuer = Certificate: Unknown issuer ({ $issuer })
pdfjs-digital-signature-properties-certificate-untrusted-self-signed = Certificate: Self-signed ({ $issuer })
pdfjs-digital-signature-properties-certificate-untrusted-untrusted-issuer = Certificate: Untrusted issuer ({ $issuer })
pdfjs-digital-signature-properties-certificate-expired = Certificate: Expired
pdfjs-digital-signature-properties-certificate-expired-with-date = Certificate: Expired ({ DATETIME($dateObj, dateStyle: "medium") })
pdfjs-digital-signature-properties-certificate-revoked = Certificate: Revoked
##
pdfjs-digital-signature-properties-view-certificate = View certificate
# Shown beneath an invalid signature card to explain why verification
# failed. The text comes from NSS (e.g. "Signature integrity has been
# compromised", "PKCS#7 signature could not be parsed") and is not
# itself localized — it is the underlying error message produced by
# the verification backend.
# Variables:
# $reason (String) - error message describing why the signature
# could not be verified.
pdfjs-digital-signature-properties-reason = Reason: { $reason }
# Variables:
# $dateObj (Date) - the signing time from the /Sig dict's /M entry.
pdfjs-digital-signature-properties-timestamp = Timestamp: { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") }
# Variables:
# $count (Number) - number of nested sub-signatures (one per earlier
# incremental revision of the document).
pdfjs-digital-signature-properties-sub-signatures =
{ $count ->
[one] Sub-signature ({ $count })
*[other] Sub-signatures ({ $count })
}

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniaturo de paĝo { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Elekti paĝon { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Paĝo { $page } el { $total }
## Find panel button title and messages
@ -223,7 +214,7 @@ pdfjs-find-next-button =
.title = Serĉi la venontan aperon de la frazo
pdfjs-find-next-button-label = Antaŭen
pdfjs-find-highlight-checkbox = Elstarigi ĉiujn
pdfjs-find-match-case-checkbox-label = Distingi usklecon
pdfjs-find-match-case-checkbox-label = Distingi inter majuskloj kaj minuskloj
pdfjs-find-match-diacritics-checkbox-label = Respekti supersignojn
pdfjs-find-entire-word-checkbox-label = Tutaj vortoj
pdfjs-find-reached-top = Komenco de la dokumento atingita, daŭrigado ekde la fino
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Teksto forigita
pdfjs-editor-undo-bar-message-ink = Desegno forigita
pdfjs-editor-undo-bar-message-stamp = Bildo forigita
pdfjs-editor-undo-bar-message-signature = Subskribo forigita
pdfjs-editor-undo-bar-message-comment = Komento forigita
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Nuligi
pdfjs-editor-add-comment-button =
.title = Aldoni komenton
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Montri/kaŝi flankan strion (la dokumento enhavas miniaturojn/konturon/kunsendaĵojn/tavolojn)
pdfjs-toggle-views-manager-button1-label = Administri paĝojn
pdfjs-views-manager-sidebar =
.aria-label = Flanka strio
pdfjs-views-manager-sidebar-resizer =
.aria-label = Dimensiigilo por la flanka strio
pdfjs-views-manager-view-selector-button =
.title = Vidoj
pdfjs-views-manager-view-selector-button-label = Vidoj
pdfjs-views-manager-pages-title = Paĝoj
pdfjs-views-manager-outlines-title1 = Konturo de dokumento
.title = Konturo de dokumento (alklaku duoble por faldi/malfaldi ĉiujn elementojn)
pdfjs-views-manager-attachments-title = Kunsendaĵoj
pdfjs-views-manager-layers-title1 = Tavoloj
.title = Tavoloj (alklaku duoble por ke ĉiuj tavoloj reiru al la norma stato)
pdfjs-views-manager-pages-option-label = Paĝoj
pdfjs-views-manager-outlines-option-label = Konturo de dokumento
pdfjs-views-manager-attachments-option-label = Kunsendaĵoj
pdfjs-views-manager-layers-option-label = Tavoloj
pdfjs-views-manager-add-file-button =
.title = Aldoni dosieron
pdfjs-views-manager-add-file-button-label = Aldoni dosieron
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } elektita
*[other] { $count } elektitaj
}
pdfjs-views-manager-pages-status-none-action-label = Elekti paĝojn
pdfjs-views-manager-pages-status-action-button-label = Administri
pdfjs-views-manager-pages-status-copy-button-label = Kopii
pdfjs-views-manager-pages-status-cut-button-label = Eltondi
pdfjs-views-manager-pages-status-delete-button-label = Forigi
pdfjs-views-manager-pages-status-export-selected-button-label = Eksporti elektitajn…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 paĝo eltondita
*[other] { $count } paĝoj eltonditaj
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 paĝo kopiita
*[other] { $count } paĝoj kopiitaj
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 paĝo forigita
*[other] { $count } paĝoj forigitaj
}
pdfjs-views-manager-pages-status-waiting-ready-label = Pretigo de via dosiero…
pdfjs-views-manager-pages-status-waiting-uploading-label = Dosiero alŝutata…
pdfjs-views-manager-status-warning-cut-label = Ne eblis eltondi. Refreŝigu la paĝon kaj provu denove.
pdfjs-views-manager-status-warning-copy-label = Ne eblis kopii. Refreŝigu la paĝon kaj provu denove.
pdfjs-views-manager-status-warning-delete-label = Ne eblis forigi. Refreŝigu la paĝon kaj provu denove.
pdfjs-views-manager-status-warning-save-label = Ne eblis konservi. Refreŝigu la paĝon kaj provu denove.
pdfjs-views-manager-status-undo-button-label = Malfari
pdfjs-views-manager-status-done-button-label = Farita
pdfjs-views-manager-status-close-button =
.title = Fermi
pdfjs-views-manager-status-close-button-label = Fermi
pdfjs-views-manager-paste-button-label = Alglui
pdfjs-views-manager-paste-button-before =
.title = Alglui antaŭ la unua paĝo
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Alglui post la paĝo { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NOVA
pdfjs-views-manager-waiting-for-file = Dosiero alŝutata…
pdfjs-toggle-views-manager-button1 =
.title = Administri paĝojn
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniatura de página { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Seleccionar página { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Página { $page } de { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Texto eliminado
pdfjs-editor-undo-bar-message-ink = Dibujo eliminado
pdfjs-editor-undo-bar-message-stamp = Imagen eliminado
pdfjs-editor-undo-bar-message-signature = Firma eliminada
pdfjs-editor-undo-bar-message-comment = Comentario eliminado
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Cancelar
pdfjs-editor-add-comment-button =
.title = Agregar comentario
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Alternar barra lateral (el documento contiene miniaturas/esquemas/adjuntos/capas)
pdfjs-toggle-views-manager-button1-label = Administrar páginas
pdfjs-views-manager-sidebar =
.aria-label = Barra lateral
pdfjs-views-manager-sidebar-resizer =
.aria-label = Redimensionador de barra lateral
pdfjs-views-manager-view-selector-button =
.title = Vistas
pdfjs-views-manager-view-selector-button-label = Vistas
pdfjs-views-manager-pages-title = Páginas
pdfjs-views-manager-outlines-title1 = Esquema del documento
.title = Esquema del documento (doble clic para expandir/colapsar todos los ítems)
pdfjs-views-manager-attachments-title = Adjuntos
pdfjs-views-manager-layers-title1 = Capas
.title = Capas (doble clic para restablecer todas las cañas al estado predeterminado)
pdfjs-views-manager-pages-option-label = Páginas
pdfjs-views-manager-outlines-option-label = Esquema del documento
pdfjs-views-manager-attachments-option-label = Adjuntos
pdfjs-views-manager-layers-option-label = Capas
pdfjs-views-manager-add-file-button =
.title = Agregar archivo
pdfjs-views-manager-add-file-button-label = Agregar archivo
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } seleccionada
*[other] { $count } seleccionadas
}
pdfjs-views-manager-pages-status-none-action-label = Seleccionar páginas
pdfjs-views-manager-pages-status-action-button-label = Administrar
pdfjs-views-manager-pages-status-copy-button-label = Copiar
pdfjs-views-manager-pages-status-cut-button-label = Cortar
pdfjs-views-manager-pages-status-delete-button-label = Borrar
pdfjs-views-manager-pages-status-export-selected-button-label = Exportar seleccionado…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 página cortada
*[other] { $count } páginas cortadas
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 página copiada
*[other] { $count } páginas copiadas
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 página borrada
*[other] { $count } páginas borradas
}
pdfjs-views-manager-pages-status-waiting-ready-label = Preparando el archivo…
pdfjs-views-manager-pages-status-waiting-uploading-label = Subiendo el archivo…
pdfjs-views-manager-status-warning-cut-label = No se pudo cortar. Refresque la página y pruebe de nuevo.
pdfjs-views-manager-status-warning-copy-label = No se pudo copiar. Refresque la página y pruebe de nuevo.
pdfjs-views-manager-status-warning-delete-label = No se pudo borrar. Refresque la página y pruebe de nuevo.
pdfjs-views-manager-status-warning-save-label = No se pudo guardar. Refresque la página y pruebe de nuevo.
pdfjs-views-manager-status-undo-button-label = Deshacer
pdfjs-views-manager-status-done-button-label = Listo
pdfjs-views-manager-status-close-button =
.title = Cerrar
pdfjs-views-manager-status-close-button-label = Cerrar
pdfjs-views-manager-paste-button-label = Pegar
pdfjs-views-manager-paste-button-before =
.title = Pegar antes de la primera página
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Pegar después de la página { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NUEVO
pdfjs-views-manager-waiting-for-file = Subiendo archivo…
pdfjs-toggle-views-manager-button1 =
.title = Administrar páginas
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniatura de la página { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Selecciona la página { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Página { $page } de { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Texto eliminado
pdfjs-editor-undo-bar-message-ink = Dibujo eliminado
pdfjs-editor-undo-bar-message-stamp = Imagen eliminada
pdfjs-editor-undo-bar-message-signature = Firma eliminada
pdfjs-editor-undo-bar-message-comment = Comentario eliminado
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Cancelar
pdfjs-editor-add-comment-button =
.title = Añadir comentario
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Cambiar barra lateral (índice de contenidos del documento/miniaturas/adjuntos/capas)
pdfjs-toggle-views-manager-button1-label = Gestionar páginas
pdfjs-views-manager-sidebar =
.aria-label = Barra lateral
pdfjs-views-manager-sidebar-resizer =
.aria-label = Redimensionador de la barra lateral
pdfjs-views-manager-view-selector-button =
.title = Vistas
pdfjs-views-manager-view-selector-button-label = Vistas
pdfjs-views-manager-pages-title = Páginas
pdfjs-views-manager-outlines-title1 = Esquema del documento
.title = Esquema del documento (doble clic para expandir/contraer todos los elementos)
pdfjs-views-manager-attachments-title = Adjuntos
pdfjs-views-manager-layers-title1 = Capas
.title = Capas (doble clic para restablecer todas las capas a su estado predeterminado)
pdfjs-views-manager-pages-option-label = Páginas
pdfjs-views-manager-outlines-option-label = Esquema del documento
pdfjs-views-manager-attachments-option-label = Adjuntos
pdfjs-views-manager-layers-option-label = Capas
pdfjs-views-manager-add-file-button =
.title = Añadir archivo
pdfjs-views-manager-add-file-button-label = Añadir archivo
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } seleccionado
*[other] { $count } seleccionados
}
pdfjs-views-manager-pages-status-none-action-label = Seleccionar páginas
pdfjs-views-manager-pages-status-action-button-label = Administrar
pdfjs-views-manager-pages-status-copy-button-label = Copiar
pdfjs-views-manager-pages-status-cut-button-label = Cortar
pdfjs-views-manager-pages-status-delete-button-label = Eliminar
pdfjs-views-manager-pages-status-export-selected-button-label = Exportar selección…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 página cortada
*[other] { $count } páginas cortadas
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 página copiada
*[other] { $count } páginas copiadas
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 página eliminada
*[other] { $count } páginas eliminadas
}
pdfjs-views-manager-pages-status-waiting-ready-label = Preparando tu archivo…
pdfjs-views-manager-pages-status-waiting-uploading-label = Subiendo archivo…
pdfjs-views-manager-status-warning-cut-label = No se pudo cortar. Actualiza la página y vuelve a intentarlo.
pdfjs-views-manager-status-warning-copy-label = No se pudo copiar. Actualiza la página y vuelve a intentarlo.
pdfjs-views-manager-status-warning-delete-label = No se pudo eliminar. Actualiza la página y vuelve a intentarlo.
pdfjs-views-manager-status-warning-save-label = No se pudo guardar. Actualiza la página y vuelve a intentarlo.
pdfjs-views-manager-status-undo-button-label = Deshacer
pdfjs-views-manager-status-done-button-label = Hecho
pdfjs-views-manager-status-close-button =
.title = Cerrar
pdfjs-views-manager-status-close-button-label = Cerrar
pdfjs-views-manager-paste-button-label = Pegar
pdfjs-views-manager-paste-button-before =
.title = Pegar antes de la primera página
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Pegar después de la página { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NUEVO
pdfjs-views-manager-waiting-for-file = Subiendo archivo…
pdfjs-toggle-views-manager-button1 =
.title = Gestionar páginas
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniatura de la página { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Seleccionar página { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Página { $page } de { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Texto eliminado
pdfjs-editor-undo-bar-message-ink = Dibujo eliminado
pdfjs-editor-undo-bar-message-stamp = Imagen eliminada
pdfjs-editor-undo-bar-message-signature = Firma eliminada
pdfjs-editor-undo-bar-message-comment = Comentario eliminado
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Cancelar
pdfjs-editor-add-comment-button =
.title = Añadir comentario
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Alternar barra lateral (el documento contiene miniaturas/esquemas/adjuntos/capas)
pdfjs-toggle-views-manager-button1-label = Administrar páginas
pdfjs-views-manager-sidebar =
.aria-label = Barra lateral
pdfjs-views-manager-sidebar-resizer =
.aria-label = Redimensionador de la barra lateral
pdfjs-views-manager-view-selector-button =
.title = Vistas
pdfjs-views-manager-view-selector-button-label = Vistas
pdfjs-views-manager-pages-title = Páginas
pdfjs-views-manager-outlines-title1 = Esquema del documento
.title = Esquema del documento (doble-clic para expandir/contraer todos los elementos)
pdfjs-views-manager-attachments-title = Adjuntos
pdfjs-views-manager-layers-title1 = Capas
.title = Capas (doble clic para restablecer todas las capas a su estado predeterminado)
pdfjs-views-manager-pages-option-label = Páginas
pdfjs-views-manager-outlines-option-label = Esquema del documento
pdfjs-views-manager-attachments-option-label = Adjuntos
pdfjs-views-manager-layers-option-label = Capas
pdfjs-views-manager-add-file-button =
.title = Añadir archivo
pdfjs-views-manager-add-file-button-label = Añadir archivo
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } seleccionado
*[other] { $count } seleccionados
}
pdfjs-views-manager-pages-status-none-action-label = Seleccionar páginas
pdfjs-views-manager-pages-status-action-button-label = Administrar
pdfjs-views-manager-pages-status-copy-button-label = Copiar
pdfjs-views-manager-pages-status-cut-button-label = Cortar
pdfjs-views-manager-pages-status-delete-button-label = Eliminar
pdfjs-views-manager-pages-status-export-selected-button-label = Exportar selección…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 página cortada
*[other] { $count } páginas cortadas
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 página copiada
*[other] { $count } páginas cortadas
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 página eliminada
*[other] { $count } páginas eliminadas
}
pdfjs-views-manager-pages-status-waiting-ready-label = Preparando su archivo…
pdfjs-views-manager-pages-status-waiting-uploading-label = Subiendo el archivo…
pdfjs-views-manager-status-warning-cut-label = No se pudo cortar. Refresque la página y pruebe de nuevo.
pdfjs-views-manager-status-warning-copy-label = No se pudo copiar. Refresque la página y pruebe de nuevo.
pdfjs-views-manager-status-warning-delete-label = No se pudo cortar. Refresque la página y pruebe de nuevo.
pdfjs-views-manager-status-warning-save-label = No se pudo cortar. Refresque la página y pruebe de nuevo.
pdfjs-views-manager-status-undo-button-label = Deshacer
pdfjs-views-manager-status-done-button-label = Hecho
pdfjs-views-manager-status-close-button =
.title = Cerrar
pdfjs-views-manager-status-close-button-label = Cerrar
pdfjs-views-manager-paste-button-label = Pegar
pdfjs-views-manager-paste-button-before =
.title = Pegar antes de la primera página
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Pegar después de la página { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NUEVO
pdfjs-views-manager-waiting-for-file = Subiendo el archivo…
pdfjs-toggle-views-manager-button1 =
.title = Administrar páginas
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniatura de la página { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Seleccionar página { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Página { $page } de { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Texto eliminado
pdfjs-editor-undo-bar-message-ink = Dibujo eliminado
pdfjs-editor-undo-bar-message-stamp = Imagen eliminada
pdfjs-editor-undo-bar-message-signature = Firma eliminada
pdfjs-editor-undo-bar-message-comment = Comentario eliminado
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Cancelar
pdfjs-editor-add-comment-button =
.title = Añadir comentario
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Cambiar barra lateral (índice de contenidos del documento/miniaturas/adjuntos/capas)
pdfjs-toggle-views-manager-button1-label = Administrar páginas
pdfjs-views-manager-sidebar =
.aria-label = Barra lateral
pdfjs-views-manager-sidebar-resizer =
.aria-label = Cambiar tamaño de la barra lateral
pdfjs-views-manager-view-selector-button =
.title = Vistas
pdfjs-views-manager-view-selector-button-label = Vistas
pdfjs-views-manager-pages-title = Páginas
pdfjs-views-manager-outlines-title1 = Esquema del documento
.title = Esquema del documento (haz doble clic para expandir/contraer todos los elementos)
pdfjs-views-manager-attachments-title = Adjuntos
pdfjs-views-manager-layers-title1 = Capas
.title = Capas (haz doble clic para restablecer todas las capas a su estado predeterminado)
pdfjs-views-manager-pages-option-label = Páginas
pdfjs-views-manager-outlines-option-label = Esquema del documento
pdfjs-views-manager-attachments-option-label = Adjuntos
pdfjs-views-manager-layers-option-label = Capas
pdfjs-views-manager-add-file-button =
.title = Agregar archivo
pdfjs-views-manager-add-file-button-label = Agregar archivo
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } seleccionado
*[other] { $count } seleccionados
}
pdfjs-views-manager-pages-status-none-action-label = Seleccionar páginas
pdfjs-views-manager-pages-status-action-button-label = Administrar
pdfjs-views-manager-pages-status-copy-button-label = Copiar
pdfjs-views-manager-pages-status-cut-button-label = Cortar
pdfjs-views-manager-pages-status-delete-button-label = Eliminar
pdfjs-views-manager-pages-status-export-selected-button-label = Exportar seleccionado…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 página cortada
*[other] { $count } páginas cortadas
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 pagina copiada
*[other] { $count } paginas copiadas
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 pagina eliminada
*[other] { $count } paginas eliminadas
}
pdfjs-views-manager-pages-status-waiting-ready-label = Preparando tu archivo…
pdfjs-views-manager-pages-status-waiting-uploading-label = Subiendo archivo…
pdfjs-views-manager-status-warning-cut-label = No se pudo cortar. Actualiza la página y vuelve a intentarlo.
pdfjs-views-manager-status-warning-copy-label = No se pudo pegar. Actualiza la página y vuelve a intentarlo.
pdfjs-views-manager-status-warning-delete-label = No se pudo eliminar. Actualiza la página y vuelve a intentarlo.
pdfjs-views-manager-status-warning-save-label = No se pudo guardar. Actualiza la página y vuelve a intentarlo.
pdfjs-views-manager-status-undo-button-label = Deshacer
pdfjs-views-manager-status-done-button-label = Hecho
pdfjs-views-manager-status-close-button =
.title = Cerrar
pdfjs-views-manager-status-close-button-label = Cerrar
pdfjs-views-manager-paste-button-label = Pegar
pdfjs-views-manager-paste-button-before =
.title = Pegar antes de la primera página
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Pegar después de la página { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NUEVO
pdfjs-views-manager-waiting-for-file = Subiendo archivo…
pdfjs-toggle-views-manager-button1 =
.title = Administrar páginas
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -21,7 +21,7 @@ pdfjs-of-pages = / { $pagesCount }
# Variables:
# $pageNumber (Number) - the currently visible page
# $pagesCount (Number) - the total number of pages in the document
pdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })
pdfjs-page-of-pages = { $pagesCount }/{ $pageNumber }
pdfjs-zoom-out-button =
.title = Urrundu zooma
pdfjs-zoom-out-button-label = Urrundu zooma
@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = { $page }. orriaren koadro txikia
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Hautatu { $page } orria
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = { $page } / { $total } orria
## Find panel button title and messages
@ -233,8 +224,8 @@ pdfjs-find-reached-bottom = Dokumentuaren bukaerara heldu da, hasieratik jarrait
# $total (Number) - the total number of matches in the document
pdfjs-find-match-count =
{ $total ->
[one] { $current }/{ $total } bat-etortzea
*[other] { $current }/{ $total } bat-etortzea
[one] { $total }/{ $current }. bat-etortzea
*[other] { $total }/{ $current }. bat-etortzea
}
# Variables:
# $limit (Number) - the maximum number of matches
@ -488,8 +479,8 @@ pdfjs-editor-new-alt-text-error-close-button = Itxi
# Variables:
# $totalSize (Number) - the total size (in MB) of the AI model.
# $downloadedSize (Number) - the downloaded size (in MB) of the AI model.
pdfjs-editor-new-alt-text-ai-model-downloading-progress = Testu alternatiboaren AA modeloa deskargatzen ({ $downloadedSize }/{ $totalSize } MB)
.aria-valuetext = Testu alternatiboaren AA modeloa deskargatzen ({ $downloadedSize }/{ $totalSize } MB)
pdfjs-editor-new-alt-text-ai-model-downloading-progress = Testu alternatiboaren AA modeloa deskargatzen ({ $totalSize }/{ $downloadedSize } MB)
.aria-valuetext = Testu alternatiboaren AA modeloa deskargatzen ({ $totalSize }/{ $downloadedSize } MB)
# This is a button that users can click to edit the alt text they have already added.
pdfjs-editor-new-alt-text-added-button =
.aria-label = Testu alternatiboa gehituta
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Testua kenduta
pdfjs-editor-undo-bar-message-ink = Marrazkia kenduta
pdfjs-editor-undo-bar-message-stamp = Irudia kenduta
pdfjs-editor-undo-bar-message-signature = Sinadura kenduta
pdfjs-editor-undo-bar-message-comment = Iruzkina kenduta
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -647,95 +637,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Utzi
pdfjs-editor-add-comment-button =
.title = Gehitu iruzkina
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Txandakatu alboko barra (dokumentuak koadro txikiak/eskema/eranskinak/geruzak ditu)
pdfjs-toggle-views-manager-button1-label = Kudeatu orriak
pdfjs-views-manager-sidebar =
.aria-label = Alboko barra
pdfjs-views-manager-sidebar-resizer =
.aria-label = Alboko barra neurriz aldatzekoa
pdfjs-views-manager-view-selector-button =
.title = Ikuspegiak
pdfjs-views-manager-view-selector-button-label = Ikuspegiak
pdfjs-views-manager-pages-title = Orriak
pdfjs-views-manager-outlines-title1 = Dokumentuaren eskema
.title = Dokumentuaren eskema (klik bikoitza elementu guztiak zabaltzeko/tolesteko)
pdfjs-views-manager-attachments-title = Eranskinak
pdfjs-views-manager-layers-title1 = Geruzak
.title = Geruzak (klik bikoitza geruza guztiak egoera lehenetsira berrezartzeko)
pdfjs-views-manager-pages-option-label = Orriak
pdfjs-views-manager-outlines-option-label = Dokumentuaren eskema
pdfjs-views-manager-attachments-option-label = Eranskinak
pdfjs-views-manager-layers-option-label = Geruzak
pdfjs-views-manager-add-file-button =
.title = Gehitu fitxategia
pdfjs-views-manager-add-file-button-label = Gehitu fitxategia
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } hautatuta
*[other] { $count } hautatuta
}
pdfjs-views-manager-pages-status-none-action-label = Hautatu orriak
pdfjs-views-manager-pages-status-action-button-label = Kudeatu
pdfjs-views-manager-pages-status-copy-button-label = Kopiatu
pdfjs-views-manager-pages-status-cut-button-label = Ebaki
pdfjs-views-manager-pages-status-delete-button-label = Ezabatu
pdfjs-views-manager-pages-status-export-selected-button-label = Esportatu hautatutakoa…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] Orri bat moztuta
*[other] { $count } orri moztuta
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] Orri bat kopiatuta
*[other] { $count } orri kopiatuta
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] Orri bat ezabatuta
*[other] { $count } orri ezabatuta
}
pdfjs-views-manager-pages-status-waiting-ready-label = Zuee fitxategia prestatzen…
pdfjs-views-manager-pages-status-waiting-uploading-label = Fitxategia igotzen…
pdfjs-views-manager-status-warning-cut-label = Ezin da moztu. Berritu orria eta saiatu berriro.
pdfjs-views-manager-status-warning-copy-label = Ezin da kopiatu. Berritu orria eta saiatu berriro.
pdfjs-views-manager-status-warning-delete-label = Ezin da ezabatu. Berritu orria eta saiatu berriro.
pdfjs-views-manager-status-warning-save-label = Ezin da gorde. Berritu orria eta saiatu berriro.
pdfjs-views-manager-status-undo-button-label = Desegin
pdfjs-views-manager-status-done-button-label = Eginda
pdfjs-views-manager-status-close-button =
.title = Itxi
pdfjs-views-manager-status-close-button-label = Itxi
pdfjs-views-manager-paste-button-label = Itsatsi
pdfjs-views-manager-paste-button-before =
.title = Itsatsi lehen orriaren aurretik
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Itsatsi { $page }. orriaren aurretik
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = BERRIA
pdfjs-views-manager-waiting-for-file = Fitxategia igotzen…
pdfjs-toggle-views-manager-button1 =
.title = Kudeatu orriak
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Pienoiskuva sivusta { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Valitse sivu { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Sivu { $page }/{ $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Teksti poistettu
pdfjs-editor-undo-bar-message-ink = Piirustus poistettu
pdfjs-editor-undo-bar-message-stamp = Kuva poistettu
pdfjs-editor-undo-bar-message-signature = Allekirjoitus poistettu
pdfjs-editor-undo-bar-message-comment = Kommentti poistettu
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Peruuta
pdfjs-editor-add-comment-button =
.title = Lisää kommentti
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Näytä/piilota sivupaneeli (dokumentissa on pienoiskuvat/sisällys/liitteitä/tasoja)
pdfjs-toggle-views-manager-button1-label = Hallitse sivuja
pdfjs-views-manager-sidebar =
.aria-label = Sivupaneeli
pdfjs-views-manager-sidebar-resizer =
.aria-label = Sivupaneelin koon muuttaja
pdfjs-views-manager-view-selector-button =
.title = Näkymät
pdfjs-views-manager-view-selector-button-label = Näkymät
pdfjs-views-manager-pages-title = Sivut
pdfjs-views-manager-outlines-title1 = Dokumentin sisällys
.title = Dokumentin sisällys (napsauta kahdesti laajentaaksesi/supistaaksesi kohteet)
pdfjs-views-manager-attachments-title = Liitteet
pdfjs-views-manager-layers-title1 = Tasot
.title = Tasot (napsauta kahdesti nollataksesi tasot niiden oletustilaan)
pdfjs-views-manager-pages-option-label = Sivut
pdfjs-views-manager-outlines-option-label = Dokumentin sisällys
pdfjs-views-manager-attachments-option-label = Liitteet
pdfjs-views-manager-layers-option-label = Tasot
pdfjs-views-manager-add-file-button =
.title = Lisää tiedosto
pdfjs-views-manager-add-file-button-label = Lisää tiedosto
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } valittu
*[other] { $count } valittu
}
pdfjs-views-manager-pages-status-none-action-label = Valitse sivut
pdfjs-views-manager-pages-status-action-button-label = Hallitse
pdfjs-views-manager-pages-status-copy-button-label = Kopioi
pdfjs-views-manager-pages-status-cut-button-label = Leikkaa
pdfjs-views-manager-pages-status-delete-button-label = Poista
pdfjs-views-manager-pages-status-export-selected-button-label = Vie valitut…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 sivu leikattu
*[other] { $count } sivua leikattu
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 sivu kopioitu
*[other] { $count } sivua kopioitu
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 sivu poistettu
*[other] { $count } sivua poistettu
}
pdfjs-views-manager-pages-status-waiting-ready-label = Tiedostoa valmistellaan…
pdfjs-views-manager-pages-status-waiting-uploading-label = Lähetetään tiedostoa…
pdfjs-views-manager-status-warning-cut-label = Leikkaaminen epäonnistui. Päivitä sivu ja yritä uudelleen.
pdfjs-views-manager-status-warning-copy-label = Kopiointi epäonnistui. Päivitä sivu ja yritä uudelleen.
pdfjs-views-manager-status-warning-delete-label = Poisto epäonnistui. Päivitä sivu ja yritä uudelleen.
pdfjs-views-manager-status-warning-save-label = Tallentaminen epäonnistui. Päivitä sivu ja yritä uudelleen.
pdfjs-views-manager-status-undo-button-label = Kumoa
pdfjs-views-manager-status-done-button-label = Valmis
pdfjs-views-manager-status-close-button =
.title = Sulje
pdfjs-views-manager-status-close-button-label = Sulje
pdfjs-views-manager-paste-button-label = Liitä
pdfjs-views-manager-paste-button-before =
.title = Liitä ennen ensimmäistä sivua
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Liitä sivun { $page } jälkeen
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = UUTTA
pdfjs-views-manager-waiting-for-file = Lähetetään tiedostoa…
pdfjs-toggle-views-manager-button1 =
.title = Hallitse sivuja
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Vignette de la page { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Sélectionner la page { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Page { $page } sur { $total }
## Find panel button title and messages
@ -539,7 +530,6 @@ pdfjs-editor-undo-bar-message-freetext = Texte supprimé
pdfjs-editor-undo-bar-message-ink = Dessin supprimé
pdfjs-editor-undo-bar-message-stamp = Image supprimée
pdfjs-editor-undo-bar-message-signature = Signature retirée
pdfjs-editor-undo-bar-message-comment = Commentaire supprimé
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -639,95 +629,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Annuler
pdfjs-editor-add-comment-button =
.title = Ajouter un commentaire
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Afficher/Masquer le panneau latéral (le document contient des vignettes/plan/pièces jointes/calques)
pdfjs-toggle-views-manager-button1-label = Gérer les pages
pdfjs-views-manager-sidebar =
.aria-label = Panneau latéral
pdfjs-views-manager-sidebar-resizer =
.aria-label = Redimensionner le panneau latéral
pdfjs-views-manager-view-selector-button =
.title = Vues
pdfjs-views-manager-view-selector-button-label = Vues
pdfjs-views-manager-pages-title = Pages
pdfjs-views-manager-outlines-title1 = Structure du document
.title = Structure du document (double-cliquer pour développer/réduire tous les éléments)
pdfjs-views-manager-attachments-title = Pièces jointes
pdfjs-views-manager-layers-title1 = Calques
.title = Calques (double-cliquer pour réinitialiser tous les calques à leur état par défaut)
pdfjs-views-manager-pages-option-label = Pages
pdfjs-views-manager-outlines-option-label = Signets du document
pdfjs-views-manager-attachments-option-label = Pièces jointes
pdfjs-views-manager-layers-option-label = Calques
pdfjs-views-manager-add-file-button =
.title = Ajouter un fichier
pdfjs-views-manager-add-file-button-label = Ajouter un fichier
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } page sélectionnée
*[other] { $count } pages sélectionnées
}
pdfjs-views-manager-pages-status-none-action-label = Sélectionner des pages
pdfjs-views-manager-pages-status-action-button-label = Gérer
pdfjs-views-manager-pages-status-copy-button-label = Copier
pdfjs-views-manager-pages-status-cut-button-label = Couper
pdfjs-views-manager-pages-status-delete-button-label = Supprimer
pdfjs-views-manager-pages-status-export-selected-button-label = Exporter la sélection…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 page coupée
*[other] { $count } pages coupées
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 page copiée
*[other] { $count } pages copiées
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 page supprimée
*[other] { $count } pages supprimées
}
pdfjs-views-manager-pages-status-waiting-ready-label = Préparation de votre fichier…
pdfjs-views-manager-pages-status-waiting-uploading-label = Envoi du fichier…
pdfjs-views-manager-status-warning-cut-label = Impossible de couper. Actualisez la page et essayez à nouveau.
pdfjs-views-manager-status-warning-copy-label = Copie impossible. Actualisez la page et essayez à nouveau.
pdfjs-views-manager-status-warning-delete-label = Suppression impossible. Actualisez la page et essayez à nouveau.
pdfjs-views-manager-status-warning-save-label = Enregistrement impossible. Actualisez la page et essayez à nouveau.
pdfjs-views-manager-status-undo-button-label = Annuler
pdfjs-views-manager-status-done-button-label = Terminer
pdfjs-views-manager-status-close-button =
.title = Fermer
pdfjs-views-manager-status-close-button-label = Fermer
pdfjs-views-manager-paste-button-label = Coller
pdfjs-views-manager-paste-button-before =
.title = Coller avant la première page
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Coller après la page { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NOUVEAU
pdfjs-views-manager-waiting-for-file = Envoi du fichier…
pdfjs-toggle-views-manager-button1 =
.title = Gérer les pages
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -628,11 +628,6 @@ pdfjs-editor-edit-comment-dialog-text-input =
.placeholder = Scomence a scrivi…
pdfjs-editor-edit-comment-dialog-cancel-button = Anule
## Edit a comment button in the editor toolbar
pdfjs-editor-add-comment-button =
.title = Zonte coment
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniatuer fan side { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Side { $page } selektearje
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Side { $page } fan { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Tekst fuortsmiten
pdfjs-editor-undo-bar-message-ink = Tekening fuortsmiten
pdfjs-editor-undo-bar-message-stamp = Ofbylding fuortsmiten
pdfjs-editor-undo-bar-message-signature = Hantekening fuortsmiten
pdfjs-editor-undo-bar-message-comment = Opmerking fuortsmiten
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Annulearje
pdfjs-editor-add-comment-button =
.title = Opmerking tafoegje
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Sidebalke yn-/útskeakelje (dokumint befettet miniatueren/oersjoch/bylagen/lagen)
pdfjs-toggle-views-manager-button1-label = Siden beheare
pdfjs-views-manager-sidebar =
.aria-label = Sidebalke
pdfjs-views-manager-sidebar-resizer =
.aria-label = Gruttewiziging sydbalke
pdfjs-views-manager-view-selector-button =
.title = Werjeften
pdfjs-views-manager-view-selector-button-label = Werjeften
pdfjs-views-manager-pages-title = Siden
pdfjs-views-manager-outlines-title1 = Dokumintoersjoch
.title = Dokumintoersjoch (dûbelklik om alle items út/yn te klappen)
pdfjs-views-manager-attachments-title = Bylagen
pdfjs-views-manager-layers-title1 = Lagen
.title = Lagen (dûbelklik om alle lagen nei de standertstatus werom te setten)
pdfjs-views-manager-pages-option-label = Siden
pdfjs-views-manager-outlines-option-label = Dokumintoersjoch
pdfjs-views-manager-attachments-option-label = Bylagen
pdfjs-views-manager-layers-option-label = Lagen
pdfjs-views-manager-add-file-button =
.title = Bestân tafoegje
pdfjs-views-manager-add-file-button-label = Bestân tafoegje
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } selektearre
*[other] { $count } selektearre
}
pdfjs-views-manager-pages-status-none-action-label = Siden selektearje
pdfjs-views-manager-pages-status-action-button-label = Beheare
pdfjs-views-manager-pages-status-copy-button-label = Kopiearje
pdfjs-views-manager-pages-status-cut-button-label = Knippe
pdfjs-views-manager-pages-status-delete-button-label = Fuortsmite
pdfjs-views-manager-pages-status-export-selected-button-label = Selektearre eksportearje…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 side knipt
*[other] { $count } siden knipt
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 side kopiearre
*[other] { $count } siden kopiearre
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 side fuortsmiten
*[other] { $count } siden fuortsmiten
}
pdfjs-views-manager-pages-status-waiting-ready-label = Jo bestân tariede…
pdfjs-views-manager-pages-status-waiting-uploading-label = Bestân oplade…
pdfjs-views-manager-status-warning-cut-label = Kin net knippe. Ferfarskje de side en probearje it opnij.
pdfjs-views-manager-status-warning-copy-label = Kin net kopiearje. Ferfarskje de side en probearje it opnij.
pdfjs-views-manager-status-warning-delete-label = Kin net fuortsmite. Ferfarskje de side en probearje it opnij.
pdfjs-views-manager-status-warning-save-label = Kin net bewarje. Ferfarskje de side en probearje it opnij.
pdfjs-views-manager-status-undo-button-label = Ungedien meitsje
pdfjs-views-manager-status-done-button-label = Dien
pdfjs-views-manager-status-close-button =
.title = Slute
pdfjs-views-manager-status-close-button-label = Slute
pdfjs-views-manager-paste-button-label = Plakke
pdfjs-views-manager-paste-button-before =
.title = Plakke foar de earste side
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Plakke nei side { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NIJ
pdfjs-views-manager-waiting-for-file = Bestân oplade…
pdfjs-toggle-views-manager-button1 =
.title = Siden beheare
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Kuatiarogue mbaemirĩ { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Eiporavo kuatiarogue { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Kuatiarogue { $page } { $total } mbae
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Moñeẽrã mboguepyre
pdfjs-editor-undo-bar-message-ink = Taãnga mboguepyre
pdfjs-editor-undo-bar-message-stamp = Taãnga mboguepyre
pdfjs-editor-undo-bar-message-signature = Teraguapy mboguepyre
pdfjs-editor-undo-bar-message-comment = Jeepy mboguepyre
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -642,95 +632,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Eheja
pdfjs-editor-add-comment-button =
.title = Jeerei mbojuaju
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Embojopyru tenda ykegua (kuatia oguereko mbaei, kuaakaha/moirũha/ñuãha)
pdfjs-toggle-views-manager-button1-label = Eñangareko kuotiarogue
pdfjs-views-manager-sidebar =
.aria-label = Taãngarupa yke
pdfjs-views-manager-sidebar-resizer =
.aria-label = Tuichakue mongueha tenda yképe
pdfjs-views-manager-view-selector-button =
.title = Hechaha
pdfjs-views-manager-view-selector-button-label = Hechaha
pdfjs-views-manager-pages-title = Kuatiarogue
pdfjs-views-manager-outlines-title1 = Kuatiaite jejapopy
.title = Kuatiaite jejapopy (eikutu joa emyasãi hag̃ua/emomichĩmbaite mbaeporuita)
pdfjs-views-manager-attachments-title = Moirũha
pdfjs-views-manager-layers-title1 = Ñuãhaita
.title = Ñuãhaita (eikutu joa erupaite jey hag̃ua ñuãhaita oĩ haguepevoi)
pdfjs-views-manager-pages-option-label = Kuatiarogueita
pdfjs-views-manager-outlines-option-label = Kuatiaite jejapopy
pdfjs-views-manager-attachments-option-label = Moirũhaita
pdfjs-views-manager-layers-option-label = Ñuãhaita
pdfjs-views-manager-add-file-button =
.title = Embojuaju marandurenda
pdfjs-views-manager-add-file-button-label = Embojuaju marandurenda
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } poravopyre
*[other] { $count } poravopyre
}
pdfjs-views-manager-pages-status-none-action-label = Eiporavo kuatiarogue
pdfjs-views-manager-pages-status-action-button-label = Ñangareko
pdfjs-views-manager-pages-status-copy-button-label = Monguatia
pdfjs-views-manager-pages-status-cut-button-label = Kytĩ
pdfjs-views-manager-pages-status-delete-button-label = Mboguete
pdfjs-views-manager-pages-status-export-selected-button-label = Eguerahauka poravopyre…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 kuatiarogue kytĩmbyre
*[other] { $count } kuatiarogue kytĩmbyre
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 kuatiarogue monguatiapyre
*[other] { $count } kuatiarogue monguatiapyre
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 kuatiarogue mboguepyre
*[other] { $count } kuatiarogue mboguepyre
}
pdfjs-views-manager-pages-status-waiting-ready-label = Embosakoihína ne marandurenda…
pdfjs-views-manager-pages-status-waiting-uploading-label = Ehupihína marandurenda…
pdfjs-views-manager-status-warning-cut-label = Ndaikatúi oñekytĩ. Embopyahu kuatiarogue ha ehaã jey.
pdfjs-views-manager-status-warning-copy-label = Ndaikatúi oñembokuatia. Embopyahu kuatiarogue ha ehaã jey.
pdfjs-views-manager-status-warning-delete-label = Ndaikatúi embogue. Embopyahu kuatiarogue ha ehaã jey.
pdfjs-views-manager-status-warning-save-label = Ndaikatúi eñongatu. Embopyahu kuatiarogue ha ehaã jey.
pdfjs-views-manager-status-undo-button-label = Mboguevi
pdfjs-views-manager-status-done-button-label = Oĩma
pdfjs-views-manager-status-close-button =
.title = Mboty
pdfjs-views-manager-status-close-button-label = Mboty
pdfjs-views-manager-paste-button-label = Mboja
pdfjs-views-manager-paste-button-before =
.title = Emboja togue peteĩha mboyve
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Emboja kuatiarogue { $page } rire
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = PYAHU
pdfjs-views-manager-waiting-for-file = Ehupihína marandurenda…
pdfjs-toggle-views-manager-button1 =
.title = Eñangareko kuotiarogue
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = תצוגה מקדימה של עמוד { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = בחירת עמוד { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = עמוד { $page } מתוך { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = הטקסט הוסר
pdfjs-editor-undo-bar-message-ink = הציור הוסר
pdfjs-editor-undo-bar-message-stamp = התמונה הוסרה
pdfjs-editor-undo-bar-message-signature = החתימה הוסרה
pdfjs-editor-undo-bar-message-comment = ההערה הוסרה
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = ביטול
pdfjs-editor-add-comment-button =
.title = הוספת הערה
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = החלפת תצוגת סרגל צד (מסמך שמכיל תמונות ממוזערות/תוכן עניינים/קבצים מצורפים/שכבות)
pdfjs-toggle-views-manager-button1-label = ניהול עמודים
pdfjs-views-manager-sidebar =
.aria-label = סרגל צד
pdfjs-views-manager-sidebar-resizer =
.aria-label = שינוי גודל סרגל הצד
pdfjs-views-manager-view-selector-button =
.title = תצוגות
pdfjs-views-manager-view-selector-button-label = תצוגות
pdfjs-views-manager-pages-title = עמודים
pdfjs-views-manager-outlines-title1 = תוכן העניינים של המסמך
.title = הצגת תוכן העניינים של המסמך (יש ללחוץ לחיצה כפולה כדי להרחיב או לצמצם את כל הפריטים)
pdfjs-views-manager-attachments-title = קבצים מצורפים
pdfjs-views-manager-layers-title1 = שכבות
.title = הצגת שכבות (יש ללחוץ לחיצה כפולה כדי לאפס את כל השכבות למצב ברירת המחדל)
pdfjs-views-manager-pages-option-label = עמודים
pdfjs-views-manager-outlines-option-label = תוכן העניינים של המסמך
pdfjs-views-manager-attachments-option-label = קבצים מצורפים
pdfjs-views-manager-layers-option-label = שכבות
pdfjs-views-manager-add-file-button =
.title = הוספת קובץ
pdfjs-views-manager-add-file-button-label = הוספת קובץ
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] אחד נבחר
*[other] { $count } נבחרו
}
pdfjs-views-manager-pages-status-none-action-label = בחירת עמודים
pdfjs-views-manager-pages-status-action-button-label = ניהול
pdfjs-views-manager-pages-status-copy-button-label = העתקה
pdfjs-views-manager-pages-status-cut-button-label = גזירה
pdfjs-views-manager-pages-status-delete-button-label = מחיקה
pdfjs-views-manager-pages-status-export-selected-button-label = ייצוא הפריטים שנבחרו…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] עמוד אחד נגזר
*[other] { $count } עמודים נגזרו
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] עמוד אחד הועתק
*[other] { $count } עמודים הועתקו
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] עמוד אחד נמחק
*[other] { $count } עמודים נמחקו
}
pdfjs-views-manager-pages-status-waiting-ready-label = בתהליך הכנת הקובץ שלך…
pdfjs-views-manager-pages-status-waiting-uploading-label = בתהליך העלאת הקובץ…
pdfjs-views-manager-status-warning-cut-label = לא ניתן היה לגזור. נא לרענן את הדף ולנסות שוב.
pdfjs-views-manager-status-warning-copy-label = לא ניתן היה להעתיק. נא לרענן את הדף ולנסות שוב.
pdfjs-views-manager-status-warning-delete-label = לא ניתן היה למחוק. נא לרענן את הדף ולנסות שוב.
pdfjs-views-manager-status-warning-save-label = לא ניתן היה לשמור. נא לרענן את הדף ולנסות שוב.
pdfjs-views-manager-status-undo-button-label = ביטול פעולה
pdfjs-views-manager-status-done-button-label = סיום
pdfjs-views-manager-status-close-button =
.title = סגירה
pdfjs-views-manager-status-close-button-label = סגירה
pdfjs-views-manager-paste-button-label = הדבקה
pdfjs-views-manager-paste-button-before =
.title = להדביק לפני העמוד הראשון
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = להדביק אחרי עמוד { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = חדש
pdfjs-views-manager-waiting-for-file = בתהליך העלאת הקובץ…
pdfjs-toggle-views-manager-button1 =
.title = ניהול עמודים
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Minijatura stranice { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Odaberi stranicu { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Stranica { $page } od { $total }
## Find panel button title and messages
@ -546,7 +537,6 @@ pdfjs-editor-undo-bar-message-freetext = Tekst uklonjen
pdfjs-editor-undo-bar-message-ink = Crtež uklonjen
pdfjs-editor-undo-bar-message-stamp = Slika uklonjena
pdfjs-editor-undo-bar-message-signature = Potpis uklonjen
pdfjs-editor-undo-bar-message-comment = Komentar je uklonjen
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -647,67 +637,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Odustani
pdfjs-editor-add-comment-button =
.title = Dodaj komentar
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-button1-label = Upravljaj stranicama
pdfjs-views-manager-sidebar =
.aria-label = Bočna traka
pdfjs-views-manager-view-selector-button =
.title = Prikazi
pdfjs-views-manager-view-selector-button-label = Prikazi
pdfjs-views-manager-pages-title = Stranice
pdfjs-views-manager-outlines-title1 = Struktura dokumenta
.title = Struktura dokumenta (sažmi/proširi sve stavke dvostrukim klikom)
pdfjs-views-manager-attachments-title = Privici
pdfjs-views-manager-layers-title1 = Slojevi
.title = Slojevi (ponovo postavi sve slojeve na zadano stanje dvostrukim klikom)
pdfjs-views-manager-pages-option-label = Stranice
pdfjs-views-manager-outlines-option-label = Struktura dokumenta
pdfjs-views-manager-attachments-option-label = Privici
pdfjs-views-manager-layers-option-label = Slojevi
pdfjs-views-manager-add-file-button =
.title = Dodaj datoteku
pdfjs-views-manager-add-file-button-label = Dodaj datoteku
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } odabrana
[few] { $count } odabrane
*[other] { $count } odabranih
}
pdfjs-views-manager-pages-status-none-action-label = Odaberi stranice
pdfjs-views-manager-pages-status-action-button-label = Upravljaj
pdfjs-views-manager-pages-status-copy-button-label = Kopiraj
pdfjs-views-manager-pages-status-cut-button-label = Izreži
pdfjs-views-manager-pages-status-delete-button-label = Izbriši
pdfjs-views-manager-status-warning-cut-label = Nije moguće izrezati. Osvježi stranicu i pokušaj ponovo.
pdfjs-views-manager-status-warning-copy-label = Nije moguće kopirati. Osvježi stranicu i pokušaj ponovo.
pdfjs-views-manager-status-warning-delete-label = Nije moguće izbrisati. Osvježi stranicu i pokušaj ponovo.
pdfjs-views-manager-status-warning-save-label = Nije moguće spremiti. Osvježi stranicu i pokušaj ponovo.
pdfjs-views-manager-status-undo-button-label = Poništi
pdfjs-views-manager-status-done-button-label = Gotovo
pdfjs-views-manager-status-close-button =
.title = Zatvori
pdfjs-views-manager-status-close-button-label = Zatvori
pdfjs-views-manager-paste-button-label = Umetni
pdfjs-views-manager-paste-button-before =
.title = Umetni prije prve stranice
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Umetni nakon stranice { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NOVO
pdfjs-toggle-views-manager-button1 =
.title = Upravljaj stranicama
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniatura strony { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Stronu { $page } wubrać
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Strona { $page } z { $total }
## Find panel button title and messages
@ -549,7 +540,6 @@ pdfjs-editor-undo-bar-message-freetext = Tekst je so wotstronił
pdfjs-editor-undo-bar-message-ink = Rysowanka je so wotstroniła
pdfjs-editor-undo-bar-message-stamp = Wobraz je so wotstronił
pdfjs-editor-undo-bar-message-signature = Signatura je so wotstroniła
pdfjs-editor-undo-bar-message-comment = Komentar je so wotstronił
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -651,103 +641,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Přetorhnyć
pdfjs-editor-add-comment-button =
.title = Komentar přidać
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Bóčnicu přepinać (dokument miniatury/rozrjad/přiwěški/woršty wobsahuje)
pdfjs-toggle-views-manager-button1-label = Strony rjadować
pdfjs-views-manager-sidebar =
.aria-label = Bóčnica
pdfjs-views-manager-sidebar-resizer =
.aria-label = Přiměrjenje wulkosće bóčnicy
pdfjs-views-manager-view-selector-button =
.title = Napohlady
pdfjs-views-manager-view-selector-button-label = Napohlady
pdfjs-views-manager-pages-title = Strony
pdfjs-views-manager-outlines-title1 = Dokumentowa struktura
.title = Dokumentowa struktura (klikńće dwójce, zo byšće wšě zapiski pokazał/schował)
pdfjs-views-manager-attachments-title = Přiwěški
pdfjs-views-manager-layers-title1 = Runiny
.title = Runiny (klikńće dwójce, zo byšće wšě runiny na standardny status wróćo stajił)
pdfjs-views-manager-pages-option-label = Strony
pdfjs-views-manager-outlines-option-label = Dokumentowa struktura
pdfjs-views-manager-attachments-option-label = Přiwěški
pdfjs-views-manager-layers-option-label = Runiny
pdfjs-views-manager-add-file-button =
.title = Dataju přidać
pdfjs-views-manager-add-file-button-label = Dataju přidać
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } wubrany
[two] { $count } wubranej
[few] { $count } wubrane
*[other] { $count } wubranych
}
pdfjs-views-manager-pages-status-none-action-label = Strony wubrać
pdfjs-views-manager-pages-status-action-button-label = Rjadować
pdfjs-views-manager-pages-status-copy-button-label = Kopěrować
pdfjs-views-manager-pages-status-cut-button-label = Wutřihać
pdfjs-views-manager-pages-status-delete-button-label = Zhašeć
pdfjs-views-manager-pages-status-export-selected-button-label = Wubrane eksportować…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] { $count } strona wutřihana
[two] { $count } stronje wutřihanej
[few] { $count } strony wutřihane
*[other] { $count } stronow wutřihane
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] { $count } strona kopěrowana
[two] { $count } strona kopěrowanej
[few] { $count } strona kopěrowane
*[other] { $count } strona kopěrowane
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] { $count } strona zhašana
[two] { $count } strona zhašanej
[few] { $count } strona zhašane
*[other] { $count } strona zhašane
}
pdfjs-views-manager-pages-status-waiting-ready-label = Waša dataja so přihotuje…
pdfjs-views-manager-pages-status-waiting-uploading-label = Dataja so nahrawa…
pdfjs-views-manager-status-warning-cut-label = Njeda so wutřihać. Aktualizujće stronu a spytajće hišće raz.
pdfjs-views-manager-status-warning-copy-label = Njeda so kopěrować. Aktualizujće stronu a spytajće hišće raz.
pdfjs-views-manager-status-warning-delete-label = Njeda so zhašeć. Aktualizujće stronu a spytajće hišće raz.
pdfjs-views-manager-status-warning-save-label = Njeda so składować. Aktualizujće stronu a spytajće hišće raz.
pdfjs-views-manager-status-undo-button-label = Cofnyć
pdfjs-views-manager-status-done-button-label = Dokónčeny
pdfjs-views-manager-status-close-button =
.title = Začinić
pdfjs-views-manager-status-close-button-label = Začinić
pdfjs-views-manager-paste-button-label = Zasadźić
pdfjs-views-manager-paste-button-before =
.title = Před prěnjej stronu zasadźić
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Za stronu { $page } zasadźić
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NOWY
pdfjs-views-manager-waiting-for-file = Dataja so nahrawa…
pdfjs-toggle-views-manager-button1 =
.title = Strony rjadować
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = { $page }. oldal bélyegképe
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = { $page }. oldal kiválasztása
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = { $page }. / { $total } oldal
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Szöveg eltávolítva
pdfjs-editor-undo-bar-message-ink = Rajz eltávolítva
pdfjs-editor-undo-bar-message-stamp = Kép eltávolítva
pdfjs-editor-undo-bar-message-signature = Aláírás eltávolítva
pdfjs-editor-undo-bar-message-comment = Megjegyzés eltávolítva
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Mégse
pdfjs-editor-add-comment-button =
.title = Megjegyzés hozzáadása
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Oldalsáv be/ki (a dokumentum bélyegképeket/vázlatot/mellékleteket/rétegeket tartalmaz)
pdfjs-toggle-views-manager-button1-label = Oldalak kezelése
pdfjs-views-manager-sidebar =
.aria-label = Oldalsáv
pdfjs-views-manager-sidebar-resizer =
.aria-label = Oldalsáv-átméretező
pdfjs-views-manager-view-selector-button =
.title = Nézetek
pdfjs-views-manager-view-selector-button-label = Nézetek
pdfjs-views-manager-pages-title = Oldalak
pdfjs-views-manager-outlines-title1 = Dokumentumvázlat
.title = Dokumentumvázlat (dupla kattintás az összes elem kinyitásához/becsukásához)
pdfjs-views-manager-attachments-title = Mellékletek
pdfjs-views-manager-layers-title1 = Rétegek
.title = Rétegek (dupla kattintás az összes réteg eredeti állapotba való visszaállításához)
pdfjs-views-manager-pages-option-label = Oldalak
pdfjs-views-manager-outlines-option-label = Dokumentumvázlat
pdfjs-views-manager-attachments-option-label = Mellékletek
pdfjs-views-manager-layers-option-label = Rétegek
pdfjs-views-manager-add-file-button =
.title = Fájl hozzáadása
pdfjs-views-manager-add-file-button-label = Fájl hozzáadása
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } kiválasztva
*[other] { $count } kiválasztva
}
pdfjs-views-manager-pages-status-none-action-label = Oldalak kiválasztása
pdfjs-views-manager-pages-status-action-button-label = Kezelés
pdfjs-views-manager-pages-status-copy-button-label = Másolás
pdfjs-views-manager-pages-status-cut-button-label = Kivágás
pdfjs-views-manager-pages-status-delete-button-label = Törlés
pdfjs-views-manager-pages-status-export-selected-button-label = Kiválasztottak exportálása…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 oldal kivágva
*[other] { $count } oldal kivágva
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 oldal másolva
*[other] { $count } oldal másolva
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 oldal törölve
*[other] { $count } oldal törölve
}
pdfjs-views-manager-pages-status-waiting-ready-label = A fájl előkészítése…
pdfjs-views-manager-pages-status-waiting-uploading-label = Fájl feltöltése…
pdfjs-views-manager-status-warning-cut-label = Nem sikerült kivágni. Frissítse az oldalt, és próbálja újra.
pdfjs-views-manager-status-warning-copy-label = Nem sikerült másolni. Frissítse az oldalt, és próbálja újra.
pdfjs-views-manager-status-warning-delete-label = Nem sikerült törölni. Frissítse az oldalt, és próbálja újra.
pdfjs-views-manager-status-warning-save-label = Nem sikerült menteni. Frissítse az oldalt, és próbálja újra.
pdfjs-views-manager-status-undo-button-label = Visszavonás
pdfjs-views-manager-status-done-button-label = Kész
pdfjs-views-manager-status-close-button =
.title = Bezárás
pdfjs-views-manager-status-close-button-label = Bezárás
pdfjs-views-manager-paste-button-label = Beillesztés
pdfjs-views-manager-paste-button-before =
.title = Beillesztés az első oldal elé
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Beillesztés a(z) { $page }. oldal után
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = ÚJ
pdfjs-views-manager-waiting-for-file = Fájl feltöltése…
pdfjs-toggle-views-manager-button1 =
.title = Oldalak kezelése
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -40,8 +40,8 @@ pdfjs-print-button =
.title = Տպել
pdfjs-print-button-label = Տպել
pdfjs-save-button =
.title = Պահել
pdfjs-save-button-label = Պահել
.title = Պահպանել
pdfjs-save-button-label = Պահպանել
# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).
pdfjs-download-button =
.title = Ներբեռնել
@ -355,9 +355,9 @@ pdfjs-editor-stamp-add-image-button-label = Հավելել պատկեր
# This refers to the thickness of the line used for free highlighting (not bound to text)
pdfjs-editor-free-highlight-thickness-input = Հաստություն
pdfjs-editor-free-highlight-thickness-title =
.title = Փոխել հաստությունը՝ տեքստից բացի այլ տարրեր գունանշելիս
.title = Փոխել հաստությունը տեքստից բացի այլ տարրեր նշելիս
pdfjs-editor-add-signature-container =
.aria-label = Ստորագրության կառավարման տարրեր և պահված ստորագրություններ
.aria-label = Ստորագրության կառավարման տարրեր և պահպանված ստորագրություններ
pdfjs-editor-signature-add-signature-button =
.title = Ավելացնել նոր ստորագրություն
pdfjs-editor-signature-add-signature-button-label = Ավելացնել նոր ստորագրություն
@ -365,22 +365,11 @@ pdfjs-editor-signature-add-signature-button-label = Ավելացնել նոր ս
# Variables:
# $description (String) - a string describing/labeling the signature.
pdfjs-editor-add-saved-signature-button =
.title = Պահված ստորագրություն՝ { $description }
.title = Պահպանված ստորագրություն՝ { $description }
# .default-content is used as a placeholder in an empty text editor.
pdfjs-free-text2 =
.aria-label = Գրվածքի խմբագիր
.default-content = Սկսեք մուտքագրել...
# Used to show how many comments are present in the pdf file.
# Variables:
# $count (Number) - the number of comments.
pdfjs-editor-comments-sidebar-title =
{ $count ->
[one] Մեկնաբանություն
*[other] Մեկնաբանություններ
}
# Instructional copy to add a comment by selecting text or an annotations.
pdfjs-editor-comments-sidebar-no-comments1 = Տեսնո՞ւմ եք ինչ-որ ուշագրավ բան։ Գունանշեք այն և թողեք մեկնաբանություն։
pdfjs-editor-comments-sidebar-no-comments-link = Իմանալ ավելին
## Alt-text dialog
@ -394,7 +383,7 @@ pdfjs-editor-alt-text-add-description-description = Ձգտեք գրել 1-2 նա
pdfjs-editor-alt-text-mark-decorative-label = Նշել որպես դեկորատիվ
pdfjs-editor-alt-text-mark-decorative-description = Սա օգտագործվում է դեկորատիվ պատկերների համար, ինչպիսիք են եզրագծերը կամ ջրանիշերը։
pdfjs-editor-alt-text-cancel-button = Չեղարկել
pdfjs-editor-alt-text-save-button = Պահել
pdfjs-editor-alt-text-save-button = Պահպանել
pdfjs-editor-alt-text-decorative-tooltip = Նշել որպես դեկորատիվ
# .placeholder: This is a placeholder for the alt text input area
pdfjs-editor-alt-text-textarea =
@ -542,7 +531,7 @@ pdfjs-editor-undo-bar-close-button-label = Փակել
## Add a signature dialog
pdfjs-editor-add-signature-dialog-label = Այս յուրահատկությունը հնարավորություն է տալիս օգտվողին ստեղծել ստորագրություն՝ PDF փաստաթղթում ավելացնելու համար: Օգտվողը կարող է խմբագրել անունը (որը նաև ծառայում է որպես alt տեքստ) և լրացուցիչ պահել այն՝ հետագա օգտագործման համար:
pdfjs-editor-add-signature-dialog-label = Այս յուրահատկությունը հնարավորություն է տալիս օգտվողին ստեղծել ստորագրություն՝ PDF փաստաթղթում ավելացնելու համար: Օգտվողը կարող է խմբագրել անունը (որը նաև ծառայում է որպես alt տեքստ) և լրացուցիչ պահպանել այն՝ հետագա օգտագործման համար:
pdfjs-editor-add-signature-dialog-title = Ավելացնել ստորագրություն
## Tab names
@ -559,14 +548,14 @@ pdfjs-editor-add-signature-image-button = Պատկեր
## Tab panels
pdfjs-editor-add-signature-type-input =
.aria-label = Մուտքագրել ստորագրություն
.placeholder = Մուտքագրել ստորագրություն
.aria-label = Մուտքագրեք ձեր ստորագրությունը
.placeholder = Մուտքագրեք ձեր ստորագրությունը
pdfjs-editor-add-signature-draw-placeholder = Նկարեք ձեր ստորագրությունը
pdfjs-editor-add-signature-draw-thickness-range-label = Հաստություն
# Variables:
# $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.
pdfjs-editor-add-signature-draw-thickness-range =
.title = Նկարելու հաստությունը՝ { $thickness }
.title = Նկաելու հաստությունը՝ { $thickness }
pdfjs-editor-add-signature-image-placeholder = Քաշեք ֆայլը այստեղ՝ վերբեռնելու համար
pdfjs-editor-add-signature-image-browse-link =
{ PLATFORM() ->
@ -583,8 +572,8 @@ pdfjs-editor-add-signature-description-default-when-drawing = Ստորագրու
pdfjs-editor-add-signature-clear-button-label = Մաքրել ստորագրությունը
pdfjs-editor-add-signature-clear-button =
.title = Մաքրել ստորագրությունը
pdfjs-editor-add-signature-save-checkbox = Պահել ստորագրությունը
pdfjs-editor-add-signature-save-warning-message = Դուք հասել եք պահպանված ստորագրությունների 5 սահմանաչափին։ Հեռացրեք մեկը՝ ավելին պահելու համար։
pdfjs-editor-add-signature-save-checkbox = Պահպանել ստորագրությունը
pdfjs-editor-add-signature-save-warning-message = Դուք հասել եք պահպանված ստորագրությունների 5 սահմանաչափին։ Հեռացրեք մեկը՝ ավելին պահպանելու համար։
pdfjs-editor-add-signature-image-upload-error-title = Չհաջողվեց վերբեռնել պատկերը
pdfjs-editor-add-signature-image-upload-error-description = Ստուգեք ձեր ցանցային կապակցումը կամ փորձեք մեկ այլ պատկեր։
pdfjs-editor-add-signature-image-no-data-error-title = Այս պատկերը հնարավոր չէ վերածել ստորագրության
@ -597,36 +586,11 @@ pdfjs-editor-add-signature-cancel-button = Չեղարկել
pdfjs-editor-add-signature-add-button = Ավելացնել
pdfjs-editor-edit-signature-update-button = Թարմացնել
## Edit a comment dialog
# No existing comment
pdfjs-editor-edit-comment-dialog-title-when-adding = Ավելացնել մեկնաբանություն
pdfjs-editor-edit-comment-dialog-save-button-when-adding = Ավելացնել
pdfjs-editor-edit-comment-dialog-text-input =
.placeholder = Մուտքագրեք այստեղ…
pdfjs-editor-edit-comment-dialog-cancel-button = Չեղարկել
## Edit a comment button in the editor toolbar
pdfjs-editor-add-comment-button =
.title = Ավելացնել մեկնաբանություն
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-views-manager-add-file-button =
.title = Ավելացնել ֆայլ
pdfjs-views-manager-add-file-button-label = Ավելացնել ֆայլ
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =
.title = Հեռացնել պահված ստորագրությունը
pdfjs-editor-delete-signature-button-label1 = Հեռացնել պահված ստորագրությունը
.title = Հեռացնել պահպանված ստորագրությունը
pdfjs-editor-delete-signature-button-label1 = Հեռացնել պահպանված ստորագրությունը
## Editor toolbar

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Vignette del pagina { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Seliger pagina { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Pagina { $page } de { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Texto removite
pdfjs-editor-undo-bar-message-ink = Designo removite
pdfjs-editor-undo-bar-message-stamp = Imagine removite
pdfjs-editor-undo-bar-message-signature = Signatura removite
pdfjs-editor-undo-bar-message-comment = Commento removite
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Cancellar
pdfjs-editor-add-comment-button =
.title = Adder commento
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Monstrar/celar le barra lateral (le documento contine miniaturas/structura/attachamentos/stratos)
pdfjs-toggle-views-manager-button1-label = Gerer paginas
pdfjs-views-manager-sidebar =
.aria-label = Barra lateral
pdfjs-views-manager-sidebar-resizer =
.aria-label = Saltar al declaration
pdfjs-views-manager-view-selector-button =
.title = Vistas
pdfjs-views-manager-view-selector-button-label = Vistas
pdfjs-views-manager-pages-title = Paginas
pdfjs-views-manager-outlines-title1 = Structura de documento
.title = Structura de documento (clicca-duplemente pro expander/collaber tote elementos)
pdfjs-views-manager-attachments-title = Annexos
pdfjs-views-manager-layers-title1 = Stratos
.title = Stratos (clicca-duplemente pro reinitialisar tote le stratos al stato predefinite)
pdfjs-views-manager-pages-option-label = Paginas
pdfjs-views-manager-outlines-option-label = Schema del documento
pdfjs-views-manager-attachments-option-label = Annexos
pdfjs-views-manager-layers-option-label = Stratos
pdfjs-views-manager-add-file-button =
.title = Adder file
pdfjs-views-manager-add-file-button-label = Adder file
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } seligite
*[other] { $count } seligite
}
pdfjs-views-manager-pages-status-none-action-label = Seliger paginas
pdfjs-views-manager-pages-status-action-button-label = Gerer
pdfjs-views-manager-pages-status-copy-button-label = Copiar
pdfjs-views-manager-pages-status-cut-button-label = Secar
pdfjs-views-manager-pages-status-delete-button-label = Deler
pdfjs-views-manager-pages-status-export-selected-button-label = Exportar seligite…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] 1 pagina secate
*[other] { $count } paginas secate
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] 1 pagina copiate
*[other] { $count } paginas copiate
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] 1 pagina delite
*[other] { $count } paginas delite
}
pdfjs-views-manager-pages-status-waiting-ready-label = Preparante file…
pdfjs-views-manager-pages-status-waiting-uploading-label = Cargante file…
pdfjs-views-manager-status-warning-cut-label = Impossibile secar. Refresca le pagina e retenta.
pdfjs-views-manager-status-warning-copy-label = Impossibile copiar. Refresca le pagina e retenta.
pdfjs-views-manager-status-warning-delete-label = Impossibile deler. Refresca le pagina e retenta.
pdfjs-views-manager-status-warning-save-label = Impossibile salvar. Refresca le pagina e retenta.
pdfjs-views-manager-status-undo-button-label = Disfacer
pdfjs-views-manager-status-done-button-label = Facite
pdfjs-views-manager-status-close-button =
.title = Clauder
pdfjs-views-manager-status-close-button-label = Clauder
pdfjs-views-manager-paste-button-label = Collar
pdfjs-views-manager-paste-button-before =
.title = Collar ante le prime pagina
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Colla post pagina { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NOVA
pdfjs-views-manager-waiting-for-file = Cargante file…
pdfjs-toggle-views-manager-button1 =
.title = Gerer paginas
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

View File

@ -102,7 +102,7 @@ pdfjs-spread-even-button-label = Jafnatöludreifing
pdfjs-document-properties-button =
.title = Eiginleikar skjals…
pdfjs-document-properties-button-label = Eiginleikar skjals…
pdfjs-document-properties-file-name = Skráarheiti:
pdfjs-document-properties-file-name = Skráarnafn:
pdfjs-document-properties-file-size = Skrárstærð:
# Variables:
# $kb (Number) - the PDF file size in kilobytes

View File

@ -201,15 +201,6 @@ pdfjs-thumb-page-title =
# $page (Number) - the page number
pdfjs-thumb-page-canvas =
.aria-label = Miniatura della pagina { $page }
# Variables:
# $page (Number) - the page number
pdfjs-thumb-page-checkbox1 =
.title = Seleziona pagina { $page }
# Variables:
# $page (Number) - the page number
# $total (Number) - the number of pages
pdfjs-thumb-page-title1 =
.title = Pagina { $page } di { $total }
## Find panel button title and messages
@ -543,7 +534,6 @@ pdfjs-editor-undo-bar-message-freetext = Testo rimosso
pdfjs-editor-undo-bar-message-ink = Disegno rimosso
pdfjs-editor-undo-bar-message-stamp = Immagine rimossa
pdfjs-editor-undo-bar-message-signature = Firma rimossa
pdfjs-editor-undo-bar-message-comment = Commento rimosso
# Variables:
# $count (Number) - the number of removed annotations.
pdfjs-editor-undo-bar-message-multiple =
@ -643,95 +633,6 @@ pdfjs-editor-edit-comment-dialog-cancel-button = Annulla
pdfjs-editor-add-comment-button =
.title = Aggiungi commento
## The view manager is a sidebar displaying different views:
## - thumbnails;
## - outline;
## - attachments;
## - layers.
## The thumbnails view is used to edit the pdf: remove/insert pages, ...
pdfjs-toggle-views-manager-notification-button =
.title = Attiva/disattiva barra laterale (il documento contiene miniature, struttura, allegati, livelli)
pdfjs-toggle-views-manager-button1-label = Gestisci pagine
pdfjs-views-manager-sidebar =
.aria-label = Barra laterale
pdfjs-views-manager-sidebar-resizer =
.aria-label = Regolatore della larghezza della barra laterale
pdfjs-views-manager-view-selector-button =
.title = Viste
pdfjs-views-manager-view-selector-button-label = Viste
pdfjs-views-manager-pages-title = Pagine
pdfjs-views-manager-outlines-title1 = Struttura del documento
.title = Struttura del documento (doppio clic per espandere/comprimere tutti gli elementi)
pdfjs-views-manager-attachments-title = Allegati
pdfjs-views-manager-layers-title1 = Livelli
.title = Livelli (doppio clic per ripristinare tutti i livelli allo stato predefinito)
pdfjs-views-manager-pages-option-label = Pagine
pdfjs-views-manager-outlines-option-label = Struttura del documento
pdfjs-views-manager-attachments-option-label = Allegati
pdfjs-views-manager-layers-option-label = Livelli
pdfjs-views-manager-add-file-button =
.title = Aggiungi file
pdfjs-views-manager-add-file-button-label = Aggiungi file
# Variables:
# $count (Number) - the number of selected pages.
pdfjs-views-manager-pages-status-action-label =
{ $count ->
[one] { $count } selezionata
*[other] { $count } selezionate
}
pdfjs-views-manager-pages-status-none-action-label = Seleziona pagine
pdfjs-views-manager-pages-status-action-button-label = Gestisci
pdfjs-views-manager-pages-status-copy-button-label = Copia
pdfjs-views-manager-pages-status-cut-button-label = Taglia
pdfjs-views-manager-pages-status-delete-button-label = Elimina
pdfjs-views-manager-pages-status-export-selected-button-label = Esporta selezionate…
# Variables:
# $count (Number) - the number of selected pages to be cut.
pdfjs-views-manager-status-undo-cut-label =
{ $count ->
[one] { $count } pagina tagliata
*[other] { $count } pagine tagliate
}
# Variables:
# $count (Number) - the number of selected pages to be copied.
pdfjs-views-manager-pages-status-undo-copy-label =
{ $count ->
[one] { $count } pagina copiata
*[other] { $count } pagine copiate
}
# Variables:
# $count (Number) - the number of selected pages to be deleted.
pdfjs-views-manager-pages-status-undo-delete-label =
{ $count ->
[one] { $count } pagina eliminata
*[other] { $count } pagine eliminate
}
pdfjs-views-manager-pages-status-waiting-ready-label = Preparazione file…
pdfjs-views-manager-pages-status-waiting-uploading-label = Caricamento file…
pdfjs-views-manager-status-warning-cut-label = Taglio non riuscito. Ricarica la pagina e riprova.
pdfjs-views-manager-status-warning-copy-label = Copia non riuscita. Ricarica la pagina e riprova.
pdfjs-views-manager-status-warning-delete-label = Eliminazione non riuscita. Ricarica la pagina e riprova.
pdfjs-views-manager-status-warning-save-label = Salvataggio non riuscito. Ricarica la pagina e prova di nuovo.
pdfjs-views-manager-status-undo-button-label = Annulla
pdfjs-views-manager-status-done-button-label = Fatto
pdfjs-views-manager-status-close-button =
.title = Chiudi
pdfjs-views-manager-status-close-button-label = Chiudi
pdfjs-views-manager-paste-button-label = Incolla
pdfjs-views-manager-paste-button-before =
.title = Incolla dopo la prima pagina
# Variables:
# $page (Number) - the page number after which the paste button is.
pdfjs-views-manager-paste-button-after =
.title = Incolla dopo pagina { $page }
# Badge used to promote a new feature in the UI, keep it as short as possible.
# It's spelled uppercase for English, but it can be translated as usual.
pdfjs-new-badge-content = NOVITÀ
pdfjs-views-manager-waiting-for-file = Caricamento file…
pdfjs-toggle-views-manager-button1 =
.title = Gestisci pagine
## Main menu for adding/removing signatures
pdfjs-editor-delete-signature-button1 =

Some files were not shown because too many files have changed in this diff Show More