aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.github/FUNDING.yml2
-rw-r--r--config.json.example8
-rw-r--r--manifest/manifest.json2
-rw-r--r--package-lock.json1213
-rw-r--r--package.json4
-rw-r--r--public/_locales/ar/messages.json4
-rw-r--r--public/_locales/bg/messages.json22
-rw-r--r--public/_locales/cs/messages.json22
-rw-r--r--public/_locales/da/messages.json21
-rw-r--r--public/_locales/de/messages.json30
-rw-r--r--public/_locales/en/messages.json2
-rw-r--r--public/_locales/es/messages.json47
-rw-r--r--public/_locales/et/messages.json32
-rw-r--r--public/_locales/fi/messages.json24
-rw-r--r--public/_locales/fr/messages.json173
-rw-r--r--public/_locales/he/messages.json21
-rw-r--r--public/_locales/hr/messages.json7
-rw-r--r--public/_locales/hu/messages.json22
-rw-r--r--public/_locales/id/messages.json21
-rw-r--r--public/_locales/it/messages.json28
-rw-r--r--public/_locales/ja/messages.json191
-rw-r--r--public/_locales/ko/messages.json22
-rw-r--r--public/_locales/ms/messages.json21
-rw-r--r--public/_locales/nl/messages.json21
-rw-r--r--public/_locales/pl/messages.json27
-rw-r--r--public/_locales/pt_BR/messages.json393
-rw-r--r--public/_locales/pt_PT/messages.json61
-rw-r--r--public/_locales/ro/messages.json21
-rw-r--r--public/_locales/ru/messages.json36
-rw-r--r--public/_locales/sk/messages.json21
-rw-r--r--public/_locales/sv/messages.json24
-rw-r--r--public/_locales/tr/messages.json24
-rw-r--r--public/_locales/uk/messages.json32
-rw-r--r--public/_locales/zh_CN/messages.json22
-rw-r--r--public/_locales/zh_TW/messages.json10
-rw-r--r--public/content.css4
-rw-r--r--src/background.ts14
-rw-r--r--src/components/ChapterVoteComponent.tsx64
-rw-r--r--src/components/SkipNoticeComponent.tsx2
-rw-r--r--src/components/options/KeybindComponent.tsx3
-rw-r--r--src/components/options/KeybindDialogComponent.tsx3
-rw-r--r--src/config.ts5
-rw-r--r--src/content.ts66
-rw-r--r--src/js-components/skipButtonControlBar.ts2
-rw-r--r--src/options.ts3
-rw-r--r--src/types.ts9
-rw-r--r--src/utils.ts22
-rw-r--r--src/utils/configUtils.ts43
-rw-r--r--src/utils/videoLabels.ts9
49 files changed, 1094 insertions, 1786 deletions
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 377246c0..391943e4 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,3 +1,3 @@
github: ajayyy-org
patreon: ajayyy
-custom: [buy.ajay.app/l/sponsorblock, sponsor.ajay.app/donate]
+custom: [sponsor.ajay.app/donate]
diff --git a/config.json.example b/config.json.example
index c5e86444..66dc1567 100644
--- a/config.json.example
+++ b/config.json.example
@@ -30,5 +30,11 @@
"guidelines": "https://wiki.sponsor.ajay.app/w/Guidelines",
"mute": "https://wiki.sponsor.ajay.app/w/Mute_Segment",
"chapter": "https://wiki.sponsor.ajay.app/w/Chapter"
- }
+ },
+ "extensionCommunicationAllowList": [
+ "enamippconapkdmgfgjchkhakpfinmaj",
+ "app.ajay.dearrow.extension"
+ ]
}
diff --git a/manifest/manifest.json b/manifest/manifest.json
index 19683b87..c957f9c9 100644
--- a/manifest/manifest.json
+++ b/manifest/manifest.json
@@ -1,7 +1,7 @@
{
"name": "__MSG_fullName__",
"short_name": "SponsorBlock",
- "version": "5.4.0",
+ "version": "5.4.6",
"default_locale": "en",
"description": "__MSG_Description__",
"homepage_url": "https://sponsor.ajay.app",
diff --git a/package-lock.json b/package-lock.json
index 66da680e..87fe7040 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -27,7 +27,7 @@
],
"license": "LGPL-3.0-or-later",
"dependencies": {
- "@ajayyy/maze-utils": "1.1.11",
+ "@ajayyy/maze-utils": "1.1.25",
"content-scripts-register-polyfill": "^4.0.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
@@ -57,7 +57,7 @@
"ts-loader": "^9.4.2",
"ts-node": "^10.9.1",
"typescript": "4.9",
- "web-ext": "^7.5.0",
+ "web-ext": "^7.6.2",
"webpack": "^5.75.0",
"webpack-cli": "^4.10.0",
"webpack-merge": "^5.8.0"
@@ -67,9 +67,9 @@
}
},
"node_modules/@ajayyy/maze-utils": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@ajayyy/maze-utils/-/maze-utils-1.1.11.tgz",
- "integrity": "sha512-hHXqKpPG92c8efvYYmYfjKHhoEaURLJEaK2URIaSAqmxYaFX46hdgyQ/DWMDRx1ffbi49uZ84fOwjFLsyhG5cw==",
+ "version": "1.1.25",
+ "resolved": "https://registry.npmjs.org/@ajayyy/maze-utils/-/maze-utils-1.1.25.tgz",
+ "integrity": "sha512-GntQY3v0SfP35/IYuHeCeCuT7z+Pc15padVmRoYqD9aShsU0yrNBgmFJWxkFMIDoltMiY4ZqSWNlPX5p+Vyovw==",
"funding": [
{
"type": "individual",
@@ -545,9 +545,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.20.13",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
- "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
+ "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.13.11"
@@ -690,15 +690,39 @@
"node": ">=10.0.0"
}
},
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz",
+ "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
"node_modules/@eslint/eslintrc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
- "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz",
+ "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.4.0",
+ "espree": "^9.5.1",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -736,6 +760,35 @@
}
}
},
+ "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz",
+ "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/espree": {
+ "version": "9.5.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz",
+ "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "13.20.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
@@ -776,14 +829,24 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz",
- "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
+ "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/@fluent/syntax": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.19.0.tgz",
+ "integrity": "sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
@@ -1589,9 +1652,9 @@
}
},
"node_modules/@mdn/browser-compat-data": {
- "version": "5.2.29",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.29.tgz",
- "integrity": "sha512-bEBrkTWbDAs/PB4IdRg4CtU750oBRytXHK/wC2oIDkgKZqnt76nACSooQQuHF11mK5k43f/IgFUMO5t5quRPVA==",
+ "version": "5.2.42",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.42.tgz",
+ "integrity": "sha512-CD/2ai1W45cDN/zN2AcYduDavU+nq9aStyQizi4MHxnwkRvS/H24WIjgc1qD8CISoqXa8AAIe+A+zpWxwV7a2Q==",
"dev": true
},
"node_modules/@nodelib/fs.scandir": {
@@ -2576,34 +2639,34 @@
}
},
"node_modules/addons-linter": {
- "version": "5.27.0",
- "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-5.27.0.tgz",
- "integrity": "sha512-gDgl0FcmhZ5cs3St0qAaO9J1BoektwnY+p4dVgcvPu8WaBqH9MG2fk0gL/evCpoHSXeSw15GA87n8Y7zy7raVQ==",
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-5.32.0.tgz",
+ "integrity": "sha512-Lf6oOyw8X9z5BMd9xhQwSbPlN2PUlzDLnYLAVT5lkrgXEx0fO9hRk4JRxWZ8+rFGz+mCIA2TTClZF2f+MKgJQA==",
"dev": true,
"dependencies": {
- "@mdn/browser-compat-data": "5.2.29",
+ "@fluent/syntax": "0.19.0",
+ "@mdn/browser-compat-data": "5.2.42",
"addons-moz-compare": "1.3.0",
- "addons-scanner-utils": "8.3.0",
+ "addons-scanner-utils": "8.5.0",
"ajv": "8.12.0",
"chalk": "4.1.2",
"cheerio": "1.0.0-rc.12",
"columnify": "1.6.0",
"common-tags": "1.8.2",
- "deepmerge": "4.2.2",
- "eslint": "8.32.0",
+ "deepmerge": "4.3.1",
+ "eslint": "8.36.0",
"eslint-plugin-no-unsanitized": "4.0.2",
"eslint-visitor-keys": "3.3.0",
- "espree": "9.4.1",
+ "espree": "9.5.0",
"esprima": "4.0.1",
"fast-json-patch": "3.1.1",
- "fluent-syntax": "0.14.0",
- "glob": "8.1.0",
+ "glob": "9.3.0",
"image-size": "1.0.2",
"is-mergeable-object": "1.1.1",
"jed": "1.1.1",
"json-merge-patch": "1.0.2",
"os-locale": "5.0.0",
- "pino": "8.8.0",
+ "pino": "8.11.0",
"postcss": "8.4.21",
"relaxed-json": "1.0.3",
"semver": "7.3.8",
@@ -2611,7 +2674,7 @@
"source-map-support": "0.5.21",
"tosource": "1.0.0",
"upath": "2.0.1",
- "yargs": "17.6.2",
+ "yargs": "17.7.1",
"yauzl": "2.10.0"
},
"bin": {
@@ -2622,9 +2685,9 @@
}
},
"node_modules/addons-linter/node_modules/addons-scanner-utils": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-8.3.0.tgz",
- "integrity": "sha512-XP+2kxhZxlxiVFXVJ7lyJEuxpUS8ryrolUDqnUEnvOZ/3p8qt9hWCYSliXhI2W+Swf/hZ3F4CLAG6tBnqdxDYA==",
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-8.5.0.tgz",
+ "integrity": "sha512-X35SYZRdSnxx7UZuAk+DizKihQp2Ze2c5GV+5nnRr/FFyx/fOgE3Zo8jdhzSne57PENE9w1ZVocBLJTN6UDB3g==",
"dev": true,
"dependencies": {
"@types/yauzl": "2.10.0",
@@ -2635,7 +2698,7 @@
"yauzl": "2.10.0"
},
"peerDependencies": {
- "body-parser": "1.20.1",
+ "body-parser": "1.20.2",
"express": "4.18.2",
"node-fetch": "2.6.7",
"safe-compare": "1.1.4"
@@ -2686,12 +2749,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/addons-linter/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
"node_modules/addons-linter/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -2735,209 +2792,24 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "node_modules/addons-linter/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/addons-linter/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/addons-linter/node_modules/eslint": {
- "version": "8.32.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz",
- "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==",
- "dev": true,
- "dependencies": {
- "@eslint/eslintrc": "^1.4.1",
- "@humanwhocodes/config-array": "^0.11.8",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "regexpp": "^3.2.0",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/addons-linter/node_modules/eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/addons-linter/node_modules/eslint/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/addons-linter/node_modules/eslint/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/addons-linter/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/addons-linter/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/addons-linter/node_modules/glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz",
+ "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
+ "minimatch": "^7.4.1",
+ "minipass": "^4.2.4",
+ "path-scurry": "^1.6.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/addons-linter/node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/addons-linter/node_modules/glob/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/addons-linter/node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/addons-linter/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -2947,50 +2819,25 @@
"node": ">=8"
}
},
- "node_modules/addons-linter/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
"node_modules/addons-linter/node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
- "node_modules/addons-linter/node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/addons-linter/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "node_modules/addons-linter/node_modules/minimatch": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz",
+ "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==",
"dev": true,
"dependencies": {
- "p-locate": "^5.0.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/addons-linter/node_modules/node-fetch": {
@@ -3015,62 +2862,6 @@
}
}
},
- "node_modules/addons-linter/node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/addons-linter/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/addons-linter/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/addons-linter/node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
"node_modules/addons-linter/node_modules/semver": {
"version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
@@ -3106,30 +2897,6 @@
"optional": true,
"peer": true
},
- "node_modules/addons-linter/node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/addons-linter/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/addons-linter/node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
@@ -3157,9 +2924,9 @@
"dev": true
},
"node_modules/adm-zip": {
- "version": "0.5.9",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz",
- "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==",
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz",
+ "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==",
"dev": true,
"engines": {
"node": ">=6.0"
@@ -4610,9 +4377,9 @@
}
},
"node_modules/core-js": {
- "version": "3.27.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.1.tgz",
- "integrity": "sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==",
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.0.tgz",
+ "integrity": "sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==",
"dev": true,
"hasInstallScript": true,
"funding": {
@@ -4889,8 +4656,9 @@
}
},
"node_modules/deepmerge": {
- "version": "4.2.2",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -5364,13 +5132,15 @@
}
},
"node_modules/eslint": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz",
- "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
+ "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
"dev": true,
"dependencies": {
- "@eslint/eslintrc": "^2.0.0",
- "@eslint/js": "8.35.0",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.1",
+ "@eslint/js": "8.36.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -5381,9 +5151,8 @@
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
+ "espree": "^9.5.0",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -5405,7 +5174,6 @@
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
- "regexpp": "^3.2.0",
"strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
@@ -5541,29 +5309,6 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/eslint/node_modules/@eslint/eslintrc": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz",
- "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==",
- "dev": true,
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.4.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
"node_modules/eslint/node_modules/ansi-styles": {
"version": "4.3.0",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
@@ -5580,6 +5325,7 @@
},
"node_modules/eslint/node_modules/argparse": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
@@ -5615,8 +5361,9 @@
"dev": true
},
"node_modules/eslint/node_modules/debug": {
- "version": "4.3.3",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"dependencies": {
"ms": "2.1.2"
@@ -5715,6 +5462,7 @@
},
"node_modules/eslint/node_modules/js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"dependencies": {
@@ -5844,9 +5592,9 @@
}
},
"node_modules/espree": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
- "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
+ "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
"dev": true,
"dependencies": {
"acorn": "^8.8.0",
@@ -6177,16 +5925,16 @@
}
},
"node_modules/firefox-profile": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.2.2.tgz",
- "integrity": "sha512-3kI17Xl9dL9AeRkpV1yahsJ+UbekkPtlQswKrIsTY1NLgxtEOR4R19rjGGz5+7/rP8Jt6fvxHk+Bai9R6Eai3w==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.3.2.tgz",
+ "integrity": "sha512-/C+Eqa0YgIsQT2p66p7Ygzqe7NlE/GNTbhw2SBCm5V3OsWDPITNdTPEcH2Q2fe7eMpYYNPKdUcuVioZBZiR6kA==",
"dev": true,
"dependencies": {
"adm-zip": "~0.5.x",
"fs-extra": "~9.0.1",
"ini": "~2.0.0",
"minimist": "^1.2.5",
- "xml2js": "~0.4.23"
+ "xml2js": "^0.5.0"
},
"bin": {
"firefox-profile": "lib/cli.js"
@@ -6257,16 +6005,6 @@
"integrity": "sha512-XprP7lDrVT+kE2c2YlfiV+IfS9zxukiIOvNamPNsImNhXadSsQEbosItdL9bUQlCZXR13SvPk20BjWSWLA7m4A==",
"dev": true
},
- "node_modules/fluent-syntax": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/fluent-syntax/-/fluent-syntax-0.14.0.tgz",
- "integrity": "sha512-+k8uXWfRpSrE33764RbpjIKMzIX6R9EnSjFBgaA1s0Mboc3KnW9sYe0c6vjIoZQY1C4Gst1VFvAOP6YGJjTJuA==",
- "deprecated": "Renamed to @fluent/syntax 0.14.0",
- "dev": true,
- "engines": {
- "node": ">=8.9.0"
- }
- },
"node_modules/follow-redirects": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
@@ -6961,9 +6699,9 @@
"dev": true
},
"node_modules/htmlparser2": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz",
- "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==",
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"dev": true,
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
@@ -6974,9 +6712,9 @@
],
"dependencies": {
"domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
+ "domhandler": "^5.0.3",
"domutils": "^3.0.1",
- "entities": "^4.3.0"
+ "entities": "^4.4.0"
}
},
"node_modules/http-cache-semantics": {
@@ -9501,9 +9239,9 @@
}
},
"node_modules/jose": {
- "version": "4.11.2",
- "resolved": "https://registry.npmjs.org/jose/-/jose-4.11.2.tgz",
- "integrity": "sha512-njj0VL2TsIxCtgzhO+9RRobBvws4oYyCM8TpvoUQwl/MbIM3NFJRR9+e6x0sS5xXaP1t6OCBkaBME98OV9zU5A==",
+ "version": "4.13.1",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz",
+ "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==",
"dev": true,
"funding": {
"url": "https://github.com/sponsors/panva"
@@ -9693,9 +9431,9 @@
}
},
"node_modules/jsonwebtoken/node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
+ "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -10239,10 +9977,16 @@
"optional": true
},
"node_modules/nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -10303,9 +10047,9 @@
}
},
"node_modules/node-fetch": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz",
- "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz",
+ "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==",
"dev": true,
"dependencies": {
"data-uri-to-buffer": "^4.0.0",
@@ -10564,9 +10308,9 @@
}
},
"node_modules/open": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
- "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
"dev": true,
"dependencies": {
"define-lazy-prop": "^2.0.0",
@@ -10919,9 +10663,9 @@
}
},
"node_modules/pino": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/pino/-/pino-8.8.0.tgz",
- "integrity": "sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ==",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-8.11.0.tgz",
+ "integrity": "sha512-Z2eKSvlrl2rH8p5eveNUnTdd4AjJk8tAsLkHYZQKGHP4WTh2Gi1cOSOs3eWPqaj+niS3gj4UkoreoaWgF3ZWYg==",
"dev": true,
"dependencies": {
"atomic-sleep": "^1.0.0",
@@ -10966,9 +10710,9 @@
}
},
"node_modules/pino-std-serializers": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz",
- "integrity": "sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.0.tgz",
+ "integrity": "sha512-IWgSzUL8X1w4BIWTwErRgtV8PyOGOOi60uqv0oKuS/fOA8Nco/OeI6lBuc4dyP8MMfdFwyHqTMcBIA7nDiqEqA==",
"dev": true
},
"node_modules/pirates": {
@@ -11060,9 +10804,9 @@
"dev": true
},
"node_modules/process-warning": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.1.0.tgz",
- "integrity": "sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz",
+ "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==",
"dev": true
},
"node_modules/promise-toolbox": {
@@ -11709,9 +11453,9 @@
}
},
"node_modules/safe-stable-stringify": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz",
- "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
+ "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
"dev": true,
"engines": {
"node": ">=10"
@@ -11942,13 +11686,13 @@
}
},
"node_modules/sign-addon": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/sign-addon/-/sign-addon-5.2.0.tgz",
- "integrity": "sha512-t5CZ4MSKAd3uJBUfjgWfSyKYC1pQS6BMUbgI5OytzMkTOQ9NkdkFE8bB0AJLQIGqDrNS2b1+/ghAP56iuCUE+g==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/sign-addon/-/sign-addon-5.3.0.tgz",
+ "integrity": "sha512-7nHlCzhQgVMLBNiXVEgbG/raq48awOW0lYMN5uo1BaB3mp0+k8M8pvDwbfTlr3apcxZJsk9HQsAW1POwoJugpQ==",
"dev": true,
"dependencies": {
"common-tags": "1.8.2",
- "core-js": "3.27.1",
+ "core-js": "3.29.0",
"deepcopy": "2.1.0",
"es6-error": "4.1.1",
"es6-promisify": "7.0.0",
@@ -11981,9 +11725,9 @@
}
},
"node_modules/sonic-boom": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.1.tgz",
- "integrity": "sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz",
+ "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==",
"dev": true,
"dependencies": {
"atomic-sleep": "^1.0.0"
@@ -12045,9 +11789,9 @@
}
},
"node_modules/split2": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz",
- "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
"dev": true,
"engines": {
"node": ">= 10.x"
@@ -13100,42 +12844,42 @@
}
},
"node_modules/web-ext": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.5.0.tgz",
- "integrity": "sha512-Ymflj7Aq/LOD+zGoyvwRbAPx/yMJeig2OEb/rRXYrWl6NWRI5E0c2iWGqlBcnL45iKrOzz70H438dVeJk0w2ug==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.6.2.tgz",
+ "integrity": "sha512-xlxbzgFBIS/UWWlvWxyR1PIqRRzDj1cutoHh+VZu4ZTcJTfv35KVdKkLRZv4PQwHu4dg8VfTg7WEcNP4QLaaFQ==",
"dev": true,
"dependencies": {
- "@babel/runtime": "7.20.13",
+ "@babel/runtime": "7.21.0",
"@devicefarmer/adbkit": "3.2.3",
- "addons-linter": "5.27.0",
+ "addons-linter": "5.32.0",
"bunyan": "1.8.15",
"camelcase": "7.0.1",
"chrome-launcher": "0.15.1",
"debounce": "1.2.1",
"decamelize": "6.0.0",
"es6-error": "4.1.1",
- "firefox-profile": "4.2.2",
+ "firefox-profile": "4.3.2",
"fs-extra": "11.1.0",
"fx-runner": "1.3.0",
"import-fresh": "3.3.0",
- "jose": "4.11.2",
+ "jose": "4.13.1",
"mkdirp": "1.0.4",
"multimatch": "6.0.0",
"mz": "2.7.0",
- "node-fetch": "3.3.0",
+ "node-fetch": "3.3.1",
"node-notifier": "10.0.1",
- "open": "8.4.0",
+ "open": "8.4.2",
"parse-json": "6.0.2",
"promise-toolbox": "0.21.0",
- "sign-addon": "5.2.0",
+ "sign-addon": "5.3.0",
"source-map-support": "0.5.21",
"strip-bom": "5.0.0",
"strip-json-comments": "5.0.0",
"tmp": "0.2.1",
"update-notifier": "6.0.2",
"watchpack": "2.4.0",
- "ws": "8.12.0",
- "yargs": "17.6.2",
+ "ws": "8.13.0",
+ "yargs": "17.7.1",
"zip-dir": "2.0.0"
},
"bin": {
@@ -13690,9 +13434,9 @@
}
},
"node_modules/ws": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz",
- "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+ "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
"dev": true,
"engines": {
"node": ">=10.0.0"
@@ -13732,9 +13476,9 @@
}
},
"node_modules/xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
+ "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
"dev": true,
"dependencies": {
"sax": ">=0.6.0",
@@ -13784,9 +13528,9 @@
}
},
"node_modules/yargs": {
- "version": "17.6.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz",
- "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
+ "version": "17.7.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
+ "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
"dev": true,
"dependencies": {
"cliui": "^8.0.1",
@@ -13858,9 +13602,9 @@
},
"dependencies": {
"@ajayyy/maze-utils": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/@ajayyy/maze-utils/-/maze-utils-1.1.11.tgz",
- "integrity": "sha512-hHXqKpPG92c8efvYYmYfjKHhoEaURLJEaK2URIaSAqmxYaFX46hdgyQ/DWMDRx1ffbi49uZ84fOwjFLsyhG5cw=="
+ "version": "1.1.25",
+ "resolved": "https://registry.npmjs.org/@ajayyy/maze-utils/-/maze-utils-1.1.25.tgz",
+ "integrity": "sha512-GntQY3v0SfP35/IYuHeCeCuT7z+Pc15padVmRoYqD9aShsU0yrNBgmFJWxkFMIDoltMiY4ZqSWNlPX5p+Vyovw=="
},
"@ampproject/remapping": {
"version": "2.2.0",
@@ -14193,9 +13937,9 @@
}
},
"@babel/runtime": {
- "version": "7.20.13",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
- "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
+ "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.11"
@@ -14309,15 +14053,30 @@
"integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==",
"dev": true
},
+ "@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@eslint-community/regexpp": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz",
+ "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==",
+ "dev": true
+ },
"@eslint/eslintrc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
- "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz",
+ "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.4.0",
+ "espree": "^9.5.1",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -14341,6 +14100,23 @@
"ms": "2.1.2"
}
},
+ "eslint-visitor-keys": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz",
+ "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "9.5.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz",
+ "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.0"
+ }
+ },
"globals": {
"version": "13.20.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
@@ -14368,9 +14144,15 @@
}
},
"@eslint/js": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz",
- "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
+ "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "dev": true
+ },
+ "@fluent/syntax": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.19.0.tgz",
+ "integrity": "sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==",
"dev": true
},
"@humanwhocodes/config-array": {
@@ -14989,9 +14771,9 @@
}
},
"@mdn/browser-compat-data": {
- "version": "5.2.29",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.29.tgz",
- "integrity": "sha512-bEBrkTWbDAs/PB4IdRg4CtU750oBRytXHK/wC2oIDkgKZqnt76nACSooQQuHF11mK5k43f/IgFUMO5t5quRPVA==",
+ "version": "5.2.42",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.42.tgz",
+ "integrity": "sha512-CD/2ai1W45cDN/zN2AcYduDavU+nq9aStyQizi4MHxnwkRvS/H24WIjgc1qD8CISoqXa8AAIe+A+zpWxwV7a2Q==",
"dev": true
},
"@nodelib/fs.scandir": {
@@ -15793,34 +15575,34 @@
"dev": true
},
"addons-linter": {
- "version": "5.27.0",
- "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-5.27.0.tgz",
- "integrity": "sha512-gDgl0FcmhZ5cs3St0qAaO9J1BoektwnY+p4dVgcvPu8WaBqH9MG2fk0gL/evCpoHSXeSw15GA87n8Y7zy7raVQ==",
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-5.32.0.tgz",
+ "integrity": "sha512-Lf6oOyw8X9z5BMd9xhQwSbPlN2PUlzDLnYLAVT5lkrgXEx0fO9hRk4JRxWZ8+rFGz+mCIA2TTClZF2f+MKgJQA==",
"dev": true,
"requires": {
- "@mdn/browser-compat-data": "5.2.29",
+ "@fluent/syntax": "0.19.0",
+ "@mdn/browser-compat-data": "5.2.42",
"addons-moz-compare": "1.3.0",
- "addons-scanner-utils": "8.3.0",
+ "addons-scanner-utils": "8.5.0",
"ajv": "8.12.0",
"chalk": "4.1.2",
"cheerio": "1.0.0-rc.12",
"columnify": "1.6.0",
"common-tags": "1.8.2",
- "deepmerge": "4.2.2",
- "eslint": "8.32.0",
+ "deepmerge": "4.3.1",
+ "eslint": "8.36.0",
"eslint-plugin-no-unsanitized": "4.0.2",
"eslint-visitor-keys": "3.3.0",
- "espree": "9.4.1",
+ "espree": "9.5.0",
"esprima": "4.0.1",
"fast-json-patch": "3.1.1",
- "fluent-syntax": "0.14.0",
- "glob": "8.1.0",
+ "glob": "9.3.0",
"image-size": "1.0.2",
"is-mergeable-object": "1.1.1",
"jed": "1.1.1",
"json-merge-patch": "1.0.2",
"os-locale": "5.0.0",
- "pino": "8.8.0",
+ "pino": "8.11.0",
"postcss": "8.4.21",
"relaxed-json": "1.0.3",
"semver": "7.3.8",
@@ -15828,14 +15610,14 @@
"source-map-support": "0.5.21",
"tosource": "1.0.0",
"upath": "2.0.1",
- "yargs": "17.6.2",
+ "yargs": "17.7.1",
"yauzl": "2.10.0"
},
"dependencies": {
"addons-scanner-utils": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-8.3.0.tgz",
- "integrity": "sha512-XP+2kxhZxlxiVFXVJ7lyJEuxpUS8ryrolUDqnUEnvOZ/3p8qt9hWCYSliXhI2W+Swf/hZ3F4CLAG6tBnqdxDYA==",
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-8.5.0.tgz",
+ "integrity": "sha512-X35SYZRdSnxx7UZuAk+DizKihQp2Ze2c5GV+5nnRr/FFyx/fOgE3Zo8jdhzSne57PENE9w1ZVocBLJTN6UDB3g==",
"dev": true,
"requires": {
"@types/yauzl": "2.10.0",
@@ -15867,12 +15649,6 @@
"color-convert": "^2.0.1"
}
},
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
"brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -15907,154 +15683,16 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true
- },
- "eslint": {
- "version": "8.32.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz",
- "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==",
- "dev": true,
- "requires": {
- "@eslint/eslintrc": "^1.4.1",
- "@humanwhocodes/config-array": "^0.11.8",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "regexpp": "^3.2.0",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "dependencies": {
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- }
- }
- },
- "eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
"glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz",
+ "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- },
- "dependencies": {
- "minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
+ "minimatch": "^7.4.1",
+ "minipass": "^4.2.4",
+ "path-scurry": "^1.6.1"
}
},
"has-flag": {
@@ -16063,38 +15701,19 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
"json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "minimatch": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz",
+ "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==",
"dev": true,
"requires": {
- "p-locate": "^5.0.0"
+ "brace-expansion": "^2.0.1"
}
},
"node-fetch": {
@@ -16108,44 +15727,6 @@
"whatwg-url": "^5.0.0"
}
},
- "optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "requires": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true
- },
"semver": {
"version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
@@ -16172,21 +15753,6 @@
"optional": true,
"peer": true
},
- "type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true
- },
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
@@ -16216,9 +15782,9 @@
"dev": true
},
"adm-zip": {
- "version": "0.5.9",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz",
- "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==",
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz",
+ "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==",
"dev": true
},
"agent-base": {
@@ -17271,9 +16837,9 @@
}
},
"core-js": {
- "version": "3.27.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.1.tgz",
- "integrity": "sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==",
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.0.tgz",
+ "integrity": "sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==",
"dev": true
},
"core-util-is": {
@@ -17476,8 +17042,9 @@
}
},
"deepmerge": {
- "version": "4.2.2",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"dev": true
},
"defaults": {
@@ -17823,13 +17390,15 @@
}
},
"eslint": {
- "version": "8.35.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz",
- "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==",
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
+ "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
"dev": true,
"requires": {
- "@eslint/eslintrc": "^2.0.0",
- "@eslint/js": "8.35.0",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.1",
+ "@eslint/js": "8.36.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -17840,9 +17409,8 @@
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
+ "espree": "^9.5.0",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -17864,29 +17432,11 @@
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
- "regexpp": "^3.2.0",
"strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"dependencies": {
- "@eslint/eslintrc": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz",
- "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==",
- "dev": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.4.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- }
- },
"ansi-styles": {
"version": "4.3.0",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
@@ -17897,6 +17447,7 @@
},
"argparse": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
@@ -17923,8 +17474,9 @@
"dev": true
},
"debug": {
- "version": "4.3.3",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
@@ -17985,6 +17537,7 @@
},
"js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"requires": {
@@ -18161,9 +17714,9 @@
"dev": true
},
"espree": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
- "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
+ "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
"dev": true,
"requires": {
"acorn": "^8.8.0",
@@ -18406,16 +17959,16 @@
}
},
"firefox-profile": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.2.2.tgz",
- "integrity": "sha512-3kI17Xl9dL9AeRkpV1yahsJ+UbekkPtlQswKrIsTY1NLgxtEOR4R19rjGGz5+7/rP8Jt6fvxHk+Bai9R6Eai3w==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.3.2.tgz",
+ "integrity": "sha512-/C+Eqa0YgIsQT2p66p7Ygzqe7NlE/GNTbhw2SBCm5V3OsWDPITNdTPEcH2Q2fe7eMpYYNPKdUcuVioZBZiR6kA==",
"dev": true,
"requires": {
"adm-zip": "~0.5.x",
"fs-extra": "~9.0.1",
"ini": "~2.0.0",
"minimist": "^1.2.5",
- "xml2js": "~0.4.23"
+ "xml2js": "^0.5.0"
},
"dependencies": {
"fs-extra": {
@@ -18469,12 +18022,6 @@
"integrity": "sha512-XprP7lDrVT+kE2c2YlfiV+IfS9zxukiIOvNamPNsImNhXadSsQEbosItdL9bUQlCZXR13SvPk20BjWSWLA7m4A==",
"dev": true
},
- "fluent-syntax": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/fluent-syntax/-/fluent-syntax-0.14.0.tgz",
- "integrity": "sha512-+k8uXWfRpSrE33764RbpjIKMzIX6R9EnSjFBgaA1s0Mboc3KnW9sYe0c6vjIoZQY1C4Gst1VFvAOP6YGJjTJuA==",
- "dev": true
- },
"follow-redirects": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
@@ -18962,15 +18509,15 @@
"dev": true
},
"htmlparser2": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz",
- "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==",
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"dev": true,
"requires": {
"domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
+ "domhandler": "^5.0.3",
"domutils": "^3.0.1",
- "entities": "^4.3.0"
+ "entities": "^4.4.0"
}
},
"http-cache-semantics": {
@@ -20802,9 +20349,9 @@
}
},
"jose": {
- "version": "4.11.2",
- "resolved": "https://registry.npmjs.org/jose/-/jose-4.11.2.tgz",
- "integrity": "sha512-njj0VL2TsIxCtgzhO+9RRobBvws4oYyCM8TpvoUQwl/MbIM3NFJRR9+e6x0sS5xXaP1t6OCBkaBME98OV9zU5A==",
+ "version": "4.13.1",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz",
+ "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==",
"dev": true
},
"js-sdsl": {
@@ -20958,9 +20505,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
+ "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -21392,9 +20939,9 @@
"optional": true
},
"nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true
},
"natural-compare": {
@@ -21434,9 +20981,9 @@
"dev": true
},
"node-fetch": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz",
- "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz",
+ "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==",
"dev": true,
"requires": {
"data-uri-to-buffer": "^4.0.0",
@@ -21624,9 +21171,9 @@
}
},
"open": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
- "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
"dev": true,
"requires": {
"define-lazy-prop": "^2.0.0",
@@ -21877,9 +21424,9 @@
"dev": true
},
"pino": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/pino/-/pino-8.8.0.tgz",
- "integrity": "sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ==",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-8.11.0.tgz",
+ "integrity": "sha512-Z2eKSvlrl2rH8p5eveNUnTdd4AjJk8tAsLkHYZQKGHP4WTh2Gi1cOSOs3eWPqaj+niS3gj4UkoreoaWgF3ZWYg==",
"dev": true,
"requires": {
"atomic-sleep": "^1.0.0",
@@ -21920,9 +21467,9 @@
}
},
"pino-std-serializers": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz",
- "integrity": "sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.0.tgz",
+ "integrity": "sha512-IWgSzUL8X1w4BIWTwErRgtV8PyOGOOi60uqv0oKuS/fOA8Nco/OeI6lBuc4dyP8MMfdFwyHqTMcBIA7nDiqEqA==",
"dev": true
},
"pirates": {
@@ -21985,9 +21532,9 @@
"dev": true
},
"process-warning": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.1.0.tgz",
- "integrity": "sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz",
+ "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==",
"dev": true
},
"promise-toolbox": {
@@ -22460,9 +22007,9 @@
}
},
"safe-stable-stringify": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz",
- "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
+ "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
"dev": true
},
"safer-buffer": {
@@ -22644,13 +22191,13 @@
}
},
"sign-addon": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/sign-addon/-/sign-addon-5.2.0.tgz",
- "integrity": "sha512-t5CZ4MSKAd3uJBUfjgWfSyKYC1pQS6BMUbgI5OytzMkTOQ9NkdkFE8bB0AJLQIGqDrNS2b1+/ghAP56iuCUE+g==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/sign-addon/-/sign-addon-5.3.0.tgz",
+ "integrity": "sha512-7nHlCzhQgVMLBNiXVEgbG/raq48awOW0lYMN5uo1BaB3mp0+k8M8pvDwbfTlr3apcxZJsk9HQsAW1POwoJugpQ==",
"dev": true,
"requires": {
"common-tags": "1.8.2",
- "core-js": "3.27.1",
+ "core-js": "3.29.0",
"deepcopy": "2.1.0",
"es6-error": "4.1.1",
"es6-promisify": "7.0.0",
@@ -22680,9 +22227,9 @@
"dev": true
},
"sonic-boom": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.1.tgz",
- "integrity": "sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz",
+ "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==",
"dev": true,
"requires": {
"atomic-sleep": "^1.0.0"
@@ -22734,9 +22281,9 @@
}
},
"split2": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz",
- "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
"dev": true
},
"sprintf-js": {
@@ -23480,42 +23027,42 @@
}
},
"web-ext": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.5.0.tgz",
- "integrity": "sha512-Ymflj7Aq/LOD+zGoyvwRbAPx/yMJeig2OEb/rRXYrWl6NWRI5E0c2iWGqlBcnL45iKrOzz70H438dVeJk0w2ug==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-7.6.2.tgz",
+ "integrity": "sha512-xlxbzgFBIS/UWWlvWxyR1PIqRRzDj1cutoHh+VZu4ZTcJTfv35KVdKkLRZv4PQwHu4dg8VfTg7WEcNP4QLaaFQ==",
"dev": true,
"requires": {
- "@babel/runtime": "7.20.13",
+ "@babel/runtime": "7.21.0",
"@devicefarmer/adbkit": "3.2.3",
- "addons-linter": "5.27.0",
+ "addons-linter": "5.32.0",
"bunyan": "1.8.15",
"camelcase": "7.0.1",
"chrome-launcher": "0.15.1",
"debounce": "1.2.1",
"decamelize": "6.0.0",
"es6-error": "4.1.1",
- "firefox-profile": "4.2.2",
+ "firefox-profile": "4.3.2",
"fs-extra": "11.1.0",
"fx-runner": "1.3.0",
"import-fresh": "3.3.0",
- "jose": "4.11.2",
+ "jose": "4.13.1",
"mkdirp": "1.0.4",
"multimatch": "6.0.0",
"mz": "2.7.0",
- "node-fetch": "3.3.0",
+ "node-fetch": "3.3.1",
"node-notifier": "10.0.1",
- "open": "8.4.0",
+ "open": "8.4.2",
"parse-json": "6.0.2",
"promise-toolbox": "0.21.0",
- "sign-addon": "5.2.0",
+ "sign-addon": "5.3.0",
"source-map-support": "0.5.21",
"strip-bom": "5.0.0",
"strip-json-comments": "5.0.0",
"tmp": "0.2.1",
"update-notifier": "6.0.2",
"watchpack": "2.4.0",
- "ws": "8.12.0",
- "yargs": "17.6.2",
+ "ws": "8.13.0",
+ "yargs": "17.7.1",
"zip-dir": "2.0.0"
},
"dependencies": {
@@ -23892,9 +23439,9 @@
}
},
"ws": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz",
- "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+ "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
"dev": true,
"requires": {}
},
@@ -23911,9 +23458,9 @@
"dev": true
},
"xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
+ "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
"dev": true,
"requires": {
"sax": ">=0.6.0",
@@ -23951,9 +23498,9 @@
"dev": true
},
"yargs": {
- "version": "17.6.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz",
- "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
+ "version": "17.7.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
+ "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
"dev": true,
"requires": {
"cliui": "^8.0.1",
diff --git a/package.json b/package.json
index c678efa8..112764be 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
"description": "",
"main": "background.js",
"dependencies": {
- "@ajayyy/maze-utils": "1.1.11",
+ "@ajayyy/maze-utils": "1.1.25",
"content-scripts-register-polyfill": "^4.0.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
@@ -34,7 +34,7 @@
"ts-loader": "^9.4.2",
"ts-node": "^10.9.1",
"typescript": "4.9",
- "web-ext": "^7.5.0",
+ "web-ext": "^7.6.2",
"webpack": "^5.75.0",
"webpack-cli": "^4.10.0",
"webpack-merge": "^5.8.0"
diff --git a/public/_locales/ar/messages.json b/public/_locales/ar/messages.json
index 43b789f2..5d72049b 100644
--- a/public/_locales/ar/messages.json
+++ b/public/_locales/ar/messages.json
@@ -713,10 +713,6 @@
"selectYourCountry": {
"message": "اختر بلدك"
},
- "alreadyDonated": {
- "message": "إذا تبرعت بأي مبلغ قبل الآن، يمكنك الحصول على إمكانية الوصول عبر التواصل مع البريد الإلكتروني:",
- "description": "After the colon is an email address"
- },
"patreonSignIn": {
"message": "سجل مع بيتريون (Patreon)"
},
diff --git a/public/_locales/bg/messages.json b/public/_locales/bg/messages.json
index f2b7b653..b3efa20e 100644
--- a/public/_locales/bg/messages.json
+++ b/public/_locales/bg/messages.json
@@ -797,6 +797,10 @@
"message": "Показване на икона, когато видеоклипът е изцяло реклама",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Показване на етикети на миниатюрите на видеоклиповете",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Цвят на неизпратен сегмент",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Изберете вашата държава"
},
- "alreadyDonated": {
- "message": "Ако сте дарили някаква сума преди, можете да осребрите безплатен достъп чрез имейл:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Ако не можете да си позволите да закупите лиценз, щракнете {тук}, за да видите дали отговаряте на условията за отстъпка",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Въведете лицензния ключ"
},
- "chaptersPage1": {
- "message": "Функцията за групови глави на SponsorBlock е достъпна само за хора, закупили лиценз, или за хора, на които е предоставен безплатен достъп поради техния минал принос"
- },
- "chaptersPage2": {
- "message": "Забележка: Разрешението за изпращане на глави все още се основава на изчислена репутация. Закупуването на лиценз ви позволява само да преглеждате глави, изпратени от други",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Нова функция: Персонализирани глави с краудсорсинг. Това са секции с персонализирани имена във видеоклипове, които могат да бъдат подредени, за да станат все по-прецизни. Закупете лиценз, за ​​да видите главите, изпратени в това видео, като например: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Нова функция: Персонализирани глави с краудсорсинг. Това са секции с персонализирани имена във видеоклипове, които могат да бъдат подредени, за да станат все по-прецизни. Имате безплатен достъп, активирайте в опциите."
- },
"unsubmittedSegmentCounts": {
"message": "В момента имате {0} в {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
diff --git a/public/_locales/cs/messages.json b/public/_locales/cs/messages.json
index 116e44f0..afa2b8a1 100644
--- a/public/_locales/cs/messages.json
+++ b/public/_locales/cs/messages.json
@@ -797,6 +797,10 @@
"message": "Zobrazit ikonu, když je celé video reklama",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Zobrazit štítky i u náhledů videí",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Barva neodeslaného segmentu",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Vyberte vaši zemi"
},
- "alreadyDonated": {
- "message": "Pokud jste již přispěli jakoukoli částkou, můžete získat bezplatný přístup odesláním e-mailu na:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Pokud si nemůžete dovolit zakoupení licence, klikněte {sem}, abyste zjistili, zda máte nárok na slevu",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Zadejte licenční klíč"
},
- "chaptersPage1": {
- "message": "Funkce komunitních kapitol je dostupná pouze lidem, kteří si zakoupili licenci, nebo lidem, kteří získali přístup zdarma díky jejich příspěvkům"
- },
- "chaptersPage2": {
- "message": "Poznámka: Oprávnění k odesílání kapitol je stále založené na vypočítané reputaci. Zakoupení licence vám pouze umožní zobrazit si kapitoly odeslané ostatními uživateli",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Nová funkce: komunitní vlastní kapitoly. Jedná se o komunitou vytvořené sekce ve videích, které lze slučovat, aby byly stále přesnější. Zakupte si licenci pro zobrazení kapitol u tohoto videa, jako například: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Nová funkce: komunitní vlastní kapitoly. Jedná se o komunitou vytvořené sekce ve videích, které lze slučovat, aby byly stále přesnější. Přístup máte zdarma, povolte jej v možnostech."
- },
"unsubmittedSegmentCounts": {
"message": "Momentálně máte {0} na {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
diff --git a/public/_locales/da/messages.json b/public/_locales/da/messages.json
index 684427a8..13f61919 100644
--- a/public/_locales/da/messages.json
+++ b/public/_locales/da/messages.json
@@ -1142,10 +1142,6 @@
"selectYourCountry": {
"message": "Vælg dit land"
},
- "alreadyDonated": {
- "message": "Hvis du har doneret et beløb før, kan du indløse gratis adgang via e-mail:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Hvis du ikke har råd til at købe en licens, så klik på {here} for at se, om du er berettiget til en rabat",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1165,20 +1161,6 @@
"enterLicenseKey": {
"message": "Indtast Licensnøgle"
},
- "chaptersPage1": {
- "message": "SponsorBlock crowd-sourced kapitler funktion er kun tilgængelig for personer, der køber en licens, eller for personer, der har fået gratis adgang på grund af deres tidligere bidrag"
- },
- "chaptersPage2": {
- "message": "Bemærk: Tilladelse til at indsende kapitler er stadig baseret på beregnet omdømme. Indkøb af en licens giver dig kun mulighed for at se kapitler indsendt af andre",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Ny funktion: Crowd-sourced brugerdefinerede kapitler. Disse er brugerdefinerede sektioner i videoer, der kan stables for at få mere og mere præcise. Køb en licens til at se kapitlerne indsendt på denne video såsom: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Ny funktion: Crowd-sourced brugerdefinerede kapitler. Disse er brugerdefinerede sektioner i videoer, der kan stables for at få mere og mere præcise. Du har gratis adgang, aktiver i indstillinger."
- },
"unsubmittedSegmentCounts": {
"message": "Du har lige nu {0} på {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1233,8 +1215,5 @@
},
"exportSegmentsAsURL": {
"message": "Del som URL"
- },
- "segmentFetchFailureWarning": {
- "message": "Advarsel: Serveren har endnu ikke svaret med segmenter. Der kan faktisk være segmenter på denne video, der allerede er indsendt, men du har bare ikke modtaget dem på grund af problemer med serveren."
}
}
diff --git a/public/_locales/de/messages.json b/public/_locales/de/messages.json
index 8448f823..d0185638 100644
--- a/public/_locales/de/messages.json
+++ b/public/_locales/de/messages.json
@@ -238,7 +238,7 @@
"message": "Alle von dir negativ bewerteten Segmente bleiben auch nach neu laden der Seite verborgen"
},
"trackDownvotesWarning": {
- "message": "Warnung: Das Deaktivieren wird alle zuvor gespeicherten negativen Bewertungen löschen"
+ "message": "Warnung: Das Deaktivieren dieser Option wird alle zuvor gespeicherten negativen Bewertungen löschen"
},
"enableQueryByHashPrefix": {
"message": "Abfrage nach Hash-Präfix"
@@ -256,7 +256,7 @@
"message": "Zeige Kategorien im Einsendungsmenü auch ohne Einreichungsberechtigungen"
},
"whatShowCategoryWithoutPermission": {
- "message": "Einige Kategorien benötigen Erlaubnis zum Übermitteln aufgrund von Mindestanforderungen an Reputation"
+ "message": "Einige Kategorien erfordern eine Freigabe zur Einreichung aufgrund von Mindestanforderungen an die Reputation"
},
"showNotice": {
"message": "Hinweis erneut anzeigen"
@@ -794,9 +794,13 @@
"message": "Segmente zulassen, die den Ton ausschalten anstatt zu überspringen"
},
"fullVideoSegments": {
- "message": "Zeige ein Icon, wenn ein ganzes Video Werbung ist",
+ "message": "Ein Symbol anzeigen, wenn ein Video vollständig aus Werbung besteht",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Label auch auf Video-Thumbnails anzeigen",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Nicht eingereichte Farbe",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Wähle dein Land"
},
- "alreadyDonated": {
- "message": "Wenn du zuvor etwas gespendet hast, kannst du einen kostenlosen Zugang per E-Mail einlösen:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Wenn du dir keine Lizenz leisten kannst, klicke {hier} um zu sehen, ob du für einen Rabatt in Frage kommen",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Lizenzschlüssel eingeben"
},
- "chaptersPage1": {
- "message": "Die Crowd-sourced Kapitel-Funktion von SponsorBlock ist nur für Personen verfügbar, welche eine Lizenz kaufen, oder gratis Zugriff für Ihre bisherigen Beiträge erhalten haben"
- },
- "chaptersPage2": {
- "message": "Hinweis: Erlaubnis zum Einreichen von Kapiteln basiert immer noch auf dem berechneten Ruf. Der kauf einer Lizenz berechtigt dich nur, die eingereichten Kapitel der anderen zu sehen",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Neues Feature: Crowdsourced benutzerdefinierte Kapitel. Dies sind benutzerdefinierte Abschnitte in Videos, die gestapelt werden können, um mehr und mehr präzise zu werden. Kauf eine Lizenz, um Kapitel, die in diesem Video eingereicht wurden, anzusehen: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Neues Feature: Crowd-gesourcte benutzerdefinierte Kapitel. Dies sind benutzerdefiniert benannte Abschnitte in Videos, die gestapelt werden können, um mehr und mehr präzise zu werden. Du hast kostenlosen Zugang, aktiviere es in den Optionen."
- },
"unsubmittedSegmentCounts": {
"message": "Du hast derzeit {0} in {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1245,7 +1231,7 @@
"message": "Als URL teilen"
},
"segmentFetchFailureWarning": {
- "message": "Warnung: Der Server hat noch nicht mit Segmenten geantwortet. Möglicherweise gibt es bereits Segmente zu diesem Video, aber du hast sie aufgrund von Problemen mit dem Server noch nicht erhalten."
+ "message": "Warnung: Der Server hat noch nicht mit Segmenten geantwortet. Möglicherweise gibt es in diesem Video bereits übermittelte Segmente, aber du hast sie aufgrund von Serverproblemen noch nicht erhalten."
},
"allowScrollingToEdit": {
"message": "Scrollen zum Bearbeiten von Zeiten erlauben"
diff --git a/public/_locales/en/messages.json b/public/_locales/en/messages.json
index db7e2a7e..9bae1e98 100644
--- a/public/_locales/en/messages.json
+++ b/public/_locales/en/messages.json
@@ -1231,7 +1231,7 @@
"message": "Share as URL"
},
"segmentFetchFailureWarning": {
- "message": "Warning: The server hasn't responded with segments yet. There might actually be segments on this video already submitted but you just haven't recieved them due to issues with the server."
+ "message": "Warning: The server hasn't responded with segments yet. There might actually be segments on this video already submitted but you just haven't received them due to issues with the server."
},
"allowScrollingToEdit": {
"message": "Allow Scrolling To Edit Times"
diff --git a/public/_locales/es/messages.json b/public/_locales/es/messages.json
index 51ce8154..458a1e5a 100644
--- a/public/_locales/es/messages.json
+++ b/public/_locales/es/messages.json
@@ -17,7 +17,7 @@
"message": "Esto ya ha sido enviado antes"
},
"channelWhitelisted": {
- "message": "¡Canal Permitido!"
+ "message": "¡Canal permitido!"
},
"Segment": {
"message": "segmento"
@@ -131,6 +131,9 @@
"closeIcon": {
"message": "Icono de cerrar"
},
+ "OpenSubmissionMenu": {
+ "message": "Abrir Menú de Envíos"
+ },
"sortSegments": {
"message": "Ordenar Segmentos"
},
@@ -601,7 +604,7 @@
"message": "Promociones pagadas"
},
"category_sponsor_guideline2": {
- "message": "No para donaciones o merchandising"
+ "message": "No para donaciones o mercancía personalizada"
},
"category_selfpromo": {
"message": "Promoción Propia/No Remunerada"
@@ -610,13 +613,13 @@
"message": "Similar a \"sponsor\", excepto que para la promoción propia o no remunerada. Esto incluye secciones sobre mercancía, donaciones o información sobre con quiénes colaboraron."
},
"category_selfpromo_guideline1": {
- "message": "Donaciones, afiliaciones y merchandising"
+ "message": "Donaciones, membresías y mercancía personalizada"
},
"category_selfpromo_guideline2": {
- "message": "Comentarios inútiles que no aportan nada al vídeo"
+ "message": "Agradecimientos gratuitos que no contribuyen al video"
},
"category_selfpromo_guideline3": {
- "message": "No para productos y merchandising de empresas"
+ "message": "No para productos ni mercancía diseñados por empresas"
},
"category_exclusive_access": {
"message": "Acceso Exclusivo"
@@ -638,13 +641,13 @@
"message": "Cuando hay un breve recordatorio para dar me gusta, suscribirse o seguirlos en medio del contenido. Si es largo o sobre algo específico, debería estar bajo promoción propia en su lugar."
},
"category_interaction_guideline1": {
- "message": "Recordatorios breves para darle a me gusta, suscribirse o seguir"
+ "message": "Recordatorios breves para darle me gusta, suscribirse o seguir"
},
"category_interaction_guideline2": {
"message": "Incluye recordatorios indirectos para comentar"
},
"category_interaction_guideline3": {
- "message": "No para promoción general, solo peticiones de actuación"
+ "message": "No para promoción general, solo llamadas a la acción"
},
"category_interaction_short": {
"message": "Recordatorio de Interacción"
@@ -677,13 +680,13 @@
"message": "Vista previa/Recapitulación"
},
"category_preview_description": {
- "message": "Colección de vídeos que muestran lo que se verá en este vídeo o en otros vídeos de una serie en la que toda esta información se repite más adelante en el vídeo."
+ "message": "Colección de clips que muestran lo que vendrá en este video u otros videos en una serie en la cual toda la información es repetida en el video."
},
"category_preview_guideline1": {
- "message": "Vídeos que aparecen más tarde, o en un vídeo futuro"
+ "message": "Clips que aparecen más tarde o en un video futuro"
},
"category_preview_guideline2": {
- "message": "Recopilación de un vídeo anterior"
+ "message": "Recapitulación de un video anterior"
},
"category_preview_guideline3": {
"message": "No para secciones que añaden contenido adicional"
@@ -719,7 +722,7 @@
"message": "Secciones que no están en versiones oficiales"
},
"category_music_offtopic_guideline2": {
- "message": "Sin música en un espectáculo en directo"
+ "message": "Secciones sin música en un espectáculo en vivo"
},
"category_poi_highlight": {
"message": "Destacado"
@@ -794,6 +797,10 @@
"message": "Mostrar un icono cuando un video es enteramente un anuncio",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "También mostrar etiquetas en las miniaturas de los vídeos",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Color No Enviado",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1149,10 +1156,6 @@
"selectYourCountry": {
"message": "Seleccione su país"
},
- "alreadyDonated": {
- "message": "Si has donado cualquier cantidad antes de ahora, puedes canjear el acceso gratuito vía correo electrónico:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Si no puedes permitirte comprar una licencia, haz clic {aquí} para ver si eres elegible para un descuento",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1172,20 +1175,6 @@
"enterLicenseKey": {
"message": "Ingresar clave de licencia"
},
- "chaptersPage1": {
- "message": "La función de capítulos colaborativos de SponsorBlock solo está disponible para las personas que adquieran una licencia o para aquellas a las que se les conceda acceso gratuito debido a sus contribuciones anteriores"
- },
- "chaptersPage2": {
- "message": "Nota: el permiso para enviar capítulos sigue basándose en la reputación calculada. La compra de una licencia solo te permite ver los capítulos enviados por otros usuarios",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Nueva función: capítulos personalizados creados por la comunidad. Se trata de secciones con nombres personalizados que se pueden superponer en los vídeos para obtener una mayor precisión. Adquiere una licencia para ver los capítulos presentados en este vídeo como: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Nueva función: capítulos personalizados creados por la comunidad. Se trata de secciones con nombres personalizados que se pueden superponer en los vídeos para obtener una mayor precisión. Tienes acceso de forma gratuita, se activa en las opciones."
- },
"unsubmittedSegmentCounts": {
"message": "Actualmente tienes {0} en {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
diff --git a/public/_locales/et/messages.json b/public/_locales/et/messages.json
index 3cc4ebf2..2ff89b21 100644
--- a/public/_locales/et/messages.json
+++ b/public/_locales/et/messages.json
@@ -131,6 +131,9 @@
"closeIcon": {
"message": "Sulgemisikoon"
},
+ "OpenSubmissionMenu": {
+ "message": "Ava saatmise menüü"
+ },
"sortSegments": {
"message": "Sorteeri segmendid"
},
@@ -250,7 +253,7 @@
"message": "Kui video on uus ning segmente ei leitud, proovitakse vaatamise ajal iga paari minuti tagant uuesti segmente tuua."
},
"enableShowCategoryWithoutPermission": {
- "message": "Näita kategooriaid segmentide menüüs isegi ilma segmendi esitamise loata"
+ "message": "Näita segmentide menüüs ka ilma saatmise loata kategooriaid"
},
"whatShowCategoryWithoutPermission": {
"message": "Osade kategooriate esitamiseks on minimaalse reputatsiooni nõuete tõttu vajalik luba"
@@ -473,7 +476,7 @@
"message": "Segmendid, mis on lühemad kui määratud väärtus ei jäeta vahele või ei kuvata mängijal."
},
"enableManualSkipOnFullVideo": {
- "message": "Jäta käsitsi vahele, kui täis video pealkiri on saadaval"
+ "message": "Jäta käsitsi vahele, kui eksisteerib terve video silt"
},
"whatManualSkipOnFullVideo": {
"message": "Inimestele, kes soovivad vaadata (enese-)reklaami sisaldavat videot segamatult."
@@ -794,6 +797,10 @@
"message": "Kuva ikoon, kui terve video on reklaam",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Kuva silte ka videote pisipiltidel",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Saatmata värv",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1149,10 +1156,6 @@
"selectYourCountry": {
"message": "Vali oma riik"
},
- "alreadyDonated": {
- "message": "Kui olete annetanud ükskõik millise summa, saate lunastada oma tasuta ligipääsu saates kirja e-postile:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Kui te ei saa lubada endale litsensi soetamist, vajutage {here}, et uurida, kas kvalifitseerute allahindluse saamisele",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1172,20 +1175,6 @@
"enterLicenseKey": {
"message": "Sisesta litsentsivõti"
},
- "chaptersPage1": {
- "message": "SponsorBlocki kogukonna-loodud peatükkide funktsioon on saadaval vaid inimestele, kes ostavad litsentsi või neile, kes saavad tasuta ligipääsu varasemate panuste tõttu"
- },
- "chaptersPage2": {
- "message": "NB: Teie luba peatükke esitada on jätkuvalt põhinev reputatsiooni arvutustel. Litsensi soetamine lubab vaid teiste inimeste peatükke näha",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Uus Funktsioon: Rahva poolt rahastatavad isikupärased peatükid. Need on isikupärastatava pealikirjaga peatükid videos, mis on samuti ühildatavad, et näidata täpsemat segmendi pikkust. Soetage litsents, et näha selle video jaoks esitatud peatükke, nt: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Uus Funktsioon: Rahva poolt rahastatavad isikupärased peatükid. Need on isikupärastatava pealikirjaga peatükid videos, mis on samuti ühildatavad, et näidata täpsemat segmendi pikkust. Teil on tasuta ligipääs, lülitage see seadetest sisse."
- },
"unsubmittedSegmentCounts": {
"message": "Sul on hetkel {0} {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1241,9 +1230,6 @@
"exportSegmentsAsURL": {
"message": "Jaga URLina"
},
- "segmentFetchFailureWarning": {
- "message": "Tähelepanu: Server ei ole veel segmente edastanud. Sellel videol võivad olla esitatud segmendid, aga te pole neid serveri tõrke tõttu kätte saanud."
- },
"allowScrollingToEdit": {
"message": "Luba aegade muutmiseks kerimine"
}
diff --git a/public/_locales/fi/messages.json b/public/_locales/fi/messages.json
index 91a5a8af..250d3831 100644
--- a/public/_locales/fi/messages.json
+++ b/public/_locales/fi/messages.json
@@ -797,6 +797,10 @@
"message": "Näytä kuvake, kun video on kokonaan mainos",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Näytä tunnisteet myös videoiden pienoiskuvissa",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Lähettämättömien väri",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Valitse maasi"
},
- "alreadyDonated": {
- "message": "Jos olet aiemmin lahjoittanut jonkin summan, voit lunastaa käyttöoikeuden veloituksetta sähköpostitse:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Jos sinulla ei ole varaa lisenssiin, paina {tästä} nähdäksesi oletko oikeutettu alennukseen",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Syötä lisenssiavain"
},
- "chaptersPage1": {
- "message": "SponsorBlockin joukkolähteinen kappaletoiminto on vain lisenssin ostaneiden tai aiempien tukien perusteella veloituksettoman käyttöoikeuden saaneiden henkilöiden käytettävissä"
- },
- "chaptersPage2": {
- "message": "Huomioi: Kappaleiden lähetysoikeus perustuu edelleen laskettuun maineeseen. Lisenssin hankinta sallii sinun ainoastaan tarkastella muiden lähettämiä kappaleita",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Uusi ominaisuus: Joukkolähteisesti nimetyt kappaleet. Nämä ovat nimettyjä osia videoissa, joita voi pinota yhä paremman tarkkuuden saavuttamiseksi. Osta lisenssi nähdäksesi tähän videoon lisätyt kappaleet, kuten: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Uusi ominaisuus: Joukkolähteisesti nimetyt kappaleet. Nämä ovat nimettyjä osia videoissa, joita voi pinota yhä paremman tarkkuuden saavuttamiseksi. Sinulla on pääsy ominaisuuteen ilmaiseksi, ota se käyttöön asetuksissa."
- },
"unsubmittedSegmentCounts": {
"message": "Sinulla on tällä hetkellä {0} {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1245,7 +1231,7 @@
"message": "Jaa URL-osoitteena"
},
"segmentFetchFailureWarning": {
- "message": "Varoitus: Palvelin ei ole vielä toimittanut osiotietoja. Video saattaa sisältää jo lähetettyjä osioita, mutta et vain ole vielä vastaanottanut niitä palvelinongelmien takia."
+ "message": "Varoitus: Palvelin ei ole vielä toimittanut osiotietoja. Video saattaa sisältää jo ilmoitettuja osioita, mutta et vain ole vielä vastaanottanut niitä palvelinongelmien takia."
},
"allowScrollingToEdit": {
"message": "Salli aikojen muokkaaminen skrollaamalla"
diff --git a/public/_locales/fr/messages.json b/public/_locales/fr/messages.json
index a5852b40..47885fd0 100644
--- a/public/_locales/fr/messages.json
+++ b/public/_locales/fr/messages.json
@@ -8,10 +8,10 @@
"description": "Description of the extension."
},
"400": {
- "message": "Soumission invalide"
+ "message": "Le serveur indique que cette requête est invalide"
},
"429": {
- "message": "Vous cherchez à envoyer beaucoup de segments, y en a-t-il vraiment autant ?"
+ "message": "Vous cherchez à soummettre trop de segments pour cette vidéo, êtes vous sûr-e de ne pas avoir fait une erreur ?"
},
"409": {
"message": "Ce segment a déjà été soumis auparavant"
@@ -63,7 +63,7 @@
"message": "Revenir en arrière"
},
"reskip": {
- "message": "Sauter"
+ "message": "Passer"
},
"unmute": {
"message": "Réactiver le son"
@@ -75,16 +75,16 @@
"message": "Minuteur arrêté"
},
"confirmMSG": {
- "message": "Pour modifier ou supprimer des soumissions, cliquez sur le bouton d'info ou ouvrez la fenêtre de l'extension en cliquant sur son icône dans le coin en haut à droite."
+ "message": "Pour modifier ou supprimer des soumissions, cliquez sur le bouton d'information ou ouvrez la fenêtre de l'extension en cliquant sur son icône dans le coin en haut à droite."
},
"clearThis": {
- "message": "Êtes-vous certain(e) de vouloir supprimer vos soumissions ?\n\n"
+ "message": "Êtes-vous certain-e de vouloir supprimer ceci ?\n\n"
},
"Unknown": {
"message": "Une erreur s'est produite lors de la soumission, veuillez réessayer plus tard."
},
"sponsorFound": {
- "message": "Cette vidéo a des segments dans la base de données!"
+ "message": "Cette vidéo a des segments dans la base de données !"
},
"sponsor404": {
"message": "Aucun segment trouvé"
@@ -96,13 +96,13 @@
"message": "Fin du segment"
},
"sponsorCancel": {
- "message": "Annuler la création de segment"
+ "message": "Annuler la création du segment"
},
"noVideoID": {
"message": "Aucune vidéo YouTube trouvée.\nActualisez l'onglet s'il s'agit d'une erreur."
},
"refreshSegments": {
- "message": "Rafraîchir les segments"
+ "message": "Actualiser les segments"
},
"success": {
"message": "Succès !"
@@ -126,7 +126,7 @@
"message": "Ouvrir l'encart SponsorBlock"
},
"closePopup": {
- "message": "Fermer le Popup"
+ "message": "Fermer l'encart"
},
"closeIcon": {
"message": "Icône \"Fermer\""
@@ -138,19 +138,19 @@
"message": "Trier les segments"
},
"submitCheck": {
- "message": "Êtes-vous sûr de vouloir soumettre ces segments?"
+ "message": "Êtes-vous sûr de vouloir soumettre ces segments ?"
},
"whitelistChannel": {
"message": "Ajouter la chaîne à la liste blanche"
},
"removeFromWhitelist": {
- "message": "Enlever la chaîne de la liste blanche"
+ "message": "Retirer la chaîne de la liste blanche"
},
"voteOnTime": {
"message": "Voter pour un segment"
},
"Submissions": {
- "message": "Contributions"
+ "message": "Soumissions"
},
"savedPeopleFrom": {
"message": "Vous avez sauvé les utilisateurs de "
@@ -159,20 +159,20 @@
"message": "Classement"
},
"recordTimesDescription": {
- "message": "Envoyer"
+ "message": "Soumettre"
},
"submissionEditHint": {
- "message": "Le menu d'édition apparaîtra après que vous avez cliqué sur envoyer",
+ "message": "Le menu d'édition du segment apparaîtra après que vous ayez cliqué sur envoyer",
"description": "Appears in the popup to inform them that editing has been moved to the video player."
},
"popupHint": {
- "message": "Astuce : vous pouvez configurer des raccourcis clavier dans les options"
+ "message": "Astuce : vous pouvez configurer les raccourcis clavier de l'extension dans les options"
},
"clearTimesButton": {
"message": "Supprimer les temps"
},
"publicStats": {
- "message": "Votre pseudo est inscrit dans le classement public pour afficher vos contributions. Le consulter"
+ "message": "Votre pseudo est inscrit dans le classement public permettant de présenter vos soumissions. Le consulter"
},
"Username": {
"message": "Pseudo"
@@ -181,13 +181,13 @@
"message": "Choisir un pseudonyme"
},
"copyPublicID": {
- "message": "Copier l'ID utilisateur"
+ "message": "Copier le UserID"
},
"copySegmentID": {
"message": "Copier l'identifiant du segment"
},
"discordAdvert": {
- "message": "Rejoignez le serveur Discord officiel pour toutes suggestions ou remarques!"
+ "message": "Rejoignez le serveur Discord officiel pour partager vos suggestions et remarques !"
},
"hideThis": {
"message": "Cacher"
@@ -196,7 +196,7 @@
"message": "Options"
},
"showButtons": {
- "message": "Montrer les boutons sur le lecteur YouTube"
+ "message": "Afficher les boutons sur le lecteur YouTube"
},
"hideButtons": {
"message": "Cacher les boutons sur le lecteur YouTube"
@@ -226,10 +226,10 @@
"message": "Activer le suivi du nombre de sauts de segments"
},
"whatViewTracking": {
- "message": "Cette fonctionnalité permet de suivre les segments que vous avez sautés pour faire savoir aux utilisateurs à quel point leur soumission a aidé les autres et est utilisée comme donnée avec les votes positifs pour s'assurer que des spams n'entrent pas dans la base de données. L'extension envoie un message au serveur chaque fois que vous sautez un segment. Il est à espérer que la plupart des gens ne modifient pas ce paramètre pour que les données sur le nombre d'affichages soient exactes. :)"
+ "message": "Cette fonctionnalité enregistre les segments que vous avez sautés afin d'informer leur auteur à quel point leur soumission a été utile. Elle est aussi utilisée en complément des votes positifs pour empêcher la soumission de spams dans la base de données. SponsorBlock envoie un message au serveur à chaque fois que vous passez un segment. Nous espérons que la plupart des utilisateurs ne modifieront pas ce paramètre afin de conserver des statistiques aussi représentatives que possible. :)"
},
"enableViewTrackingInPrivate": {
- "message": "Activer le suivi du nombre de sauts dans les onglets privés/incognito"
+ "message": "Activer le décompte du nombre de segments sautés dans les onglets de navigation privée/incognito"
},
"enableTrackDownvotes": {
"message": "Enregistrer les segments votés négativement"
@@ -244,7 +244,7 @@
"message": "Requête par préfixe du hash"
},
"whatQueryByHashPrefix": {
- "message": "Au lieu de demander des segments au serveur à l'aide de l'identifiant de la vidéo, les 4 premiers caractères du hash de l'identifiant de la vidéo sont envoyés. Ce serveur renverra les données pour toutes les vidéos ayant des hash similaires."
+ "message": "Plutôt que de récupérer depuis le serveur les segments à sauter à l'aide de l'identifiant de la vidéo, les 4 premiers caractères du hash de l'identifiant de la vidéo sont envoyés. Le serveur renverra les données pour toutes les vidéos ayant des hash similaires."
},
"enableRefetchWhenNotFound": {
"message": "Récupérer les segments sur les nouvelles vidéos"
@@ -259,31 +259,31 @@
"message": "Certaines catégories nécessitent une autorisation en raison d'exigences minimales de réputation"
},
"showNotice": {
- "message": "Afficher la notification"
+ "message": "Afficher à nouveau la notification"
},
"showSkipNotice": {
- "message": "Notifier après qu'un segment ait été sauté"
+ "message": "Notifier après qu'un segment a été sauté"
},
"showCategoryGuidelines": {
"message": "Affiche l'aide de la catégorie"
},
"noticeVisibilityMode0": {
- "message": "Notifications de passage"
+ "message": "Cacher les notifications en mode plein écran"
},
"noticeVisibilityMode1": {
- "message": "Petite notifications de passage pour l'auto skip"
+ "message": "Petite notification lors du passage automatique"
},
"noticeVisibilityMode2": {
"message": "Toute les petites notifications de passage"
},
"noticeVisibilityMode3": {
- "message": "Notifications de passage qui disparaissent pour l'auto skip"
+ "message": "Notifications estompées lors du passage automatique"
},
"noticeVisibilityMode4": {
- "message": "Toute les notifications de passage qui disparaissent"
+ "message": "Toute les notifications de passage sont estompées"
},
"longDescription": {
- "message": "SponsorBlock vous permet de passer les sponsors, les intros, les outros, les rappels d'abonnement et autres parties ennuyeuses des vidéos YouTube. SponsorBlock est une extension de navigateur qui permet à n'importe qui de soumettre les temps de début et de fin des segments sponsorisés et d'autres segments de vidéos YouTube. Une fois qu'une personne a soumis ces informations, toutes les autres personnes possédant cette extension passeront directement les segments sponsorisés. Vous pouvez également sauter les sections non musicales des vidéos musicales.",
+ "message": "SponsorBlock vous permet de passer les messages sponsorisés, les introductions, les postfaces, les rappels d'abonnement et autres passages ennuyeux des vidéos YouTube. SponsorBlock est une extension de navigateur web qui permet à tout le monde de soumettre les temps de début et de fin des passages sponsorisés et d'autres segments de vidéos YouTube. Dès que quelqu'un-e soumet ces informations, toutes les autres personnes possédant l'extension passeront directement les segments sponsorisés. Vous pouvez également sauter les sections non musicales des vidéos musicales.",
"description": "Full description of the extension on the store pages."
},
"website": {
@@ -386,13 +386,13 @@
"message": "Notification audio lors du passage"
},
"audioNotificationDescription": {
- "message": "Une notification audio sera jouée chaque fois qu'un segment est passé. Si désactivé (ou si le passage automatique est désactivé), aucun son ne sera joué."
+ "message": "Une notification audio sera jouée chaque fois qu'un segment sera passé. Si désactivé (ou si le passage automatique est désactivé), aucun son ne sera joué."
},
"showTimeWithSkips": {
- "message": "Afficher le temps avec les passages supprimés"
+ "message": "Afficher la durée en supprimant les segments"
},
"showTimeWithSkipsDescription": {
- "message": "Ce temps apparaît entre crochets à côté du temps actuel sous la barre de défilement. Cela indique la durée totale de la vidéo après déduction de tous les segments. Ceci comprend les segments marqués comme étant uniquement à \"Afficher dans la barre de recherche\"."
+ "message": "Cette durée apparaît entre crochets à côté de la durée actuelle, sous la barre de défilement. Il s'agit de la durée totale de la vidéo après déduction de tous les segments. Les segments marqués comme étant uniquement à \"Afficher dans la barre de recherche\" sont inclus dans le calcul."
},
"youHaveSkipped": {
"message": "Vous avez passé "
@@ -410,7 +410,7 @@
"message": "heures"
},
"youHaveSavedTime": {
- "message": "Vous avez fait économiser les utilisateurs",
+ "message": "Vous avez sauvé les autres de",
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
},
"youHaveSavedTimeEnd": {
@@ -418,13 +418,13 @@
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
},
"statusReminder": {
- "message": "Vérifiez status.sponsor.ajay.app pour le status du serveur."
+ "message": "Consultez status.sponsor.ajay.app pour connaître le statut du serveur."
},
"changeUserID": {
"message": "Importer/Exporter Votre ID privé d'utilisateur"
},
"whatChangeUserID": {
- "message": "Il doit rester privé. 0 l'instar d'un mot de passe, il ne doit être partagé avec personne. Si une autre personne est en possession de cette information, elle peut usurper votre identité SponsorBlock. Si vous cherchez votre UserID public, cliquez sur l'icône du presse-papiers dans l'encart."
+ "message": "Cela doit rester privé. À l'instar d'un mot de passe, il ne doit être partagé avec personne. Si une autre personne est en possession de cette donnée, elle peut usurper votre identité SponsorBlock. Si vous cherchez votre UserID public, cliquez sur l'icône du presse-papiers dans l'encart."
},
"setUserID": {
"message": "Définir l'ID privé d'utilisateur"
@@ -452,13 +452,13 @@
"message": "Ajouter une instance de client tiers"
},
"addInvidiousInstanceDescription": {
- "message": "Ajouter une instance personnalisée. Elle doit être formaté avec SEULEMENT le domaine. Exemple: invidious.ajay.app"
+ "message": "Ajouter une instance personnalisée. Contient UNIQUEMENT son nom de domaine. Par exemple : invidious.ajay.app"
},
"add": {
"message": "Ajouter"
},
"addInvidiousInstanceError": {
- "message": "Ce domaine n'est pas valide. Il devrait JUSTE inclure le domaine. Exemple: invidious.ajay.app"
+ "message": "Ce domaine n'est pas valide. Vérifiez que vous avez UNIQUEMENT noté le nom de domaine. Par exemple : invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Réinitialiser la liste d'instances Invidious"
@@ -467,13 +467,13 @@
"message": "Vous êtes sur le point de réinitialiser la liste des instances Invidious"
},
"currentInstances": {
- "message": "Instances actuelles:"
+ "message": "Instances actuelles :"
},
"minDuration": {
- "message": "Durée minimale (en secondes):"
+ "message": "Durée minimale (en secondes) :"
},
"minDurationDescription": {
- "message": "Les segments plus courts que la valeur fixée ne seront pas sautés ou affichés dans le lecteur."
+ "message": "Les segments plus courts que la valeur fixée ne seront pas sautés ni affichés dans le lecteur."
},
"enableManualSkipOnFullVideo": {
"message": "Utiliser le saut manuel quand une étiquette vidéo complète existe"
@@ -482,10 +482,10 @@
"message": "Pour les personnes qui veulent regarder la vidéo sans interruptions si elle est complétement sponsorisée ou auto-promu."
},
"skipNoticeDuration": {
- "message": "Durée du saut de segment (secondes):"
+ "message": "Durée de l'affichage de la notification de saut de segment (en secondes) :"
},
"skipNoticeDurationDescription": {
- "message": "L'avis du saut restera à l'écran pendant au moins aussi longtemps. Pour passer manuellement, il peut être visible plus longtemps."
+ "message": "La notification du passage restera à l'écran pendant au moins le temps défini. Pour passer manuellement un segment, il est possible qu'il reste visible plus longtemps."
},
"shortCheck": {
"message": "Le segment suivant est plus court que votre option de durée minimale. Cela pourrait signifier qu'il a déjà été soumis et est simplement ignoré à cause de cette option. Êtes-vous sûr de vouloir soumettre ce segment ?"
@@ -494,13 +494,13 @@
"message": "La soumission de segments sur un direct en cours ou une première n'est pas autorisée. Veuillez attendre qu'il soit terminé puis actualisez la page et vérifiez que les segments sont toujours valides."
},
"showUploadButton": {
- "message": "Afficher le bouton de téléchargement"
+ "message": "Afficher le bouton de téléversement"
},
"customServerAddress": {
"message": "Adresse du serveur SponsorBlock"
},
"customServerAddressDescription": {
- "message": "L'adresse que SponsorBlock utilise pour faire des appels au serveur.\nSauf si vous avez votre propre instance de serveur, cela ne devrait pas être changé."
+ "message": "L'adresse que SponsorBlock utilise pour faire des appels au serveur.\nCe réglage ne doit pas être modifié à moins que vous hébergiez votre propre instance."
},
"save": {
"message": "Sauvegarder"
@@ -512,7 +512,7 @@
"message": "Le format de l'adresse est incorrect. Assurez-vous qu'elle commence bien par http:// ou https:// et ne termine pas par un slash."
},
"areYouSureReset": {
- "message": "Voulez-vous vraiment remettre à zéro ?"
+ "message": "Voulez-vous vraiment réinitialiser ?"
},
"mobileUpdateInfo": {
"message": "m.youtube.com est maintenant pris en charge"
@@ -539,7 +539,7 @@
"message": "Attention : La modification des options est définitive et peut rendre instable voire planter votre installation. Êtes-vous sûr de vouloir faire ça ? Faites une sauvegarde de votre ancienne configuration au cas où."
},
"incorrectlyFormattedOptions": {
- "message": "Ce JSON n'est pas formaté correctement. Vos options n'ont pas été modifiées."
+ "message": "Ce fichier JSON n'est pas formaté correctement. Vos options n'ont pas été modifiées."
},
"confirmNoticeTitle": {
"message": "Soumettre le segment"
@@ -598,7 +598,7 @@
"message": "Message sponsorisé"
},
"category_sponsor_description": {
- "message": "Promotion rémunérée, parrainage rémunéré et publicité directe. Pas pour l'autopromotion ou les présentations gratuites de causes, de créateurs, de sites web ou de produits qu'ils aiment."
+ "message": "Promotion rémunérée, parrainage rémunéré et publicité directe. Ne concerne pas l'autopromotion ou le partage gratuit de causes, créateurices, sites web ou produits appréciés."
},
"category_sponsor_guideline1": {
"message": "Promotions rémunérées"
@@ -653,7 +653,7 @@
"message": "Rappel d'interaction"
},
"category_intro": {
- "message": "Entracte/Animation d'intro"
+ "message": "Entracte/Animation d'introduction"
},
"category_intro_description": {
"message": "Un intervalle sans réel contenu, par exemple une pause, une image statique ou une animation répétitive. N'utilisez pas cette catégorie pour les transitions contenant de l'information."
@@ -668,10 +668,10 @@
"message": "Pas pour les transitions avec des informations"
},
"category_outro": {
- "message": "Générique de fin"
+ "message": "Écrans de fin/Crédits"
},
"category_outro_description": {
- "message": "Crédits ou écrans de fin YouTube. Pas pour les conclusions contenant des informations."
+ "message": "Crédits ou écran de fin YouTube. Pas pour les conclusions contenant des informations."
},
"category_outro_guideline1": {
"message": "Ne dois pas inclure de contenu, même si les écrans de fin sont apparus"
@@ -713,10 +713,10 @@
"message": "Musique : Segment non musical"
},
"category_music_offtopic_description": {
- "message": "A utiliser seulement pour les vidéos de musiques. Ceci ne devrait qu'être utilisé que pour des morceaux de vidéos de musiques qui ne sont pas couvert par d'autres catégories."
+ "message": "A utiliser seulement dans les vidéos de musique. Doit être uniquement utilisé pour les sections qui ne sont pas couverte par une autre catégorie plus spécifique."
},
"category_music_offtopic_short": {
- "message": "Hors musique"
+ "message": "Section non musicale"
},
"category_music_offtopic_guideline1": {
"message": "Sections qui ne sont pas dans la musique officielle"
@@ -728,7 +728,7 @@
"message": "Point essentiel"
},
"category_poi_highlight_description": {
- "message": "La partie de la vidéo que la plupart des gens veulent voir. Similaire à \"la vidéo commence à x mins\"."
+ "message": "La partie de la vidéo que la plupart des gens veut voir. Similaire aux commentaires de type « La vidéo commence à x minutes »."
},
"category_poi_highlight_guideline1": {
"message": "Section la plus regardée"
@@ -788,15 +788,19 @@
"message": "Montre les chapitres"
},
"autoSkipOnMusicVideos": {
- "message": "Ignorer automatiquement tous les segments lorsqu'il y a un segment non-musical"
+ "message": "Passer automatiquement tous les segments lorsqu'il y a un segment non musical"
},
"muteSegments": {
- "message": "Autoriser les segments qui bloquent l'audio au lieu de le passer"
+ "message": "Autoriser les segments qui mettent l'audio en sourdine plutôt que de les passer"
},
"fullVideoSegments": {
"message": "Afficher une icône lorsqu'une vidéo est entièrement promotionnelle",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Afficher également les étiquettes sur les vignettes de la vidéo",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Couleur non soumise",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -808,17 +812,17 @@
"message": "Catégorie"
},
"skipOption": {
- "message": "Option de saut",
+ "message": "Option de passage",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Activer le serveur de test bêta"
},
"whatEnableTestingServer": {
- "message": "Vos soumissions et votes NE COMPTERONT PAS sur le serveur principal. Utilisez ceci uniquement pour faire des tests."
+ "message": "Vos soumissions et votes NE SERONT PAS COMPTÉES par serveur principal. À n'utiliser que lors de vos tests."
},
"testingServerWarning": {
- "message": "AUCUNE SOUMISSION OU VOTE NE COMPTERA sur le serveur principal tant que vous serez connecté au serveur de test. Désactivez ceci quand vous voudrez réellement soumettre ou voter."
+ "message": "Aucune soumission ou vote NE SERA COMPTÉE par le serveur principal tant que vous serez connecté-e au serveur de test. À désactiver quand vous voudrez réellement soumettre des segments ou voter."
},
"bracketNow": {
"message": "(Maintenant)"
@@ -863,19 +867,19 @@
"message": "Le navigateur a refusé l'autorisation nécessaire pour pouvoir fonctionner sur Invidious et d'autres sites tiers. Veuillez cliquer sur le bouton ci-dessous pour réactiver cette autorisation."
},
"acceptPermission": {
- "message": "Accepter l'autorisation"
+ "message": "Donner la permission"
},
"permissionRequestSuccess": {
"message": "Demande de permission réussie !"
},
"permissionRequestFailed": {
- "message": "La demande d'autorisation a échoué, avez-vous cliqué sur refuser ?"
+ "message": "La demande de permission a échoué, avez-vous cliqué sur refuser ?"
},
"adblockerIssueWhitelist": {
- "message": "Si vous ne parvenez pas à résoudre ce problème, désactivez le paramètre 'Force Channel Check Before Skipping' car SponsorBlock est incapable de récupérer les informations de la chaine pour cette vidéo"
+ "message": "Si vous ne parvenez pas à résoudre ce problème, désactivez le paramètre \"Forcer la vérification de la chaîne avant de passer\" car SponsorBlock ne parvient pas à récupérer les informations de la chaine pour cette vidéo"
},
"forceChannelCheck": {
- "message": "Forcer la vérification du canal avant de passer"
+ "message": "Forcer la vérification de la chaîne avant de passer"
},
"whatForceChannelCheck": {
"message": "Par défaut, les segments sont passés avant même de savoir à quelle chaîne la vidéo appartient. Par défaut, certains segments en début de vidéo des chaînes sur liste blanche peuvent être involontairement passés. Activer cette option évitera ce problème mais le passage des segments aura un léger retard, du fait que l'obtention du ChannelID prend du temps. Ce retard devrait être imperceptible si vous avez un haut débit internet."
@@ -897,7 +901,7 @@
"message": "Changer de catégorie"
},
"nonMusicCategoryOnMusic": {
- "message": "Cette vidéo est catégorisée comme de la musique. Êtes-vous sûr qu'elle est sponsorisée? S'il s'agit en fait d'un \"Segment non musical\", allez dans les options de l'extension et activez cette catégorie. Ensuite, vous pourrez soumettre ce segment en tant que \"Segment non musical\" au lieu de sponsor. Lisez les instructions en cas de confusion."
+ "message": "Cette vidéo est catégorisée comme musicale. Êtes-vous sûr-e qu'elle est sponsorisée ? S'il s'agit d'un segment non musical, activez cette catégorie dans les options de SponsorBlock. Vous pourez ensuite soumettre ce segment en tant que \"segment non musical\" plutôt que \"message commercial\". Lisez les instructions pour plus de détails."
},
"multipleSegments": {
"message": "Plusieurs segments"
@@ -913,13 +917,13 @@
"message": "Les catégories sont là !"
},
"categoryUpdate2": {
- "message": "Ouvrir les options pour sauter les intros, outros, marchandises, etc."
+ "message": "Ouvrir les options pour sauter les introductions, postfaces, produits dérivés, etc."
},
"help": {
"message": "Aide"
},
"GotIt": {
- "message": "Compris",
+ "message": "C'est compris",
"description": "Used as the button to dismiss a tooltip"
},
"fullVideoTooltipWarning": {
@@ -972,22 +976,22 @@
"message": "Veuillez vérifier les options ci-dessous"
},
"helpPageFeatureDisclaimer": {
- "message": "De nombreuses fonctionnalités sont désactivées par défaut. Si vous voulez ignorer les intros, outros, utiliser Invidious, etc., activez-les ci-dessous. Vous pouvez également masquer/afficher les éléments de l'interface."
+ "message": "De nombreuses fonctionnalités sont désactivées par défaut. Si vous voulez ignorer les introductions, postfaces, utiliser Invidious, etc., définissez-le ci-dessous. Vous pouvez également masquer ou afficher les éléments de l'interface."
},
"helpPageHowSkippingWorks": {
- "message": "Comment fonctionne le saut d'un segment"
+ "message": "Comment fonctionne le passage d'un segment"
},
"helpPageHowSkippingWorks1": {
- "message": "Les segments vidéo seront automatiquement ignorés s'ils sont trouvés dans la base de données. Vous pouvez ouvrir le popup en cliquant sur l'icône de l'extension pour obtenir un aperçu de ces segments."
+ "message": "Les segments vidéo seront automatiquement ignorés s'ils sont trouvés dans la base de données. Vous pouvez ouvrir un encart en cliquant sur l'icône de l'extension pour en avoir un aperçu."
},
"helpPageHowSkippingWorks2": {
- "message": "À chaque fois que vous sautez un segment, vous en serez averti. Si le timing semble incorrect, vous pouvez disliker le segment, vous pouvez également voter dans le popup."
+ "message": "À chaque fois que vous passez un segment, vous en êtes averti-e. Si le timing semble incorrect, vous pouvez voter contre le segment ! Vous pouvez également voter dans l'encart d'aperçu."
},
"Submitting": {
"message": "Soumission en cours"
},
"helpPageSubmitting1": {
- "message": "La soumission peut être effectuée dans le popup en appuyant sur le bouton \"le segment commence maintenant\" ou dans le lecteur vidéo avec les boutons du lecteur."
+ "message": "La soumission peut être effectuée dans l'encart d'aperçu en appuyant sur le bouton \"Début du segment\" ou dans le lecteur vidéo avec les boutons."
},
"helpPageSubmitting2": {
"message": "Cliquer sur le bouton de lecture indique le début d'un segment et cliquer sur l'icône d'arrêt indique sa fin. Vous pouvez préparer plusieurs messages commerciaux avant d'appuyer sur Soumettre. Cliquer sur le bouton Téléverser soumettra vos segments. Cliquer sur la poubelle supprimera vos segments."
@@ -996,13 +1000,13 @@
"message": "Édition en cours"
},
"helpPageEditing1": {
- "message": "Si vous avez fait une erreur, vous pouvez modifier ou supprimer vos segments après avoir cliqué sur le bouton avec la flèche vers le haut."
+ "message": "Si vous avez fait une erreur, vous pouvez modifier ou supprimer vos segments en cliquant sur le bouton avec la flèche vers le haut."
},
"helpPageTooSlow": {
"message": "Ceci est trop lent"
},
"helpPageTooSlow1": {
- "message": "Il y a des raccourcis clavier si vous voulez les utiliser. Appuyez sur la touche point-virgule pour indiquer le début / la fin d'un segment sponsorisé et cliquez sur l'apostrophe pour soumettre. Cela peut être modifié dans les options. Si vous n'utilisez pas un clavier QWERTY, vous devriez probablement changer la touche assignée de base."
+ "message": "Il y a des raccourcis clavier si vous voulez les utiliser. Appuyez sur la touche point-virgule pour indiquer le début et la fin d'un segment sponsorisé, et cliquez sur l'apostrophe pour soumettre. Vous pouvez les modifier dans les options. Si vous n'utilisez pas un clavier QWERTY, vous devriez probablement changer les racourcis par défaut."
},
"helpPageCopyOfDatabase": {
"message": "Puis-je obtenir une copie de la base de données ? Que se passe-t-il si vous disparaissez ?"
@@ -1011,10 +1015,10 @@
"message": "La base de données est publique et disponible à"
},
"helpPageCopyOfDatabase2": {
- "message": "Le code source est librement disponible. Donc, même si il m'arrive quelque chose, vos soumissions ne seront pas perdues."
+ "message": "Le code source est en accès libre. Donc, même si il m'arrive quelque chose, vos soumissions ne seront pas perdues."
},
"helpPageNews": {
- "message": "Nouvelles et comment elles sont faites"
+ "message": "Nouveautés et comment l'extension est fabriquée"
},
"helpPageSourceCode": {
"message": "Où puis-je obtenir le code source ?"
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Sélectionne ton pays"
},
- "alreadyDonated": {
- "message": "Si tu as fait un don de n'importe quel montant avant, tu peux avoir un accès gratuit en envoyant un e-mail :",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Si vous ne pouvez pas vous permettre d'acheter une licence, cliquez sur {here} pour voir si vous êtes admissible à une réduction",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Entrer la clé de licence"
},
- "chaptersPage1": {
- "message": "La fonctionnalité participative des chapitres de SponsorBlock n'est disponible que pour les personnes qui achètent une licence, ou pour les personnes qui en ont l'accès gratuitement grâce à leurs contributions passées"
- },
- "chaptersPage2": {
- "message": "Remarque : l'autorisation d'envoyer des chapitres est toujours basée sur la réputation calculée. L'achat d'une licence vous permet uniquement de voir les chapitres envoyés par d'autres",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Nouvelle fonctionnalité : Chapitres personnalisés crowd-sourcés. Ce sont des sections dans les vidéos avec un nom personnalisé qui s'améliore au fur et à mesure. Achetez une licence pour voir les chapitres soumis sur cette vidéo tels que: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Nouvelle fonctionnalité : Chapitres personnalisés crowd-sourcés. Ce sont des sections dans les vidéos avec un nom personnalisé qui peuvent s'additionner pour être de plus en plus précis. Vous y avez accès gratuitement, activez la dans les options."
- },
"unsubmittedSegmentCounts": {
"message": "Vous avez actuellement {0} sur {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1244,9 +1230,6 @@
"exportSegmentsAsURL": {
"message": "Partager un URL"
},
- "segmentFetchFailureWarning": {
- "message": "Attention : Le serveur n'a pas encore répondu avec les segments. Il se peut qu'il y ait des segments sur cette vidéo déjà soumise, mais vous ne les avez tout simplement pas reçus en raison de problèmes avec le serveur."
- },
"allowScrollingToEdit": {
"message": "Autoriser l'utilisation de la molette pour modifier les temps"
}
diff --git a/public/_locales/he/messages.json b/public/_locales/he/messages.json
index 48b43332..8f164703 100644
--- a/public/_locales/he/messages.json
+++ b/public/_locales/he/messages.json
@@ -700,10 +700,6 @@
"selectYourCountry": {
"message": "בחירת מדינתך"
},
- "alreadyDonated": {
- "message": "אם תרמת סכום כלשהו בעבר, ניתן לממש גישה בחינם באמצעות דואר אלקטרוני:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "אם אינך יכול להרשות לעצמך לרכוש רישיון, יש ללחוץ {here} כדי לראות אם קיימת זכאות להנחה",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -723,20 +719,6 @@
"enterLicenseKey": {
"message": "הזנת מפתח רישיון"
},
- "chaptersPage1": {
- "message": "התכונה חסימת פרקים במקור המונים זמינה רק לאנשים שרוכשים רישיון, או לאנשים שקיבלו גישה בחינם עקב תרומותיהם בעבר"
- },
- "chaptersPage2": {
- "message": "הערה: ההרשאה להגשת פרקים עדיין מבוססת על מוניטין מחושב. רכישת רישיון מאפשרת לך לראות רק פרקים שהוגשו על ידי אחרים",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "תכונה חדשה: פרקים מותאמים אישית ממקור המונים. אלו הם מקטעים בעלי שמות מותאמים אישית בסרטונים שניתן לערום כדי לקבל יותר ויותר דיוק. רכישת רישיון לצפייה בפרקים שנשלחו בסרטון זה כגון: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "תכונה חדשה: פרקים מותאמים אישית ממקור המונים. אלו הם קטעים בעלי שמות מותאמים אישית בסרטונים שניתן לערום כדי לקבל יותר ויותר דיוק. יש לך גישה בחינם, יש להפעיל באפשרויות."
- },
"unsubmittedSegmentCounts": {
"message": "כרגע יש לך {0} ב-{1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -791,8 +773,5 @@
},
"exportSegmentsAsURL": {
"message": "שיתוף כקישור"
- },
- "segmentFetchFailureWarning": {
- "message": "אזהרה: השרת עדיין לא הגיב עם מקטעים. ייתכן שלמעשה יש מקטעים בסרטון הזה שכבר נשלחו אבל פשוט לא קיבלת אותם בגלל בעיות בשרת."
}
}
diff --git a/public/_locales/hr/messages.json b/public/_locales/hr/messages.json
index 7e7294a8..94f5a630 100644
--- a/public/_locales/hr/messages.json
+++ b/public/_locales/hr/messages.json
@@ -128,6 +128,9 @@
"closeIcon": {
"message": "Ikona za zatvaranje"
},
+ "OpenSubmissionMenu": {
+ "message": "Otvori preglednik prijava"
+ },
"sortSegments": {
"message": "Razvrstaj isječke"
},
@@ -881,10 +884,6 @@
"selectYourCountry": {
"message": "Odaberi svoju zemlju"
},
- "alreadyDonated": {
- "message": "Ako si već donirao/la, možeš iskoristiti kupon za besplatan pristup putem e-pošte:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Ako si ne možeš priuštiti kupnju licence, pritisni {here} da vidiš imaš li pravo na popust",
"description": "Keep the curly braces. The word 'here' should be translated as well."
diff --git a/public/_locales/hu/messages.json b/public/_locales/hu/messages.json
index 819d10f4..3a54f70f 100644
--- a/public/_locales/hu/messages.json
+++ b/public/_locales/hu/messages.json
@@ -797,6 +797,10 @@
"message": "Mutasson egy ikont, amikor egy videó egésze reklám",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Címkék megjelenítése a videók indexképein is",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Beküldetlen színe",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Válaszd ki az országodat"
},
- "alreadyDonated": {
- "message": "Ha korábban már támogattad a bővítményt, kérhetsz ingyenes hozzáférést emailben:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Ha nem engedheted meg magadnak a licenc megvásárlását, kattints {ide}, hogy megtudd, jogosult vagy-e kedvezményre",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Add meg a licenc kulcsot"
},
- "chaptersPage1": {
- "message": "A SponsorBlock közösség által karbantartott fejezetek funkció csak azok számára érhető el, akik licencet vásárolnak, vagy ingyenes hozzáférést kaptak múltbeli hozzájárulásaikért"
- },
- "chaptersPage2": {
- "message": "Fontos: A fejezetek beküldésére való engedély még mindig a számolt hírnévtől függ. A megvásárolt licenc csak a mások által beküldött fejezetek megtekintésére vonatkozik.",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Új funkció: Közösség által karbantartott fejezetek. Ezek egyedileg elnevezett részei a videóknak, amiket egymásba is lehet ágyazni, hogy egyre pontosabbak lehessenek. Vásárolj licencet, hogy láthasd az ezen a videón beküldött fejezeteket, mint: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Új funkció: Közösség által karbantartott fejezetek. Ezek egyedileg elnevezett részei a videóknak, amiket egymásba is lehet ágyazni, hogy egyre pontosabbak lehessenek. Neked van igyenes hozzáférésed, engedélyezd a beállításokban."
- },
"unsubmittedSegmentCounts": {
"message": "Jelenleg {0} van {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
diff --git a/public/_locales/id/messages.json b/public/_locales/id/messages.json
index ca988d42..9050e018 100644
--- a/public/_locales/id/messages.json
+++ b/public/_locales/id/messages.json
@@ -1145,10 +1145,6 @@
"selectYourCountry": {
"message": "Pilih negaramu"
},
- "alreadyDonated": {
- "message": "Jika Anda pernah meyumbangkan jumlah berapapun, Anda dapat menebus akses gratis dengan menyurel:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Jika Anda tidak mampu membeli lisensi, klik {here} untuk melihat jika Anda memenuhi syarat untuk mendapatkan diskon",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1168,20 +1164,6 @@
"enterLicenseKey": {
"message": "Masukkan Kode Lisensi"
},
- "chaptersPage1": {
- "message": "Fitur bab yang diurun-dayakan SponsorBlock hanya tersedia bagi pembeli lisensi, atau penerima akses gratis berkat kontribusinya di masa lalu"
- },
- "chaptersPage2": {
- "message": "Catatan: Izin untuk mengirim bab tetap bedasarkan reputasi yang diperhitungkan. Membeli lisensi hanya memperbolehkan Anda untuk melihat bab yang dikirim oleh orang lain",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Fitur Baru: Bab ubah suai yang diurun daya. Ini adalah beberapa bagian video yang secara khusus diberi nama dan dapat ditumpuk untuk mendapat ketepatan yang lebih. Beli lisensi untuk menampilkan bab yang dikirimkan untuk video ini seperti: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Fitur Baru: Bab ubah suai yang diurun daya. Ini adalah beberapa bagian video yang secara khusus diberi nama dan dapat ditumpuk untuk mendapat ketepatan yang lebih. Anda memiliki akses gratis yang aktif di opsi."
- },
"unsubmittedSegmentCounts": {
"message": "Kamu mempunyai {0} dalam {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1237,9 +1219,6 @@
"exportSegmentsAsURL": {
"message": "Bagikan sebagai Tautan"
},
- "segmentFetchFailureWarning": {
- "message": "Peringatan: Server belum merespon dengan segmen. Mungkin sebenarnya sudah ada segmen di video ini namun Anda belum menerimanya karena ada masalah dengan server."
- },
"allowScrollingToEdit": {
"message": "Izinkan Menggulir Untuk Menyunting Waktu"
}
diff --git a/public/_locales/it/messages.json b/public/_locales/it/messages.json
index 70e61f34..fe008638 100644
--- a/public/_locales/it/messages.json
+++ b/public/_locales/it/messages.json
@@ -131,6 +131,9 @@
"closeIcon": {
"message": "Icona Chiudi"
},
+ "OpenSubmissionMenu": {
+ "message": "Apri Menu Invio"
+ },
"sortSegments": {
"message": "Ordina Segmenti"
},
@@ -794,6 +797,10 @@
"message": "Mostra un'icona quando un video è interamente promozionale",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Mostra le etichette anche sulle copertine dei video",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Segmento non inviato",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1149,10 +1156,6 @@
"selectYourCountry": {
"message": "Seleziona il tuo paese"
},
- "alreadyDonated": {
- "message": "Se hai donato qualsiasi importo in passato, puoi riscattare l'accesso gratuito mandando una mail a:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Se non puoi permetterti di acquistare una licenza, premi {here} per verificare se hai diritto a uno sconto",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1172,20 +1175,6 @@
"enterLicenseKey": {
"message": "Inserisci chiave di licenza"
},
- "chaptersPage1": {
- "message": "La funzionalità dei capitoli in crowd-sourcing di SponsorBlock è disponibile soltanto a chi acquista una licenza o a chi viene premiato con l'accesso gratuito grazie ai contributi passati"
- },
- "chaptersPage2": {
- "message": "Nota: L'autorizzazione a inviare i capitoli si basa ancora sulla reputazione calcolata. Acquistare una licenza ti consente di visualizzare soltanto i capitoli inviati dagli altri",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Nuova Funzionalità: Capitoli personalizzati in crowdsourcing. Sono sezioni dal nome personalizzato che possono esser sovrapposte per essere sempre più precise. Acquista una licenza per visualizzare i capitoli inviati in questo video come ad esempio: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Nuova Funzionalità: Capitoli personalizzati in crowdsourcing. Sono sezioni dal nome personalizzato, che possono esser sovrapposte per essere sempre più precise. Hai accesso gratuitamente, abilitalo nelle opzioni."
- },
"unsubmittedSegmentCounts": {
"message": "Al momento hai {0} su {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1241,9 +1230,6 @@
"exportSegmentsAsURL": {
"message": "Condividi URL"
},
- "segmentFetchFailureWarning": {
- "message": "Attenzione: il server non ha ancora fornito i segmenti. Questo video potrebbe avere dei segmenti inviati, ma forse non sono stati ricevuti a causa di problemi del server."
- },
"allowScrollingToEdit": {
"message": "Usa la Rotella per Modificare i Tempi"
}
diff --git a/public/_locales/ja/messages.json b/public/_locales/ja/messages.json
index fccfef81..4d4153fe 100644
--- a/public/_locales/ja/messages.json
+++ b/public/_locales/ja/messages.json
@@ -1,10 +1,10 @@
{
"fullName": {
- "message": "SponserBlock for YouTube - 動画のスポンサーセクションを自動でスキップする",
+ "message": "SponserBlock for YouTube - 動画の広告セクションを自動でスキップする",
"description": "Name of the extension."
},
"Description": {
- "message": "YouTube動画の提供表示や登録要求をスキップします。視聴している動画の当該部分を報告して,みんなが時間を節約できるようにしましょう。",
+ "message": "YouTube動画の提供表示や登録のお願いをスキップします。動画の広告部分を報告して、みんなが時間を節約できるようにしましょう。",
"description": "Description of the extension."
},
"400": {
@@ -17,7 +17,7 @@
"message": "これは既に提出されています。"
},
"channelWhitelisted": {
- "message": "チャンネルをホワイトリストに登録しました!"
+ "message": "チャンネルをホワイトリストに登録しました!"
},
"Segment": {
"message": "セグメント"
@@ -32,20 +32,20 @@
"message": "チャプター"
},
"renderAsChapters": {
- "message": "セグメントをチャプターとしてレンダリングする",
+ "message": "セグメントをチャプターとして描画する",
"description": "Refers to drawing segments on the YouTube seek bar as split up chapters, similar to the existing chapter system"
},
"showSegmentNameInChapterBar": {
"message": "動画時間の横に現在のセグメントを表示"
},
"upvoteButtonInfo": {
- "message": "この提案を支持"
+ "message": "この提出を高評価"
},
"reportButtonTitle": {
"message": "報告"
},
"reportButtonInfo": {
- "message": "この提案が正しくないと報告"
+ "message": "不正確な提出として報告"
},
"Dismiss": {
"message": "無視"
@@ -60,7 +60,7 @@
"message": "スキップ解除を押すと元の場所へ戻ります"
},
"unskip": {
- "message": "スキップ解除"
+ "message": "スキップしない"
},
"reskip": {
"message": "再スキップ"
@@ -105,10 +105,10 @@
"message": "セグメントを更新"
},
"success": {
- "message": "成功しました!"
+ "message": "成功しました!"
},
"voted": {
- "message": "投票しました!"
+ "message": "投票しました!\n"
},
"serverDown": {
"message": "サーバーがダウンしているようです。今すぐ開発者にお知らせください。"
@@ -131,11 +131,14 @@
"closeIcon": {
"message": "閉じるアイコン"
},
+ "OpenSubmissionMenu": {
+ "message": "提出メニューを開く"
+ },
"sortSegments": {
"message": "セグメントを並び替え"
},
"submitCheck": {
- "message": "本当に提出してよろしいですか?"
+ "message": "提出しますか?"
},
"whitelistChannel": {
"message": "チャンネルをホワイトリストに追加"
@@ -147,7 +150,7 @@
"message": "セグメントに投票"
},
"Submissions": {
- "message": "提案数"
+ "message": "合計提出数"
},
"savedPeopleFrom": {
"message": "あなたが節約したみんなの時間: "
@@ -163,7 +166,7 @@
"description": "Appears in the popup to inform them that editing has been moved to the video player."
},
"popupHint": {
- "message": "心得: 利用者設定で提出時のキーバインドを設定できます"
+ "message": "ヒント: オプションから提出時のキー割り当てを設定できます"
},
"clearTimesButton": {
"message": "時間を消去"
@@ -193,13 +196,13 @@
"message": "オプション"
},
"showButtons": {
- "message": "YouTube プレイヤーにボタンを表示"
+ "message": "YouTubeプレイヤーにボタンを表示"
},
"hideButtons": {
- "message": "YouTube プレイヤーにボタンを表示しない"
+ "message": "YouTubeプレイヤーにボタンを表示しない"
},
"hideButtonsDescription": {
- "message": "YouTube再生画面のセグメント提出ボタンを非表示にします。"
+ "message": "YouTubeプレイヤーのセグメント提出ボタンを非表示にします。"
},
"showSkipButton": {
"message": "「ハイライトまでスキップ」ボタンをプレイヤーに常に表示する"
@@ -214,10 +217,10 @@
"message": "情報ボタンを自動的に隠す"
},
"hideDeleteButton": {
- "message": "YouTube プレイヤーから削除ボタンを隠す"
+ "message": "YouTubeプレイヤーに削除ボタンを表示しない"
},
"showDeleteButton": {
- "message": "YouTubeプレーヤーに削除ボタンを表示"
+ "message": "YouTubeプレイヤーに削除ボタンを表示"
},
"enableViewTracking": {
"message": "スキップの集計を有効にする"
@@ -241,7 +244,7 @@
"message": "ハッシュプレフィックスを使って要求"
},
"whatQueryByHashPrefix": {
- "message": "サーバーに区域を要求する際に,動画IDの代わりに動画IDのハッシュから最初の4文字を送信します。それに対して,サーバーは類似したハッシュを持つすべての動画の情報を応答します。"
+ "message": "動画IDを使用してサーバーからセグメントを要求する代わりに、動画IDのハッシュから最初の4文字が送信されます。それに対して、サーバーは類似したハッシュを持つすべての動画のデータを返却します。"
},
"enableRefetchWhenNotFound": {
"message": "新しい動画ではセグメントを再取得する"
@@ -296,7 +299,7 @@
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
- "message": "もしそれでも気に入らない場合は、再度表示しないボタンをクリックしてください。",
+ "message": "それでも気に入らない場合、「再び表示しない」ボタンを押してください。",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setSkipShortcut": {
@@ -326,17 +329,17 @@
"message": "接続がタイムアウトになりました。インターネット接続をご確認ください。接続に問題がない場合、サーバーが混雑またはダウンしている可能性があります。"
},
"disableSkipping": {
- "message": "スキップ有効"
+ "message": "スキップは有効です"
},
"enableSkipping": {
- "message": "スキップ無効"
+ "message": "スキップは無効です"
},
"yourWork": {
"message": "あなたの貢献",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
- "message": "サーバー側で問題が起きているようです。時間をおいて再び試してください。"
+ "message": "サーバーが混雑中です。数秒後にもう一度お試しください。"
},
"errorCode": {
"message": "エラーコード: "
@@ -352,7 +355,7 @@
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
},
"skip_category": {
- "message": "{0} をスキップしますか?"
+ "message": "{0} をスキップしますか?"
},
"mute_category": {
"message": "{0} をミュートしますか?"
@@ -374,10 +377,10 @@
"description": "Used for skipping to things (Skipped to Highlight)"
},
"disableAutoSkip": {
- "message": "自動スキップを無効にする"
+ "message": "自動スキップを無効化"
},
"enableAutoSkip": {
- "message": "自動スキップを有効にする"
+ "message": "自動スキップを有効化"
},
"audioNotification": {
"message": "スキップ時に通知音を鳴らす"
@@ -411,7 +414,7 @@
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
},
"youHaveSavedTimeEnd": {
- "message": "(彼らの人生のうち)",
+ "message": "(皆の人生のうち)",
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
},
"statusReminder": {
@@ -433,7 +436,11 @@
"message": "作成者:"
},
"supportOtherSites": {
- "message": "第三者製のYouTube関連サイトに対応"
+ "message": "サードパーティー製のYouTubeサイトに対応"
+ },
+ "supportOtherSitesDescription": {
+ "message": "第三者が作成した YouTube クライアントに対応します。対応を有効化するには、追加の権限に承諾する必要があります。",
+ "description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
},
"supportedSites": {
"message": "対応サイト: "
@@ -466,22 +473,22 @@
"message": "最小持続時間(秒):"
},
"minDurationDescription": {
- "message": "設定値より短いセグメントはスキップされず、プレーヤーにも表示されません。"
+ "message": "設定値より短いセグメントはスキップされず、プレイヤーにも表示されません。"
},
"enableManualSkipOnFullVideo": {
"message": "動画全体のラベルが存在する場合は手動スキップを使用する"
},
"whatManualSkipOnFullVideo": {
- "message": "動画全体がスポンサー付きまたはセルフプロモーションである場合に、動画を邪魔されずに観たい方向け。"
+ "message": "動画全体が広告または自己宣伝の時に、動画を途切れなく観たい方向け。"
},
"skipNoticeDuration": {
"message": "スキップ通知の表示時間(秒):"
},
"skipNoticeDurationDescription": {
- "message": "飛び越し通知が画面上に表示され続ける時間です。手動で飛び越した場合は,より長く表示される可能性があります。"
+ "message": "スキップ通知が画面上に表示される時間です。手動でスキップした場合は、より長く表示される可能性があります。"
},
"shortCheck": {
- "message": "提出しようとしている区間の長さが個人設定における最短時間よりも短かいです。これは,既に当区間は提出されており,個人設定によって無視されていることを意味します。本当に提出しますか?"
+ "message": "提出しようとしている区間が個人設定における最短時間よりも短くなっています。これは既に当該区間が提出されていながらも、単に個人設定によって無効化されているだけという可能性があります。本当に提出しますか?"
},
"liveOrPremiere": {
"message": "ライブ配信中の動画やプレミア公開中の動画ではセグメントの提出はできません。配信が終了するまで待つか、ページを再読み込みしてセグメントがまだ有効かご確認ください。"
@@ -493,7 +500,7 @@
"message": "SponsorBlock サーバーアドレス"
},
"customServerAddressDescription": {
- "message": "SponsorBlockがサーバーへの呼び出しに用いるアドレスです。\n自分のサーバー実体を持っていない限り,この設定を変更してはいけません。"
+ "message": "SponsorBlockがサーバーへの呼び出しに用いるアドレスです。\n自分のサーバーインスタンスを持っていない限り、この設定を変更すべきではありません。"
},
"save": {
"message": "保存"
@@ -502,13 +509,13 @@
"message": "リセット"
},
"customAddressError": {
- "message": "このアドレスの形式は正しくありません。最初にhttp://あるいはhttps://があり,最後が斜線で終わっていないことを確かめてください。"
+ "message": "このアドレスの形式は正しくありません。最初にhttp://あるいはhttps://があり、最後が斜線で終わっていないことを確かめてください。"
},
"areYouSureReset": {
"message": "初期設定に戻します。よろしいですか?"
},
"mobileUpdateInfo": {
- "message": "m.youtube.com は現在サポートされています"
+ "message": "m.youtube.com に対応しています"
},
"exportOptions": {
"message": "全ての設定をインポート/エクスポート"
@@ -526,10 +533,10 @@
"message": "これがJSON形式の設定項目全体になります。これにはあなたのプライベートユーザーIDが含まれているので、共有するときは注意してください。"
},
"setOptions": {
- "message": "オプション設定"
+ "message": "オプションを設定"
},
"exportOptionsWarning": {
- "message": "警告: 設定の変更は恒久的で,本拡張機能を破壊する可能性があります。本当に実行しますか? 念のため,旧設定を控えておいてください。"
+ "message": "警告: 設定の変更は恒久的で、本拡張機能を破壊する可能性があります。本当に実行しますか? 念のため、これまでの設定を控えておいてください。"
},
"incorrectlyFormattedOptions": {
"message": "JSONの書式が正しくありません。設定は変更されませんでした。"
@@ -565,10 +572,10 @@
"message": "クリップボードに書き込めませんでした"
},
"copyDebugInformationOptions": {
- "message": "不具合があった,あるいは開発者から要求があった際に提供する為の情報をクリップボードに写します。利用者ID,許可表にある番組,および個人サーバーのアドレスなどの機密情報は含まれていません。ただし,利用者エージェント,Web閲覧機,OS,および拡張機能の版番などの情報は含まれています。"
+ "message": "不具合があった、あるいは開発者から要求があった際に提供する為の情報をクリップボードにコピーします。ユーザーID、ホワイトリストにあるチャンネル、およびカスタムサーバーのアドレスなどの機密情報は含まれていません。ただし、ユーザーエージェント、ブラウザ、OS、および拡張機能のバージョンなどの情報は含まれています。 "
},
"copyDebugInformationComplete": {
- "message": "診断用情報がクリップボードに複製されました。共有したくない情報があればそこから削除できます。これをファイルに保存したり,不具合報告に貼り付けてください。"
+ "message": "診断用情報がクリップボードにコピーされました。共有したくない情報があればそこから削除できます。これをファイルに保存したり、不具合報告に貼り付けてください。"
},
"keyAlreadyUsed": {
"message": "このショートカットは他のアクションに割り当てられています。別のショートカットを選択してください。"
@@ -591,7 +598,7 @@
"message": "スポンサー"
},
"category_sponsor_description": {
- "message": "報酬のある販売促進・製品紹介,および直接広告です。自己販促や好きな運動・製作者・Webサイト・製品に対する無報酬での宣伝とは違います。"
+ "message": "報酬のある販売促進、製品紹介、および直接広告です。自己販促や好きな運動・製作者・Webサイト・製品に対する無報酬での宣伝とは異なります。"
},
"category_sponsor_guideline1": {
"message": "有料のプロモーション"
@@ -600,10 +607,10 @@
"message": "寄付やオリジナルグッズには使わない"
},
"category_selfpromo": {
- "message": "無報酬 / セルフプロモーション"
+ "message": "無報酬 / 自己の宣伝"
},
"category_selfpromo_description": {
- "message": "無報酬での宣伝あるいは自己販促であるという点を除いては「スポンサー」と同様です。商品、寄付、コラボ情報に関する内容を含みます。"
+ "message": "無報酬での宣伝あるいは自己販促であるという点を除いては「広告」と同様です。商品、寄付、コラボ情報に関する内容を含みます。"
},
"category_selfpromo_guideline1": {
"message": "寄付、メンバーシップ、オリジナルグッズ"
@@ -625,13 +632,13 @@
"description": "Short description for this category"
},
"category_exclusive_access_guideline1": {
- "message": "動画全体が無料または補助金を受けてアクセスしたものを紹介するものである"
+ "message": "動画全体が無料または補助金を受けてアクセスしたものを紹介している"
},
"category_interaction": {
- "message": "行動を促すメッセージ(チャンネル登録)"
+ "message": "行動を促すメッセージ(チャンネル登録等)"
},
"category_interaction_description": {
- "message": "動画の途中に挟まれる,高評価,チャンネル登録・通知の有効化を促す短かい場面。長かったり具体的な商品についての場面は,中断ではなく自己販売促進に分類するべきです。"
+ "message": "動画の途中に挿入される、高評価・チャンネル登録・通知オンなどを促す短いシーン。長かったり、具体的な商品についてのシーンは、セルフプロモーションに分類すべきです。"
},
"category_interaction_guideline1": {
"message": "高評価、登録、フォローの短いお願い"
@@ -643,25 +650,25 @@
"message": "一般的なプロモーションではなく、直接的な呼びかけのみに使用すること"
},
"category_interaction_short": {
- "message": "動画の間に挟まる告知"
+ "message": "動画の間に挿入される告知"
},
"category_intro": {
- "message": "インターミッション / イントロアニメーション"
+ "message": "合間 / 導入アニメーション"
},
"category_intro_description": {
- "message": "意味のある内容を含まない場面です。一時停止,静止画面,繰り返される動作などが相等します。意味のある情報を含む転換場面に対しては使わないでください。"
+ "message": "本編ではない動画の合間部分。一時停止、静止画面、繰り返しのアニメーションなどが相当します。本編の情報を含んだ場面転換に対しては使用しないでください。"
},
"category_intro_short": {
- "message": "インターミッション"
+ "message": "合間"
},
"category_intro_guideline1": {
- "message": "実際のコンテンツを含まないインターバル"
+ "message": "実際のコンテンツではない間の部分"
},
"category_intro_guideline2": {
- "message": "情報を含むトランジションには使用しない"
+ "message": "情報を含む場面転換には使用しない"
},
"category_outro": {
- "message": "エンドカード/クレジット"
+ "message": "エンドカード / クレジット"
},
"category_outro_description": {
"message": "提供表示やYouTubeの終了画面が表示されている場面。動画の内容を結論している場面には使用しないで下さい。"
@@ -700,7 +707,7 @@
"message": "逸脱シーン、NGシーン、リプレイ"
},
"category_filler_guideline3": {
- "message": "トピックの理解に必要な場面には使用しない"
+ "message": "主題の理解に必要な場面には使用しない"
},
"category_music_offtopic": {
"message": "音楽: 音楽以外のセクション"
@@ -739,7 +746,7 @@
"message": "動画の主要なセクションを説明するカスタムのチャプター名"
},
"category_chapter_guideline1": {
- "message": "スポンサーのブランド名には言及しない"
+ "message": "広告主のブランド名には言及しない"
},
"category_chapter_guideline2": {
"message": "全般的なセクションには大きなチャプターを使用する"
@@ -751,7 +758,7 @@
"message": "ライブ配信: 寄付/メッセージの読み上げ"
},
"category_livestream_messages_short": {
- "message": "寄付などの読み上げ"
+ "message": "メッセージの読み上げ"
},
"autoSkip": {
"message": "自動スキップ"
@@ -781,7 +788,7 @@
"message": "チャプターを表示"
},
"autoSkipOnMusicVideos": {
- "message": "非音楽区域がある場合,全区域を自動的に飛び越す"
+ "message": "音楽以外のセグメントがある場合に全セグメントを自動的にスキップする"
},
"muteSegments": {
"message": "スキップする代わりに音声をミュートしてセグメントを許可"
@@ -790,12 +797,16 @@
"message": "動画全体が広告の場合にアイコンを表示",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "動画のサムネイル上にもラベルを表示",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "未確定の色",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
- "message": "シークバーのカラー"
+ "message": "シークバーの色"
},
"category": {
"message": "カテゴリ"
@@ -827,7 +838,7 @@
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
},
"poiOnlyOneSegment": {
- "message": "警告: このタイプのセグメントは一度に最大一つだけ有効にすることができます。複数送信するとランダムなものが表示されます。"
+ "message": "警告: この種類のセグメントは一度に最大一つだけ有効にすることができます。複数送信するとランダムなものが表示されます。"
},
"youMustSelectACategory": {
"message": "送信するすべてのセグメントにカテゴリを選択する必要があります!"
@@ -840,7 +851,7 @@
"description": "Button that skips to the end of a segment"
},
"hiddenDueToDownvote": {
- "message": "低い評価の区間を無視する"
+ "message": "低評価のセグメントを無視する"
},
"hiddenDueToDuration": {
"message": "あまりに短かい区間を無視する"
@@ -850,19 +861,19 @@
},
"channelDataNotFound": {
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
- "message": "番組IDがまだ読み込まれていません。埋め込み動画でご覧になっている場合は,代わりにYouTubeの公式サイトで再生してみてください。この問題はYouTubeの画面構成を変えた際にも発生する可能性があります。その場合は,こちらに意見をお書きください:"
+ "message": "チャンネルIDがまだ読み込まれていません。埋め込み動画でご覧になっている場合は、代わりにYouTubeの公式サイトで再生してみてください。この問題はYouTubeがレイアウトを変更した際にも発生する可能性があります。その場合は、こちらからお知らせください:"
},
"invidiousPermissionRefresh": {
"message": "Invidiousなどのサードパーティーサイトで機能するために必要な権限をブラウザーが拒否しています。この権限を許可するには下のボタンをクリックしてください。"
},
"acceptPermission": {
- "message": "許可を承認する"
+ "message": "権限を承認する"
},
"permissionRequestSuccess": {
- "message": "許可リクエストが成功しました!"
+ "message": "権限リクエストが成功しました!"
},
"permissionRequestFailed": {
- "message": "権限要求に失敗しました。拒否をクリックしましたか?"
+ "message": "権限要求に失敗しました。承認を拒否しましたか?"
},
"adblockerIssueWhitelist": {
"message": "これを解決できない場合は、設定「スキップする前にチャンネルチェックを強制」を無効にしてください。 SponsorBlockはこのビデオのチャンネル情報を取得できません。"
@@ -871,13 +882,13 @@
"message": "スキップする前にチャンネルチェックを強制する"
},
"whatForceChannelCheck": {
- "message": "デフォルト設定では、チャンネル情報を取得する前にセグメントをスキップします。デフォルト設定では、ホワイトリストに追加されているチャンネルでも動画の先頭部分にあるセグメントがスキップされる場合があります。この設定を有効にするとこの挙動が回避されますが、channelIDの取得に時間がかかるため、すべてのスキップに遅延が発生します。高速なインターネット回線を使用している場合は気にならないかもしれません。"
+ "message": "デフォルト設定では、チャンネル情報を取得する前にセグメントをスキップします。デフォルト設定では、ホワイトリストに追加されているチャンネルでも動画の先頭部分にあるセグメントがスキップされる場合があります。この設定を有効にするとこの挙動が回避されますが、チャンネルIDの取得に時間がかかるため、すべてのスキップに遅延が発生します。高速なインターネット回線を使用している場合は気にならないかもしれません。"
},
"forceChannelCheckPopup": {
- "message": "「飛び越し前に強制的に番組を検査する」を有効にすることを検討してください"
+ "message": "「スキップする前にチャンネルチェックを強制する」を有効にしてみてください"
},
"downvoteDescription": {
- "message": "不正確あるいは間違った時刻です"
+ "message": "不正確/誤った再生時間"
},
"incorrectVote": {
"message": "間違っている"
@@ -890,7 +901,7 @@
"message": "カテゴリーを変更"
},
"nonMusicCategoryOnMusic": {
- "message": "この動画は音楽として分類されています。本当にこの動画にスポンサー部分がありますか? このセグメントが実際には「音楽以外のセグメント」である場合、設定画面からこのカテゴリーを有効にしてください。「スポンサー」の代わりに「音楽以外」としてセグメントを提出できます。お困りの場合は、ガイドラインを参照してください。"
+ "message": "この動画は音楽として分類されています。本当にこの動画にスポンサー部分がありますか? このセグメントが実際には「音楽以外のセグメント」である場合、設定画面からこのカテゴリーを有効にしてください。「広告」の代わりに「音楽以外」としてセグメントを提出できます。お困りの場合は、ガイドラインを参照してください。"
},
"multipleSegments": {
"message": "複数のセグメント"
@@ -899,14 +910,14 @@
"message": "ガイドライン"
},
"readTheGuidelines": {
- "message": "ガイドラインを読んでください!!",
+ "message": "ガイドラインを読んでください!!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
- "message": "カテゴリはこちらです!"
+ "message": "カテゴリーはこちらです!"
},
"categoryUpdate2": {
- "message": "導入画面・終了画面・商品紹介などを飛び越す個人設定を開きます。"
+ "message": "導入/終了シーン・グッズ紹介などをスキップする設定を開く"
},
"help": {
"message": "ヘルプ"
@@ -916,7 +927,7 @@
"description": "Used as the button to dismiss a tooltip"
},
"fullVideoTooltipWarning": {
- "message": "このセグメントは大きすぎます。動画全体が一つのトピックに当てはまる場合は「スキップ」を「動画全体」に変更してください。詳細はガイドラインを参照してください。"
+ "message": "このセグメントは大きすぎます。動画全体が一つの話題に言及しているなら「スキップ」を「動画全体」に変更してください。詳細はガイドラインを参照してください。"
},
"categoryPillTitleText": {
"message": "この動画は全体がこのカテゴリーとして指定されており、密に結合されているため分割することができません"
@@ -929,13 +940,13 @@
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
},
"hideForever": {
- "message": "二度と表示しない"
+ "message": "再び表示しない"
},
"warningChatInfo": {
"message": "どうやらあなたはよくある間違いを犯してしまったようです。これまでのあなたの協力には大きく感謝しています。ですが、私たちは完璧さを追求しており、小さなミスでも重要であることをご理解ください :)"
},
"warningTitle": {
- "message": "警告を付与されました"
+ "message": "警告を受け取りました"
},
"questionButton": {
"message": "質問があります"
@@ -959,22 +970,22 @@
"message": "オプション画面でダークモードを使用"
},
"helpPageThanksForInstalling": {
- "message": "SponsorBlockを導入いただきありがとうございます。"
+ "message": "SponsorBlockをインストールいただきありがとうございます。"
},
"helpPageReviewOptions": {
"message": "以下の設定を確認してください"
},
"helpPageFeatureDisclaimer": {
- "message": "多くの機能がデフォルトでは無効となっています。イントロ・アウトロをスキップしたり、Invidiousで使用したりするにはこの下で有効にしてください。また画面の表示設定を切り替えることもできます。"
+ "message": "多くの機能がデフォルトでは無効となっています。導入/終了シーンをスキップしたり、Invidiousで使用したりするにはこの下で有効にしてください。また画面の表示設定を切り替えることもできます。"
},
"helpPageHowSkippingWorks": {
"message": "スキップの仕組み"
},
"helpPageHowSkippingWorks1": {
- "message": "データベースにある動画区域が自動的に飛び越されます。この拡張機能のアイコンをクリックすると,区域の位置や範囲を確かめることができます。"
+ "message": "データベースにある動画セグメントが自動的にスキップされます。この拡張機能のアイコンをクリックすると、セグメントの位置や範囲を確かめることができます。"
},
"helpPageHowSkippingWorks2": {
- "message": "区域を飛び越すたびに通知されます。区域の範囲がおかしいと思ったら,その区域を低評価してください。ポップアップ画面でも同様に投票ができます。"
+ "message": "セグメントをスキップする度に通知が表示されます。セグメントの範囲がおかしいと思ったら、そのセグメントを低評価してください。ポップアップ画面でも同様に投票ができます。"
},
"Submitting": {
"message": "提出する"
@@ -995,7 +1006,7 @@
"message": "こんな操作は面倒?"
},
"helpPageTooSlow1": {
- "message": "ショートカットキーが利用可能です。セミコロンキーでスポンサーセグメントを開始/終了し、アポストロフィキーで送信できます。またこれらはオプションで変更できます。QWERTYキーを使わない場合は、キー割り当てを変更したほうがいいでしょう。"
+ "message": "ショートカットキーが利用可能です。セミコロンキーで広告セグメントを開始/終了し、アポストロフィキーで送信できます。またこれらはオプションで変更できます。QWERTYキーを使わない場合は、キー割り当てを変更したほうがいいでしょう。"
},
"helpPageCopyOfDatabase": {
"message": "データベースのコピーを利用できますか? 作者が失踪した場合はどうなりますか?"
@@ -1004,10 +1015,10 @@
"message": "データベースは公開されており、こちらから利用できます:"
},
"helpPageCopyOfDatabase2": {
- "message": "ソースコードは自由に利用できます。運営になにがあろうとも,あなたの貢献(提出された区域)が失われることはありません。"
+ "message": "ソースコードは自由に利用できます。運営になにがあろうとも、あなたの貢献(提出したセグメント)が失われることはありません。"
},
"helpPageNews": {
- "message": "お知らせと作成方法"
+ "message": "最新情報と制作秘話"
},
"helpPageSourceCode": {
"message": "ソースコードの入手先"
@@ -1055,7 +1066,7 @@
"message": "編集ボックスにカーソルを合わせながらマウスホイールを使用すると、時間をすばやく調整できます。 CtrlキーまたはShiftキーの組み合わせを使用して変更を微調整できます。"
},
"categoryPillNewFeature": {
- "message": "新機能!動画全体がスポンサー付きもしくはセルフプロモーションかがわかります"
+ "message": "新機能!動画全体が広告もしくは自己宣伝かがわかります"
},
"dayAbbreviation": {
"message": "日",
@@ -1145,10 +1156,6 @@
"selectYourCountry": {
"message": "国を選択してください"
},
- "alreadyDonated": {
- "message": "今までにいくらかの寄付をしていただいた方は、メールにて無料アクセスの引き換えが可能です:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "ライセンスを購入する余裕がない方は、{こちら} をクリックして割引が適用されるかどうか確認できます",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1168,20 +1175,6 @@
"enterLicenseKey": {
"message": "ライセンスキーを入力"
},
- "chaptersPage1": {
- "message": "SponsorBlockのクラウドソーシングによるチャプター機能は、ライセンス購入をされた方、もしくは過去の貢献により許可された方のみが利用できます"
- },
- "chaptersPage2": {
- "message": "注: チャプターの提出権限は算出された評判に基づいています。ライセンスを購入することで、他の人が提出したチャプターを閲覧できるようになります",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "新機能: クラウドソーシングによるカスタムチャプター。動画内のセクションを入れ子構造にできるので、より精密な区分けができます。この動画に登録されたチャプターを表示するにはライセンスをご購入ください。チャプターはこのように表示されます: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "新機能: クラウドソーシングによるカスタムチャプター。動画内のセクションを入れ子構造にできるので、より精密な区分けができます。あなたはこの機能に無料でアクセスできます。オプションより有効化してください。"
- },
"unsubmittedSegmentCounts": {
"message": "現在、{1} に {0} があります",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1238,7 +1231,7 @@
"message": "URLとして共有"
},
"segmentFetchFailureWarning": {
- "message": "警告: サーバーがまだセグメントで応答していません。この動画に対するセグメントはすでに提出されているものの、サーバーの問題によりそれが受信できていないだけという可能性があります。"
+ "message": "警告: サーバーはまだセグメントへの応答をしていません。実際には、この動画のセグメントは既に送信済みかもしれません。一方、単にサーバーの問題により受信できていない可能性もあります。"
},
"allowScrollingToEdit": {
"message": "スクロールで時間を編集できるようにする"
diff --git a/public/_locales/ko/messages.json b/public/_locales/ko/messages.json
index 3bcd6543..7863b7ca 100644
--- a/public/_locales/ko/messages.json
+++ b/public/_locales/ko/messages.json
@@ -797,6 +797,10 @@
"message": "동영상 전체가 광고인 경우 아이콘 표시",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "동영상 미리 보기 사진에도 라벨 표시",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "미제출 색상",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "국가를 선택하세요"
},
- "alreadyDonated": {
- "message": "이전에 후원한 이력이 있다면, 메일을 보내 라이선스를 등록하실 수 있어요. 문의 주소:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "요금을 결제할 여력이 아니시라면, {여기}서 할인 혜택을 받을 수 있는지 확인해 보세요",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "라이선스 키를 입력하세요"
},
- "chaptersPage1": {
- "message": "SponsorBlock 사용자 참여 챕터 기능은 라이선스 결제 사용자나, 이전 기여를 통해 접근을 허가받은 사용자만 사용할 수 있어요"
- },
- "chaptersPage2": {
- "message": "참고: 여전히 챕터 제출 권한은 산정된 평판만을 바탕으로 부여돼요. 라이선스를 결제하면 다른 분이 제출한 챕터를 확인하는 기능만 추가로 사용할 수 있어요",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "새로운 기능: 사용자 참여 챕터 기능. 챕터는 사용자가 직접 이름을 지정할 수 있고 중첩시킬 수 있어 더욱 더 정확해요. 이 동영상에 제출된 챕터를 보려면 라이선스를 결제하세요. 챕터 목록 미리보기: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "새로운 기능: 사용자 참여 챕터 기능. 챕터는 사용자가 직접 이름을 지정할 수 있고 중첩시킬 수 있어 더욱 더 정확해요. 설정에서 사용해서 무료로 사용할 수 있어요."
- },
"unsubmittedSegmentCounts": {
"message": "You currently have {0} on {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
diff --git a/public/_locales/ms/messages.json b/public/_locales/ms/messages.json
index d6f4c98f..c6a1a362 100644
--- a/public/_locales/ms/messages.json
+++ b/public/_locales/ms/messages.json
@@ -1142,10 +1142,6 @@
"selectYourCountry": {
"message": "Pilih negara anda"
},
- "alreadyDonated": {
- "message": "Jika anda telah menderma apa-apa jumlah sebelum ini, anda boleh tebus akses percuma dengan menghantar emel:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Jika anda tidak mampu untuk membeli lesen, tekan {sini} untuk melihat sama ada anda layak untuk diskaun",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1165,20 +1161,6 @@
"enterLicenseKey": {
"message": "Masukkan Kunci Lesen"
},
- "chaptersPage1": {
- "message": "Fitur kandungan sumber awam SponsorBlock hanya tersedia untuk orang yang membeli lesen atau untuk orang yang diberikan akses secara percuma kerana sumbangan lepas"
- },
- "chaptersPage2": {
- "message": "Nota: Kebenaran untuk hantar kandungan masih berdasarkan oleh reputasi yang dikira. Membeli lesen hanya membenarkan anda untuk melihat kandungan yang dihantar oleh orang lain",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Fitur Baharu: Kandungan sumber awam tersuai. Ini adalah bahagian dinamakan tersuai dalam video yang boleh bertindan untuk mendapatkan lebih dan lebih tepat. Beli lesen untuk melihat kandungan dihantar pada video seperti ini: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Fitur Baharu: Kandungan sumber awam tersuai. Ini adalah bahagian dinamakan tersuai dalam video yang boleh bertindan untuk mendapatkan lebih dan lebih tepat. Anda mempunyai akses secara percuma, membolehkannya di pilihan."
- },
"unsubmittedSegmentCounts": {
"message": "Anda pada masa ini mempunyai {0} di {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1233,8 +1215,5 @@
},
"exportSegmentsAsURL": {
"message": "Kongsi sebagai URL"
- },
- "segmentFetchFailureWarning": {
- "message": "Amaran: Pelayan belum membalas dengan segmen lagi. Mungkin sebenarnya ada segmen di video ini sudah dihantar tetapi anda hanya belum menerimanya kerana isu dengan pelayan."
}
}
diff --git a/public/_locales/nl/messages.json b/public/_locales/nl/messages.json
index 3b82fc4f..efab88ea 100644
--- a/public/_locales/nl/messages.json
+++ b/public/_locales/nl/messages.json
@@ -1152,10 +1152,6 @@
"selectYourCountry": {
"message": "Selecteer uw land"
},
- "alreadyDonated": {
- "message": "Als u al eerder een bedrag hebt gedoneerd, kunt u gratis toegang krijgen door een e-mail te sturen:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Als u het zich niet kunt veroorloven om een licentie aan te schaffen, klik dan {hier} om te zien of u in aanmerking komt voor een korting",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1171,6 @@
"enterLicenseKey": {
"message": "Licentiesleutel invoeren"
},
- "chaptersPage1": {
- "message": "De SponsorBlock-functie voor crowd-sourced hoofdstukken is alleen beschikbaar voor mensen die een licentie kopen of voor mensen die gratis toegang krijgen vanwege hun bijdragen in het verleden"
- },
- "chaptersPage2": {
- "message": "Opmerking: toestemming om hoofdstukken in te dienen is nog steeds gebaseerd op berekende reputatie. Door een licentie te kopen kunt u enkel hoofdstukken bekijken die door anderen zijn ingediend",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Nieuwe functie: gecrowdsourcete aangepaste hoofdstukken. Dit zijn hoofdstukken met een eigen naam in video's die gestapeld kunnen worden om steeds preciezer te worden. Koop een licentie om de ingezonden hoofdstukken op deze video te bekijken, zoals: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Nieuwe functie: gecrowdsourcete aangepaste hoofdstukken. Dit zijn hoofdstukken met een eigen naam in video's die gestapeld kunnen worden om steeds preciezer te worden. U heeft gratis toegang. In te schakelen via de opties."
- },
"unsubmittedSegmentCounts": {
"message": "U hebt momenteel {0} in {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1244,9 +1226,6 @@
"exportSegmentsAsURL": {
"message": "Delen als URL"
},
- "segmentFetchFailureWarning": {
- "message": "Waarschuwing: de server heeft nog niet gereageerd met segmenten. Misschien zijn er al segmenten van deze video ingediend, maar heeft u ze nog niet ontvangen door problemen met de server."
- },
"allowScrollingToEdit": {
"message": "Scrollen toestaan om tijdstippen te bewerken"
}
diff --git a/public/_locales/pl/messages.json b/public/_locales/pl/messages.json
index e2ddbd8a..86d5b279 100644
--- a/public/_locales/pl/messages.json
+++ b/public/_locales/pl/messages.json
@@ -131,6 +131,9 @@
"closeIcon": {
"message": "Wyłącz ikonę"
},
+ "OpenSubmissionMenu": {
+ "message": "Otwórz menu zgłoszenia"
+ },
"sortSegments": {
"message": "Sortuj segmenty"
},
@@ -794,6 +797,10 @@
"message": "Pokaż ikonę, gdy film jest w całości reklamą",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Pokaż etykiety również na miniaturach filmów",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Kolor nieprzesłanego segmentu",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1149,10 +1156,6 @@
"selectYourCountry": {
"message": "Wybierz swój kraj"
},
- "alreadyDonated": {
- "message": "Jeśli do tej pory przekazałeś jakąkolwiek darowiznę, możesz odebrać darmowy dostęp poprzez wysyłanie maila do:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Jeśli nie możesz sobie pozwolić na zakup licencji, kliknij {tutaj} aby sprawdzić, czy kwalifikujesz się do zniżki",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1172,20 +1175,6 @@
"enterLicenseKey": {
"message": "Wprowadź klucz licencyjny"
},
- "chaptersPage1": {
- "message": "Funkcja społecznościowych rozdziałów SponsorBlock jest dostępna tylko dla osób, które wykupią licencję, albo którym przyznano dostęp za darmo ze względu na swoje wcześniejszy wkład"
- },
- "chaptersPage2": {
- "message": "Uwaga: Przesyłanie rozdziałów jest nadal oparte na skalkulowanej reputacji. Kupowanie licencji pozwala tylko przeglądać rozdziały przesłane przez innych",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Nowa funkcja: niestandardowe rozdziały ze źródeł społecznościowych. Są to sekcje niestandardowo nazwane w filmach, które mogą być ustawione w sposób bardziej precyzyjny. Kup licencję, aby wyświetlić rozdziały przedstawione na tym filmie, takie jak: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Nowa funkcja: niestandardowe rozdziały ze źródeł społecznościowych. Są to sekcje niestandardowo nazwane w filmach, które mogą być ustawione w sposób bardziej precyzyjny."
- },
"unsubmittedSegmentCounts": {
"message": "Aktualnie masz {0} na {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1242,7 +1231,7 @@
"message": "Udostępnij jako adres URL"
},
"segmentFetchFailureWarning": {
- "message": "Ostrzeżenie: Serwer nie odpowiedział jeszcze na segmenty. Być może segmenty na tym filmie są już wysłane, ale po prostu nie otrzymałeś ich z powodu problemów z serwerem."
+ "message": "Ostrzeżenie: Serwer nie odpowiedział jeszcze na segmenty. Być może segmenty na tym filmie są już wysłane, ale po prostu nie otrzymano ich z powodu problemów z serwerem."
},
"allowScrollingToEdit": {
"message": "Zezwalaj na scroll'owanie do edycji czasów"
diff --git a/public/_locales/pt_BR/messages.json b/public/_locales/pt_BR/messages.json
index 0935a0b6..1cee4e07 100644
--- a/public/_locales/pt_BR/messages.json
+++ b/public/_locales/pt_BR/messages.json
@@ -1,23 +1,23 @@
{
"fullName": {
- "message": "SponsorBlock para YouTube - Pule patrocínios",
+ "message": "SponsorBlock para YouTube - Pule Patrocínios",
"description": "Name of the extension."
},
"Description": {
- "message": "Pule patrocinadores, pedidos para se inscrever, e outros nos vídeos do YouTube. Reporte patrocinadores nos vídeos que você assistir para economizar o tempo dos outros.",
+ "message": "Pule patrocinadores, pedidos para se inscrever e mais em vídeos do YouTube. Denuncie patrocinadores em vídeos que você assistir para economizar o tempo dos outros.",
"description": "Description of the extension."
},
"400": {
"message": "O servidor disse que esse pedido foi inválido"
},
"429": {
- "message": "Você enviou muitos segmentos para esse vídeo, tem certeza que tem tantos assim?"
+ "message": "Você enviou muitos segmentos para esse vídeo, tem certeza de que são tantos assim?"
},
"409": {
- "message": "Isso já foi enviado antes"
+ "message": "Esse segmento já foi enviado."
},
"channelWhitelisted": {
- "message": "Canal adicionado à lista branca!"
+ "message": "Canal adicionado à lista de permissões!"
},
"Segment": {
"message": "segmento"
@@ -36,16 +36,16 @@
"description": "Refers to drawing segments on the YouTube seek bar as split up chapters, similar to the existing chapter system"
},
"showSegmentNameInChapterBar": {
- "message": "Mostrar Segmento Atual ao Lado do Tempo do Vídeo"
+ "message": "Mostrar segmento atual ao lado do tempo do vídeo"
},
"upvoteButtonInfo": {
- "message": "Votar nesse segmento positivamente"
+ "message": "Aprovar este segmento"
},
"reportButtonTitle": {
- "message": "Reportar"
+ "message": "Denunciar"
},
"reportButtonInfo": {
- "message": "Reportar esse segmento como inválido."
+ "message": "Denunciar este segmento como inválido."
},
"Dismiss": {
"message": "Ignorar"
@@ -57,7 +57,7 @@
"message": "Nunca mostrar"
},
"hitGoBack": {
- "message": "Aperta \"reverter pulo\" para voltar onde estava."
+ "message": "Aperte \"reverter pulo\" para voltar onde você estava."
},
"unskip": {
"message": "Reverter pulo"
@@ -66,7 +66,7 @@
"message": "Pular novamente"
},
"unmute": {
- "message": "Ativar som"
+ "message": "Reativar o som"
},
"paused": {
"message": "Pausado"
@@ -75,13 +75,13 @@
"message": "Temporizador parado"
},
"confirmMSG": {
- "message": "\n\nPara editar ou remover linhas individuais, clique com o botão direito ou abra o popup da extensão pelo icone no canto superior direito."
+ "message": "Para editar ou remover valores individuais, clique no botão de informações ou abra o pop-up da extensão clicando no ícone no canto superior direito."
},
"clearThis": {
- "message": "Tem certeza que quer limpar isso?\n\n"
+ "message": "Tem certeza de que deseja limpar isso?\n\n"
},
"Unknown": {
- "message": "Houve um erro ao enviar seus segmentos, tente novamente mais tarde."
+ "message": "Ocorreu um erro ao enviar seus segmentos, tente novamente mais tarde."
},
"sponsorFound": {
"message": "Este vídeo tem segmentos no banco de dados!"
@@ -90,16 +90,16 @@
"message": "Nenhum segmento encontrado"
},
"sponsorStart": {
- "message": "O Segmento Começa Agora"
+ "message": "O segmento começa agora"
},
"sponsorEnd": {
- "message": "O Segmento Termina Agora"
+ "message": "O segmento termina agora"
},
"sponsorCancel": {
- "message": "Cancelar Criação de Segmento"
+ "message": "Cancelar criação de segmento"
},
"noVideoID": {
- "message": "Nenhum vídeo do YouTube encontrado.\nSe isto estiver incorreto, atualize a aba."
+ "message": "Nenhum vídeo do YouTube encontrado.\nSe isto estiver errado, atualize a guia."
},
"refreshSegments": {
"message": "Atualizar segmentos"
@@ -111,7 +111,7 @@
"message": "Votado!"
},
"serverDown": {
- "message": "Parece que o servidor caiu. Contate o desenvolvedor o quanto antes."
+ "message": "Parece que o servidor está fora do ar. Entre em contato com o desenvolvedor imediatamente."
},
"connectionError": {
"message": "Ocorreu um erro de conexão. Código de erro: "
@@ -120,31 +120,34 @@
"message": "Segmentos ainda carregando..."
},
"clearTimes": {
- "message": "Limpar Segmentos"
+ "message": "Limpar segmentos"
},
"openPopup": {
- "message": "Abrir o Popup SponsorBlock"
+ "message": "Abrir pop-up do SponsorBlock"
},
"closePopup": {
- "message": "Fechar Popup"
+ "message": "Fechar pop-up"
},
"closeIcon": {
- "message": "Ícone de Fechar"
+ "message": "Ícone de fechar"
+ },
+ "OpenSubmissionMenu": {
+ "message": "Abrir menu de envio"
},
"sortSegments": {
- "message": "Organizar Segmentos"
+ "message": "Organizar segmentos"
},
"submitCheck": {
"message": "Você tem certeza que deseja enviar isto?"
},
"whitelistChannel": {
- "message": "Adicionar canal à lista branca"
+ "message": "Adicionar canal à lista de permissões"
},
"removeFromWhitelist": {
- "message": "Remover canal da lista branca"
+ "message": "Remover canal da lista de permissões"
},
"voteOnTime": {
- "message": "Votar Em Um Segmento"
+ "message": "Votar em um segmento"
},
"Submissions": {
"message": "Envios"
@@ -166,10 +169,10 @@
"message": "Dica: Você pode configurar os atalhos de tecla para enviar nas opções"
},
"clearTimesButton": {
- "message": "Limpar Intervalos"
+ "message": "Limpar intervalos"
},
"publicStats": {
- "message": "Isso é usado na página pública de estatísticas que mostra o quanto você já contribuiu. Veja-a"
+ "message": "Isto é usado na página pública de estatísticas que mostra o quanto você já contribuiu. Veja-a"
},
"Username": {
"message": "Nome de usuário"
@@ -178,7 +181,7 @@
"message": "Definir nome de usuário"
},
"copyPublicID": {
- "message": "Copiar ID Pública de Usuário"
+ "message": "Copiar ID de usuário pública"
},
"copySegmentID": {
"message": "Copiar ID do segmento"
@@ -193,58 +196,58 @@
"message": "Opções"
},
"showButtons": {
- "message": "Mostrar botões no player do Youtube"
+ "message": "Mostrar botões no reprodutor do YouTube"
},
"hideButtons": {
- "message": "Esconder botões no player do Youtube"
+ "message": "Esconder botões no reprodutor do YouTube"
},
"hideButtonsDescription": {
- "message": "Esta opção esconde os botões que aparecem para enviar segmentos no player do YouTube."
+ "message": "Esta opção esconde os botões que aparecem para enviar segmentos no reprodutor do YouTube."
},
"showSkipButton": {
- "message": "Manter botão Pular para os Destaques no player"
+ "message": "Mostrar botão pular para os destaques no reprodutor"
},
"showInfoButton": {
- "message": "Mostrar botão de Informações no player do Youtube"
+ "message": "Mostrar botão de informações no reprodutor do YouTube"
},
"hideInfoButton": {
- "message": "Esconder botão de Informações no player do Youtube"
+ "message": "Ocultar botão de informações no reprodutor do YouTube"
},
"autoHideInfoButton": {
- "message": "Esconder Automaticamente o Botão de Informação"
+ "message": "Ocultar automaticamente o botão de informação"
},
"hideDeleteButton": {
- "message": "Esconder botão de Apagar no player do Youtube"
+ "message": "Ocultar botão de apagar no reprodutor do YouTube"
},
"showDeleteButton": {
- "message": "Mostrar botão de Apagar no player do Youtube"
+ "message": "Mostrar botão de apagar no reprodutor do YouTube"
},
"enableViewTracking": {
- "message": "Ativar Contador de Segmentos Pulados"
+ "message": "Ativar contador de segmentos pulados"
},
"whatViewTracking": {
- "message": "Este recurso controla quais segmentos você pulou para permitir que os usuários saibam o quanto a submissão deles ajudou outros e foi usada como métrica, juntamente com votos positivos para garantir que nenhum spam entre no banco de dados. A extensão envia uma mensagem ao servidor cada vez que você pular um segmento. Espera-se que a maioria das pessoas não mude essa configuração, para que os números de exibição estejam corretos. :)"
+ "message": "Este recurso rastreia quais segmentos você pulou para permitir que os usuários saibam o quanto o envio deles ajudou outras pessoas e é usado como uma métrica junto com votos positivos para garantir que spam não entre no banco de dados. A extensão envia uma mensagem ao servidor toda vez que você pula um segmento. Espera-se que a maioria das pessoas não altere essa configuração para que os números de exibição sejam precisos. :)"
},
"enableViewTrackingInPrivate": {
- "message": "Ativar Pular Contagem de Rastreamento em Abas Privadas/Incógnito"
+ "message": "Ativar rastreamento de contagem de pulos nas guias privadas/anônimas"
},
"enableTrackDownvotes": {
"message": "Armazenar votos negativos de segmentos"
},
"whatTrackDownvotes": {
- "message": "Qualquer segmento que você der voto negative permanecerá oculto mesmo após recarregar"
+ "message": "Quaisquer segmentos em que você votou negativamente permanecerão ocultos mesmo após a atualização"
},
"trackDownvotesWarning": {
"message": "Aviso: Desativar isto excluirá todos os votos negativos armazenados anteriormente"
},
"enableQueryByHashPrefix": {
- "message": "Consulta Por Prefixo Hash"
+ "message": "Consulta por prefixo de hash"
},
"whatQueryByHashPrefix": {
- "message": "Em vez de solicitar segmentos do servidor usando o videoID, os 4 primeiros caracteres do hash do videoID foram enviados. Este servidor enviará dados de volta para todos os vídeos com hashes similares."
+ "message": "Em vez de solicitar segmentos do servidor usando o videoID, são enviados os 4 primeiros caracteres da hash do videoID. Este servidor enviará dados de volta para todos os vídeos com hashes similares."
},
"enableRefetchWhenNotFound": {
- "message": "Recuperar Segmentos Em Novos Vídeos"
+ "message": "Recuperar segmentos em novos vídeos"
},
"whatRefetchWhenNotFound": {
"message": "Se o vídeo for novo e nenhum segmento for encontrado, continuaremos buscando enquanto você assiste."
@@ -259,28 +262,28 @@
"message": "Mostrar notificação outra vez"
},
"showSkipNotice": {
- "message": "Mostrar Aviso Após Um Segmento Ser Ignorado"
+ "message": "Mostrar aviso após um segmento ser ignorado"
},
"showCategoryGuidelines": {
- "message": "Mostrar Categoria de Ajuda"
+ "message": "Mostrar categoria de ajuda"
},
"noticeVisibilityMode0": {
- "message": "Avisos de Ignorar em Tamanho Inteiro"
+ "message": "Avisos de pulo de duração normal"
},
"noticeVisibilityMode1": {
- "message": "Avisos de Ignorar pequenos quando Pulado Automaticamente"
+ "message": "Avisos de pulo automático, mesmo pequenos"
},
"noticeVisibilityMode2": {
- "message": "Todos os Avisos de Ignorar em Tamanho Pequeno"
+ "message": "Todos os avisos de pulo, mesmo de curta duração"
},
"noticeVisibilityMode3": {
- "message": "Avisos de Ignorar semi-transparentes quando Pulado Automaticamente"
+ "message": "Avisos de pulo semitransparente no pulo automático"
},
"noticeVisibilityMode4": {
- "message": "Todos os Avisos de Ignorar semi-transparentes"
+ "message": "Todos os avisos de pulo semitransparente"
},
"longDescription": {
- "message": "O SponsorBlock permite que você pule patrocinadores, introduções, créditos finais, lembretes de inscrição, e outras partes irritantes dos vídeos do YouTube. O SponsorBlock é uma extensão de navegador de crowdsourcing que permite enviar a qualquer um o tempo inicial e final de segmentos patrocinados de vídeos do YouTube. Assim que uma pessoa enviar essa informação, todas as outras pessoas com essa extensão irão pular o segmento patrocinado. Você também pode pular seções que não são de música dos vídeos de música.",
+ "message": "O SponsorBlock permite que você pule patrocinadores, introduções, créditos finais, lembretes de inscrição, e outras partes irritantes dos vídeos do YouTube. O SponsorBlock é uma extensão de navegador de colaboração coletiva que permite enviar a qualquer um o tempo inicial e final de segmentos patrocinados de vídeos do YouTube. Assim que uma pessoa enviar essa informação, todas as outras pessoas com essa extensão irão pular o segmento patrocinado. Você também pode pular seções sem música em vídeos de música.",
"description": "Full description of the extension on the store pages."
},
"website": {
@@ -308,7 +311,7 @@
"description": "Keybind label"
},
"setSubmitKeybind": {
- "message": "Enviar Segmentos",
+ "message": "Enviar segmentos",
"description": "Keybind label"
},
"nextChapterKeybind": {
@@ -320,10 +323,10 @@
"description": "Keybind label"
},
"keybindDescription": {
- "message": "Pressione a tecla desejada e escolha quaisquer teclas modificadoras deseja utilizar."
+ "message": "Selecione uma tecla, digitando-a e escolha as teclas modificadoras que deseja usar."
},
"0": {
- "message": "Tempo limite de conexão excedida. Cheque a sua conexão de internet. Se a sua internet estiver funcionando, o servidor está sobrecarregado ou fora do ar."
+ "message": "Tempo limite de conexão excedida. Verifique a sua conexão de internet. Se a sua internet estiver funcionando, o servidor está provavelmente sobrecarregado ou fora do ar."
},
"disableSkipping": {
"message": "Pular está habilitado"
@@ -332,14 +335,14 @@
"message": "Pular está desabilitado"
},
"yourWork": {
- "message": "Suas submissões",
+ "message": "Seus envios",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "O servidor parece estar sobrecarregado. Tente novamente em alguns segundos."
},
"errorCode": {
- "message": "Código de erro: "
+ "message": "Código do erro: "
},
"skip": {
"message": "Pular"
@@ -348,7 +351,7 @@
"message": "Silenciar"
},
"full": {
- "message": "Vídeo completo",
+ "message": "Vídeo Completo",
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
},
"skip_category": {
@@ -362,11 +365,11 @@
"description": "Used for skipping to things (Skip to Highlight)"
},
"skipped": {
- "message": "{0} Ignorado",
+ "message": "{0} pulado",
"description": "Example: Sponsor Skipped"
},
"muted": {
- "message": "{0} Silenciado",
+ "message": "{0} silenciado",
"description": "Example: Sponsor Muted"
},
"skipped_to_category": {
@@ -374,10 +377,10 @@
"description": "Used for skipping to things (Skipped to Highlight)"
},
"disableAutoSkip": {
- "message": "Desativar Salto Automático"
+ "message": "Desativar pulo automático"
},
"enableAutoSkip": {
- "message": "Ativar Salto Automático"
+ "message": "Ativar pulo automático"
},
"audioNotification": {
"message": "Notificação de áudio ao pular"
@@ -389,7 +392,7 @@
"message": "Mostrar tempo com pulos removidos"
},
"showTimeWithSkipsDescription": {
- "message": "Este tempo aparece em parênteses ao lado do tempo atual, abaixo da barra de procura. Isto mostra a duração total do vídeo menos qualquer segmento. Isto inclui segmentos marcados apenas como \"Mostrar na Barra de Procura\"."
+ "message": "Este tempo aparece em parênteses ao lado do tempo atual, abaixo da barra de progresso. Isto mostra a duração total do vídeo sem qualquer segmento. Isto inclui segmentos marcados apenas como \"Mostrar na barra de progresso\"."
},
"youHaveSkipped": {
"message": "Você pulou "
@@ -407,42 +410,46 @@
"message": "horas"
},
"youHaveSavedTime": {
- "message": "Você poupou das pessoas",
+ "message": "Você poupou as pessoas",
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
},
"youHaveSavedTimeEnd": {
- "message": " das vidas dos outros",
+ "message": " de suas vidas",
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
},
"statusReminder": {
- "message": "Verifique status.sponsor.ajay.app para o status do servidor."
+ "message": "Verifique status.sponsor.ajay.app para ver o estado do servidor."
},
"changeUserID": {
- "message": "Importar/Exportar Seu UserID Privado"
+ "message": "Importar/exportar seu ID de usuário privado"
},
"whatChangeUserID": {
- "message": "Esta informação deve se mantida privada. Ela é como uma senha e não deve ser compartilhada. Outras pessoas poderão se passar por você caso obtenham acesso. Se estiver procurando por sua ID Pública de Usuário, clique no ícone de prancheta no popup."
+ "message": "Esta informação deve se mantida privada. Ela é como uma senha e não deve ser compartilhada. Outras pessoas poderão se passar por você caso obtenham acesso. Se estiver procurando por sua ID pública de usuário, clique no ícone de prancheta no pop-up."
},
"setUserID": {
- "message": "Definir UserID Privado"
+ "message": "Definir ID de usuário privado"
},
"userIDChangeWarning": {
- "message": "Aviso: A modificação do ID de usuário privado é permanente. Você tem certeza de que quer fazer isso? Certifique-se de fazer backup do anterior."
+ "message": "Aviso: A alteração do ID de usuário privado é permanente. Tem certeza de que gostaria de fazer isso? Certifique-se de fazer backup do seu antigo por precaução."
},
"createdBy": {
"message": "Criado por"
},
"supportOtherSites": {
- "message": "Suporte a Sites do YouTube de Terceiros"
+ "message": "Suporte a sites do YouTube de terceiros"
+ },
+ "supportOtherSitesDescription": {
+ "message": "Suporte a clientes do YouTube de terceiros. Para habilitar o suporte, você deve aceitar as permissões extras.",
+ "description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
},
"supportedSites": {
- "message": "Sites Suportados: "
+ "message": "Sites suportados: "
},
"optionsInfo": {
- "message": "Ativar apoio ao Invidious, desabilitar pular automaticamente, ocultar botões e mais."
+ "message": "Ativar apoio ao Invidious, desativar pulo automático, ocultar botões e mais."
},
"addInvidiousInstance": {
- "message": "Adicionar Instância de Cliente de Terceiros"
+ "message": "Adicionar instância de cliente de terceiros"
},
"addInvidiousInstanceDescription": {
"message": "Adicionar uma instância personalizada. Isso deve ser formatado APENAS com o domínio. Exemplo: invidious.ajay.app"
@@ -454,13 +461,13 @@
"message": "Este é um domínio inválido. Ele deve incluir APENAS a parte do domínio. Exemplo: invidious.ajay.app"
},
"resetInvidiousInstance": {
- "message": "Redefinir Lista de Instâncias do Invidious"
+ "message": "Redefinir lista de instâncias do Invidious"
},
"resetInvidiousInstanceAlert": {
"message": "Você está prestes a redefinir a lista de instâncias do Invidious"
},
"currentInstances": {
- "message": "Instâncias Atuais:"
+ "message": "Instâncias atuais:"
},
"minDuration": {
"message": "Duração mínima (segundos):"
@@ -472,19 +479,19 @@
"message": "Usar o pulo manual quando houver um rótulo de vídeo completo"
},
"whatManualSkipOnFullVideo": {
- "message": "Para pessoas que desejam assistir ao vídeo sem interrupção se ele for totalmente patrocinado ou autopromoção."
+ "message": "Para pessoas que desejam assistir ao vídeo sem interrupção se ele for totalmente patrocinado ou de auto-promoção."
},
"skipNoticeDuration": {
- "message": "Duração do aviso prévio de pular (segundos):"
+ "message": "Duração do aviso prévio de pulo (segundos):"
},
"skipNoticeDurationDescription": {
- "message": "O aviso de pular ficará na tela por pelo menos este tempo. Para o pulo manual, pode ser visível por mais tempo."
+ "message": "O aviso de pulo ficará na tela por pelo menos este tempo. Para o pulo manual, pode ser visível por mais tempo."
},
"shortCheck": {
- "message": "A seguinte submissão é mais curta do que sua opção de duração mínima. Isto significa que já foi enviada e que está sendo ignorada devido a esta opção. Tem certeza que deseja enviar mesmo assim?"
+ "message": "O seguinte envio é mais curto do que sua opção de duração mínima. Isto significa que já foi enviada e está sendo ignorada devido a esta opção. Tem certeza que deseja enviar mesmo assim?"
},
"liveOrPremiere": {
- "message": "Não é permitido o envio de segmentos em livestreams ou premieres ainda em andamento. Por favor, aguarde até que terminem, e em seguida, atualize a página e verifique se os segmentos ainda são válidos."
+ "message": "Não é permitido o envio de segmentos em transmissões ao vivo ou estreias ainda em andamento. Por favor, aguarde até que terminem, e em seguida, atualize a página e verifique se os segmentos ainda são válidos."
},
"showUploadButton": {
"message": "Mostrar botão de envio"
@@ -511,7 +518,7 @@
"message": "m.youtube.com agora é suportado"
},
"exportOptions": {
- "message": "Importar/Exportar Todas as Opções"
+ "message": "Importar/Exportar todas as opções"
},
"exportOptionsCopy": {
"message": "Editar/copiar"
@@ -522,8 +529,11 @@
"exportOptionsUpload": {
"message": "Importar de um arquivo"
},
+ "whatExportOptions": {
+ "message": "Essa é a sua configuração completa em JSON. Isso inclui seu ID de usuário privado, então tenha certeza de compartilhá-lo com sabedoria."
+ },
"setOptions": {
- "message": "Definir Opções"
+ "message": "Definir opções"
},
"exportOptionsWarning": {
"message": "Aviso: Alterar as opções é permanente e pode fazer a extensão parar de funcionar. Tem certeza que deseja fazer isso? Certifique-se de fazer um backup por precaução."
@@ -532,7 +542,7 @@
"message": "Este JSON não está formatado corretamente. Suas opções não foram alteradas."
},
"confirmNoticeTitle": {
- "message": "Enviar Segmento"
+ "message": "Enviar segmento"
},
"submit": {
"message": "Enviar"
@@ -544,7 +554,7 @@
"message": "Deletar"
},
"preview": {
- "message": "Pré-visualizar"
+ "message": "Prévia"
},
"unsubmitted": {
"message": "Não enviado"
@@ -556,16 +566,16 @@
"message": "Editar"
},
"copyDebugInformation": {
- "message": "Copiar Informações de Depuração Para Área de Transferência"
+ "message": "Copiar informações de depuração para a área de transferência"
},
"copyDebugInformationFailed": {
"message": "Erro ao copiar para a área de transferência"
},
"copyDebugInformationOptions": {
- "message": "Copia informações para a área de transferência para serem fornecidas a um desenvolvedor quando houver um bug / quando um solicitado pelo desenvolvedor. Informações sensíveis como seu ID de usuário, canais na lista de permissões e endereço personalizado do servidor foram removidos. No entanto, ele contém informações como seu useragent, navegador, sistema operacional e número de versão de extensão. "
+ "message": "Copia informações para a área de transferência para serem fornecidas a um desenvolvedor quando houver um bug ou quando solicitado por um desenvolvedor. Informações sensíveis como seu ID de usuário, canais na lista de permissões e endereço personalizado do servidor foram removidos. No entanto, ele contém informações como seu useragent, navegador, sistema operacional e número de versão da extensão. "
},
"copyDebugInformationComplete": {
- "message": "A informação de depuração foi copiada para a área de transferência. Sinta-se à vontade para remover qualquer informação que prefira não compartilhar. Salve em um arquivo de texto ou cole-a no relatório de bug."
+ "message": "A informação de depuração foi copiada para a área de transferência. Sinta-se à vontade para remover qualquer informação que prefira não compartilhar. Salve em um arquivo de texto ou cole-a no relatório de erro."
},
"keyAlreadyUsed": {
"message": "Este atalho está vinculado a outra ação. Por favor, selecione um atalho diferente."
@@ -588,7 +598,7 @@
"message": "Patrocinador"
},
"category_sponsor_description": {
- "message": "Promoção paga, referências pagas e anúncios diretos. Não deve ser usado para Auto promoção ou mensagens grátis para causas/criadores/sites/produtos que eles gostam."
+ "message": "Promoção paga, referências pagas e anúncios diretos. Não deve ser usado para auto-promoção ou mensagens grátis para causas/criadores/sites/produtos que eles gostam."
},
"category_sponsor_guideline1": {
"message": "Promoções pagas"
@@ -597,10 +607,10 @@
"message": "Não é para doações ou mercadoria personalizada"
},
"category_selfpromo": {
- "message": "Não-pago/Auto promoção"
+ "message": "Não-pago/Autopromoção"
},
"category_selfpromo_description": {
- "message": "Similar a \"patrocinador\", mas para auto promoções e segmentos não-pagos. Isso inclui seções sobre vendas, doações ou informações sobre com quem colaboraram."
+ "message": "Similar a \"patrocinador\", exceto para não-pago ou auto-promoção. Isso inclui seções sobre mercadorias, doações ou informações sobre com quem eles colaboraram."
},
"category_selfpromo_guideline1": {
"message": "Doações, programa de membros e mercadoria personalizada"
@@ -612,7 +622,7 @@
"message": "Não é para produtos de origem corporativa ou mercadorias"
},
"category_exclusive_access": {
- "message": "Acesso Exclusivo"
+ "message": "Acesso exclusivo"
},
"category_exclusive_access_description": {
"message": "Apenas para rotular vídeos inteiros. Usado quando um vídeo apresenta um produto, serviço ou local ao qual eles receberam acesso gratuito ou subsidiado."
@@ -628,7 +638,7 @@
"message": "Lembrete de interação (inscrever-se)"
},
"category_interaction_description": {
- "message": "Quando houver um pequeno lembrete para curtir, inscrever-se ou segui-los no meio do conteúdo. Se é longo ou sobre algo em específico, deveria ser sob Não-pago/Auto promoção."
+ "message": "Quando houver um pequeno lembrete para curtir, inscrever-se ou seguir no meio do conteúdo. Se é longo ou sobre algo em específico, deveria estar sob auto-promoção."
},
"category_interaction_guideline1": {
"message": "Lembretes rápidos para curtir, inscrever ou seguir"
@@ -637,13 +647,13 @@
"message": "Inclui lembretes indiretos para comentar"
},
"category_interaction_guideline3": {
- "message": "Não é para promoção geral, apenas chamado à ação"
+ "message": "Não é para promoção geral, apenas um chamado para à ação"
},
"category_interaction_short": {
"message": "Lembrete de interação"
},
"category_intro": {
- "message": "Intervalo/Animação de Introdução"
+ "message": "Intervalo/Vinheta de abertura"
},
"category_intro_description": {
"message": "Um intervalo sem conteúdo real. Pode ser uma pausa, um quadro estático, uma animação repetitiva. Isso não deve ser usado em transições que contenham informação."
@@ -664,10 +674,10 @@
"message": "Créditos ou quando os cards finais do YouTube aparecem. Não deve ser usado para conclusões informativas."
},
"category_outro_guideline1": {
- "message": "Não inclue conteúdo, mesmo que cartões de finalização estejam na tela"
+ "message": "Não inclui conteúdo, mesmo que cartões de finalização estejam na tela"
},
"category_preview": {
- "message": "Pré-visualização/Recapitulação"
+ "message": "Prévia/Recapitulação"
},
"category_preview_description": {
"message": "Coleção de clipes que mostram o que está por vir neste vídeo ou em outros vídeos em uma série onde todas as informações são repetidas mais tarde no vídeo."
@@ -684,6 +694,9 @@
"category_filler": {
"message": "Enrolação/Piadas"
},
+ "category_filler_description": {
+ "message": "Cenas tangenciais inseridas apenas por enrolação ou humor que não são necessárias para compreender o tópico principal do vídeo. Isto não deve incluir segmentos que fornecem contexto ou detalhes de segundo plano. Esta é uma categoria muito agressiva para quando você não está com disposição para \"diversão\"."
+ },
"category_filler_short": {
"message": "Enrolação"
},
@@ -691,19 +704,19 @@
"message": "Cenas tangenciais apenas para enrolação ou humor"
},
"category_filler_guideline2": {
- "message": "Distrações, erros de gravação, replays"
+ "message": "Distrações, erros de gravação, repetições"
},
"category_filler_guideline3": {
"message": "Não é para cenas necessárias para o entendimento do tópico"
},
"category_music_offtopic": {
- "message": "Música: Seção sem música"
+ "message": "Música: trecho sem música"
},
"category_music_offtopic_description": {
"message": "Apenas para uso em vídeos musicais. Deve ser usado exclusivamente para seções de vídeos musicais que já não pertençam à outra categoria."
},
"category_music_offtopic_short": {
- "message": "Não musical"
+ "message": "Sem música"
},
"category_music_offtopic_guideline1": {
"message": "Seções que não estão nos lançamentos oficiais"
@@ -715,7 +728,7 @@
"message": "Destaques"
},
"category_poi_highlight_description": {
- "message": "A parte do vídeo que a maioria das pessoas procura. Similar aos comentários \"Vídeo começa aos x\"."
+ "message": "A parte do vídeo que a maioria das pessoas procura. Similar aos comentários \"Vídeo começa em x\"."
},
"category_poi_highlight_guideline1": {
"message": "A seção que maioria das pessoas está procurando"
@@ -735,11 +748,17 @@
"category_chapter_guideline1": {
"message": "Não mencione os nomes dos patrocinadores"
},
+ "category_chapter_guideline2": {
+ "message": "Use capítulos maiores para seções gerais"
+ },
+ "category_chapter_guideline3": {
+ "message": "Capítulos menores podem ser colocados em capítulos maiores"
+ },
"category_livestream_messages": {
- "message": "Livestream: Leituras de Doação/Mensagem"
+ "message": "Transmissão ao vivo: Leituras de Doação/Mensagem"
},
"category_livestream_messages_short": {
- "message": "Leitura de mensagens"
+ "message": "Leitura de Mensagens"
},
"autoSkip": {
"message": "Pular automaticamente"
@@ -748,7 +767,7 @@
"message": "Pular manualmente"
},
"showOverlay": {
- "message": "Mostrar barra de progresso"
+ "message": "Mostrar na barra de progresso"
},
"disable": {
"message": "Desativar"
@@ -763,13 +782,13 @@
"message": "Mostrar na barra de progresso"
},
"showOverlay_full": {
- "message": "Mostrar Rótulo"
+ "message": "Mostrar rótulo"
},
"showOverlay_chapter": {
- "message": "Mostrar Capítulos"
+ "message": "Mostrar capítulos"
},
"autoSkipOnMusicVideos": {
- "message": "Pular automaticamente todos os segmentos quando há um segmento que não é música"
+ "message": "Pular automaticamente todos os segmentos quando houver trechos sem música"
},
"muteSegments": {
"message": "Permitir segmentos que silenciem o áudio ao invés de pular"
@@ -778,12 +797,16 @@
"message": "Mostrar um ícone quando um vídeo é inteiramente um anúncio",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Mostrar rótulos nas miniaturas de vídeo também",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
- "message": "Cor Não Enviada",
+ "message": "Cor não enviada",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
- "message": "Cor da barra"
+ "message": "Cor da barra de progresso"
},
"category": {
"message": "Categoria"
@@ -793,29 +816,29 @@
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
- "message": "Habilitar Servidor em teste Beta"
+ "message": "Habilitar servidor de testes beta"
},
"whatEnableTestingServer": {
"message": "Seus envios e votos NÃO SERÃO ENVIADOS para o servidor principal. Use isso apenas para testes."
},
"testingServerWarning": {
- "message": "Todas os envios e votos NÃO SERÃO ENVIADOS para o servidor principal enquanto se conecta ao servidor de teste. Certifique-se de desativar isso quando você quiser fazer envios reais."
+ "message": "Todos os envios e votos NÃO SERÃO ENVIADOS para o servidor principal quando conectado ao servidor de teste. Desative quando você quiser fazer envios reais."
},
"bracketNow": {
- "message": "(agora)"
+ "message": "(Agora)"
},
"moreCategories": {
"message": "Mais categorias"
},
"chooseACategory": {
- "message": "Selecione uma Categoria"
+ "message": "Selecione uma categoria"
},
"enableThisCategoryFirst": {
"message": "Para enviar os segmentos com a categoria de \"{0}\", você deve ativá-la nas opções. Você será redirecionado para as opções agora.",
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
},
"poiOnlyOneSegment": {
- "message": "Aviso: Este tipo de segmento pode ter no máximo um ativo por vez. Enviar múltiplos fará com que um aleatório seja mostrado."
+ "message": "Aviso: este tipo de segmento pode ter no máximo um ativo por vez. Enviar múltiplos fará com que um aleatório seja mostrado."
},
"youMustSelectACategory": {
"message": "Você deve selecionar uma categoria para todos os segmentos que você está enviando!"
@@ -823,8 +846,12 @@
"bracketEnd": {
"message": "(Fim)"
},
+ "End": {
+ "message": "Fim",
+ "description": "Button that skips to the end of a segment"
+ },
"hiddenDueToDownvote": {
- "message": "oculto: Downvote"
+ "message": "oculto: voto negativo"
},
"hiddenDueToDuration": {
"message": "oculto: muito curto"
@@ -834,7 +861,10 @@
},
"channelDataNotFound": {
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
- "message": "O ID do canal ainda não foi carregado. Se você estiver usando um vídeo embutido, tente usar a página inicial do YouTube. Isso também pode ser causado por mudanças no layout do YouTube, se você achar que este é o caso, faça um comentário aqui:"
+ "message": "O ID do canal ainda não foi carregado. Se você estiver usando um vídeo incorporado, tente usar a página inicial do YouTube. Isso também pode ser causado por mudanças no layout do YouTube, se este for o caso, comente aqui:"
+ },
+ "invidiousPermissionRefresh": {
+ "message": "O navegador revogou a permissão necessária para funcionar em Invidious e em outros sites de terceiros. Por favor, clique no botão abaixo para reativar essa permissão."
},
"acceptPermission": {
"message": "Aceitar permissão"
@@ -846,25 +876,32 @@
"message": "Falha na solicitação de permissão, você clicou em negar?"
},
"adblockerIssueWhitelist": {
- "message": "Se você não consegue resolver isso, desative a configuração 'Forçar Verificação do Canal Antes de Pular', pois o SponsorBlock não pode recuperar as informações deste vídeo"
+ "message": "Se você não consegue resolver isso, desative a opção 'Forçar verificação do canal antes de pular', pois o SponsorBlock não pode recuperar as informações deste vídeo"
},
"forceChannelCheck": {
- "message": "Forçar Verificação do Canal Antes de Pular"
+ "message": "Forçar verificação do canal antes de pular"
},
"whatForceChannelCheck": {
- "message": "Por padrão, isso pulará os seguimentos imediatamente, mesmo antes de saber qual é o canal. Por padrão, alguns seguimentos no inicio do vídeo podem ser ignorados nos canais da lista branca. Habilitar esta opção evitará isso, mas fará com que todos os pulos tenham um ligeiro atraso, já que obter o channelID pode levar algum tempo. Este atraso pode não ser perceptível se você tiver internet rápida."
+ "message": "Por padrão, ele pulará segmentos imediatamente antes mesmo de saber qual é o canal. Alguns segmentos no início do vídeo podem ser ignorados nos canais da lista de permissões. A ativação dessa opção evitará isso, mas irá fazer com que todos os pulos tenham um pequeno atraso, pois a obtenção do ID do canal pode levar algum tempo. Esse atraso pode ser imperceptível se você possuir uma internet rápida."
},
"forceChannelCheckPopup": {
- "message": "Considere Ativar a \"Forçar Verificação de Canal Antes de Pular\""
+ "message": "Considere ativar \"Forçar verificação do canal antes de pular\""
},
"downvoteDescription": {
- "message": "Tempo errado ou incorreto"
+ "message": "Tempo errado/incorreto"
+ },
+ "incorrectVote": {
+ "message": "Incorreto"
+ },
+ "harmfulVote": {
+ "message": "Nocivo",
+ "description": "Used for chapter segments when the text is harmful/offensive to remove it faster"
},
"incorrectCategory": {
- "message": "Mudar Categoria"
+ "message": "Mudar categoria"
},
"nonMusicCategoryOnMusic": {
- "message": "Este vídeo é categorizado como música. Tem certeza de que isto tem um patrocinador? Se este é realmente um \"Segmento Não Musical\", abra as opções da extensão e habilite esta categoria. Assim você pode enviar este segmento como \"Não-Musical\" ao invés de patrocinador. Por favor leia as diretrizes se estiver confuso."
+ "message": "Esse vídeo é categorizado como música. Tem certeza de que é patrocinado? Se realmente for um trecho sem música, abra as opções da extensão e ative a categoria. Assim, você pode enviar esse segmento como \"sem música\" em vez de \"patrocinador\". Leia as diretrizes se tiver dúvidas."
},
"multipleSegments": {
"message": "Múltiplos segmentos"
@@ -905,6 +942,21 @@
"hideForever": {
"message": "Ocultar para sempre"
},
+ "warningChatInfo": {
+ "message": "Percebemos que você estava cometendo alguns erros comuns. Apreciamos muito o seu trabalho até agora, mas nos esforçamos para alcançar a perfeição aqui, então mesmo os pequenos erros são importantes :)"
+ },
+ "warningTitle": {
+ "message": "Você recebeu um aviso"
+ },
+ "questionButton": {
+ "message": "Eu tenho uma dúvida"
+ },
+ "warningConfirmButton": {
+ "message": "Eu entendo o motivo"
+ },
+ "warningError": {
+ "message": "Erro ao tentar reconhecer o aviso:"
+ },
"Donate": {
"message": "Doar"
},
@@ -912,37 +964,37 @@
"message": "Ajude a financiar o desenvolvimento"
},
"hideDonationLink": {
- "message": "Ocultar o Link de Doação"
+ "message": "Ocultar o link de doação"
},
"darkModeOptionsPage": {
- "message": "Modo Escuro na página de Opções"
+ "message": "Modo escuro na página de opções"
},
"helpPageThanksForInstalling": {
"message": "Obrigado por instalar o SponsorBlock."
},
"helpPageReviewOptions": {
- "message": "Por favor revise as opções abaixo"
+ "message": "Por favor, revise as opções abaixo"
},
"helpPageFeatureDisclaimer": {
- "message": "Muitoa recursos são desativados por padrão. Se você deseja pular introduções, encerramentos, usar o Invidious, etc, ative as opções abaixo. Você também pode ocultar/mostrar elementos da interface."
+ "message": "Muitos recursos são desativados por padrão. Se você deseja pular introduções, encerramentos, usar o Invidious, etc., ative as opções abaixo. Você também pode ocultar/mostrar elementos da interface."
},
"helpPageHowSkippingWorks": {
"message": "Como a função pular funciona"
},
"helpPageHowSkippingWorks1": {
- "message": "Segmentos do vídeo serão pulados automaticamente se forem encontrados na base de dados. Você pode abrir a pop-up clicando no ícone da extensão para ter uma prévia de quais são."
+ "message": "Segmentos do vídeo serão pulados automaticamente se forem encontrados na base de dados. Você pode abrir o pop-up clicando no ícone da extensão para ter uma prévia de quais são."
},
"helpPageHowSkippingWorks2": {
- "message": "Sempre que você pular um segmento, você receberá um aviso. Se o tempo estiver errado vote contra clicando no voto negativo! Você também pode votar na pop-up."
+ "message": "Sempre que você pular um segmento, você receberá um aviso. Se o tempo estiver errado vote contra clicando no voto negativo! Você também pode votar no pop-up."
},
"Submitting": {
"message": "Enviando"
},
"helpPageSubmitting1": {
- "message": "O envio pode ser feito no pop-up apertando o botão \"Segmento começa Agora\" ou no reprodutor de vídeo com os botões no reprodutor."
+ "message": "O envio pode ser feito no pop-up apertando o botão \"O segmento começa agora\" ou no reprodutor de vídeo com os botões no reprodutor."
},
"helpPageSubmitting2": {
- "message": "Clicar no botão inicio indica o começo de um segmento e clicar no ícone parar indica o fim. Você pode preparar vários patrocinadores antes de clicar em enviar. Clicar no botão upload irá enviar. Clicar no lixo irá excluir."
+ "message": "Clicar no botão de começar indica o início de um segmento e clicar no ícone de parada indica o fim. Você pode preparar vários patrocinadores antes de enviar. Clicar no botão de enviar enviará. Clicar na lata de lixo excluirá."
},
"Editing": {
"message": "Editando"
@@ -978,22 +1030,22 @@
"message": "Saiba mais"
},
"FullDetails": {
- "message": "Ver Detalhes Completos"
+ "message": "Detalhes completos"
},
"CopyDownvoteButtonInfo": {
- "message": "Dá voto negativo e cria uma cópia local para você reenviar"
+ "message": "Vota negativamente e cria uma cópia local para você reenviar"
},
"OpenCategoryWikiPage": {
- "message": "Abrir a wiki dessa categoria."
+ "message": "Abrir a página wiki desta categoria."
},
"CopyAndDownvote": {
- "message": "Copiar e dar voto negativo"
+ "message": "Copiar e votar negativamente"
},
"ContinueVoting": {
"message": "Continuar votando"
},
"ChangeCategoryTooltip": {
- "message": "Isto irá aplicar instantaneamente seus segmentos"
+ "message": "Isto irá aplicar instantaneamente aos seus segmentos"
},
"downvote": {
"message": "Voto negativo"
@@ -1014,7 +1066,7 @@
"message": "Use a roda do mouse enquanto mantêm o cursor sobre a caixa de edição para ajustar o tempo rapidamente. Combinações das teclas ctrl e shift podem ser usadas para refinar as mudanças."
},
"categoryPillNewFeature": {
- "message": "Novo! Veja quando um vídeo é inteiramente patrocinado ou de autopromoção"
+ "message": "Novo! Veja quando um vídeo é inteiramente patrocinado ou de auto-promoção"
},
"dayAbbreviation": {
"message": "d",
@@ -1033,7 +1085,7 @@
"description": "Appears in Options as a tab header for options related to GUI and sounds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
},
"optionsTabKeyBinds": {
- "message": "Atalhos de teclado",
+ "message": "Teclas de atalho",
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
},
"optionsTabBackup": {
@@ -1041,11 +1093,11 @@
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
},
"optionsTabAdvanced": {
- "message": "Miscelânea",
+ "message": "Diversos",
"description": "Appears in Options as a tab header for advanced/niche options. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
},
"noticeVisibilityLabel": {
- "message": "Aparência da notificação de pulo",
+ "message": "Quando mostrar aviso de pulo",
"description": "Option label"
},
"unbind": {
@@ -1062,7 +1114,7 @@
"message": "Este já é um atalho padrão do YouTube. Tem certeza que deseja utilizá-lo?"
},
"betaServerWarning": {
- "message": "Os Servidores BETA estão ativos!"
+ "message": "O servidor BETA está habilitado!"
},
"openOptionsPage": {
"message": "Abrir página de opções"
@@ -1083,9 +1135,50 @@
"message": "Importar",
"description": "Button to initiate importing segments. Appears under the textbox where they paste in the data"
},
+ "redeemSuccess": {
+ "message": "Resgatado com sucesso!"
+ },
+ "redeemFailed": {
+ "message": "A chave de licença é inválida"
+ },
+ "hideUpsells": {
+ "message": "Ocultar opções não disponíveis sem pagamento extra"
+ },
+ "chooseACountry": {
+ "message": "Escolha um país"
+ },
+ "noDiscount": {
+ "message": "Você não se qualifica para um desconto"
+ },
+ "discountLink": {
+ "message": "Link para desconto (veja o preço rosa)"
+ },
"selectYourCountry": {
"message": "Selecione o seu país"
},
+ "cantAfford": {
+ "message": "Se você não puder comprar uma licença, clique {aqui} para ver se você tem direito a um desconto",
+ "description": "Keep the curly braces. The word 'here' should be translated as well."
+ },
+ "patreonSignIn": {
+ "message": "Entrar com Patreon"
+ },
+ "redeem": {
+ "message": "Resgatar"
+ },
+ "joinOnPatreon": {
+ "message": "Inscreva-se no Patreon"
+ },
+ "oneTimePurchase": {
+ "message": "Compra única"
+ },
+ "enterLicenseKey": {
+ "message": "Inserir chave de licença"
+ },
+ "unsubmittedSegmentCounts": {
+ "message": "Você tem atualmente {0} em {1}",
+ "description": "Example: You currently have 12 unsubmitted segments on 5 videos"
+ },
"unsubmittedSegmentCountsZero": {
"message": "No momento, você não tem segmentos não enviados",
"description": "Replaces 'unsubmittedSegmentCounts' string when there are no unsubmitted segments"
@@ -1107,11 +1200,11 @@
"description": "Example: You currently have 12 unsubmitted segments on 5 *videos*"
},
"clearUnsubmittedSegments": {
- "message": "Excluir todos os segmentos",
+ "message": "Limpar todos os segmentos",
"description": "Label for a button in settings"
},
"clearUnsubmittedSegmentsConfirm": {
- "message": "Tem certeza de que deseja excluir todos os segmentos não enviados?",
+ "message": "Tem certeza de que deseja limpar todos os segmentos não enviados?",
"description": "Confirmation message for the Clear unsubmitted segments button"
},
"showUnsubmittedSegments": {
@@ -1123,11 +1216,11 @@
"description": "Show/hide button for the unsubmitted segments list"
},
"videoID": {
- "message": "ID do Vídeo",
+ "message": "ID do vídeo",
"description": "Header of the unsubmitted segments list"
},
"segmentCount": {
- "message": "Número de segmentos",
+ "message": "Contagem de segmentos",
"description": "Header of the unsubmitted segments list"
},
"actions": {
@@ -1136,5 +1229,11 @@
},
"exportSegmentsAsURL": {
"message": "Compartilhar como URL"
+ },
+ "segmentFetchFailureWarning": {
+ "message": "Alerta: o servidor ainda não respondeu com segmentos. Pode ser que os segmentos desse vídeo já tenham sido enviados, mas ainda não foram recebidos devido a problemas do servidor."
+ },
+ "allowScrollingToEdit": {
+ "message": "Permitir rolagem para editar tempos"
}
}
diff --git a/public/_locales/pt_PT/messages.json b/public/_locales/pt_PT/messages.json
index f6bc5bd6..4f9795b8 100644
--- a/public/_locales/pt_PT/messages.json
+++ b/public/_locales/pt_PT/messages.json
@@ -128,6 +128,12 @@
"closePopup": {
"message": "Fechar Popup"
},
+ "closeIcon": {
+ "message": "Ícone de Fechar"
+ },
+ "OpenSubmissionMenu": {
+ "message": "Abrir Menu de Envio"
+ },
"sortSegments": {
"message": "Ordenar Segmentos"
},
@@ -246,6 +252,9 @@
"whatRefetchWhenNotFound": {
"message": "Se o vídeo for novo e nenhum segmento for encontrado, continuaremos a monitorizar enquanto assiste."
},
+ "enableShowCategoryWithoutPermission": {
+ "message": "Mostrar categorias no menu de submissão mesmo sem permissão de submissão"
+ },
"whatShowCategoryWithoutPermission": {
"message": "Algumas categorias requerem permissão para submeter devido aos requisitos mínimos de reputação"
},
@@ -267,6 +276,16 @@
"noticeVisibilityMode2": {
"message": "Todos os avisos de ignorar em tamanho pequeno"
},
+ "noticeVisibilityMode3": {
+ "message": "Avisos pequenos quando ignorado automaticamente"
+ },
+ "noticeVisibilityMode4": {
+ "message": "Todos os avisos de ignorar em tamanho pequeno"
+ },
+ "longDescription": {
+ "message": "SponsorBlock permite-lhe ignorar os patrocinadores, intros, outros, lembretes de subscrição, e outras partes irritantes dos vídeos do YouTube. SponsorBlock é uma extensão de browser de origem pública que permite a qualquer pessoa submeter o tempo de início e fim dos segmentos patrocinados e outros segmentos dos vídeos do YouTube. Uma vez que uma pessoa submeta esta informação, todos os outros com esta extensão saltarão diretamente sobre o segmento patrocinado. Também se pode saltar sobre secções não musicais de vídeos musicais.",
+ "description": "Full description of the extension on the store pages."
+ },
"website": {
"message": "Site",
"description": "Used on Firefox Store Page"
@@ -275,6 +294,18 @@
"message": "Código-fonte",
"description": "Used on Firefox Store Page"
},
+ "noticeUpdate": {
+ "message": "O aviso foi atualizado!",
+ "description": "The first line of the message displayed after the notice was upgraded."
+ },
+ "noticeUpdate2": {
+ "message": "Se mesmo assim não gostar, carregue no botão nunca mostrar.",
+ "description": "The second line of the message displayed after the notice was upgraded."
+ },
+ "setSkipShortcut": {
+ "message": "Saltar segmento",
+ "description": "Keybind label"
+ },
"setStartSponsorShortcut": {
"message": "Iniciar/parar segmento",
"description": "Keybind label"
@@ -291,6 +322,22 @@
"message": "Capítulo anterior",
"description": "Keybind label"
},
+ "keybindDescription": {
+ "message": "Selecione uma chave digitando-a e escolha qualquer chave modificadora que deseje utilizar."
+ },
+ "0": {
+ "message": "Tempo limite de conexão. Verifique a sua conexão com a internet. Se a sua internet está a funcionar, o servidor provavelmente está sobrecarregado ou desligado."
+ },
+ "disableSkipping": {
+ "message": "Saltar está ativado"
+ },
+ "enableSkipping": {
+ "message": "Saltar está desativado"
+ },
+ "yourWork": {
+ "message": "O seu trabalho",
+ "description": "Used to describe the section that will show you the statistics from your submissions."
+ },
"502": {
"message": "O servidor parece estar sobrecarregado. Tente novamente em alguns segundos."
},
@@ -325,6 +372,10 @@
"message": "{0} silenciado",
"description": "Example: Sponsor Muted"
},
+ "skipped_to_category": {
+ "message": "Avançar para {0}",
+ "description": "Used for skipping to things (Skipped to Highlight)"
+ },
"minLower": {
"message": "minuto"
},
@@ -345,6 +396,9 @@
"message": " das suas vidas",
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
},
+ "statusReminder": {
+ "message": "Verificar status.sponsor.ajay.app para estado do servidor."
+ },
"setUserID": {
"message": "Definir UserID Privado"
},
@@ -437,6 +491,10 @@
"disable": {
"message": "Desativar"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Mostrar etiquetas nas miniaturas de vídeo também",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"category": {
"message": "Categoria"
},
@@ -553,5 +611,8 @@
},
"openOptionsPage": {
"message": "Abrir página de opções"
+ },
+ "segmentFetchFailureWarning": {
+ "message": "Aviso: O servidor ainda não respondeu com segmentos. Pode, na verdade, estarem segmentos já submetidos neste vídeo, mas não os tenha recebido devido a problemas com o servidor."
}
}
diff --git a/public/_locales/ro/messages.json b/public/_locales/ro/messages.json
index 727601ab..81bb27df 100644
--- a/public/_locales/ro/messages.json
+++ b/public/_locales/ro/messages.json
@@ -1145,10 +1145,6 @@
"selectYourCountry": {
"message": "Selectaţi ţara"
},
- "alreadyDonated": {
- "message": "Dacă ai donat orice sumă înainte, poți revendica acces gratuit prin e-mail:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Dacă nu vă puteți permite să achiziționați o licență, faceți clic pe {aici} pentru a vedea dacă sunteți eligibil pentru o reducere",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1168,20 +1164,6 @@
"enterLicenseKey": {
"message": "Introdu cheia de licență"
},
- "chaptersPage1": {
- "message": "Funcția SponsorBlock crowd-sourted capitol este disponibilă doar pentru persoanele care achiziționează o licență, fie persoanelor cărora li se acordă acces gratuit la contribuţiile lor anterioare"
- },
- "chaptersPage2": {
- "message": "Notă: Permisiunea de a trimite capitole este încă bazată pe reputația calculată. Achiziționarea unei licențe vă permite doar să vizualizați capitolele prezentate de alții",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Funcție nouă: Capitole personalizate din surse colective. Acestea sunt secțiuni personalizate în videoclipuri care pot fi stivuite pentru a deveni din ce în ce mai precise. Cumpără o licență pentru a vizualiza capitolele trimise pe acest videoclip, cum ar fi: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Funcție nouă: Capitole personalizate din surse colective. Acestea sunt secțiuni personalizate în videoclipuri care pot fi stivuite pentru a deveni din ce în ce mai precise. Ai acces gratuit, activeaz-o in opțiuni."
- },
"unsubmittedSegmentCounts": {
"message": "Ai în prezent {0} pe {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1237,9 +1219,6 @@
"exportSegmentsAsURL": {
"message": "Distribuie ca URL"
},
- "segmentFetchFailureWarning": {
- "message": "Atenție: Serverul nu a răspuns încă cu segmente. Ar putea fi segmente în acest videoclip deja trimise, dar pur și simplu nu le-ai primit din cauza problemelor cu serverul."
- },
"allowScrollingToEdit": {
"message": "Permite derularea la Editarea Timpilor"
}
diff --git a/public/_locales/ru/messages.json b/public/_locales/ru/messages.json
index 3048f724..c67a3fc1 100644
--- a/public/_locales/ru/messages.json
+++ b/public/_locales/ru/messages.json
@@ -117,7 +117,7 @@
"message": "Ошибка соединения. Код ошибки: "
},
"segmentsStillLoading": {
- "message": "Сегменты все еще загружаются..."
+ "message": "Сегменты всё ещё загружаются..."
},
"clearTimes": {
"message": "Очистить сегменты"
@@ -162,7 +162,7 @@
"message": "Отправить"
},
"submissionEditHint": {
- "message": "Редактирование сегментов появится после нажатия на кнопку \"Отправить\"",
+ "message": "Редактирование сегментов появится после нажатия на кнопку «Отправить»",
"description": "Appears in the popup to inform them that editing has been moved to the video player."
},
"popupHint": {
@@ -205,7 +205,7 @@
"message": "Эта настройка скрывает кнопки для отправки сегментов, расположенные в плеере YouTube."
},
"showSkipButton": {
- "message": "Не скрывать кнопку \"Пропустить до важного\" в плеере YouTube"
+ "message": "Не скрывать кнопку «Пропустить до важного» в плеере YouTube"
},
"showInfoButton": {
"message": "Показывать кнопку информации в плеере YouTube"
@@ -214,7 +214,7 @@
"message": "Скрыть кнопку информации в плеере YouTube"
},
"autoHideInfoButton": {
- "message": "Автоматически скрывать кнопку Информация"
+ "message": "Автоматически скрывать кнопку информации"
},
"hideDeleteButton": {
"message": "Скрыть кнопку удаления в плеере YouTube"
@@ -386,7 +386,7 @@
"message": "Аудио уведомление при пропуске"
},
"audioNotificationDescription": {
- "message": "Аудио уведомление о пропуске будет воспроизводиться каждый раз, когда сегмент пропущен. Если отключено (или автоматический пропуск отключён), звук не будет воспроизводиться."
+ "message": "Звуковое уведомление при пропуске будет воспроизводиться каждый раз, когда сегмент пропущен. Если отключено (или автоматический пропуск отключён), звук не будет воспроизводиться."
},
"showTimeWithSkips": {
"message": "Показывать длительность без сегментов"
@@ -797,6 +797,10 @@
"message": "Показывать иконку, когда всё видео является рекламой",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Также показывать категории на превью",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Цвет неотправленного сегмента",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1085,7 +1089,7 @@
"description": "Appears in Options as a tab header for keybinds. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
},
"optionsTabBackup": {
- "message": "Бэкап/Восстановление",
+ "message": "Копия/Восстановление",
"description": "Appears in Options as a tab header for options related to saving/restoring your settings. To fit inside the button, it should not be longer than ~20-25 characters (depending on their width)."
},
"optionsTabAdvanced": {
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Выберите вашу страну"
},
- "alreadyDonated": {
- "message": "Если вы когда-то жертвовали любую сумму, вы можете получить доступ, отправив электронное письмо сюда:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Если вы не можете позволить себе приобрести лицензию, нажмите {сюда}, чтобы узнать, имеете ли вы право на скидку",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Введите лицензионный ключ"
},
- "chaptersPage1": {
- "message": "Функция SponsorBlock \"эпизоды от сообщества\" доступна только для тех, кто приобрёл лицензию, и тех, кому был предоставлен бесплатный доступ благодаря их прошлым вкладам"
- },
- "chaptersPage2": {
- "message": "Примечание: разрешение на отправку эпизодов все еще основывается на рассчитываемой репутации. Приобретая лицензию, вы можете просматривать только эпизоды, отправленные другими",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Новая функция: эпизоды от сообщества. Это разделы видео с пользовательскими названиями, которые могут быть помещены внутри других эпизодов для более точной разметки. Приобретите лицензию, чтобы видеть названия эпизодов, как, например, эпизоды в этом видео: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Новая функция: эпизоды от сообщества. Это разделы видео с пользовательскими названиями, которые могут быть помещены внутри других эпизодов для более точной разметки. У вас есть бесплатный доступ к этой функции, включите её в настройках."
- },
"unsubmittedSegmentCounts": {
"message": "Сейчас у вас есть {0} в {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1245,7 +1231,7 @@
"message": "Поделиться ссылкой"
},
"segmentFetchFailureWarning": {
- "message": "Внимание: Сервер еще не прислал существующие сегменты. В этом видео уже могут быть отправленные сегменты, но вы их ещё не получили из-за проблем с сервером."
+ "message": "Внимание: Сервер ещё не прислал существующие сегменты. Для этого видео уже могут быть существующие сегменты, но вы их ещё не получили из-за проблем с сервером."
},
"allowScrollingToEdit": {
"message": "Разрешить прокрутку для редактирования времени"
diff --git a/public/_locales/sk/messages.json b/public/_locales/sk/messages.json
index 8f5ab0cb..5ca1855f 100644
--- a/public/_locales/sk/messages.json
+++ b/public/_locales/sk/messages.json
@@ -1149,10 +1149,6 @@
"selectYourCountry": {
"message": "Vyberte krajinu"
},
- "alreadyDonated": {
- "message": "Ak ste už v minulosti prispeli, získajte voľný prístup napísaním emailu:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Ak si nemôžete dovoliť kúpiť licenciu, kliknite {sem} a zistite, či máte nárok na zľavu",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1172,20 +1168,6 @@
"enterLicenseKey": {
"message": "Zadajte licenčný kľúč"
},
- "chaptersPage1": {
- "message": "Crowd-sourcované kapitovly v SponsorBlock-u sú dostupné len po zakúpení licencie alebo zadarmo pre ľudí, ktorí už v minulosti prispeli"
- },
- "chaptersPage2": {
- "message": "Poznámka: Povolenie na predkladanie kapitol je stále založené na vypočítanej reputácii. Zakúpenie licencie vám umožní iba prezerať kapitoly, ktoré odoslali iní",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Nová funkcia: Crowd-sourcované vlastné kapitoly. Toto sú sekcie videa s vlastnými názvami, ktoré môžu byť pre väčšiu presnosť vyskladané. Ak si kúpite licenciu, uvidíte kapitoly v tomto videu, ako napr.: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Nová funkcia: Vlastné kapitoly z verejných zdrojov. Ide o vlastnoručne pomenované časti vo videách, ktoré sa dajú ukladať na seba a spresňovať. Prístup máte zadarmo, povoľte v možnostiach."
- },
"unsubmittedSegmentCounts": {
"message": "V súčasnosti máte {0} na {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1229,8 +1211,5 @@
"videoID": {
"message": "ID videa",
"description": "Header of the unsubmitted segments list"
- },
- "segmentFetchFailureWarning": {
- "message": "Varovanie: Zo servera sa ešte nenahrali segmenty. V tomto videu už môžu byť vytvorené segmenty, ale vzhľadom na problémy so serverom ešte nemuseli byť nahraté."
}
}
diff --git a/public/_locales/sv/messages.json b/public/_locales/sv/messages.json
index ad123a65..b1513d3d 100644
--- a/public/_locales/sv/messages.json
+++ b/public/_locales/sv/messages.json
@@ -439,7 +439,7 @@
"message": "Stöd för tredjeparts YouTube-webbplatser"
},
"supportOtherSitesDescription": {
- "message": "Stöd tredjeparts YouTube-klienter. För att aktivera support måste du acceptera de extra behörigheterna.",
+ "message": "Stöd tredjeparts YouTube-klienter. För att aktivera stöd måste du acceptera de extra behörigheterna.",
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
},
"supportedSites": {
@@ -797,6 +797,10 @@
"message": "Visa en ikon när hela videon är en annons",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Visa även etiketter på videominiatyrbilder",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Färg på oinskickade",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Välj ditt land"
},
- "alreadyDonated": {
- "message": "Om du har donerat tidigare kan du lösa in fri åtkomst genom att skicka e-post till:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Om du inte har råd att köpa en licens kan du klicka {här} för att se om du är berättigad till rabatt",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Ange licensnyckel"
},
- "chaptersPage1": {
- "message": "SponsorBlock crowd-sourced kapitelfunktionen är endast tillgänglig för personer som köper en licens eller för de personer som beviljats gratis tillgång på grund av att de bidragit tidigare"
- },
- "chaptersPage2": {
- "message": "Obs: Tillstånd att skicka in kapitel är fortfarande baserat på beräknat rykte. Köpa en licens låter dig bara visa kapitel som lämnats in av andra",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Ny funktion: Crowd-sourced anpassade kapitel. Dessa är anpassade namngivna avsnitt i videor som kan staplas för att få mer och mer exakt. Köp en licens för att se de kapitel som lämnats på denna video såsom: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Ny funktion: Crowd-sourced anpassade kapitel. Dessa är anpassade namngivna avsnitt i videor som kan staplas för att få mer och mer exakt. För dig är det gratis, aktivera det i alternativen."
- },
"unsubmittedSegmentCounts": {
"message": "Du har för närvarande {0} på {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
diff --git a/public/_locales/tr/messages.json b/public/_locales/tr/messages.json
index 0f6072ea..e9ebd5ac 100644
--- a/public/_locales/tr/messages.json
+++ b/public/_locales/tr/messages.json
@@ -797,6 +797,10 @@
"message": "Video bütünüyle bir reklamsa simge göster",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Etiketleri, video küçük resimlerinde de göster",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Gönderilmemiş Renk",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "Ülkenizi seçin"
},
- "alreadyDonated": {
- "message": "Şimdiye kadar herhangi bir miktarda bağış yaptıysanız, bu adrese e-posta göndererek ücretsiz erişim hakkına sahip olabilirsin:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Lisans satın almaya gücünüz yetmiyorsa, indirim almaya uygun olup olmadığınızı görmek için {here} tıklayın",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "Lisans Anahtarını Girin"
},
- "chaptersPage1": {
- "message": "SponsorBlock'un topluluk kaynaklı bölümler özelliği yalnızca lisans satın alan veya geçmiş katkılarından dolayı ücretsiz erişim hakkı verilen kişiler tarafından kullanılabilir"
- },
- "chaptersPage2": {
- "message": "Not: Bölüm gönderme izni hala hesaplanan itibara dayanmaktadır. Bir lisans satın almak, yalnızca başkaları tarafından gönderilen bölümleri görüntülemenize izin verir",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Yeni Özellik: Topluluk kaynaklı özel bölümler. Bunlar, giderek daha doğru hale gelmek için istiflenebilen videolardaki özel adlandırılmış bölümlerdir. Bu videodaki gibi gönderilen bölümleri görüntülemek için bir lisans satın alın: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Yeni Özellik: Topluluk kaynaklı özel bölümler. Bunlar, giderek daha doğru hale gelmek için istiflenebilen videolardaki özel adlandırılmış bölümlerdir. Ücretsiz erişiminiz var, seçeneklerden etkinleştirin."
- },
"unsubmittedSegmentCounts": {
"message": "Şu anda {1} da {0} var",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1245,7 +1231,7 @@
"message": "URL olarak paylaş"
},
"segmentFetchFailureWarning": {
- "message": "Uyarı: Sunucu henüz bölümlerle yanıt vermedi. Aslında bu videoda zaten gönderilmiş bölümler olabilir, ancak sunucudaki sorunlar nedeniyle bunları almadınız."
+ "message": "Dikkat: Sunucu henüz kısımlarla yanıt vermedi. Aslında bu videoda zaten gönderilmiş bölümler olabilir, ancak sunucudaki sorunlar nedeniyle bunları almadınız."
},
"allowScrollingToEdit": {
"message": "Zamanları Düzenlemek İçin Kaydırmaya İzin Ver"
diff --git a/public/_locales/uk/messages.json b/public/_locales/uk/messages.json
index ba89a473..78ae26dd 100644
--- a/public/_locales/uk/messages.json
+++ b/public/_locales/uk/messages.json
@@ -131,6 +131,9 @@
"closeIcon": {
"message": "Закрити іконку"
},
+ "OpenSubmissionMenu": {
+ "message": "Відкрити меню надсилання"
+ },
"sortSegments": {
"message": "Сортувати сегменти"
},
@@ -435,6 +438,10 @@
"supportOtherSites": {
"message": "Підтримувати сторонні YouTube-сайти"
},
+ "supportOtherSitesDescription": {
+ "message": "Підтримка сторонніх клієнтів YouTube. Щоб увімкнути підтримку, ви повинні прийняти додаткові дозволи.",
+ "description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
+ },
"supportedSites": {
"message": "Підтримувані сайти: "
},
@@ -790,6 +797,10 @@
"message": "Показувати значок, коли все відео є рекламою",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "Показувати мітки на мініатюрах відео",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "Колір не надісланого сегмента",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1145,10 +1156,6 @@
"selectYourCountry": {
"message": "Виберіть вашу країну"
},
- "alreadyDonated": {
- "message": "Якщо ви вже пожертвували будь-яку суму, ви можете отримати безкоштовний доступ, надіславши електронний лист:\nВажливо:Після двокрапки вказується адреса електронної пошти",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "Якщо ви не можете дозволити собі придбати ліцензію, натисніть {тут}, щоб дізнатися, чи маєте ви право на знижку",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1168,20 +1175,6 @@
"enterLicenseKey": {
"message": "Введіть ліцензійний ключ"
},
- "chaptersPage1": {
- "message": "SponsorBlock функція краудсорсингу розділів доступна лише для людей, які придбали ліцензію, або для людей, яким надано безкоштовний доступ через їхні попередні внески"
- },
- "chaptersPage2": {
- "message": "Примітка: Дозвіл надсилати глави все ще базується на обчисленій репутації. Придбання ліцензії дозволяє лише переглядати розділи, надіслані іншими",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "Нова функція: краудсорсингові користувацькі розділи. Це розділи у відео зі спеціальними назвами, які можна складати, щоб отримати точніші результати. Придбайте ліцензію, щоб переглядати розділи цього відео, наприклад: ",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "Нова функція: краудсорсингові користувацькі розділи. Це розділи у відео зі спеціальними назвами, які можна складати, щоб отримати точніші результати. Ви маєте безкоштовний доступ, увімкніть параметр."
- },
"unsubmittedSegmentCounts": {
"message": "Наразі у вас є {0} на {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
@@ -1237,9 +1230,6 @@
"exportSegmentsAsURL": {
"message": "Поділитися посиланням"
},
- "segmentFetchFailureWarning": {
- "message": "Попередження: сервер ще не завантажив сегменти. Можливо, у цьому відео вже є сегменти, але ви просто не отримали їх через проблеми з сервером."
- },
"allowScrollingToEdit": {
"message": "Дозволити прокручування для редагування часу"
}
diff --git a/public/_locales/zh_CN/messages.json b/public/_locales/zh_CN/messages.json
index 319170b6..b2ce9451 100644
--- a/public/_locales/zh_CN/messages.json
+++ b/public/_locales/zh_CN/messages.json
@@ -797,6 +797,10 @@
"message": "当整个视频都是广告时显示图标",
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
},
+ "fullVideoLabelsOnThumbnails": {
+ "message": "在视频缩略图上也显示标签",
+ "description": "Referring to the category pill that is shown on videos that are entirely sponsor or entirely selfpromo on recommended videos, in searches or on the homepage."
+ },
"previewColor": {
"message": "未提交颜色",
"description": "Referring to submissions that have not been sent to the server yet."
@@ -1152,10 +1156,6 @@
"selectYourCountry": {
"message": "选择所在国家/地区"
},
- "alreadyDonated": {
- "message": "如果您以前曾捐赠过任何金额,您可以通过电子邮件联系以获得使用权限:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "如果您无法负担得起许可证的价格,请点击 {here} 查看您是否有资格获得折扣",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1175,20 +1175,6 @@
"enterLicenseKey": {
"message": "输入注册码"
},
- "chaptersPage1": {
- "message": "SponsorBlock 的众包章节功能仅供付费或贡献突出的用户使用"
- },
- "chaptersPage2": {
- "message": "注意:提交章节的权限仍然基于信誉积分。购买许可证只允许您查看他人提交的章节",
- "description": "On the chapters page for getting access to the paid chapters feature"
- },
- "chapterNewFeature": {
- "message": "新功能:众包自定义章节。这些视频中自定义命名的部分可以叠加并获得更精确的信息。购买许可证以查看此视频的章节,例如:",
- "description": "After the comma, a list of chapters for this video will appear"
- },
- "chapterNewFeature2": {
- "message": "新功能:众包自定义章节。这些视频中自定义命名的部分可以叠加并获得更精确的信息。您有免费使用权限,请在选项中开启。"
- },
"unsubmittedSegmentCounts": {
"message": "您在 {1} 中有 {0}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
diff --git a/public/_locales/zh_TW/messages.json b/public/_locales/zh_TW/messages.json
index a8f0ba5c..69d67f09 100644
--- a/public/_locales/zh_TW/messages.json
+++ b/public/_locales/zh_TW/messages.json
@@ -131,6 +131,9 @@
"closeIcon": {
"message": "關閉圖示"
},
+ "OpenSubmissionMenu": {
+ "message": "開啟提交選單"
+ },
"sortSegments": {
"message": "排序片段"
},
@@ -1137,10 +1140,6 @@
"selectYourCountry": {
"message": "選擇國家"
},
- "alreadyDonated": {
- "message": "如果你在之前捐獻過任何金額,你可以發送電子郵件到以下地址以獲得免費存取權:",
- "description": "After the colon is an email address"
- },
"cantAfford": {
"message": "若你無法購買授權,請點 {here} 以檢查你是否可用優惠",
"description": "Keep the curly braces. The word 'here' should be translated as well."
@@ -1160,9 +1159,6 @@
"enterLicenseKey": {
"message": "請輸入授權金鑰"
},
- "chaptersPage1": {
- "message": "SponsorBlock 僅供有購買授權或在過去有貢獻者使用"
- },
"unsubmittedSegmentCounts": {
"message": "你現在在 {1} 上有 {0}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
diff --git a/public/content.css b/public/content.css
index bea78b17..0db991c9 100644
--- a/public/content.css
+++ b/public/content.css
@@ -783,6 +783,10 @@ input::-webkit-inner-spin-button {
align-items: center;
}
+.sponsorBlockCategoryPillTitle {
+ white-space: nowrap;
+}
+
.categoryPillClose {
display: none;
height: 10px;
diff --git a/src/background.ts b/src/background.ts
index ad5fe807..3f2ccfb7 100644
--- a/src/background.ts
+++ b/src/background.ts
@@ -79,6 +79,20 @@ chrome.runtime.onMessage.addListener(function (request, sender, callback) {
}
});
+chrome.runtime.onMessageExternal.addListener((request, sender, callback) => {
+ if (CompileConfig.extensionCommunicationAllowList.includes(sender.id)) {
+ if (request.message === "requestConfig") {
+ callback({
+ userID: Config.config.userID,
+ allowExpirements: Config.config.allowExpirements,
+ showDonationLink: Config.config.showDonationLink,
+ showUpsells: Config.config.showUpsells,
+ darkMode: Config.config.darkMode,
+ })
+ }
+ }
+});
+
chrome.runtime.onConnect.addListener((port) => {
if (port.name === "popup") {
chrome.tabs.query({
diff --git a/src/components/ChapterVoteComponent.tsx b/src/components/ChapterVoteComponent.tsx
index 37591f0c..73f14d06 100644
--- a/src/components/ChapterVoteComponent.tsx
+++ b/src/components/ChapterVoteComponent.tsx
@@ -1,6 +1,6 @@
import * as React from "react";
import Config from "../config";
-import { Category, SegmentUUID, SponsorTime } from "../types";
+import { ActionType, Category, SegmentUUID, SponsorTime } from "../types";
import ThumbsUpSvg from "../svg-icons/thumbs_up_svg";
import ThumbsDownSvg from "../svg-icons/thumbs_down_svg";
@@ -65,35 +65,39 @@ class ChapterVoteComponent extends React.Component<ChapterVoteProps, ChapterVote
this.tooltip.close();
this.tooltip = null;
} else {
- const referenceNode = chapterNode?.parentElement?.parentElement;
- if (referenceNode) {
- const outerBounding = referenceNode.getBoundingClientRect();
- const buttonBounding = (e.target as HTMLElement)?.parentElement?.getBoundingClientRect();
-
- this.tooltip = new Tooltip({
- referenceNode: chapterNode?.parentElement?.parentElement,
- prependElement: chapterNode?.parentElement,
- showLogo: false,
- showGotIt: false,
- bottomOffset: `${outerBounding.height + 25}px`,
- leftOffset: `${buttonBounding.x - outerBounding.x}px`,
- extraClass: "centeredSBTriangle",
- buttons: [
- {
- name: chrome.i18n.getMessage("incorrectVote"),
- listener: (event) => this.vote(event, 0, e.target as HTMLElement).then(() => {
- this.tooltip?.close();
- this.tooltip = null;
- })
- }, {
- name: chrome.i18n.getMessage("harmfulVote"),
- listener: (event) => this.vote(event, 30, e.target as HTMLElement).then(() => {
- this.tooltip?.close();
- this.tooltip = null;
- })
- }
- ]
- });
+ if (this.state.segment?.actionType === ActionType.Chapter) {
+ const referenceNode = chapterNode?.parentElement?.parentElement;
+ if (referenceNode) {
+ const outerBounding = referenceNode.getBoundingClientRect();
+ const buttonBounding = (e.target as HTMLElement)?.parentElement?.getBoundingClientRect();
+
+ this.tooltip = new Tooltip({
+ referenceNode: chapterNode?.parentElement?.parentElement,
+ prependElement: chapterNode?.parentElement,
+ showLogo: false,
+ showGotIt: false,
+ bottomOffset: `${outerBounding.height + 25}px`,
+ leftOffset: `${buttonBounding.x - outerBounding.x}px`,
+ extraClass: "centeredSBTriangle",
+ buttons: [
+ {
+ name: chrome.i18n.getMessage("incorrectVote"),
+ listener: (event) => this.vote(event, 0, e.target as HTMLElement).then(() => {
+ this.tooltip?.close();
+ this.tooltip = null;
+ })
+ }, {
+ name: chrome.i18n.getMessage("harmfulVote"),
+ listener: (event) => this.vote(event, 30, e.target as HTMLElement).then(() => {
+ this.tooltip?.close();
+ this.tooltip = null;
+ })
+ }
+ ]
+ });
+ }
+ } else {
+ this.vote(e, 0, e.target as HTMLElement)
}
}
}}>
diff --git a/src/components/SkipNoticeComponent.tsx b/src/components/SkipNoticeComponent.tsx
index b84c2b2d..9d7f450f 100644
--- a/src/components/SkipNoticeComponent.tsx
+++ b/src/components/SkipNoticeComponent.tsx
@@ -7,13 +7,13 @@ import NoticeTextSelectionComponent from "./NoticeTextSectionComponent";
import Utils from "../utils";
const utils = new Utils();
import { getSkippingText } from "../utils/categoryUtils";
-import { keybindToString } from "../utils/configUtils";
import ThumbsUpSvg from "../svg-icons/thumbs_up_svg";
import ThumbsDownSvg from "../svg-icons/thumbs_down_svg";
import PencilSvg from "../svg-icons/pencil_svg";
import { downvoteButtonColor, SkipNoticeAction } from "../utils/noticeUtils";
import { generateUserID } from "@ajayyy/maze-utils/lib/setup";
+import { keybindToString } from "@ajayyy/maze-utils/lib/config";
enum SkipButtonState {
Undo, // Unskip
diff --git a/src/components/options/KeybindComponent.tsx b/src/components/options/KeybindComponent.tsx
index 4d49c7f4..180d57f2 100644
--- a/src/components/options/KeybindComponent.tsx
+++ b/src/components/options/KeybindComponent.tsx
@@ -1,9 +1,8 @@
import * as React from "react";
import { createRoot, Root } from 'react-dom/client';
import Config from "../../config";
-import { Keybind } from "../../types";
import KeybindDialogComponent from "./KeybindDialogComponent";
-import { keybindEquals, keybindToString, formatKey } from "../../utils/configUtils";
+import { formatKey, Keybind, keybindEquals, keybindToString } from "@ajayyy/maze-utils/lib/config";
export interface KeybindProps {
option: string;
diff --git a/src/components/options/KeybindDialogComponent.tsx b/src/components/options/KeybindDialogComponent.tsx
index 7226dff2..2c5405f3 100644
--- a/src/components/options/KeybindDialogComponent.tsx
+++ b/src/components/options/KeybindDialogComponent.tsx
@@ -1,8 +1,7 @@
import * as React from "react";
import { ChangeEvent } from "react";
import Config from "../../config";
-import { Keybind } from "../../types";
-import { keybindEquals, formatKey } from "../../utils/configUtils";
+import { Keybind, formatKey, keybindEquals } from "@ajayyy/maze-utils/lib/config";
export interface KeybindDialogProps {
option: string;
diff --git a/src/config.ts b/src/config.ts
index 7f4e43df..f91024fc 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -1,8 +1,7 @@
import * as CompileConfig from "../config.json";
import * as invidiousList from "../ci/invidiouslist.json";
-import { Category, CategorySelection, CategorySkipOption, NoticeVisbilityMode, PreviewBarOption, SponsorTime, Keybind, VideoID, SponsorHideType } from "./types";
-import { keybindEquals } from "./utils/configUtils";
-import { ProtoConfig } from "@ajayyy/maze-utils/lib/config";
+import { Category, CategorySelection, CategorySkipOption, NoticeVisbilityMode, PreviewBarOption, SponsorTime, VideoID, SponsorHideType } from "./types";
+import { Keybind, ProtoConfig, keybindEquals } from "@ajayyy/maze-utils/lib/config";
import { HashedValue } from "@ajayyy/maze-utils/lib/hash";
export interface Permission {
diff --git a/src/content.ts b/src/content.ts
index 207c16af..a716eddf 100644
--- a/src/content.ts
+++ b/src/content.ts
@@ -6,7 +6,6 @@ import {
ChannelIDInfo,
ChannelIDStatus,
ContentContainer,
- Keybind,
ScheduledTime,
SegmentUUID,
SkipToTimeParams,
@@ -26,7 +25,6 @@ import { Message, MessageResponse, VoteResponse } from "./messageTypes";
import { SkipButtonControlBar } from "./js-components/skipButtonControlBar";
import { getStartTimeFromUrl } from "./utils/urlParser";
import { getControls, getExistingChapters, getHashParams, isVisible } from "./utils/pageUtils";
-import { isSafari, keybindEquals } from "./utils/configUtils";
import { CategoryPill } from "./render/CategoryPill";
import { AnimationUtils } from "./utils/animationUtils";
import { GenericUtils } from "./utils/genericUtils";
@@ -34,10 +32,10 @@ import { logDebug } from "./utils/logger";
import { importTimes } from "./utils/exporter";
import { ChapterVote } from "./render/ChapterVote";
import { openWarningDialog } from "./utils/warnings";
-import { waitFor } from "@ajayyy/maze-utils";
+import { isFirefoxOrSafari, waitFor } from "@ajayyy/maze-utils";
import { getFormattedTime } from "@ajayyy/maze-utils/lib/formating";
-import { setupVideoMutationListener, getChannelIDInfo, getVideo, refreshVideoAttachments, getIsAdPlaying, getIsLivePremiere, setIsAdPlaying, checkVideoIDChange, getVideoID, getYouTubeVideoID, setupVideoModule, checkIfNewVideoID, isOnInvidious, isOnMobileYouTube } from "@ajayyy/maze-utils/lib/video";
-import { StorageChangesObject } from "@ajayyy/maze-utils/lib/config";
+import { getChannelIDInfo, getVideo, getIsAdPlaying, getIsLivePremiere, setIsAdPlaying, checkVideoIDChange, getVideoID, getYouTubeVideoID, setupVideoModule, checkIfNewVideoID, isOnInvidious, isOnMobileYouTube } from "@ajayyy/maze-utils/lib/video";
+import { Keybind, StorageChangesObject, isSafari, keybindEquals } from "@ajayyy/maze-utils/lib/config";
import { findValidElement } from "@ajayyy/maze-utils/lib/dom"
import { getHash, HashedValue } from "@ajayyy/maze-utils/lib/hash";
import { generateUserID } from "@ajayyy/maze-utils/lib/setup";
@@ -661,6 +659,11 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
forcedSkipTime = forceVideoTime + 0.001;
}
+ // Don't pretend to be earlier than we are, could result in loops
+ if (forcedSkipTime !== null && forceVideoTime > forcedSkipTime) {
+ forcedSkipTime = null;
+ }
+
startSponsorSchedule(forcedIncludeIntersectingSegments, forcedSkipTime, forcedIncludeNonIntersectingSegments);
};
@@ -670,7 +673,7 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
let delayTime = timeUntilSponsor * 1000 * (1 / getVideo().playbackRate);
if (delayTime < 300) {
let forceStartIntervalTime: number | null = null;
- if (utils.isFirefox() && !isSafari() && delayTime > 100) {
+ if (isFirefoxOrSafari() && !isSafari() && delayTime > 100) {
forceStartIntervalTime = await waitForNextTimeChange();
}
@@ -687,7 +690,7 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
currentSkipInterval = setInterval(() => {
// Estimate delay, but only take the current time right after a change
// Current time remains the same for many "frames" on Firefox
- if (utils.isFirefox() && !lastKnownVideoTime.fromPause && startWaitingForReportedTimeToChange
+ if (isFirefoxOrSafari() && !lastKnownVideoTime.fromPause && startWaitingForReportedTimeToChange
&& reportedVideoTimeAtStart !== getVideo().currentTime) {
startWaitingForReportedTimeToChange = false;
const delay = getVirtualTime() - getVideo().currentTime;
@@ -697,7 +700,7 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
const intervalDuration = performance.now() - startIntervalTime;
if (intervalDuration + skipBuffer * 1000 >= delayTime || getVideo().currentTime >= skipTime[0]) {
clearInterval(currentSkipInterval);
- if (!utils.isFirefox() && !getVideo().muted) {
+ if (!isFirefoxOrSafari() && !getVideo().muted) {
// Workaround for more accurate skipping on Chromium
getVideo().muted = true;
getVideo().muted = false;
@@ -709,7 +712,7 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
} else {
logDebug(`Starting timeout to skip ${getVideo().currentTime} to skip at ${skipTime[0]}`);
- const offset = (utils.isFirefox() && !isSafari ? 300 : 150);
+ const offset = (isFirefoxOrSafari() && !isSafari() ? 300 : 150);
// Schedule for right before to be more precise than normal timeout
currentSkipSchedule = setTimeout(skippingFunction, Math.max(0, delayTime - offset));
}
@@ -863,7 +866,12 @@ function setupVideoListeners() {
updateVirtualTime();
clearWaitingTime();
- startSponsorSchedule();
+ // Sometimes looped videos loop back to almost zero, but not quite
+ if (getVideo().loop && getVideo().currentTime < 0.2) {
+ startSponsorSchedule(false, 0);
+ } else {
+ startSponsorSchedule();
+ }
} else {
updateActiveSegment(getVideo().currentTime);
@@ -919,7 +927,7 @@ function updateVirtualTime() {
lastKnownVideoTime.preciseTime = performance.now();
// If on Firefox, wait for the second time change (time remains fixed for many "frames" for privacy reasons)
- if (utils.isFirefox()) {
+ if (isFirefoxOrSafari()) {
let count = 0;
let rawCount = 0;
let lastTime = lastKnownVideoTime.videoTime;
@@ -988,7 +996,6 @@ function setupCategoryPill() {
async function sponsorsLookup(keepOldSubmissions = true) {
if (lookupWaiting) return;
- if (!getVideo() || !isVisible(getVideo())) refreshVideoAttachments();
//there is still no video here
if (!getVideo()) {
lookupWaiting = true;
@@ -999,8 +1006,6 @@ async function sponsorsLookup(keepOldSubmissions = true) {
return;
}
- setupVideoMutationListener();
-
const categories: string[] = Config.config.categorySelections.map((category) => category.name);
const extraRequestData: Record<string, unknown> = {};
@@ -1019,7 +1024,7 @@ async function sponsorsLookup(keepOldSubmissions = true) {
lastResponseStatus = response?.status;
if (response?.ok) {
- const recievedSegments: SponsorTime[] = JSON.parse(response.responseText)
+ const receivedSegments: SponsorTime[] = JSON.parse(response.responseText)
?.filter((video) => video.videoID === getVideoID())
?.map((video) => video.segments)?.[0]
?.map((segment) => ({
@@ -1027,7 +1032,7 @@ async function sponsorsLookup(keepOldSubmissions = true) {
source: SponsorSourceType.Server
}))
?.sort((a, b) => a.segment[0] - b.segment[0]);
- if (recievedSegments && recievedSegments.length) {
+ if (receivedSegments && receivedSegments.length) {
sponsorDataFound = true;
// Check if any old submissions should be kept
@@ -1035,13 +1040,13 @@ async function sponsorsLookup(keepOldSubmissions = true) {
for (let i = 0; i < sponsorTimes.length; i++) {
if (sponsorTimes[i].source === SponsorSourceType.Local) {
// This is a user submission, keep it
- recievedSegments.push(sponsorTimes[i]);
+ receivedSegments.push(sponsorTimes[i]);
}
}
}
const oldSegments = sponsorTimes || [];
- sponsorTimes = recievedSegments;
+ sponsorTimes = receivedSegments;
existingChaptersImported = false;
// Hide all submissions smaller than the minimum duration
@@ -1188,7 +1193,7 @@ function retryFetch(errorCode: number): void {
*/
function startSkipScheduleCheckingForStartSponsors() {
// switchingVideos is ignored in Safari due to event fire order. See #1142
- if ((!switchingVideos || isSafari) && sponsorTimes) {
+ if ((!switchingVideos || isSafari()) && sponsorTimes) {
// See if there are any starting sponsors
let startingSegmentTime = getStartTimeFromUrl(document.URL) || -1;
let found = false;
@@ -1333,9 +1338,9 @@ function videoElementChange(newVideo: boolean): void {
if (previewBar && !utils.findReferenceNode()?.contains(previewBar.container)) {
previewBar.remove();
previewBar = null;
-
- createPreviewBar();
}
+
+ createPreviewBar();
}
/**
@@ -2165,10 +2170,10 @@ async function sendSubmitMessage() {
const newSegments = sponsorTimesSubmitting;
try {
- const recievedNewSegments = JSON.parse(response.responseText);
- if (recievedNewSegments?.length === newSegments.length) {
- for (let i = 0; i < recievedNewSegments.length; i++) {
- newSegments[i].UUID = recievedNewSegments[i].UUID;
+ const receivedNewSegments = JSON.parse(response.responseText);
+ if (receivedNewSegments?.length === newSegments.length) {
+ for (let i = 0; i < receivedNewSegments.length; i++) {
+ newSegments[i].UUID = receivedNewSegments[i].UUID;
newSegments[i].source = SponsorSourceType.Server;
}
}
@@ -2343,7 +2348,7 @@ function hotkeyListener(e: KeyboardEvent): void {
* Adds the CSS to the page if needed. Required on optional sites with Chrome.
*/
function addCSS() {
- if (!utils.isFirefox() && Config.config.invidiousInstances.includes(new URL(document.URL).host)) {
+ if (!isFirefoxOrSafari() && Config.config.invidiousInstances.includes(new URL(document.URL).host)) {
window.addEventListener("DOMContentLoaded", () => {
const head = document.getElementsByTagName("head")[0];
@@ -2373,14 +2378,15 @@ function updateAdFlag(): void {
}
function showTimeWithoutSkips(skippedDuration: number): void {
- if (isOnInvidious()) return;
-
if (isNaN(skippedDuration) || skippedDuration < 0) {
skippedDuration = 0;
}
// YouTube player time display
- const displayClass = isOnMobileYouTube() ? "ytm-time-display" : "ytp-time-display.notranslate"
+ const displayClass =
+ isOnInvidious() ? "vjs-duration" :
+ isOnMobileYouTube() ? "ytm-time-display" :
+ "ytp-time-display.notranslate";
const display = document.querySelector(`.${displayClass}`);
if (!display) return;
@@ -2391,7 +2397,7 @@ function showTimeWithoutSkips(skippedDuration: number): void {
if (duration === null) {
duration = document.createElement('span');
duration.id = durationID;
- duration.classList.add(displayClass);
+ if (!isOnInvidious()) duration.classList.add(displayClass);
display.appendChild(duration);
}
diff --git a/src/js-components/skipButtonControlBar.ts b/src/js-components/skipButtonControlBar.ts
index d78f8a74..6b3654f2 100644
--- a/src/js-components/skipButtonControlBar.ts
+++ b/src/js-components/skipButtonControlBar.ts
@@ -1,8 +1,8 @@
import Config from "../config";
import { SponsorTime } from "../types";
import { getSkippingText } from "../utils/categoryUtils";
-import { keybindToString } from "../utils/configUtils";
import { AnimationUtils } from "../utils/animationUtils";
+import { keybindToString } from "@ajayyy/maze-utils/lib/config";
export interface SkipButtonControlBarProps {
skip: (segment: SponsorTime) => void;
diff --git a/src/options.ts b/src/options.ts
index 277717a1..63384605 100644
--- a/src/options.ts
+++ b/src/options.ts
@@ -16,6 +16,7 @@ import { showDonationLink } from "./utils/configUtils";
import { localizeHtmlPage } from "./utils/pageUtils";
import { StorageChangesObject } from "@ajayyy/maze-utils/lib/config";
import { getHash } from "@ajayyy/maze-utils/lib/hash";
+import { isFirefoxOrSafari } from "@ajayyy/maze-utils";
const utils = new Utils();
let embed = false;
@@ -186,7 +187,7 @@ async function init() {
}
// Permission needed on Firefox
- if (utils.isFirefox()) {
+ if (isFirefoxOrSafari()) {
const permissionSuccess = await new Promise((resolve) => {
chrome.permissions.request({
origins: [textChangeInput.value + "/"],
diff --git a/src/types.ts b/src/types.ts
index 5ff683a7..4913fdad 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -31,6 +31,7 @@ export interface VideoDurationResponse {
}
export enum CategorySkipOption {
+ Disabled = -1,
ShowOverlay,
ManualSkip,
AutoSkip
@@ -221,14 +222,6 @@ export enum NoticeVisbilityMode {
FadedForAll = 4
}
-export type Keybind = {
- key: string;
- code?: string;
- ctrl?: boolean;
- alt?: boolean;
- shift?: boolean;
-}
-
export interface ButtonListener {
name: string;
listener: (e?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
diff --git a/src/utils.ts b/src/utils.ts
index 92e29d8b..7709d9df 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -1,12 +1,12 @@
import Config, { VideoDownvotes } from "./config";
-import { CategorySelection, SponsorTime, BackgroundScriptContainer, Registration, VideoID, SponsorHideType } from "./types";
+import { CategorySelection, SponsorTime, BackgroundScriptContainer, Registration, VideoID, SponsorHideType, CategorySkipOption } from "./types";
import { getHash, HashedValue } from "@ajayyy/maze-utils/lib/hash";
import * as CompileConfig from "../config.json";
-import { waitFor } from "@ajayyy/maze-utils";
-import { isSafari } from "./utils/configUtils";
+import { isFirefoxOrSafari, waitFor } from "@ajayyy/maze-utils";
import { findValidElementFromSelector } from "@ajayyy/maze-utils/lib/dom";
import { FetchResponse, sendRequestToCustomServer } from "@ajayyy/maze-utils/lib/background-request-proxy"
+import { isSafari } from "@ajayyy/maze-utils/lib/config";
export default class Utils {
@@ -49,7 +49,7 @@ export default class Utils {
setupExtraSitePermissions(callback: (granted: boolean) => void): void {
let permissions = ["webNavigation"];
if (!isSafari()) permissions.push("declarativeContent");
- if (this.isFirefox() && !isSafari()) permissions = [];
+ if (isFirefoxOrSafari() && !isSafari()) permissions = [];
chrome.permissions.request({
origins: this.getPermissionRegex(),
@@ -113,7 +113,7 @@ export default class Utils {
});
}
- if (!this.isFirefox() && chrome.declarativeContent) {
+ if (!isFirefoxOrSafari() && chrome.declarativeContent) {
// Only if we have permission
chrome.declarativeContent.onPageChanged.removeRules(["invidious"]);
}
@@ -143,7 +143,7 @@ export default class Utils {
containsInvidiousPermission(): Promise<boolean> {
return new Promise((resolve) => {
let permissions = ["declarativeContent"];
- if (this.isFirefox()) permissions = [];
+ if (isFirefoxOrSafari()) permissions = [];
chrome.permissions.contains({
origins: this.getPermissionRegex(),
@@ -225,7 +225,7 @@ export default class Utils {
return selection;
}
}
- return { name: "None", option: 0} as CategorySelection;
+ return { name: category, option: CategorySkipOption.Disabled} as CategorySelection;
}
/**
@@ -293,6 +293,7 @@ export default class Utils {
const selectors = [
"#player-container-id", // Mobile YouTube
"#movie_player",
+ ".html5-video-player", // May 2023 Card-Based YouTube Layout
"#c4-player", // Channel Trailer
"#player-container", // Preview on hover
"#main-panel.ytmusic-player-page", // YouTube music
@@ -329,13 +330,6 @@ export default class Utils {
return Boolean(num.match(/^[0-9a-f]+$/i));
}
- /**
- * Is this Firefox (web-extensions)
- */
- isFirefox(): boolean {
- return typeof(browser) !== "undefined";
- }
-
async addHiddenSegment(videoID: VideoID, segmentUUID: string, hidden: SponsorHideType) {
if (chrome.extension.inIncognitoContext || !Config.config.trackDownvotes) return;
diff --git a/src/utils/configUtils.ts b/src/utils/configUtils.ts
index 0afecbc1..8aec5208 100644
--- a/src/utils/configUtils.ts
+++ b/src/utils/configUtils.ts
@@ -1,48 +1,5 @@
import Config from "../config";
-import { Keybind } from "../types";
export function showDonationLink(): boolean {
return navigator.vendor !== "Apple Computer, Inc." && Config.config.showDonationLink;
-}
-
-export function isSafari(): boolean {
- return typeof(navigator) !== "undefined" && navigator.vendor === "Apple Computer, Inc.";
-}
-
-export function keybindEquals(first: Keybind, second: Keybind): boolean {
- if (first == null || second == null ||
- Boolean(first.alt) != Boolean(second.alt) || Boolean(first.ctrl) != Boolean(second.ctrl) || Boolean(first.shift) != Boolean(second.shift) ||
- first.key == null && first.code == null || second.key == null && second.code == null)
- return false;
- if (first.code != null && second.code != null)
- return first.code === second.code;
- if (first.key != null && second.key != null)
- return first.key.toUpperCase() === second.key.toUpperCase();
- return false;
-}
-
-export function formatKey(key: string): string {
- if (key == null)
- return "";
- else if (key == " ")
- return "Space";
- else if (key.length == 1)
- return key.toUpperCase();
- else
- return key;
-}
-
-export function keybindToString(keybind: Keybind): string {
- if (keybind == null || keybind.key == null)
- return "";
-
- let ret = "";
- if (keybind.ctrl)
- ret += "Ctrl+";
- if (keybind.alt)
- ret += "Alt+";
- if (keybind.shift)
- ret += "Shift+";
-
- return ret += formatKey(keybind.key);
} \ No newline at end of file
diff --git a/src/utils/videoLabels.ts b/src/utils/videoLabels.ts
index ca12c6e4..15815ab9 100644
--- a/src/utils/videoLabels.ts
+++ b/src/utils/videoLabels.ts
@@ -1,4 +1,4 @@
-import { Category, VideoID } from "../types";
+import { Category, CategorySkipOption, VideoID } from "../types";
import { getHash } from "@ajayyy/maze-utils/lib/hash";
import Utils from "../utils";
import { logWarn } from "./logger";
@@ -58,7 +58,12 @@ export async function getVideoLabel(videoID: VideoID): Promise<Category | null>
const result = await getLabelHashBlock(prefix);
if (result) {
- return result.videos[videoID] ?? null;
+ const category = result.videos[videoID];
+ if (category && utils.getCategorySelection(category).option !== CategorySkipOption.Disabled) {
+ return category;
+ } else {
+ return null;
+ }
}
return null;