From d7e3a4bfe6b2b98b2aa6f66bda2be5e544ab54db Mon Sep 17 00:00:00 2001 From: James Yu Date: Wed, 13 Dec 2023 10:29:46 +0000 Subject: [PATCH] Update pdf.js to v4.0.269 --- .vscodeignore | 1 + dev/editviewer.py | 6 +- dev/viewer/viewer.html.diff | 20 +- dev/viewer/viewer.mjs.diff | 136 +- package-lock.json | 182 +- package.json | 26 +- viewer/components/utils.ts | 3 + viewer/images/editor-toolbar-delete.svg | 5 + viewer/images/loading-dark.svg | 24 - viewer/latexworkshop.css | 6 - viewer/latexworkshop.ts | 48 +- viewer/locale/be/viewer.ftl | 25 + viewer/locale/cy/viewer.ftl | 2 + viewer/locale/da/viewer.ftl | 8 + viewer/locale/dsb/viewer.ftl | 2 + viewer/locale/el/viewer.ftl | 2 + viewer/locale/en-GB/viewer.ftl | 2 + viewer/locale/en-US/viewer.ftl | 2 + viewer/locale/eo/viewer.ftl | 23 + viewer/locale/es-CL/viewer.ftl | 2 + viewer/locale/fi/viewer.ftl | 2 + viewer/locale/fr/viewer.ftl | 21 + viewer/locale/gl/viewer.ftl | 36 + viewer/locale/gn/viewer.ftl | 2 + viewer/locale/he/viewer.ftl | 2 + viewer/locale/hsb/viewer.ftl | 2 + viewer/locale/ia/viewer.ftl | 2 + viewer/locale/is/viewer.ftl | 2 + viewer/locale/it/viewer.ftl | 3 + viewer/locale/kab/viewer.ftl | 20 + viewer/locale/kk/viewer.ftl | 2 + viewer/locale/ko/viewer.ftl | 2 + viewer/locale/locale.json | 2 +- viewer/locale/nb-NO/viewer.ftl | 25 + viewer/locale/pl/viewer.ftl | 25 + viewer/locale/pt-BR/viewer.ftl | 6 +- viewer/locale/pt-PT/viewer.ftl | 38 + viewer/locale/rm/viewer.ftl | 23 + viewer/locale/ru/viewer.ftl | 2 + viewer/locale/sk/viewer.ftl | 2 + viewer/locale/sl/viewer.ftl | 27 + viewer/locale/sq/viewer.ftl | 30 + viewer/locale/sv-SE/viewer.ftl | 2 + viewer/locale/th/viewer.ftl | 30 + viewer/locale/tr/viewer.ftl | 2 + viewer/locale/vi/viewer.ftl | 2 + viewer/locale/zh-CN/viewer.ftl | 4 +- viewer/locale/zh-TW/viewer.ftl | 4 +- viewer/viewer.css | 376 +- viewer/viewer.html | 44 +- viewer/viewer.mjs | 25925 +++++++++++----------- 51 files changed, 14354 insertions(+), 12836 deletions(-) create mode 100644 viewer/images/editor-toolbar-delete.svg delete mode 100644 viewer/images/loading-dark.svg diff --git a/.vscodeignore b/.vscodeignore index 8cf501014..431d2923f 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -44,6 +44,7 @@ node_modules/commander/ node_modules/pdfjs-dist/build/*.min.js node_modules/pdfjs-dist/build/*.min.mjs +node_modules/pdfjs-dist/build/*.sandbox.* node_modules/pdfjs-dist/legacy/ node_modules/pdfjs-dist/image_decoders/ node_modules/pdfjs-dist/lib/ diff --git a/dev/editviewer.py b/dev/editviewer.py index 65ef822b0..e82f0d8ed 100644 --- a/dev/editviewer.py +++ b/dev/editviewer.py @@ -34,11 +34,7 @@ .replace('''console.error(`webviewerloaded: ''', '''// console.error(`webviewerloaded: ''') .replace('''//# sourceMappingURL=viewer.mjs.map''', '''''') .replace('''console.log(`PDF ${pdfDocument.''', '''// console.log(`PDF ${pdfDocument.''') - .replace('''value: "../build/pdf.worker.mjs",''', '''value: "./build/pdf.worker.mjs",''') - .replace('''value: "../build/pdf.sandbox.mjs",''', '''value: "./build/pdf.sandbox.mjs",''') - .replace('''value: "../web/cmaps/",''', '''value: "../cmaps/",''') - .replace('''value: "../web/standard_fonts/",''', '''value: "../standard_fonts/",''') - .replace('''parent.document.dispatchEvent(event);''', '''parent.document.dispatchEvent(event); \n document.dispatchEvent(event);''') + # .replace('''parent.document.dispatchEvent(event);''', '''parent.document.dispatchEvent(event); \n document.dispatchEvent(event);''') ) os.system(f'git diff --no-index {args.web}/viewer.html {args.viewer}/viewer.html > {args.viewer}/../dev/viewer/viewer.html.diff') diff --git a/dev/viewer/viewer.html.diff b/dev/viewer/viewer.html.diff index b855fc6a0..23f1e8af9 100644 --- a/dev/viewer/viewer.html.diff +++ b/dev/viewer/viewer.html.diff @@ -1,8 +1,8 @@ -diff --git a/../web/viewer.html b/viewer/viewer.html -index 263f6246..b3d67daf 100644 ---- a/../web/viewer.html -+++ b/viewer/viewer.html -@@ -25,15 +25,17 @@ See https://github.com/adobe-type-tools/cmap-resources +diff --git a/../../web/viewer.html b/../viewer/viewer.html +index 45380d45..5ad7b08e 100644 +--- a/../../web/viewer.html ++++ b/../viewer/viewer.html +@@ -25,15 +25,18 @@ See https://github.com/adobe-type-tools/cmap-resources @@ -19,6 +19,16 @@ index 263f6246..b3d67daf 100644 - + ++ +@@ -254,7 +257,7 @@ See https://github.com/adobe-type-tools/cmap-resources + +-
++ + diff --git a/dev/viewer/viewer.mjs.diff b/dev/viewer/viewer.mjs.diff index ec2d2732d..40b240f7c 100644 --- a/dev/viewer/viewer.mjs.diff +++ b/dev/viewer/viewer.mjs.diff @@ -1,44 +1,8 @@ -diff --git a/../web/viewer.mjs b/viewer/viewer.mjs -index 1326dc12..038d4c53 100644 ---- a/../web/viewer.mjs -+++ b/viewer/viewer.mjs -@@ -795,7 +795,7 @@ const defaultOptions = { - kind: OptionKind.WORKER - }, - workerSrc: { -- value: "../build/pdf.worker.mjs", -+ value: "./build/pdf.worker.mjs", - kind: OptionKind.WORKER - } - }; -@@ -813,7 +813,7 @@ const defaultOptions = { - kind: OptionKind.VIEWER - }; - defaultOptions.sandboxBundleSrc = { -- value: "../build/pdf.sandbox.mjs", -+ value: "./build/pdf.sandbox.mjs", - kind: OptionKind.VIEWER - }; - } -@@ -2539,7 +2539,7 @@ const FindState = { - PENDING: 3 - }; - const FIND_TIMEOUT = 250; --const MATCH_SCROLL_OFFSET_TOP = -50; -+const MATCH_SCROLL_OFFSET_TOP = -100; - const MATCH_SCROLL_OFFSET_LEFT = -400; - const CHARACTERS_TO_NORMALIZE = { - "\u2010": "-", -@@ -5136,7 +5136,7 @@ class PDFSidebar { - this.#dispatchEvent(); - return; - } -- this.switchView(view, true); -+ this.switchView(view, false); - if (!this.isInitialEventDispatched) { - this.#dispatchEvent(); - } -@@ -6948,7 +6948,7 @@ class Localization { +diff --git a/../../web/viewer.mjs b/../viewer/viewer.mjs +index c28e89f8..629241fd 100644 +--- a/../../web/viewer.mjs ++++ b/../viewer/viewer.mjs +@@ -1121,7 +1121,7 @@ class Localization { if (typeof console !== "undefined") { const locale = bundle.locales[0]; const ids = Array.from(missingIds).join(", "); @@ -47,29 +11,7 @@ index 1326dc12..038d4c53 100644 } } if (!hasAtLeastOneBundle && typeof console !== "undefined") { -@@ -9089,7 +9089,7 @@ class PDFViewer { - this.#annotationEditorMode = options.annotationEditorMode ?? AnnotationEditorType.NONE; - this.imageResourcesPath = options.imageResourcesPath || ""; - this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; -- this.removePageBorders = options.removePageBorders || false; -+ this.removePageBorders = options.removePageBorders || true; - this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true; - this.maxCanvasPixels = options.maxCanvasPixels; - this.l10n = options.l10n || NullL10n; -@@ -11034,10 +11034,10 @@ class ViewHistory { - } - async _writeToStorage() { - const databaseStr = JSON.stringify(this.database); -- localStorage.setItem("pdfjs.history", databaseStr); -+ // localStorage.setItem("pdfjs.history", databaseStr); - } - async _readFromStorage() { -- return localStorage.getItem("pdfjs.history"); -+ return // localStorage.getItem("pdfjs.history"); - } - async set(name, val) { - await this._initializedPromise; -@@ -11597,7 +11597,7 @@ const PDFViewerApplication = { +@@ -2534,7 +2534,7 @@ const PDFViewerApplication = { title = url; } } @@ -78,18 +20,18 @@ index 1326dc12..038d4c53 100644 }, setTitle(title = this._title) { this._title = title; -@@ -12049,7 +12049,7 @@ const PDFViewerApplication = { +@@ -2986,7 +2986,7 @@ const PDFViewerApplication = { this.metadata = metadata; this._contentDispositionFilename ??= contentDispositionFilename; this._contentLength ??= contentLength; -- console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${version || "?"} [${build || "?"}])`); -+ // console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${version || "?"} [${build || "?"}])`); +- console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.version || "?"} [${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.build || "?"}])`); ++ // console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.version || "?"} [${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.build || "?"}])`); let pdfTitle = info.Title; const metadataTitle = metadata?.get("dc:title"); if (metadataTitle) { -@@ -13630,11 +13630,11 @@ class GenericScripting { +@@ -4974,11 +4974,11 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_app const GenericCom = {}; - class GenericPreferences extends BasePreferences { + class GenericPreferences extends _preferences_js__WEBPACK_IMPORTED_MODULE_2__.BasePreferences { async _writeToStorage(prefObj) { - localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); + // localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); @@ -101,7 +43,16 @@ index 1326dc12..038d4c53 100644 }; } } -@@ -13884,6 +13884,9 @@ function renderProgress(index, total) { +@@ -6138,7 +6138,7 @@ const FindState = { + PENDING: 3 + }; + const FIND_TIMEOUT = 250; +-const MATCH_SCROLL_OFFSET_TOP = -50; ++const MATCH_SCROLL_OFFSET_TOP = -100; + const MATCH_SCROLL_OFFSET_LEFT = -400; + const CHARACTERS_TO_NORMALIZE = { + "\u2010": "-", +@@ -9604,6 +9604,9 @@ function renderProgress(index, total) { } window.addEventListener("keydown", function (event) { if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { @@ -111,22 +62,49 @@ index 1326dc12..038d4c53 100644 window.print(); event.preventDefault(); event.stopImmediatePropagation(); -@@ -14077,9 +14080,10 @@ function webViewerLoad() { +@@ -10224,7 +10227,7 @@ class PDFSidebar { + this.#dispatchEvent(); + return; } - }); +- this.switchView(view, true); ++ this.switchView(view, false); + if (!this.isInitialEventDispatched) { + this.#dispatchEvent(); + } +@@ -11123,7 +11126,7 @@ class PDFViewer { + this.#annotationEditorMode = options.annotationEditorMode ?? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; +- this.removePageBorders = options.removePageBorders || false; ++ this.removePageBorders = options.removePageBorders || true; + this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true; + this.maxCanvasPixels = options.maxCanvasPixels; + this.l10n = options.l10n || web_l10n_utils__WEBPACK_IMPORTED_MODULE_2__.NullL10n; +@@ -14576,10 +14579,10 @@ class ViewHistory { + } + async _writeToStorage() { + const databaseStr = JSON.stringify(this.database); +- localStorage.setItem("pdfjs.history", databaseStr); ++ // localStorage.setItem("pdfjs.history", databaseStr); + } + async _readFromStorage() { +- return localStorage.getItem("pdfjs.history"); ++ return // localStorage.getItem("pdfjs.history"); + } + async set(name, val) { + await this._initializedPromise; +@@ -14783,7 +14786,7 @@ function webViewerLoad() { try { -- parent.document.dispatchEvent(event); -+ parent.document.dispatchEvent(event); -+ document.dispatchEvent(event); + parent.document.dispatchEvent(event); } catch (ex) { - console.error(`webviewerloaded: ${ex}`); + // console.error(`webviewerloaded: ${ex}`); document.dispatchEvent(event); } - PDFViewerApplication.run(config); -@@ -14096,4 +14100,3 @@ var __webpack_exports__PDFViewerApplicationConstants = __webpack_exports__.PDFVi - var __webpack_exports__PDFViewerApplicationOptions = __webpack_exports__.PDFViewerApplicationOptions; - export { __webpack_exports__PDFViewerApplication as PDFViewerApplication, __webpack_exports__PDFViewerApplicationConstants as PDFViewerApplicationConstants, __webpack_exports__PDFViewerApplicationOptions as PDFViewerApplicationOptions }; + _app_js__WEBPACK_IMPORTED_MODULE_5__.PDFViewerApplication.run(config); +@@ -15006,4 +15009,3 @@ __webpack_async_result__(); + /******/ export { __webpack_exports__PDFViewerApplication as PDFViewerApplication, __webpack_exports__PDFViewerApplicationConstants as PDFViewerApplicationConstants, __webpack_exports__PDFViewerApplicationOptions as PDFViewerApplicationOptions }; + /******/ -//# sourceMappingURL=viewer.mjs.map \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c5cddbe83..4f8951109 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "latex-workshop", - "version": "9.15.5", + "version": "9.15.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "latex-workshop", - "version": "9.15.5", + "version": "9.15.6", "license": "MIT", "dependencies": { "cross-spawn": "7.0.3", @@ -15,35 +15,35 @@ "latex-utensils": "6.2.0", "mathjax-full": "3.2.2", "micromatch": "4.0.5", - "pdfjs-dist": "4.0.189", + "pdfjs-dist": "4.0.269", "tmp": "0.2.1", "workerpool": "8.0.0", - "ws": "8.14.2" + "ws": "8.15.1" }, "devDependencies": { - "@types/cross-spawn": "6.0.5", + "@types/cross-spawn": "6.0.6", "@types/glob": "8.1.0", - "@types/micromatch": "4.0.5", - "@types/mocha": "10.0.4", + "@types/micromatch": "4.0.6", + "@types/mocha": "10.0.6", "@types/node": "18.15.3", "@types/tmp": "0.2.6", "@types/vscode": "1.74.0", - "@types/workerpool": "6.4.6", - "@types/ws": "8.5.9", - "@typescript-eslint/eslint-plugin": "6.11.0", - "@typescript-eslint/parser": "6.11.0", + "@types/workerpool": "6.4.7", + "@types/ws": "8.5.10", + "@typescript-eslint/eslint-plugin": "6.14.0", + "@typescript-eslint/parser": "6.14.0", "@unified-latex/unified-latex-types": "1.4.2", "@unified-latex/unified-latex-util-arguments": "1.4.2", "@unified-latex/unified-latex-util-parse": "1.4.2", - "@vscode/test-electron": "2.3.6", + "@vscode/test-electron": "2.3.8", "@vscode/vsce": "2.22.0", "c8": "^8.0.1", "esbuild": "^0.19.9", - "eslint": "8.53.0", + "eslint": "8.55.0", "mocha": "10.2.0", "rimraf": "5.0.5", "textmate-bailout": "1.1.0", - "typescript": "5.2.2", + "typescript": "5.3.3", "vscode-extend-language": "0.1.1" }, "engines": { @@ -465,9 +465,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -729,9 +729,9 @@ } }, "node_modules/@types/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-wsIMP68FvGXk+RaWhraz6Xp4v7sl4qwzHAmtPaJEN2NRTXXI9LtFawUpeTsBNL/pd6QoLStdytCaAyiK7AEd/Q==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", "dev": true, "dependencies": { "@types/node": "*" @@ -769,9 +769,9 @@ "dev": true }, "node_modules/@types/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-B1o0zVdb9GsbKT4Fucy3oeG9G1qy/TOHrYM+NsEPazT+ktsGXOJSb1+Bg9hP7BH14Bv4dd5m7r+FohwXkY/39A==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.6.tgz", + "integrity": "sha512-2eulCHWqjEpk9/vyic4tBhI8a9qQEl6DaK2n/sF7TweX9YESlypgKyhXMDGt4DAOy/jhLPvVrZc8pTDAMsplJA==", "dev": true, "dependencies": { "@types/braces": "*" @@ -784,9 +784,9 @@ "dev": true }, "node_modules/@types/mocha": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.4.tgz", - "integrity": "sha512-xKU7bUjiFTIttpWaIZ9qvgg+22O1nmbA+HRxdlR+u6TWsGfmFdXrheJoK4fFxrHNVIOBDvDNKZG+LYBpMHpX3w==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", + "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", "dev": true }, "node_modules/@types/node": { @@ -826,34 +826,34 @@ "dev": true }, "node_modules/@types/workerpool": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@types/workerpool/-/workerpool-6.4.6.tgz", - "integrity": "sha512-nYSiM7rWgnF/y4jSvS4t95MwIG8c4iWxvQeliiV7rfUfkARU7iiPiw9NCVzdBghqLhs0LAO/U54jqXsmR93zmg==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@types/workerpool/-/workerpool-6.4.7.tgz", + "integrity": "sha512-DI2U4obcMzFViyNjLw0xXspim++qkAJ4BWRdYPVMMFtOpTvMr6PAk3UTZEoSqnZnvgUkJ3ck97Ybk+iIfuJHMg==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/ws": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz", - "integrity": "sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", - "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", + "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/type-utils": "6.11.0", - "@typescript-eslint/utils": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/type-utils": "6.14.0", + "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -879,15 +879,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", - "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", + "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4" }, "engines": { @@ -907,13 +907,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", - "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", + "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0" + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -924,13 +924,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", - "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", + "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/utils": "6.14.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -951,9 +951,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", - "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", + "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -964,13 +964,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", - "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", + "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -991,17 +991,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", - "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", + "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", "semver": "^7.5.4" }, "engines": { @@ -1016,12 +1016,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", - "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", + "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1256,9 +1256,9 @@ } }, "node_modules/@vscode/test-electron": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.6.tgz", - "integrity": "sha512-M31xGH0RgqNU6CZ4/9g39oUMJ99nLzfjA+4UbtIQ6TcXQ6+2qkjOOxedmPBDDCg26/3Al5ubjY80hIoaMwKYSw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.8.tgz", + "integrity": "sha512-b4aZZsBKtMGdDljAsOPObnAi7+VWIaYl3ylCz1jTs+oV6BZ4TNHcVNC3xUn0azPeszBmwSBDQYfFESIaUQnrOg==", "dev": true, "dependencies": { "http-proxy-agent": "^4.0.1", @@ -2375,15 +2375,15 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -4592,9 +4592,9 @@ } }, "node_modules/pdfjs-dist": { - "version": "4.0.189", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.0.189.tgz", - "integrity": "sha512-5IWbLRJjQJhk3cu3nNFAvIYoSzT8xRYlRkFCIV1tn7hK1eq9H+6vOP0ytJhZz9YI35IXlu33uQspvmYO6Oir4g==", + "version": "4.0.269", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.0.269.tgz", + "integrity": "sha512-jjWO56tcOjnmPqDf8PmXDeZ781AGvpHMYI3HhNtaFKTRXXPaD1ArSrhVe38/XsrIQJ0onISCND/vuXaWJkiDWw==", "engines": { "node": ">=18" }, @@ -5555,9 +5555,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -5874,9 +5874,9 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", + "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", "engines": { "node": ">=10.0.0" }, diff --git a/package.json b/package.json index 2ea4b85a7..7da185766 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "LaTeX Workshop", "description": "Boost LaTeX typesetting efficiency with preview, compile, autocomplete, colorize, and more.", "icon": "icons/icon.png", - "version": "9.15.5", + "version": "9.15.6", "publisher": "James-Yu", "license": "MIT", "homepage": "https://github.com/James-Yu/LaTeX-Workshop", @@ -2575,35 +2575,35 @@ "latex-utensils": "6.2.0", "mathjax-full": "3.2.2", "micromatch": "4.0.5", - "pdfjs-dist": "4.0.189", + "pdfjs-dist": "4.0.269", "tmp": "0.2.1", "workerpool": "8.0.0", - "ws": "8.14.2" + "ws": "8.15.1" }, "devDependencies": { - "@types/cross-spawn": "6.0.5", + "@types/cross-spawn": "6.0.6", "@types/glob": "8.1.0", - "@types/micromatch": "4.0.5", - "@types/mocha": "10.0.4", + "@types/micromatch": "4.0.6", + "@types/mocha": "10.0.6", "@types/node": "18.15.3", "@types/tmp": "0.2.6", "@types/vscode": "1.74.0", - "@types/workerpool": "6.4.6", - "@types/ws": "8.5.9", - "@typescript-eslint/eslint-plugin": "6.11.0", - "@typescript-eslint/parser": "6.11.0", + "@types/workerpool": "6.4.7", + "@types/ws": "8.5.10", + "@typescript-eslint/eslint-plugin": "6.14.0", + "@typescript-eslint/parser": "6.14.0", "@unified-latex/unified-latex-types": "1.4.2", "@unified-latex/unified-latex-util-arguments": "1.4.2", "@unified-latex/unified-latex-util-parse": "1.4.2", - "@vscode/test-electron": "2.3.6", + "@vscode/test-electron": "2.3.8", "@vscode/vsce": "2.22.0", "c8": "^8.0.1", "esbuild": "^0.19.9", - "eslint": "8.53.0", + "eslint": "8.55.0", "mocha": "10.2.0", "rimraf": "5.0.5", "textmate-bailout": "1.1.0", - "typescript": "5.2.2", + "typescript": "5.3.3", "vscode-extend-language": "0.1.1" } } diff --git a/viewer/components/utils.ts b/viewer/components/utils.ts index 5e9fce458..0aa21764b 100644 --- a/viewer/components/utils.ts +++ b/viewer/components/utils.ts @@ -70,6 +70,9 @@ export function isPdfjsShortcut(e: Pick + + \ No newline at end of file diff --git a/viewer/images/loading-dark.svg b/viewer/images/loading-dark.svg deleted file mode 100644 index fa5269b1a..000000000 --- a/viewer/images/loading-dark.svg +++ /dev/null @@ -1,24 +0,0 @@ - \ No newline at end of file diff --git a/viewer/latexworkshop.css b/viewer/latexworkshop.css index caac45355..5760385e0 100644 --- a/viewer/latexworkshop.css +++ b/viewer/latexworkshop.css @@ -157,12 +157,6 @@ html[dir='rtl'] .findbar { display: none; } -@media all and (max-width: 765px) { - #trimSelectContainer { - display: none; - } -} - #trimSelectContainer { min-width: 112px; max-width: 112px; diff --git a/viewer/latexworkshop.ts b/viewer/latexworkshop.ts index 20d9a3ee9..802736864 100644 --- a/viewer/latexworkshop.ts +++ b/viewer/latexworkshop.ts @@ -87,7 +87,7 @@ class LateXWorkshopPdfViewer implements ILatexWorkshopPdfViewer { }) }) this.onViewUpdated(() => this.repositionDOM()) - void this.setupAppOptions() + this.setupAppOptions() } // For the details of the initialization of PDF.js, @@ -211,24 +211,25 @@ class LateXWorkshopPdfViewer implements ILatexWorkshopPdfViewer { return this.setupAppOptionsPromise.promise } - private async setupAppOptions() { + private setupAppOptions() { const workerPort = new Worker('build/pdf.worker.mjs', { type: 'module' }) - const params = await this.fetchParams() - document.addEventListener('webviewerloaded', () => { - const color = this.isPrefersColorSchemeDark(params.codeColorTheme) ? params.color.dark : params.color.light + document.addEventListener('webviewerloaded', async () => { const options = { annotationEditorMode: -1, disablePreferences: true, enableScripting: false, - cMapUrl: '/cmaps/', + cMapUrl: '../cmaps/', sidebarViewOnLoad: 0, - standardFontDataUrl: '/standard_fonts/', + standardFontDataUrl: '../standard_fonts/', workerPort, - workerSrc: 'build/pdf.worker.mjs', - forcePageColors: true, - ...color + workerSrc: './build/pdf.worker.mjs', + forcePageColors: true } PDFViewerApplicationOptions.setAll(options) + const params = await this.fetchParams() + const color = this.isPrefersColorSchemeDark(params.codeColorTheme) ? params.color.dark : params.color.light + + PDFViewerApplicationOptions.setAll(color) }) this.setupAppOptionsPromise.resolve() } @@ -559,24 +560,17 @@ class LateXWorkshopPdfViewer implements ILatexWorkshopPdfViewer { if (!styleSheet) { return } - const scaleSelectContainer = document.getElementById('scaleSelectContainer') as HTMLElement - const scaleWidth = utils.elementWidth(scaleSelectContainer) - const numPages = document.getElementById('numPages') as HTMLElement - const numPagesWidth = utils.elementWidth(numPages) - const printerButtonWidth = this.embedded ? 0 : 34 - const smallViewMaxWidth = 380 + numPagesWidth + scaleWidth + printerButtonWidth - const smallViewRule = `@media all and (max-width: ${smallViewMaxWidth}px) { .hiddenSmallView, .hiddenSmallView * { display: none; } }` - styleSheet.insertRule(smallViewRule) - const buttonSpacerMaxWidth = 340 + numPagesWidth + scaleWidth + printerButtonWidth - const buttonSpacerRule = `@media all and (max-width: ${buttonSpacerMaxWidth}px) { .toolbarButtonSpacer { width: 0; } }` - styleSheet.insertRule(buttonSpacerRule) - const scaleMaxWidth = 300 + numPagesWidth + scaleWidth + printerButtonWidth - const scaleRule = `@media all and (max-width: ${scaleMaxWidth}px) { #scaleSelectContainer { display: none; } }` + const buttonW = utils.elementWidth(document.getElementById('toolbarViewerLeft') as HTMLElement, false) + + utils.elementWidth(document.getElementById('secondaryToolbarToggle') as HTMLElement, false) + + utils.elementWidth(document.getElementById('zoomOut')?.parentElement as HTMLElement, false) - + utils.elementWidth(document.getElementById('previous')?.parentElement as HTMLElement, false) + + const scaleW = utils.elementWidth(document.getElementById('scaleSelectContainer') as HTMLElement) + const trimW = utils.elementWidth(document.getElementById('trimSelectContainer') as HTMLElement) + + const scaleRule = `@media all and (max-width: ${buttonW + scaleW}px) { #scaleSelectContainer { display: none; } }` styleSheet.insertRule(scaleRule) - const trimSelectContainer = document.getElementById('trimSelectContainer') as HTMLElement - const trimWidth = utils.elementWidth(trimSelectContainer) - const trimMaxWidth = 300 + numPagesWidth + scaleWidth + trimWidth + printerButtonWidth - const trimRule = `@media all and (max-width: ${trimMaxWidth}px) { #trimSelectContainer { display: none; } }` + const trimRule = `@media all and (max-width: ${buttonW + scaleW + trimW}px) { #trimSelectContainer { display: none; } }` styleSheet.insertRule(trimRule) } diff --git a/viewer/locale/be/viewer.ftl b/viewer/locale/be/viewer.ftl index c87b9d45d..9cbfd455f 100644 --- a/viewer/locale/be/viewer.ftl +++ b/viewer/locale/be/viewer.ftl @@ -226,6 +226,23 @@ pdfjs-find-match-diacritics-checkbox-label = З улікам дыякрытык pdfjs-find-entire-word-checkbox-label = Словы цалкам pdfjs-find-reached-top = Дасягнуты пачатак дакумента, працяг з канца pdfjs-find-reached-bottom = Дасягнуты канец дакумента, працяг з пачатку +# 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] { $current } з { $total } супадзенняў + [few] { $current } з { $total } супадзенняў + *[many] { $current } з { $total } супадзенняў + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Больш за { $limit } супадзенне + [few] Больш за { $limit } супадзенні + *[many] Больш за { $limit } супадзенняў + } pdfjs-find-not-found = Выраз не знойдзены ## Predefined zoom values @@ -324,3 +341,11 @@ pdfjs-editor-alt-text-textarea = ## 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 = Пасярэдзіне злева — змяніць памер diff --git a/viewer/locale/cy/viewer.ftl b/viewer/locale/cy/viewer.ftl index 5f74ac305..56b322e3a 100644 --- a/viewer/locale/cy/viewer.ftl +++ b/viewer/locale/cy/viewer.ftl @@ -309,6 +309,8 @@ pdfjs-editor-ink-button-label = Lluniadu pdfjs-editor-stamp-button = .title = Ychwanegu neu olygu delweddau pdfjs-editor-stamp-button-label = Ychwanegu neu olygu delweddau +pdfjs-editor-remove-button = + .title = Tynnu # Editor Parameters pdfjs-editor-free-text-color-input = Lliw pdfjs-editor-free-text-size-input = Maint diff --git a/viewer/locale/da/viewer.ftl b/viewer/locale/da/viewer.ftl index 2d2be0dfe..97964cd2e 100644 --- a/viewer/locale/da/viewer.ftl +++ b/viewer/locale/da/viewer.ftl @@ -339,3 +339,11 @@ pdfjs-editor-alt-text-textarea = ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Øverste venstre hjørne — tilpas størrelse +pdfjs-editor-resizer-label-top-middle = Øverste i midten — tilpas størrelse +pdfjs-editor-resizer-label-top-right = Øverste højre hjørne — tilpas størrelse +pdfjs-editor-resizer-label-middle-right = Midten til højre — tilpas størrelse +pdfjs-editor-resizer-label-bottom-right = Nederste højre hjørne - tilpas størrelse +pdfjs-editor-resizer-label-bottom-middle = Nederst i midten - tilpas størrelse +pdfjs-editor-resizer-label-bottom-left = Nederste venstre hjørne - tilpas størrelse +pdfjs-editor-resizer-label-middle-left = Midten til venstre — tilpas størrelse diff --git a/viewer/locale/dsb/viewer.ftl b/viewer/locale/dsb/viewer.ftl index ed9658272..7064cdb7a 100644 --- a/viewer/locale/dsb/viewer.ftl +++ b/viewer/locale/dsb/viewer.ftl @@ -305,6 +305,8 @@ pdfjs-editor-ink-button-label = Kresliś pdfjs-editor-stamp-button = .title = Wobraze pśidaś abo wobźěłaś pdfjs-editor-stamp-button-label = Wobraze pśidaś abo wobźěłaś +pdfjs-editor-remove-button = + .title = Wótwónoźeś # Editor Parameters pdfjs-editor-free-text-color-input = Barwa pdfjs-editor-free-text-size-input = Wjelikosć diff --git a/viewer/locale/el/viewer.ftl b/viewer/locale/el/viewer.ftl index 664e5aa01..f6c8624a1 100644 --- a/viewer/locale/el/viewer.ftl +++ b/viewer/locale/el/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Σχέδιο pdfjs-editor-stamp-button = .title = Προσθήκη ή επεξεργασία εικόνων pdfjs-editor-stamp-button-label = Προσθήκη ή επεξεργασία εικόνων +pdfjs-editor-remove-button = + .title = Αφαίρεση # Editor Parameters pdfjs-editor-free-text-color-input = Χρώμα pdfjs-editor-free-text-size-input = Μέγεθος diff --git a/viewer/locale/en-GB/viewer.ftl b/viewer/locale/en-GB/viewer.ftl index 3fd7b3396..355112d6b 100644 --- a/viewer/locale/en-GB/viewer.ftl +++ b/viewer/locale/en-GB/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Draw pdfjs-editor-stamp-button = .title = Add or edit images pdfjs-editor-stamp-button-label = Add or edit images +pdfjs-editor-remove-button = + .title = Remove # Editor Parameters pdfjs-editor-free-text-color-input = Colour pdfjs-editor-free-text-size-input = Size diff --git a/viewer/locale/en-US/viewer.ftl b/viewer/locale/en-US/viewer.ftl index 2193f51c6..a7fdf58ce 100644 --- a/viewer/locale/en-US/viewer.ftl +++ b/viewer/locale/en-US/viewer.ftl @@ -323,6 +323,8 @@ pdfjs-editor-ink-button-label = Draw pdfjs-editor-stamp-button = .title = Add or edit images pdfjs-editor-stamp-button-label = Add or edit images +pdfjs-editor-remove-button = + .title = Remove # Editor Parameters pdfjs-editor-free-text-color-input = Color diff --git a/viewer/locale/eo/viewer.ftl b/viewer/locale/eo/viewer.ftl index df9943441..22c473cb2 100644 --- a/viewer/locale/eo/viewer.ftl +++ b/viewer/locale/eo/viewer.ftl @@ -226,6 +226,21 @@ pdfjs-find-match-diacritics-checkbox-label = Respekti supersignojn pdfjs-find-entire-word-checkbox-label = Tutaj vortoj pdfjs-find-reached-top = Komenco de la dokumento atingita, daŭrigado ekde la fino pdfjs-find-reached-bottom = Fino de la dokumento atingita, daŭrigado ekde la komenco +# 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] { $current } el { $total } kongruo + *[other] { $current } el { $total } kongruoj + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Pli ol { $limit } kongruo + *[other] Pli ol { $limit } kongruoj + } pdfjs-find-not-found = Frazo ne trovita ## Predefined zoom values @@ -324,3 +339,11 @@ pdfjs-editor-alt-text-textarea = ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Supra maldekstra angulo — ŝangi grandon +pdfjs-editor-resizer-label-top-middle = Supra mezo — ŝanĝi grandon +pdfjs-editor-resizer-label-top-right = Supran dekstran angulon — ŝanĝi grandon +pdfjs-editor-resizer-label-middle-right = Dekstra mezo — ŝanĝi grandon +pdfjs-editor-resizer-label-bottom-right = Malsupra deksta angulo — ŝanĝi grandon +pdfjs-editor-resizer-label-bottom-middle = Malsupra mezo — ŝanĝi grandon +pdfjs-editor-resizer-label-bottom-left = Malsupra maldekstra angulo — ŝanĝi grandon +pdfjs-editor-resizer-label-middle-left = Maldekstra mezo — ŝanĝi grandon diff --git a/viewer/locale/es-CL/viewer.ftl b/viewer/locale/es-CL/viewer.ftl index 9f6ef2b07..4dff29607 100644 --- a/viewer/locale/es-CL/viewer.ftl +++ b/viewer/locale/es-CL/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Dibujar pdfjs-editor-stamp-button = .title = Añadir o editar imágenes pdfjs-editor-stamp-button-label = Añadir o editar imágenes +pdfjs-editor-remove-button = + .title = Eliminar # Editor Parameters pdfjs-editor-free-text-color-input = Color pdfjs-editor-free-text-size-input = Tamaño diff --git a/viewer/locale/fi/viewer.ftl b/viewer/locale/fi/viewer.ftl index 23a20843a..d37b6c902 100644 --- a/viewer/locale/fi/viewer.ftl +++ b/viewer/locale/fi/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Piirros pdfjs-editor-stamp-button = .title = Lisää tai muokkaa kuvia pdfjs-editor-stamp-button-label = Lisää tai muokkaa kuvia +pdfjs-editor-remove-button = + .title = Poista # Editor Parameters pdfjs-editor-free-text-color-input = Väri pdfjs-editor-free-text-size-input = Koko diff --git a/viewer/locale/fr/viewer.ftl b/viewer/locale/fr/viewer.ftl index d420ff63d..2a1df576f 100644 --- a/viewer/locale/fr/viewer.ftl +++ b/viewer/locale/fr/viewer.ftl @@ -226,6 +226,17 @@ pdfjs-find-match-diacritics-checkbox-label = Respecter les accents et diacritiqu pdfjs-find-entire-word-checkbox-label = Mots entiers pdfjs-find-reached-top = Haut de la page atteint, poursuite depuis la fin pdfjs-find-reached-bottom = Bas de la page atteint, poursuite au début +# 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 = Occurrence { $current } sur { $total } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Plus d’{ $limit } occurrence + *[other] Plus de { $limit } occurrences + } pdfjs-find-not-found = Expression non trouvée ## Predefined zoom values @@ -286,6 +297,8 @@ pdfjs-editor-ink-button-label = Dessiner pdfjs-editor-stamp-button = .title = Ajouter ou modifier des images pdfjs-editor-stamp-button-label = Ajouter ou modifier des images +pdfjs-editor-remove-button = + .title = Supprimer # Editor Parameters pdfjs-editor-free-text-color-input = Couleur pdfjs-editor-free-text-size-input = Taille @@ -324,3 +337,11 @@ pdfjs-editor-alt-text-textarea = ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Coin supérieur gauche — redimensionner +pdfjs-editor-resizer-label-top-middle = Milieu haut — redimensionner +pdfjs-editor-resizer-label-top-right = Coin supérieur droit — redimensionner +pdfjs-editor-resizer-label-middle-right = Milieu droit — redimensionner +pdfjs-editor-resizer-label-bottom-right = Coin inférieur droit — redimensionner +pdfjs-editor-resizer-label-bottom-middle = Centre bas — redimensionner +pdfjs-editor-resizer-label-bottom-left = Coin inférieur gauche — redimensionner +pdfjs-editor-resizer-label-middle-left = Milieu gauche — redimensionner diff --git a/viewer/locale/gl/viewer.ftl b/viewer/locale/gl/viewer.ftl index dec3af6e0..1b732fd4c 100644 --- a/viewer/locale/gl/viewer.ftl +++ b/viewer/locale/gl/viewer.ftl @@ -226,6 +226,21 @@ pdfjs-find-match-diacritics-checkbox-label = Distinguir os diacríticos pdfjs-find-entire-word-checkbox-label = Palabras completas pdfjs-find-reached-top = Chegouse ao inicio do documento, continuar desde o final pdfjs-find-reached-bottom = Chegouse ao final do documento, continuar desde o inicio +# 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] Coincidencia { $current } de { $total } + *[other] Coincidencia { $current } de { $total } + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Máis de { $limit } coincidencia + *[other] Máis de { $limit } coincidencias + } pdfjs-find-not-found = Non se atopou a frase ## Predefined zoom values @@ -305,7 +320,28 @@ 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-label = Editar o texto alternativo +pdfjs-editor-alt-text-dialog-label = Escoller unha opción +pdfjs-editor-alt-text-add-description-label = Engadir unha descrición +pdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativo +pdfjs-editor-alt-text-mark-decorative-description = Utilízase para imaxes ornamentais, como bordos ou marcas de auga. +pdfjs-editor-alt-text-cancel-button = Cancelar +pdfjs-editor-alt-text-save-button = Gardar +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 exemplo, «Un mozo séntase á mesa para comer» ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Esquina superior esquerda: cambia o tamaño +pdfjs-editor-resizer-label-top-middle = Medio superior: cambia o tamaño +pdfjs-editor-resizer-label-top-right = Esquina superior dereita: cambia o tamaño +pdfjs-editor-resizer-label-middle-right = Medio dereito: cambia o tamaño +pdfjs-editor-resizer-label-bottom-right = Esquina inferior dereita: cambia o tamaño +pdfjs-editor-resizer-label-bottom-middle = Abaixo medio: cambia o tamaño +pdfjs-editor-resizer-label-bottom-left = Esquina inferior esquerda: cambia o tamaño +pdfjs-editor-resizer-label-middle-left = Medio esquerdo: cambia o tamaño diff --git a/viewer/locale/gn/viewer.ftl b/viewer/locale/gn/viewer.ftl index 652269a3d..3984f6227 100644 --- a/viewer/locale/gn/viewer.ftl +++ b/viewer/locale/gn/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Moha’ãnga pdfjs-editor-stamp-button = .title = Embojuaju térã embosako’i ta’ãnga pdfjs-editor-stamp-button-label = Embojuaju térã embosako’i ta’ãnga +pdfjs-editor-remove-button = + .title = Mboguete # Editor Parameters pdfjs-editor-free-text-color-input = Sa’y pdfjs-editor-free-text-size-input = Tuichakue diff --git a/viewer/locale/he/viewer.ftl b/viewer/locale/he/viewer.ftl index 831406080..9e5072d83 100644 --- a/viewer/locale/he/viewer.ftl +++ b/viewer/locale/he/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = ציור pdfjs-editor-stamp-button = .title = הוספה או עריכת תמונות pdfjs-editor-stamp-button-label = הוספה או עריכת תמונות +pdfjs-editor-remove-button = + .title = הסרה # Editor Parameters pdfjs-editor-free-text-color-input = צבע pdfjs-editor-free-text-size-input = גודל diff --git a/viewer/locale/hsb/viewer.ftl b/viewer/locale/hsb/viewer.ftl index 48d4fff8c..2b896265f 100644 --- a/viewer/locale/hsb/viewer.ftl +++ b/viewer/locale/hsb/viewer.ftl @@ -305,6 +305,8 @@ pdfjs-editor-ink-button-label = Rysować pdfjs-editor-stamp-button = .title = Wobrazy přidać abo wobdźěłać pdfjs-editor-stamp-button-label = Wobrazy přidać abo wobdźěłać +pdfjs-editor-remove-button = + .title = Wotstronić # Editor Parameters pdfjs-editor-free-text-color-input = Barba pdfjs-editor-free-text-size-input = Wulkosć diff --git a/viewer/locale/ia/viewer.ftl b/viewer/locale/ia/viewer.ftl index 683fc643d..b9acd145b 100644 --- a/viewer/locale/ia/viewer.ftl +++ b/viewer/locale/ia/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Designar pdfjs-editor-stamp-button = .title = Adder o rediger imagines pdfjs-editor-stamp-button-label = Adder o rediger imagines +pdfjs-editor-remove-button = + .title = Remover # Editor Parameters pdfjs-editor-free-text-color-input = Color pdfjs-editor-free-text-size-input = Dimension diff --git a/viewer/locale/is/viewer.ftl b/viewer/locale/is/viewer.ftl index f58a3a47b..0d1d2dbcf 100644 --- a/viewer/locale/is/viewer.ftl +++ b/viewer/locale/is/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Teikna pdfjs-editor-stamp-button = .title = Bæta við eða breyta myndum pdfjs-editor-stamp-button-label = Bæta við eða breyta myndum +pdfjs-editor-remove-button = + .title = Fjarlægja # Editor Parameters pdfjs-editor-free-text-color-input = Litur pdfjs-editor-free-text-size-input = Stærð diff --git a/viewer/locale/it/viewer.ftl b/viewer/locale/it/viewer.ftl index a380320e6..059c447cc 100644 --- a/viewer/locale/it/viewer.ftl +++ b/viewer/locale/it/viewer.ftl @@ -304,6 +304,8 @@ pdfjs-editor-ink-button-label = Disegno pdfjs-editor-stamp-button = .title = Aggiungi o rimuovi immagine pdfjs-editor-stamp-button-label = Aggiungi o rimuovi immagine +pdfjs-editor-remove-button = + .title = Rimuovi # Editor Parameters pdfjs-editor-free-text-color-input = Colore pdfjs-editor-free-text-size-input = Dimensione @@ -351,3 +353,4 @@ pdfjs-editor-resizer-label-bottom-middle = Lato inferiore nel mezzo — ridimens pdfjs-editor-resizer-label-bottom-left = Angolo in basso a sinistra — ridimensiona pdfjs-editor-resizer-label-middle-left = Lato sinistro nel mezzo — ridimensiona + diff --git a/viewer/locale/kab/viewer.ftl b/viewer/locale/kab/viewer.ftl index 7f2aa4303..50ccb11d0 100644 --- a/viewer/locale/kab/viewer.ftl +++ b/viewer/locale/kab/viewer.ftl @@ -226,6 +226,14 @@ pdfjs-find-match-diacritics-checkbox-label = Qadeṛ ifeskilen pdfjs-find-entire-word-checkbox-label = Awalen iččuranen pdfjs-find-reached-top = Yabbeḍ s afella n usebter, tuɣalin s wadda pdfjs-find-reached-bottom = Tebḍeḍ s adda n usebter, tuɣalin s afella +# 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] Timeḍriwt { $current } ɣef { $total } + *[other] Timeḍriwin { $current } ɣef { $total } + } pdfjs-find-not-found = Ulac tawinest ## Predefined zoom values @@ -283,12 +291,20 @@ pdfjs-editor-free-text-button-label = Aḍris pdfjs-editor-ink-button = .title = Suneɣ pdfjs-editor-ink-button-label = Suneɣ +pdfjs-editor-stamp-button = + .title = Rnu neɣ ẓreg tugniwin +pdfjs-editor-stamp-button-label = Rnu neɣ ẓreg tugniwin +pdfjs-editor-remove-button = + .title = Kkes # Editor Parameters pdfjs-editor-free-text-color-input = Initen pdfjs-editor-free-text-size-input = Teɣzi pdfjs-editor-ink-color-input = Ini pdfjs-editor-ink-thickness-input = Tuzert pdfjs-editor-ink-opacity-input = Tebrek +pdfjs-editor-stamp-add-image-button = + .title = Rnu tawlaft +pdfjs-editor-stamp-add-image-button-label = Rnu tawlaft pdfjs-free-text = .aria-label = Amaẓrag n uḍris pdfjs-free-text-default-content = Bdu tira... @@ -299,6 +315,10 @@ pdfjs-ink-canvas = ## Alt-text dialog +pdfjs-editor-alt-text-dialog-label = Fren taxtirt +pdfjs-editor-alt-text-add-description-label = Rnu aglam +pdfjs-editor-alt-text-cancel-button = Sefsex +pdfjs-editor-alt-text-save-button = Sekles ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. diff --git a/viewer/locale/kk/viewer.ftl b/viewer/locale/kk/viewer.ftl index adf05327e..1da030571 100644 --- a/viewer/locale/kk/viewer.ftl +++ b/viewer/locale/kk/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Сурет салу pdfjs-editor-stamp-button = .title = Суреттерді қосу немесе түзету pdfjs-editor-stamp-button-label = Суреттерді қосу немесе түзету +pdfjs-editor-remove-button = + .title = Өшіру # Editor Parameters pdfjs-editor-free-text-color-input = Түс pdfjs-editor-free-text-size-input = Өлшемі diff --git a/viewer/locale/ko/viewer.ftl b/viewer/locale/ko/viewer.ftl index 6d1718d97..8323550de 100644 --- a/viewer/locale/ko/viewer.ftl +++ b/viewer/locale/ko/viewer.ftl @@ -293,6 +293,8 @@ pdfjs-editor-ink-button-label = 그리기 pdfjs-editor-stamp-button = .title = 이미지 추가 또는 편집 pdfjs-editor-stamp-button-label = 이미지 추가 또는 편집 +pdfjs-editor-remove-button = + .title = 제거 # Editor Parameters pdfjs-editor-free-text-color-input = 색상 pdfjs-editor-free-text-size-input = 크기 diff --git a/viewer/locale/locale.json b/viewer/locale/locale.json index 220f3020c..20122111f 100644 --- a/viewer/locale/locale.json +++ b/viewer/locale/locale.json @@ -1 +1 @@ -{"ach":"ach/viewer.ftl","af":"af/viewer.ftl","an":"an/viewer.ftl","ar":"ar/viewer.ftl","ast":"ast/viewer.ftl","az":"az/viewer.ftl","be":"be/viewer.ftl","bg":"bg/viewer.ftl","bn":"bn/viewer.ftl","bo":"bo/viewer.ftl","br":"br/viewer.ftl","brx":"brx/viewer.ftl","bs":"bs/viewer.ftl","ca":"ca/viewer.ftl","cak":"cak/viewer.ftl","ckb":"ckb/viewer.ftl","cs":"cs/viewer.ftl","cy":"cy/viewer.ftl","da":"da/viewer.ftl","de":"de/viewer.ftl","dsb":"dsb/viewer.ftl","el":"el/viewer.ftl","en-CA":"en-CA/viewer.ftl","en-GB":"en-GB/viewer.ftl","en-US":"en-US/viewer.ftl","eo":"eo/viewer.ftl","es-AR":"es-AR/viewer.ftl","es-CL":"es-CL/viewer.ftl","es-ES":"es-ES/viewer.ftl","es-MX":"es-MX/viewer.ftl","et":"et/viewer.ftl","eu":"eu/viewer.ftl","fa":"fa/viewer.ftl","ff":"ff/viewer.ftl","fi":"fi/viewer.ftl","fr":"fr/viewer.ftl","fur":"fur/viewer.ftl","fy-NL":"fy-NL/viewer.ftl","ga-IE":"ga-IE/viewer.ftl","gd":"gd/viewer.ftl","gl":"gl/viewer.ftl","gn":"gn/viewer.ftl","gu-IN":"gu-IN/viewer.ftl","he":"he/viewer.ftl","hi-IN":"hi-IN/viewer.ftl","hr":"hr/viewer.ftl","hsb":"hsb/viewer.ftl","hu":"hu/viewer.ftl","hy-AM":"hy-AM/viewer.ftl","hye":"hye/viewer.ftl","ia":"ia/viewer.ftl","id":"id/viewer.ftl","is":"is/viewer.ftl","it":"it/viewer.ftl","ja":"ja/viewer.ftl","ka":"ka/viewer.ftl","kab":"kab/viewer.ftl","kk":"kk/viewer.ftl","km":"km/viewer.ftl","kn":"kn/viewer.ftl","ko":"ko/viewer.ftl","lij":"lij/viewer.ftl","lo":"lo/viewer.ftl","lt":"lt/viewer.ftl","ltg":"ltg/viewer.ftl","lv":"lv/viewer.ftl","meh":"meh/viewer.ftl","mk":"mk/viewer.ftl","mr":"mr/viewer.ftl","ms":"ms/viewer.ftl","my":"my/viewer.ftl","nb-NO":"nb-NO/viewer.ftl","ne-NP":"ne-NP/viewer.ftl","nl":"nl/viewer.ftl","nn-NO":"nn-NO/viewer.ftl","oc":"oc/viewer.ftl","pa-IN":"pa-IN/viewer.ftl","pl":"pl/viewer.ftl","pt-BR":"pt-BR/viewer.ftl","pt-PT":"pt-PT/viewer.ftl","rm":"rm/viewer.ftl","ro":"ro/viewer.ftl","ru":"ru/viewer.ftl","sat":"sat/viewer.ftl","sc":"sc/viewer.ftl","scn":"scn/viewer.ftl","sco":"sco/viewer.ftl","si":"si/viewer.ftl","sk":"sk/viewer.ftl","skr":"skr/viewer.ftl","sl":"sl/viewer.ftl","son":"son/viewer.ftl","sq":"sq/viewer.ftl","sr":"sr/viewer.ftl","sv-SE":"sv-SE/viewer.ftl","szl":"szl/viewer.ftl","ta":"ta/viewer.ftl","te":"te/viewer.ftl","tg":"tg/viewer.ftl","th":"th/viewer.ftl","tl":"tl/viewer.ftl","tr":"tr/viewer.ftl","trs":"trs/viewer.ftl","uk":"uk/viewer.ftl","ur":"ur/viewer.ftl","uz":"uz/viewer.ftl","vi":"vi/viewer.ftl","wo":"wo/viewer.ftl","xh":"xh/viewer.ftl","zh-CN":"zh-CN/viewer.ftl","zh-TW":"zh-TW/viewer.ftl"} \ No newline at end of file +{"ach":"ach/viewer.ftl","af":"af/viewer.ftl","an":"an/viewer.ftl","ar":"ar/viewer.ftl","ast":"ast/viewer.ftl","az":"az/viewer.ftl","be":"be/viewer.ftl","bg":"bg/viewer.ftl","bn":"bn/viewer.ftl","bo":"bo/viewer.ftl","br":"br/viewer.ftl","brx":"brx/viewer.ftl","bs":"bs/viewer.ftl","ca":"ca/viewer.ftl","cak":"cak/viewer.ftl","ckb":"ckb/viewer.ftl","cs":"cs/viewer.ftl","cy":"cy/viewer.ftl","da":"da/viewer.ftl","de":"de/viewer.ftl","dsb":"dsb/viewer.ftl","el":"el/viewer.ftl","en-ca":"en-CA/viewer.ftl","en-gb":"en-GB/viewer.ftl","en-us":"en-US/viewer.ftl","eo":"eo/viewer.ftl","es-ar":"es-AR/viewer.ftl","es-cl":"es-CL/viewer.ftl","es-es":"es-ES/viewer.ftl","es-mx":"es-MX/viewer.ftl","et":"et/viewer.ftl","eu":"eu/viewer.ftl","fa":"fa/viewer.ftl","ff":"ff/viewer.ftl","fi":"fi/viewer.ftl","fr":"fr/viewer.ftl","fur":"fur/viewer.ftl","fy-nl":"fy-NL/viewer.ftl","ga-ie":"ga-IE/viewer.ftl","gd":"gd/viewer.ftl","gl":"gl/viewer.ftl","gn":"gn/viewer.ftl","gu-in":"gu-IN/viewer.ftl","he":"he/viewer.ftl","hi-in":"hi-IN/viewer.ftl","hr":"hr/viewer.ftl","hsb":"hsb/viewer.ftl","hu":"hu/viewer.ftl","hy-am":"hy-AM/viewer.ftl","hye":"hye/viewer.ftl","ia":"ia/viewer.ftl","id":"id/viewer.ftl","is":"is/viewer.ftl","it":"it/viewer.ftl","ja":"ja/viewer.ftl","ka":"ka/viewer.ftl","kab":"kab/viewer.ftl","kk":"kk/viewer.ftl","km":"km/viewer.ftl","kn":"kn/viewer.ftl","ko":"ko/viewer.ftl","lij":"lij/viewer.ftl","lo":"lo/viewer.ftl","lt":"lt/viewer.ftl","ltg":"ltg/viewer.ftl","lv":"lv/viewer.ftl","meh":"meh/viewer.ftl","mk":"mk/viewer.ftl","mr":"mr/viewer.ftl","ms":"ms/viewer.ftl","my":"my/viewer.ftl","nb-no":"nb-NO/viewer.ftl","ne-np":"ne-NP/viewer.ftl","nl":"nl/viewer.ftl","nn-no":"nn-NO/viewer.ftl","oc":"oc/viewer.ftl","pa-in":"pa-IN/viewer.ftl","pl":"pl/viewer.ftl","pt-br":"pt-BR/viewer.ftl","pt-pt":"pt-PT/viewer.ftl","rm":"rm/viewer.ftl","ro":"ro/viewer.ftl","ru":"ru/viewer.ftl","sat":"sat/viewer.ftl","sc":"sc/viewer.ftl","scn":"scn/viewer.ftl","sco":"sco/viewer.ftl","si":"si/viewer.ftl","sk":"sk/viewer.ftl","skr":"skr/viewer.ftl","sl":"sl/viewer.ftl","son":"son/viewer.ftl","sq":"sq/viewer.ftl","sr":"sr/viewer.ftl","sv-se":"sv-SE/viewer.ftl","szl":"szl/viewer.ftl","ta":"ta/viewer.ftl","te":"te/viewer.ftl","tg":"tg/viewer.ftl","th":"th/viewer.ftl","tl":"tl/viewer.ftl","tr":"tr/viewer.ftl","trs":"trs/viewer.ftl","uk":"uk/viewer.ftl","ur":"ur/viewer.ftl","uz":"uz/viewer.ftl","vi":"vi/viewer.ftl","wo":"wo/viewer.ftl","xh":"xh/viewer.ftl","zh-cn":"zh-CN/viewer.ftl","zh-tw":"zh-TW/viewer.ftl"} \ No newline at end of file diff --git a/viewer/locale/nb-NO/viewer.ftl b/viewer/locale/nb-NO/viewer.ftl index e073ff5cb..0f1ffa7b7 100644 --- a/viewer/locale/nb-NO/viewer.ftl +++ b/viewer/locale/nb-NO/viewer.ftl @@ -226,6 +226,21 @@ pdfjs-find-match-diacritics-checkbox-label = Samsvar diakritiske tegn pdfjs-find-entire-word-checkbox-label = Hele ord pdfjs-find-reached-top = Nådde toppen av dokumentet, fortsetter fra bunnen pdfjs-find-reached-bottom = Nådde bunnen av dokumentet, fortsetter fra toppen +# 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] { $current } av { $total } treff + *[other] { $current } av { $total } treff + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Mer enn { $limit } treff + *[other] Mer enn { $limit } treff + } pdfjs-find-not-found = Fant ikke teksten ## Predefined zoom values @@ -286,6 +301,8 @@ pdfjs-editor-ink-button-label = Tegn pdfjs-editor-stamp-button = .title = Legg til eller rediger bilder pdfjs-editor-stamp-button-label = Legg til eller rediger bilder +pdfjs-editor-remove-button = + .title = Fjern # Editor Parameters pdfjs-editor-free-text-color-input = Farge pdfjs-editor-free-text-size-input = Størrelse @@ -324,3 +341,11 @@ pdfjs-editor-alt-text-textarea = ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Øverste venstre hjørne – endre størrelse +pdfjs-editor-resizer-label-top-middle = Øverst i midten — endre størrelse +pdfjs-editor-resizer-label-top-right = Øverste høyre hjørne – endre størrelse +pdfjs-editor-resizer-label-middle-right = Midt til høyre – endre størrelse +pdfjs-editor-resizer-label-bottom-right = Nederste høyre hjørne – endre størrelse +pdfjs-editor-resizer-label-bottom-middle = Nederst i midten — endre størrelse +pdfjs-editor-resizer-label-bottom-left = Nederste venstre hjørne – endre størrelse +pdfjs-editor-resizer-label-middle-left = Midt til venstre — endre størrelse diff --git a/viewer/locale/pl/viewer.ftl b/viewer/locale/pl/viewer.ftl index e155c2a95..3621be9a2 100644 --- a/viewer/locale/pl/viewer.ftl +++ b/viewer/locale/pl/viewer.ftl @@ -226,6 +226,23 @@ pdfjs-find-match-diacritics-checkbox-label = Rozróżnianie liter diakrytyzowany pdfjs-find-entire-word-checkbox-label = Całe słowa pdfjs-find-reached-top = Początek dokumentu. Wyszukiwanie od końca. pdfjs-find-reached-bottom = Koniec dokumentu. Wyszukiwanie od początku. +# 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] { $current }. z { $total } trafienia + [few] { $current }. z { $total } trafień + *[many] { $current }. z { $total } trafień + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Więcej niż { $limit } trafienie + [few] Więcej niż { $limit } trafienia + *[many] Więcej niż { $limit } trafień + } pdfjs-find-not-found = Nie znaleziono tekstu ## Predefined zoom values @@ -324,3 +341,11 @@ pdfjs-editor-alt-text-textarea = ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Lewy górny róg — zmień rozmiar +pdfjs-editor-resizer-label-top-middle = Górny środkowy — zmień rozmiar +pdfjs-editor-resizer-label-top-right = Prawy górny róg — zmień rozmiar +pdfjs-editor-resizer-label-middle-right = Prawy środkowy — zmień rozmiar +pdfjs-editor-resizer-label-bottom-right = Prawy dolny róg — zmień rozmiar +pdfjs-editor-resizer-label-bottom-middle = Dolny środkowy — zmień rozmiar +pdfjs-editor-resizer-label-bottom-left = Lewy dolny róg — zmień rozmiar +pdfjs-editor-resizer-label-middle-left = Lewy środkowy — zmień rozmiar diff --git a/viewer/locale/pt-BR/viewer.ftl b/viewer/locale/pt-BR/viewer.ftl index cc710a352..bd4470063 100644 --- a/viewer/locale/pt-BR/viewer.ftl +++ b/viewer/locale/pt-BR/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Desenho pdfjs-editor-stamp-button = .title = Adicionar ou editar imagens pdfjs-editor-stamp-button-label = Adicionar ou editar imagens +pdfjs-editor-remove-button = + .title = Remover # Editor Parameters pdfjs-editor-free-text-color-input = Cor pdfjs-editor-free-text-size-input = Tamanho @@ -327,11 +329,11 @@ 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 for carregada. pdfjs-editor-alt-text-add-description-label = Adicione uma descrição pdfjs-editor-alt-text-add-description-description = Procure usar uma ou duas frases que descrevam o assunto, o cenário ou as ações. -pdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativo +pdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativa pdfjs-editor-alt-text-mark-decorative-description = Isto é usado para imagens ornamentais, como bordas ou marcas d'água. pdfjs-editor-alt-text-cancel-button = Cancelar pdfjs-editor-alt-text-save-button = Salvar -pdfjs-editor-alt-text-decorative-tooltip = Marcado como decorativo +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” diff --git a/viewer/locale/pt-PT/viewer.ftl b/viewer/locale/pt-PT/viewer.ftl index 595a7a3e3..fc4d31a51 100644 --- a/viewer/locale/pt-PT/viewer.ftl +++ b/viewer/locale/pt-PT/viewer.ftl @@ -226,6 +226,21 @@ pdfjs-find-match-diacritics-checkbox-label = Corresponder diacríticos pdfjs-find-entire-word-checkbox-label = Palavras completas pdfjs-find-reached-top = Topo do documento atingido, a continuar a partir do fundo pdfjs-find-reached-bottom = Fim do documento atingido, a continuar a partir do topo +# 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] { $current } de { $total } correspondência + *[other] { $current } de { $total } correspondências + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Mais de { $limit } correspondência + *[other] Mais de { $limit } correspondências + } pdfjs-find-not-found = Frase não encontrada ## Predefined zoom values @@ -305,7 +320,30 @@ 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-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. +pdfjs-editor-alt-text-add-description-label = Adicionar uma descrição +pdfjs-editor-alt-text-add-description-description = Aponte para 1-2 frases que descrevam o assunto, definição ou ações. +pdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativa +pdfjs-editor-alt-text-mark-decorative-description = Isto é utilizado para imagens decorativas, tais como limites ou marcas d'água. +pdfjs-editor-alt-text-cancel-button = Cancelar +pdfjs-editor-alt-text-save-button = Guardar +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” ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Canto superior esquerdo — redimensionar +pdfjs-editor-resizer-label-top-middle = Superior ao centro — redimensionar +pdfjs-editor-resizer-label-top-right = Canto superior direito — redimensionar +pdfjs-editor-resizer-label-middle-right = Centro à direita — redimensionar +pdfjs-editor-resizer-label-bottom-right = Canto inferior direito — redimensionar +pdfjs-editor-resizer-label-bottom-middle = Inferior ao centro — redimensionar +pdfjs-editor-resizer-label-bottom-left = Canto inferior esquerdo — redimensionar +pdfjs-editor-resizer-label-middle-left = Centro à esquerda — redimensionar diff --git a/viewer/locale/rm/viewer.ftl b/viewer/locale/rm/viewer.ftl index 9d21916ee..9515e720b 100644 --- a/viewer/locale/rm/viewer.ftl +++ b/viewer/locale/rm/viewer.ftl @@ -226,6 +226,21 @@ pdfjs-find-match-diacritics-checkbox-label = Resguardar ils segns diacritics pdfjs-find-entire-word-checkbox-label = Pleds entirs pdfjs-find-reached-top = Il cumenzament dal document è cuntanschì, la tschertga cuntinuescha a la fin dal document pdfjs-find-reached-bottom = La fin dal document è cuntanschì, la tschertga cuntinuescha al cumenzament dal document +# 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] { $current } dad { $total } correspundenza + *[other] { $current } da { $total } correspundenzas + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Dapli che { $limit } correspundenza + *[other] Dapli che { $limit } correspundenzas + } pdfjs-find-not-found = Impussibel da chattar l'expressiun ## Predefined zoom values @@ -324,3 +339,11 @@ pdfjs-editor-alt-text-textarea = ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Chantun sura a sanestra — redimensiunar +pdfjs-editor-resizer-label-top-middle = Sura amez — redimensiunar +pdfjs-editor-resizer-label-top-right = Chantun sura a dretga — redimensiunar +pdfjs-editor-resizer-label-middle-right = Da vart dretga amez — redimensiunar +pdfjs-editor-resizer-label-bottom-right = Chantun sut a dretga — redimensiunar +pdfjs-editor-resizer-label-bottom-middle = Sutvart amez — redimensiunar +pdfjs-editor-resizer-label-bottom-left = Chantun sut a sanestra — redimensiunar +pdfjs-editor-resizer-label-middle-left = Vart sanestra amez — redimensiunar diff --git a/viewer/locale/ru/viewer.ftl b/viewer/locale/ru/viewer.ftl index 61e13cb0f..58c9aa50f 100644 --- a/viewer/locale/ru/viewer.ftl +++ b/viewer/locale/ru/viewer.ftl @@ -303,6 +303,8 @@ pdfjs-editor-ink-button-label = Рисовать pdfjs-editor-stamp-button = .title = Добавить или изменить изображения pdfjs-editor-stamp-button-label = Добавить или изменить изображения +pdfjs-editor-remove-button = + .title = Удалить # Editor Parameters pdfjs-editor-free-text-color-input = Цвет pdfjs-editor-free-text-size-input = Размер diff --git a/viewer/locale/sk/viewer.ftl b/viewer/locale/sk/viewer.ftl index 71d12fe3c..798ee07ae 100644 --- a/viewer/locale/sk/viewer.ftl +++ b/viewer/locale/sk/viewer.ftl @@ -305,6 +305,8 @@ pdfjs-editor-ink-button-label = Kresliť pdfjs-editor-stamp-button = .title = Pridať alebo upraviť obrázky pdfjs-editor-stamp-button-label = Pridať alebo upraviť obrázky +pdfjs-editor-remove-button = + .title = Odstrániť # Editor Parameters pdfjs-editor-free-text-color-input = Farba pdfjs-editor-free-text-size-input = Veľkosť diff --git a/viewer/locale/sl/viewer.ftl b/viewer/locale/sl/viewer.ftl index e002a2c2b..669aefa46 100644 --- a/viewer/locale/sl/viewer.ftl +++ b/viewer/locale/sl/viewer.ftl @@ -226,6 +226,25 @@ pdfjs-find-match-diacritics-checkbox-label = Razlikuj diakritične znake pdfjs-find-entire-word-checkbox-label = Cele besede pdfjs-find-reached-top = Dosežen začetek dokumenta iz smeri konca pdfjs-find-reached-bottom = Doseženo konec dokumenta iz smeri začetka +# 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] Zadetek { $current } od { $total } + [two] Zadetek { $current } od { $total } + [few] Zadetek { $current } od { $total } + *[other] Zadetek { $current } od { $total } + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Več kot { $limit } zadetek + [two] Več kot { $limit } zadetka + [few] Več kot { $limit } zadetki + *[other] Več kot { $limit } zadetkov + } pdfjs-find-not-found = Iskanega ni mogoče najti ## Predefined zoom values @@ -324,3 +343,11 @@ pdfjs-editor-alt-text-textarea = ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Zgornji levi kot – spremeni velikost +pdfjs-editor-resizer-label-top-middle = Zgoraj na sredini – spremeni velikost +pdfjs-editor-resizer-label-top-right = Zgornji desni kot – spremeni velikost +pdfjs-editor-resizer-label-middle-right = Desno na sredini – spremeni velikost +pdfjs-editor-resizer-label-bottom-right = Spodnji desni kot – spremeni velikost +pdfjs-editor-resizer-label-bottom-middle = Spodaj na sredini – spremeni velikost +pdfjs-editor-resizer-label-bottom-left = Spodnji levi kot – spremeni velikost +pdfjs-editor-resizer-label-middle-left = Levo na sredini – spremeni velikost diff --git a/viewer/locale/sq/viewer.ftl b/viewer/locale/sq/viewer.ftl index d1c0a0195..d0a9056f6 100644 --- a/viewer/locale/sq/viewer.ftl +++ b/viewer/locale/sq/viewer.ftl @@ -217,6 +217,21 @@ pdfjs-find-match-diacritics-checkbox-label = Me Përputhje Me Shenjat Diakritike pdfjs-find-entire-word-checkbox-label = Fjalë të Plota pdfjs-find-reached-top = U mbërrit në krye të dokumentit, vazhduar prej fundit pdfjs-find-reached-bottom = U mbërrit në fund të dokumentit, vazhduar prej kreut +# 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] { $current } nga { $total } përputhje + *[other] { $current } nga { $total } përputhje + } +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = + { $limit -> + [one] Më tepër se { $limit } përputhje + *[other] Më tepër se { $limit } përputhje + } pdfjs-find-not-found = Togfjalësh që s’gjendet ## Predefined zoom values @@ -302,9 +317,24 @@ 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. pdfjs-editor-alt-text-add-description-label = Shtoni një përshkrim +pdfjs-editor-alt-text-add-description-description = Synoni për 1-2 togfjalësha që përshkruajnë subjektin, rrethanat apo veprimet. +pdfjs-editor-alt-text-mark-decorative-label = Vëri shenjë si dekorative +pdfjs-editor-alt-text-mark-decorative-description = Kjo përdoret për figura zbukuruese, fjala vjen, anë, ose watermark-e. pdfjs-editor-alt-text-cancel-button = Anuloje pdfjs-editor-alt-text-save-button = Ruaje +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ë” ## Editor resizers ## This is used in an aria label to help to understand the role of the resizer. +pdfjs-editor-resizer-label-top-left = Cepi i sipërm majtas — ripërmasojeni +pdfjs-editor-resizer-label-top-middle = Mesi i pjesës sipër — ripërmasojeni +pdfjs-editor-resizer-label-top-right = Cepi i sipërm djathtas — ripërmasojeni +pdfjs-editor-resizer-label-middle-right = Djathtas në mes — ripërmasojeni +pdfjs-editor-resizer-label-bottom-right = Cepi i poshtëm djathtas — ripërmasojeni +pdfjs-editor-resizer-label-bottom-middle = Mesi i pjesës poshtë — ripërmasojeni +pdfjs-editor-resizer-label-bottom-left = Cepi i poshtëm — ripërmasojeni +pdfjs-editor-resizer-label-middle-left = Majtas në mes — ripërmasojeni diff --git a/viewer/locale/sv-SE/viewer.ftl b/viewer/locale/sv-SE/viewer.ftl index de9f744f6..419f8db08 100644 --- a/viewer/locale/sv-SE/viewer.ftl +++ b/viewer/locale/sv-SE/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Rita pdfjs-editor-stamp-button = .title = Lägg till eller redigera bilder pdfjs-editor-stamp-button-label = Lägg till eller redigera bilder +pdfjs-editor-remove-button = + .title = Ta bort # Editor Parameters pdfjs-editor-free-text-color-input = Färg pdfjs-editor-free-text-size-input = Storlek diff --git a/viewer/locale/th/viewer.ftl b/viewer/locale/th/viewer.ftl index 014bdd983..f6fbadb87 100644 --- a/viewer/locale/th/viewer.ftl +++ b/viewer/locale/th/viewer.ftl @@ -226,6 +226,13 @@ pdfjs-find-match-diacritics-checkbox-label = เครื่องหมาย pdfjs-find-entire-word-checkbox-label = ทั้งคำ pdfjs-find-reached-top = ค้นหาถึงจุดเริ่มต้นของหน้า เริ่มค้นต่อจากด้านล่าง pdfjs-find-reached-bottom = ค้นหาถึงจุดสิ้นสุดหน้า เริ่มค้นต่อจากด้านบน +# 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 } จาก { $total } รายการที่ตรงกัน +# Variables: +# $limit (Number) - the maximum number of matches +pdfjs-find-match-count-limit = มากกว่า { $limit } รายการที่ตรงกัน pdfjs-find-not-found = ไม่พบวลี ## Predefined zoom values @@ -305,7 +312,30 @@ 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-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 = ตัวอย่างเช่น “ชายหนุ่มคนหนึ่งนั่งลงที่โต๊ะเพื่อรับประทานอาหารมื้อหนึ่ง” ## 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 = ตรงกลางด้านซ้าย — ปรับขนาด diff --git a/viewer/locale/tr/viewer.ftl b/viewer/locale/tr/viewer.ftl index 5d6ec61e7..2b8604219 100644 --- a/viewer/locale/tr/viewer.ftl +++ b/viewer/locale/tr/viewer.ftl @@ -301,6 +301,8 @@ pdfjs-editor-ink-button-label = Çiz pdfjs-editor-stamp-button = .title = Resim ekle veya düzenle pdfjs-editor-stamp-button-label = Resim ekle veya düzenle +pdfjs-editor-remove-button = + .title = Kaldır # Editor Parameters pdfjs-editor-free-text-color-input = Renk pdfjs-editor-free-text-size-input = Boyut diff --git a/viewer/locale/vi/viewer.ftl b/viewer/locale/vi/viewer.ftl index d3dd5e064..6eaf38c1a 100644 --- a/viewer/locale/vi/viewer.ftl +++ b/viewer/locale/vi/viewer.ftl @@ -293,6 +293,8 @@ pdfjs-editor-ink-button-label = Vẽ pdfjs-editor-stamp-button = .title = Thêm hoặc chỉnh sửa hình ảnh pdfjs-editor-stamp-button-label = Thêm hoặc chỉnh sửa hình ảnh +pdfjs-editor-remove-button = + .title = Xóa # Editor Parameters pdfjs-editor-free-text-color-input = Màu pdfjs-editor-free-text-size-input = Kích cỡ diff --git a/viewer/locale/zh-CN/viewer.ftl b/viewer/locale/zh-CN/viewer.ftl index 15f763955..21683631b 100644 --- a/viewer/locale/zh-CN/viewer.ftl +++ b/viewer/locale/zh-CN/viewer.ftl @@ -139,8 +139,8 @@ pdfjs-document-properties-page-size-orientation-portrait = 纵向 pdfjs-document-properties-page-size-orientation-landscape = 横向 pdfjs-document-properties-page-size-name-a-three = A3 pdfjs-document-properties-page-size-name-a-four = A4 -pdfjs-document-properties-page-size-name-letter = 文本 -pdfjs-document-properties-page-size-name-legal = 法律 +pdfjs-document-properties-page-size-name-letter = Letter +pdfjs-document-properties-page-size-name-legal = Legal ## Variables: ## $width (Number) - the width of the (current) page diff --git a/viewer/locale/zh-TW/viewer.ftl b/viewer/locale/zh-TW/viewer.ftl index 417c2edec..522a5404f 100644 --- a/viewer/locale/zh-TW/viewer.ftl +++ b/viewer/locale/zh-TW/viewer.ftl @@ -220,7 +220,7 @@ pdfjs-find-previous-button-label = 上一個 pdfjs-find-next-button = .title = 尋找文字下次出現的位置 pdfjs-find-next-button-label = 下一個 -pdfjs-find-highlight-checkbox = 全部強調標示 +pdfjs-find-highlight-checkbox = 強調全部 pdfjs-find-match-case-checkbox-label = 區分大小寫 pdfjs-find-match-diacritics-checkbox-label = 符合變音符號 pdfjs-find-entire-word-checkbox-label = 符合整個字 @@ -293,6 +293,8 @@ pdfjs-editor-ink-button-label = 繪圖 pdfjs-editor-stamp-button = .title = 新增或編輯圖片 pdfjs-editor-stamp-button-label = 新增或編輯圖片 +pdfjs-editor-remove-button = + .title = 移除 # Editor Parameters pdfjs-editor-free-text-color-input = 色彩 pdfjs-editor-free-text-size-input = 大小 diff --git a/viewer/viewer.css b/viewer/viewer.css index 491096a29..1a367f64a 100644 --- a/viewer/viewer.css +++ b/viewer/viewer.css @@ -137,7 +137,7 @@ --input-disabled-border-color:GrayText; --input-hover-border-color:Highlight; --link-outline:1.5px solid LinkText; - --hcm-highligh-filter:invert(100%); + --hcm-highlight-filter:invert(100%); } .annotationLayer .textWidgetAnnotation :is(input, textarea):required, .annotationLayer .choiceWidgetAnnotation select:required, .annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) input:required{ @@ -149,8 +149,8 @@ } .annotationLayer .linkAnnotation:hover{ - -webkit-backdrop-filter:var(--hcm-highligh-filter); - backdrop-filter:var(--hcm-highligh-filter); + -webkit-backdrop-filter:var(--hcm-highlight-filter); + backdrop-filter:var(--hcm-highlight-filter); } .annotationLayer .linkAnnotation > a:hover{ @@ -171,8 +171,8 @@ left:0; width:100%; height:100%; - -webkit-backdrop-filter:var(--hcm-highligh-filter); - backdrop-filter:var(--hcm-highligh-filter); + -webkit-backdrop-filter:var(--hcm-highlight-filter); + backdrop-filter:var(--hcm-highlight-filter); content:""; pointer-events:none; } @@ -924,6 +924,122 @@ border:var(--focus-outline-around); } +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar{ + --editor-toolbar-delete-image:url(images/editor-toolbar-delete.svg); + --editor-toolbar-bg-color:#f0f0f4; + --editor-toolbar-fg-color:#2e2e56; + --editor-toolbar-border-color:#8f8f9d; + --editor-toolbar-hover-bg-color:#e0e0e6; + --editor-toolbar-active-bg-color:#cfcfd8; + --editor-toolbar-focus-outline-color:#0060df; + --editor-toolbar-shadow:0 2px 6px 0 rgb(58 57 68 / 0.2); + + display:flex; + width:-moz-fit-content; + width:fit-content; + height:28px; + flex-direction:column; + justify-content:center; + align-items:center; + cursor:default; + + position:absolute; + inset-inline-end:0; + inset-block-start:calc(100% + 6px); + + border-radius:4px; + background-color:var(--editor-toolbar-bg-color); + border:1px solid var(--editor-toolbar-border-color); + box-shadow:var(--editor-toolbar-shadow); + } + +@media (prefers-color-scheme: dark){ + +:where(html:not(.is-light)) .annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar{ + --editor-toolbar-bg-color:#2b2a33; + --editor-toolbar-fg-color:#fbfbfe; + --editor-toolbar-border-color:#2b2a33; + --editor-toolbar-hover-bg-color:#52525e; + --editor-toolbar-active-bg-color:#5b5b66; + --editor-toolbar-focus-outline-color:#0df; + } + } + +:where(html.is-dark) .annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar{ + --editor-toolbar-bg-color:#2b2a33; + --editor-toolbar-fg-color:#fbfbfe; + --editor-toolbar-border-color:#2b2a33; + --editor-toolbar-hover-bg-color:#52525e; + --editor-toolbar-active-bg-color:#5b5b66; + --editor-toolbar-focus-outline-color:#0df; + } + +@media screen and (forced-colors: active){ + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar{ + --editor-toolbar-bg-color:ButtonFace; + --editor-toolbar-fg-color:ButtonText; + --editor-toolbar-border-color:ButtonText; + --editor-toolbar-hover-bg-color:AccentColor; + --editor-toolbar-active-bg-color:ButtonFace; + --editor-toolbar-focus-outline-color:ButtonBorder; + --editor-toolbar-shadow:none; + } + } + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar.hidden{ + display:none; + } + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar:has(:focus-visible){ + border-color:transparent; + } + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar .buttons{ + display:flex; + padding:0 2px; + justify-content:center; + align-items:center; + gap:4px; + } + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar .buttons .delete{ + width:24px; + height:24px; + cursor:pointer; + border:none; + background-color:transparent; + } + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar .buttons .delete::before{ + content:""; + -webkit-mask-image:var(--editor-toolbar-delete-image); + mask-image:var(--editor-toolbar-delete-image); + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-position:center; + mask-position:center; + display:inline-block; + background-color:var(--editor-toolbar-fg-color); + width:100%; + height:100%; + } + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar .buttons > *:hover{ + border-radius:2px; + background-color:var(--editor-toolbar-hover-bg-color); + } + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar .buttons > *:active{ + border-radius:2px; + background-color:var(--editor-toolbar-active-bg-color); + } + +.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) .editToolbar .buttons > *:focus-visible{ + border-radius:3px; + outline:2px solid var(--editor-toolbar-focus-outline-color); + } + .annotationEditorLayer .freeTextEditor{ padding:calc(var(--freetext-padding) * var(--scale-factor)); width:auto; @@ -1258,6 +1374,39 @@ inset-block-start:0; } +.annotationEditorLayer + :is( + [data-main-rotation="0"] [data-editor-rotation="90"], + [data-main-rotation="90"] [data-editor-rotation="0"], + [data-main-rotation="180"] [data-editor-rotation="270"], + [data-main-rotation="270"] [data-editor-rotation="180"] + ) .editToolbar{ + rotate:270deg; + } + +[dir="ltr"] .annotationEditorLayer + :is( + [data-main-rotation="0"] [data-editor-rotation="90"], + [data-main-rotation="90"] [data-editor-rotation="0"], + [data-main-rotation="180"] [data-editor-rotation="270"], + [data-main-rotation="270"] [data-editor-rotation="180"] + ) .editToolbar{ + inset-inline-start:calc(100% + 6px); + inset-block-start:0; + } + +[dir="rtl"] .annotationEditorLayer + :is( + [data-main-rotation="0"] [data-editor-rotation="90"], + [data-main-rotation="90"] [data-editor-rotation="0"], + [data-main-rotation="180"] [data-editor-rotation="270"], + [data-main-rotation="270"] [data-editor-rotation="180"] + ) .editToolbar{ + inset-inline-end:calc(100% + 6px); + inset-block-end:0; + inset-block-start:unset; + } + .annotationEditorLayer :is( [data-main-rotation="0"] [data-editor-rotation="180"], @@ -1282,6 +1431,19 @@ inset-block-start:-8px; } +.annotationEditorLayer + :is( + [data-main-rotation="0"] [data-editor-rotation="180"], + [data-main-rotation="90"] [data-editor-rotation="90"], + [data-main-rotation="180"] [data-editor-rotation="0"], + [data-main-rotation="270"] [data-editor-rotation="270"] + ) .editToolbar{ + rotate:180deg; + inset-inline-start:0; + inset-block-end:calc(100% + 6px); + inset-block-start:unset; + } + .annotationEditorLayer :is( [data-main-rotation="0"] [data-editor-rotation="270"], @@ -1334,12 +1496,46 @@ inset-block-start:100%; } +.annotationEditorLayer + :is( + [data-main-rotation="0"] [data-editor-rotation="270"], + [data-main-rotation="90"] [data-editor-rotation="180"], + [data-main-rotation="180"] [data-editor-rotation="90"], + [data-main-rotation="270"] [data-editor-rotation="0"] + ) .editToolbar{ + rotate:90deg; + } + +[dir="ltr"] .annotationEditorLayer + :is( + [data-main-rotation="0"] [data-editor-rotation="270"], + [data-main-rotation="90"] [data-editor-rotation="180"], + [data-main-rotation="180"] [data-editor-rotation="90"], + [data-main-rotation="270"] [data-editor-rotation="0"] + ) .editToolbar{ + inset-inline-end:calc(100% + 6px); + inset-block-end:0; + inset-block-start:unset; + } + +[dir="rtl"] .annotationEditorLayer + :is( + [data-main-rotation="0"] [data-editor-rotation="270"], + [data-main-rotation="90"] [data-editor-rotation="180"], + [data-main-rotation="180"] [data-editor-rotation="90"], + [data-main-rotation="270"] [data-editor-rotation="0"] + ) .editToolbar{ + inset-inline-start:calc(100% + 6px); + inset-block-start:0; + } + .altText{ display:flex; align-items:center; justify-content:center; padding-inline:4px; - width:auto; + width:-moz-max-content; + width:max-content; height:24px; min-width:88px; z-index:1; @@ -1466,13 +1662,19 @@ @media (prefers-color-scheme: dark){ -.altText .tooltip.show{ +:where(html:not(.is-light)) .altText .tooltip.show{ --alt-text-tooltip-bg:#1c1b22; --alt-text-tooltip-fg:#fbfbfe; --alt-text-tooltip-shadow:0px 2px 6px 0px #15141a; } } +:where(html.is-dark) .altText .tooltip.show{ + --alt-text-tooltip-bg:#1c1b22; + --alt-text-tooltip-fg:#fbfbfe; + --alt-text-tooltip-shadow:0px 2px 6px 0px #15141a; + } + @media screen and (forced-colors: active){ .altText .tooltip.show{ @@ -1529,7 +1731,7 @@ @media (prefers-color-scheme: dark){ -#altTextDialog{ +:where(html:not(.is-light)) #altTextDialog{ --dialog-bg-color:#1c1b22; --dialog-border-color:#1c1b22; --dialog-shadow:0 2px 14px 0 #15141a; @@ -1550,6 +1752,26 @@ } } +:where(html.is-dark) #altTextDialog{ + --dialog-bg-color:#1c1b22; + --dialog-border-color:#1c1b22; + --dialog-shadow:0 2px 14px 0 #15141a; + --text-primary-color:#fbfbfe; + --text-secondary-color:#cfcfd8; + --focus-ring-color:#0df; + --hover-filter:brightness(1.4); + + --textarea-bg-color:#42414d; + + --radio-bg-color:#2b2a33; + --radio-checked-bg-color:#15141a; + --radio-checked-border-color:#0df; + + --button-cancel-bg-color:#2b2a33; + --button-save-bg-color:#0df; + --button-save-fg-color:#15141a; +} + @media screen and (forced-colors: active){ #altTextDialog{ @@ -1935,6 +2157,7 @@ --toolbar-icon-opacity:0.7; --doorhanger-icon-opacity:0.9; + --editor-toolbar-base-offset:105px; --main-color:rgb(12 12 13); --body-bg-color:rgb(212 212 215); @@ -2031,7 +2254,7 @@ } @media (prefers-color-scheme: dark){ - :root{ + :root:where(:not(.is-light)){ --main-color:rgb(249 249 250); --body-bg-color:rgb(42 42 46); --progressBar-color:rgb(0 96 223); @@ -2069,10 +2292,49 @@ --doorhanger-separator-color:rgb(92 92 97); --dialog-button-bg-color:rgb(92 92 97); --dialog-button-hover-bg-color:rgb(115 115 115); - --loading-icon:url(images/loading-dark.svg); } } +:root:where(.is-dark){ + --main-color:rgb(249 249 250); + --body-bg-color:rgb(42 42 46); + --progressBar-color:rgb(0 96 223); + --progressBar-bg-color:rgb(40 40 43); + --progressBar-blend-color:rgb(20 68 133); + --scrollbar-color:rgb(121 121 123); + --scrollbar-bg-color:rgb(35 35 39); + --toolbar-icon-bg-color:rgb(255 255 255); + --toolbar-icon-hover-bg-color:rgb(255 255 255); + + --sidebar-narrow-bg-color:rgb(42 42 46 / 0.9); + --sidebar-toolbar-bg-color:rgb(50 50 52); + --toolbar-bg-color:rgb(56 56 61); + --toolbar-border-color:rgb(12 12 13); + --button-hover-color:rgb(102 102 103); + --toggled-btn-color:rgb(255 255 255); + --toggled-btn-bg-color:rgb(0 0 0 / 0.3); + --toggled-hover-active-btn-color:rgb(0 0 0 / 0.4); + --dropdown-btn-bg-color:rgb(74 74 79); + --separator-color:rgb(0 0 0 / 0.3); + --field-color:rgb(250 250 250); + --field-bg-color:rgb(64 64 68); + --field-border-color:rgb(115 115 115); + --treeitem-color:rgb(255 255 255 / 0.8); + --treeitem-bg-color:rgb(255 255 255 / 0.15); + --treeitem-hover-color:rgb(255 255 255 / 0.9); + --treeitem-selected-color:rgb(255 255 255 / 0.9); + --treeitem-selected-bg-color:rgb(255 255 255 / 0.25); + --thumbnail-hover-color:rgb(255 255 255 / 0.1); + --thumbnail-selected-color:rgb(255 255 255 / 0.2); + --doorhanger-bg-color:rgb(74 74 79); + --doorhanger-border-color:rgb(39 39 43); + --doorhanger-hover-color:rgb(249 249 250); + --doorhanger-hover-bg-color:rgb(93 94 98); + --doorhanger-separator-color:rgb(92 92 97); + --dialog-button-bg-color:rgb(92 92 97); + --dialog-button-hover-bg-color:rgb(115 115 115); + } + @media screen and (forced-colors: active){ :root{ --button-hover-color:Highlight; @@ -2412,20 +2674,22 @@ body{ #findInput{ width:200px; } + #findInput::-moz-placeholder{ - font-style:normal; -} + font-style:normal; + } + #findInput::placeholder{ - font-style:normal; -} -#findInput[data-status="pending"]{ - background-image:var(--loading-icon); - background-repeat:no-repeat; - background-position:calc(50% + 48% * var(--dir-factor)); -} + font-style:normal; + } + +.loadingInput:has(> #findInput[data-status="pending"])::after{ + visibility:visible; + } + #findInput[data-status="notFound"]{ - background-color:rgb(255 102 102); -} + background-color:rgb(255 102 102); + } .secondaryToolbar, .editorParamsToolbar{ @@ -2489,18 +2753,15 @@ body{ } #editorStampParamsToolbar{ - inset-inline-end:40px; - background-color:var(--toolbar-bg-color); + inset-inline-end:calc(var(--editor-toolbar-base-offset) + 0px); } #editorInkParamsToolbar{ - inset-inline-end:68px; - background-color:var(--toolbar-bg-color); + inset-inline-end:calc(var(--editor-toolbar-base-offset) + 28px); } #editorFreeTextParamsToolbar{ - inset-inline-end:96px; - background-color:var(--toolbar-bg-color); + inset-inline-end:calc(var(--editor-toolbar-base-offset) + 56px); } #editorStampAddImage::before{ @@ -2846,13 +3107,12 @@ body{ mask-image:var(--toolbarButton-editorStamp-icon); } -#print::before, -#secondaryPrint::before{ +:is(#print, #secondaryPrint)::before{ -webkit-mask-image:var(--toolbarButton-print-icon); mask-image:var(--toolbarButton-print-icon); } -:is(#openFile, #secondaryOpenFile)::before{ +#secondaryOpenFile::before{ -webkit-mask-image:var(--toolbarButton-openFile-icon); mask-image:var(--toolbarButton-openFile-icon); } @@ -3053,17 +3313,40 @@ a:is(.toolbarButton, .secondaryToolbarButton)[href="#"]{ background-size:0 0; transition-property:none; } -#pageNumber.visiblePageIsLoading{ - background-image:var(--loading-icon); - background-repeat:no-repeat; - background-position:calc(50% - 42% * var(--dir-factor)); - background-size:16px 16px; - transition-property:background-size; - transition-delay:var(--loading-icon-delay); -} + #pageNumber::-webkit-inner-spin-button{ - -webkit-appearance:none; -} + -webkit-appearance:none; + } + +.loadingInput:has(> #pageNumber.loading)::after{ + visibility:visible; + + transition-property:visibility; + transition-delay:var(--loading-icon-delay); + } + +.loadingInput::after{ + position:absolute; + visibility:hidden; + top:calc(50% - 8px); + width:16px; + height:16px; + + content:""; + background-color:var(--toolbar-icon-bg-color); + -webkit-mask-size:cover; + mask-size:cover; + -webkit-mask-image:var(--loading-icon); + mask-image:var(--loading-icon); + } + +.loadingInput.start::after{ + inset-inline-start:4px; + } + +.loadingInput.end::after{ + inset-inline-end:4px; + } .toolbarField:focus{ border-color:#0a84ff; @@ -3380,7 +3663,6 @@ dialog :link{ } } -.visibleLargeView, .visibleMediumView{ display:none; } @@ -3404,16 +3686,10 @@ dialog :link{ } } -@media all and (max-width: 820px){ - #outerContainer .hiddenLargeView{ - display:none; - } - #outerContainer .visibleLargeView{ - display:inherit; - } -} - @media all and (max-width: 750px){ + :root{ + --editor-toolbar-base-offset:40px; + } #outerContainer .hiddenMediumView{ display:none; } diff --git a/viewer/viewer.html b/viewer/viewer.html index 3a608b54d..5ad7b08eb 100644 --- a/viewer/viewer.html +++ b/viewer/viewer.html @@ -87,7 +87,9 @@