From 76151fdc06d6ccb06eb962f6921fe8c94fc78545 Mon Sep 17 00:00:00 2001 From: Takashi Tamura Date: Mon, 20 Jan 2025 07:55:23 +0900 Subject: [PATCH] chore: update pdfjs-dist to version 4.10.38 --- package-lock.json | 726 +++++++-------------------------- package.json | 2 +- viewer/locale/be/viewer.ftl | 37 +- viewer/locale/bg/viewer.ftl | 1 + viewer/locale/cs/viewer.ftl | 38 +- viewer/locale/cy/viewer.ftl | 42 +- viewer/locale/da/viewer.ftl | 38 +- viewer/locale/de/viewer.ftl | 36 +- viewer/locale/dsb/viewer.ftl | 38 +- viewer/locale/el/viewer.ftl | 36 +- viewer/locale/en-CA/viewer.ftl | 36 +- viewer/locale/en-GB/viewer.ftl | 36 +- viewer/locale/en-US/viewer.ftl | 21 + viewer/locale/eo/viewer.ftl | 38 +- viewer/locale/es-AR/viewer.ftl | 36 +- viewer/locale/es-CL/viewer.ftl | 38 +- viewer/locale/es-ES/viewer.ftl | 36 +- viewer/locale/es-MX/viewer.ftl | 116 +++++- viewer/locale/eu/viewer.ftl | 36 +- viewer/locale/fa/viewer.ftl | 104 ++++- viewer/locale/fi/viewer.ftl | 36 +- viewer/locale/fr/viewer.ftl | 36 +- viewer/locale/fur/viewer.ftl | 4 + viewer/locale/fy-NL/viewer.ftl | 38 +- viewer/locale/gn/viewer.ftl | 42 +- viewer/locale/he/viewer.ftl | 44 +- viewer/locale/hr/viewer.ftl | 37 +- viewer/locale/hsb/viewer.ftl | 38 +- viewer/locale/hu/viewer.ftl | 36 +- viewer/locale/ia/viewer.ftl | 36 +- viewer/locale/id/viewer.ftl | 81 ++++ viewer/locale/is/viewer.ftl | 36 +- viewer/locale/it/viewer.ftl | 42 +- viewer/locale/ja/viewer.ftl | 32 +- viewer/locale/ka/viewer.ftl | 129 +++++- viewer/locale/kk/viewer.ftl | 36 +- viewer/locale/ko/viewer.ftl | 32 +- viewer/locale/nb-NO/viewer.ftl | 16 +- viewer/locale/nl/viewer.ftl | 36 +- viewer/locale/nn-NO/viewer.ftl | 23 +- viewer/locale/oc/viewer.ftl | 50 ++- viewer/locale/pa-IN/viewer.ftl | 36 +- viewer/locale/pl/viewer.ftl | 37 +- viewer/locale/pt-BR/viewer.ftl | 36 +- viewer/locale/pt-PT/viewer.ftl | 36 +- viewer/locale/rm/viewer.ftl | 36 +- viewer/locale/ru/viewer.ftl | 37 +- viewer/locale/si/viewer.ftl | 6 +- viewer/locale/sk/viewer.ftl | 38 +- viewer/locale/skr/viewer.ftl | 19 +- viewer/locale/sl/viewer.ftl | 38 +- viewer/locale/sq/viewer.ftl | 44 +- viewer/locale/sr/viewer.ftl | 114 +++++- viewer/locale/sv-SE/viewer.ftl | 36 +- viewer/locale/tg/viewer.ftl | 53 ++- viewer/locale/th/viewer.ftl | 32 +- viewer/locale/tr/viewer.ftl | 36 +- viewer/locale/uk/viewer.ftl | 39 +- viewer/locale/vi/viewer.ftl | 32 +- viewer/locale/zh-CN/viewer.ftl | 34 +- viewer/locale/zh-TW/viewer.ftl | 32 +- viewer/viewer.css | 435 ++++++++++++++------ viewer/viewer.html | 16 +- viewer/viewer.mjs | 563 +++++++++++++------------ 64 files changed, 3071 insertions(+), 1065 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1c30f149..67ece2b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "latex-utensils": "6.2.0", "mathjax-full": "3.2.2", "micromatch": "4.0.8", - "pdfjs-dist": "4.8.69", + "pdfjs-dist": "4.10.38", "workerpool": "9.2.0", "ws": "8.18.0" }, @@ -5962,647 +5962,197 @@ } }, "node_modules/pdfjs-dist": { - "version": "4.8.69", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.8.69.tgz", - "integrity": "sha512-IHZsA4T7YElCKNNXtiLgqScw4zPd3pG9do8UrznC757gMd7UPeHSL2qwNNMJo4r79fl8oj1Xx+1nh2YkzdMpLQ==", + "version": "4.10.38", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.10.38.tgz", + "integrity": "sha512-/Y3fcFrXEAsMjJXeL9J8+ZG9U01LbuWaYypvDW2ycW1jL269L3js3DVBjDJ0Up9Np1uqDXsDrRihHANhZOlwdQ==", "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=20" }, "optionalDependencies": { - "canvas": "^3.0.0-rc2", - "path2d": "^0.2.1" + "@napi-rs/canvas": "^0.1.65" } }, - "node_modules/pdfjs-dist/node_modules/canvas": { - "version": "3.0.0-rc2", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-3.0.0-rc2.tgz", - "integrity": "sha512-esx4bYDznnqgRX4G8kaEaf0W3q8xIc51WpmrIitDzmcoEgwnv9wSKdzT6UxWZ4wkVu5+ileofppX0TpyviJRdQ==", - "hasInstallScript": true, + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.65.tgz", + "integrity": "sha512-YcFhXQcp+b2d38zFOJNbpyPHnIL7KAEkhJQ+UeeKI5IpE9B8Cpf/M6RiHPQXSsSqnYbrfFylnW49dyh2oeSblQ==", "license": "MIT", "optional": true, - "dependencies": { - "node-addon-api": "^7.0.0", - "prebuild-install": "^7.1.1", - "simple-get": "^3.0.3" - }, "engines": { - "node": "^18.12.0 || >= 20.9.0" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" + "node": ">= 10" }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "license": "(MIT OR WTFPL)", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "optionalDependencies": { + "@napi-rs/canvas-android-arm64": "0.1.65", + "@napi-rs/canvas-darwin-arm64": "0.1.65", + "@napi-rs/canvas-darwin-x64": "0.1.65", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.65", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.65", + "@napi-rs/canvas-linux-arm64-musl": "0.1.65", + "@napi-rs/canvas-linux-riscv64-gnu": "0.1.65", + "@napi-rs/canvas-linux-x64-gnu": "0.1.65", + "@napi-rs/canvas-linux-x64-musl": "0.1.65", + "@napi-rs/canvas-win32-x64-msvc": "0.1.65" + } + }, + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-android-arm64": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.65.tgz", + "integrity": "sha512-ZYwqFYEKcT5Zr8lbiaJNJj/poLaeK2TncolY914r+gD2TJNeP7ZqvE7A2SX/1C9MB4E3DQEwm3YhL3WEf0x3MQ==", + "cpu": [ + "arm64" + ], "license": "MIT", "optional": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "os": [ + "android" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-darwin-arm64": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.65.tgz", + "integrity": "sha512-Pg1pfiJEyDIsX+V0QaJPRWvXbw5zmWAk3bivFCvt/5pwZb37/sT6E/RqPHT9NnqpDyKW6SriwY9ypjljysUA1Q==", + "cpu": [ + "arm64" + ], "license": "MIT", "optional": true, - "dependencies": { - "semver": "^7.3.5" - }, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/node-abi/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-darwin-x64": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.65.tgz", + "integrity": "sha512-3Tr+/HjdJN7Z/VKIcsxV2DvDIibZCExgfYTgljCkUSFuoI7iNkOE6Dc1Q6j212EB9PeO8KmfrViBqHYT6IwWkA==", + "cpu": [ + "x64" + ], + "license": "MIT", "optional": true, - "bin": { - "semver": "bin/semver.js" - }, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.65.tgz", + "integrity": "sha512-3KP+dYObH7CVkZMZWwk1WX9jRjL+EKdQtD43H8MOI+illf+dwqLlecdQ4d9bQRIxELKJ8dyPWY4fOp/Ngufrdg==", + "cpu": [ + "arm" + ], "license": "MIT", "optional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/pump/node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-linux-arm64-gnu": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.65.tgz", + "integrity": "sha512-Ka3StKz7Dq7kjTF3nNJCq43UN/VlANS7qGE3dWkn1d+tQNsCRy/wRmyt1TUFzIjRqcTFMQNRbgYq84+53UBA0A==", + "cpu": [ + "arm64" + ], "license": "MIT", "optional": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/pump/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/pump/node_modules/once/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/rc/node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-linux-arm64-musl": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.65.tgz", + "integrity": "sha512-O4xMASm2JrmqYoiDyxVWi+z5C14H+oVEag2rZ5iIA67dhWqYZB+iO7wCFpBYRj31JPBR29FOsu6X9zL+DwBFdw==", + "cpu": [ + "arm64" + ], "license": "MIT", "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4.0.0" + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-linux-riscv64-gnu": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.65.tgz", + "integrity": "sha512-dblWDaA59ZU8bPbkfM+riSke7sFbNZ70LEevUdI5rgiFEUzYUQlU34gSBzemTACj5rCWt1BYeu0GfkLSjNMBSw==", + "cpu": [ + "riscv64" + ], "license": "MIT", "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-linux-x64-gnu": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.65.tgz", + "integrity": "sha512-wsp+atutw13OJXGU3DDkdngtBDoEg01IuK5xMe0L6VFPV8maGkh17CXze078OD5QJOc6kFyw3DDscMLOPF8+oA==", + "cpu": [ + "x64" ], "license": "MIT", "optional": true, - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/simple-get/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-linux-x64-musl": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.65.tgz", + "integrity": "sha512-odX+nN+IozWzhdj31INcHz3Iy9+EckNw+VqsZcaUxZOTu7/3FmktRNI6aC1qe5minZNv1m05YOS1FVf7fvmjlA==", + "cpu": [ + "x64" + ], "license": "MIT", "optional": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 10" } }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/simple-get/node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "node_modules/pdfjs-dist/node_modules/@napi-rs/canvas/node_modules/@napi-rs/canvas-win32-x64-msvc": { + "version": "0.1.65", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.65.tgz", + "integrity": "sha512-RZQX3luWnlNWgdMnLMQ1hyfQraeAn9lnxWWVCHuUM4tAWEV8UDdeb7cMwmJW7eyt8kAosmjeHt3cylQMHOxGFg==", + "cpu": [ + "x64" + ], "license": "MIT", "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/simple-get/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/simple-get/node_modules/once/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/simple-get/node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "license": "MIT", - "optional": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "license": "ISC", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/bl/node_modules/buffer/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/bl/node_modules/buffer/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/end-of-stream/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/end-of-stream/node_modules/once/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/readable-stream/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tar-fs/node_modules/tar-stream/node_modules/readable-stream/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/prebuild-install/node_modules/tunnel-agent/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "license": "MIT", - "optional": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/simple-get/node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "license": "MIT", - "optional": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/simple-get/node_modules/decompress-response/node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/simple-get/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/simple-get/node_modules/once/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/canvas/node_modules/simple-get/node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/pdfjs-dist/node_modules/path2d": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/path2d/-/path2d-0.2.1.tgz", - "integrity": "sha512-Fl2z/BHvkTNvkuBzYTpTuirHZg6wW9z8+4SND/3mDTEcYbbNKWAy21dz9D3ePNNwrrK8pqZO5vLPZ1hLF6T7XA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" + "node": ">= 10" } }, "node_modules/rimraf": { diff --git a/package.json b/package.json index 47e99041..61934ab4 100644 --- a/package.json +++ b/package.json @@ -1692,7 +1692,7 @@ "latex-utensils": "6.2.0", "mathjax-full": "3.2.2", "micromatch": "4.0.8", - "pdfjs-dist": "4.8.69", + "pdfjs-dist": "4.10.38", "workerpool": "9.2.0", "ws": "8.18.0" }, diff --git a/viewer/locale/be/viewer.ftl b/viewer/locale/be/viewer.ftl index 2fcbace1..3f029d93 100644 --- a/viewer/locale/be/viewer.ftl +++ b/viewer/locale/be/viewer.ftl @@ -345,6 +345,10 @@ pdfjs-editor-stamp-add-image-button-label = Дадаць выяву pdfjs-editor-free-highlight-thickness-input = Таўшчыня pdfjs-editor-free-highlight-thickness-title = .title = Змяняць таўшчыню пры вылучэнні іншых элементаў, акрамя тэксту +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Тэкставы рэдактар + .default-content = Пачніце ўводзіць… pdfjs-free-text = .aria-label = Тэкставы рэдактар pdfjs-free-text-default-content = Пачніце набор тэксту… @@ -355,8 +359,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Альтэрнатыўны тэкст +pdfjs-editor-alt-text-edit-button = + .aria-label = Змяніць альтэрнатыўны тэкст pdfjs-editor-alt-text-edit-button-label = Змяніць альтэрнатыўны тэкст pdfjs-editor-alt-text-dialog-label = Выберыце варыянт pdfjs-editor-alt-text-dialog-description = Альтэрнатыўны тэкст дапамагае, калі людзі не бачаць выяву або калі яна не загружаецца. @@ -370,6 +375,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Пазначаны як дэкара # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Напрыклад, «Малады чалавек садзіцца за стол есці» +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Альтэрнатыўны тэкст ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -451,10 +459,16 @@ pdfjs-editor-new-alt-text-error-close-button = Закрыць pdfjs-editor-new-alt-text-ai-model-downloading-progress = Сцягванне мадэлі ШІ для тэксту для атрыбута alt ({ $downloadedSize } з { $totalSize } МБ) .aria-valuetext = Сцягванне мадэлі ШІ для тэксту для атрыбута alt ({ $downloadedSize } з { $totalSize } МБ) # 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 = Тэкст для атрыбута alt дададзены pdfjs-editor-new-alt-text-added-button-label = Тэкст для атрыбута alt дададзены # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Адсутнічае тэкст для атрыбута alt pdfjs-editor-new-alt-text-missing-button-label = Адсутнічае тэкст для атрыбута alt # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Водгук на тэкст для атрыбута alt pdfjs-editor-new-alt-text-to-review-button-label = Водгук на тэкст для атрыбута alt # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -481,3 +495,24 @@ pdfjs-editor-alt-text-settings-editor-title = Рэдактар тэксту дл pdfjs-editor-alt-text-settings-show-dialog-button-label = Адразу паказваць рэдактар тэксту для атрыбута alt пры даданні выявы pdfjs-editor-alt-text-settings-show-dialog-description = Дапамагае пераканацца, што ўсе вашы выявы маюць альтэрнатыўны тэкст. pdfjs-editor-alt-text-settings-close-button = Закрыць + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Падсвятленне выдалена +pdfjs-editor-undo-bar-message-freetext = Тэкст выдалены +pdfjs-editor-undo-bar-message-ink = Малюнак выдалены +pdfjs-editor-undo-bar-message-stamp = Відарыс выдалены +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } анатацыя выдалена + [few] { $count } анатацыі выдалена + *[many] { $count } анатацый выдалена + } +pdfjs-editor-undo-bar-undo-button = + .title = Адмяніць +pdfjs-editor-undo-bar-undo-button-label = Адмяніць +pdfjs-editor-undo-bar-close-button = + .title = Закрыць +pdfjs-editor-undo-bar-close-button-label = Закрыць diff --git a/viewer/locale/bg/viewer.ftl b/viewer/locale/bg/viewer.ftl index c53950b1..8b1124ee 100644 --- a/viewer/locale/bg/viewer.ftl +++ b/viewer/locale/bg/viewer.ftl @@ -412,6 +412,7 @@ pdfjs-editor-colorpicker-red = ## 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-not-now-button = Не сега ## Image alt-text settings diff --git a/viewer/locale/cs/viewer.ftl b/viewer/locale/cs/viewer.ftl index 0f90f861..696fe300 100644 --- a/viewer/locale/cs/viewer.ftl +++ b/viewer/locale/cs/viewer.ftl @@ -347,6 +347,10 @@ pdfjs-editor-stamp-add-image-button-label = Přidat obrázek pdfjs-editor-free-highlight-thickness-input = Tloušťka pdfjs-editor-free-highlight-thickness-title = .title = Změna tloušťky při zvýrazňování jiných položek než textu +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Textový editor + .default-content = Začněte psát... pdfjs-free-text = .aria-label = Textový editor pdfjs-free-text-default-content = Začněte psát… @@ -357,8 +361,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Náhradní popis +pdfjs-editor-alt-text-edit-button = + .aria-label = Upravit alternativní text pdfjs-editor-alt-text-edit-button-label = Upravit náhradní popis pdfjs-editor-alt-text-dialog-label = Vyberte možnost pdfjs-editor-alt-text-dialog-description = Náhradní popis pomáhá, když lidé obrázek nevidí nebo když se nenačítá. @@ -372,6 +377,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Označen jako dekorativní # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Například: “Mladý muž si sedá ke stolu, aby se najedl.” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternativní text ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -453,10 +461,16 @@ pdfjs-editor-new-alt-text-error-close-button = Zavřít pdfjs-editor-new-alt-text-ai-model-downloading-progress = Stahuje se model AI pro alternativní texty ({ $downloadedSize } z { $totalSize } MB) .aria-valuetext = Stahuje se model AI pro alternativní texty ({ $downloadedSize } z { $totalSize } 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 = Alternativní text byl přidán pdfjs-editor-new-alt-text-added-button-label = Alternativní text byl přidán # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Chybí alternativní text pdfjs-editor-new-alt-text-missing-button-label = Chybí alternativní text # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Zkontrolovat alternativní text pdfjs-editor-new-alt-text-to-review-button-label = Zkontrolovat alternativní text # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -483,3 +497,25 @@ pdfjs-editor-alt-text-settings-editor-title = Editor alternativního textu pdfjs-editor-alt-text-settings-show-dialog-button-label = Při přidávání obrázku hned zobrazit editor alternativního textu pdfjs-editor-alt-text-settings-show-dialog-description = Pomůže vám zajistit, aby všechny vaše obrázky obsahovaly alternativní text. pdfjs-editor-alt-text-settings-close-button = Zavřít + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Zvýraznění odebráno +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 +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anotace odebrána + [few] { $count } anotace odebrány + [many] { $count } anotací odebráno + *[other] { $count } anotací odebráno + } +pdfjs-editor-undo-bar-undo-button = + .title = Zpět +pdfjs-editor-undo-bar-undo-button-label = Zpět +pdfjs-editor-undo-bar-close-button = + .title = Zavřít +pdfjs-editor-undo-bar-close-button-label = Zavřít diff --git a/viewer/locale/cy/viewer.ftl b/viewer/locale/cy/viewer.ftl index 1c5415c8..83638351 100644 --- a/viewer/locale/cy/viewer.ftl +++ b/viewer/locale/cy/viewer.ftl @@ -351,6 +351,10 @@ pdfjs-editor-stamp-add-image-button-label = Ychwanegu delwedd pdfjs-editor-free-highlight-thickness-input = Trwch pdfjs-editor-free-highlight-thickness-title = .title = Newid trwch wrth amlygu eitemau heblaw testun +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Golygydd Testun + .default-content = Cychwyn teipio… pdfjs-free-text = .aria-label = Golygydd Testun pdfjs-free-text-default-content = Cychwyn teipio… @@ -361,8 +365,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Testun amgen (alt) +pdfjs-editor-alt-text-edit-button = + .aria-label = Golygu testun amgen pdfjs-editor-alt-text-edit-button-label = Golygu testun amgen pdfjs-editor-alt-text-dialog-label = Dewisiadau pdfjs-editor-alt-text-dialog-description = Mae testun amgen (testun alt) yn helpu pan na all pobl weld y ddelwedd neu pan nad yw'n llwytho. @@ -376,6 +381,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcio fel addurniadol # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Er enghraifft, “Mae dyn ifanc yn eistedd wrth fwrdd i fwyta pryd bwyd” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Testun amgen (alt) ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -444,7 +452,7 @@ pdfjs-editor-new-alt-text-textarea = pdfjs-editor-new-alt-text-description = Disgrifiad byr ar gyfer pobl sydd ddim yn gallu gweld y ddelwedd neu pan nad yw'r ddelwedd yn llwytho. # This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human. pdfjs-editor-new-alt-text-disclaimer1 = Cafodd y testun amgen hwn ei greu'n awtomatig a gall fod yn anghywir. -pdfjs-editor-new-alt-text-disclaimer-learn-more-url = Dysgu rhagor +pdfjs-editor-new-alt-text-disclaimer-learn-more-url = Rhagor pdfjs-editor-new-alt-text-create-automatically-button-label = Creu testun amgen yn awtomatig pdfjs-editor-new-alt-text-not-now-button = Nid nawr pdfjs-editor-new-alt-text-error-title = Methu â chreu testun amgen yn awtomatig @@ -457,10 +465,16 @@ pdfjs-editor-new-alt-text-error-close-button = Cau pdfjs-editor-new-alt-text-ai-model-downloading-progress = Wrthi'n llwytho i lawr model AI testun amgen ( { $downloadedSize } o { $totalSize } MB) .aria-valuetext = Wrthi'n llwytho i lawr model AI testun amgen ( { $downloadedSize } o { $totalSize } 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 = Ychwanegwyd testun amgen pdfjs-editor-new-alt-text-added-button-label = Ychwanegwyd testun amgen # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Testun amgen coll pdfjs-editor-new-alt-text-missing-button-label = Testun amgen coll # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Adolygu'r testun amgen pdfjs-editor-new-alt-text-to-review-button-label = Adolygu'r testun amgen # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -487,3 +501,27 @@ pdfjs-editor-alt-text-settings-editor-title = Golygydd testun amgen pdfjs-editor-alt-text-settings-show-dialog-button-label = Dangoswch y golygydd testun amgen yn syth wrth ychwanegu delwedd pdfjs-editor-alt-text-settings-show-dialog-description = Yn eich helpu i wneud yn siŵr bod gan eich holl ddelweddau destun amgen. pdfjs-editor-alt-text-settings-close-button = Cau + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Tynnwyd yr amlygu +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 +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [zero] { $count } anodiad wedi'u tynnu + [one] { $count } anodiad wedi'i dynnu + [two] { $count } anodiad wedi'u tynnu + [few] { $count } anodiad wedi'u tynnu + [many] { $count } anodiad wedi'u tynnu + *[other] { $count } anodiad wedi'u tynnu + } +pdfjs-editor-undo-bar-undo-button = + .title = Dadwneud +pdfjs-editor-undo-bar-undo-button-label = Dadwneud +pdfjs-editor-undo-bar-close-button = + .title = Cau +pdfjs-editor-undo-bar-close-button-label = Cau diff --git a/viewer/locale/da/viewer.ftl b/viewer/locale/da/viewer.ftl index a3ba621a..224eac17 100644 --- a/viewer/locale/da/viewer.ftl +++ b/viewer/locale/da/viewer.ftl @@ -184,7 +184,7 @@ pdfjs-toggle-sidebar-notification-button = .title = Slå sidepanel til eller fra (dokumentet indeholder disposition/vedhæftede filer/lag) pdfjs-toggle-sidebar-button-label = Slå sidepanel til eller fra pdfjs-document-outline-button = - .title = Vis dokumentets disposition (dobbeltklik for at vise/skjule alle elementer) + .title = Vis dokumentets disposition (dobbeltklik for at udvide/sammenfolde alle elementer) pdfjs-document-outline-button-label = Dokument-disposition pdfjs-attachments-button = .title = Vis vedhæftede filer @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Tilføj billede pdfjs-editor-free-highlight-thickness-input = Tykkelse pdfjs-editor-free-highlight-thickness-title = .title = Ændr tykkelse, når andre elementer end tekst fremhæves +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Teksteditor + .default-content = Begynd at skrive… pdfjs-free-text = .aria-label = Teksteditor pdfjs-free-text-default-content = Begynd at skrive… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternativ tekst +pdfjs-editor-alt-text-edit-button = + .aria-label = Rediger alternativ tekst pdfjs-editor-alt-text-edit-button-label = Rediger alternativ tekst pdfjs-editor-alt-text-dialog-label = Vælg en indstilling pdfjs-editor-alt-text-dialog-description = Alternativ tekst hjælper folk, som ikke kan se billedet eller når det ikke indlæses. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Markeret som dekorativ # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = For eksempel: "En ung mand sætter sig ved et bord for at spise et måltid mad" +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternativ tekst ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Luk pdfjs-editor-new-alt-text-ai-model-downloading-progress = Henter alternativ tekst AI-model ({ $downloadedSize } af { $totalSize } MB) .aria-valuetext = Henter alternativ tekst AI-model ({ $downloadedSize } af { $totalSize } 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 = Alternativ tekst tilføjet pdfjs-editor-new-alt-text-added-button-label = Alternativ tekst tilføjet # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Mangler alternativ tekst pdfjs-editor-new-alt-text-missing-button-label = Mangler alternativ tekst # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Gennemgå alternativ tekst pdfjs-editor-new-alt-text-to-review-button-label = Gennemgå alternativ tekst # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Redigering af alternativ tekst pdfjs-editor-alt-text-settings-show-dialog-button-label = Vis redigering af alternativ tekst med det samme, når et billede tilføjes pdfjs-editor-alt-text-settings-show-dialog-description = Hjælper dig med at sikre, at alle dine billeder har alternativ tekst. pdfjs-editor-alt-text-settings-close-button = Luk + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Fremhævning fjernet +pdfjs-editor-undo-bar-message-freetext = Tekst fjernet +pdfjs-editor-undo-bar-message-ink = Tegning fjernet +pdfjs-editor-undo-bar-message-stamp = Billede fjernet +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } kommentar fjernet + *[other] { $count } kommentarer fjernet + } +pdfjs-editor-undo-bar-undo-button = + .title = Fortryd +pdfjs-editor-undo-bar-undo-button-label = Fortryd +pdfjs-editor-undo-bar-close-button = + .title = Luk +pdfjs-editor-undo-bar-close-button-label = Luk diff --git a/viewer/locale/de/viewer.ftl b/viewer/locale/de/viewer.ftl index b8d7ab9a..ee264550 100644 --- a/viewer/locale/de/viewer.ftl +++ b/viewer/locale/de/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Grafik hinzufügen pdfjs-editor-free-highlight-thickness-input = Linienstärke pdfjs-editor-free-highlight-thickness-title = .title = Linienstärke beim Hervorheben anderer Elemente als Text ändern +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Texteditor + .default-content = Schreiben beginnen… pdfjs-free-text = .aria-label = Texteditor pdfjs-free-text-default-content = Schreiben beginnen… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternativ-Text +pdfjs-editor-alt-text-edit-button = + .aria-label = Alternativ-Text bearbeiten pdfjs-editor-alt-text-edit-button-label = Alternativ-Text bearbeiten pdfjs-editor-alt-text-dialog-label = Option wählen pdfjs-editor-alt-text-dialog-description = Alt-Text (Alternativtext) hilft, wenn Personen die Grafik nicht sehen können oder wenn sie nicht geladen wird. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Als dekorativ markiert # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Zum Beispiel: "Ein junger Mann setzt sich an einen Tisch, um zu essen." +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternativ-Text ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Schließen pdfjs-editor-new-alt-text-ai-model-downloading-progress = Alternativ-Text-KI-Modell wird heruntergeladen ({ $downloadedSize } von { $totalSize } MB) .aria-valuetext = Alternativ-Text-KI-Modell wird heruntergeladen ({ $downloadedSize } von { $totalSize } 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 = Alternativ-Text hinzugefügt pdfjs-editor-new-alt-text-added-button-label = Alternativ-Text hinzugefügt # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Fehlender Alternativ-Text pdfjs-editor-new-alt-text-missing-button-label = Fehlender Alternativ-Text # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Alternativ-Text überprüfen pdfjs-editor-new-alt-text-to-review-button-label = Alternativ-Text überprüfen # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Alternativ-Texteditor pdfjs-editor-alt-text-settings-show-dialog-button-label = Alternativ-Texteditor beim Hinzufügen einer Grafik anzeigen pdfjs-editor-alt-text-settings-show-dialog-description = Hilft Ihnen, sicherzustellen, dass alle Ihre Grafiken Alternativ-Text haben. pdfjs-editor-alt-text-settings-close-button = Schließen + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Hervorhebung entfernt +pdfjs-editor-undo-bar-message-freetext = Text entfernt +pdfjs-editor-undo-bar-message-ink = Zeichnung entfernt +pdfjs-editor-undo-bar-message-stamp = Grafik entfernt +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } Anmerkung entfernt + *[other] { $count } Anmerkungen entfernt + } +pdfjs-editor-undo-bar-undo-button = + .title = Rückgängig +pdfjs-editor-undo-bar-undo-button-label = Rückgängig +pdfjs-editor-undo-bar-close-button = + .title = Schließen +pdfjs-editor-undo-bar-close-button-label = Schließen diff --git a/viewer/locale/dsb/viewer.ftl b/viewer/locale/dsb/viewer.ftl index eeb41da9..24ac94fb 100644 --- a/viewer/locale/dsb/viewer.ftl +++ b/viewer/locale/dsb/viewer.ftl @@ -347,6 +347,10 @@ pdfjs-editor-stamp-add-image-button-label = Wobraz pśidaś pdfjs-editor-free-highlight-thickness-input = Tłustosć pdfjs-editor-free-highlight-thickness-title = .title = Tłustosć změniś, gaž se zapiski wuzwiguju, kótarež tekst njejsu +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Tekstowy editor + .default-content = Zachopśo pisaś … pdfjs-free-text = .aria-label = Tekstowy editor pdfjs-free-text-default-content = Zachopśo pisaś… @@ -357,8 +361,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternatiwny tekst +pdfjs-editor-alt-text-edit-button = + .aria-label = Alternatiwny tekst wobźěłaś pdfjs-editor-alt-text-edit-button-label = Alternatiwny tekst wobźěłaś pdfjs-editor-alt-text-dialog-label = Nastajenje wubraś pdfjs-editor-alt-text-dialog-description = Alternatiwny tekst pomaga, gaž luźe njamógu wobraz wiźeś abo gaž se wobraz njezacytajo. @@ -372,6 +377,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Ako dekoratiwny markěrowany # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Na pśikład, „Młody muski za blidom sejźi, aby jěź jědł“ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternatiwny tekst ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -453,10 +461,16 @@ pdfjs-editor-new-alt-text-error-close-button = Zacyniś pdfjs-editor-new-alt-text-ai-model-downloading-progress = Model KI za alternatiwny tekst se ześěgujo ({ $downloadedSize } z { $totalSize } MB) .aria-valuetext = Model KI za alternatiwny tekst se ześěgujo ({ $downloadedSize } z { $totalSize } 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 = Alternatiwny tekst jo se pśidał pdfjs-editor-new-alt-text-added-button-label = Alternatiwny tekst jo se pśidał # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Alternatiwny tekst felujo pdfjs-editor-new-alt-text-missing-button-label = Alternatiwny tekst felujo # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Alternatiwny tekst pśeglědowaś pdfjs-editor-new-alt-text-to-review-button-label = Alternatiwny tekst pśeglědowaś # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -483,3 +497,25 @@ pdfjs-editor-alt-text-settings-editor-title = Editor za alternatiwny tekst pdfjs-editor-alt-text-settings-show-dialog-button-label = Editor alternatiwnego teksta ned pokazaś, gaž se wobraz pśidawa pdfjs-editor-alt-text-settings-show-dialog-description = Pomaga, wam wšym swójim wobrazam alternatiwny tekst pśidaś. pdfjs-editor-alt-text-settings-close-button = Zacyniś + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Wótwónoźone wuzwignuś +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ł +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } pśipisk jo se wótwónoźeł + [two] { $count } pśipiska stej se wótwónoźełej + [few] { $count } pśipiski su se wótwónoźeli + *[other] { $count } pśipiskow jo se wótwónoźeło + } +pdfjs-editor-undo-bar-undo-button = + .title = Anulěrowaś +pdfjs-editor-undo-bar-undo-button-label = Anulěrowaś +pdfjs-editor-undo-bar-close-button = + .title = Zacyniś +pdfjs-editor-undo-bar-close-button-label = Zacyniś diff --git a/viewer/locale/el/viewer.ftl b/viewer/locale/el/viewer.ftl index a95b6e71..5a04bd8a 100644 --- a/viewer/locale/el/viewer.ftl +++ b/viewer/locale/el/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Προσθήκη εικόνας pdfjs-editor-free-highlight-thickness-input = Πάχος pdfjs-editor-free-highlight-thickness-title = .title = Αλλαγή πάχους κατά την επισήμανση στοιχείων εκτός κειμένου +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Επεξεργασία κειμένου + .default-content = Ξεκινήστε να πληκτρολογείτε… pdfjs-free-text = .aria-label = Επεξεργασία κειμένου pdfjs-free-text-default-content = Ξεκινήστε να πληκτρολογείτε… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Εναλλακτικό κείμενο +pdfjs-editor-alt-text-edit-button = + .aria-label = Επεξεργασία εναλλακτικού κειμένου pdfjs-editor-alt-text-edit-button-label = Επεξεργασία εναλλακτικού κειμένου pdfjs-editor-alt-text-dialog-label = Διαλέξτε μια επιλογή pdfjs-editor-alt-text-dialog-description = Το εναλλακτικό κείμενο είναι χρήσιμο όταν οι άνθρωποι δεν μπορούν να δουν την εικόνα ή όταν αυτή δεν φορτώνεται. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Επισημασμένο ως δια # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Για παράδειγμα, «Ένας νεαρός άνδρας κάθεται σε ένα τραπέζι για να φάει ένα γεύμα» +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Εναλλακτικό κείμενο ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Κλείσιμο pdfjs-editor-new-alt-text-ai-model-downloading-progress = Λήψη μοντέλου AI εναλλακτικού κειμένου ({ $downloadedSize } από { $totalSize } MB) .aria-valuetext = Λήψη μοντέλου AI εναλλακτικού κειμένου ({ $downloadedSize } από { $totalSize } 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 = Προστέθηκε εναλλακτικό κείμενο pdfjs-editor-new-alt-text-added-button-label = Προστέθηκε εναλλακτικό κείμενο # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Απουσία εναλλακτικού κειμένου pdfjs-editor-new-alt-text-missing-button-label = Απουσία εναλλακτικού κειμένου # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Έλεγχος εναλλακτικού κειμένου pdfjs-editor-new-alt-text-to-review-button-label = Έλεγχος εναλλακτικού κειμένου # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Επεξεργασία εναλλ pdfjs-editor-alt-text-settings-show-dialog-button-label = Άμεση εμφάνιση της επεξεργασίας εναλλακτικού κειμένου κατά την προσθήκη εικόνας pdfjs-editor-alt-text-settings-show-dialog-description = Σας βοηθά να βεβαιωθείτε ότι όλες οι εικόνες σας έχουν εναλλακτικό κείμενο. pdfjs-editor-alt-text-settings-close-button = Κλείσιμο + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Η επισήμανση αφαιρέθηκε +pdfjs-editor-undo-bar-message-freetext = Το κείμενο αφαιρέθηκε +pdfjs-editor-undo-bar-message-ink = Το σχέδιο αφαιρέθηκε +pdfjs-editor-undo-bar-message-stamp = Η εικόνα αφαιρέθηκε +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] Αφαιρέθηκε { $count } σχολιασμός + *[other] Αφαιρέθηκαν { $count } σχολιασμοί + } +pdfjs-editor-undo-bar-undo-button = + .title = Αναίρεση +pdfjs-editor-undo-bar-undo-button-label = Αναίρεση +pdfjs-editor-undo-bar-close-button = + .title = Κλείσιμο +pdfjs-editor-undo-bar-close-button-label = Κλείσιμο diff --git a/viewer/locale/en-CA/viewer.ftl b/viewer/locale/en-CA/viewer.ftl index 729b6152..346e6e8d 100644 --- a/viewer/locale/en-CA/viewer.ftl +++ b/viewer/locale/en-CA/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Add image pdfjs-editor-free-highlight-thickness-input = Thickness pdfjs-editor-free-highlight-thickness-title = .title = Change thickness when highlighting items other than text +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Text Editor + .default-content = Start typing… pdfjs-free-text = .aria-label = Text Editor pdfjs-free-text-default-content = Start typing… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alt text +pdfjs-editor-alt-text-edit-button = + .aria-label = Edit alt text pdfjs-editor-alt-text-edit-button-label = Edit alt text pdfjs-editor-alt-text-dialog-label = Choose an option pdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can’t see the image or when it doesn’t load. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marked as decorative # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = For example, “A young man sits down at a table to eat a meal” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alt text ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Close pdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB) .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } 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 = Alt text added pdfjs-editor-new-alt-text-added-button-label = Alt text added # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Missing alt text pdfjs-editor-new-alt-text-missing-button-label = Missing alt text # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Review alt text pdfjs-editor-new-alt-text-to-review-button-label = Review alt text # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ 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. pdfjs-editor-alt-text-settings-close-button = Close + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Highlight removed +pdfjs-editor-undo-bar-message-freetext = Text removed +pdfjs-editor-undo-bar-message-ink = Drawing removed +pdfjs-editor-undo-bar-message-stamp = Image removed +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotation removed + *[other] { $count } annotations removed + } +pdfjs-editor-undo-bar-undo-button = + .title = Undo +pdfjs-editor-undo-bar-undo-button-label = Undo +pdfjs-editor-undo-bar-close-button = + .title = Close +pdfjs-editor-undo-bar-close-button-label = Close diff --git a/viewer/locale/en-GB/viewer.ftl b/viewer/locale/en-GB/viewer.ftl index 52e4a12b..4222f6fe 100644 --- a/viewer/locale/en-GB/viewer.ftl +++ b/viewer/locale/en-GB/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Add image pdfjs-editor-free-highlight-thickness-input = Thickness pdfjs-editor-free-highlight-thickness-title = .title = Change thickness when highlighting items other than text +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Text Editor + .default-content = Start typing… pdfjs-free-text = .aria-label = Text Editor pdfjs-free-text-default-content = Start typing… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alt text +pdfjs-editor-alt-text-edit-button = + .aria-label = Edit alt text pdfjs-editor-alt-text-edit-button-label = Edit alt text pdfjs-editor-alt-text-dialog-label = Choose an option pdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can’t see the image or when it doesn’t load. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marked as decorative # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = For example, “A young man sits down at a table to eat a meal” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alt text ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Close pdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB) .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } 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 = Alt text added pdfjs-editor-new-alt-text-added-button-label = Alt text added # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Missing alt text pdfjs-editor-new-alt-text-missing-button-label = Missing alt text # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Review alt text pdfjs-editor-new-alt-text-to-review-button-label = Review alt text # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ 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. pdfjs-editor-alt-text-settings-close-button = Close + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Highlight removed +pdfjs-editor-undo-bar-message-freetext = Text removed +pdfjs-editor-undo-bar-message-ink = Drawing removed +pdfjs-editor-undo-bar-message-stamp = Image removed +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotation removed + *[other] { $count } annotations removed + } +pdfjs-editor-undo-bar-undo-button = + .title = Undo +pdfjs-editor-undo-bar-undo-button-label = Undo +pdfjs-editor-undo-bar-close-button = + .title = Close +pdfjs-editor-undo-bar-close-button-label = Close diff --git a/viewer/locale/en-US/viewer.ftl b/viewer/locale/en-US/viewer.ftl index fbff0d86..3e4a3510 100644 --- a/viewer/locale/en-US/viewer.ftl +++ b/viewer/locale/en-US/viewer.ftl @@ -503,3 +503,24 @@ 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. pdfjs-editor-alt-text-settings-close-button = Close + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Highlight removed +pdfjs-editor-undo-bar-message-freetext = Text removed +pdfjs-editor-undo-bar-message-ink = Drawing removed +pdfjs-editor-undo-bar-message-stamp = Image removed +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotation removed + *[other] { $count } annotations removed + } + +pdfjs-editor-undo-bar-undo-button = + .title = Undo +pdfjs-editor-undo-bar-undo-button-label = Undo +pdfjs-editor-undo-bar-close-button = + .title = Close +pdfjs-editor-undo-bar-close-button-label = Close diff --git a/viewer/locale/eo/viewer.ftl b/viewer/locale/eo/viewer.ftl index bb68201c..ce45ebfe 100644 --- a/viewer/locale/eo/viewer.ftl +++ b/viewer/locale/eo/viewer.ftl @@ -343,8 +343,12 @@ pdfjs-editor-stamp-add-image-button-label = Aldoni bildon pdfjs-editor-free-highlight-thickness-input = Dikeco pdfjs-editor-free-highlight-thickness-title = .title = Ŝanĝi dikecon dum elstarigo de netekstaj elementoj +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Teksta redaktilo + .default-content = Komencu tajpi… pdfjs-free-text = - .aria-label = Tekstan redaktilon + .aria-label = Teksta redaktilo pdfjs-free-text-default-content = Ektajpi… pdfjs-ink = .aria-label = Desegnan redaktilon @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternativa teksto +pdfjs-editor-alt-text-edit-button = + .aria-label = Redakti alternativan tekston pdfjs-editor-alt-text-edit-button-label = Redakti alternativan tekston pdfjs-editor-alt-text-dialog-label = Elektu eblon pdfjs-editor-alt-text-dialog-description = Alternativa teksto helpas personojn, en la okazoj kiam ili ne povas vidi aŭ ŝargi la bildon. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Markita kiel ornama # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Ekzemple: “Juna persono sidiĝas ĉetable por ekmanĝi” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternativa teksto ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Fermi pdfjs-editor-new-alt-text-ai-model-downloading-progress = Elŝuto de modelo de artefarita intelekto por alternativa teksto ({ $downloadedSize } el { $totalSize } MO) .aria-valuetext = Elŝuto de modelo de artefarita intelekto por alternativa teksto ({ $downloadedSize } el { $totalSize } MO) # 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 = Alternativa teksto aldonita pdfjs-editor-new-alt-text-added-button-label = Alternativa teksto aldonita # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Mankas alternativa teksto pdfjs-editor-new-alt-text-missing-button-label = Mankas alternativa teksto # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Kontroli alternativan tekston pdfjs-editor-new-alt-text-to-review-button-label = Kontroli alternativan tekston # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Redaktilo de alternativa teksto pdfjs-editor-alt-text-settings-show-dialog-button-label = Montri redaktilon de alternativa teksto tuj post aldono de bildo pdfjs-editor-alt-text-settings-show-dialog-description = Tio ĉi helpas vin kontroli ĉu ĉiuj bildoj havas alternativan tekston. pdfjs-editor-alt-text-settings-close-button = Fermi + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Elstaraĵo forigita +pdfjs-editor-undo-bar-message-freetext = Teksto forigita +pdfjs-editor-undo-bar-message-ink = Desegno forigita +pdfjs-editor-undo-bar-message-stamp = Bildo forigita +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] unu prinoto forigita + *[other] { $count } prinotoj forigitaj + } +pdfjs-editor-undo-bar-undo-button = + .title = Malfari +pdfjs-editor-undo-bar-undo-button-label = Malfari +pdfjs-editor-undo-bar-close-button = + .title = Fermi +pdfjs-editor-undo-bar-close-button-label = Fermi diff --git a/viewer/locale/es-AR/viewer.ftl b/viewer/locale/es-AR/viewer.ftl index 33f88f6b..ca73dc7c 100644 --- a/viewer/locale/es-AR/viewer.ftl +++ b/viewer/locale/es-AR/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Agregar una imagen pdfjs-editor-free-highlight-thickness-input = Grosor pdfjs-editor-free-highlight-thickness-title = .title = Cambiar el grosor al resaltar elementos que no sean texto +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor de texto + .default-content = Comenzar a tipear… pdfjs-free-text = .aria-label = Editor de texto pdfjs-free-text-default-content = Empezar a tipear… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Texto alternativo +pdfjs-editor-alt-text-edit-button = + .aria-label = Editar texto alternativo pdfjs-editor-alt-text-edit-button-label = Editar el texto alternativo pdfjs-editor-alt-text-dialog-label = Eligir una opción pdfjs-editor-alt-text-dialog-description = El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcado como decorativo # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Por ejemplo: “Un joven se sienta a la mesa a comer” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Texto alternativo ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Cerrar pdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB) .aria-valuetext = Descargando modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } 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 = Texto alternativo agregado pdfjs-editor-new-alt-text-added-button-label = Texto alternativo agregado # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Falta el texto alternativo pdfjs-editor-new-alt-text-missing-button-label = Falta el texto alternativo # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Calificar el texto alternativo pdfjs-editor-new-alt-text-to-review-button-label = Revisar el texto alternativo # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo pdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar el editor de texto alternativo inmediatamente al agregar una imagen pdfjs-editor-alt-text-settings-show-dialog-description = Te ayuda a asegurarse de que todas las imágenes tengan texto alternativo. pdfjs-editor-alt-text-settings-close-button = Cerrar + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Resaltado eliminado +pdfjs-editor-undo-bar-message-freetext = Texto eliminado +pdfjs-editor-undo-bar-message-ink = Dibujo eliminado +pdfjs-editor-undo-bar-message-stamp = Imagen eliminado +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anotación eliminada + *[other] { $count } anotaciones eliminadas + } +pdfjs-editor-undo-bar-undo-button = + .title = Deshacer +pdfjs-editor-undo-bar-undo-button-label = Deshacer +pdfjs-editor-undo-bar-close-button = + .title = Cerrar +pdfjs-editor-undo-bar-close-button-label = Cerrar diff --git a/viewer/locale/es-CL/viewer.ftl b/viewer/locale/es-CL/viewer.ftl index 51dbb224..74389e4d 100644 --- a/viewer/locale/es-CL/viewer.ftl +++ b/viewer/locale/es-CL/viewer.ftl @@ -292,7 +292,7 @@ pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", tim ## Password -pdfjs-password-label = Ingrese la contraseña para abrir este archivo PDF. +pdfjs-password-label = Ingresa la contraseña para abrir este archivo PDF. pdfjs-password-invalid = Contraseña inválida. Por favor, vuelve a intentarlo. pdfjs-password-ok-button = Aceptar pdfjs-password-cancel-button = Cancelar @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Añadir imagen pdfjs-editor-free-highlight-thickness-input = Grosor pdfjs-editor-free-highlight-thickness-title = .title = Cambia el grosor al resaltar elementos que no sean texto +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor de texto + .default-content = Empieza a escribir… pdfjs-free-text = .aria-label = Editor de texto pdfjs-free-text-default-content = Empieza a escribir… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Texto alternativo +pdfjs-editor-alt-text-edit-button = + .aria-label = Editar texto alternativo pdfjs-editor-alt-text-edit-button-label = Editar texto alternativo pdfjs-editor-alt-text-dialog-label = Elige una opción pdfjs-editor-alt-text-dialog-description = El texto alternativo (alt text) ayuda cuando las personas no pueden ver la imagen o cuando no se carga. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcada como decorativa # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Por ejemplo: “Un joven se sienta a la mesa a comer” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Texto alternativo ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Cerrar pdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB) .aria-valuetext = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } 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 = Se añadió el texto alternativo pdfjs-editor-new-alt-text-added-button-label = Se añadió el texto alternativo # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Falta el texto alternativo pdfjs-editor-new-alt-text-missing-button-label = Falta el texto alternativo # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Revisar el texto alternativo pdfjs-editor-new-alt-text-to-review-button-label = Revisar el texto alternativo # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo pdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar el editor de texto alternativo inmediatamente al añadir una imagen pdfjs-editor-alt-text-settings-show-dialog-description = Te ayuda a asegurarte de que todas tus imágenes tengan texto alternativo. pdfjs-editor-alt-text-settings-close-button = Cerrar + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Resaltado eliminado +pdfjs-editor-undo-bar-message-freetext = Texto eliminado +pdfjs-editor-undo-bar-message-ink = Dibujo eliminado +pdfjs-editor-undo-bar-message-stamp = Imagen eliminada +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anotación eliminada + *[other] { $count } anotaciones eliminadas + } +pdfjs-editor-undo-bar-undo-button = + .title = Deshacer +pdfjs-editor-undo-bar-undo-button-label = Deshacer +pdfjs-editor-undo-bar-close-button = + .title = Cerrar +pdfjs-editor-undo-bar-close-button-label = Cerrar diff --git a/viewer/locale/es-ES/viewer.ftl b/viewer/locale/es-ES/viewer.ftl index 43df2afc..f610a179 100644 --- a/viewer/locale/es-ES/viewer.ftl +++ b/viewer/locale/es-ES/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Añadir imagen pdfjs-editor-free-highlight-thickness-input = Grosor pdfjs-editor-free-highlight-thickness-title = .title = Cambiar el grosor al resaltar elementos que no sean texto +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor de texto + .default-content = Empiece a escribir… pdfjs-free-text = .aria-label = Editor de texto pdfjs-free-text-default-content = Empezar a escribir… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Texto alternativo +pdfjs-editor-alt-text-edit-button = + .aria-label = Editar el texto alternativo pdfjs-editor-alt-text-edit-button-label = Editar el texto alternativo pdfjs-editor-alt-text-dialog-label = Eligir una opción pdfjs-editor-alt-text-dialog-description = El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcada como decorativa # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Por ejemplo: “Un joven se sienta a la mesa a comer” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Texto alternativo ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Cerrar pdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB) .aria-valuetext = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } 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 = Se añadió el texto alternativo pdfjs-editor-new-alt-text-added-button-label = Se añadió el texto alternativo # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Falta el texto alternativo pdfjs-editor-new-alt-text-missing-button-label = Falta el texto alternativo # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Revisar el texto alternativo pdfjs-editor-new-alt-text-to-review-button-label = Revisar el texto alternativo # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo pdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar el editor de texto alternativo inmediatamente al añadir una imagen pdfjs-editor-alt-text-settings-show-dialog-description = Le ayuda a asegurarse de que todas sus imágenes tengan texto alternativo. pdfjs-editor-alt-text-settings-close-button = Cerrar + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Resaltado eliminado +pdfjs-editor-undo-bar-message-freetext = Texto eliminado +pdfjs-editor-undo-bar-message-ink = Dibujo eliminado +pdfjs-editor-undo-bar-message-stamp = Imagen eliminada +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anotación eliminada + *[other] { $count } anotaciones eliminadas + } +pdfjs-editor-undo-bar-undo-button = + .title = Deshacer +pdfjs-editor-undo-bar-undo-button-label = Deshacer +pdfjs-editor-undo-bar-close-button = + .title = Cerrar +pdfjs-editor-undo-bar-close-button-label = Cerrar diff --git a/viewer/locale/es-MX/viewer.ftl b/viewer/locale/es-MX/viewer.ftl index 6487dcc3..03afe7c0 100644 --- a/viewer/locale/es-MX/viewer.ftl +++ b/viewer/locale/es-MX/viewer.ftl @@ -105,6 +105,14 @@ pdfjs-document-properties-button-label = Propiedades del documento… pdfjs-document-properties-file-name = Nombre del archivo: pdfjs-document-properties-file-size = Tamaño del archivo: # Variables: +# $kb (Number) - the PDF file size in kilobytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes) +# Variables: +# $mb (Number) - the PDF file size in megabytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes) +# Variables: # $size_kb (Number) - the PDF file size in kilobytes # $size_b (Number) - the PDF file size in bytes pdfjs-document-properties-kb = { $size_kb } KB ({ $size_b } bytes) @@ -119,6 +127,9 @@ pdfjs-document-properties-keywords = Palabras claves: pdfjs-document-properties-creation-date = Fecha de creación: pdfjs-document-properties-modification-date = Fecha de modificación: # Variables: +# $dateObj (Date) - the creation/modification date and time of the PDF file +pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +# Variables: # $date (Date) - the creation/modification date of the PDF file # $time (Time) - the creation/modification time of the PDF file pdfjs-document-properties-date-string = { $date }, { $time } @@ -275,6 +286,9 @@ pdfjs-annotation-date-string = { $date }, { $time } # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [{ $type } anotación] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -329,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Agregar imagen pdfjs-editor-free-highlight-thickness-input = Espesor pdfjs-editor-free-highlight-thickness-title = .title = Cambiar el grosor al resaltar elementos que no sean texto +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor de texto + .default-content = Comenzar a escribir… pdfjs-free-text = .aria-label = Editor de texto pdfjs-free-text-default-content = Empieza a escribir… @@ -339,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Texto alternativo +pdfjs-editor-alt-text-edit-button = + .aria-label = Editar texto alternativo pdfjs-editor-alt-text-edit-button-label = Editar texto alternativo pdfjs-editor-alt-text-dialog-label = Elige una opción pdfjs-editor-alt-text-dialog-description = El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga. @@ -354,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcado como decorativo # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Por ejemplo: “Un joven se sienta a la mesa a comer” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Texto alternativo ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -366,6 +388,22 @@ pdfjs-editor-resizer-label-bottom-right = Esquina inferior derecha: cambiar el t pdfjs-editor-resizer-label-bottom-middle = Abajo en el medio: cambiar el tamaño pdfjs-editor-resizer-label-bottom-left = Esquina inferior izquierda: cambiar el tamaño pdfjs-editor-resizer-label-middle-left = Centro izquierda: cambiar el tamaño +pdfjs-editor-resizer-top-left = + .aria-label = Esquina superior izquierda — redimensionar +pdfjs-editor-resizer-top-middle = + .aria-label = Borde superior en el medio — redimensionar +pdfjs-editor-resizer-top-right = + .aria-label = Esquina superior derecha — redimensionar +pdfjs-editor-resizer-middle-right = + .aria-label = Borde derecho en el medio — redimensionar +pdfjs-editor-resizer-bottom-right = + .aria-label = Esquina inferior derecha — redimensionar +pdfjs-editor-resizer-bottom-middle = + .aria-label = Borde inferior en el medio — redimensionar +pdfjs-editor-resizer-bottom-left = + .aria-label = Esquina inferior izquierda — redimensionar +pdfjs-editor-resizer-middle-left = + .aria-label = Borde izquierdo en el medio — redimensionar ## Color picker @@ -396,6 +434,82 @@ pdfjs-editor-highlight-show-all-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. +# Modal header positioned above a text box where users can edit the alt text. +pdfjs-editor-new-alt-text-dialog-edit-label = Editar texto alternativo (descripción de la imagen) +# Modal header positioned above a text box where users can add the alt text. +pdfjs-editor-new-alt-text-dialog-add-label = Agregar texto alternativo (descripción de la imagen) +pdfjs-editor-new-alt-text-textarea = + .placeholder = Escribe tu descripción aquí… +# This text refers to the alt text box above this description. It offers a definition of alt text. +pdfjs-editor-new-alt-text-description = Breve descripción para las personas que no pueden ver la imagen o cuando la imagen no se carga. +# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human. +pdfjs-editor-new-alt-text-disclaimer1 = Este texto alternativo fue creado automáticamente y puede ser inexacto. +pdfjs-editor-new-alt-text-disclaimer-learn-more-url = Saber más +pdfjs-editor-new-alt-text-create-automatically-button-label = Crear texto alternativo automáticamente +pdfjs-editor-new-alt-text-not-now-button = Ahora no +pdfjs-editor-new-alt-text-error-title = No se pudo crear el texto alternativo automáticamente +pdfjs-editor-new-alt-text-error-description = Escribe tu propio texto alternativo o inténtalo de nuevo más tarde. +pdfjs-editor-new-alt-text-error-close-button = Cerrar +# Variables: +# $totalSize (Number) - the total size (in MB) of the AI model. +# $downloadedSize (Number) - the downloaded size (in MB) of the AI model. +# $percent (Number) - the percentage of the downloaded size. +pdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB) + .aria-valuetext = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } 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 = Se agregó el texto alternativo +pdfjs-editor-new-alt-text-added-button-label = Se agregó el texto alternativo +# This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Falta el texto alternativo +pdfjs-editor-new-alt-text-missing-button-label = Falta texto alternativo +# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Revisar el texto alternativo +pdfjs-editor-new-alt-text-to-review-button-label = Revisar el texto alternativo +# "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. +# Variables: +# $generatedAltText (String) - the generated alt-text. +pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creado automáticamente: { $generatedAltText } ## Image alt-text settings +pdfjs-image-alt-text-settings-button = + .title = Ajustes del texto alternativo de la imagen +pdfjs-image-alt-text-settings-button-label = Ajustes del texto alternativo de la imagen +pdfjs-editor-alt-text-settings-dialog-label = Ajustes del texto alternativo de la imagen +pdfjs-editor-alt-text-settings-automatic-title = Texto alternativo automático +pdfjs-editor-alt-text-settings-create-model-button-label = Crear texto alternativo automáticamente +pdfjs-editor-alt-text-settings-create-model-description = Sugiere descripciones para ayudar a las personas que no pueden ver la imagen o cuando la imagen no se carga. +# Variables: +# $totalSize (Number) - the total size (in MB) of the AI model. +pdfjs-editor-alt-text-settings-download-model-label = Modelo de IA de texto alternativo ({ $totalSize } MB) +pdfjs-editor-alt-text-settings-ai-model-description = Se ejecuta localmente en el dispositivo para que los datos se mantengan privados. Requerido para texto alternativo automático. +pdfjs-editor-alt-text-settings-delete-model-button = Eliminar +pdfjs-editor-alt-text-settings-download-model-button = Descargar +pdfjs-editor-alt-text-settings-downloading-model-button = Descargando… +pdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo +pdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar el editor de texto alternativo inmediatamente al añadir una imagen +pdfjs-editor-alt-text-settings-show-dialog-description = Te ayuda a asegurarte de que todas tus imágenes tengan texto alternativo. +pdfjs-editor-alt-text-settings-close-button = Cerrar + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Resaltado eliminado +pdfjs-editor-undo-bar-message-freetext = Texto eliminado +pdfjs-editor-undo-bar-message-ink = Dibujo eliminado +pdfjs-editor-undo-bar-message-stamp = Imagen eliminada +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anotación eliminada + *[other] { $count } anotaciones eliminadas + } +pdfjs-editor-undo-bar-undo-button = + .title = Deshacer +pdfjs-editor-undo-bar-undo-button-label = Deshacer +pdfjs-editor-undo-bar-close-button = + .title = Cerrar +pdfjs-editor-undo-bar-close-button-label = Cerrar diff --git a/viewer/locale/eu/viewer.ftl b/viewer/locale/eu/viewer.ftl index 7675ffea..2b2660bd 100644 --- a/viewer/locale/eu/viewer.ftl +++ b/viewer/locale/eu/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Gehitu irudia pdfjs-editor-free-highlight-thickness-input = Loditasuna pdfjs-editor-free-highlight-thickness-title = .title = Aldatu loditasuna testua ez beste elementuak nabarmentzean +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Testu-editorea + .default-content = Hasi idazten… pdfjs-free-text = .aria-label = Testu-editorea pdfjs-free-text-default-content = Hasi idazten… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Testu alternatiboa +pdfjs-editor-alt-text-edit-button = + .aria-label = Editatu testu alternatiboa pdfjs-editor-alt-text-edit-button-label = Editatu testu alternatiboa pdfjs-editor-alt-text-dialog-label = Aukeratu aukera pdfjs-editor-alt-text-dialog-description = Testu alternatiboak laguntzen du jendeak ezin duenean irudia ikusi edo ez denean kargatzen. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Apaingarri gisa markatuta # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Adibidez, "gizon gaztea mahaian eserita dago bazkaltzeko" +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Testu alternatiboa ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Itxi 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 pdfjs-editor-new-alt-text-added-button-label = Testu alternatiboa gehituta # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Testu alternatiboa falta da pdfjs-editor-new-alt-text-missing-button-label = Testu alternatiboa falta da # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Berrikusi testu alternatiboa pdfjs-editor-new-alt-text-to-review-button-label = Berrikusi testu alternatiboa # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Testu alternatiboaren editorea pdfjs-editor-alt-text-settings-show-dialog-button-label = Erakutsi testu alternatiboa irudi bat gehitzean berehala pdfjs-editor-alt-text-settings-show-dialog-description = Zure irudiek testu alternatiboa duela ziurtatzen laguntzen dizu. pdfjs-editor-alt-text-settings-close-button = Itxi + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Nabarmentzea kenduta +pdfjs-editor-undo-bar-message-freetext = Testua kenduta +pdfjs-editor-undo-bar-message-ink = Marrazkia kenduta +pdfjs-editor-undo-bar-message-stamp = Irudia kenduta +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] Esku-ohar bat kenduta + *[other] { $count } esku-ohar kenduta + } +pdfjs-editor-undo-bar-undo-button = + .title = Desegin +pdfjs-editor-undo-bar-undo-button-label = Desegin +pdfjs-editor-undo-bar-close-button = + .title = Itxi +pdfjs-editor-undo-bar-close-button-label = Itxi diff --git a/viewer/locale/fa/viewer.ftl b/viewer/locale/fa/viewer.ftl index f367e3c6..4969209e 100644 --- a/viewer/locale/fa/viewer.ftl +++ b/viewer/locale/fa/viewer.ftl @@ -39,7 +39,18 @@ pdfjs-open-file-button-label = باز کردن pdfjs-print-button = .title = چاپ pdfjs-print-button-label = چاپ +pdfjs-save-button = + .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 = دریافت +# Used in Firefox for Android as a label for the download button (“download” is a verb). +# Length of the translation matters since we are in a mobile context, with limited screen estate. +pdfjs-download-button-label = دریافت +pdfjs-bookmark-button = + .title = صفحه فعلی (مشاهده نشانی اینترنتی از صفحه فعلی) +pdfjs-bookmark-button-label = صفحه فعلی ## Secondary toolbar and context menu @@ -64,21 +75,35 @@ pdfjs-cursor-text-select-tool-button-label = ابزارِ انتخابِ متن pdfjs-cursor-hand-tool-button = .title = فعال کردن ابزارِ دست pdfjs-cursor-hand-tool-button-label = ابزار دست +pdfjs-scroll-page-button = + .title = استفاده از پیمایش صفحه +pdfjs-scroll-page-button-label = پیمایش صفحه pdfjs-scroll-vertical-button = .title = استفاده از پیمایش عمودی pdfjs-scroll-vertical-button-label = پیمایش عمودی pdfjs-scroll-horizontal-button = .title = استفاده از پیمایش افقی pdfjs-scroll-horizontal-button-label = پیمایش افقی +pdfjs-spread-none-button = + .title = صفحات پیوسته را یکی نکنید +pdfjs-spread-none-button-label = بدون صفحات پیوسته ## Document properties dialog pdfjs-document-properties-button = .title = خصوصیات سند... pdfjs-document-properties-button-label = خصوصیات سند... -pdfjs-document-properties-file-name = نام فایل: +pdfjs-document-properties-file-name = نام پرونده: pdfjs-document-properties-file-size = حجم پرونده: # Variables: +# $kb (Number) - the PDF file size in kilobytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } کیلوبایت ({ $b } بایت) +# Variables: +# $mb (Number) - the PDF file size in megabytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } مگابایت ({ $b } بایت) +# Variables: # $size_kb (Number) - the PDF file size in kilobytes # $size_b (Number) - the PDF file size in bytes pdfjs-document-properties-kb = { $size_kb } کیلوبایت ({ $size_b } بایت) @@ -93,6 +118,9 @@ pdfjs-document-properties-keywords = کلیدواژه‌ها: pdfjs-document-properties-creation-date = تاریخ ایجاد: pdfjs-document-properties-modification-date = تاریخ ویرایش: # Variables: +# $dateObj (Date) - the creation/modification date and time of the PDF file +pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +# Variables: # $date (Date) - the creation/modification date of the PDF file # $time (Time) - the creation/modification time of the PDF file pdfjs-document-properties-date-string = { $date }، { $time } @@ -209,6 +237,10 @@ pdfjs-rendering-error = هنگام بارگیری صفحه خطایی رخ دا ## Annotations +# Variables: +# $date (Date) - the modification date of the annotation +# $time (Time) - the modification time of the annotation +pdfjs-annotation-date-string = { $date }، { $time } # .alt: This is used as a tooltip. # Variables: # $type (String) - an annotation type from a list defined in the PDF spec @@ -216,6 +248,9 @@ pdfjs-rendering-error = هنگام بارگیری صفحه خطایی رخ دا # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [{ $type } Annotation] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -233,14 +268,81 @@ pdfjs-editor-free-text-button-label = متن pdfjs-editor-ink-button = .title = کشیدن pdfjs-editor-ink-button-label = کشیدن +pdfjs-editor-stamp-button = + .title = افزودن یا ویرایش تصاویر +pdfjs-editor-stamp-button-label = افزودن یا ویرایش تصاویر +pdfjs-editor-highlight-button = + .title = برجسته کردن +pdfjs-editor-highlight-button-label = برجسته کردن +pdfjs-highlight-floating-button1 = + .title = برجسته کردن + .aria-label = برجسته کردن +pdfjs-highlight-floating-button-label = برجسته کردن + +## Remove button for the various kind of editor. + + +## + # Editor Parameters pdfjs-editor-free-text-color-input = رنگ pdfjs-editor-free-text-size-input = اندازه pdfjs-editor-ink-color-input = رنگ +pdfjs-editor-stamp-add-image-button = + .title = افزودن تصویر +pdfjs-editor-stamp-add-image-button-label = افزودن تصویر +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = ویرایشگر متن + .default-content = شروع به نوشتن کنید… +pdfjs-free-text = + .aria-label = ویرایشگر متن +pdfjs-free-text-default-content = شروع به نوشتن کنید… ## Alt-text dialog +pdfjs-editor-alt-text-add-description-label = افزودن توضیحات +pdfjs-editor-alt-text-cancel-button = انصراف +pdfjs-editor-alt-text-save-button = ذخیره ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. + +## Color picker + +pdfjs-editor-colorpicker-button = + .title = تغییر رنگ +pdfjs-editor-colorpicker-dropdown = + .aria-label = انتخاب رنگ +pdfjs-editor-colorpicker-yellow = + .title = زرد +pdfjs-editor-colorpicker-green = + .title = سبز +pdfjs-editor-colorpicker-blue = + .title = آبی +pdfjs-editor-colorpicker-pink = + .title = صورتی +pdfjs-editor-colorpicker-red = + .title = قرمز + +## Show all highlights +## This is a toggle button to show/hide all the highlights. + +pdfjs-editor-highlight-show-all-button-label = نمایش همه +pdfjs-editor-highlight-show-all-button = + .title = نمایش همه + +## 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 = بیشتر بدانید +pdfjs-editor-new-alt-text-not-now-button = اکنون نه +pdfjs-editor-new-alt-text-error-close-button = بستن + +## Image alt-text settings + +pdfjs-editor-alt-text-settings-delete-model-button = حذف +pdfjs-editor-alt-text-settings-download-model-button = دریافت +pdfjs-editor-alt-text-settings-downloading-model-button = در حال دریافت… +pdfjs-editor-alt-text-settings-close-button = بستن diff --git a/viewer/locale/fi/viewer.ftl b/viewer/locale/fi/viewer.ftl index 88c96de8..0819d0ea 100644 --- a/viewer/locale/fi/viewer.ftl +++ b/viewer/locale/fi/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Lisää kuva pdfjs-editor-free-highlight-thickness-input = Paksuus pdfjs-editor-free-highlight-thickness-title = .title = Muuta paksuutta korostaessasi muita kohteita kuin tekstiä +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Tekstimuokkain + .default-content = Aloita kirjoittaminen… pdfjs-free-text = .aria-label = Tekstimuokkain pdfjs-free-text-default-content = Aloita kirjoittaminen… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Vaihtoehtoinen teksti +pdfjs-editor-alt-text-edit-button = + .aria-label = Muokkaa vaihtoehtoista tekstiä pdfjs-editor-alt-text-edit-button-label = Muokkaa vaihtoehtoista tekstiä pdfjs-editor-alt-text-dialog-label = Valitse vaihtoehto pdfjs-editor-alt-text-dialog-description = Vaihtoehtoinen teksti ("alt-teksti") auttaa ihmisiä, jotka eivät näe kuvaa tai kun kuva ei lataudu. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Merkitty koristeelliseksi # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Esimerkiksi "Nuori mies istuu pöytään syömään aterian" +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Vaihtoehtoinen teksti ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Sulje pdfjs-editor-new-alt-text-ai-model-downloading-progress = Ladataan vaihtoehtoisen tekstin tekoälymallia ({ $downloadedSize } / { $totalSize } Mt) .aria-valuetext = Ladataan vaihtoehtoisen tekstin tekoälymallia ({ $downloadedSize } / { $totalSize } Mt) # 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 = Vaihtoehtoinen teksti lisätty pdfjs-editor-new-alt-text-added-button-label = Vaihtoehtoinen teksti lisätty # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Vaihtoehtoinen teksti puuttuu pdfjs-editor-new-alt-text-missing-button-label = Vaihtoehtoinen teksti puuttuu # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Tarkista vaihtoehtoinen teksti pdfjs-editor-new-alt-text-to-review-button-label = Tarkista vaihtoehtoinen teksti # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Vaihtoehtoisen tekstin muokkain pdfjs-editor-alt-text-settings-show-dialog-button-label = Näytä vaihtoehtoisen tekstin muokkain heti, kun lisäät kuvan pdfjs-editor-alt-text-settings-show-dialog-description = Auttaa varmistamaan, että kaikissa kuvissasi on vaihtoehtoinen teksti. pdfjs-editor-alt-text-settings-close-button = Sulje + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Korostus poistettu +pdfjs-editor-undo-bar-message-freetext = Teksti poistettu +pdfjs-editor-undo-bar-message-ink = Piirustus poistettu +pdfjs-editor-undo-bar-message-stamp = Kuva poistettu +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } merkintä poistettu + *[other] { $count } merkintää poistettu + } +pdfjs-editor-undo-bar-undo-button = + .title = Kumoa +pdfjs-editor-undo-bar-undo-button-label = Kumoa +pdfjs-editor-undo-bar-close-button = + .title = Sulje +pdfjs-editor-undo-bar-close-button-label = Sulje diff --git a/viewer/locale/fr/viewer.ftl b/viewer/locale/fr/viewer.ftl index 23d82501..d0a778f8 100644 --- a/viewer/locale/fr/viewer.ftl +++ b/viewer/locale/fr/viewer.ftl @@ -339,6 +339,10 @@ pdfjs-editor-stamp-add-image-button-label = Ajouter une image pdfjs-editor-free-highlight-thickness-input = Épaisseur pdfjs-editor-free-highlight-thickness-title = .title = Modifier l’épaisseur pour le surlignage d’éléments non textuels +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Éditeur de texte + .default-content = Commencez à écrire… pdfjs-free-text = .aria-label = Éditeur de texte pdfjs-free-text-default-content = Commencer à écrire… @@ -349,8 +353,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Texte alternatif +pdfjs-editor-alt-text-edit-button = + .aria-label = Modifier le texte alternatif pdfjs-editor-alt-text-edit-button-label = Modifier le texte alternatif pdfjs-editor-alt-text-dialog-label = Sélectionnez une option pdfjs-editor-alt-text-dialog-description = Le texte alternatif est utile lorsque des personnes ne peuvent pas voir l’image ou que l’image ne se charge pas. @@ -364,6 +369,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marquée comme décorative # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Par exemple, « Un jeune homme est assis à une table pour prendre un repas » +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Texte alternatif ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -445,10 +453,16 @@ pdfjs-editor-new-alt-text-error-close-button = Fermer pdfjs-editor-new-alt-text-ai-model-downloading-progress = Téléchargement du modèle d’IA de texte alternatif ({ $downloadedSize } sur { $totalSize } Mo) .aria-valuetext = Téléchargement du modèle d’IA de texte alternatif ({ $downloadedSize } sur { $totalSize } Mo) # 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 = Texte alternatif ajouté pdfjs-editor-new-alt-text-added-button-label = Texte alternatif ajouté # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Texte alternatif manquant pdfjs-editor-new-alt-text-missing-button-label = Texte alternatif manquant # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Réviser le texte alternatif pdfjs-editor-new-alt-text-to-review-button-label = Réviser le texte alternatif # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -475,3 +489,23 @@ pdfjs-editor-alt-text-settings-editor-title = Éditeur de texte alternatif pdfjs-editor-alt-text-settings-show-dialog-button-label = Afficher l’éditeur de texte alternatif immédiatement lors de l’ajout d’une image pdfjs-editor-alt-text-settings-show-dialog-description = Vous aide à vous assurer que toutes vos images ont du texte alternatif. pdfjs-editor-alt-text-settings-close-button = Fermer + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Surlignage supprimé +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 +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotation supprimée + *[other] { $count } annotations supprimées + } +pdfjs-editor-undo-bar-undo-button = + .title = Annuler +pdfjs-editor-undo-bar-undo-button-label = Annuler +pdfjs-editor-undo-bar-close-button = + .title = Fermer +pdfjs-editor-undo-bar-close-button-label = Fermer diff --git a/viewer/locale/fur/viewer.ftl b/viewer/locale/fur/viewer.ftl index c587f556..370af3f2 100644 --- a/viewer/locale/fur/viewer.ftl +++ b/viewer/locale/fur/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Zonte imagjin pdfjs-editor-free-highlight-thickness-input = Spessôr pdfjs-editor-free-highlight-thickness-title = .title = Modifiche il spessôr de selezion pai elements che no son testuâi +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editôr di test + .default-content = Scomence a scrivi… pdfjs-free-text = .aria-label = Editôr di test pdfjs-free-text-default-content = Scomence a scrivi… diff --git a/viewer/locale/fy-NL/viewer.ftl b/viewer/locale/fy-NL/viewer.ftl index d336034d..15850b4c 100644 --- a/viewer/locale/fy-NL/viewer.ftl +++ b/viewer/locale/fy-NL/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Ofbylding tafoegje pdfjs-editor-free-highlight-thickness-input = Tsjokte pdfjs-editor-free-highlight-thickness-title = .title = Tsjokte wizigje by aksintuearring fan oare items as tekst +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Tekstbewurker + .default-content = Start mei typen… pdfjs-free-text = .aria-label = Tekstbewurker pdfjs-free-text-default-content = Begjin mei typen… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternative tekst +pdfjs-editor-alt-text-edit-button = + .aria-label = Alternative tekst bewurkje pdfjs-editor-alt-text-edit-button-label = Alternative tekst bewurkje pdfjs-editor-alt-text-dialog-label = Kies in opsje pdfjs-editor-alt-text-dialog-description = Alternative tekst helpt wannear’t minsken de ôfbylding net sjen kinne of wannear’t dizze net laden wurdt. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = As dekoratyf markearre # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Bygelyks, ‘In jonge man sit oan in tafel om te iten’ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternative tekst ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -431,7 +439,7 @@ pdfjs-editor-new-alt-text-dialog-edit-label = Alternative tekst (ôfbyldingsbesk # Modal header positioned above a text box where users can add the alt text. pdfjs-editor-new-alt-text-dialog-add-label = Alternative tekst (ôfbyldingsbeskriuwing) tafoegje pdfjs-editor-new-alt-text-textarea = - .placeholder = Skriuw hjir jo beskriuwing... + .placeholder = Skriuw hjir jo beskriuwing… # This text refers to the alt text box above this description. It offers a definition of alt text. pdfjs-editor-new-alt-text-description = Koarte beskriuwing foar minsken dy’t de ôfbylding net sjen kinne of wannear’t de ôfbylding net laden wurdt. # This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Slute pdfjs-editor-new-alt-text-ai-model-downloading-progress = AI-model foar alternative tekst downloade ({ $downloadedSize } fan { $totalSize } MB) .aria-valuetext = AI-model foar alternative tekst downloade ({ $downloadedSize } fan { $totalSize } 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 = Alternative tekst tafoege pdfjs-editor-new-alt-text-added-button-label = Alternative tekst tafoege # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Alternative tekst ûntbrekt pdfjs-editor-new-alt-text-missing-button-label = Alternative tekst ûntbrekt # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Alternative tekst beoardiele pdfjs-editor-new-alt-text-to-review-button-label = Alternative tekst beoardiele # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Alternative-tekstbewurker pdfjs-editor-alt-text-settings-show-dialog-button-label = Alternative-tekstbewurker daliks toane by tafoegjen fan in ôfbylding pdfjs-editor-alt-text-settings-show-dialog-description = Helpt jo derfoar te soargjen dat al jo ôfbyldingen alternative tekst hawwe. pdfjs-editor-alt-text-settings-close-button = Slute + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Markearring fuortsmiten +pdfjs-editor-undo-bar-message-freetext = Tekst fuortsmiten +pdfjs-editor-undo-bar-message-ink = Tekening fuortsmiten +pdfjs-editor-undo-bar-message-stamp = Ofbylding fuortsmiten +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotaasje fuortsmiten + *[other] { $count } annotaasjes fuortsmiten + } +pdfjs-editor-undo-bar-undo-button = + .title = Ungedien meitsje +pdfjs-editor-undo-bar-undo-button-label = Ungedien meitsje +pdfjs-editor-undo-bar-close-button = + .title = Slute +pdfjs-editor-undo-bar-close-button-label = Slute diff --git a/viewer/locale/gn/viewer.ftl b/viewer/locale/gn/viewer.ftl index a7a68e74..6402c6f9 100644 --- a/viewer/locale/gn/viewer.ftl +++ b/viewer/locale/gn/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Embojuaju ta’ãnga pdfjs-editor-free-highlight-thickness-input = Anambusu pdfjs-editor-free-highlight-thickness-title = .title = Emoambue anambusukue embosa’ývo mba’eporu ha’e’ỹva moñe’ẽrã +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Moñe’ẽrã moheñoiha + .default-content = Eñepyrũ ehai… pdfjs-free-text = .aria-label = Moñe’ẽrã moheñoiha pdfjs-free-text-default-content = Ehai ñepyrũ… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Moñe’ẽrã mokõiháva +pdfjs-editor-alt-text-edit-button = + .aria-label = Embojuruja moñe’ẽrã mokõiháva pdfjs-editor-alt-text-edit-button-label = Embojuruja moñe’ẽrã mokõiháva pdfjs-editor-alt-text-dialog-label = Eiporavo poravorã pdfjs-editor-alt-text-dialog-description = Moñe’ẽrã ykepegua (moñe’ẽrã ykepegua) nepytyvõ nderehecháiramo ta’ãnga térã nahenyhẽiramo. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Jeguakárõ mongurusupyre # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Techapyrã: “Peteĩ mitãrusu oguapy mesápe okaru hag̃ua” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Moñe’ẽrã mokõiháva ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -432,6 +440,10 @@ pdfjs-editor-new-alt-text-dialog-edit-label = Embosako’i moñe’ẽrã mokõi pdfjs-editor-new-alt-text-dialog-add-label = Embojuaju moñe’ẽrã mokõiha (ta’ãngáre ñeñe’ẽ) pdfjs-editor-new-alt-text-textarea = .placeholder = Edescribi ko’ápe… +# This text refers to the alt text box above this description. It offers a definition of alt text. +pdfjs-editor-new-alt-text-description = Ñemyesakã mbykymi opavave ohecha’ỹva upe ta’ãnga térã pe ta’ãnga nahenyhẽiramo. +# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human. +pdfjs-editor-new-alt-text-disclaimer1 = Ko moñe’ẽrã mokõiha oñemoheñói ijehegui ha ikatu ndoikoporãi. pdfjs-editor-new-alt-text-disclaimer-learn-more-url = Eikuaave pdfjs-editor-new-alt-text-create-automatically-button-label = Emoheñói moñe’ẽrã mokõiha ijeheguíva pdfjs-editor-new-alt-text-not-now-button = Ani ko’ág̃a @@ -445,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Mboty pdfjs-editor-new-alt-text-ai-model-downloading-progress = Emboguejyhína IA moñe’ẽrã mokõiháva ({ $downloadedSize } { $totalSize } MB) mba’e .aria-valuetext = Emboguejyhína IA moñe’ẽrã mokõiháva ({ $downloadedSize } { $totalSize } MB) mba’e # 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 = Moñe’ẽrã mokõiha mbojuajupyre pdfjs-editor-new-alt-text-added-button-label = Oñembojuaju moñe’ẽrã mokõiha # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Ndaipóri moñe’ẽrã mokõiha pdfjs-editor-new-alt-text-missing-button-label = Ndaipóri moñe’ẽrã mokõiha # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Ehechajey moñe’ẽrã mokõiha pdfjs-editor-new-alt-text-to-review-button-label = Ehechajey moñe’ẽrã mokõiha # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -463,9 +481,11 @@ pdfjs-image-alt-text-settings-button-label = Ta’ãnga moñe’ẽrã mokõiha pdfjs-editor-alt-text-settings-dialog-label = Ta’ãnga moñe’ẽrã mokõiha ñemboheko pdfjs-editor-alt-text-settings-automatic-title = Moñe’ẽrã mokõiha ijeheguíva pdfjs-editor-alt-text-settings-create-model-button-label = Emoheñói moñe’ẽrã mokõiha ijeheguíva +pdfjs-editor-alt-text-settings-create-model-description = Ñemyesakã mbykymi opavave tapicha ohecha’ỹva upe ta’ãnga térã pe ta’ãnga nahenyhẽiramo. # Variables: # $totalSize (Number) - the total size (in MB) of the AI model. pdfjs-editor-alt-text-settings-download-model-label = Peteĩva IA moñe’ẽrã mokõiha ({ $totalSize } MB) +pdfjs-editor-alt-text-settings-ai-model-description = Oku’e mba’e’okaitépe umi mba’ekuaarã hekoñemi hag̃ua. Tekotevẽva moñe’ẽrã ykegua ijeheguívape. pdfjs-editor-alt-text-settings-delete-model-button = Mboguete pdfjs-editor-alt-text-settings-download-model-button = Mboguejy pdfjs-editor-alt-text-settings-downloading-model-button = Emboguejyhína… @@ -473,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Moñe’ẽrã mokõiha mbosako’ pdfjs-editor-alt-text-settings-show-dialog-button-label = Ehechauka moñe’ẽrã mokõiha mbosako’iha embojuajúvo ta’ãnga pdfjs-editor-alt-text-settings-show-dialog-description = Nepytyvõta ta’ãngakuéra orekotaha moñe’ẽrã mokõiha. pdfjs-editor-alt-text-settings-close-button = Mboty + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Mbosa’ýva mboguete +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 +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } jehaikue mboguepyre + *[other] { $count } jehaikue mboguepyre + } +pdfjs-editor-undo-bar-undo-button = + .title = Mboguevi +pdfjs-editor-undo-bar-undo-button-label = Mboguevi +pdfjs-editor-undo-bar-close-button = + .title = Mboty +pdfjs-editor-undo-bar-close-button-label = Mboty diff --git a/viewer/locale/he/viewer.ftl b/viewer/locale/he/viewer.ftl index 11302c4c..08308c0b 100644 --- a/viewer/locale/he/viewer.ftl +++ b/viewer/locale/he/viewer.ftl @@ -326,7 +326,7 @@ pdfjs-editor-remove-freetext-button = pdfjs-editor-remove-stamp-button = .title = הסרת תמונה pdfjs-editor-remove-highlight-button = - .title = הסרת הדגשה + .title = הסרת סימון ## @@ -342,7 +342,11 @@ 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 = שינוי עובי בעת סימון פריטים שאינם טקסט +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = עורך טקסט + .default-content = נא להתחיל להקליד… pdfjs-free-text = .aria-label = עורך טקסט pdfjs-free-text-default-content = להתחיל להקליד… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = טקסט חלופי +pdfjs-editor-alt-text-edit-button = + .aria-label = עריכת טקסט חלופי pdfjs-editor-alt-text-edit-button-label = עריכת טקסט חלופי pdfjs-editor-alt-text-dialog-label = בחירת אפשרות pdfjs-editor-alt-text-dialog-description = טקסט חלופי עוזר כשאנשים לא יכולים לראות את התמונה או כשהיא לא נטענת. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = מסומן כדקורטיבי # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = לדוגמה, ״גבר צעיר מתיישב ליד שולחן לאכול ארוחה״ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = טקסט חלופי ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -400,7 +408,7 @@ pdfjs-editor-resizer-middle-left = ## Color picker # This means "Color used to highlight text" -pdfjs-editor-highlight-colorpicker-label = צבע הדגשה +pdfjs-editor-highlight-colorpicker-label = צבע סימון pdfjs-editor-colorpicker-button = .title = שינוי צבע pdfjs-editor-colorpicker-dropdown = @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = סגירה pdfjs-editor-new-alt-text-ai-model-downloading-progress = בתהליך הורדת מודל AI של טקסט חלופי ({ $downloadedSize } מתוך { $totalSize } מ״ב) .aria-valuetext = בתהליך הורדת מודל AI של טקסט חלופי ({ $downloadedSize } מתוך { $totalSize } מ״ב) # This is a button that users can click to edit the alt text they have already added. -pdfjs-editor-new-alt-text-added-button-label = טקסט חלופי נוסף +pdfjs-editor-new-alt-text-added-button = + .aria-label = נוסף טקסט חלופי +pdfjs-editor-new-alt-text-added-button-label = נוסף טקסט חלופי # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = חסר טקסט חלופי pdfjs-editor-new-alt-text-missing-button-label = חסר טקסט חלופי # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = סקירת טקסט חלופי pdfjs-editor-new-alt-text-to-review-button-label = סקירת טקסט חלופי # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = עורך טקסט חלופי pdfjs-editor-alt-text-settings-show-dialog-button-label = הצגת עורך טקסט חלופי מיד בעת הוספת תמונה pdfjs-editor-alt-text-settings-show-dialog-description = מסייע לך לוודא שלכל התמונות שלך יש טקסט חלופי. pdfjs-editor-alt-text-settings-close-button = סגירה + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = הסימון הוסר +pdfjs-editor-undo-bar-message-freetext = הטקסט הוסר +pdfjs-editor-undo-bar-message-ink = הציור הוסר +pdfjs-editor-undo-bar-message-stamp = התמונה הוסרה +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] הערה אחת הוסרה + *[other] { $count } הערות הוסרו + } +pdfjs-editor-undo-bar-undo-button = + .title = ביטול פעולה +pdfjs-editor-undo-bar-undo-button-label = ביטול פעלה +pdfjs-editor-undo-bar-close-button = + .title = סגירה +pdfjs-editor-undo-bar-close-button-label = סגירה diff --git a/viewer/locale/hr/viewer.ftl b/viewer/locale/hr/viewer.ftl index 0c66341f..c081c6f4 100644 --- a/viewer/locale/hr/viewer.ftl +++ b/viewer/locale/hr/viewer.ftl @@ -105,6 +105,14 @@ pdfjs-document-properties-button-label = Svojstva dokumenta … pdfjs-document-properties-file-name = Ime datoteke: pdfjs-document-properties-file-size = Veličina datoteke: # Variables: +# $kb (Number) - the PDF file size in kilobytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bajtova) +# Variables: +# $mb (Number) - the PDF file size in megabytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajtova) +# Variables: # $size_kb (Number) - the PDF file size in kilobytes # $size_b (Number) - the PDF file size in bytes pdfjs-document-properties-kb = { $size_kb } KB ({ $size_b } bajtova) @@ -119,12 +127,15 @@ pdfjs-document-properties-keywords = Ključne riječi: pdfjs-document-properties-creation-date = Datum stvaranja: pdfjs-document-properties-modification-date = Datum promjene: # Variables: +# $dateObj (Date) - the creation/modification date and time of the PDF file +pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +# Variables: # $date (Date) - the creation/modification date of the PDF file # $time (Time) - the creation/modification time of the PDF file pdfjs-document-properties-date-string = { $date }, { $time } pdfjs-document-properties-creator = Stvaratelj: pdfjs-document-properties-producer = PDF stvaratelj: -pdfjs-document-properties-version = PDF inačica: +pdfjs-document-properties-version = PDF verzija: pdfjs-document-properties-page-count = Broj stranica: pdfjs-document-properties-page-size = Dimenzije stranice: pdfjs-document-properties-page-size-unit-inches = in @@ -224,7 +235,7 @@ pdfjs-find-reached-bottom = Dosegnut kraj dokumenta, nastavak s početka # $current (Number) - the index of the currently active find result # $total (Number) - the total number of matches in the document pdfjs-find-match-count = - { NUMBER($total) -> + { $total -> [one] { $current } od { $total } rezultata [few] { $current } od { $total } rezultata *[other] { $current } od { $total } rezultata @@ -232,7 +243,7 @@ pdfjs-find-match-count = # Variables: # $limit (Number) - the maximum number of matches pdfjs-find-match-count-limit = - { NUMBER($limit) -> + { $limit -> [one] Više od { $limit } rezultat [few] Više od { $limit } rezultata *[other] Više od { $limit } rezultata @@ -277,6 +288,9 @@ pdfjs-annotation-date-string = { $date }, { $time } # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [{ $type } Bilješka] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -341,7 +355,6 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternativni tekst pdfjs-editor-alt-text-edit-button-label = Uredi alternativni tekst pdfjs-editor-alt-text-dialog-label = Odaberi jednu opciju @@ -421,6 +434,18 @@ pdfjs-editor-new-alt-text-disclaimer1 = Ovaj je alternativni tekst stvoren autom pdfjs-editor-new-alt-text-disclaimer-learn-more-url = Saznaj više pdfjs-editor-new-alt-text-create-automatically-button-label = Automatski stvori alternativni tekst pdfjs-editor-new-alt-text-error-title = Nije bilo moguće automatski izraditi alternativni tekst +# Variables: +# $totalSize (Number) - the total size (in MB) of the AI model. +# $downloadedSize (Number) - the downloaded size (in MB) of the AI model. +# $percent (Number) - the percentage of the downloaded size. +pdfjs-editor-new-alt-text-ai-model-downloading-progress = Preuzimanje alternativnog teksta UI modela ({ $downloadedSize } od { $totalSize } MB) + .aria-valuetext = Preuzimanje alternativnog teksta UI modela ({ $downloadedSize } od { $totalSize } MB) +pdfjs-editor-new-alt-text-added-button-label = Alternativni tekst je dodan +pdfjs-editor-new-alt-text-missing-button-label = Nedostaje alternativni tekst +# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Pregledaj alternativni tekst +pdfjs-editor-new-alt-text-to-review-button-label = Pregledaj alternativni tekst # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: # $generatedAltText (String) - the generated alt-text. @@ -434,6 +459,10 @@ pdfjs-image-alt-text-settings-button-label = Postavke alternativnog teksta slike pdfjs-editor-alt-text-settings-dialog-label = Postavke alternativnog teksta slike pdfjs-editor-alt-text-settings-automatic-title = Automatski alternativni tekst pdfjs-editor-alt-text-settings-create-model-button-label = Stvori alternativni tekst automatski +pdfjs-editor-alt-text-settings-create-model-description = Predlaže opise koji pomažu osobama koji ne mogu vidjeti sliku ili kada se slika ne učita. +# Variables: +# $totalSize (Number) - the total size (in MB) of the AI model. +pdfjs-editor-alt-text-settings-download-model-label = Alternativni tekst UI modela ({ $totalSize } MB) pdfjs-editor-alt-text-settings-ai-model-description = Radi lokalno na tvom uređaju kako bi tvoji podaci ostali privatni. Potrebno za automatski alternativni tekst. pdfjs-editor-alt-text-settings-delete-model-button = Izbriši pdfjs-editor-alt-text-settings-download-model-button = Preuzmi diff --git a/viewer/locale/hsb/viewer.ftl b/viewer/locale/hsb/viewer.ftl index d5fe5d5d..065ab8d0 100644 --- a/viewer/locale/hsb/viewer.ftl +++ b/viewer/locale/hsb/viewer.ftl @@ -347,6 +347,10 @@ pdfjs-editor-stamp-add-image-button-label = Wobraz přidać pdfjs-editor-free-highlight-thickness-input = Tołstosć pdfjs-editor-free-highlight-thickness-title = .title = Tołstosć změnić, hdyž so zapiski wuzběhuja, kotrež tekst njejsu +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Tekstowy editor + .default-content = Započńće pisać … pdfjs-free-text = .aria-label = Tekstowy editor pdfjs-free-text-default-content = Započńće pisać… @@ -357,8 +361,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternatiwny tekst +pdfjs-editor-alt-text-edit-button = + .aria-label = Alternatiwny tekst wobdźěłać pdfjs-editor-alt-text-edit-button-label = Alternatiwny tekst wobdźěłać pdfjs-editor-alt-text-dialog-label = Nastajenje wubrać pdfjs-editor-alt-text-dialog-description = Alternatiwny tekst pomha, hdyž ludźo njemóža wobraz widźeć abo hdyž so wobraz njezačita. @@ -372,6 +377,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Jako dekoratiwny markěrowany # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Na přikład, „Młody muž za blidom sedźi, zo by jědź jědł“ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternatiwny tekst ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -453,10 +461,16 @@ pdfjs-editor-new-alt-text-error-close-button = Začinić pdfjs-editor-new-alt-text-ai-model-downloading-progress = Model KI za alternatiwny tekst so sćahuje ({ $downloadedSize } z { $totalSize } MB) .aria-valuetext = Model KI za alternatiwny tekst so sćahuje ({ $downloadedSize } z { $totalSize } 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 = Alternatiwny tekst je so přidał pdfjs-editor-new-alt-text-added-button-label = Alternatiwny tekst je so přidał # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Alternatiwny tekst faluje pdfjs-editor-new-alt-text-missing-button-label = Alternatiwny tekst faluje # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Alternatiwny tekst přepruwować pdfjs-editor-new-alt-text-to-review-button-label = Alternatiwny tekst přepruwować # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -483,3 +497,25 @@ pdfjs-editor-alt-text-settings-editor-title = Editor za alternatiwny tekst pdfjs-editor-alt-text-settings-show-dialog-button-label = Editor alternatiwneho teksta hnydom pokazać, hdyž so wobraz přidawa pdfjs-editor-alt-text-settings-show-dialog-description = Pomha, wam wšěm swojim wobrazam alternatiwny tekst přidać. pdfjs-editor-alt-text-settings-close-button = Začinić + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Wotstronjene wuzběhnyć +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ł +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } přispomnjenka je so wotstroniła + [two] { $count } přispomnjence stej so wotstroniłoj + [few] { $count } přispomnjenki su so wotstronili + *[other] { $count } přispomnjenkow je so wotstroniło + } +pdfjs-editor-undo-bar-undo-button = + .title = Cofnyć +pdfjs-editor-undo-bar-undo-button-label = Cofnyć +pdfjs-editor-undo-bar-close-button = + .title = Začinić +pdfjs-editor-undo-bar-close-button-label = Začinić diff --git a/viewer/locale/hu/viewer.ftl b/viewer/locale/hu/viewer.ftl index d8f5c5ea..76307a22 100644 --- a/viewer/locale/hu/viewer.ftl +++ b/viewer/locale/hu/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Kép hozzáadása pdfjs-editor-free-highlight-thickness-input = Vastagság pdfjs-editor-free-highlight-thickness-title = .title = Vastagság módosítása, ha nem szöveges elemeket emel ki +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Szövegszerkesztő + .default-content = Kezdjen gépelni… pdfjs-free-text = .aria-label = Szövegszerkesztő pdfjs-free-text-default-content = Kezdjen el gépelni… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternatív szöveg +pdfjs-editor-alt-text-edit-button = + .aria-label = Alternatív szöveg szerkesztése pdfjs-editor-alt-text-edit-button-label = Alternatív szöveg szerkesztése pdfjs-editor-alt-text-dialog-label = Válasszon egy lehetőséget pdfjs-editor-alt-text-dialog-description = Az alternatív szöveg segít, ha az emberek nem látják a képet, vagy ha az nem töltődik be. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Megjelölve dekoratívként # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Például: „Egy fiatal férfi leül enni egy asztalhoz” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternatív szöveg ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Bezárás pdfjs-editor-new-alt-text-ai-model-downloading-progress = Alternatív szöveg MI modell letöltése ({ $downloadedSize } / { $totalSize } MB) .aria-valuetext = Alternatív szöveg MI modell letöltése ({ $downloadedSize } / { $totalSize } 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 = Alternatív szöveg hozzáadva pdfjs-editor-new-alt-text-added-button-label = Alternatív szöveg hozzáadva # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Hiányzó alternatív szöveg pdfjs-editor-new-alt-text-missing-button-label = Hiányzó alternatív szöveg # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Alternatív szöveg áttekintése pdfjs-editor-new-alt-text-to-review-button-label = Alternatív szöveg szerkesztése # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Alternatív szöveg szerkesztője pdfjs-editor-alt-text-settings-show-dialog-button-label = Az alternatív szöveg szerkesztőjének azonnali megjelenítése egy kép hozzáadásakor pdfjs-editor-alt-text-settings-show-dialog-description = Segít elérni, hogy az összes képén legyen alternatív szöveg. pdfjs-editor-alt-text-settings-close-button = Bezárás + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Kiemelés eltávolítva +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 +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } kommentár eltávolítva + *[other] { $count } kommentár eltávolítva + } +pdfjs-editor-undo-bar-undo-button = + .title = Visszavonás +pdfjs-editor-undo-bar-undo-button-label = Visszavonás +pdfjs-editor-undo-bar-close-button = + .title = Bezárás +pdfjs-editor-undo-bar-close-button-label = Bezárás diff --git a/viewer/locale/ia/viewer.ftl b/viewer/locale/ia/viewer.ftl index b69be14b..91fbaf98 100644 --- a/viewer/locale/ia/viewer.ftl +++ b/viewer/locale/ia/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Adder imagine pdfjs-editor-free-highlight-thickness-input = Spissor pdfjs-editor-free-highlight-thickness-title = .title = Cambiar spissor evidentiante elementos differente de texto +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor de texto + .default-content = Initiar a inserer… pdfjs-free-text = .aria-label = Editor de texto pdfjs-free-text-default-content = Comenciar a scriber… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Texto alternative +pdfjs-editor-alt-text-edit-button = + .aria-label = Rediger texto alternative pdfjs-editor-alt-text-edit-button-label = Rediger texto alternative pdfjs-editor-alt-text-dialog-label = Elige un option pdfjs-editor-alt-text-dialog-description = Le texto alternative (alt text) adjuta quando le personas non pote vider le imagine o quando illo non carga. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcate como decorative # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Per exemplo, “Un juvene sede a un tabula pro mangiar un repasto” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Texto alternative ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Clauder pdfjs-editor-new-alt-text-ai-model-downloading-progress = Discargante modello de intelligentia artificial del texto alternative ({ $downloadedSize } de { $totalSize } MB) .aria-valuetext = Discargante modello de intelligentia artificial del texto alternative ({ $downloadedSize } de { $totalSize } 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 = Texto alternative addite pdfjs-editor-new-alt-text-added-button-label = Texto alternative addite # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Texto alternative mancante pdfjs-editor-new-alt-text-missing-button-label = Texto alternative mancante # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Revider texto alternative pdfjs-editor-new-alt-text-to-review-button-label = Revider texto alternative # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Rediger texto alternative pdfjs-editor-alt-text-settings-show-dialog-button-label = Monstrar le redactor de texto alternative a pena on adde un imagine pdfjs-editor-alt-text-settings-show-dialog-description = Te adjuta a verifica que tote tu imagines ha un texto alternative. pdfjs-editor-alt-text-settings-close-button = Clauder + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Evidentiation removite +pdfjs-editor-undo-bar-message-freetext = Texto removite +pdfjs-editor-undo-bar-message-ink = Designo removite +pdfjs-editor-undo-bar-message-stamp = Imagine removite +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotation removite + *[other] { $count } annotationes removite + } +pdfjs-editor-undo-bar-undo-button = + .title = Disfacer +pdfjs-editor-undo-bar-undo-button-label = Disfacer +pdfjs-editor-undo-bar-close-button = + .title = Clauder +pdfjs-editor-undo-bar-close-button-label = Clauder diff --git a/viewer/locale/id/viewer.ftl b/viewer/locale/id/viewer.ftl index fee8d18b..c985a33f 100644 --- a/viewer/locale/id/viewer.ftl +++ b/viewer/locale/id/viewer.ftl @@ -42,6 +42,12 @@ pdfjs-print-button-label = Cetak pdfjs-save-button = .title = Simpan pdfjs-save-button-label = Simpan +# Used in Firefox for Android as a tooltip for the download button (“download” is a verb). +pdfjs-download-button = + .title = Unduh +# Used in Firefox for Android as a label for the download button (“download” is a verb). +# Length of the translation matters since we are in a mobile context, with limited screen estate. +pdfjs-download-button-label = Unduh pdfjs-bookmark-button = .title = Laman Saat Ini (Lihat URL dari Laman Sekarang) pdfjs-bookmark-button-label = Laman Saat Ini @@ -99,6 +105,14 @@ pdfjs-document-properties-button-label = Properti Dokumen… pdfjs-document-properties-file-name = Nama berkas: pdfjs-document-properties-file-size = Ukuran berkas: # Variables: +# $kb (Number) - the PDF file size in kilobytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } byte) +# Variables: +# $mb (Number) - the PDF file size in megabytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } byte) +# Variables: # $size_kb (Number) - the PDF file size in kilobytes # $size_b (Number) - the PDF file size in bytes pdfjs-document-properties-kb = { $size_kb } KB ({ $size_b } byte) @@ -113,6 +127,9 @@ pdfjs-document-properties-keywords = Kata Kunci: pdfjs-document-properties-creation-date = Tanggal Dibuat: pdfjs-document-properties-modification-date = Tanggal Dimodifikasi: # Variables: +# $dateObj (Date) - the creation/modification date and time of the PDF file +pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +# Variables: # $date (Date) - the creation/modification date of the PDF file # $time (Time) - the creation/modification time of the PDF file pdfjs-document-properties-date-string = { $date }, { $time } @@ -214,6 +231,13 @@ pdfjs-find-match-diacritics-checkbox-label = Pencocokan Diakritik pdfjs-find-entire-word-checkbox-label = Seluruh teks pdfjs-find-reached-top = Sampai di awal dokumen, dilanjutkan dari bawah pdfjs-find-reached-bottom = Sampai di akhir dokumen, dilanjutkan dari atas +# Variables: +# $current (Number) - the index of the currently active find result +# $total (Number) - the total number of matches in the document +pdfjs-find-match-count = { $current } dari { $total } yang cocok +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = Lebih dari { $limit } kecocokan pdfjs-find-not-found = Frasa tidak ditemukan ## Predefined zoom values @@ -254,6 +278,9 @@ pdfjs-annotation-date-string = { $date }, { $time } # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [Anotasi { $type }] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -271,12 +298,47 @@ pdfjs-editor-free-text-button-label = Teks pdfjs-editor-ink-button = .title = Gambar pdfjs-editor-ink-button-label = Gambar +pdfjs-editor-stamp-button = + .title = Tambah atau edit gambar +pdfjs-editor-stamp-button-label = Tambah atau edit gambar +pdfjs-editor-highlight-button = + .title = Sorot +pdfjs-editor-highlight-button-label = Sorot +pdfjs-highlight-floating-button1 = + .title = Sorot + .aria-label = Sorot +pdfjs-highlight-floating-button-label = Sorot + +## Remove button for the various kind of editor. + +pdfjs-editor-remove-ink-button = + .title = Hapus gambar +pdfjs-editor-remove-freetext-button = + .title = Hapus teks +pdfjs-editor-remove-stamp-button = + .title = Hapus gambar +pdfjs-editor-remove-highlight-button = + .title = Hapus sorotan + +## + # Editor Parameters pdfjs-editor-free-text-color-input = Warna pdfjs-editor-free-text-size-input = Ukuran pdfjs-editor-ink-color-input = Warna pdfjs-editor-ink-thickness-input = Ketebalan pdfjs-editor-ink-opacity-input = Opasitas +pdfjs-editor-stamp-add-image-button = + .title = Tambahkan gambar +pdfjs-editor-stamp-add-image-button-label = Tambahkan gambar +# This refers to the thickness of the line used for free highlighting (not bound to text) +pdfjs-editor-free-highlight-thickness-input = Ketebalan +pdfjs-editor-free-highlight-thickness-title = + .title = Ubah ketebalan saat menyorot item selain teks +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor Teks + .default-content = Mulai mengetik… pdfjs-free-text = .aria-label = Editor Teks pdfjs-free-text-default-content = Mulai mengetik… @@ -287,7 +349,26 @@ pdfjs-ink-canvas = ## Alt-text dialog +pdfjs-editor-alt-text-button-label = Teks alternatif +pdfjs-editor-alt-text-edit-button = + .aria-label = Edit teks alternatif +pdfjs-editor-alt-text-edit-button-label = Edit teks alternatif +pdfjs-editor-alt-text-dialog-label = Pilih opsi ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. + +## Color picker + + +## Show all highlights +## This is a toggle button to show/hide all the highlights. + + +## 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. + + +## Image alt-text settings + diff --git a/viewer/locale/is/viewer.ftl b/viewer/locale/is/viewer.ftl index 80242620..deda5104 100644 --- a/viewer/locale/is/viewer.ftl +++ b/viewer/locale/is/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Bæta við mynd pdfjs-editor-free-highlight-thickness-input = Þykkt pdfjs-editor-free-highlight-thickness-title = .title = Breyta þykkt við áherslulitun annarra atriða en texta +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Textaritill + .default-content = Byrjaðu að skrifa… pdfjs-free-text = .aria-label = Textaritill pdfjs-free-text-default-content = Byrjaðu að skrifa… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alt-varatexti +pdfjs-editor-alt-text-edit-button = + .aria-label = Breyta alt-myndatexta pdfjs-editor-alt-text-edit-button-label = Breyta alt-varatexta pdfjs-editor-alt-text-dialog-label = Veldu valkost pdfjs-editor-alt-text-dialog-description = Alt-varatexti (auka-myndatexti) hjálpar þegar fólk getur ekki séð myndina eða þegar hún hleðst ekki inn. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Merkt sem skraut # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Til dæmis: „Ungur maður sest við borð til að snæða máltíð“ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alt-myndatexti ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Loka pdfjs-editor-new-alt-text-ai-model-downloading-progress = Sækir gervigreindarlíkan með alt-myndatextum ({ $downloadedSize } af { $totalSize } MB) .aria-valuetext = Sækir gervigreindarlíkan með alt-myndatextum ({ $downloadedSize } af { $totalSize } 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 = Alt-myndatexta bætt við pdfjs-editor-new-alt-text-added-button-label = Alt-myndatexta bætt við # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Vantar alt-myndatexta pdfjs-editor-new-alt-text-missing-button-label = Vantar alt-myndatexta # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Yfirfara alt-myndatexta pdfjs-editor-new-alt-text-to-review-button-label = Yfirfara myndatexta # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Ritill fyrir alt-myndatexta pdfjs-editor-alt-text-settings-show-dialog-button-label = Sýna alt-myndatextaritil strax þegar mynd er bætt við pdfjs-editor-alt-text-settings-show-dialog-description = Hjálpar þér að tryggja að allar myndirnar þínar séu með alt-myndatexta. pdfjs-editor-alt-text-settings-close-button = Loka + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Áherslulitun fjarlægð +pdfjs-editor-undo-bar-message-freetext = Texti fjarlægður +pdfjs-editor-undo-bar-message-ink = Teikning fjarlægð +pdfjs-editor-undo-bar-message-stamp = Mynd fjarlægð +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } glósa fjarlægð + *[other] { $count } glósur fjarlægðar + } +pdfjs-editor-undo-bar-undo-button = + .title = Afturkalla +pdfjs-editor-undo-bar-undo-button-label = Afturkalla +pdfjs-editor-undo-bar-close-button = + .title = Loka +pdfjs-editor-undo-bar-close-button-label = Loka diff --git a/viewer/locale/it/viewer.ftl b/viewer/locale/it/viewer.ftl index bdbed4a3..d1de7e12 100644 --- a/viewer/locale/it/viewer.ftl +++ b/viewer/locale/it/viewer.ftl @@ -104,9 +104,11 @@ pdfjs-document-properties-button = pdfjs-document-properties-button-label = Proprietà del documento… pdfjs-document-properties-file-name = Nome file: pdfjs-document-properties-file-size = Dimensione file: +# Variables: # $kb (Number) - the PDF file size in kilobytes # $b (Number) - the PDF file size in bytes pdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } byte) +# Variables: # $mb (Number) - the PDF file size in megabytes # $b (Number) - the PDF file size in bytes pdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } byte) @@ -124,6 +126,8 @@ pdfjs-document-properties-subject = Oggetto: pdfjs-document-properties-keywords = Parole chiave: pdfjs-document-properties-creation-date = Data creazione: pdfjs-document-properties-modification-date = Data modifica: +# Variables: +# $dateObj (Date) - the creation/modification date and time of the PDF file pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } # Variables: # $date (Date) - the creation/modification date of the PDF file @@ -282,6 +286,8 @@ pdfjs-annotation-date-string = { $date }, { $time } # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [Annotazione: { $type }] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -337,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Aggiungi immagine pdfjs-editor-free-highlight-thickness-input = Spessore pdfjs-editor-free-highlight-thickness-title = .title = Modifica lo spessore della selezione per elementi non testuali +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor di testo + .default-content = Inizia a digitare… pdfjs-free-text = .aria-label = Editor di testo pdfjs-free-text-default-content = Inizia a digitare… @@ -347,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Testo alternativo +pdfjs-editor-alt-text-edit-button = + .aria-label = Modifica testo alternativo pdfjs-editor-alt-text-edit-button-label = Modifica testo alternativo pdfjs-editor-alt-text-dialog-label = Scegli un’opzione pdfjs-editor-alt-text-dialog-description = Il testo alternativo (“alt text”) aiuta quando le persone non possono vedere l’immagine o quando l’immagine non viene caricata. @@ -362,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Contrassegnata come decorativa # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Ad esempio, “Un giovane si siede a tavola per mangiare” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Testo alternativo ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -443,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Chiudi pdfjs-editor-new-alt-text-ai-model-downloading-progress = Download in corso del modello IA per il testo alternativo ({ $downloadedSize } di { $totalSize } MB) .aria-valuetext = Download in corso del modello IA per il testo alternativo ({ $downloadedSize } di { $totalSize } 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 = Aggiunto testo alternativo pdfjs-editor-new-alt-text-added-button-label = Aggiunto testo alternativo # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Testo alternativo mancante pdfjs-editor-new-alt-text-missing-button-label = Testo alternativo mancante # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Verifica testo alternativo pdfjs-editor-new-alt-text-to-review-button-label = Verifica testo alternativo # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -473,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Modifica testo alternativo pdfjs-editor-alt-text-settings-show-dialog-button-label = Mostra l’editor del testo alternativo non appena si aggiunge un’immagine pdfjs-editor-alt-text-settings-show-dialog-description = Ti aiuta ad assicurarti che tutte le tue immagini abbiano il testo alternativo. pdfjs-editor-alt-text-settings-close-button = Chiudi + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Evidenziazione rimossa +pdfjs-editor-undo-bar-message-freetext = Testo rimosso +pdfjs-editor-undo-bar-message-ink = Disegno rimosso +pdfjs-editor-undo-bar-message-stamp = Immagine rimossa +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotazione rimossa + *[other] { $count } annotazioni rimosse + } +pdfjs-editor-undo-bar-undo-button = + .title = Annulla +pdfjs-editor-undo-bar-undo-button-label = Annulla +pdfjs-editor-undo-bar-close-button = + .title = Chiudi +pdfjs-editor-undo-bar-close-button-label = Chiudi diff --git a/viewer/locale/ja/viewer.ftl b/viewer/locale/ja/viewer.ftl index 97a73987..0f37f2a1 100644 --- a/viewer/locale/ja/viewer.ftl +++ b/viewer/locale/ja/viewer.ftl @@ -335,6 +335,10 @@ pdfjs-editor-stamp-add-image-button-label = 画像を追加 pdfjs-editor-free-highlight-thickness-input = 太さ pdfjs-editor-free-highlight-thickness-title = .title = テキスト以外のアイテムを強調する時の太さを変更します +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = フリーテキスト注釈エディター + .default-content = テキストを入力してください... pdfjs-free-text = .aria-label = フリーテキスト注釈エディター pdfjs-free-text-default-content = テキストを入力してください... @@ -345,8 +349,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = 代替テキスト +pdfjs-editor-alt-text-edit-button = + .aria-label = 代替テキストを編集 pdfjs-editor-alt-text-edit-button-label = 代替テキストを編集 pdfjs-editor-alt-text-dialog-label = オプションの選択 pdfjs-editor-alt-text-dialog-description = 代替テキストは画像が表示されない場合や読み込まれない場合にユーザーの助けになります。 @@ -360,6 +365,9 @@ pdfjs-editor-alt-text-decorative-tooltip = 装飾マークが付いています # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = 例:「若い人がテーブルの席について食事をしています」 +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = 代替テキスト ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -441,10 +449,16 @@ pdfjs-editor-new-alt-text-error-close-button = 閉じる pdfjs-editor-new-alt-text-ai-model-downloading-progress = 代替テキスト AI モデルをダウンロードしています ({ $downloadedSize } / { $totalSize } MB) .aria-valuetext = 代替テキスト AI モデルをダウンロードしています ({ $downloadedSize } / { $totalSize } 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 = 代替テキストを追加しました pdfjs-editor-new-alt-text-added-button-label = 代替テキストを追加しました # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = 代替テキストがありません pdfjs-editor-new-alt-text-missing-button-label = 代替テキストがありません # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = 代替テキストをレビュー pdfjs-editor-new-alt-text-to-review-button-label = 代替テキストをレビュー # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -471,3 +485,19 @@ pdfjs-editor-alt-text-settings-editor-title = 代替テキストエディター pdfjs-editor-alt-text-settings-show-dialog-button-label = 画像の追加時に代替テキストエディターを表示する pdfjs-editor-alt-text-settings-show-dialog-description = すべての画像に代替テキストを追加する助けになります。 pdfjs-editor-alt-text-settings-close-button = 閉じる + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = 強調表示が削除されました +pdfjs-editor-undo-bar-message-freetext = フリーテキスト注釈が削除されました +pdfjs-editor-undo-bar-message-ink = インク注釈が削除されました +pdfjs-editor-undo-bar-message-stamp = 画像が削除されました +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = { $count } 個の注釈が削除されました +pdfjs-editor-undo-bar-undo-button = + .title = 元に戻す +pdfjs-editor-undo-bar-undo-button-label = 元に戻す +pdfjs-editor-undo-bar-close-button = + .title = 閉じる +pdfjs-editor-undo-bar-close-button-label = 閉じる diff --git a/viewer/locale/ka/viewer.ftl b/viewer/locale/ka/viewer.ftl index 1a1fdb44..d500f3e5 100644 --- a/viewer/locale/ka/viewer.ftl +++ b/viewer/locale/ka/viewer.ftl @@ -31,8 +31,8 @@ pdfjs-zoom-in-button-label = მოახლოება pdfjs-zoom-select = .title = ზომა pdfjs-presentation-mode-button = - .title = ჩვენების რეჟიმზე გადართვა -pdfjs-presentation-mode-button-label = ჩვენების რეჟიმი + .title = წარდგენის რეჟიმზე გადართვა +pdfjs-presentation-mode-button-label = წარდგენის რეჟიმი pdfjs-open-file-button = .title = ფაილის გახსნა pdfjs-open-file-button-label = გახსნა @@ -105,6 +105,14 @@ pdfjs-document-properties-button-label = დოკუმენტის შე pdfjs-document-properties-file-name = ფაილის სახელი: pdfjs-document-properties-file-size = ფაილის მოცულობა: # Variables: +# $kb (Number) - the PDF file size in kilobytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } კბაიტი ({ $b } ბაიტი) +# Variables: +# $mb (Number) - the PDF file size in megabytes +# $b (Number) - the PDF file size in bytes +pdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } მბაიტი ({ $b } ბაიტი) +# Variables: # $size_kb (Number) - the PDF file size in kilobytes # $size_b (Number) - the PDF file size in bytes pdfjs-document-properties-kb = { $size_kb } კბ ({ $size_b } ბაიტი) @@ -119,6 +127,9 @@ pdfjs-document-properties-keywords = საკვანძო სიტყვე pdfjs-document-properties-creation-date = შექმნის დრო: pdfjs-document-properties-modification-date = ჩასწორების დრო: # Variables: +# $dateObj (Date) - the creation/modification date and time of the PDF file +pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +# Variables: # $date (Date) - the creation/modification date of the PDF file # $time (Time) - the creation/modification time of the PDF file pdfjs-document-properties-date-string = { $date }, { $time } @@ -170,7 +181,7 @@ pdfjs-printing-not-ready = გაფრთხილება: PDF სრულ pdfjs-toggle-sidebar-button = .title = გვერდითა ზოლის გამოჩენა/დამალვა pdfjs-toggle-sidebar-notification-button = - .title = გვერდითი ზოლის გამოჩენა (შეიცავს სარჩევს/დანართს/ფენებს) + .title = გვერდითი ზოლის გამოჩენა (შეიცავს სარჩევს/დანართს/შრეებს) pdfjs-toggle-sidebar-button-label = გვერდითა ზოლის გამოჩენა/დამალვა pdfjs-document-outline-button = .title = დოკუმენტის სარჩევის ჩვენება (ორმაგი წკაპით თითოეულის ჩამოშლა/აკეცვა) @@ -179,8 +190,8 @@ pdfjs-attachments-button = .title = დანართების ჩვენება pdfjs-attachments-button-label = დანართები pdfjs-layers-button = - .title = ფენების გამოჩენა (ორმაგი წკაპით ყველა ფენის ნაგულისხმევზე დაბრუნება) -pdfjs-layers-button-label = ფენები + .title = შრეების გამოჩენა (ორმაგი წკაპით ყველა შრის ნაგულისხმევზე დაბრუნება) +pdfjs-layers-button-label = შრეები pdfjs-thumbs-button = .title = შეთვალიერება pdfjs-thumbs-button-label = ესკიზები @@ -190,7 +201,7 @@ pdfjs-current-outline-item-button-label = მიმდინარე გვე pdfjs-findbar-button = .title = პოვნა დოკუმენტში pdfjs-findbar-button-label = ძიება -pdfjs-additional-layers = დამატებითი ფენები +pdfjs-additional-layers = დამატებითი შრეები ## Thumbnails panel item (tooltip and alt text for images) @@ -209,10 +220,10 @@ pdfjs-find-input = .title = ძიება .placeholder = პოვნა დოკუმენტში… pdfjs-find-previous-button = - .title = ფრაზის წინა კონტექსტის პოვნა + .title = წინა დამთხვევის პოვნა pdfjs-find-previous-button-label = წინა pdfjs-find-next-button = - .title = ფრაზის შემდეგი კონტექსტის პოვნა + .title = მომდევნო დამთხვევის პოვნა pdfjs-find-next-button-label = შემდეგი pdfjs-find-highlight-checkbox = ყველაფრის მონიშვნა pdfjs-find-match-case-checkbox-label = მთავრულით @@ -275,6 +286,9 @@ pdfjs-annotation-date-string = { $date }, { $time } # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [{ $type } შენიშვნა] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -288,7 +302,7 @@ pdfjs-web-fonts-disabled = ვებშრიფტები გამორთ pdfjs-editor-free-text-button = .title = წარწერა -pdfjs-editor-free-text-button-label = ტექსტი +pdfjs-editor-free-text-button-label = წარწერა pdfjs-editor-ink-button = .title = ხაზვა pdfjs-editor-ink-button-label = ხაზვა @@ -298,6 +312,10 @@ pdfjs-editor-stamp-button-label = სურათების დართვა pdfjs-editor-highlight-button = .title = მონიშვნა pdfjs-editor-highlight-button-label = მონიშვნა +pdfjs-highlight-floating-button1 = + .title = მონიშვნა + .aria-label = მონიშვნა +pdfjs-highlight-floating-button-label = მონიშვნა ## Remove button for the various kind of editor. @@ -321,6 +339,14 @@ pdfjs-editor-ink-opacity-input = გაუმჭვირვალობა pdfjs-editor-stamp-add-image-button = .title = სურათის დამატება 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 = სისქის შეცვლა წარწერის გარდა სხვა ნაწილების მონიშვნისას +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = ნაწერის ჩასწორება + .default-content = დაიწყეთ აკრეფა… pdfjs-free-text = .aria-label = ნაწერის ჩასწორება pdfjs-free-text-default-content = აკრიფეთ… @@ -331,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = თანდართული წარწერა +pdfjs-editor-alt-text-edit-button = + .aria-label = დართული წარწერის ჩასწორება pdfjs-editor-alt-text-edit-button-label = თანდართული წარწერის ჩასწორება pdfjs-editor-alt-text-dialog-label = არჩევა pdfjs-editor-alt-text-dialog-description = თანდართული (შემნაცვლებელი) წარწერა გამოსადეგია მათთვის, ვინც ვერ ხედავს სურათებს ან გამოისახება მაშინ, როცა სურათი ვერ ჩაიტვირთება. @@ -346,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = მოინიშნოს მორ # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = მაგალითად, „ახალგაზრდა მამაკაცი მაგიდასთან ზის და სადილობს“ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = დართული წარწერა ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -397,10 +427,89 @@ pdfjs-editor-colorpicker-red = ## Show all highlights ## This is a toggle button to show/hide all the highlights. +pdfjs-editor-highlight-show-all-button-label = ყველას ჩვენება +pdfjs-editor-highlight-show-all-button = + .title = ყველას ჩვენება ## 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. +# Modal header positioned above a text box where users can edit the alt text. +pdfjs-editor-new-alt-text-dialog-edit-label = დართული წარწერის ჩასწორება (სურათის აღწერის) +# Modal header positioned above a text box where users can add the alt text. +pdfjs-editor-new-alt-text-dialog-add-label = დართული წარწერის დამატება (სურათის აღწერის) +pdfjs-editor-new-alt-text-textarea = + .placeholder = დაწერეთ თქვენი აღწერა აქ… +# This text refers to the alt text box above this description. It offers a definition of alt text. +pdfjs-editor-new-alt-text-description = მოკლე აღწერა მათთვის, ვინც ვერ ხედავს სურათს ან ვისთანაც ვერ ჩაიტვირთება სურათი. +# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human. +pdfjs-editor-new-alt-text-disclaimer1 = ეს დართული წარწერა ავტომატურადაა შედგენილი და შესაძლოა, უმართებულო იყოს. +pdfjs-editor-new-alt-text-disclaimer-learn-more-url = ვრცლად +pdfjs-editor-new-alt-text-create-automatically-button-label = დართული წარწერის ავტომატური შედგენა +pdfjs-editor-new-alt-text-not-now-button = ახლა არა +pdfjs-editor-new-alt-text-error-title = დართული წარწერის შედგენა ვერ მოხერხდა +pdfjs-editor-new-alt-text-error-description = გთხოვთ დაწეროთ საკუთარი დანართი და კვლავ სცადოთ მოგვიანებით. +pdfjs-editor-new-alt-text-error-close-button = დახურვა +# Variables: +# $totalSize (Number) - the total size (in MB) of the AI model. +# $downloadedSize (Number) - the downloaded size (in MB) of the AI model. +# $percent (Number) - the percentage of the downloaded size. +pdfjs-editor-new-alt-text-ai-model-downloading-progress = ჩამოიტვირთება დართული წარწერის შესადეგი AI-მოდელი ({ $downloadedSize } ზომით { $totalSize } მბაიტი) + .aria-valuetext = ჩამოიტვირთება დართული წარწერის შესადეგი AI-მოდელი ({ $downloadedSize } ზომით { $totalSize } მბაიტი) +# 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 = დართული წარწერა დამატებულია +pdfjs-editor-new-alt-text-added-button-label = დართული წარწერა დამატებულია +# This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = აკლია დართული წარწერა +pdfjs-editor-new-alt-text-missing-button-label = აკლია დართული წარწერა +# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = დართული წარწერის გადახედვა +pdfjs-editor-new-alt-text-to-review-button-label = დართული წარწერის გადახედვა +# "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. +# Variables: +# $generatedAltText (String) - the generated alt-text. +pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = შედგენილია ავტომატურად: { $generatedAltText } ## Image alt-text settings +pdfjs-image-alt-text-settings-button = + .title = სურათის დართული წარწერის პარამეტრები +pdfjs-image-alt-text-settings-button-label = სურათის დართული წარწერის პარამეტრები +pdfjs-editor-alt-text-settings-dialog-label = სურათის დართული წარწერის პარამეტრები +pdfjs-editor-alt-text-settings-automatic-title = ავტომატურად დართული წარწერა +pdfjs-editor-alt-text-settings-create-model-button-label = დართული წარწერის ავტომატური შედგენა +pdfjs-editor-alt-text-settings-create-model-description = აღწერს სურათს მათთვის, ვინც ვერ ხედავს ან ვისთანაც ვერ ჩაიტვირთება. +# Variables: +# $totalSize (Number) - the total size (in MB) of the AI model. +pdfjs-editor-alt-text-settings-download-model-label = დართული წარწერის შესადგენი AI-მოდელი ({ $totalSize } მბაიტი) +pdfjs-editor-alt-text-settings-ai-model-description = ეშვება ადგილობრივად თქვენს მოწყობილობასა, ასე რომ მონაცემები დარჩება პირადი. საჭიროა წარწერის ავტომატურად დართვისთვის. +pdfjs-editor-alt-text-settings-delete-model-button = წაშლა +pdfjs-editor-alt-text-settings-download-model-button = ჩამოტვირთვა +pdfjs-editor-alt-text-settings-downloading-model-button = ჩამოიტვრითება... +pdfjs-editor-alt-text-settings-editor-title = დართული წარწერის ჩამსწორებელი +pdfjs-editor-alt-text-settings-show-dialog-button-label = გამოჩნდეს დართული წარწერის ჩამსწორებელი სურათის დამატებისთანავე +pdfjs-editor-alt-text-settings-show-dialog-description = უზრუნველყოფს, რომ თქვენს ყველა სურათს ახლდეს დართული წარწერა. +pdfjs-editor-alt-text-settings-close-button = დახურვა + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = მონიშვნა მოცილებულია +pdfjs-editor-undo-bar-message-freetext = წარწერა მოცილებულია +pdfjs-editor-undo-bar-message-ink = ნახატი მოცილებულია +pdfjs-editor-undo-bar-message-stamp = სურათი მოცილებულია +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } შენიშვნა მოცილებულია + *[other] { $count } შენიშვნა მოცილებულია + } +pdfjs-editor-undo-bar-undo-button = + .title = დაბრუნება +pdfjs-editor-undo-bar-undo-button-label = დაბრუნება +pdfjs-editor-undo-bar-close-button = + .title = დახურვა +pdfjs-editor-undo-bar-close-button-label = დახურვა diff --git a/viewer/locale/kk/viewer.ftl b/viewer/locale/kk/viewer.ftl index 28a89962..fb14226e 100644 --- a/viewer/locale/kk/viewer.ftl +++ b/viewer/locale/kk/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Суретті қосу pdfjs-editor-free-highlight-thickness-input = Қалыңдығы pdfjs-editor-free-highlight-thickness-title = .title = Мәтіннен басқа элементтерді ерекшелеу кезінде қалыңдықты өзгерту +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Мәтін түзеткіші + .default-content = Теріп бастаңыз… pdfjs-free-text = .aria-label = Мәтін түзеткіші pdfjs-free-text-default-content = Теруді бастау… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Балама мәтін +pdfjs-editor-alt-text-edit-button = + .aria-label = Балама мәтінді өңдеу pdfjs-editor-alt-text-edit-button-label = Балама мәтінді өңдеу pdfjs-editor-alt-text-dialog-label = Опцияны таңдау pdfjs-editor-alt-text-dialog-description = Балама мәтін адамдар суретті көре алмағанда немесе ол жүктелмегенде көмектеседі. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Декоративті деп бел # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Мысалы, "Жас жігіт тамақ ішу үшін үстел басына отырады" +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Балама мәтін ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Жабу pdfjs-editor-new-alt-text-ai-model-downloading-progress = Балама мәтін үшін ЖИ моделі жүктеп алынуда ({ $downloadedSize }/{ $totalSize } МБ) .aria-valuetext = Балама мәтін үшін ЖИ моделі жүктеп алынуда ({ $downloadedSize }/{ $totalSize } МБ) # 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 = Балама мәтін қосылды pdfjs-editor-new-alt-text-added-button-label = Балама мәтін қосылды # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Балама мәтін жоқ pdfjs-editor-new-alt-text-missing-button-label = Балама мәтін жоқ # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Балама мәтінге пікір қалдыру pdfjs-editor-new-alt-text-to-review-button-label = Балама мәтінге пікір қалдыру # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Баламалы мәтін ред pdfjs-editor-alt-text-settings-show-dialog-button-label = Суретті қосқанда балама мәтін редакторын бірден көрсету pdfjs-editor-alt-text-settings-show-dialog-description = Барлық суреттерде балама мәтін бар екеніне көз жеткізуге көмектеседі. pdfjs-editor-alt-text-settings-close-button = Жабу + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Ерекшелеу өшірілді +pdfjs-editor-undo-bar-message-freetext = Мәтін өшірілді +pdfjs-editor-undo-bar-message-ink = Сызба өшірілді +pdfjs-editor-undo-bar-message-stamp = Сурет өшірілді +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } анимация өшірілді + *[other] { $count } анимация өшірілді + } +pdfjs-editor-undo-bar-undo-button = + .title = Болдырмау +pdfjs-editor-undo-bar-undo-button-label = Болдырмау +pdfjs-editor-undo-bar-close-button = + .title = Жабу +pdfjs-editor-undo-bar-close-button-label = Жабу diff --git a/viewer/locale/ko/viewer.ftl b/viewer/locale/ko/viewer.ftl index ee20d78d..a321a110 100644 --- a/viewer/locale/ko/viewer.ftl +++ b/viewer/locale/ko/viewer.ftl @@ -335,6 +335,10 @@ pdfjs-editor-stamp-add-image-button-label = 이미지 추가 pdfjs-editor-free-highlight-thickness-input = 두께 pdfjs-editor-free-highlight-thickness-title = .title = 텍스트 이외의 항목을 강조 표시할 때 두께 변경 +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = 텍스트 편집기 + .default-content = 입력을 시작하세요… pdfjs-free-text = .aria-label = 텍스트 편집기 pdfjs-free-text-default-content = 입력하세요… @@ -345,8 +349,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = 대체 텍스트 +pdfjs-editor-alt-text-edit-button = + .aria-label = 대체 텍스트 편집 pdfjs-editor-alt-text-edit-button-label = 대체 텍스트 편집 pdfjs-editor-alt-text-dialog-label = 옵션을 선택하세요 pdfjs-editor-alt-text-dialog-description = 대체 텍스트는 사람들이 이미지를 볼 수 없거나 이미지가 로드되지 않을 때 도움이 됩니다. @@ -360,6 +365,9 @@ pdfjs-editor-alt-text-decorative-tooltip = 장식용으로 표시됨 # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = 예를 들어, “한 청년이 식탁에 앉아 식사를 하고 있습니다.” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = 대체 텍스트 ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -441,10 +449,16 @@ pdfjs-editor-new-alt-text-error-close-button = 닫기 pdfjs-editor-new-alt-text-ai-model-downloading-progress = 대체 텍스트 AI 모델 다운로드 중 ({ $downloadedSize } / { $totalSize } MB) .aria-valuetext = 대체 텍스트 AI 모델 다운로드 중 ({ $downloadedSize } / { $totalSize } 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 = 대체 텍스트 추가됨 pdfjs-editor-new-alt-text-added-button-label = 대체 텍스트 추가됨 # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = 대체 텍스트 누락 pdfjs-editor-new-alt-text-missing-button-label = 대체 텍스트 누락 # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = 대체 텍스트 검토 pdfjs-editor-new-alt-text-to-review-button-label = 대체 텍스트 검토 # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -471,3 +485,19 @@ pdfjs-editor-alt-text-settings-editor-title = 대체 텍스트 편집기 pdfjs-editor-alt-text-settings-show-dialog-button-label = 이미지 추가 시 바로 대체 텍스트 편집기 표시 pdfjs-editor-alt-text-settings-show-dialog-description = 모든 이미지에 대체 텍스트가 있는지 확인하는 데 도움이 됩니다. pdfjs-editor-alt-text-settings-close-button = 닫기 + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = 강조 표시 제거됨 +pdfjs-editor-undo-bar-message-freetext = 텍스트 제거됨 +pdfjs-editor-undo-bar-message-ink = 그리기 제거됨 +pdfjs-editor-undo-bar-message-stamp = 이미지 제거됨 +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = 주석 { $count }개 제거됨 +pdfjs-editor-undo-bar-undo-button = + .title = 실행 취소 +pdfjs-editor-undo-bar-undo-button-label = 실행 취소 +pdfjs-editor-undo-bar-close-button = + .title = 닫기 +pdfjs-editor-undo-bar-close-button-label = 닫기 diff --git a/viewer/locale/nb-NO/viewer.ftl b/viewer/locale/nb-NO/viewer.ftl index d802ebcc..a6441571 100644 --- a/viewer/locale/nb-NO/viewer.ftl +++ b/viewer/locale/nb-NO/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Legg til bilde pdfjs-editor-free-highlight-thickness-input = Tykkelse pdfjs-editor-free-highlight-thickness-title = .title = Endre tykkelse når du markerer andre elementer enn tekst +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Tekstredigering + .default-content = Begynn å skrive… pdfjs-free-text = .aria-label = Tekstredigering pdfjs-free-text-default-content = Begynn å skrive… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alt-tekst +pdfjs-editor-alt-text-edit-button = + .aria-label = Rediger alt-tekst pdfjs-editor-alt-text-edit-button-label = Rediger alt-tekst tekst pdfjs-editor-alt-text-dialog-label = Velg et alternativ pdfjs-editor-alt-text-dialog-description = Alt-tekst (alternativ tekst) hjelper når folk ikke kan se bildet eller når det ikke lastes inn. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Merket som dekorativ # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = For eksempel, «En ung mann setter seg ved et bord for å spise et måltid» +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alt-tekst ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Lukk pdfjs-editor-new-alt-text-ai-model-downloading-progress = Laster ned alternativ tekst AI-modell ({ $downloadedSize } av { $totalSize } MB) .aria-valuetext = Laster ned alternativ tekst AI-modell ({ $downloadedSize } av { $totalSize } 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 = Alt-tekst lagt til pdfjs-editor-new-alt-text-added-button-label = Alternativ tekst lagt til # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Mangler alt-tekst pdfjs-editor-new-alt-text-missing-button-label = Mangler alternativ tekst # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Gjennomgå alt-tekst pdfjs-editor-new-alt-text-to-review-button-label = Gjennomgå alternativ tekst # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: diff --git a/viewer/locale/nl/viewer.ftl b/viewer/locale/nl/viewer.ftl index 7b162e42..fe24ce75 100644 --- a/viewer/locale/nl/viewer.ftl +++ b/viewer/locale/nl/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Afbeelding toevoegen pdfjs-editor-free-highlight-thickness-input = Dikte pdfjs-editor-free-highlight-thickness-title = .title = Dikte wijzigen bij accentuering van andere items dan tekst +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Tekstbewerker + .default-content = Start met typen… pdfjs-free-text = .aria-label = Tekstbewerker pdfjs-free-text-default-content = Begin met typen… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternatieve tekst +pdfjs-editor-alt-text-edit-button = + .aria-label = Alternatieve tekst bewerken pdfjs-editor-alt-text-edit-button-label = Alternatieve tekst bewerken pdfjs-editor-alt-text-dialog-label = Kies een optie pdfjs-editor-alt-text-dialog-description = Alternatieve tekst helpt wanneer mensen de afbeelding niet kunnen zien of wanneer deze niet wordt geladen. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Als decoratief gemarkeerd # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Bijvoorbeeld: ‘Een jonge man gaat aan een tafel zitten om te eten’ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternatieve tekst ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Sluiten pdfjs-editor-new-alt-text-ai-model-downloading-progress = AI-model voor alternatieve tekst downloaden ({ $downloadedSize } van { $totalSize } MB) .aria-valuetext = AI-model voor alternatieve tekst downloaden ({ $downloadedSize } van { $totalSize } 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 = Alternatieve tekst toegevoegd pdfjs-editor-new-alt-text-added-button-label = Alternatieve tekst toegevoegd # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Alternatieve tekst ontbreekt pdfjs-editor-new-alt-text-missing-button-label = Alternatieve tekst ontbreekt # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Alternatieve tekst beoordelen pdfjs-editor-new-alt-text-to-review-button-label = Alternatieve tekst beoordelen # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Alternatieve-tekstbewerker pdfjs-editor-alt-text-settings-show-dialog-button-label = Alternatieve-tekstbewerker meteen tonen bij toevoegen van een afbeelding pdfjs-editor-alt-text-settings-show-dialog-description = Helpt u ervoor te zorgen dat al uw afbeeldingen alternatieve tekst hebben. pdfjs-editor-alt-text-settings-close-button = Sluiten + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Markering verwijderd +pdfjs-editor-undo-bar-message-freetext = Tekst verwijderd +pdfjs-editor-undo-bar-message-ink = Tekening verwijderd +pdfjs-editor-undo-bar-message-stamp = Afbeelding verwijderd +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotatie verwijderd + *[other] { $count } annotaties verwijderd + } +pdfjs-editor-undo-bar-undo-button = + .title = Ongedaan maken +pdfjs-editor-undo-bar-undo-button-label = Ongedaan maken +pdfjs-editor-undo-bar-close-button = + .title = Sluiten +pdfjs-editor-undo-bar-close-button-label = Sluiten diff --git a/viewer/locale/nn-NO/viewer.ftl b/viewer/locale/nn-NO/viewer.ftl index 3044c57b..d617e16a 100644 --- a/viewer/locale/nn-NO/viewer.ftl +++ b/viewer/locale/nn-NO/viewer.ftl @@ -334,15 +334,19 @@ pdfjs-editor-remove-highlight-button = pdfjs-editor-free-text-color-input = Farge pdfjs-editor-free-text-size-input = Storleik pdfjs-editor-ink-color-input = Farge -pdfjs-editor-ink-thickness-input = Tjukkleik +pdfjs-editor-ink-thickness-input = Tjukn pdfjs-editor-ink-opacity-input = Ugjennomskinleg pdfjs-editor-stamp-add-image-button = .title = Legg til bilde pdfjs-editor-stamp-add-image-button-label = Legg til bilde # This refers to the thickness of the line used for free highlighting (not bound to text) -pdfjs-editor-free-highlight-thickness-input = Tjukkleik +pdfjs-editor-free-highlight-thickness-input = Tjukn pdfjs-editor-free-highlight-thickness-title = .title = Endre tjukn når du markerer andre element enn tekst +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Tekstredigering + .default-content = Begynn å skrive… pdfjs-free-text = .aria-label = Tekstredigering pdfjs-free-text-default-content = Byrje å skrive… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alt-tekst +pdfjs-editor-alt-text-edit-button = + .aria-label = Rediger alt-tekst tekst pdfjs-editor-alt-text-edit-button-label = Rediger alt-tekst tekst pdfjs-editor-alt-text-dialog-label = Vel eit alternativ pdfjs-editor-alt-text-dialog-description = Alt-tekst (alternativ tekst) hjelper når folk ikkje kan sjå bildet eller når det ikkje vert lasta inn. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Merkt som dekorativ # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Til dømes, «Ein ung mann set seg ved eit bord for å ete eit måltid» +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alt-tekst ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Lat att pdfjs-editor-new-alt-text-ai-model-downloading-progress = Lastar ned AI-modell med alternativ tekst ({ $downloadedSize } av { $totalSize } MB) .aria-valuetext = Lastar ned AI-modell med alternativ tekst ({ $downloadedSize } av { $totalSize } 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 = Alternativ tekst lagt til pdfjs-editor-new-alt-text-added-button-label = Alternativ tekst lagt til # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Manglande alternativ tekst pdfjs-editor-new-alt-text-missing-button-label = Manglande alternativ tekst # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Vurder alternativ tekst pdfjs-editor-new-alt-text-to-review-button-label = Vurder alternativ tekst # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,6 @@ pdfjs-editor-alt-text-settings-editor-title = Alternativ tekst-redigerar pdfjs-editor-alt-text-settings-show-dialog-button-label = Vis alternativ tekst-redigerar direkte når du legg til eit bilde pdfjs-editor-alt-text-settings-show-dialog-description = Hjelper deg med å sørgje for at alle bilda dine har alternativ tekst. pdfjs-editor-alt-text-settings-close-button = Lat att + +## "Annotations removed" bar + diff --git a/viewer/locale/oc/viewer.ftl b/viewer/locale/oc/viewer.ftl index 76bef4fe..b347aefc 100644 --- a/viewer/locale/oc/viewer.ftl +++ b/viewer/locale/oc/viewer.ftl @@ -220,6 +220,21 @@ pdfjs-find-match-diacritics-checkbox-label = Respectar los diacritics pdfjs-find-entire-word-checkbox-label = Mots entièrs pdfjs-find-reached-top = Naut de la pagina atenh, perseguida del bas pdfjs-find-reached-bottom = Bas de la pagina atench, perseguida al començament +# Variables: +# $current (Number) - the index of the currently active find result +# $total (Number) - the total number of matches in the document +pdfjs-find-match-count = + { $total -> + [one] Ocurréncia { $current } de { $total } + *[other] Ocurréncia { $current } de { $total } + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Mai de { $limit } ocurréncia + *[other] Mai de { $limit } ocurréncias + } pdfjs-find-not-found = Frasa pas trobada ## Predefined zoom values @@ -260,6 +275,9 @@ pdfjs-annotation-date-string = { $date } a { $time } # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [Anotacion { $type }] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -312,6 +330,10 @@ pdfjs-editor-stamp-add-image-button = pdfjs-editor-stamp-add-image-button-label = Apondre imatge # This refers to the thickness of the line used for free highlighting (not bound to text) pdfjs-editor-free-highlight-thickness-input = Espessor +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor de tèxte + .default-content = Començatz de picar… pdfjs-free-text = .aria-label = Editor de tèxte pdfjs-free-text-default-content = Començatz d’escriure… @@ -322,7 +344,6 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Tèxt alternatiu pdfjs-editor-alt-text-edit-button-label = Modificar lo tèxt alternatiu pdfjs-editor-alt-text-dialog-label = Causir una opcion @@ -359,3 +380,30 @@ pdfjs-editor-colorpicker-red = pdfjs-editor-highlight-show-all-button-label = O afichar tot pdfjs-editor-highlight-show-all-button = .title = O afichar tot + +## 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-error-close-button = Tampar + +## Image alt-text settings + +pdfjs-editor-alt-text-settings-automatic-title = Tèxte alternatiu automatic +pdfjs-editor-alt-text-settings-create-model-button-label = Crear un tèxte alternatiu automaticament +pdfjs-editor-alt-text-settings-delete-model-button = Suprimir +pdfjs-editor-alt-text-settings-download-model-button = Telecargar +pdfjs-editor-alt-text-settings-downloading-model-button = Telecargament… +pdfjs-editor-alt-text-settings-editor-title = Editor de tèxte alternatiu +pdfjs-editor-alt-text-settings-close-button = Tampar + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-freetext = Tèxte suprimit +pdfjs-editor-undo-bar-message-ink = Dessenh suprimit +pdfjs-editor-undo-bar-message-stamp = Imatge suprimit +pdfjs-editor-undo-bar-undo-button = + .title = Anullar +pdfjs-editor-undo-bar-undo-button-label = Anullar +pdfjs-editor-undo-bar-close-button = + .title = Tampar +pdfjs-editor-undo-bar-close-button-label = Tampar diff --git a/viewer/locale/pa-IN/viewer.ftl b/viewer/locale/pa-IN/viewer.ftl index f977edf2..10a61124 100644 --- a/viewer/locale/pa-IN/viewer.ftl +++ b/viewer/locale/pa-IN/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = ਚਿੱਤਰ ਜੋੜੋ pdfjs-editor-free-highlight-thickness-input = ਮੋਟਾਈ pdfjs-editor-free-highlight-thickness-title = .title = ਚੀਜ਼ਾਂ ਨੂੰ ਹੋਰ ਲਿਖਤਾਂ ਤੋਂ ਉਘਾੜਨ ਸਮੇਂ ਮੋਟਾਈ ਨੂੰ ਬਦਲੋ +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = ਲਿਖਤ ਐਡੀਟਰ + .default-content = …ਲਿਖਣਾ ਸ਼ੁਰੂ ਕਰੋ pdfjs-free-text = .aria-label = ਲਿਖਤ ਐਡੀਟਰ pdfjs-free-text-default-content = …ਲਿਖਣਾ ਸ਼ੁਰੂ ਕਰੋ @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = ਬਦਲਵੀਂ ਲਿਖਤ +pdfjs-editor-alt-text-edit-button = + .aria-label = ਬਦਲਵੀ ਲਿਖਤ ਨੂੰ ਸੋਧੋ pdfjs-editor-alt-text-edit-button-label = ਬਦਲਵੀ ਲਿਖਤ ਨੂੰ ਸੋਧੋ pdfjs-editor-alt-text-dialog-label = ਚੋਣ ਕਰੋ pdfjs-editor-alt-text-dialog-description = ਚਿੱਤਰ ਨਾ ਦਿੱਸਣ ਜਾਂ ਲੋਡ ਨਾ ਹੋਣ ਦੀ ਹਾਲਤ ਵਿੱਚ Alt ਲਿਖਤ (ਬਦਲਵੀਂ ਲਿਖਤ) ਲੋਕਾਂ ਲਈ ਮਦਦਗਾਰ ਹੁੰਦੀ ਹੈ। @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = ਸਜਾਵਟ ਵਜੋਂ ਨਿ # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = ਮਿਸਾਲ ਵਜੋਂ, “ਗੱਭਰੂ ਭੋਜਨ ਲੈ ਕੇ ਮੇਜ਼ ਉੱਤੇ ਬੈਠਾ ਹੈ” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = ਬਦਲਵੀਂ ਲਿਖਤ ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = ਬੰਦ ਕਰੋ pdfjs-editor-new-alt-text-ai-model-downloading-progress = ਬਦਲਵਾਂ ਲਿਖਤ AI ਮਾਡਲ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ ({ $totalSize } MB ਵਿੱਚੋਂ { $downloadedSize }) .aria-valuetext = ਬਦਲਵਾਂ ਲਿਖਤ AI ਮਾਡਲ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ ({ $totalSize } MB ਵਿੱਚੋਂ { $downloadedSize }) # 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 = ਬਦਲਵੀਂ ਲਿਖਤ ਜੋੜੀ pdfjs-editor-new-alt-text-added-button-label = ਬਦਲਵੀਂ ਲਿਖਤ ਜੋੜੀ # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = ਬਦਲਵਾਂ ਲਿਖਤ ਗੁੰਮ ਹੈ pdfjs-editor-new-alt-text-missing-button-label = ਬਦਲਵਾਂ ਲਿਖਤ ਗੁੰਮ ਹੈ # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = ਬਦਲਵੀਂ ਲਿਖਤ ਦਾ ਰੀਵਿਊ ਕਰੋ pdfjs-editor-new-alt-text-to-review-button-label = ਬਦਲਵੀਂ ਲਿਖਤ ਦਾ ਰੀਵਿਊ ਕਰੋ # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = ਬਦਲਵੀਂ ਲਿਖਤ pdfjs-editor-alt-text-settings-show-dialog-button-label = ਜਦੋਂ ਵਿੱਚ ਚਿੱਤਰ ਜੋੜਿਆ ਜਾਵੇ ਤਾਂ ਫ਼ੌਰਨ ਬਦਲਵੀ ਲਿਖਤ ਸੰਪਾਦਕ ਵੇਖਾਓ pdfjs-editor-alt-text-settings-show-dialog-description = ਤੁਹਾਡੀ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਸਾਰੇ ਚਿੱਤਰਾਂ ਲਈ ਬਦਲਵੀਂ ਲਿਖਤ ਮੌਜੂਦ ਹੋਵੇ। pdfjs-editor-alt-text-settings-close-button = ਬੰਦ ਕਰੋ + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = ਹਾਈਲਾਈਟ ਨੂੰ ਹਟਾਇਆ ਗਿਆ +pdfjs-editor-undo-bar-message-freetext = ਲਿਖਤ ਨੂੰ ਹਟਾਇਆ ਗਿਆ +pdfjs-editor-undo-bar-message-ink = ਡਰਾਇੰਗ ਨੂੰ ਹਟਾਇਆ ਗਿਆ +pdfjs-editor-undo-bar-message-stamp = ਚਿੱਤਰ ਨੂੰ ਹਟਾਇਆ ਗਿਆ +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } ਵਿਆਖਿਆ ਨੂੰ ਹਟਾਇਆ + *[other] { $count } ਵਿਆਖਿਆਵਾਂ ਨੂੰ ਹਟਾਇਆ + } +pdfjs-editor-undo-bar-undo-button = + .title = ਵਾਪਸ +pdfjs-editor-undo-bar-undo-button-label = ਵਾਪਸ +pdfjs-editor-undo-bar-close-button = + .title = ਬੰਦ ਕਰੋ +pdfjs-editor-undo-bar-close-button-label = ਬੰਦ ਕਰੋ diff --git a/viewer/locale/pl/viewer.ftl b/viewer/locale/pl/viewer.ftl index 5ed53a29..07f94166 100644 --- a/viewer/locale/pl/viewer.ftl +++ b/viewer/locale/pl/viewer.ftl @@ -345,6 +345,10 @@ pdfjs-editor-stamp-add-image-button-label = Dodaj obraz pdfjs-editor-free-highlight-thickness-input = Grubość pdfjs-editor-free-highlight-thickness-title = .title = Zmień grubość podczas wyróżniania elementów innych niż tekst +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Edytor tekstu + .default-content = Zacznij pisać… pdfjs-free-text = .aria-label = Edytor tekstu pdfjs-free-text-default-content = Zacznij pisać… @@ -355,8 +359,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Tekst alternatywny +pdfjs-editor-alt-text-edit-button = + .aria-label = Edytuj tekst alternatywny pdfjs-editor-alt-text-edit-button-label = Edytuj tekst alternatywny pdfjs-editor-alt-text-dialog-label = Wybierz opcję pdfjs-editor-alt-text-dialog-description = Tekst alternatywny pomaga, kiedy ktoś nie może zobaczyć obrazu lub gdy się nie wczytuje. @@ -370,6 +375,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Oznaczone jako dekoracyjne # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Na przykład: „Młody człowiek siada przy stole, aby zjeść posiłek” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Tekst alternatywny ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -451,10 +459,16 @@ pdfjs-editor-new-alt-text-error-close-button = Zamknij pdfjs-editor-new-alt-text-ai-model-downloading-progress = Pobieranie modelu SI tekstu alternatywnego ({ $downloadedSize } z { $totalSize } MB) .aria-valuetext = Pobieranie modelu SI tekstu alternatywnego ({ $downloadedSize } z { $totalSize } 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 = Dodano tekst alternatywny pdfjs-editor-new-alt-text-added-button-label = Dodano tekst alternatywny # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Brak tekstu alternatywnego pdfjs-editor-new-alt-text-missing-button-label = Brak tekstu alternatywnego # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Przejrzyj tekst alternatywny pdfjs-editor-new-alt-text-to-review-button-label = Przejrzyj tekst alternatywny # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -481,3 +495,24 @@ pdfjs-editor-alt-text-settings-editor-title = Edytor tekstu alternatywnego pdfjs-editor-alt-text-settings-show-dialog-button-label = Wyświetlanie edytora tekstu alternatywnego od razu po dodaniu obrazu pdfjs-editor-alt-text-settings-show-dialog-description = Pomaga upewnić się, że wszystkie obrazy mają tekst alternatywny. pdfjs-editor-alt-text-settings-close-button = Zamknij + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Usunięto wyróżnienie +pdfjs-editor-undo-bar-message-freetext = Usunięto tekst +pdfjs-editor-undo-bar-message-ink = Usunięto rysunek +pdfjs-editor-undo-bar-message-stamp = Usunięto obraz +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] Usunięto przypis + [few] Usunięto { $count } przypisy + *[many] Usunięto { $count } przypisów + } +pdfjs-editor-undo-bar-undo-button = + .title = Cofnij +pdfjs-editor-undo-bar-undo-button-label = Cofnij +pdfjs-editor-undo-bar-close-button = + .title = Zamknij +pdfjs-editor-undo-bar-close-button-label = Zamknij diff --git a/viewer/locale/pt-BR/viewer.ftl b/viewer/locale/pt-BR/viewer.ftl index 3205411a..7da52019 100644 --- a/viewer/locale/pt-BR/viewer.ftl +++ b/viewer/locale/pt-BR/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Adicionar imagem pdfjs-editor-free-highlight-thickness-input = Espessura pdfjs-editor-free-highlight-thickness-title = .title = Mudar espessura ao destacar itens que não são texto +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor de texto + .default-content = Comece a digitar… pdfjs-free-text = .aria-label = Editor de texto pdfjs-free-text-default-content = Comece digitando… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Texto alternativo +pdfjs-editor-alt-text-edit-button = + .aria-label = Editar texto alternativo pdfjs-editor-alt-text-edit-button-label = Editar texto alternativo pdfjs-editor-alt-text-dialog-label = Escolha uma opção pdfjs-editor-alt-text-dialog-description = O texto alternativo ajuda quando uma imagem não aparece ou não é carregada. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcado como decorativa # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Por exemplo, “Um jovem senta-se à mesa para comer uma refeição” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Texto alternativo ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Fechar pdfjs-editor-new-alt-text-ai-model-downloading-progress = Baixando modelo de inteligência artificial de texto alternativo ({ $downloadedSize } de { $totalSize } MB) .aria-valuetext = Baixando modelo de inteligência artificial de texto alternativo ({ $downloadedSize } de { $totalSize } 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 = Texto alternativo adicionado pdfjs-editor-new-alt-text-added-button-label = Texto alternativo adicionado # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Falta texto alternativo pdfjs-editor-new-alt-text-missing-button-label = Falta texto alternativo # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Revisar texto alternativo pdfjs-editor-new-alt-text-to-review-button-label = Revisar texto alternativo # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo pdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar o editor de texto alternativo imediatamente ao adicionar uma imagem pdfjs-editor-alt-text-settings-show-dialog-description = Ajuda a assegurar que todas as suas imagens tenham texto alternativo. pdfjs-editor-alt-text-settings-close-button = Fechar + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Destaque removido +pdfjs-editor-undo-bar-message-freetext = Texto removido +pdfjs-editor-undo-bar-message-ink = Desenho removido +pdfjs-editor-undo-bar-message-stamp = Imagem removida +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anotação removida + *[other] { $count } anotações removidas + } +pdfjs-editor-undo-bar-undo-button = + .title = Desfazer +pdfjs-editor-undo-bar-undo-button-label = Desfazer +pdfjs-editor-undo-bar-close-button = + .title = Fechar +pdfjs-editor-undo-bar-close-button-label = Fechar diff --git a/viewer/locale/pt-PT/viewer.ftl b/viewer/locale/pt-PT/viewer.ftl index 4184c0aa..1829417e 100644 --- a/viewer/locale/pt-PT/viewer.ftl +++ b/viewer/locale/pt-PT/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Adicionar imagem pdfjs-editor-free-highlight-thickness-input = Espessura pdfjs-editor-free-highlight-thickness-title = .title = Alterar espessura quando destacar itens que não sejam texto +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editor de texto + .default-content = Comece a escrever… pdfjs-free-text = .aria-label = Editor de texto pdfjs-free-text-default-content = Começar a digitar… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Texto alternativo +pdfjs-editor-alt-text-edit-button = + .aria-label = Editar texto alternativo pdfjs-editor-alt-text-edit-button-label = Editar texto alternativo pdfjs-editor-alt-text-dialog-label = Escolher uma opção pdfjs-editor-alt-text-dialog-description = O texto alternativo (texto alternativo) ajuda quando as pessoas não conseguem ver a imagem ou quando a mesma não é carregada. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcada como decorativa # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Por exemplo, “Um jovem senta-se à mesa para comer uma refeição” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Texto alternativo ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Fechar pdfjs-editor-new-alt-text-ai-model-downloading-progress = A transferir o modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB) .aria-valuetext = A transferir o modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } 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 = Texto alternativo adicionado pdfjs-editor-new-alt-text-added-button-label = Texto alternativo adicionado # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Texto alternativo em falta pdfjs-editor-new-alt-text-missing-button-label = Texto alternativo em falta # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Rever texto alternativo pdfjs-editor-new-alt-text-to-review-button-label = Rever texto alternativo # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo pdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar editor de texto alternativo imediatamente ao adicionar uma imagem pdfjs-editor-alt-text-settings-show-dialog-description = Ajuda a garantir que todas as suas imagens tenham um texto alternativo. pdfjs-editor-alt-text-settings-close-button = Fechar + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Destaque removido +pdfjs-editor-undo-bar-message-freetext = Texto removido +pdfjs-editor-undo-bar-message-ink = Desenho removido +pdfjs-editor-undo-bar-message-stamp = Imagem removida +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anotação removida + *[other] { $count } anotações removidas + } +pdfjs-editor-undo-bar-undo-button = + .title = Anular +pdfjs-editor-undo-bar-undo-button-label = Anular +pdfjs-editor-undo-bar-close-button = + .title = Fechar +pdfjs-editor-undo-bar-close-button-label = Fechar diff --git a/viewer/locale/rm/viewer.ftl b/viewer/locale/rm/viewer.ftl index 2c28eedd..76992dad 100644 --- a/viewer/locale/rm/viewer.ftl +++ b/viewer/locale/rm/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Agiuntar in maletg pdfjs-editor-free-highlight-thickness-input = Grossezza pdfjs-editor-free-highlight-thickness-title = .title = Midar la grossezza cun relevar elements betg textuals +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Editur da text + .default-content = Cumenza a tippar… pdfjs-free-text = .aria-label = Editur da text pdfjs-free-text-default-content = Cumenzar a tippar… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Text alternativ +pdfjs-editor-alt-text-edit-button = + .aria-label = Modifitgar il text alternativ pdfjs-editor-alt-text-edit-button-label = Modifitgar il text alternativ pdfjs-editor-alt-text-dialog-label = Tscherner ina opziun pdfjs-editor-alt-text-dialog-description = Il text alternativ (alt text) gida en cas che persunas na vesan betg il maletg u sch'i na reussescha betg d'al chargiar. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Marcà sco decorativ # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Per exempel: «In um giuven sesa a maisa per mangiar in past» +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Text alternativ ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Serrar pdfjs-editor-new-alt-text-ai-model-downloading-progress = Telechargiar il model IA da text alternativ ({ $downloadedSize } da { $totalSize } MB) .aria-valuetext = Telechargiar il model IA da text alternativ ({ $downloadedSize } da { $totalSize } 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 = Agiuntà text alternativ pdfjs-editor-new-alt-text-added-button-label = Text alternativ agiuntà # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Text alternativ manca pdfjs-editor-new-alt-text-missing-button-label = Text alternativ manca # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Repassar il text alternativ pdfjs-editor-new-alt-text-to-review-button-label = Repassar il text alternativ # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Editur per text alternativ pdfjs-editor-alt-text-settings-show-dialog-button-label = Mussar l’editur per text alternativ directamain cun agiuntar in maletg pdfjs-editor-alt-text-settings-show-dialog-description = Ta gida a garantir che tut tes maletgs hajan in text alternativ. pdfjs-editor-alt-text-settings-close-button = Serrar + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Allontanà la marcaziun +pdfjs-editor-undo-bar-message-freetext = Allontanà il text +pdfjs-editor-undo-bar-message-ink = Allontanà il dissegn +pdfjs-editor-undo-bar-message-stamp = Allontanà il maletg +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotaziun allontanada + *[other] { $count } annotaziuns allontanadas + } +pdfjs-editor-undo-bar-undo-button = + .title = Revocar +pdfjs-editor-undo-bar-undo-button-label = Revocar +pdfjs-editor-undo-bar-close-button = + .title = Serrar +pdfjs-editor-undo-bar-close-button-label = Serrar diff --git a/viewer/locale/ru/viewer.ftl b/viewer/locale/ru/viewer.ftl index fa311702..81c2f416 100644 --- a/viewer/locale/ru/viewer.ftl +++ b/viewer/locale/ru/viewer.ftl @@ -345,6 +345,10 @@ pdfjs-editor-stamp-add-image-button-label = Добавить изображен pdfjs-editor-free-highlight-thickness-input = Толщина pdfjs-editor-free-highlight-thickness-title = .title = Изменить толщину при выделении элементов, кроме текста +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Текстовый редактор + .default-content = Начните ввод... pdfjs-free-text = .aria-label = Текстовый редактор pdfjs-free-text-default-content = Начните вводить… @@ -355,8 +359,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Альтернативный текст +pdfjs-editor-alt-text-edit-button = + .aria-label = Изменить альтернативный текст pdfjs-editor-alt-text-edit-button-label = Изменить альтернативный текст pdfjs-editor-alt-text-dialog-label = Выберите вариант pdfjs-editor-alt-text-dialog-description = Альтернативный текст помогает, когда люди не видят изображение или оно не загружается. @@ -370,6 +375,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Помечен как декорат # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Например: «Молодой человек садится за стол, чтобы поесть» +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Альтернативный текст ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -451,10 +459,16 @@ pdfjs-editor-new-alt-text-error-close-button = Закрыть pdfjs-editor-new-alt-text-ai-model-downloading-progress = Загрузка модели ИИ для альтернативного текста ({ $downloadedSize } из { $totalSize } МБ) .aria-valuetext = Загрузка модели ИИ для альтернативного текста ({ $downloadedSize } из { $totalSize } МБ) # 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 = Альтернативный текст добавлен pdfjs-editor-new-alt-text-added-button-label = Альтернативный текст добавлен # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Отсутствует альтернативный текст pdfjs-editor-new-alt-text-missing-button-label = Отсутствует альтернативный текст # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Оценить альтернативный текст pdfjs-editor-new-alt-text-to-review-button-label = Оценить альтернативный текст # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -481,3 +495,24 @@ pdfjs-editor-alt-text-settings-editor-title = Редактор альтерна pdfjs-editor-alt-text-settings-show-dialog-button-label = Сразу показывать редактор альтернативного текста при добавлении изображения pdfjs-editor-alt-text-settings-show-dialog-description = Помогает вам убедиться, что все ваши изображения имеют альтернативный текст. pdfjs-editor-alt-text-settings-close-button = Закрыть + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Выделение удалено +pdfjs-editor-undo-bar-message-freetext = Текст удалён +pdfjs-editor-undo-bar-message-ink = Рисунок удалён +pdfjs-editor-undo-bar-message-stamp = Изображение удалено +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } аннотация удалена + [few] { $count } аннотации удалены + *[many] { $count } аннотаций удалены + } +pdfjs-editor-undo-bar-undo-button = + .title = Отменить +pdfjs-editor-undo-bar-undo-button-label = Отменить +pdfjs-editor-undo-bar-close-button = + .title = Закрыть +pdfjs-editor-undo-bar-close-button-label = Закрыть diff --git a/viewer/locale/si/viewer.ftl b/viewer/locale/si/viewer.ftl index 2b3a7027..04811160 100644 --- a/viewer/locale/si/viewer.ftl +++ b/viewer/locale/si/viewer.ftl @@ -182,7 +182,7 @@ pdfjs-find-highlight-checkbox = සියල්ල උද්දීපනය pdfjs-find-entire-word-checkbox-label = සමස්ත වචන pdfjs-find-reached-top = ලේඛනයේ මුදුනට ළඟා විය, පහළ සිට ඉහළට pdfjs-find-reached-bottom = ලේඛනයේ අවසානයට ළඟා විය, ඉහළ සිට පහළට -pdfjs-find-not-found = වැකිකඩ හමු නොවිණි +pdfjs-find-not-found = වැකිකඩ හමු නොවුණි ## Predefined zoom values @@ -230,6 +230,9 @@ pdfjs-editor-free-text-button-label = පෙළ pdfjs-editor-ink-button = .title = අඳින්න pdfjs-editor-ink-button-label = අඳින්න +pdfjs-editor-stamp-button = + .title = රූප සංස්කරණය හෝ එක් කරන්න +pdfjs-editor-stamp-button-label = රූප සංස්කරණය හෝ එක් කරන්න ## Remove button for the various kind of editor. @@ -247,6 +250,7 @@ pdfjs-free-text-default-content = ලිවීීම අරඹන්න… ## Alt-text dialog +pdfjs-editor-alt-text-mark-decorative-description = මෙය දාර හෝ දිය සලකුණු වැනි අලංකාර රූප සඳහා භාවිතා වේ. ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. diff --git a/viewer/locale/sk/viewer.ftl b/viewer/locale/sk/viewer.ftl index 64770178..5cbbb8d2 100644 --- a/viewer/locale/sk/viewer.ftl +++ b/viewer/locale/sk/viewer.ftl @@ -347,6 +347,10 @@ pdfjs-editor-stamp-add-image-button-label = Pridať obrázok pdfjs-editor-free-highlight-thickness-input = Hrúbka pdfjs-editor-free-highlight-thickness-title = .title = Zmeňte hrúbku pre zvýrazňovanie iných položiek ako textu +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Textový editor + .default-content = Začnite písať… pdfjs-free-text = .aria-label = Textový editor pdfjs-free-text-default-content = Začnite písať… @@ -357,8 +361,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternatívny text +pdfjs-editor-alt-text-edit-button = + .aria-label = Upraviť alternatívny text pdfjs-editor-alt-text-edit-button-label = Upraviť alternatívny text pdfjs-editor-alt-text-dialog-label = Vyberte možnosť pdfjs-editor-alt-text-dialog-description = Alternatívny text (alt text) pomáha, keď ľudia obrázok nevidia alebo sa nenačítava. @@ -372,6 +377,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Označený ako dekoratívny # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Napríklad: „Mladý muž si sadá za stôl, aby sa najedol“ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternatívny text ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -453,10 +461,16 @@ pdfjs-editor-new-alt-text-error-close-button = Zavrieť pdfjs-editor-new-alt-text-ai-model-downloading-progress = Sťahuje sa model AI pre alternatívne texty ({ $downloadedSize } z { $totalSize } MB) .aria-valuetext = Sťahuje sa model AI pre alternatívne texty ({ $downloadedSize } z { $totalSize } 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 = Alternatívny text bol pridaný pdfjs-editor-new-alt-text-added-button-label = Alternatívny text bol pridaný # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Chýbajúci alternatívny text pdfjs-editor-new-alt-text-missing-button-label = Chýbajúci alternatívny text # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Skontrolovať alternatívny text pdfjs-editor-new-alt-text-to-review-button-label = Skontrolovať alternatívny text # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -483,3 +497,25 @@ pdfjs-editor-alt-text-settings-editor-title = Editor alternatívneho textu pdfjs-editor-alt-text-settings-show-dialog-button-label = Pri pridávaní obrázka ihneď zobraziť editor alternatívneho textu pdfjs-editor-alt-text-settings-show-dialog-description = Pomáha vám zabezpečiť, aby všetky vaše obrázky mali alternatívny text. pdfjs-editor-alt-text-settings-close-button = Zavrieť + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Zvýraznenie bolo odstránené +pdfjs-editor-undo-bar-message-freetext = Text bol odstránený +pdfjs-editor-undo-bar-message-ink = Kreslenie bolo odstránené +pdfjs-editor-undo-bar-message-stamp = Obrázok bol odstránený +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anotácia odstránená + [few] { $count } anotácie odstránené + [many] { $count } anotácií odstránených + *[other] { $count } anotácií odstránených + } +pdfjs-editor-undo-bar-undo-button = + .title = Späť +pdfjs-editor-undo-bar-undo-button-label = Späť +pdfjs-editor-undo-bar-close-button = + .title = Zavrieť +pdfjs-editor-undo-bar-close-button-label = Zavrieť diff --git a/viewer/locale/skr/viewer.ftl b/viewer/locale/skr/viewer.ftl index 186f6147..2d0e87f3 100644 --- a/viewer/locale/skr/viewer.ftl +++ b/viewer/locale/skr/viewer.ftl @@ -353,7 +353,6 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alt متن pdfjs-editor-alt-text-edit-button-label = alt متن وِچ ترمیم کرو pdfjs-editor-alt-text-dialog-label = ہِک اختیار چُݨو @@ -368,6 +367,9 @@ pdfjs-editor-alt-text-decorative-tooltip = آرائشی دے طور تے نشا # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = مثال دے طور تے، "ہِک جؤان کھاݨاں کھاوݨ کِیتے میز اُتّے ٻیٹھا ہِے" +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alt متن ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +451,16 @@ pdfjs-editor-new-alt-text-error-close-button = بند کرو pdfjs-editor-new-alt-text-ai-model-downloading-progress = آلٹ عبارت اے آئی ماڈل({ $totalSize }ایم بی دے { $downloadedSize }) ڈاؤن لوڈ تھیندا پئے .aria-valuetext = آلٹ عبارت اے آئی ماڈل({ $totalSize }ایم بی دے { $downloadedSize }) ڈاؤن لوڈ تھیندا پئے # 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 = آلٹ عبارت شامل تھی ڳئی pdfjs-editor-new-alt-text-added-button-label = آلٹ عبارت شامل تھی ڳئی # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = متبادل عبارت غائب ہے pdfjs-editor-new-alt-text-missing-button-label = متبادل عبارت غائب ہے # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = alt متن تے نظرثانی کرو pdfjs-editor-new-alt-text-to-review-button-label = alt متن تے نظرثانی کرو # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +487,12 @@ pdfjs-editor-alt-text-settings-editor-title = متبادل ٹیکسٹ ایڈیٹ pdfjs-editor-alt-text-settings-show-dialog-button-label = تصویر شامل کرݨ ویلے فوری طور تے آلٹ ٹیکسٹ ایڈیٹر ݙکھاؤ pdfjs-editor-alt-text-settings-show-dialog-description = ایہ تہاکوں یقینی بݨاوݨ وچ مدد کریندے جو تہاݙیاں ساریاں تصویراں وچ آلٹ عبارت ہے۔ pdfjs-editor-alt-text-settings-close-button = بند کرو + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-undo-button = + .title = کیتا اݨ کیتا +pdfjs-editor-undo-bar-undo-button-label = کیتا اݨ کیتا +pdfjs-editor-undo-bar-close-button = + .title = بند کرو +pdfjs-editor-undo-bar-close-button-label = بند کرو diff --git a/viewer/locale/sl/viewer.ftl b/viewer/locale/sl/viewer.ftl index d30bf3ea..4e004bdd 100644 --- a/viewer/locale/sl/viewer.ftl +++ b/viewer/locale/sl/viewer.ftl @@ -347,6 +347,10 @@ pdfjs-editor-stamp-add-image-button-label = Dodaj sliko pdfjs-editor-free-highlight-thickness-input = Debelina pdfjs-editor-free-highlight-thickness-title = .title = Spremeni debelino pri označevanju nebesedilnih elementov +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Urejevalnik besedila + .default-content = Začnite tipkati … pdfjs-free-text = .aria-label = Urejevalnik besedila pdfjs-free-text-default-content = Začnite tipkati … @@ -357,8 +361,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Nadomestno besedilo +pdfjs-editor-alt-text-edit-button = + .aria-label = Uredi nadomestno besedilo pdfjs-editor-alt-text-edit-button-label = Uredi nadomestno besedilo pdfjs-editor-alt-text-dialog-label = Izberite možnost pdfjs-editor-alt-text-dialog-description = Nadomestno besedilo se prikaže tistim, ki ne vidijo slike, ali če se ta ne naloži. @@ -372,6 +377,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Označeno kot okrasno # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Na primer: "Mladenič sedi za mizo pri jedi" +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Nadomestno besedilo ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -453,10 +461,16 @@ pdfjs-editor-new-alt-text-error-close-button = Zapri pdfjs-editor-new-alt-text-ai-model-downloading-progress = Prenašanje modela UI za nadomestno besedilo ({ $downloadedSize } od { $totalSize } MB) .aria-valuetext = Prenašanje modela UI za nadomestno besedilo ({ $downloadedSize } od { $totalSize } 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 = Nadomestno besedilo dodano pdfjs-editor-new-alt-text-added-button-label = Nadomestno besedilo dodano # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Nadomestno besedilo manjka pdfjs-editor-new-alt-text-missing-button-label = Nadomestno besedilo manjka # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Oceni nadomestno besedilo pdfjs-editor-new-alt-text-to-review-button-label = Oceni nadomestno besedilo # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -483,3 +497,25 @@ pdfjs-editor-alt-text-settings-editor-title = Urejevalnik nadomestnega besedila pdfjs-editor-alt-text-settings-show-dialog-button-label = Ob dodajanju slike takoj prikaži urejevalnik nadomestnega besedila pdfjs-editor-alt-text-settings-show-dialog-description = Pomaga vam zagotoviti, da imajo vse vaše slike nadomestno besedilo. pdfjs-editor-alt-text-settings-close-button = Zapri + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Označba odstranjena +pdfjs-editor-undo-bar-message-freetext = Besedilo odstranjeno +pdfjs-editor-undo-bar-message-ink = Risba odstranjena +pdfjs-editor-undo-bar-message-stamp = Slika odstranjena +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } označba odstranjena + [two] { $count } označbi odstranjeni + [few] { $count } označbe odstranjene + *[other] { $count } označb odstranjenih + } +pdfjs-editor-undo-bar-undo-button = + .title = Razveljavi +pdfjs-editor-undo-bar-undo-button-label = Razveljavi +pdfjs-editor-undo-bar-close-button = + .title = Zapri +pdfjs-editor-undo-bar-close-button-label = Zapri diff --git a/viewer/locale/sq/viewer.ftl b/viewer/locale/sq/viewer.ftl index 9edbe328..2b1c91aa 100644 --- a/viewer/locale/sq/viewer.ftl +++ b/viewer/locale/sq/viewer.ftl @@ -118,6 +118,9 @@ pdfjs-document-properties-keywords = Fjalëkyçe: pdfjs-document-properties-creation-date = Datë Krijimi: pdfjs-document-properties-modification-date = Datë Ndryshimi: # Variables: +# $dateObj (Date) - the creation/modification date and time of the PDF file +pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +# Variables: # $date (Date) - the creation/modification date of the PDF file # $time (Time) - the creation/modification time of the PDF file pdfjs-document-properties-date-string = { $date }, { $time } @@ -274,6 +277,9 @@ pdfjs-annotation-date-string = { $date }, { $time } # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [Nënvizim { $type }] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -328,6 +334,10 @@ pdfjs-editor-stamp-add-image-button-label = Shtoni figurë pdfjs-editor-free-highlight-thickness-input = Trashësi pdfjs-editor-free-highlight-thickness-title = .title = Ndryshoni trashësinë kur theksoni objekte tjetër nga tekst +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Përpunues Tekstesh + .default-content = Filloni të shtypni… pdfjs-free-text = .aria-label = Përpunues Tekstesh pdfjs-free-text-default-content = Filloni të shtypni… @@ -338,8 +348,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Tekst alternativ +pdfjs-editor-alt-text-edit-button = + .aria-label = Përpunoni tekst alternativ pdfjs-editor-alt-text-edit-button-label = Përpunoni tekst alternativ pdfjs-editor-alt-text-dialog-label = Zgjidhni një mundësi pdfjs-editor-alt-text-dialog-description = Teksti alt (tekst alternativ) vjen në ndihmë kur njerëzit s’mund të shohin figurën, ose kur ajo nuk ngarkohet. @@ -353,6 +364,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Iu vu shenjë si dekorative # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Për shembull, “Një djalosh ulet në një tryezë të hajë” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Tekst alternativ ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -434,10 +448,16 @@ pdfjs-editor-new-alt-text-error-close-button = Mbylle pdfjs-editor-new-alt-text-ai-model-downloading-progress = Po shkarkohet model IA teksti alternativ ({ $downloadedSize } nga { $totalSize } MB) .aria-valuetext = Po shkarkohet model IA teksti alternativ ({ $downloadedSize } nga { $totalSize } 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 = U shtua tekst alternativ pdfjs-editor-new-alt-text-added-button-label = U shtua tekst alternativ # This is a button that users can click to open the alt text editor and add alt text when it is not present. -pdfjs-editor-new-alt-text-missing-button-label = Mungon teskt alternativ +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Mungon tekst alternativ +pdfjs-editor-new-alt-text-missing-button-label = Mungon tekst alternativ # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Shqyrtoni tekst alternativ pdfjs-editor-new-alt-text-to-review-button-label = Shqyrtoni tekst alternativ # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -464,3 +484,23 @@ pdfjs-editor-alt-text-settings-editor-title = Përpunues teksti alternativ pdfjs-editor-alt-text-settings-show-dialog-button-label = Shfaq menjëherë përpunues teksti alternativ, kur shtohet një figurë pdfjs-editor-alt-text-settings-show-dialog-description = Ju ndihmon të siguroheni se krejt figurat tuaja kanë tekst alternativ. pdfjs-editor-alt-text-settings-close-button = Mbylle + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = U hoq theksimi +pdfjs-editor-undo-bar-message-freetext = U hoq tekst +pdfjs-editor-undo-bar-message-ink = U hoq vizatim +pdfjs-editor-undo-bar-message-stamp = U hoq figurë +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] U hoq { $count } shënim + *[other] U hoqën { $count } shënime + } +pdfjs-editor-undo-bar-undo-button = + .title = Zhbëje +pdfjs-editor-undo-bar-undo-button-label = Zhbëje +pdfjs-editor-undo-bar-close-button = + .title = Mbylle +pdfjs-editor-undo-bar-close-button-label = Mbylle diff --git a/viewer/locale/sr/viewer.ftl b/viewer/locale/sr/viewer.ftl index dbdb67e4..e125dfb8 100644 --- a/viewer/locale/sr/viewer.ftl +++ b/viewer/locale/sr/viewer.ftl @@ -113,6 +113,9 @@ pdfjs-document-properties-keywords = Кључне речи: pdfjs-document-properties-creation-date = Датум креирања: pdfjs-document-properties-modification-date = Датум модификације: # Variables: +# $dateObj (Date) - the creation/modification date and time of the PDF file +pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +# Variables: # $date (Date) - the creation/modification date of the PDF file # $time (Time) - the creation/modification time of the PDF file pdfjs-document-properties-date-string = { $date }, { $time } @@ -162,10 +165,10 @@ pdfjs-printing-not-ready = Упозорење: PDF није у потпунос ## Tooltips and alt text for side panel toolbar buttons pdfjs-toggle-sidebar-button = - .title = Прикажи додатну палету + .title = Прикажи/сакриј бочни панел pdfjs-toggle-sidebar-notification-button = - .title = Прикажи/сакриј бочну траку (документ садржи контуру/прилоге/слојеве) -pdfjs-toggle-sidebar-button-label = Прикажи додатну палету + .title = Прикажи/сакриј бочни панел (документ садржи контуру/прилоге/слојеве) +pdfjs-toggle-sidebar-button-label = Прикажи/сакриј бочни панел pdfjs-document-outline-button = .title = Прикажи структуру документа (двоструким кликом проширујете/скупљате све ставке) pdfjs-document-outline-button-label = Контура документа @@ -254,6 +257,9 @@ pdfjs-annotation-date-string = { $date }, { $time } # Some common types are e.g.: "Check", "Text", "Comment", "Note" pdfjs-text-annotation-type = .alt = [{ $type } коментар] +# Variables: +# $dateObj (Date) - the modification date and time of the annotation +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } ## Password @@ -271,9 +277,27 @@ pdfjs-editor-free-text-button-label = Текст pdfjs-editor-ink-button = .title = Цртај pdfjs-editor-ink-button-label = Цртај +pdfjs-editor-stamp-button = + .title = Додај или уреди слике +pdfjs-editor-stamp-button-label = Додај или уреди слике +pdfjs-editor-highlight-button = + .title = Означи +pdfjs-editor-highlight-button-label = Означи +pdfjs-highlight-floating-button1 = + .title = Означи + .aria-label = Означи +pdfjs-highlight-floating-button-label = Означи ## Remove button for the various kind of editor. +pdfjs-editor-remove-ink-button = + .title = Уклони цртеж +pdfjs-editor-remove-freetext-button = + .title = Уклони текст +pdfjs-editor-remove-stamp-button = + .title = Уклони слику +pdfjs-editor-remove-highlight-button = + .title = Уклони ознаку ## @@ -283,6 +307,15 @@ pdfjs-editor-free-text-size-input = Величина pdfjs-editor-ink-color-input = Боја pdfjs-editor-ink-thickness-input = Дебљина pdfjs-editor-ink-opacity-input = Опацитет +pdfjs-editor-stamp-add-image-button = + .title = Додај слику +pdfjs-editor-stamp-add-image-button-label = Додај слику +pdfjs-editor-free-highlight-thickness-title = + .title = Промени дебљину при означавању других ставки сем текста +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Уређивач текста + .default-content = Почни куцати… pdfjs-free-text = .aria-label = Уређивач текста pdfjs-free-text-default-content = Почни куцање… @@ -293,21 +326,96 @@ pdfjs-ink-canvas = ## Alt-text dialog +pdfjs-editor-alt-text-button-label = Алтернативни текст +pdfjs-editor-alt-text-edit-button = + .aria-label = Уреди алтернативни текст +pdfjs-editor-alt-text-edit-button-label = Уреди алтернативни текст +pdfjs-editor-alt-text-dialog-label = Одабери опцију +pdfjs-editor-alt-text-dialog-description = Алтернативни текст помаже слепим и слабовидим особама или када се слика не учита. +pdfjs-editor-alt-text-add-description-label = Додај опис +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-decorative-tooltip = Означено као украсно +# .placeholder: This is a placeholder for the alt text input area +pdfjs-editor-alt-text-textarea = + .placeholder = На пример: „Младић седа за сто да једе“ +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Алтернативни текст ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Горњи леви угао — промени величину +pdfjs-editor-resizer-label-top-middle = Средина горе — промени величину +pdfjs-editor-resizer-label-top-right = Горњи десни угао — промени величину +pdfjs-editor-resizer-label-middle-right = Средина десно — промени величину +pdfjs-editor-resizer-label-bottom-right = Доњи десни угао — промени величину +pdfjs-editor-resizer-label-bottom-middle = Средина доле — промени величину +pdfjs-editor-resizer-label-bottom-left = Доњи леви угао — промени величину +pdfjs-editor-resizer-label-middle-left = Средина лево — промени величину +pdfjs-editor-resizer-top-left = + .aria-label = Горњи леви угао — промени величину +pdfjs-editor-resizer-top-middle = + .aria-label = Средина горе — промени величину +pdfjs-editor-resizer-top-right = + .aria-label = Горњи десни угао — промени величину +pdfjs-editor-resizer-middle-right = + .aria-label = Средина десно — промени величину +pdfjs-editor-resizer-bottom-right = + .aria-label = Доњи десни угао — промени величину +pdfjs-editor-resizer-bottom-middle = + .aria-label = Средина доле — промени величину +pdfjs-editor-resizer-bottom-left = + .aria-label = Доњи леви угао — промени величину +pdfjs-editor-resizer-middle-left = + .aria-label = Средина лево — промени величину ## Color picker +# This means "Color used to highlight text" +pdfjs-editor-highlight-colorpicker-label = Боја означавања +pdfjs-editor-colorpicker-button = + .title = Промени боју +pdfjs-editor-colorpicker-dropdown = + .aria-label = Избор боја +pdfjs-editor-colorpicker-yellow = + .title = Жута +pdfjs-editor-colorpicker-green = + .title = Зелена +pdfjs-editor-colorpicker-blue = + .title = Плава +pdfjs-editor-colorpicker-pink = + .title = Розе +pdfjs-editor-colorpicker-red = + .title = Црвена ## Show all highlights ## This is a toggle button to show/hide all the highlights. +pdfjs-editor-highlight-show-all-button-label = Прикажи све +pdfjs-editor-highlight-show-all-button = + .title = Прикажи све ## 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. +# Modal header positioned above a text box where users can edit the alt text. +pdfjs-editor-new-alt-text-dialog-edit-label = Уреди алтернативни текст (опис слике) +# Modal header positioned above a text box where users can add the alt text. +pdfjs-editor-new-alt-text-dialog-add-label = Додај алтернативни текст (опис слике) +pdfjs-editor-new-alt-text-textarea = + .placeholder = Напиши опис овде… +# This text refers to the alt text box above this description. It offers a definition of alt text. +pdfjs-editor-new-alt-text-description = Кратак опис за слепе и слабовиде људе или када се слика не успе учитати. +# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human. +pdfjs-editor-new-alt-text-disclaimer1 = Овај алтернативни текст је направљен аутоматски и може бити нетачан. +pdfjs-editor-new-alt-text-disclaimer-learn-more-url = Сазнајте више +pdfjs-editor-new-alt-text-create-automatically-button-label = Прави алтернативни текст аутоматски +pdfjs-editor-new-alt-text-not-now-button = Не сада ## Image alt-text settings diff --git a/viewer/locale/sv-SE/viewer.ftl b/viewer/locale/sv-SE/viewer.ftl index 87c7da09..6c4c6104 100644 --- a/viewer/locale/sv-SE/viewer.ftl +++ b/viewer/locale/sv-SE/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Lägg till bild pdfjs-editor-free-highlight-thickness-input = Tjocklek pdfjs-editor-free-highlight-thickness-title = .title = Ändra tjocklek när du markerar andra objekt än text +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Textredigerare + .default-content = Börja skriva… pdfjs-free-text = .aria-label = Textredigerare pdfjs-free-text-default-content = Börja skriva… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternativ text +pdfjs-editor-alt-text-edit-button = + .aria-label = Redigera alternativ text pdfjs-editor-alt-text-edit-button-label = Redigera alternativ text pdfjs-editor-alt-text-dialog-label = Välj ett alternativ pdfjs-editor-alt-text-dialog-description = Alt text (alternativ text) hjälper till när människor inte kan se bilden eller när den inte laddas. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Märkt som dekorativ # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Till exempel, "En ung man sätter sig vid ett bord för att äta en måltid" +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternativ text ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Stäng pdfjs-editor-new-alt-text-ai-model-downloading-progress = Hämtar AI-modell med alternativ text ({ $downloadedSize } av { $totalSize } MB) .aria-valuetext = Hämtar AI-modell med alternativ text ({ $downloadedSize } av { $totalSize } 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 = Alternativ text tillagd pdfjs-editor-new-alt-text-added-button-label = Alternativ text tillagd # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Saknar alternativ text pdfjs-editor-new-alt-text-missing-button-label = Saknar alternativ text # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Granska alternativ text pdfjs-editor-new-alt-text-to-review-button-label = Granska alternativ text # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Alternativ textredigerare pdfjs-editor-alt-text-settings-show-dialog-button-label = Visa alternativ textredigerare direkt när du lägger till en bild pdfjs-editor-alt-text-settings-show-dialog-description = Hjälper dig att se till att alla dina bilder har alternativ text. pdfjs-editor-alt-text-settings-close-button = Stäng + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Markering borttagen +pdfjs-editor-undo-bar-message-freetext = Text borttagen +pdfjs-editor-undo-bar-message-ink = Ritning borttagen +pdfjs-editor-undo-bar-message-stamp = Bild borttagen +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } anteckning har tagits bort + *[other] { $count } anteckningar har tagits bort + } +pdfjs-editor-undo-bar-undo-button = + .title = Ångra +pdfjs-editor-undo-bar-undo-button-label = Ångra +pdfjs-editor-undo-bar-close-button = + .title = Stäng +pdfjs-editor-undo-bar-close-button-label = Stäng diff --git a/viewer/locale/tg/viewer.ftl b/viewer/locale/tg/viewer.ftl index 8b25bad6..b39fee57 100644 --- a/viewer/locale/tg/viewer.ftl +++ b/viewer/locale/tg/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Илова кардани тасви pdfjs-editor-free-highlight-thickness-input = Ғафсӣ pdfjs-editor-free-highlight-thickness-title = .title = Иваз кардани ғафсӣ ҳангоми ҷудокунии унсурҳо ба ғайр аз матн +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Муҳаррири матн + .default-content = Матнро ворид кунед… pdfjs-free-text = .aria-label = Муҳаррири матн pdfjs-free-text-default-content = Нависед… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Матни иловагӣ +pdfjs-editor-alt-text-edit-button = + .aria-label = Таҳрир кардани матни ивазкунанда pdfjs-editor-alt-text-edit-button-label = Таҳрир кардани матни иловагӣ pdfjs-editor-alt-text-dialog-label = Имконеро интихоб намоед pdfjs-editor-alt-text-dialog-description = Вақте ки одамон тасвирро дида наметавонанд ё вақте ки тасвир бор карда намешавад, матни иловагӣ (Alt text) кумак мерасонад. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Ҳамчун матни ороишӣ # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Барои мисол, «Ман забони тоҷикиро дӯст медорам» +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Матни ивазкунанда ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -432,17 +440,33 @@ pdfjs-editor-new-alt-text-dialog-edit-label = Таҳрир кардани мат pdfjs-editor-new-alt-text-dialog-add-label = Илова кардани матни иловагӣ (тафсири тасвир) pdfjs-editor-new-alt-text-textarea = .placeholder = Тафсири худро дар ин ҷо нависед… +# This text refers to the alt text box above this description. It offers a definition of alt text. +pdfjs-editor-new-alt-text-description = Тавсифи мухтасар барои одамоне, ки аксҳоро дида наметавонанд ё вақте ки аксҳо кушода намешаванд. +# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human. +pdfjs-editor-new-alt-text-disclaimer1 = Ин матни ивазкунанда ба таври худкор сохта шудааст ва шояд нодуруст бошад. pdfjs-editor-new-alt-text-disclaimer-learn-more-url = Маълумоти бештар pdfjs-editor-new-alt-text-create-automatically-button-label = Ба таври худкор эҷод кардани матни иловагӣ pdfjs-editor-new-alt-text-not-now-button = Ҳоло не pdfjs-editor-new-alt-text-error-title = Матни иловагӣ ба таври худкор эҷод карда нашуд pdfjs-editor-new-alt-text-error-description = Лутфан, матни иловагии худро ворид кунед ё баъдтар аз нав кӯшиш кунед. pdfjs-editor-new-alt-text-error-close-button = Пӯшидан +# Variables: +# $totalSize (Number) - the total size (in MB) of the AI model. +# $downloadedSize (Number) - the downloaded size (in MB) of the AI model. +# $percent (Number) - the percentage of the downloaded size. +pdfjs-editor-new-alt-text-ai-model-downloading-progress = Боргирии модели зеҳни сунъӣ (AI) барои матни ивазкунанда ({ $downloadedSize } аз { $totalSize } МБ) + .aria-valuetext = Боргирии модели зеҳни сунъӣ (AI) барои матни ивазкунанда ({ $downloadedSize } аз { $totalSize } МБ) # 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 = Матни иловагӣ илова карда шуд pdfjs-editor-new-alt-text-added-button-label = Матни иловагӣ илова карда шуд # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Матни иловагӣ вуҷуд надорад pdfjs-editor-new-alt-text-missing-button-label = Матни иловагӣ вуҷуд надорад # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Бознигарӣ кардани матни иловагӣ pdfjs-editor-new-alt-text-to-review-button-label = Бознигарӣ кардани матни иловагӣ # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -457,8 +481,35 @@ pdfjs-image-alt-text-settings-button-label = Танзимоти матни ил pdfjs-editor-alt-text-settings-dialog-label = Танзимоти матни иловагии тасвир pdfjs-editor-alt-text-settings-automatic-title = Матни иловагии худкор pdfjs-editor-alt-text-settings-create-model-button-label = Ба таври худкор эҷод кардани матни иловагӣ +pdfjs-editor-alt-text-settings-create-model-description = Ин имкон барои расонидани кумак ба одамоне, ки аксҳоро дида наметавонанд ё вақте ки аксҳо кушода намешаванд, тавсифи аксҳоро пешниҳод мекунад. +# Variables: +# $totalSize (Number) - the total size (in MB) of the AI model. +pdfjs-editor-alt-text-settings-download-model-label = Модели зеҳни сунъӣ «AI» барои матни ивазкунанда ({ $totalSize } МБ) +pdfjs-editor-alt-text-settings-ai-model-description = Дар дастгоҳи шумо ба таври маҳаллӣ кор мекунад, бинобар ин махфияти маълумоти шахсии шумо нигоҳ дошта мешавад. Барои матни ивазкунандаи худкор лозим аст. pdfjs-editor-alt-text-settings-delete-model-button = Нест кардан pdfjs-editor-alt-text-settings-download-model-button = Боргирӣ кардан pdfjs-editor-alt-text-settings-downloading-model-button = Дар ҳоли боргирӣ… pdfjs-editor-alt-text-settings-editor-title = Муҳаррири матни иловагӣ +pdfjs-editor-alt-text-settings-show-dialog-button-label = Дарҳол нишон додани муҳаррири матни ивазкунанда ҳангоми иловакунии тасвир +pdfjs-editor-alt-text-settings-show-dialog-description = Ба шумо кумак мекунад, ки боварӣ ҳосил кунед, ки ҳамаи тасвирҳои шумо дорои матни ивазкунанда мебошанд. pdfjs-editor-alt-text-settings-close-button = Пӯшидан + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Ҷудосозӣ тоза карда шуд +pdfjs-editor-undo-bar-message-freetext = Матн тоза карда шуд +pdfjs-editor-undo-bar-message-ink = Расм тоза карда шуд +pdfjs-editor-undo-bar-message-stamp = Тасвир тоза карда шуд +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } ҳошиянависӣ тоза карда шуд + *[other] { $count } ҳошиянависӣ тоза карда шуданд + } +pdfjs-editor-undo-bar-undo-button = + .title = Бекор кардан +pdfjs-editor-undo-bar-undo-button-label = Бекор кардан +pdfjs-editor-undo-bar-close-button = + .title = Пӯшидан +pdfjs-editor-undo-bar-close-button-label = Пӯшидан diff --git a/viewer/locale/th/viewer.ftl b/viewer/locale/th/viewer.ftl index 3aefcef0..cba15f90 100644 --- a/viewer/locale/th/viewer.ftl +++ b/viewer/locale/th/viewer.ftl @@ -335,6 +335,10 @@ pdfjs-editor-stamp-add-image-button-label = เพิ่มภาพ pdfjs-editor-free-highlight-thickness-input = ความหนา pdfjs-editor-free-highlight-thickness-title = .title = เปลี่ยนความหนาเมื่อเน้นรายการอื่นๆ ที่ไม่ใช่ข้อความ +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = ตัวแก้ไขข้อความ + .default-content = เริ่มพิมพ์ได้เลย… pdfjs-free-text = .aria-label = ตัวแก้ไขข้อความ pdfjs-free-text-default-content = เริ่มพิมพ์… @@ -345,8 +349,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = ข้อความทดแทน +pdfjs-editor-alt-text-edit-button = + .aria-label = แก้ไขข้อความทดแทน pdfjs-editor-alt-text-edit-button-label = แก้ไขข้อความทดแทน pdfjs-editor-alt-text-dialog-label = เลือกตัวเลือก pdfjs-editor-alt-text-dialog-description = ข้อความทดแทนสามารถช่วยเหลือได้เมื่อผู้ใช้มองไม่เห็นภาพ หรือภาพไม่โหลด @@ -360,6 +365,9 @@ pdfjs-editor-alt-text-decorative-tooltip = ทำเครื่องหมา # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = ตัวอย่างเช่น “ชายหนุ่มคนหนึ่งนั่งลงที่โต๊ะเพื่อรับประทานอาหารมื้อหนึ่ง” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = ข้อความทดแทน ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -441,10 +449,16 @@ pdfjs-editor-new-alt-text-error-close-button = ปิด pdfjs-editor-new-alt-text-ai-model-downloading-progress = กำลังดาวน์โหลดโมเดล AI สำหรับข้อความทดแทน ({ $downloadedSize } จาก { $totalSize } MB) .aria-valuetext = กำลังดาวน์โหลดโมเดล AI สำหรับข้อความทดแทน ({ $downloadedSize } จาก { $totalSize } 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 = เพิ่มข้อความทดแทนแล้ว pdfjs-editor-new-alt-text-added-button-label = เพิ่มข้อความทดแทนแล้ว # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = ขาดข้อความทดแทน pdfjs-editor-new-alt-text-missing-button-label = ขาดข้อความทดแทน # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = ตรวจสอบข้อความทดแทน pdfjs-editor-new-alt-text-to-review-button-label = ตรวจสอบข้อความทดแทน # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -471,3 +485,19 @@ pdfjs-editor-alt-text-settings-editor-title = ตัวแก้ไขข้อ pdfjs-editor-alt-text-settings-show-dialog-button-label = แสดงตัวแก้ไขข้อความทดแทนทันทีเมื่อเพิ่มภาพ pdfjs-editor-alt-text-settings-show-dialog-description = ช่วยให้คุณแน่ใจว่าภาพทั้งหมดของคุณมีข้อความทดแทน pdfjs-editor-alt-text-settings-close-button = ปิด + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = เอาการเน้นสีออกแล้ว +pdfjs-editor-undo-bar-message-freetext = เอาข้อความออกแล้ว +pdfjs-editor-undo-bar-message-ink = เอาภาพวาดออกแล้ว +pdfjs-editor-undo-bar-message-stamp = เอาภาพออกแล้ว +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = เอาคำอธิบายประกอบ { $count } รายการออกแล้ว +pdfjs-editor-undo-bar-undo-button = + .title = เลิกทำ +pdfjs-editor-undo-bar-undo-button-label = เลิกทำ +pdfjs-editor-undo-bar-close-button = + .title = ปิด +pdfjs-editor-undo-bar-close-button-label = ปิด diff --git a/viewer/locale/tr/viewer.ftl b/viewer/locale/tr/viewer.ftl index 0d70b3f9..b1b7cbfa 100644 --- a/viewer/locale/tr/viewer.ftl +++ b/viewer/locale/tr/viewer.ftl @@ -343,6 +343,10 @@ pdfjs-editor-stamp-add-image-button-label = Resim ekle pdfjs-editor-free-highlight-thickness-input = Kalınlık pdfjs-editor-free-highlight-thickness-title = .title = Metin dışındaki öğeleri vurgularken kalınlığı değiştir +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Metin düzenleyicisi + .default-content = Yazmaya başlayın… pdfjs-free-text = .aria-label = Metin düzenleyicisi pdfjs-free-text-default-content = Yazmaya başlayın… @@ -353,8 +357,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Alternatif metin +pdfjs-editor-alt-text-edit-button = + .aria-label = Alternatif metni düzenle pdfjs-editor-alt-text-edit-button-label = Alternatif metni düzenle pdfjs-editor-alt-text-dialog-label = Bir seçenek seçin pdfjs-editor-alt-text-dialog-description = Alternatif metin, insanlar resmi göremediğinde veya resim yüklenmediğinde işe yarar. @@ -368,6 +373,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Dekoratif olarak işaretlendi # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Örneğin, “Genç bir adam yemek yemek için masaya oturuyor” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Alternatif metin ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -449,10 +457,16 @@ pdfjs-editor-new-alt-text-error-close-button = Kapat pdfjs-editor-new-alt-text-ai-model-downloading-progress = Alt metin yapay zekâ modeli indiriliyor ({ $downloadedSize } / { $totalSize } MB) .aria-valuetext = Alt metin yapay zekâ modeli indiriliyor ({ $downloadedSize } / { $totalSize } 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 = Alternatif metin eklendi pdfjs-editor-new-alt-text-added-button-label = Alt metin eklendi # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Alternatif metin eksik pdfjs-editor-new-alt-text-missing-button-label = Alt metin eksik # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Alternatif metni incele pdfjs-editor-new-alt-text-to-review-button-label = Alt metni incele # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -479,3 +493,23 @@ pdfjs-editor-alt-text-settings-editor-title = Alt metin düzenleyicisi pdfjs-editor-alt-text-settings-show-dialog-button-label = Resim eklerken alt metin düzenleyicisini hemen göster pdfjs-editor-alt-text-settings-show-dialog-description = Tüm resimlerinizin alt metne sahip olduğundan emin olmanızı sağlar. pdfjs-editor-alt-text-settings-close-button = Kapat + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Vurgulama silindi +pdfjs-editor-undo-bar-message-freetext = Metin silindi +pdfjs-editor-undo-bar-message-ink = Çizim silindi +pdfjs-editor-undo-bar-message-stamp = Görsel silindi +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } ek açıklama silindi + *[other] { $count } ek açıklama silindi + } +pdfjs-editor-undo-bar-undo-button = + .title = Geri al +pdfjs-editor-undo-bar-undo-button-label = Geri al +pdfjs-editor-undo-bar-close-button = + .title = Kapat +pdfjs-editor-undo-bar-close-button-label = Kapat diff --git a/viewer/locale/uk/viewer.ftl b/viewer/locale/uk/viewer.ftl index d11cb440..dd547279 100644 --- a/viewer/locale/uk/viewer.ftl +++ b/viewer/locale/uk/viewer.ftl @@ -298,7 +298,7 @@ pdfjs-password-label = Введіть пароль для відкриття ц pdfjs-password-invalid = Неправильний пароль. Спробуйте ще раз. pdfjs-password-ok-button = OK pdfjs-password-cancel-button = Скасувати -pdfjs-web-fonts-disabled = Веб-шрифти вимкнено: неможливо використати вбудовані у PDF шрифти. +pdfjs-web-fonts-disabled = Вебшрифти вимкнено: неможливо використати вбудовані у PDF шрифти. ## Editing @@ -345,6 +345,10 @@ pdfjs-editor-stamp-add-image-button-label = Додати зображення pdfjs-editor-free-highlight-thickness-input = Товщина pdfjs-editor-free-highlight-thickness-title = .title = Змінюйте товщину під час підсвічування елементів, крім тексту +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Текстовий редактор + .default-content = Напишіть щось… pdfjs-free-text = .aria-label = Текстовий редактор pdfjs-free-text-default-content = Почніть вводити… @@ -355,8 +359,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Альтернативний текст +pdfjs-editor-alt-text-edit-button = + .aria-label = Редагувати альтернативний текст pdfjs-editor-alt-text-edit-button-label = Змінити альтернативний текст pdfjs-editor-alt-text-dialog-label = Вибрати варіант pdfjs-editor-alt-text-dialog-description = Альтернативний текст допомагає, коли зображення не видно або коли воно не завантажується. @@ -370,6 +375,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Позначено декоратив # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Наприклад, “Молодий чоловік сідає за стіл їсти” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Альтернативний текст ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -451,10 +459,16 @@ pdfjs-editor-new-alt-text-error-close-button = Закрити pdfjs-editor-new-alt-text-ai-model-downloading-progress = Завантаження моделі ШІ для альтернативного тексту ({ $downloadedSize } з { $totalSize } МБ) .aria-valuetext = Завантаження моделі ШІ для альтернативного тексту ({ $downloadedSize } з { $totalSize } МБ) # 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 = Альтернативний текст додано pdfjs-editor-new-alt-text-added-button-label = Альтернативний текст додано # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Відсутній альтернативний текст pdfjs-editor-new-alt-text-missing-button-label = Відсутній альтернативний текст # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Переглянути альтернативний текст pdfjs-editor-new-alt-text-to-review-button-label = Переглянути альтернативний текст # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -481,3 +495,24 @@ pdfjs-editor-alt-text-settings-editor-title = Редактор альтерна pdfjs-editor-alt-text-settings-show-dialog-button-label = Показувати редактор альтернативного тексту під час додавання зображення pdfjs-editor-alt-text-settings-show-dialog-description = Допомагає переконатися, що всі ваші зображення мають альтернативний текст. pdfjs-editor-alt-text-settings-close-button = Закрити + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Підсвічення вилучено +pdfjs-editor-undo-bar-message-freetext = Текст вилучено +pdfjs-editor-undo-bar-message-ink = Малюнок вилучено +pdfjs-editor-undo-bar-message-stamp = Зображення вилучено +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } анотацію вилучено + [few] { $count } анотації вилучено + *[many] { $count } анотацій вилучено + } +pdfjs-editor-undo-bar-undo-button = + .title = Повернути +pdfjs-editor-undo-bar-undo-button-label = Повернути +pdfjs-editor-undo-bar-close-button = + .title = Закрити +pdfjs-editor-undo-bar-close-button-label = Закрити diff --git a/viewer/locale/vi/viewer.ftl b/viewer/locale/vi/viewer.ftl index 14d990ad..af1291f3 100644 --- a/viewer/locale/vi/viewer.ftl +++ b/viewer/locale/vi/viewer.ftl @@ -335,6 +335,10 @@ pdfjs-editor-stamp-add-image-button-label = Thêm hình ảnh pdfjs-editor-free-highlight-thickness-input = Độ dày pdfjs-editor-free-highlight-thickness-title = .title = Thay đổi độ dày khi đánh dấu các mục không phải là văn bản +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = Trình chỉnh sửa văn bản + .default-content = Bắt đầu nhập… pdfjs-free-text = .aria-label = Trình sửa văn bản pdfjs-free-text-default-content = Bắt đầu nhập… @@ -345,8 +349,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = Văn bản thay thế +pdfjs-editor-alt-text-edit-button = + .aria-label = Chỉnh sửa văn bản thay thế pdfjs-editor-alt-text-edit-button-label = Chỉnh sửa văn bản thay thế pdfjs-editor-alt-text-dialog-label = Chọn một lựa chọn pdfjs-editor-alt-text-dialog-description = Văn bản thay thế sẽ hữu ích khi mọi người không thể thấy hình ảnh hoặc khi hình ảnh không tải. @@ -360,6 +365,9 @@ pdfjs-editor-alt-text-decorative-tooltip = Đã đánh dấu là trang trí # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = Ví dụ: “Một thanh niên ngồi xuống bàn để thưởng thức một bữa ăn” +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = Văn bản thay thế ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -441,10 +449,16 @@ pdfjs-editor-new-alt-text-error-close-button = Đóng pdfjs-editor-new-alt-text-ai-model-downloading-progress = Đang tải xuống mô hình AI văn bản thay thế ({ $downloadedSize } trong số { $totalSize } MB) .aria-valuetext = Đang tải xuống mô hình AI văn bản thay thế ({ $downloadedSize } trong số { $totalSize } 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 = Đã thêm văn bản thay thế pdfjs-editor-new-alt-text-added-button-label = Đã thêm văn bản thay thế # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Thiếu văn bản thay thế pdfjs-editor-new-alt-text-missing-button-label = Thiếu văn bản thay thế # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Xem lại văn bản thay thế pdfjs-editor-new-alt-text-to-review-button-label = Xem lại văn bản thay thế # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -471,3 +485,19 @@ pdfjs-editor-alt-text-settings-editor-title = Trình soạn thảo văn bản th pdfjs-editor-alt-text-settings-show-dialog-button-label = Hiển thị ngay trình soạn thảo văn bản thay thế khi thêm hình ảnh pdfjs-editor-alt-text-settings-show-dialog-description = Giúp bạn đảm bảo tất cả hình ảnh của bạn đều có văn bản thay thế. pdfjs-editor-alt-text-settings-close-button = Đóng + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = Đã xóa đánh dấu +pdfjs-editor-undo-bar-message-freetext = Đã xóa văn bản +pdfjs-editor-undo-bar-message-ink = Đã xóa bản vẽ +pdfjs-editor-undo-bar-message-stamp = Đã xóa hình ảnh +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = { $count } chú thích đã bị xóa +pdfjs-editor-undo-bar-undo-button = + .title = Hoàn tác +pdfjs-editor-undo-bar-undo-button-label = Hoàn tác +pdfjs-editor-undo-bar-close-button = + .title = Đóng +pdfjs-editor-undo-bar-close-button-label = Đóng diff --git a/viewer/locale/zh-CN/viewer.ftl b/viewer/locale/zh-CN/viewer.ftl index 9cebb3cd..8fe9a6ae 100644 --- a/viewer/locale/zh-CN/viewer.ftl +++ b/viewer/locale/zh-CN/viewer.ftl @@ -335,6 +335,10 @@ pdfjs-editor-stamp-add-image-button-label = 添加图像 pdfjs-editor-free-highlight-thickness-input = 粗细 pdfjs-editor-free-highlight-thickness-title = .title = 更改高亮粗细(用于文本以外项目) +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = 文本编辑器 + .default-content = 在此键入… pdfjs-free-text = .aria-label = 文本编辑器 pdfjs-free-text-default-content = 开始输入… @@ -345,13 +349,14 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = 替换文字 +pdfjs-editor-alt-text-edit-button = + .aria-label = 编辑替换文字 pdfjs-editor-alt-text-edit-button-label = 编辑替换文字 pdfjs-editor-alt-text-dialog-label = 选择一项 pdfjs-editor-alt-text-dialog-description = 替换文字可在用户无法看到或加载图像时,描述其内容。 pdfjs-editor-alt-text-add-description-label = 添加描述 -pdfjs-editor-alt-text-add-description-description = 描述主题、背景或动作,长度尽量控制在两句话内。 +pdfjs-editor-alt-text-add-description-description = 用一两个句子,描述主题、背景或动作。 pdfjs-editor-alt-text-mark-decorative-label = 标记为装饰 pdfjs-editor-alt-text-mark-decorative-description = 用于装饰的图像,例如边框和水印。 pdfjs-editor-alt-text-cancel-button = 取消 @@ -360,6 +365,9 @@ pdfjs-editor-alt-text-decorative-tooltip = 已标记为装饰 # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = 例如:一个少年坐到桌前,准备吃饭 +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = 替换文字 ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -441,10 +449,16 @@ pdfjs-editor-new-alt-text-error-close-button = 关闭 pdfjs-editor-new-alt-text-ai-model-downloading-progress = 正在下载提供替换文字的 AI 模型({ $downloadedSize }/{ $totalSize } MB) .aria-valuetext = 正在下载提供替换文字的 AI 模型({ $downloadedSize }/{ $totalSize } 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 = 已添加替换文字 pdfjs-editor-new-alt-text-added-button-label = 已添加替换文字 # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = 缺少替换文字 pdfjs-editor-new-alt-text-missing-button-label = 缺少替换文字 # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = 检查替换文字 pdfjs-editor-new-alt-text-to-review-button-label = 检查替换文字 # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -471,3 +485,19 @@ pdfjs-editor-alt-text-settings-editor-title = 替换文字编辑器 pdfjs-editor-alt-text-settings-show-dialog-button-label = 添加图像后立即显示替换文字编辑器 pdfjs-editor-alt-text-settings-show-dialog-description = 帮助确保所有图像均拥有替换文字。 pdfjs-editor-alt-text-settings-close-button = 关闭 + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = 已移除高亮 +pdfjs-editor-undo-bar-message-freetext = 已移除文本 +pdfjs-editor-undo-bar-message-ink = 已移除绘图 +pdfjs-editor-undo-bar-message-stamp = 已移除图像 +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = 已移除 { $count } 条注释 +pdfjs-editor-undo-bar-undo-button = + .title = 撤销 +pdfjs-editor-undo-bar-undo-button-label = 撤销 +pdfjs-editor-undo-bar-close-button = + .title = 关闭 +pdfjs-editor-undo-bar-close-button-label = 关闭 diff --git a/viewer/locale/zh-TW/viewer.ftl b/viewer/locale/zh-TW/viewer.ftl index e96d6375..bc4b7efe 100644 --- a/viewer/locale/zh-TW/viewer.ftl +++ b/viewer/locale/zh-TW/viewer.ftl @@ -335,6 +335,10 @@ pdfjs-editor-stamp-add-image-button-label = 新增圖片 pdfjs-editor-free-highlight-thickness-input = 線條粗細 pdfjs-editor-free-highlight-thickness-title = .title = 更改強調文字以外的項目時的線條粗細 +# .default-content is used as a placeholder in an empty text editor. +pdfjs-free-text2 = + .aria-label = 文字編輯器 + .default-content = 請打字… pdfjs-free-text = .aria-label = 文本編輯器 pdfjs-free-text-default-content = 在此打字… @@ -345,8 +349,9 @@ pdfjs-ink-canvas = ## Alt-text dialog -# Alternative text (alt text) helps when people can't see the image. pdfjs-editor-alt-text-button-label = 替代文字 +pdfjs-editor-alt-text-edit-button = + .aria-label = 編輯替代文字 pdfjs-editor-alt-text-edit-button-label = 編輯替代文字 pdfjs-editor-alt-text-dialog-label = 挑選一種 pdfjs-editor-alt-text-dialog-description = 替代文字可協助盲人,或於圖片無法載入時提供說明。 @@ -360,6 +365,9 @@ pdfjs-editor-alt-text-decorative-tooltip = 已標示為裝飾性內容 # .placeholder: This is a placeholder for the alt text input area pdfjs-editor-alt-text-textarea = .placeholder = 例如:「有一位年輕男人坐在桌子前面吃飯」 +# Alternative text (alt text) helps when people can't see the image. +pdfjs-editor-alt-text-button = + .aria-label = 替代文字 ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. @@ -441,10 +449,16 @@ pdfjs-editor-new-alt-text-error-close-button = 關閉 pdfjs-editor-new-alt-text-ai-model-downloading-progress = 正在下載替代文字 AI 模型({ $downloadedSize } / { $totalSize } MB) .aria-valuetext = 正在下載替代文字 AI 模型({ $downloadedSize } / { $totalSize } 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 = 已新增替代文字 pdfjs-editor-new-alt-text-added-button-label = 已新增替代文字 # This is a button that users can click to open the alt text editor and add alt text when it is not present. +pdfjs-editor-new-alt-text-missing-button = + .aria-label = 缺少替代文字 pdfjs-editor-new-alt-text-missing-button-label = 缺少替代文字 # This is a button that opens up the alt text modal where users should review the alt text that was automatically generated. +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = 確認替代文字 pdfjs-editor-new-alt-text-to-review-button-label = 確認替代文字 # "Created automatically" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear. # Variables: @@ -471,3 +485,19 @@ pdfjs-editor-alt-text-settings-editor-title = 替代文字編輯器 pdfjs-editor-alt-text-settings-show-dialog-button-label = 新增圖片後立即顯示替代文字編輯器 pdfjs-editor-alt-text-settings-show-dialog-description = 幫助您確保所有圖片都有替代文字。 pdfjs-editor-alt-text-settings-close-button = 關閉 + +## "Annotations removed" bar + +pdfjs-editor-undo-bar-message-highlight = 已移除強調 +pdfjs-editor-undo-bar-message-freetext = 已移除文字 +pdfjs-editor-undo-bar-message-ink = 已移除繪圖 +pdfjs-editor-undo-bar-message-stamp = 已移除圖片 +# Variables: +# $count (Number) - the number of removed annotations. +pdfjs-editor-undo-bar-message-multiple = 已移除 { $count } 筆註解 +pdfjs-editor-undo-bar-undo-button = + .title = 還原 +pdfjs-editor-undo-bar-undo-button-label = 還原 +pdfjs-editor-undo-bar-close-button = + .title = 關閉 +pdfjs-editor-undo-bar-close-button-label = 關閉 diff --git a/viewer/viewer.css b/viewer/viewer.css index 39fe19dc..4639f999 100644 --- a/viewer/viewer.css +++ b/viewer/viewer.css @@ -13,6 +13,257 @@ * limitations under the License. */ +.messageBar{ + --closing-button-icon:url(images/messageBar_closingButton.svg); + --message-bar-close-button-color:var(--text-primary-color); + --message-bar-close-button-color-hover:var(--text-primary-color); + --message-bar-close-button-border-radius:4px; + --message-bar-close-button-border:none; + --message-bar-close-button-hover-bg-color:rgb(21 20 26 / 0.14); + --message-bar-close-button-active-bg-color:rgb(21 20 26 / 0.21); + --message-bar-close-button-focus-bg-color:rgb(21 20 26 / 0.07); +} + +@media (prefers-color-scheme: dark){ + +:where(html:not(.is-light)) .messageBar{ + --message-bar-close-button-hover-bg-color:rgb(251 251 254 / 0.14); + --message-bar-close-button-active-bg-color:rgb(251 251 254 / 0.21); + --message-bar-close-button-focus-bg-color:rgb(251 251 254 / 0.07); +} + } + +:where(html.is-dark) .messageBar{ + --message-bar-close-button-hover-bg-color:rgb(251 251 254 / 0.14); + --message-bar-close-button-active-bg-color:rgb(251 251 254 / 0.21); + --message-bar-close-button-focus-bg-color:rgb(251 251 254 / 0.07); +} + +@media screen and (forced-colors: active){ + +.messageBar{ + --message-bar-close-button-color:ButtonText; + --message-bar-close-button-border:1px solid ButtonText; + --message-bar-close-button-hover-bg-color:ButtonText; + --message-bar-close-button-active-bg-color:ButtonText; + --message-bar-close-button-focus-bg-color:ButtonText; + --message-bar-close-button-color-hover:HighlightText; +} + } + +.messageBar{ + + display:flex; + position:relative; + padding:8px 8px 8px 16px; + flex-direction:column; + justify-content:center; + align-items:center; + gap:8px; + -webkit-user-select:none; + -moz-user-select:none; + user-select:none; + + border-radius:4px; + + border:1px solid var(--message-bar-border-color); + background:var(--message-bar-bg-color); + color:var(--message-bar-fg-color); +} + +.messageBar > div{ + display:flex; + align-items:flex-start; + gap:8px; + align-self:stretch; + } + +:is(.messageBar > div)::before{ + content:""; + display:inline-block; + width:16px; + height:16px; + -webkit-mask-image:var(--message-bar-icon); + mask-image:var(--message-bar-icon); + -webkit-mask-size:cover; + mask-size:cover; + background-color:var(--message-bar-icon-color); + flex-shrink:0; + } + +.messageBar button{ + cursor:pointer; + } + +:is(.messageBar button):focus-visible{ + outline:var(--focus-ring-outline); + outline-offset:2px; + } + +.messageBar .closeButton{ + width:32px; + height:32px; + background:none; + border-radius:var(--message-bar-close-button-border-radius); + border:var(--message-bar-close-button-border); + + display:flex; + align-items:center; + justify-content:center; + } + +:is(.messageBar .closeButton)::before{ + content:""; + display:inline-block; + width:16px; + height:16px; + -webkit-mask-image:var(--closing-button-icon); + mask-image:var(--closing-button-icon); + -webkit-mask-size:cover; + mask-size:cover; + background-color:var(--message-bar-close-button-color); + } + +:is(.messageBar .closeButton):is(:hover,:active,:focus)::before{ + background-color:var(--message-bar-close-button-color-hover); + } + +:is(.messageBar .closeButton):hover{ + background-color:var(--message-bar-close-button-hover-bg-color); + } + +:is(.messageBar .closeButton):active{ + background-color:var(--message-bar-close-button-active-bg-color); + } + +:is(.messageBar .closeButton):focus{ + background-color:var(--message-bar-close-button-focus-bg-color); + } + +:is(.messageBar .closeButton) > span{ + display:inline-block; + width:0; + height:0; + overflow:hidden; + } + +#editorUndoBar{ + --text-primary-color:#15141a; + + --message-bar-icon:url(images/secondaryToolbarButton-documentProperties.svg); + --message-bar-icon-color:#0060df; + --message-bar-bg-color:#deeafc; + --message-bar-fg-color:var(--text-primary-color); + --message-bar-border-color:rgb(0 0 0 / 0.08); + + --undo-button-bg-color:rgb(21 20 26 / 0.07); + --undo-button-bg-color-hover:rgb(21 20 26 / 0.14); + --undo-button-bg-color-active:rgb(21 20 26 / 0.21); + + --undo-button-fg-color:var(--message-bar-fg-color); + --undo-button-fg-color-hover:var(--undo-button-fg-color); + --undo-button-fg-color-active:var(--undo-button-fg-color); + + --focus-ring-color:#0060df; + --focus-ring-outline:2px solid var(--focus-ring-color); +} + +@media (prefers-color-scheme: dark){ + +:where(html:not(.is-light)) #editorUndoBar{ + --text-primary-color:#fbfbfe; + + --message-bar-icon-color:#73a7f3; + --message-bar-bg-color:#003070; + --message-bar-border-color:rgb(255 255 255 / 0.08); + + --undo-button-bg-color:rgb(255 255 255 / 0.08); + --undo-button-bg-color-hover:rgb(255 255 255 / 0.14); + --undo-button-bg-color-active:rgb(255 255 255 / 0.21); +} + } + +:where(html.is-dark) #editorUndoBar{ + --text-primary-color:#fbfbfe; + + --message-bar-icon-color:#73a7f3; + --message-bar-bg-color:#003070; + --message-bar-border-color:rgb(255 255 255 / 0.08); + + --undo-button-bg-color:rgb(255 255 255 / 0.08); + --undo-button-bg-color-hover:rgb(255 255 255 / 0.14); + --undo-button-bg-color-active:rgb(255 255 255 / 0.21); +} + +@media screen and (forced-colors: active){ + +#editorUndoBar{ + --text-primary-color:CanvasText; + + --message-bar-icon-color:CanvasText; + --message-bar-bg-color:Canvas; + --message-bar-border-color:CanvasText; + + --undo-button-bg-color:ButtonText; + --undo-button-bg-color-hover:SelectedItem; + --undo-button-bg-color-active:SelectedItem; + + --undo-button-fg-color:ButtonFace; + --undo-button-fg-color-hover:SelectedItemText; + --undo-button-fg-color-active:SelectedItemText; + + --focus-ring-color:CanvasText; +} + } + +#editorUndoBar{ + + position:fixed; + top:50px; + left:50%; + transform:translateX(-50%); + z-index:10; + + padding-block:8px; + padding-inline:16px 8px; + + font:menu; + font-size:15px; + + cursor:default; +} + +#editorUndoBar button{ + cursor:pointer; + } + +#editorUndoBar #editorUndoBarUndoButton{ + border-radius:4px; + font-weight:590; + line-height:19.5px; + color:var(--undo-button-fg-color); + border:none; + padding:4px 16px; + margin-inline-start:8px; + height:32px; + + background-color:var(--undo-button-bg-color); + } + +:is(#editorUndoBar #editorUndoBarUndoButton):hover{ + background-color:var(--undo-button-bg-color-hover); + color:var(--undo-button-fg-color-hover); + } + +:is(#editorUndoBar #editorUndoBarUndoButton):active{ + background-color:var(--undo-button-bg-color-active); + color:var(--undo-button-fg-color-active); + } + +#editorUndoBar > div{ + align-items:center; + } + .dialog{ --dialog-bg-color:white; --dialog-border-color:white; @@ -304,20 +555,11 @@ } :is(.dialog .mainContainer) .messageBar{ - --message-bar-warning-icon:url(images/messageBar_warning.svg); - --closing-button-icon:url(images/messageBar_closingButton.svg); - --message-bar-bg-color:#ffebcd; --message-bar-fg-color:#15141a; --message-bar-border-color:rgb(0 0 0 / 0.08); + --message-bar-icon:url(images/messageBar_warning.svg); --message-bar-icon-color:#cd411e; - --message-bar-close-button-border-radius:4px; - --message-bar-close-button-border:none; - --message-bar-close-button-color:var(--text-primary-color); - --message-bar-close-button-hover-bg-color:rgb(21 20 26 / 0.14); - --message-bar-close-button-active-bg-color:rgb(21 20 26 / 0.21); - --message-bar-close-button-focus-bg-color:rgb(21 20 26 / 0.07); - --message-bar-close-button-color-hover:var(--text-primary-color); } @media (prefers-color-scheme: dark){ @@ -327,9 +569,6 @@ --message-bar-fg-color:#fbfbfe; --message-bar-border-color:rgb(255 255 255 / 0.08); --message-bar-icon-color:#e49c49; - --message-bar-close-button-hover-bg-color:rgb(251 251 254 / 0.14); - --message-bar-close-button-active-bg-color:rgb(251 251 254 / 0.21); - --message-bar-close-button-focus-bg-color:rgb(251 251 254 / 0.07); } } @@ -338,9 +577,6 @@ --message-bar-fg-color:#fbfbfe; --message-bar-border-color:rgb(255 255 255 / 0.08); --message-bar-icon-color:#e49c49; - --message-bar-close-button-hover-bg-color:rgb(251 251 254 / 0.14); - --message-bar-close-button-active-bg-color:rgb(251 251 254 / 0.21); - --message-bar-close-button-focus-bg-color:rgb(251 251 254 / 0.07); } @media screen and (forced-colors: active){ @@ -350,50 +586,16 @@ --message-bar-fg-color:CanvasText; --message-bar-border-color:CanvasText; --message-bar-icon-color:CanvasText; - --message-bar-close-button-color:ButtonText; - --message-bar-close-button-border:1px solid ButtonText; - --message-bar-close-button-hover-bg-color:ButtonText; - --message-bar-close-button-active-bg-color:ButtonText; - --message-bar-close-button-focus-bg-color:ButtonText; - --message-bar-close-button-color-hover:HighlightText; } } :is(.dialog .mainContainer) .messageBar{ - display:flex; - position:relative; - padding:12px 8px 12px 0; - flex-direction:column; - justify-content:center; - align-items:flex-start; - gap:8px; align-self:stretch; - - border-radius:4px; - border:1px solid var(--message-bar-border-color); - background:var(--message-bar-bg-color); - color:var(--message-bar-fg-color); } -:is(:is(.dialog .mainContainer) .messageBar) > div{ - display:flex; - padding-inline-start:16px; - align-items:flex-start; - gap:8px; - align-self:stretch; - } - -:is(:is(:is(.dialog .mainContainer) .messageBar) > div)::before{ - content:""; - display:inline-block; - width:16px; - height:16px; - -webkit-mask-image:var(--message-bar-warning-icon); - mask-image:var(--message-bar-warning-icon); - -webkit-mask-size:cover; - mask-size:cover; - background-color:var(--message-bar-icon-color); +:is(:is(:is(.dialog .mainContainer) .messageBar) > div)::before,:is(:is(:is(.dialog .mainContainer) .messageBar) > div) > div{ + margin-block:4px; } :is(:is(:is(.dialog .mainContainer) .messageBar) > div) > div{ @@ -413,52 +615,6 @@ font-size:13px; } -:is(:is(.dialog .mainContainer) .messageBar) .closeButton{ - position:absolute; - width:32px; - height:32px; - inset-inline-end:8px; - inset-block-start:8px; - background:none; - border-radius:var(--message-bar-close-button-border-radius); - border:var(--message-bar-close-button-border); - } - -:is(:is(:is(.dialog .mainContainer) .messageBar) .closeButton)::before{ - content:""; - display:inline-block; - width:16px; - height:16px; - -webkit-mask-image:var(--closing-button-icon); - mask-image:var(--closing-button-icon); - -webkit-mask-size:cover; - mask-size:cover; - background-color:var(--message-bar-close-button-color); - } - -:is(:is(:is(.dialog .mainContainer) .messageBar) .closeButton):is(:hover,:active,:focus)::before{ - background-color:var(--message-bar-close-button-color-hover); - } - -:is(:is(:is(.dialog .mainContainer) .messageBar) .closeButton):hover{ - background-color:var(--message-bar-close-button-hover-bg-color); - } - -:is(:is(:is(.dialog .mainContainer) .messageBar) .closeButton):active{ - background-color:var(--message-bar-close-button-active-bg-color); - } - -:is(:is(:is(.dialog .mainContainer) .messageBar) .closeButton):focus{ - background-color:var(--message-bar-close-button-focus-bg-color); - } - -:is(:is(:is(.dialog .mainContainer) .messageBar) .closeButton) > span{ - display:inline-block; - width:0; - height:0; - overflow:hidden; - } - :is(.dialog .mainContainer) .toggler{ display:flex; align-items:center; @@ -1287,16 +1443,37 @@ transform:none; } -[data-main-rotation="90"]:is(.canvasWrapper svg) mask,[data-main-rotation="90"]:is(.canvasWrapper svg) use:not(.clip,.mask){ - transform:matrix(0, 1, -1, 0, 1, 0); +.moving:is(.canvasWrapper svg){ + z-index:100000; + } + +[data-main-rotation="90"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="90"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){ + transform:matrix(0, 1, -1, 0, 1, 0); + } + +[data-main-rotation="180"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="180"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){ + transform:matrix(-1, 0, 0, -1, 1, 1); + } + +[data-main-rotation="270"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="270"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){ + transform:matrix(0, -1, 1, 0, 0, 1); + } + +.draw:is(.canvasWrapper svg){ + position:absolute; + mix-blend-mode:normal; + } + +.draw[data-draw-rotation="90"]:is(.canvasWrapper svg){ + transform:rotate(90deg); } -[data-main-rotation="180"]:is(.canvasWrapper svg) mask,[data-main-rotation="180"]:is(.canvasWrapper svg) use:not(.clip,.mask){ - transform:matrix(-1, 0, 0, -1, 1, 1); +.draw[data-draw-rotation="180"]:is(.canvasWrapper svg){ + transform:rotate(180deg); } -[data-main-rotation="270"]:is(.canvasWrapper svg) mask,[data-main-rotation="270"]:is(.canvasWrapper svg) use:not(.clip,.mask){ - transform:matrix(0, -1, 1, 0, 0, 1); +.draw[data-draw-rotation="270"]:is(.canvasWrapper svg){ + transform:rotate(270deg); } .highlight:is(.canvasWrapper svg){ @@ -1636,20 +1813,20 @@ } .textLayer.highlighting{ - cursor:var(--editorFreeHighlight-editing-cursor); -} + cursor:var(--editorFreeHighlight-editing-cursor); + } .textLayer.highlighting:not(.free) span{ - cursor:var(--editorHighlight-editing-cursor); - } + cursor:var(--editorHighlight-editing-cursor); + } [role="img"]:is(.textLayer.highlighting:not(.free) span){ - cursor:var(--editorFreeHighlight-editing-cursor); - } + cursor:var(--editorFreeHighlight-editing-cursor); + } .textLayer.highlighting.free span{ - cursor:var(--editorFreeHighlight-editing-cursor); - } + cursor:var(--editorFreeHighlight-editing-cursor); + } :is(#viewerContainer.pdfPresentationMode:fullscreen,.annotationEditorLayer.disabled) .noAltTextBadge{ display:none !important; @@ -1721,6 +1898,10 @@ cursor:var(--editorInk-editing-cursor); } +.annotationEditorLayer .draw{ + box-sizing:border-box; +} + .annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor){ position:absolute; background:transparent; @@ -1736,10 +1917,6 @@ cursor:move; } -.moving:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor)){ - touch-action:none; - } - .selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor)){ border:var(--focus-outline); outline:var(--focus-outline-around); @@ -1874,6 +2051,10 @@ height:100%; } +:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor),.textLayer) .editToolbar) .buttons) button{ + padding:0; + } + :is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor),.textLayer) .editToolbar) .buttons) .divider{ width:0; height:calc( @@ -3074,21 +3255,16 @@ } :is(.pdfViewer .canvasWrapper) canvas{ + position:absolute; + top:0; + left:0; margin:0; display:block; width:100%; height:100%; + contain:content; } -[hidden]:is(:is(.pdfViewer .canvasWrapper) canvas){ - display:none; - } - -[zooming]:is(:is(.pdfViewer .canvasWrapper) canvas){ - width:100%; - height:100%; - } - :is(:is(.pdfViewer .canvasWrapper) canvas) .structTree{ contain:strict; } @@ -3862,14 +4038,14 @@ body.wait::before{ display:inline; } -.toggleButton:is(:hover,:has( > input:focus-visible)){ +.toggleButton:has( > input:checked){ color:var(--toggled-btn-color); - background-color:var(--button-hover-color); + background-color:var(--toggled-btn-bg-color); } -.toggleButton:has( > input:checked){ +.toggleButton:is(:hover,:has( > input:focus-visible)){ color:var(--toggled-btn-color); - background-color:var(--toggled-btn-bg-color); + background-color:var(--button-hover-color); } .toggleButton > input{ @@ -4226,6 +4402,7 @@ dialog :link{ font:message-box; flex:none; position:relative; + padding:0; } .toolbarButton > span{ diff --git a/viewer/viewer.html b/viewer/viewer.html index d3e10147..070952e5 100644 --- a/viewer/viewer.html +++ b/viewer/viewer.html @@ -248,7 +248,7 @@
- +
@@ -624,6 +624,20 @@ + +
diff --git a/viewer/viewer.mjs b/viewer/viewer.mjs index fad37d46..cecd5095 100644 --- a/viewer/viewer.mjs +++ b/viewer/viewer.mjs @@ -1311,7 +1311,9 @@ const { RenderingCancelledException, setLayerDimensions, shadow, + stopEvent, TextLayer, + TouchManager, UnexpectedResponseException, Util, VerbosityLevel, @@ -2913,7 +2915,7 @@ class L10n { try { await this.#l10n.translateElements([element]); } catch (ex) { - console.error(`translateOnce: "${ex}".`); + console.error("translateOnce:", ex); } } async destroy() { @@ -3032,7 +3034,7 @@ class genericl10n_GenericL10n extends L10n { yield this.#createBundleFallback(lang); } static async #createBundleFallback(lang) { - const text = "pdfjs-previous-button =\n .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n .title = Next Page\npdfjs-next-button-label = Next\npdfjs-page-input =\n .title = Page\npdfjs-of-pages = of { $pagesCount }\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n .title = Zoom\npdfjs-presentation-mode-button =\n .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n .title = Save\npdfjs-save-button-label = Save\npdfjs-download-button =\n .title = Download\npdfjs-download-button-label = Download\npdfjs-bookmark-button =\n .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\npdfjs-tools-button =\n .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\npdfjs-document-properties-button =\n .title = Document Properties\u2026\npdfjs-document-properties-button-label = Document Properties\u2026\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\npdfjs-document-properties-page-size-dimension-string = { $width } \xD7 { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } \xD7 { $height } { $unit } ({ $name }, { $orientation })\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\npdfjs-print-progress-message = Preparing document for printing\u2026\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\npdfjs-toggle-sidebar-button =\n .title = Toggle Sidebar\npdfjs-toggle-sidebar-notification-button =\n .title = Toggle Sidebar (document contains outline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n .title = Show Layers (double-click to reset all layers to the default state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\npdfjs-thumb-page-title =\n .title = Page { $page }\npdfjs-thumb-page-canvas =\n .aria-label = Thumbnail of Page { $page }\npdfjs-find-input =\n .title = Find\n .placeholder = Find in document\u2026\npdfjs-find-previous-button =\n .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\npdfjs-find-match-count =\n { $total ->\n [one] { $current } of { $total } match\n *[other] { $current } of { $total } matches\n }\npdfjs-find-match-count-limit =\n { $limit ->\n [one] More than { $limit } match\n *[other] More than { $limit } matches\n }\npdfjs-find-not-found = Phrase not found\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\npdfjs-page-scale-percent = { $scale }%\npdfjs-page-landmark =\n .aria-label = Page { $page }\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-text-annotation-type =\n .alt = [{ $type } Annotation]\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\npdfjs-editor-free-text-button =\n .title = Text\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n .title = Draw\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-highlight-floating-button1 =\n .title = Highlight\n .aria-label = Highlight\npdfjs-highlight-floating-button-label = Highlight\npdfjs-editor-remove-ink-button =\n .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n .title = Remove text\npdfjs-editor-remove-stamp-button =\n .title = Remove image\npdfjs-editor-remove-highlight-button =\n .title = Remove highlight\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\npdfjs-editor-free-highlight-thickness-input = Thickness\npdfjs-editor-free-highlight-thickness-title =\n .title = Change thickness when highlighting items other than text\npdfjs-free-text2 =\n .aria-label = Text Editor\n .default-content = Start typing\u2026\npdfjs-ink =\n .aria-label = Draw Editor\npdfjs-ink-canvas =\n .aria-label = User-created image\npdfjs-editor-alt-text-button =\n .aria-label = Alt text\npdfjs-editor-alt-text-button-label = Alt text\npdfjs-editor-alt-text-edit-button =\n .aria-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can\u2019t see the image or when it doesn\u2019t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\npdfjs-editor-alt-text-textarea =\n .placeholder = For example, \u201CA young man sits down at a table to eat a meal\u201D\npdfjs-editor-resizer-top-left =\n .aria-label = Top left corner \u2014 resize\npdfjs-editor-resizer-top-middle =\n .aria-label = Top middle \u2014 resize\npdfjs-editor-resizer-top-right =\n .aria-label = Top right corner \u2014 resize\npdfjs-editor-resizer-middle-right =\n .aria-label = Middle right \u2014 resize\npdfjs-editor-resizer-bottom-right =\n .aria-label = Bottom right corner \u2014 resize\npdfjs-editor-resizer-bottom-middle =\n .aria-label = Bottom middle \u2014 resize\npdfjs-editor-resizer-bottom-left =\n .aria-label = Bottom left corner \u2014 resize\npdfjs-editor-resizer-middle-left =\n .aria-label = Middle left \u2014 resize\npdfjs-editor-highlight-colorpicker-label = Highlight color\npdfjs-editor-colorpicker-button =\n .title = Change color\npdfjs-editor-colorpicker-dropdown =\n .aria-label = Color choices\npdfjs-editor-colorpicker-yellow =\n .title = Yellow\npdfjs-editor-colorpicker-green =\n .title = Green\npdfjs-editor-colorpicker-blue =\n .title = Blue\npdfjs-editor-colorpicker-pink =\n .title = Pink\npdfjs-editor-colorpicker-red =\n .title = Red\npdfjs-editor-highlight-show-all-button-label = Show all\npdfjs-editor-highlight-show-all-button =\n .title = Show all\npdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description)\npdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description)\npdfjs-editor-new-alt-text-textarea =\n .placeholder = Write your description here\u2026\npdfjs-editor-new-alt-text-description = Short description for people who can\u2019t see the image or when the image doesn\u2019t load.\npdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more\npdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically\npdfjs-editor-new-alt-text-not-now-button = Not now\npdfjs-editor-new-alt-text-error-title = Couldn\u2019t create alt text automatically\npdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later.\npdfjs-editor-new-alt-text-error-close-button = Close\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\npdfjs-editor-new-alt-text-added-button =\n .aria-label = Alt text added\npdfjs-editor-new-alt-text-added-button-label = Alt text added\npdfjs-editor-new-alt-text-missing-button =\n .aria-label = Missing alt text\npdfjs-editor-new-alt-text-missing-button-label = Missing alt text\npdfjs-editor-new-alt-text-to-review-button =\n .aria-label = Review alt text\npdfjs-editor-new-alt-text-to-review-button-label = Review alt text\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText }\npdfjs-image-alt-text-settings-button =\n .title = Image alt text settings\npdfjs-image-alt-text-settings-button-label = Image alt text settings\npdfjs-editor-alt-text-settings-dialog-label = Image alt text settings\npdfjs-editor-alt-text-settings-automatic-title = Automatic alt text\npdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically\npdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can\u2019t see the image or when the image doesn\u2019t load.\npdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text.\npdfjs-editor-alt-text-settings-delete-model-button = Delete\npdfjs-editor-alt-text-settings-download-model-button = Download\npdfjs-editor-alt-text-settings-downloading-model-button = Downloading\u2026\npdfjs-editor-alt-text-settings-editor-title = Alt text editor\npdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image\npdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.\npdfjs-editor-alt-text-settings-close-button = Close"; + const text = "pdfjs-previous-button =\n .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n .title = Next Page\npdfjs-next-button-label = Next\npdfjs-page-input =\n .title = Page\npdfjs-of-pages = of { $pagesCount }\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n .title = Zoom\npdfjs-presentation-mode-button =\n .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n .title = Save\npdfjs-save-button-label = Save\npdfjs-download-button =\n .title = Download\npdfjs-download-button-label = Download\npdfjs-bookmark-button =\n .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\npdfjs-tools-button =\n .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\npdfjs-document-properties-button =\n .title = Document Properties\u2026\npdfjs-document-properties-button-label = Document Properties\u2026\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\npdfjs-document-properties-page-size-dimension-string = { $width } \xD7 { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } \xD7 { $height } { $unit } ({ $name }, { $orientation })\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\npdfjs-print-progress-message = Preparing document for printing\u2026\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\npdfjs-toggle-sidebar-button =\n .title = Toggle Sidebar\npdfjs-toggle-sidebar-notification-button =\n .title = Toggle Sidebar (document contains outline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n .title = Show Layers (double-click to reset all layers to the default state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\npdfjs-thumb-page-title =\n .title = Page { $page }\npdfjs-thumb-page-canvas =\n .aria-label = Thumbnail of Page { $page }\npdfjs-find-input =\n .title = Find\n .placeholder = Find in document\u2026\npdfjs-find-previous-button =\n .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\npdfjs-find-match-count =\n { $total ->\n [one] { $current } of { $total } match\n *[other] { $current } of { $total } matches\n }\npdfjs-find-match-count-limit =\n { $limit ->\n [one] More than { $limit } match\n *[other] More than { $limit } matches\n }\npdfjs-find-not-found = Phrase not found\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\npdfjs-page-scale-percent = { $scale }%\npdfjs-page-landmark =\n .aria-label = Page { $page }\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-text-annotation-type =\n .alt = [{ $type } Annotation]\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\npdfjs-editor-free-text-button =\n .title = Text\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n .title = Draw\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-highlight-floating-button1 =\n .title = Highlight\n .aria-label = Highlight\npdfjs-highlight-floating-button-label = Highlight\npdfjs-editor-remove-ink-button =\n .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n .title = Remove text\npdfjs-editor-remove-stamp-button =\n .title = Remove image\npdfjs-editor-remove-highlight-button =\n .title = Remove highlight\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\npdfjs-editor-free-highlight-thickness-input = Thickness\npdfjs-editor-free-highlight-thickness-title =\n .title = Change thickness when highlighting items other than text\npdfjs-free-text2 =\n .aria-label = Text Editor\n .default-content = Start typing\u2026\npdfjs-ink =\n .aria-label = Draw Editor\npdfjs-ink-canvas =\n .aria-label = User-created image\npdfjs-editor-alt-text-button =\n .aria-label = Alt text\npdfjs-editor-alt-text-button-label = Alt text\npdfjs-editor-alt-text-edit-button =\n .aria-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can\u2019t see the image or when it doesn\u2019t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\npdfjs-editor-alt-text-textarea =\n .placeholder = For example, \u201CA young man sits down at a table to eat a meal\u201D\npdfjs-editor-resizer-top-left =\n .aria-label = Top left corner \u2014 resize\npdfjs-editor-resizer-top-middle =\n .aria-label = Top middle \u2014 resize\npdfjs-editor-resizer-top-right =\n .aria-label = Top right corner \u2014 resize\npdfjs-editor-resizer-middle-right =\n .aria-label = Middle right \u2014 resize\npdfjs-editor-resizer-bottom-right =\n .aria-label = Bottom right corner \u2014 resize\npdfjs-editor-resizer-bottom-middle =\n .aria-label = Bottom middle \u2014 resize\npdfjs-editor-resizer-bottom-left =\n .aria-label = Bottom left corner \u2014 resize\npdfjs-editor-resizer-middle-left =\n .aria-label = Middle left \u2014 resize\npdfjs-editor-highlight-colorpicker-label = Highlight color\npdfjs-editor-colorpicker-button =\n .title = Change color\npdfjs-editor-colorpicker-dropdown =\n .aria-label = Color choices\npdfjs-editor-colorpicker-yellow =\n .title = Yellow\npdfjs-editor-colorpicker-green =\n .title = Green\npdfjs-editor-colorpicker-blue =\n .title = Blue\npdfjs-editor-colorpicker-pink =\n .title = Pink\npdfjs-editor-colorpicker-red =\n .title = Red\npdfjs-editor-highlight-show-all-button-label = Show all\npdfjs-editor-highlight-show-all-button =\n .title = Show all\npdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description)\npdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description)\npdfjs-editor-new-alt-text-textarea =\n .placeholder = Write your description here\u2026\npdfjs-editor-new-alt-text-description = Short description for people who can\u2019t see the image or when the image doesn\u2019t load.\npdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more\npdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically\npdfjs-editor-new-alt-text-not-now-button = Not now\npdfjs-editor-new-alt-text-error-title = Couldn\u2019t create alt text automatically\npdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later.\npdfjs-editor-new-alt-text-error-close-button = Close\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\npdfjs-editor-new-alt-text-added-button =\n .aria-label = Alt text added\npdfjs-editor-new-alt-text-added-button-label = Alt text added\npdfjs-editor-new-alt-text-missing-button =\n .aria-label = Missing alt text\npdfjs-editor-new-alt-text-missing-button-label = Missing alt text\npdfjs-editor-new-alt-text-to-review-button =\n .aria-label = Review alt text\npdfjs-editor-new-alt-text-to-review-button-label = Review alt text\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText }\npdfjs-image-alt-text-settings-button =\n .title = Image alt text settings\npdfjs-image-alt-text-settings-button-label = Image alt text settings\npdfjs-editor-alt-text-settings-dialog-label = Image alt text settings\npdfjs-editor-alt-text-settings-automatic-title = Automatic alt text\npdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically\npdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can\u2019t see the image or when the image doesn\u2019t load.\npdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text.\npdfjs-editor-alt-text-settings-delete-model-button = Delete\npdfjs-editor-alt-text-settings-download-model-button = Download\npdfjs-editor-alt-text-settings-downloading-model-button = Downloading\u2026\npdfjs-editor-alt-text-settings-editor-title = Alt text editor\npdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image\npdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.\npdfjs-editor-alt-text-settings-close-button = Close\npdfjs-editor-undo-bar-message-highlight = Highlight removed\npdfjs-editor-undo-bar-message-freetext = Text removed\npdfjs-editor-undo-bar-message-ink = Drawing removed\npdfjs-editor-undo-bar-message-stamp = Image removed\npdfjs-editor-undo-bar-message-multiple =\n { $count ->\n [one] { $count } annotation removed\n *[other] { $count } annotations removed\n }\npdfjs-editor-undo-bar-undo-button =\n .title = Undo\npdfjs-editor-undo-bar-undo-button-label = Undo\npdfjs-editor-undo-bar-close-button =\n .title = Close\npdfjs-editor-undo-bar-close-button-label = Close"; return createBundle(lang, text); } } @@ -3191,7 +3193,7 @@ class FakeMLManager { return new Promise(resolve => { setTimeout(() => { resolve(data ? { - output: "Fake alt text" + output: "Fake alt text." } : { error: true }); @@ -3556,6 +3558,9 @@ class NewAltTextManager { this.#currentEditor = null; this.#uiManager = null; } + #extractWords(text) { + return new Set(text.toLowerCase().split(/[^\p{L}\p{N}]+/gu).filter(x => !!x)); + } #save() { const altText = this.#textarea.value.trim(); this.#currentEditor.altTextData = { @@ -3564,8 +3569,8 @@ class NewAltTextManager { }; this.#currentEditor.altTextData.guessedAltText = this.#guessedAltText; if (this.#guessedAltText && this.#guessedAltText !== altText) { - const guessedWords = new Set(this.#guessedAltText.split(/\s+/)); - const words = new Set(altText.split(/\s+/)); + const guessedWords = this.#extractWords(this.#guessedAltText); + const words = this.#extractWords(altText); this.#currentEditor._reportTelemetry({ action: "pdfjs.image.alt_text.user_edit", data: { @@ -4352,7 +4357,7 @@ class DownloadManager { window.open(viewerUrl); return true; } catch (ex) { - console.error(`openOrDownloadData: ${ex}`); + console.error("openOrDownloadData:", ex); URL.revokeObjectURL(blobUrl); this.#openBlobUrls.delete(data); } @@ -4377,6 +4382,92 @@ class DownloadManager { } } +;// ./web/editor_undo_bar.js + +class EditorUndoBar { + #closeButton = null; + #container; + #eventBus = null; + #focusTimeout = null; + #initController = null; + isOpen = false; + #message; + #showController = null; + #undoButton; + static #l10nMessages = Object.freeze({ + highlight: "pdfjs-editor-undo-bar-message-highlight", + freetext: "pdfjs-editor-undo-bar-message-freetext", + stamp: "pdfjs-editor-undo-bar-message-stamp", + ink: "pdfjs-editor-undo-bar-message-ink", + _multiple: "pdfjs-editor-undo-bar-message-multiple" + }); + constructor({ + container, + message, + undoButton, + closeButton + }, eventBus) { + this.#container = container; + this.#message = message; + this.#undoButton = undoButton; + this.#closeButton = closeButton; + this.#eventBus = eventBus; + } + destroy() { + this.#initController?.abort(); + this.#initController = null; + this.hide(); + } + show(undoAction, messageData) { + if (!this.#initController) { + this.#initController = new AbortController(); + const opts = { + signal: this.#initController.signal + }; + const boundHide = this.hide.bind(this); + this.#container.addEventListener("contextmenu", noContextMenu, opts); + this.#closeButton.addEventListener("click", boundHide, opts); + this.#eventBus._on("beforeprint", boundHide, opts); + this.#eventBus._on("download", boundHide, opts); + } + this.hide(); + if (typeof messageData === "string") { + this.#message.setAttribute("data-l10n-id", EditorUndoBar.#l10nMessages[messageData]); + } else { + this.#message.setAttribute("data-l10n-id", EditorUndoBar.#l10nMessages._multiple); + this.#message.setAttribute("data-l10n-args", JSON.stringify({ + count: messageData + })); + } + this.isOpen = true; + this.#container.hidden = false; + this.#showController = new AbortController(); + this.#undoButton.addEventListener("click", () => { + undoAction(); + this.hide(); + }, { + signal: this.#showController.signal + }); + this.#focusTimeout = setTimeout(() => { + this.#container.focus(); + this.#focusTimeout = null; + }, 100); + } + hide() { + if (!this.isOpen) { + return; + } + this.isOpen = false; + this.#container.hidden = true; + this.#showController?.abort(); + this.#showController = null; + if (this.#focusTimeout) { + clearTimeout(this.#focusTimeout); + this.#focusTimeout = null; + } + } +} + ;// ./web/overlay_manager.js class OverlayManager { #overlays = new WeakMap(); @@ -4691,6 +4782,7 @@ class PDFAttachmentViewer extends BaseTreeViewer { } ;// ./web/grab_to_pan.js + const CSS_CLASS_GRAB = "grab-to-pan-grab"; class GrabToPan { #activateAC = null; @@ -4760,8 +4852,7 @@ class GrabToPan { capture: true, signal: this.#scrollAC.signal }); - event.preventDefault(); - event.stopPropagation(); + stopEvent(event); const focusedElement = document.activeElement; if (focusedElement && !focusedElement.contains(event.target)) { focusedElement.blur(); @@ -4960,13 +5051,11 @@ class PDFDocumentProperties { this.#updateUI(); return; } - const { + const [{ info, contentLength - } = await this.pdfDocument.getMetadata(); - const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), this.#parseFileSize(contentLength), this.#parseDate(info.CreationDate), this.#parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { - return this.#parsePageSize(getPageSizeInches(pdfPage), pagesRotation); - }), this.#parseLinearization(info.IsLinearized)]); + }, pdfPage] = await Promise.all([this.pdfDocument.getMetadata(), this.pdfDocument.getPage(currentPageNumber)]); + const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), this.#parseFileSize(contentLength), this.#parseDate(info.CreationDate), this.#parseDate(info.ModDate), this.#parsePageSize(getPageSizeInches(pdfPage), pagesRotation), this.#parseLinearization(info.IsLinearized)]); this.#fieldData = Object.freeze({ fileName, fileSize, @@ -5251,7 +5340,7 @@ function normalize(text) { rawDiacriticsPositions.push([m[0].length, m.index]); } let normalized = text.normalize("NFD"); - const positions = [[0, 0]]; + const positions = [0, 0]; let rawDiacriticsIndex = 0; let syllableIndex = 0; let shift = 0; @@ -5264,7 +5353,7 @@ function normalize(text) { const replacement = CHARACTERS_TO_NORMALIZE[p1]; const jj = replacement.length; for (let j = 1; j < jj; j++) { - positions.push([i - shift + j, shift - j]); + positions.push(i - shift + j, shift - j); } shift -= jj - 1; return replacement; @@ -5277,7 +5366,7 @@ function normalize(text) { } const jj = replacement.length; for (let j = 1; j < jj; j++) { - positions.push([i - shift + j, shift - j]); + positions.push(i - shift + j, shift - j); } shift -= jj - 1; return replacement; @@ -5287,11 +5376,11 @@ function normalize(text) { if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { ++rawDiacriticsIndex; } else { - positions.push([i - 1 - shift + 1, shift - 1]); + positions.push(i - 1 - shift + 1, shift - 1); shift -= 1; shiftOrigin += 1; } - positions.push([i - shift + 1, shift]); + positions.push(i - shift + 1, shift); shiftOrigin += 1; eol += 1; return p3.charAt(0); @@ -5306,13 +5395,13 @@ function normalize(text) { ++rawDiacriticsIndex; } for (let j = 1; j <= jj; j++) { - positions.push([i - 1 - shift + j, shift - j]); + positions.push(i - 1 - shift + j, shift - j); } shift -= jj; shiftOrigin += jj; if (hasTrailingDashEOL) { i += len - 1; - positions.push([i - shift + 1, 1 + shift]); + positions.push(i - shift + 1, 1 + shift); shift += 1; shiftOrigin += 1; eol += 1; @@ -5321,15 +5410,13 @@ function normalize(text) { return p4; } if (p5) { - positions.push([i - shift + 3, 1 + shift]); - shift += 1; shiftOrigin += 1; eol += 1; return p5.replace("\n", ""); } if (p6) { const len = p6.length - 2; - positions.push([i - shift + len, 1 + shift]); + positions.push(i - shift + len, 1 + shift); shift += 1; shiftOrigin += 1; eol += 1; @@ -5337,13 +5424,13 @@ function normalize(text) { } if (p7) { const len = p7.length - 1; - positions.push([i - shift + len, shift]); + positions.push(i - shift + len, shift); shiftOrigin += 1; eol += 1; return p7.slice(0, -1); } if (p8) { - positions.push([i - shift + 1, shift - 1]); + positions.push(i - shift + 1, shift - 1); shift -= 1; shiftOrigin += 1; eol += 1; @@ -5353,32 +5440,39 @@ function normalize(text) { const newCharLen = syllablePositions[syllableIndex][0] - 1; ++syllableIndex; for (let j = 1; j <= newCharLen; j++) { - positions.push([i - (shift - j), shift - j]); + positions.push(i - (shift - j), shift - j); } shift -= newCharLen; shiftOrigin += newCharLen; } return p9; }); - positions.push([normalized.length, shift]); - return [normalized, positions, hasDiacritics]; + positions.push(normalized.length, shift); + const starts = new Uint32Array(positions.length >> 1); + const shifts = new Int32Array(positions.length >> 1); + for (let i = 0, ii = positions.length; i < ii; i += 2) { + starts[i >> 1] = positions[i]; + shifts[i >> 1] = positions[i + 1]; + } + return [normalized, [starts, shifts], hasDiacritics]; } function getOriginalIndex(diffs, pos, len) { if (!diffs) { return [pos, len]; } + const [starts, shifts] = diffs; const start = pos; const end = pos + len - 1; - let i = binarySearchFirstItem(diffs, x => x[0] >= start); - if (diffs[i][0] > start) { + let i = binarySearchFirstItem(starts, x => x >= start); + if (starts[i] > start) { --i; } - let j = binarySearchFirstItem(diffs, x => x[0] >= end, i); - if (diffs[j][0] > end) { + let j = binarySearchFirstItem(starts, x => x >= end, i); + if (starts[j] > end) { --j; } - const oldStart = start + diffs[i][1]; - const oldEnd = end + diffs[j][1]; + const oldStart = start + shifts[i]; + const oldEnd = end + shifts[j]; const oldLen = oldEnd + 1 - oldStart; return [oldStart, oldLen]; } @@ -5937,17 +6031,25 @@ class PDFFindBar { this.findNextButton = options.findNextButton; this.eventBus = eventBus; this.#mainContainer = mainContainer; + const checkedInputs = new Map([[this.highlightAll, "highlightallchange"], [this.caseSensitive, "casesensitivitychange"], [this.entireWord, "entirewordchange"], [this.matchDiacritics, "diacriticmatchingchange"]]); this.toggleButton.addEventListener("click", () => { this.toggle(); }); this.findField.addEventListener("input", () => { this.dispatchEvent(""); }); - this.bar.addEventListener("keydown", e => { - switch (e.keyCode) { + this.bar.addEventListener("keydown", ({ + keyCode, + shiftKey, + target + }) => { + switch (keyCode) { case 13: - if (e.target === this.findField) { - this.dispatchEvent("again", e.shiftKey); + if (target === this.findField) { + this.dispatchEvent("again", shiftKey); + } else if (checkedInputs.has(target)) { + target.checked = !target.checked; + this.dispatchEvent(checkedInputs.get(target)); } break; case 27: @@ -5961,18 +6063,11 @@ class PDFFindBar { this.findNextButton.addEventListener("click", () => { this.dispatchEvent("again", false); }); - this.highlightAll.addEventListener("click", () => { - this.dispatchEvent("highlightallchange"); - }); - this.caseSensitive.addEventListener("click", () => { - this.dispatchEvent("casesensitivitychange"); - }); - this.entireWord.addEventListener("click", () => { - this.dispatchEvent("entirewordchange"); - }); - this.matchDiacritics.addEventListener("click", () => { - this.dispatchEvent("diacriticmatchingchange"); - }); + for (const [elem, evtName] of checkedInputs) { + elem.addEventListener("click", () => { + this.dispatchEvent(evtName); + }); + } } reset() { this.updateUIState(); @@ -7739,7 +7834,7 @@ class PDFRenderingQueue { if (reason instanceof RenderingCancelledException) { return; } - console.error(`renderView: "${reason}"`); + console.error("renderView:", reason); }); break; } @@ -7793,7 +7888,7 @@ class PDFScriptingManager { try { this.#scripting = this.#initScripting(); } catch (error) { - console.error(`setDocument: "${error.message}".`); + console.error("setDocument:", error); await this.#destroyScripting(); return; } @@ -7870,7 +7965,7 @@ class PDFScriptingManager { source: this }); } catch (error) { - console.error(`setDocument: "${error.message}".`); + console.error("setDocument:", error); await this.#destroyScripting(); return; } @@ -9014,6 +9109,7 @@ class AnnotationEditorLayerBuilder { if (!this.div) { return; } + this.annotationEditorLayer.pause(true); this.div.hidden = true; } show() { @@ -9021,6 +9117,7 @@ class AnnotationEditorLayerBuilder { return; } this.div.hidden = false; + this.annotationEditorLayer.pause(false); } } @@ -9675,7 +9772,14 @@ class TextHighlighter { span.className = `${className} appended`; span.append(node); div.append(span); - return className.includes("selected") ? span.offsetLeft : 0; + if (className.includes("selected")) { + const { + left + } = span.getClientRects()[0]; + const parentLeft = div.getBoundingClientRect().left; + return left - parentLeft; + } + return 0; } div.append(node); return 0; @@ -9857,8 +9961,7 @@ class TextLayerBuilder { const selection = document.getSelection(); event.clipboardData.setData("text/plain", removeNullCharacters(normalizeUnicode(selection.toString()))); } - event.preventDefault(); - event.stopPropagation(); + stopEvent(event); }); TextLayerBuilder.#textLayers.set(div, end); TextLayerBuilder.#enableGlobalSelectionListener(); @@ -9974,11 +10077,13 @@ const DEFAULT_LAYER_PROPERTIES = null; const LAYERS_ORDER = new Map([["canvasWrapper", 0], ["textLayer", 1], ["annotationLayer", 2], ["annotationEditorLayer", 3], ["xfaLayer", 3]]); class PDFPageView { #annotationMode = AnnotationMode.ENABLE_FORMS; + #canvasWrapper = null; #enableHWA = false; #hasRestrictedScaling = false; #isEditing = false; #layerProperties = null; #loadingId = null; + #originalViewport = null; #previousRotation = null; #scaleRoundX = 1; #scaleRoundY = 1; @@ -9990,7 +10095,6 @@ class PDFPageView { initialOptionalContent: true, regularAnnotations: true }; - #viewportMap = new WeakMap(); #layers = [null, null, null, null]; constructor(options) { const container = options.container; @@ -10023,7 +10127,6 @@ class PDFPageView { this.annotationLayer = null; this.annotationEditorLayer = null; this.textLayer = null; - this.zoomLayer = null; this.xfaLayer = null; this.structTreeLayer = null; this.drawLayer = null; @@ -10160,7 +10263,7 @@ class PDFPageView { structTreeLayer: this.structTreeLayer }, "display"); } catch (ex) { - console.error(`#renderAnnotationLayer: "${ex}".`); + console.error("#renderAnnotationLayer:", ex); error = ex; } finally { this.#dispatchLayerRendered("annotationlayerrendered", error); @@ -10171,7 +10274,7 @@ class PDFPageView { try { await this.annotationEditorLayer.render(this.viewport, "display"); } catch (ex) { - console.error(`#renderAnnotationEditorLayer: "${ex}".`); + console.error("#renderAnnotationEditorLayer:", ex); error = ex; } finally { this.#dispatchLayerRendered("annotationeditorlayerrendered", error); @@ -10181,7 +10284,7 @@ class PDFPageView { try { await this.drawLayer.render("display"); } catch (ex) { - console.error(`#renderDrawLayer: "${ex}".`); + console.error("#renderDrawLayer:", ex); } } async #renderXfaLayer() { @@ -10192,7 +10295,7 @@ class PDFPageView { this.#buildXfaTextContentItems(result.textDivs); } } catch (ex) { - console.error(`#renderXfaLayer: "${ex}".`); + console.error("#renderXfaLayer:", ex); error = ex; } finally { if (this.xfaLayer?.div) { @@ -10214,7 +10317,7 @@ class PDFPageView { if (ex instanceof AbortException) { return; } - console.error(`#renderTextLayer: "${ex}".`); + console.error("#renderTextLayer:", ex); error = ex; } this.#dispatchLayerRendered("textlayerrendered", error); @@ -10244,25 +10347,24 @@ class PDFPageView { this._textHighlighter.setTextMapping(textDivs, items); this._textHighlighter.enable(); } - _resetZoomLayer(removeFromDOM = false) { - if (!this.zoomLayer) { + #resetCanvas() { + const { + canvas + } = this; + if (!canvas) { return; } - const zoomLayerCanvas = this.zoomLayer.firstChild; - this.#viewportMap.delete(zoomLayerCanvas); - zoomLayerCanvas.width = 0; - zoomLayerCanvas.height = 0; - if (removeFromDOM) { - this.zoomLayer.remove(); - } - this.zoomLayer = null; + canvas.remove(); + canvas.width = canvas.height = 0; + this.canvas = null; + this.#originalViewport = null; } reset({ - keepZoomLayer = false, keepAnnotationLayer = false, keepAnnotationEditorLayer = false, keepXfaLayer = false, - keepTextLayer = false + keepTextLayer = false, + keepCanvasWrapper = false } = {}) { this.cancelRendering({ keepAnnotationLayer, @@ -10273,19 +10375,19 @@ class PDFPageView { this.renderingState = RenderingStates.INITIAL; const div = this.div; const childNodes = div.childNodes, - zoomLayerNode = keepZoomLayer && this.zoomLayer || null, annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null, annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null, xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null, - textLayerNode = keepTextLayer && this.textLayer?.div || null; + textLayerNode = keepTextLayer && this.textLayer?.div || null, + canvasWrapperNode = keepCanvasWrapper && this.#canvasWrapper || null; for (let i = childNodes.length - 1; i >= 0; i--) { const node = childNodes[i]; switch (node) { - case zoomLayerNode: case annotationLayerNode: case annotationEditorLayerNode: case xfaLayerNode: case textLayerNode: + case canvasWrapperNode: continue; } node.remove(); @@ -10308,14 +10410,9 @@ class PDFPageView { this.textLayer.hide(); } this.structTreeLayer?.hide(); - if (!zoomLayerNode) { - if (this.canvas) { - this.#viewportMap.delete(this.canvas); - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - this._resetZoomLayer(); + if (!keepCanvasWrapper && this.#canvasWrapper) { + this.#canvasWrapper = null; + this.#resetCanvas(); } } toggleEditingMode(isEditing) { @@ -10324,11 +10421,11 @@ class PDFPageView { } this.#isEditing = isEditing; this.reset({ - keepZoomLayer: true, keepAnnotationLayer: true, keepAnnotationEditorLayer: true, keepXfaLayer: true, - keepTextLayer: true + keepTextLayer: true, + keepCanvasWrapper: true }); } update({ @@ -10381,7 +10478,6 @@ class PDFPageView { if (postponeDrawing || onlyCssZoom) { if (postponeDrawing && !onlyCssZoom && this.renderingState !== RenderingStates.FINISHED) { this.cancelRendering({ - keepZoomLayer: true, keepAnnotationLayer: true, keepAnnotationEditorLayer: true, keepXfaLayer: true, @@ -10392,7 +10488,6 @@ class PDFPageView { this.#useThumbnailCanvas.directDrawing = false; } this.cssTransform({ - target: this.canvas, redrawAnnotationLayer: true, redrawAnnotationEditorLayer: true, redrawXfaLayer: true, @@ -10411,22 +10506,14 @@ class PDFPageView { }); return; } - if (!this.zoomLayer && !this.canvas.hidden) { - this.zoomLayer = this.canvas.parentNode; - this.zoomLayer.style.position = "absolute"; - } - } - if (this.zoomLayer) { - this.cssTransform({ - target: this.zoomLayer.firstChild - }); } + this.cssTransform({}); this.reset({ - keepZoomLayer: true, keepAnnotationLayer: true, keepAnnotationEditorLayer: true, keepXfaLayer: true, - keepTextLayer: true + keepTextLayer: true, + keepCanvasWrapper: true }); } cancelRendering({ @@ -10468,35 +10555,32 @@ class PDFPageView { } } cssTransform({ - target, redrawAnnotationLayer = false, redrawAnnotationEditorLayer = false, redrawXfaLayer = false, redrawTextLayer = false, hideTextLayer = false }) { - if (!target.hasAttribute("zooming")) { - target.setAttribute("zooming", true); - const { - style - } = target; - style.width = style.height = ""; + const { + canvas + } = this; + if (!canvas) { + return; } - const originalViewport = this.#viewportMap.get(target); + const originalViewport = this.#originalViewport; if (this.viewport !== originalViewport) { - const relativeRotation = this.viewport.rotation - originalViewport.rotation; - const absRotation = Math.abs(relativeRotation); - let scaleX = 1, - scaleY = 1; - if (absRotation === 90 || absRotation === 270) { + const relativeRotation = (360 + this.viewport.rotation - originalViewport.rotation) % 360; + if (relativeRotation === 90 || relativeRotation === 270) { const { width, height } = this.viewport; - scaleX = height / width; - scaleY = width / height; + const scaleX = height / width; + const scaleY = width / height; + canvas.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX},${scaleY})`; + } else { + canvas.style.transform = relativeRotation === 0 ? "" : `rotate(${relativeRotation}deg)`; } - target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; } if (redrawAnnotationLayer && this.annotationLayer) { this.#renderAnnotationLayer(); @@ -10538,7 +10622,6 @@ class PDFPageView { } this.#renderError = error; this.renderingState = RenderingStates.FINISHED; - this._resetZoomLayer(true); this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots; this.eventBus.dispatch("pagerendered", { source: this, @@ -10568,9 +10651,12 @@ class PDFPageView { throw new Error("pdfPage is not loaded"); } this.renderingState = RenderingStates.RUNNING; - const canvasWrapper = document.createElement("div"); - canvasWrapper.classList.add("canvasWrapper"); - this.#addLayer(canvasWrapper, "canvasWrapper"); + let canvasWrapper = this.#canvasWrapper; + if (!canvasWrapper) { + canvasWrapper = this.#canvasWrapper = document.createElement("div"); + canvasWrapper.classList.add("canvasWrapper"); + this.#addLayer(canvasWrapper, "canvasWrapper"); + } if (!this.textLayer && this.#textLayerMode !== TextLayerMode.DISABLE && !pdfPage.isPureXfa) { this._accessibilityManager ||= new TextAccessibilityManager(); this.textLayer = new TextLayerBuilder({ @@ -10632,16 +10718,28 @@ class PDFPageView { } = viewport; const canvas = document.createElement("canvas"); canvas.setAttribute("role", "presentation"); - canvas.hidden = true; const hasHCM = !!(pageColors?.background && pageColors?.foreground); + const prevCanvas = this.canvas; + const updateOnFirstShow = !prevCanvas && !hasHCM; + this.canvas = canvas; + this.#originalViewport = viewport; let showCanvas = isLastShow => { - if (!hasHCM || isLastShow) { - canvas.hidden = false; + if (updateOnFirstShow) { + canvasWrapper.prepend(canvas); showCanvas = null; + return; } + if (!isLastShow) { + return; + } + if (prevCanvas) { + prevCanvas.replaceWith(canvas); + prevCanvas.width = prevCanvas.height = 0; + } else { + canvasWrapper.prepend(canvas); + } + showCanvas = null; }; - canvasWrapper.append(canvas); - this.canvas = canvas; const ctx = canvas.getContext("2d", { alpha: false, willReadFrequently: !this.#enableHWA @@ -10679,7 +10777,6 @@ class PDFPageView { div.style.setProperty("--scale-round-y", `${sfy[1]}px`); this.#scaleRoundY = sfy[1]; } - this.#viewportMap.set(canvas, viewport); const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; const renderContext = { canvasContext: ctx, @@ -10729,6 +10826,9 @@ class PDFPageView { }, error => { if (!(error instanceof RenderingCancelledException)) { showCanvas?.(true); + } else { + prevCanvas?.remove(); + this.#resetCanvas(); } return this.#finishRenderTask(renderTask, error); }); @@ -10846,6 +10946,7 @@ class PDFViewer { #annotationEditorUIManager = null; #annotationMode = AnnotationMode.ENABLE_FORMS; #containerTopLeft = null; + #editorUndoBar = null; #enableHWA = false; #enableHighlightFloatingButton = false; #enablePermissions = false; @@ -10862,9 +10963,10 @@ class PDFViewer { #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); #scrollModePageState = null; #scaleTimeoutId = null; + #supportsPinchToZoom = true; #textLayerMode = TextLayerMode.ENABLE; constructor(options) { - const viewerVersion = "4.8.69"; + const viewerVersion = "4.10.38"; if (version !== viewerVersion) { throw new Error(`The API version "${version}" does not match the Viewer version "${viewerVersion}".`); } @@ -10882,6 +10984,7 @@ class PDFViewer { this.downloadManager = options.downloadManager || null; this.findController = options.findController || null; this.#altTextManager = options.altTextManager || null; + this.#editorUndoBar = options.editorUndoBar || null; if (this.findController) { this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber); } @@ -10903,6 +11006,7 @@ class PDFViewer { this.pageColors = options.pageColors || null; this.#mlManager = options.mlManager || null; this.#enableHWA = options.enableHWA || false; + this.#supportsPinchToZoom = options.supportsPinchToZoom !== false; this.defaultRenderingQueue = !options.renderingQueue; if (this.defaultRenderingQueue) { this.renderingQueue = new PDFRenderingQueue(); @@ -11179,8 +11283,7 @@ class PDFViewer { } = selection; if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) { if (this.#getAllTextInProgress || textLayerMode === TextLayerMode.ENABLE_PERMISSIONS) { - event.preventDefault(); - event.stopPropagation(); + stopEvent(event); return; } this.#getAllTextInProgress = true; @@ -11204,8 +11307,7 @@ class PDFViewer { ac.abort(); classList.remove("copyAll"); }); - event.preventDefault(); - event.stopPropagation(); + stopEvent(event); } } setDocument(pdfDocument) { @@ -11296,7 +11398,7 @@ class PDFViewer { if (pdfDocument.isPureXfa) { console.warn("Warning: XFA-editing is not implemented."); } else if (isValidAnnotationEditorMode(mode)) { - this.#annotationEditorUIManager = new AnnotationEditorUIManager(this.container, viewer, this.#altTextManager, eventBus, pdfDocument, pageColors, this.#annotationEditorHighlightColors, this.#enableHighlightFloatingButton, this.#enableUpdatedAddImage, this.#enableNewAltTextWhenAddingImage, this.#mlManager); + this.#annotationEditorUIManager = new AnnotationEditorUIManager(this.container, viewer, this.#altTextManager, eventBus, pdfDocument, pageColors, this.#annotationEditorHighlightColors, this.#enableHighlightFloatingButton, this.#enableUpdatedAddImage, this.#enableNewAltTextWhenAddingImage, this.#mlManager, this.#editorUndoBar, this.#supportsPinchToZoom); eventBus.dispatch("annotationeditoruimanager", { source: this, uiManager: this.#annotationEditorUIManager @@ -13053,6 +13155,7 @@ class ViewHistory { + const FORCE_PAGES_LOADED_TIMEOUT = 10000; @@ -13110,22 +13213,23 @@ const PDFViewerApplication = { _saveInProgress: false, _wheelUnusedTicks: 0, _wheelUnusedFactor: 1, + _touchManager: null, _touchUnusedTicks: 0, _touchUnusedFactor: 1, _PDFBug: null, _hasAnnotationEditors: false, _title: document.title, _printAnnotationStoragePromise: null, - _touchInfo: null, _isCtrlKeyDown: false, _caretBrowsing: null, _isScrolling: false, + editorUndoBar: null, async initialize(appConfig) { this.appConfig = appConfig; try { await this.preferences.initializedPromise; } catch (ex) { - console.error(`initialize: "${ex.message}".`); + console.error("initialize:", ex); } if (AppOptions.get("pdfBugEnabled")) { await this._parseHashParams(); @@ -13178,7 +13282,7 @@ const PDFViewerApplication = { GlobalWorkerOptions.workerSrc ||= AppOptions.get("workerSrc"); await import(/*webpackIgnore: true*/PDFWorker.workerSrc); } catch (ex) { - console.error(`_parseHashParams: "${ex.message}".`); + console.error("_parseHashParams:", ex); } } if (params.has("textlayer")) { @@ -13194,7 +13298,7 @@ const PDFViewerApplication = { await loadPDFBug(); this._PDFBug.loadCSS(); } catch (ex) { - console.error(`_parseHashParams: "${ex.message}".`); + console.error("_parseHashParams:", ex); } break; } @@ -13209,7 +13313,7 @@ const PDFViewerApplication = { await loadPDFBug(); this._PDFBug.init(mainContainer, enabled); } catch (ex) { - console.error(`_parseHashParams: "${ex.message}".`); + console.error("_parseHashParams:", ex); } } if (params.has("locale")) { @@ -13279,6 +13383,9 @@ const PDFViewerApplication = { } else { altTextManager = appConfig.altTextDialog ? new AltTextManager(appConfig.altTextDialog, container, this.overlayManager, eventBus) : null; } + if (appConfig.editorUndoBar) { + this.editorUndoBar = new EditorUndoBar(appConfig.editorUndoBar, eventBus); + } const enableHWA = AppOptions.get("enableHWA"); const pdfViewer = new PDFViewer({ container, @@ -13288,6 +13395,7 @@ const PDFViewerApplication = { linkService: pdfLinkService, downloadManager, altTextManager, + editorUndoBar: this.editorUndoBar, findController, scriptingManager: AppOptions.get("enableScripting") && pdfScriptingManager, l10n, @@ -13305,7 +13413,8 @@ const PDFViewerApplication = { pageColors, mlManager: this.mlManager, abortSignal: this._globalAbortController.signal, - enableHWA + enableHWA, + supportsPinchToZoom: this.supportsPinchToZoom }); this.pdfViewer = pdfViewer; pdfRenderingQueue.setViewer(pdfViewer); @@ -13449,8 +13558,7 @@ const PDFViewerApplication = { for (const item of evt.dataTransfer.items) { if (item.type === "application/pdf") { evt.dataTransfer.dropEffect = evt.dataTransfer.effectAllowed === "copy" ? "copy" : "move"; - evt.preventDefault(); - evt.stopPropagation(); + stopEvent(evt); return; } } @@ -13459,8 +13567,7 @@ const PDFViewerApplication = { if (evt.dataTransfer.files?.[0].type !== "application/pdf") { return; } - evt.preventDefault(); - evt.stopPropagation(); + stopEvent(evt); eventBus.dispatch("fileinputchange", { source: this, fileInput: evt.dataTransfer @@ -13522,6 +13629,20 @@ const PDFViewerApplication = { } this.pdfViewer.currentScaleValue = DEFAULT_SCALE_VALUE; }, + touchPinchCallback(origin, prevDistance, distance) { + if (this.supportsPinchToZoom) { + const newScaleFactor = this._accumulateFactor(this.pdfViewer.currentScale, distance / prevDistance, "_touchUnusedFactor"); + this.updateZoom(null, newScaleFactor, origin); + } else { + const PIXELS_PER_LINE_SCALE = 30; + const ticks = this._accumulateTicks((distance - prevDistance) / PIXELS_PER_LINE_SCALE, "_touchUnusedTicks"); + this.updateZoom(ticks, null, origin); + } + }, + touchPinchEndCallback() { + this._touchUnusedTicks = 0; + this._touchUnusedFactor = 1; + }, get pagesCount() { return this.pdfDocument ? this.pdfDocument.numPages : 0; }, @@ -13711,7 +13832,7 @@ const PDFViewerApplication = { const data = await this.pdfDocument.saveDocument(); this.downloadManager.download(data, this._downloadUrl, this._docFilename); } catch (reason) { - console.error(`Error when saving the document: ${reason.message}`); + console.error(`Error when saving the document:`, reason); await this.download(); } finally { await this.pdfScriptingManager.dispatchDidSave(); @@ -14291,6 +14412,16 @@ const PDFViewerApplication = { signal } } = this; + if (typeof AbortSignal.any === "function") { + this._touchManager = new TouchManager({ + container: window, + isPinchingDisabled: () => pdfViewer.isInPresentationMode, + isPinchingStopped: () => this.overlayManager?.active, + onPinching: this.touchPinchCallback.bind(this), + onPinchEnd: this.touchPinchEndCallback.bind(this), + signal + }); + } function addWindowResolutionChange(evt = null) { if (evt) { pdfViewer.refresh(); @@ -14306,18 +14437,6 @@ const PDFViewerApplication = { passive: false, signal }); - window.addEventListener("touchstart", onTouchStart.bind(this), { - passive: false, - signal - }); - window.addEventListener("touchmove", onTouchMove.bind(this), { - passive: false, - signal - }); - window.addEventListener("touchend", onTouchEnd.bind(this), { - passive: false, - signal - }); window.addEventListener("click", onClick.bind(this), { signal }); @@ -14406,6 +14525,7 @@ const PDFViewerApplication = { unbindWindowEvents() { this._windowAbortController?.abort(); this._windowAbortController = null; + this._touchManager = null; }, async testingClose() { this.unbindEvents(); @@ -14727,118 +14847,26 @@ function onWheel(evt) { } } } -function onTouchStart(evt) { - if (this.pdfViewer.isInPresentationMode || evt.touches.length < 2) { - return; - } - evt.preventDefault(); - if (evt.touches.length !== 2 || this.overlayManager.active) { - this._touchInfo = null; +function closeSecondaryToolbar(evt) { + if (!this.secondaryToolbar?.isOpen) { return; } - let [touch0, touch1] = evt.touches; - if (touch0.identifier > touch1.identifier) { - [touch0, touch1] = [touch1, touch0]; + const appConfig = this.appConfig; + if (this.pdfViewer.containsElement(evt.target) || appConfig.toolbar?.container.contains(evt.target) && !appConfig.secondaryToolbar?.toggleButton.contains(evt.target)) { + this.secondaryToolbar.close(); } - this._touchInfo = { - touch0X: touch0.pageX, - touch0Y: touch0.pageY, - touch1X: touch1.pageX, - touch1Y: touch1.pageY - }; } -function onTouchMove(evt) { - if (!this._touchInfo || evt.touches.length !== 2) { +function closeEditorUndoBar(evt) { + if (!this.editorUndoBar?.isOpen) { return; } - const { - pdfViewer, - _touchInfo, - supportsPinchToZoom - } = this; - let [touch0, touch1] = evt.touches; - if (touch0.identifier > touch1.identifier) { - [touch0, touch1] = [touch1, touch0]; - } - const { - pageX: page0X, - pageY: page0Y - } = touch0; - const { - pageX: page1X, - pageY: page1Y - } = touch1; - const { - touch0X: pTouch0X, - touch0Y: pTouch0Y, - touch1X: pTouch1X, - touch1Y: pTouch1Y - } = _touchInfo; - if (Math.abs(pTouch0X - page0X) <= 1 && Math.abs(pTouch0Y - page0Y) <= 1 && Math.abs(pTouch1X - page1X) <= 1 && Math.abs(pTouch1Y - page1Y) <= 1) { - return; - } - _touchInfo.touch0X = page0X; - _touchInfo.touch0Y = page0Y; - _touchInfo.touch1X = page1X; - _touchInfo.touch1Y = page1Y; - if (pTouch0X === page0X && pTouch0Y === page0Y) { - const v1X = pTouch1X - page0X; - const v1Y = pTouch1Y - page0Y; - const v2X = page1X - page0X; - const v2Y = page1Y - page0Y; - const det = v1X * v2Y - v1Y * v2X; - if (Math.abs(det) > 0.02 * Math.hypot(v1X, v1Y) * Math.hypot(v2X, v2Y)) { - return; - } - } else if (pTouch1X === page1X && pTouch1Y === page1Y) { - const v1X = pTouch0X - page1X; - const v1Y = pTouch0Y - page1Y; - const v2X = page0X - page1X; - const v2Y = page0Y - page1Y; - const det = v1X * v2Y - v1Y * v2X; - if (Math.abs(det) > 0.02 * Math.hypot(v1X, v1Y) * Math.hypot(v2X, v2Y)) { - return; - } - } else { - const diff0X = page0X - pTouch0X; - const diff1X = page1X - pTouch1X; - const diff0Y = page0Y - pTouch0Y; - const diff1Y = page1Y - pTouch1Y; - const dotProduct = diff0X * diff1X + diff0Y * diff1Y; - if (dotProduct >= 0) { - return; - } - } - evt.preventDefault(); - const origin = [(page0X + page1X) / 2, (page0Y + page1Y) / 2]; - const distance = Math.hypot(page0X - page1X, page0Y - page1Y) || 1; - const pDistance = Math.hypot(pTouch0X - pTouch1X, pTouch0Y - pTouch1Y) || 1; - if (supportsPinchToZoom) { - const newScaleFactor = this._accumulateFactor(pdfViewer.currentScale, distance / pDistance, "_touchUnusedFactor"); - this.updateZoom(null, newScaleFactor, origin); - } else { - const PIXELS_PER_LINE_SCALE = 30; - const ticks = this._accumulateTicks((distance - pDistance) / PIXELS_PER_LINE_SCALE, "_touchUnusedTicks"); - this.updateZoom(ticks, null, origin); + if (this.appConfig.secondaryToolbar?.toolbar.contains(evt.target)) { + this.editorUndoBar.hide(); } } -function onTouchEnd(evt) { - if (!this._touchInfo) { - return; - } - evt.preventDefault(); - this._touchInfo = null; - this._touchUnusedTicks = 0; - this._touchUnusedFactor = 1; -} function onClick(evt) { - if (!this.secondaryToolbar?.isOpen) { - return; - } - const appConfig = this.appConfig; - if (this.pdfViewer.containsElement(evt.target) || appConfig.toolbar?.container.contains(evt.target) && !appConfig.secondaryToolbar?.toggleButton.contains(evt.target)) { - this.secondaryToolbar.close(); - } + closeSecondaryToolbar.call(this, evt); + closeEditorUndoBar.call(this, evt); } function onKeyUp(evt) { if (evt.key === "Control") { @@ -14847,6 +14875,9 @@ function onKeyUp(evt) { } function onKeyDown(evt) { this._isCtrlKeyDown = evt.key === "Control"; + if (this.editorUndoBar?.isOpen && evt.keyCode !== 9 && evt.keyCode !== 16 && !((evt.keyCode === 13 || evt.keyCode === 32) && getActiveOrFocusedElement() === this.appConfig.editorUndoBar.undoButton)) { + this.editorUndoBar.hide(); + } if (this.overlayManager.active) { return; } @@ -15130,8 +15161,8 @@ function beforeUnload(evt) { -const pdfjsVersion = "4.8.69"; -const pdfjsBuild = "3634dab10"; +const pdfjsVersion = "4.10.38"; +const pdfjsBuild = "f9bea397f"; const AppConstants = { LinkTarget: LinkTarget, RenderingStates: RenderingStates, @@ -15296,7 +15327,13 @@ function getViewerConfiguration() { editorFreeHighlightThickness: document.getElementById("editorFreeHighlightThickness"), editorHighlightShowAll: document.getElementById("editorHighlightShowAll") }, - printContainer: document.getElementById("printContainer") + printContainer: document.getElementById("printContainer"), + editorUndoBar: { + container: document.getElementById("editorUndoBar"), + message: document.getElementById("editorUndoBarMessage"), + undoButton: document.getElementById("editorUndoBarUndoButton"), + closeButton: document.getElementById("editorUndoBarCloseButton") + } }; } function webViewerLoad() { @@ -15311,7 +15348,7 @@ function webViewerLoad() { try { parent.document.dispatchEvent(event); } catch (ex) { - // console.error(`webviewerloaded: ${ex}`); + // console.error("webviewerloaded:", ex); document.dispatchEvent(event); } PDFViewerApplication.run(config);