Version in base suite: 1.37.0+dfsg-1~deb10u1 Base version: ublock-origin_1.37.0+dfsg-1~deb10u1 Target version: ublock-origin_1.42.0+dfsg-1~deb10u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/u/ublock-origin/ublock-origin_1.37.0+dfsg-1~deb10u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/u/ublock-origin/ublock-origin_1.42.0+dfsg-1~deb10u1.dsc /srv/release.debian.org/tmp/6shuIU8Ibw/ublock-origin-1.42.0+dfsg/platform/npm/tests/data/bundle.tgz |binary /srv/release.debian.org/tmp/6shuIU8Ibw/ublock-origin-1.42.0+dfsg/src/js/wasm/hntrie.wasm |binary /srv/release.debian.org/tmp/6shuIU8Ibw/ublock-origin-1.42.0+dfsg/src/lib/publicsuffixlist/wasm/publicsuffixlist.wasm |binary ublock-origin-1.42.0+dfsg/.github/workflows/main.yml | 14 ublock-origin-1.42.0+dfsg/.gitmodules | 3 ublock-origin-1.42.0+dfsg/.jshintrc | 6 ublock-origin-1.42.0+dfsg/Makefile | 77 ublock-origin-1.42.0+dfsg/README.md | 30 ublock-origin-1.42.0+dfsg/assets/assets.json | 232 ublock-origin-1.42.0+dfsg/assets/resources/scriptlets.js | 234 ublock-origin-1.42.0+dfsg/debian/changelog | 35 ublock-origin-1.42.0+dfsg/debian/copyright | 8 ublock-origin-1.42.0+dfsg/debian/patches/disable-nonfree-filters-by-default.patch | 8 ublock-origin-1.42.0+dfsg/debian/patches/lz4-block-codec.wat.patch | 2544 ublock-origin-1.42.0+dfsg/debian/patches/make-assets.sh-for-Debian.patch | 44 ublock-origin-1.42.0+dfsg/debian/patches/python3.patch | 23 ublock-origin-1.42.0+dfsg/debian/patches/series | 3 ublock-origin-1.42.0+dfsg/debian/rules | 3 ublock-origin-1.42.0+dfsg/debian/watch | 2 ublock-origin-1.42.0+dfsg/dist/README.md | 23 ublock-origin-1.42.0+dfsg/dist/description/description-bn.txt | 4 ublock-origin-1.42.0+dfsg/dist/description/description-bs.txt | 34 ublock-origin-1.42.0+dfsg/dist/description/description-ja.txt | 6 ublock-origin-1.42.0+dfsg/dist/firefox/publish-signed-beta.py | 2 ublock-origin-1.42.0+dfsg/dist/firefox/updates.json | 6 ublock-origin-1.42.0+dfsg/dist/firefox/updates.template.json | 2 ublock-origin-1.42.0+dfsg/dist/version | 2 ublock-origin-1.42.0+dfsg/docs/tests/procedural-cosmetic-filters.html | 114 ublock-origin-1.42.0+dfsg/docs/tests/static-filtering-parser-checklist.txt | 2 ublock-origin-1.42.0+dfsg/platform/browser/main.js | 125 ublock-origin-1.42.0+dfsg/platform/browser/test.html | 71 ublock-origin-1.42.0+dfsg/platform/chromium/manifest.json | 8 ublock-origin-1.42.0+dfsg/platform/chromium/vapi-background-ext.js | 25 ublock-origin-1.42.0+dfsg/platform/chromium/webext.js | 8 ublock-origin-1.42.0+dfsg/platform/common/vapi-background.js | 230 ublock-origin-1.42.0+dfsg/platform/common/vapi-client.js | 14 ublock-origin-1.42.0+dfsg/platform/common/vapi-common.js | 67 ublock-origin-1.42.0+dfsg/platform/common/vapi.js | 5 ublock-origin-1.42.0+dfsg/platform/dig/package.json | 28 ublock-origin-1.42.0+dfsg/platform/dig/snfe.js | 392 ublock-origin-1.42.0+dfsg/platform/firefox/manifest.json | 8 ublock-origin-1.42.0+dfsg/platform/firefox/vapi-background-ext.js | 49 ublock-origin-1.42.0+dfsg/platform/firefox/webext.js | 2 ublock-origin-1.42.0+dfsg/platform/nodejs/README.md | 158 ublock-origin-1.42.0+dfsg/platform/nodejs/build.js | 34 ublock-origin-1.42.0+dfsg/platform/nodejs/index.js | 282 ublock-origin-1.42.0+dfsg/platform/npm/.eslintrc.json | 38 ublock-origin-1.42.0+dfsg/platform/npm/.npmignore | 5 ublock-origin-1.42.0+dfsg/platform/npm/package-lock.json | 1658 ublock-origin-1.42.0+dfsg/platform/npm/package.json | 44 ublock-origin-1.42.0+dfsg/platform/npm/test.js | 59 ublock-origin-1.42.0+dfsg/platform/npm/tests/.eslintrc.json | 5 ublock-origin-1.42.0+dfsg/platform/npm/tests/_common.js | 34 ublock-origin-1.42.0+dfsg/platform/npm/tests/leaks.js | 30 ublock-origin-1.42.0+dfsg/platform/npm/tests/request-data.js | 117 ublock-origin-1.42.0+dfsg/platform/npm/tests/snfe.js | 372 ublock-origin-1.42.0+dfsg/platform/npm/tests/wasm.js | 53 ublock-origin-1.42.0+dfsg/platform/opera/manifest.json | 8 ublock-origin-1.42.0+dfsg/platform/thunderbird/manifest.json | 5 ublock-origin-1.42.0+dfsg/src/1p-filters.html | 14 ublock-origin-1.42.0+dfsg/src/3p-filters.html | 21 ublock-origin-1.42.0+dfsg/src/_locales/ar/messages.json | 198 ublock-origin-1.42.0+dfsg/src/_locales/az/messages.json | 212 ublock-origin-1.42.0+dfsg/src/_locales/bg/messages.json | 216 ublock-origin-1.42.0+dfsg/src/_locales/bn/messages.json | 190 ublock-origin-1.42.0+dfsg/src/_locales/bs/messages.json | 266 ublock-origin-1.42.0+dfsg/src/_locales/ca/messages.json | 208 ublock-origin-1.42.0+dfsg/src/_locales/cs/messages.json | 198 ublock-origin-1.42.0+dfsg/src/_locales/cv/messages.json | 206 ublock-origin-1.42.0+dfsg/src/_locales/da/messages.json | 194 ublock-origin-1.42.0+dfsg/src/_locales/de/messages.json | 380 ublock-origin-1.42.0+dfsg/src/_locales/el/messages.json | 190 ublock-origin-1.42.0+dfsg/src/_locales/en/messages.json | 212 ublock-origin-1.42.0+dfsg/src/_locales/en_GB/messages.json | 210 ublock-origin-1.42.0+dfsg/src/_locales/eo/messages.json | 242 ublock-origin-1.42.0+dfsg/src/_locales/es/messages.json | 214 ublock-origin-1.42.0+dfsg/src/_locales/et/messages.json | 194 ublock-origin-1.42.0+dfsg/src/_locales/eu/messages.json | 204 ublock-origin-1.42.0+dfsg/src/_locales/fa/messages.json | 200 ublock-origin-1.42.0+dfsg/src/_locales/fi/messages.json | 496 ublock-origin-1.42.0+dfsg/src/_locales/fil/messages.json | 206 ublock-origin-1.42.0+dfsg/src/_locales/fr/messages.json | 204 ublock-origin-1.42.0+dfsg/src/_locales/fy/messages.json | 192 ublock-origin-1.42.0+dfsg/src/_locales/gl/messages.json | 192 ublock-origin-1.42.0+dfsg/src/_locales/he/messages.json | 194 ublock-origin-1.42.0+dfsg/src/_locales/hi/messages.json | 236 ublock-origin-1.42.0+dfsg/src/_locales/hr/messages.json | 212 ublock-origin-1.42.0+dfsg/src/_locales/hu/messages.json | 192 ublock-origin-1.42.0+dfsg/src/_locales/hy/messages.json | 196 ublock-origin-1.42.0+dfsg/src/_locales/id/messages.json | 196 ublock-origin-1.42.0+dfsg/src/_locales/it/messages.json | 196 ublock-origin-1.42.0+dfsg/src/_locales/ja/messages.json | 544 ublock-origin-1.42.0+dfsg/src/_locales/ka/messages.json | 190 ublock-origin-1.42.0+dfsg/src/_locales/kk/messages.json | 202 ublock-origin-1.42.0+dfsg/src/_locales/kn/messages.json | 208 ublock-origin-1.42.0+dfsg/src/_locales/ko/messages.json | 192 ublock-origin-1.42.0+dfsg/src/_locales/lt/messages.json | 196 ublock-origin-1.42.0+dfsg/src/_locales/lv/messages.json | 212 ublock-origin-1.42.0+dfsg/src/_locales/ml/messages.json | 202 ublock-origin-1.42.0+dfsg/src/_locales/mr/messages.json | 202 ublock-origin-1.42.0+dfsg/src/_locales/ms/messages.json | 204 ublock-origin-1.42.0+dfsg/src/_locales/nb/messages.json | 208 ublock-origin-1.42.0+dfsg/src/_locales/nl/messages.json | 224 ublock-origin-1.42.0+dfsg/src/_locales/oc/messages.json | 204 ublock-origin-1.42.0+dfsg/src/_locales/pl/messages.json | 218 ublock-origin-1.42.0+dfsg/src/_locales/pt_BR/messages.json | 208 ublock-origin-1.42.0+dfsg/src/_locales/pt_PT/messages.json | 208 ublock-origin-1.42.0+dfsg/src/_locales/ro/messages.json | 192 ublock-origin-1.42.0+dfsg/src/_locales/ru/messages.json | 198 ublock-origin-1.42.0+dfsg/src/_locales/sk/messages.json | 190 ublock-origin-1.42.0+dfsg/src/_locales/sl/messages.json | 190 ublock-origin-1.42.0+dfsg/src/_locales/so/messages.json | 1254 ublock-origin-1.42.0+dfsg/src/_locales/sq/messages.json | 238 ublock-origin-1.42.0+dfsg/src/_locales/sr/messages.json | 192 ublock-origin-1.42.0+dfsg/src/_locales/sv/messages.json | 242 ublock-origin-1.42.0+dfsg/src/_locales/ta/messages.json | 198 ublock-origin-1.42.0+dfsg/src/_locales/te/messages.json | 210 ublock-origin-1.42.0+dfsg/src/_locales/th/messages.json | 200 ublock-origin-1.42.0+dfsg/src/_locales/tr/messages.json | 226 ublock-origin-1.42.0+dfsg/src/_locales/uk/messages.json | 196 ublock-origin-1.42.0+dfsg/src/_locales/ur/messages.json | 202 ublock-origin-1.42.0+dfsg/src/_locales/vi/messages.json | 216 ublock-origin-1.42.0+dfsg/src/_locales/zh_CN/messages.json | 206 ublock-origin-1.42.0+dfsg/src/_locales/zh_TW/messages.json | 194 ublock-origin-1.42.0+dfsg/src/about.html | 16 ublock-origin-1.42.0+dfsg/src/advanced-settings.html | 3 ublock-origin-1.42.0+dfsg/src/asset-viewer.html | 12 ublock-origin-1.42.0+dfsg/src/background.html | 41 ublock-origin-1.42.0+dfsg/src/cloud-ui.html | 8 ublock-origin-1.42.0+dfsg/src/css/3p-filters.css | 46 ublock-origin-1.42.0+dfsg/src/css/about.css | 21 ublock-origin-1.42.0+dfsg/src/css/advanced-settings.css | 2 ublock-origin-1.42.0+dfsg/src/css/asset-viewer.css | 8 ublock-origin-1.42.0+dfsg/src/css/click2load.css | 3 ublock-origin-1.42.0+dfsg/src/css/cloud-ui.css | 19 ublock-origin-1.42.0+dfsg/src/css/codemirror.css | 104 ublock-origin-1.42.0+dfsg/src/css/common.css | 133 ublock-origin-1.42.0+dfsg/src/css/dashboard-common.css | 25 ublock-origin-1.42.0+dfsg/src/css/dashboard.css | 31 ublock-origin-1.42.0+dfsg/src/css/devtools.css | 22 ublock-origin-1.42.0+dfsg/src/css/document-blocked.css | 28 ublock-origin-1.42.0+dfsg/src/css/dyna-rules.css | 35 ublock-origin-1.42.0+dfsg/src/css/epicker-ui.css | 60 ublock-origin-1.42.0+dfsg/src/css/fa-icons.css | 3 ublock-origin-1.42.0+dfsg/src/css/fonts/Metropolis/README.md | 2 ublock-origin-1.42.0+dfsg/src/css/logger-ui-inspector.css | 8 ublock-origin-1.42.0+dfsg/src/css/logger-ui.css | 167 ublock-origin-1.42.0+dfsg/src/css/popup-fenix.css | 119 ublock-origin-1.42.0+dfsg/src/css/popup.css | 77 ublock-origin-1.42.0+dfsg/src/css/settings.css | 40 ublock-origin-1.42.0+dfsg/src/css/support.css | 71 ublock-origin-1.42.0+dfsg/src/css/themes/default.css | 765 ublock-origin-1.42.0+dfsg/src/dashboard.html | 27 ublock-origin-1.42.0+dfsg/src/devtools.html | 56 ublock-origin-1.42.0+dfsg/src/document-blocked.html | 12 ublock-origin-1.42.0+dfsg/src/dyna-rules.html | 23 ublock-origin-1.42.0+dfsg/src/img/fontawesome/fontawesome-defs.svg | 1 ublock-origin-1.42.0+dfsg/src/js/1p-filters.js | 4 ublock-origin-1.42.0+dfsg/src/js/3p-filters.js | 15 ublock-origin-1.42.0+dfsg/src/js/about.js | 24 ublock-origin-1.42.0+dfsg/src/js/asset-viewer.js | 4 ublock-origin-1.42.0+dfsg/src/js/assets.js | 107 ublock-origin-1.42.0+dfsg/src/js/background.js | 521 ublock-origin-1.42.0+dfsg/src/js/base64-custom.js | 246 ublock-origin-1.42.0+dfsg/src/js/benchmarks.js | 401 ublock-origin-1.42.0+dfsg/src/js/biditrie.js | 932 ublock-origin-1.42.0+dfsg/src/js/cachestorage.js | 777 ublock-origin-1.42.0+dfsg/src/js/click2load.js | 9 ublock-origin-1.42.0+dfsg/src/js/codemirror/ubo-dynamic-filtering.js | 19 ublock-origin-1.42.0+dfsg/src/js/codemirror/ubo-static-filtering.js | 148 ublock-origin-1.42.0+dfsg/src/js/commands.js | 62 ublock-origin-1.42.0+dfsg/src/js/console.js | 44 ublock-origin-1.42.0+dfsg/src/js/contentscript-extra.js | 172 ublock-origin-1.42.0+dfsg/src/js/contentscript.js | 108 ublock-origin-1.42.0+dfsg/src/js/contextmenu.js | 32 ublock-origin-1.42.0+dfsg/src/js/cosmetic-filtering.js | 295 ublock-origin-1.42.0+dfsg/src/js/dashboard.js | 4 ublock-origin-1.42.0+dfsg/src/js/devtools.js | 173 ublock-origin-1.42.0+dfsg/src/js/document-blocked.js | 48 ublock-origin-1.42.0+dfsg/src/js/dyna-rules.js | 34 ublock-origin-1.42.0+dfsg/src/js/dynamic-net-filtering.js | 250 ublock-origin-1.42.0+dfsg/src/js/epicker-ui.js | 14 ublock-origin-1.42.0+dfsg/src/js/fa-icons.js | 1 ublock-origin-1.42.0+dfsg/src/js/filtering-context.js | 117 ublock-origin-1.42.0+dfsg/src/js/filtering-engines.js | 50 ublock-origin-1.42.0+dfsg/src/js/hnswitches.js | 419 ublock-origin-1.42.0+dfsg/src/js/hntrie.js | 465 ublock-origin-1.42.0+dfsg/src/js/html-filtering.js | 780 ublock-origin-1.42.0+dfsg/src/js/httpheader-filtering.js | 54 ublock-origin-1.42.0+dfsg/src/js/i18n.js | 84 ublock-origin-1.42.0+dfsg/src/js/logger-ui-inspector.js | 2 ublock-origin-1.42.0+dfsg/src/js/logger-ui.js | 16 ublock-origin-1.42.0+dfsg/src/js/logger.js | 115 ublock-origin-1.42.0+dfsg/src/js/lz4.js | 18 ublock-origin-1.42.0+dfsg/src/js/messaging.js | 481 ublock-origin-1.42.0+dfsg/src/js/pagestore.js | 168 ublock-origin-1.42.0+dfsg/src/js/popup-fenix.js | 72 ublock-origin-1.42.0+dfsg/src/js/popup.js | 6 ublock-origin-1.42.0+dfsg/src/js/redirect-engine.js | 92 ublock-origin-1.42.0+dfsg/src/js/reverselookup-worker.js | 300 ublock-origin-1.42.0+dfsg/src/js/reverselookup.js | 611 ublock-origin-1.42.0+dfsg/src/js/scriptlet-filtering.js | 821 ublock-origin-1.42.0+dfsg/src/js/scriptlets/dom-inspector.js | 38 ublock-origin-1.42.0+dfsg/src/js/scriptlets/dom-survey-scripts.js | 4 ublock-origin-1.42.0+dfsg/src/js/scriptlets/epicker.js | 118 ublock-origin-1.42.0+dfsg/src/js/scriptlets/noscript-spoof.js | 9 ublock-origin-1.42.0+dfsg/src/js/scriptlets/subscriber.js | 30 ublock-origin-1.42.0+dfsg/src/js/settings.js | 50 ublock-origin-1.42.0+dfsg/src/js/start.js | 243 ublock-origin-1.42.0+dfsg/src/js/static-ext-filtering-db.js | 224 ublock-origin-1.42.0+dfsg/src/js/static-ext-filtering.js | 442 ublock-origin-1.42.0+dfsg/src/js/static-filtering-io.js | 139 ublock-origin-1.42.0+dfsg/src/js/static-filtering-parser.js | 758 ublock-origin-1.42.0+dfsg/src/js/static-net-filtering.js | 4641 - ublock-origin-1.42.0+dfsg/src/js/storage.js | 384 ublock-origin-1.42.0+dfsg/src/js/strie.js | 985 ublock-origin-1.42.0+dfsg/src/js/support.js | 290 ublock-origin-1.42.0+dfsg/src/js/tab.js | 201 ublock-origin-1.42.0+dfsg/src/js/tasks.js | 42 ublock-origin-1.42.0+dfsg/src/js/text-encode.js | 32 ublock-origin-1.42.0+dfsg/src/js/text-utils.js | 107 ublock-origin-1.42.0+dfsg/src/js/traffic.js | 174 ublock-origin-1.42.0+dfsg/src/js/ublock.js | 212 ublock-origin-1.42.0+dfsg/src/js/udom.js | 205 ublock-origin-1.42.0+dfsg/src/js/uri-utils.js | 175 ublock-origin-1.42.0+dfsg/src/js/uritools.js | 380 ublock-origin-1.42.0+dfsg/src/js/url-net-filtering.js | 451 ublock-origin-1.42.0+dfsg/src/js/utils.js | 558 ublock-origin-1.42.0+dfsg/src/js/wasm/hntrie.wat | 372 ublock-origin-1.42.0+dfsg/src/js/whitelist.js | 6 ublock-origin-1.42.0+dfsg/src/lib/hsluv/LICENSE | 20 ublock-origin-1.42.0+dfsg/src/lib/hsluv/README | 3 ublock-origin-1.42.0+dfsg/src/lib/hsluv/hsluv-0.1.0.min.js | 8 ublock-origin-1.42.0+dfsg/src/lib/lz4/README.md | 2 ublock-origin-1.42.0+dfsg/src/lib/publicsuffixlist/publicsuffixlist.js | 148 ublock-origin-1.42.0+dfsg/src/lib/publicsuffixlist/wasm/publicsuffixlist.wat | 23 ublock-origin-1.42.0+dfsg/src/lib/punycode.js | 43 ublock-origin-1.42.0+dfsg/src/lib/regexanalyzer/regex.js | 18 ublock-origin-1.42.0+dfsg/src/logger-ui.html | 46 ublock-origin-1.42.0+dfsg/src/no-dashboard.html | 2 ublock-origin-1.42.0+dfsg/src/popup-fenix.html | 25 ublock-origin-1.42.0+dfsg/src/popup.html | 3 ublock-origin-1.42.0+dfsg/src/settings.html | 54 ublock-origin-1.42.0+dfsg/src/shortcuts.html | 2 ublock-origin-1.42.0+dfsg/src/support.html | 120 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/amazon_apstag.js | 3 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/click2load.html | 1 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/epicker-ui.html | 16 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/fingerprint2.js | 37 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/fingerprint3.js | 45 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/google-analytics_analytics.js | 12 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/google-analytics_ga.js | 32 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/googlesyndication_adsbygoogle.js | 40 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/nobab2.js | 42 ublock-origin-1.42.0+dfsg/src/web_accessible_resources/prebid-ads.js | 26 ublock-origin-1.42.0+dfsg/src/whitelist.html | 10 ublock-origin-1.42.0+dfsg/tools/copy-common-files.sh | 8 ublock-origin-1.42.0+dfsg/tools/import-crowdin.sh | 7 ublock-origin-1.42.0+dfsg/tools/import-war.py | 92 ublock-origin-1.42.0+dfsg/tools/make-assets.sh | 26 ublock-origin-1.42.0+dfsg/tools/make-browser.sh | 36 ublock-origin-1.42.0+dfsg/tools/make-chromium.sh | 8 ublock-origin-1.42.0+dfsg/tools/make-clean.sh | 4 ublock-origin-1.42.0+dfsg/tools/make-dig.sh | 17 ublock-origin-1.42.0+dfsg/tools/make-firefox.sh | 10 ublock-origin-1.42.0+dfsg/tools/make-nodejs.sh | 41 ublock-origin-1.42.0+dfsg/tools/make-npm.sh | 43 ublock-origin-1.42.0+dfsg/tools/make-opera.sh | 9 ublock-origin-1.42.0+dfsg/tools/make-safari-meta.py | 77 ublock-origin-1.42.0+dfsg/tools/make-safari.sh | 33 ublock-origin-1.42.0+dfsg/tools/make-thunderbird.sh | 4 ublock-origin-1.42.0+dfsg/tools/make-webext-meta.py | 39 ublock-origin-1.42.0+dfsg/tools/make-webext.sh | 42 ublock-origin-1.42.0+dfsg/tools/update-submodules.sh | 17 ublock-origin-1.42.0+dfsg/uAssets/.github/ISSUE_TEMPLATE/bug_report.yml | 4 ublock-origin-1.42.0+dfsg/uAssets/.github/ISSUE_TEMPLATE/report_from_ubo.yml | 75 ublock-origin-1.42.0+dfsg/uAssets/.github/ISSUE_TEMPLATE/specific_report_from_ubo.yml | 79 ublock-origin-1.42.0+dfsg/uAssets/.github/workflows/main.yml | 46 ublock-origin-1.42.0+dfsg/uAssets/.github/workflows/update-3rd-party-assets.yml | 26 ublock-origin-1.42.0+dfsg/uAssets/README.md | 19 ublock-origin-1.42.0+dfsg/uAssets/filters/annoyances.txt | 1841 ublock-origin-1.42.0+dfsg/uAssets/filters/badlists.txt | 4 ublock-origin-1.42.0+dfsg/uAssets/filters/badware.txt | 977 ublock-origin-1.42.0+dfsg/uAssets/filters/filters-2020.txt | 1689 ublock-origin-1.42.0+dfsg/uAssets/filters/filters-2021.txt | 4607 + ublock-origin-1.42.0+dfsg/uAssets/filters/filters-2022.txt | 2681 ublock-origin-1.42.0+dfsg/uAssets/filters/filters.txt | 5426 -- ublock-origin-1.42.0+dfsg/uAssets/filters/lan-block.txt | 89 ublock-origin-1.42.0+dfsg/uAssets/filters/legacy.txt | 33 ublock-origin-1.42.0+dfsg/uAssets/filters/privacy.txt | 220 ublock-origin-1.42.0+dfsg/uAssets/filters/quick-fixes.txt | 174 ublock-origin-1.42.0+dfsg/uAssets/filters/resource-abuse.txt | 45 ublock-origin-1.42.0+dfsg/uAssets/filters/unbreak.txt | 1118 ublock-origin-1.42.0+dfsg/uAssets/thirdparties/easylist-downloads.adblockplus.org/easylist.txt |26852 +++++----- ublock-origin-1.42.0+dfsg/uAssets/thirdparties/easylist-downloads.adblockplus.org/easyprivacy.txt |15384 ++--- ublock-origin-1.42.0+dfsg/uAssets/thirdparties/publicsuffix.org/list/effective_tld_names.dat | 743 ublock-origin-1.42.0+dfsg/uAssets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt |10498 +-- ublock-origin-1.42.0+dfsg/uAssets/tools/update-3rdparties.sh | 2 298 files changed, 72922 insertions(+), 45619 deletions(-) diff -Nru ublock-origin-1.37.0+dfsg/.github/workflows/main.yml ublock-origin-1.42.0+dfsg/.github/workflows/main.yml --- ublock-origin-1.37.0+dfsg/.github/workflows/main.yml 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/.github/workflows/main.yml 2022-05-06 01:15:22.000000000 +0000 @@ -19,9 +19,7 @@ persist-credentials: false - name: Clone uAssets run: | - pushd .. - git clone --depth 1 https://github.com/uBlockOrigin/uAssets.git - popd + git submodule update --depth 1 --init # https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html - name: Get release information id: release_info @@ -41,6 +39,7 @@ tools/make-chromium.sh ${{ steps.release_info.outputs.VERSION }} tools/make-firefox.sh ${{ steps.release_info.outputs.VERSION }} tools/make-thunderbird.sh ${{ steps.release_info.outputs.VERSION }} + tools/make-npm.sh ${{ steps.release_info.outputs.VERSION }} - name: Upload Chromium package uses: actions/upload-release-asset@v1 env: @@ -68,3 +67,12 @@ asset_path: dist/build/uBlock0_${{ steps.release_info.outputs.VERSION }}.thunderbird.xpi asset_name: uBlock0_${{ steps.release_info.outputs.VERSION }}.thunderbird.xpi asset_content_type: application/octet-stream + - name: Upload NodeJS package + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: dist/build/uBlock0_${{ steps.release_info.outputs.VERSION }}.npm.tgz + asset_name: uBlock0_${{ steps.release_info.outputs.VERSION }}.npm.tgz + asset_content_type: application/octet-stream diff -Nru ublock-origin-1.37.0+dfsg/.gitmodules ublock-origin-1.42.0+dfsg/.gitmodules --- ublock-origin-1.37.0+dfsg/.gitmodules 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/.gitmodules 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,3 @@ +[submodule "submodules/uAssets"] + path = submodules/uAssets + url = https://github.com/uBlockOrigin/uAssets.git diff -Nru ublock-origin-1.37.0+dfsg/.jshintrc ublock-origin-1.42.0+dfsg/.jshintrc --- ublock-origin-1.37.0+dfsg/.jshintrc 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/.jshintrc 2022-05-06 01:15:22.000000000 +0000 @@ -6,12 +6,10 @@ "globals": { "browser": false, // global variable in Firefox, Edge "chrome": false, // global variable in Chromium, Chrome, Opera - "log": false, - "safari": false, "self": false, "vAPI": false, - "webext": false, - "µBlock": false + "URLSearchParams": false, + "WebAssembly": false }, "laxbreak": true, "newcap": false, diff -Nru ublock-origin-1.37.0+dfsg/Makefile ublock-origin-1.42.0+dfsg/Makefile --- ublock-origin-1.37.0+dfsg/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/Makefile 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,77 @@ +# https://stackoverflow.com/a/6273809 +run_options := $(filter-out $@,$(MAKECMDGOALS)) + +.PHONY: all clean test lint chromium firefox npm dig \ + compare maxcost medcost mincost modifiers record wasm + +sources := $(wildcard assets/resources/* src/* src/*/* src/*/*/* src/*/*/*/*) +platform := $(wildcard platform/* platform/*/*) +assets := $(wildcard submodules/uAssets/* \ + submodules/uAssets/*/* \ + submodules/uAssets/*/*/* \ + submodules/uAssets/*/*/*/*) + +all: chromium firefox npm + +dist/build/uBlock0.chromium: tools/make-chromium.sh $(sources) $(platform) $(assets) + tools/make-chromium.sh + +# Build the extension for Chromium. +chromium: dist/build/uBlock0.chromium + +dist/build/uBlock0.firefox: tools/make-firefox.sh $(sources) $(platform) $(assets) + tools/make-firefox.sh all + +# Build the extension for Firefox. +firefox: dist/build/uBlock0.firefox + +dist/build/uBlock0.npm: tools/make-nodejs.sh $(sources) $(platform) $(assets) + tools/make-npm.sh + +# Build the Node.js package. +npm: dist/build/uBlock0.npm + +lint: npm + cd dist/build/uBlock0.npm && npm run lint + +test: npm + cd dist/build/uBlock0.npm && npm run test + +test-full-battery: npm + cd dist/build/uBlock0.npm && npm run test-full-battery + +check-leaks: npm + cd dist/build/uBlock0.npm && npm run check-leaks + +dist/build/uBlock0.dig: tools/make-nodejs.sh $(sources) $(platform) $(assets) + tools/make-dig.sh + +dig: dist/build/uBlock0.dig + cd dist/build/uBlock0.dig && npm install + +dig-snfe: dig + cd dist/build/uBlock0.dig && npm run snfe $(run_options) + +# Update submodules. +update-submodules: + tools/update-submodules.sh + +clean: + rm -rf dist/build tmp/node_modules + + +# Not real targets, just convenient for auto-completion at shell prompt +compare: + @echo +maxcost: + @echo +medcost: + @echo +mincost: + @echo +modifiers: + @echo +record: + @echo +wasm: + @echo diff -Nru ublock-origin-1.37.0+dfsg/README.md ublock-origin-1.42.0+dfsg/README.md --- ublock-origin-1.37.0+dfsg/README.md 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/README.md 2022-05-06 01:15:22.000000000 +0000 @@ -1,6 +1,10 @@ -[![Build](https://travis-ci.org/gorhill/uBlock.svg?branch=master)](https://travis-ci.org/gorhill/uBlock) +[![Commit rate](https://img.shields.io/github/commit-activity/m/gorhill/ublock?label=Commits)](https://github.com/gorhill/uBlock/commits/master) +[![Issues](https://img.shields.io/github/issues/uBlockOrigin/uBlock-issues)](https://github.com/uBlockOrigin/uBlock-issues/issues) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/ublock/localized.svg)](https://crowdin.com/project/ublock) [![License](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/gorhill/uBlock/blob/master/LICENSE.txt) +[![NPM](https://img.shields.io/npm/v/@gorhill/ubo-core)](https://www.npmjs.com/package/@gorhill/ubo-core) +[![Mozilla Add-ons](https://img.shields.io/amo/rating/ublock-origin?label=Firefox)](https://addons.mozilla.org/firefox/addon/ublock-origin/) +[![Chrome Web Store](https://img.shields.io/chrome-web-store/rating/cjpalhdlnbpafiamejdnhcphjbkeiagm?label=Chrome)](https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm) *** @@ -11,7 +15,7 @@ uBlock Origin

- + pronounced you-block origin (/ˈjuːˌblɒk/) — you decide what enters your browser.
@@ -21,9 +25,9 @@ ***

-Get uBlock Origin for Firefox +Get uBlock Origin for Firefox Get uBlock Origin for Chromium -Get uBlock Origin for Microsoft Edge +Get uBlock Origin for Microsoft Edge Get uBlock Origin for Opera
Do not use uBlock Origin along with other similarly-purposed blockers.
See below for more installation options. @@ -61,7 +65,7 @@ ## Philosophy -uBlock Origin (or uBlock₀) is not an *ad blocker*; it's a general-purpose blocker. uBlock Origin blocks ads through its support of the [Adblock Plus filter syntax](https://adblockplus.org/en/filters). uBlock Origin [extends](https://github.com/gorhill/uBlock/wiki/Filter-syntax-extensions) the syntax and is designed to work with custom rules and filters. Furthermore, advanced mode allows uBlock Origin to work in [default-deny mode](https://github.com/gorhill/uBlock/wiki/Dynamic-filtering:-default-deny), which mode will cause [all 3rd-party network requests](https://requestpolicycontinued.github.io/#what-are-cross-site-requests) to be blocked by default, unless allowed by the user. +uBlock Origin (or uBlock₀) is not an *ad blocker*; it's a general-purpose blocker. uBlock Origin blocks ads through its support of the [Adblock Plus filter syntax](https://help.eyeo.com/en/adblockplus/how-to-write-filters). uBlock Origin [extends](https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#extended-syntax) the syntax and is designed to work with custom rules and filters. Furthermore, advanced mode allows uBlock Origin to work in [default-deny mode](https://github.com/gorhill/uBlock/wiki/Dynamic-filtering:-default-deny), which mode will cause [all 3rd-party network requests](https://requestpolicycontinued.github.io/#what-are-cross-site-requests) to be blocked by default, unless allowed by the user. That said, it's important to note that using a blocker is **NOT** [theft](https://twitter.com/LeaVerou/status/518154828166725632). Don't fall for this creepy idea. The _ultimate_ logical consequence of `blocking = theft` is the criminalisation of the inalienable right to privacy. @@ -85,24 +89,24 @@ #### Firefox / Firefox for Android -[Firefox Add-ons web site](https://addons.mozilla.org/addon/ublock-origin/). +[Firefox Add-ons web site](https://addons.mozilla.org/firefox/addon/ublock-origin/). There is also a development version if you want to test uBlock Origin with the latest changes: for installation, see [Install / Firefox webext / For beta version](https://github.com/gorhill/uBlock/blob/master/dist/README.md#for-beta-version) -uBlock Origin is compatible with [SeaMonkey](http://www.seamonkey-project.org/), [Pale Moon](https://www.palemoon.org/), and possibly other browsers based on Firefox: for installation, see [Install / Firefox legacy](https://github.com/gorhill/uBlock/blob/master/dist/README.md#firefox-legacy). +uBlock Origin is compatible with [SeaMonkey](https://www.seamonkey-project.org/), [Pale Moon](https://www.palemoon.org/), and possibly other browsers based on Firefox: for installation, see [Install / Firefox legacy](https://github.com/gorhill/uBlock/blob/master/dist/README.md#firefox-legacy). uBO may also be installed as a [Debian package](https://packages.debian.org/stable/source/ublock-origin): - Firefox 56-: `apt-get install xul-ext-ublock-origin` - Firefox 55+: `apt-get install webext-ublock-origin` -There is no guarantee the package will be available on your specific platform -- in which case, you will have to install from [Firefox Add-ons web site](https://addons.mozilla.org/addon/ublock-origin/). +There is no guarantee the package will be available on your specific platform -- in which case, you will have to install from [Firefox Add-ons web site](https://addons.mozilla.org/firefox/addon/ublock-origin/). #### Microsoft Edge -Publisher: [Nik Rolls](https://github.com/nikrolls/uBlock-Edge). +Publisher: [Nicole Rolls](https://github.com/nicole-ashley/uBlock-Edge). -Chromium-based Edge: Stable version available in [Microsoft Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/odfafepnkmbhccpbejgmiehpchacaeak). +Chromium-based Edge: Stable version available in [Microsoft Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/ublock-origin/odfafepnkmbhccpbejgmiehpchacaeak). #### Safari (macOS) @@ -116,14 +120,14 @@ #### Note for all browsers -To benefit from uBlock Origin's higher efficiency, it's advised that you don't use other content blockers at the same time (such as Adblock Plus, AdBlock). uBlock Origin will do [as well or better](#blocking) than most popular ad blockers. Other blockers can also prevent uBlock Origin's privacy or anti-blocker-defusing features from working properly. +To benefit from uBlock Origin's higher efficiency, it's advised that you don't use other content blockers at the same time (such as Adblock Plus, AdBlock). uBlock Origin will do [as well or better](https://www.debugbear.com/blog/chrome-extension-performance-2021#how-do-ad-blockers-and-privacy-tools-affect-browser-performance) than most popular ad blockers. Other blockers can also prevent uBlock Origin's privacy or anti-blocker-defusing features from working properly. #### Deploying Below is documentation to assist administrators in deploying uBlock Origin: - [Deploying uBlock Origin](https://github.com/gorhill/uBlock/wiki/Deploying-uBlock-Origin) - - Firefox: [Deploying uBlock Origin for Firefox with CCK2 and Group Policy](http://decentsecurity.com/ublock-for-firefox-deployment/) (external) + - Firefox: [Deploying uBlock Origin for Firefox with CCK2 and Group Policy](https://decentsecurity.com/ublock-for-firefox-deployment/) (external) - Google Chrome: [Managing Google Chrome with adblocking and security](https://decentsecurity.com/ublock-for-google-chrome-deployment/) (external) ## Release History @@ -141,7 +145,7 @@ to maintain the filter lists you are using, which were made available to use by all for free. -You can contribute by helping translate uBlock Origin [on Crowdin](https://crowdin.net/project/ublock). +You can contribute by helping translate uBlock Origin [on Crowdin](https://crowdin.com/project/ublock). ## License diff -Nru ublock-origin-1.37.0+dfsg/assets/assets.json ublock-origin-1.42.0+dfsg/assets/assets.json --- ublock-origin-1.37.0+dfsg/assets/assets.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/assets/assets.json 2022-05-06 01:15:22.000000000 +0000 @@ -1,17 +1,18 @@ { "assets.json": { "content": "internal", - "updateAfter": 7, + "updateAfter": 13, "contentURL": [ "https://raw.githubusercontent.com/gorhill/uBlock/master/assets/assets.json", "assets/assets.json" ], "cdnURLs": [ + "https://ublockorigin.github.io/uAssetsCDN/ublock/assets.json", + "https://ublockorigin.pages.dev/ublock/assets.json", "https://gitcdn.xyz/repo/gorhill/uBlock/master/assets/assets.json", "https://cdn.jsdelivr.net/gh/gorhill/uBlock@master/assets/assets.json", "https://cdn.statically.io/gh/gorhill/uBlock/master/assets/assets.json", - "https://combinatronics.io/gorhill/uBlock/master/assets/assets.json", - "https://raw.githubusercontent.com/gorhill/uBlock/master/assets/assets.json" + "https://combinatronics.io/gorhill/uBlock/master/assets/assets.json" ] }, "public_suffix_list.dat": { @@ -25,16 +26,18 @@ }, "ublock-badlists": { "content": "internal", - "updateAfter": 13, + "updateAfter": 29, "contentURL": [ - "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badlists.txt", + "https://ublockorigin.github.io/uAssets/filters/badlists.txt", "assets/ublock/badlists.txt" ], "cdnURLs": [ - "https://gitcdn.xyz/repo/uBlockOrigin/uAssets/master/filters/badlists.txt", - "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssets@master/filters/badlists.txt", - "https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/badlists.txt", - "https://combinatronics.io/uBlockOrigin/uAssets/master/filters/badlists.txt" + "https://ublockorigin.github.io/uAssetsCDN/filters/badlists.txt", + "https://ublockorigin.pages.dev/filters/badlists.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/badlists.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/badlists.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/badlists.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/badlists.txt" ] }, "ublock-filters": { @@ -42,15 +45,16 @@ "group": "default", "title": "uBlock filters", "contentURL": [ - "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt", + "https://ublockorigin.github.io/uAssets/filters/filters.txt", "assets/ublock/filters.txt" ], "cdnURLs": [ - "https://gitcdn.xyz/repo/uBlockOrigin/uAssets/master/filters/filters.txt", - "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssets@master/filters/filters.txt", - "https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/filters.txt", - "https://combinatronics.io/uBlockOrigin/uAssets/master/filters/filters.txt", - "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt" + "https://ublockorigin.github.io/uAssetsCDN/filters/filters.txt", + "https://ublockorigin.pages.dev/filters/filters.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/filters.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/filters.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/filters.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/filters.txt" ], "supportURL": "https://github.com/uBlockOrigin/uAssets/issues" }, @@ -59,46 +63,54 @@ "group": "default", "title": "uBlock filters – Badware risks", "contentURL": [ - "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt", + "https://ublockorigin.github.io/uAssets/filters/badware.txt", "assets/ublock/badware.txt" ], "cdnURLs": [ - "https://gitcdn.xyz/repo/uBlockOrigin/uAssets/master/filters/badware.txt", - "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssets@master/filters/badware.txt", - "https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/badware.txt", - "https://combinatronics.io/uBlockOrigin/uAssets/master/filters/badware.txt" + "https://ublockorigin.github.io/uAssetsCDN/filters/badware.txt", + "https://ublockorigin.pages.dev/filters/badware.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/badware.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/badware.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/badware.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/badware.txt" ], "supportURL": "https://github.com/gorhill/uBlock/wiki/Badware-risks", "instructionURL": "https://github.com/gorhill/uBlock/wiki/Badware-risks" }, "ublock-privacy": { "content": "filters", + "updateAfter": 13, "group": "default", "title": "uBlock filters – Privacy", "contentURL": [ - "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt", + "https://ublockorigin.github.io/uAssets/filters/privacy.txt", "assets/ublock/privacy.txt" ], "cdnURLs": [ - "https://gitcdn.xyz/repo/uBlockOrigin/uAssets/master/filters/privacy.txt", - "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssets@master/filters/privacy.txt", - "https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/privacy.txt", - "https://combinatronics.io/uBlockOrigin/uAssets/master/filters/privacy.txt" + "https://ublockorigin.github.io/uAssetsCDN/filters/privacy.txt", + "https://ublockorigin.pages.dev/filters/privacy.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/privacy.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/privacy.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/privacy.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/privacy.txt" ] }, "ublock-abuse": { "content": "filters", + "updateAfter": 13, "group": "default", "title": "uBlock filters – Resource abuse", "contentURL": [ - "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt", + "https://ublockorigin.github.io/uAssets/filters/resource-abuse.txt", "assets/ublock/resource-abuse.txt" ], "cdnURLs": [ - "https://gitcdn.xyz/repo/uBlockOrigin/uAssets/master/filters/resource-abuse.txt", - "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssets@master/filters/resource-abuse.txt", - "https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/resource-abuse.txt", - "https://combinatronics.io/uBlockOrigin/uAssets/master/filters/resource-abuse.txt" + "https://ublockorigin.github.io/uAssetsCDN/filters/resource-abuse.txt", + "https://ublockorigin.pages.dev/filters/resource-abuse.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/resource-abuse.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/resource-abuse.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/resource-abuse.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/resource-abuse.txt" ] }, "ublock-unbreak": { @@ -106,14 +118,33 @@ "group": "default", "title": "uBlock filters – Unbreak", "contentURL": [ - "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt", + "https://ublockorigin.github.io/uAssets/filters/unbreak.txt", "assets/ublock/unbreak.txt" ], "cdnURLs": [ - "https://gitcdn.xyz/repo/uBlockOrigin/uAssets/master/filters/unbreak.txt", - "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssets@master/filters/unbreak.txt", - "https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/unbreak.txt", - "https://combinatronics.io/uBlockOrigin/uAssets/master/filters/unbreak.txt" + "https://ublockorigin.github.io/uAssetsCDN/filters/unbreak.txt", + "https://ublockorigin.pages.dev/filters/unbreak.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/unbreak.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/unbreak.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/unbreak.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/unbreak.txt" + ] + }, + "ublock-quick-fixes": { + "content": "filters", + "updateAfter": 1, + "group": "default", + "title": "uBlock filters – Quick fixes", + "contentURL": [ + "https://ublockorigin.github.io/uAssets/filters/quick-fixes.txt" + ], + "cdnURLs": [ + "https://ublockorigin.github.io/uAssetsCDN/filters/quick-fixes.txt", + "https://ublockorigin.pages.dev/filters/quick-fixes.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/quick-fixes.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/quick-fixes.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/quick-fixes.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/quick-fixes.txt" ] }, "adguard-generic": { @@ -145,7 +176,7 @@ "https://easylist-downloads.adblockplus.org/easylist.txt", "assets/thirdparties/easylist-downloads.adblockplus.org/easylist.txt" ], - "supportURL": "https://forums.lanik.us/" + "supportURL": "https://easylist.to/" }, "adguard-spyware": { "content": "filters", @@ -169,9 +200,17 @@ "content": "filters", "group": "privacy", "off": true, - "title": "Block access to LAN", - "contentURL": "https://raw.githubusercontent.com/gwarser/filter-lists/master/lan-block.txt", - "supportURL": "https://github.com/gwarser/filter-lists" + "title": "Block Outsider Intrusion into LAN", + "contentURL": "https://ublockorigin.github.io/uAssets/filters/lan-block.txt", + "cdnURLs": [ + "https://ublockorigin.github.io/uAssetsCDN/filters/lan-block.txt", + "https://ublockorigin.pages.dev/filters/lan-block.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/lan-block.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/lan-block.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/lan-block.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/lan-block.txt" + ], + "supportURL": "https://github.com/uBlockOrigin/uAssets/issues" }, "easyprivacy": { "content": "filters", @@ -183,7 +222,7 @@ "https://easylist-downloads.adblockplus.org/easyprivacy.txt", "assets/thirdparties/easylist-downloads.adblockplus.org/easyprivacy.txt" ], - "supportURL": "https://forums.lanik.us/" + "supportURL": "https://easylist.to/" }, "urlhaus-1": { "content": "filters", @@ -191,25 +230,40 @@ "title": "Online Malicious URL Blocklist", "contentURL": [ "https://curben.gitlab.io/malware-filter/urlhaus-filter-online.txt", - "https://raw.githubusercontent.com/curbengh/urlhaus-filter/master/urlhaus-filter-online.txt", "assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt" ], "cdnURLs": [ - "https://cdn.statically.io/gl/curben/urlhaus-filter/master/urlhaus-filter-online.txt", - "https://gitcdn.xyz/repo/curbengh/urlhaus-filter/master/urlhaus-filter-online.txt", - "https://cdn.jsdelivr.net/gh/curbengh/urlhaus-filter/urlhaus-filter-online.txt", - "https://raw.githubusercontent.com/curbengh/urlhaus-filter/master/urlhaus-filter-online.txt", - "https://curben.gitlab.io/malware-filter/urlhaus-filter-online.txt" + "https://curbengh.github.io/malware-filter/urlhaus-filter-online.txt", + "https://curben.gitlab.io/urlhaus-filter/urlhaus-filter-online.txt", + "https://malware-filter.pages.dev/urlhaus-filter-online.txt" ], - "supportURL": "https://gitlab.com/curben/urlhaus-filter#urlhaus-malicious-url-blocklist" + "supportURL": "https://gitlab.com/curben/urlhaus-filter#malicious-url-blocklist" }, - "spam404-0": { + "curben-phishing": { "content": "filters", "group": "malware", "off": true, - "title": "Spam404", - "contentURL": "https://raw.githubusercontent.com/Spam404/lists/master/adblock-list.txt", - "supportURL": "http://www.spam404.com/" + "title": "Phishing URL Blocklist", + "contentURL": "https://curben.gitlab.io/malware-filter/phishing-filter.txt", + "cdnURLs": [ + "https://curbengh.github.io/phishing-filter/phishing-filter.txt", + "https://curben.gitlab.io/phishing-filter/phishing-filter.txt", + "https://phishing-filter.pages.dev/phishing-filter.txt" + ], + "supportURL": "https://gitlab.com/curben/phishing-filter#phishing-url-blocklist" + }, + "curben-pup": { + "content": "filters", + "group": "malware", + "off": true, + "title": "PUP Domains Blocklist", + "contentURL": "https://curben.gitlab.io/malware-filter/pup-filter.txt", + "cdnURLs": [ + "https://curbengh.github.io/pup-filter/pup-filter.txt", + "https://curben.gitlab.io/pup-filter/pup-filter.txt", + "https://pup-filter.pages.dev/pup-filter.txt" + ], + "supportURL": "https://gitlab.com/curben/pup-filter#pup-domains-blocklist" }, "adguard-annoyance": { "content": "filters", @@ -243,7 +297,7 @@ "off": true, "title": "Fanboy’s Annoyance", "contentURL": "https://secure.fanboy.co.nz/fanboy-annoyance.txt", - "supportURL": "https://forums.lanik.us/" + "supportURL": "https://easylist.to/" }, "fanboy-cookiemonster": { "content": "filters", @@ -262,18 +316,21 @@ "https://easylist.to/easylist/fanboy-social.txt", "https://secure.fanboy.co.nz/fanboy-social.txt" ], - "supportURL": "https://forums.lanik.us/" + "supportURL": "https://easylist.to/" }, "ublock-annoyances": { "content": "filters", "group": "social", "title": "uBlock filters – Annoyances", "off": true, - "contentURL": "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/annoyances.txt", + "contentURL": "https://ublockorigin.github.io/uAssets/filters/annoyances.txt", "cdnURLs": [ - "https://gitcdn.xyz/repo/uBlockOrigin/uAssets/master/filters/annoyances.txt", - "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssets@master/filters/annoyances.txt", - "https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/annoyances.txt" + "https://ublockorigin.github.io/uAssetsCDN/filters/annoyances.txt", + "https://ublockorigin.pages.dev/filters/annoyances.txt", + "https://gitcdn.link/cdn/uBlockOrigin/uAssetsCDN/main/filters/annoyances.txt", + "https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/annoyances.txt", + "https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/annoyances.txt", + "https://combinatronics.io/uBlockOrigin/uAssetsCDN/main/filters/annoyances.txt" ] }, "dpollock-0": { @@ -285,15 +342,6 @@ "contentURL": "https://someonewhocares.org/hosts/hosts", "supportURL": "https://someonewhocares.org/hosts/" }, - "mvps-0": { - "content": "filters", - "group": "multipurpose", - "updateAfter": 11, - "off": true, - "title": "MVPS HOSTS", - "contentURL": "https://winhelp2002.mvps.org/hosts.txt", - "supportURL": "https://winhelp2002.mvps.org/" - }, "plowe-0": { "content": "filters", "group": "multipurpose", @@ -306,6 +354,15 @@ ], "supportURL": "https://pgl.yoyo.org/adservers/" }, + "ALB-0": { + "content": "filters", + "group": "regions", + "off": true, + "title": "ALB: Adblock List for Albania", + "lang": "sq", + "contentURL": "https://raw.githubusercontent.com/AnXh3L0/blocklist/master/albanian-easylist-addition/Albania.txt", + "supportURL": "https://github.com/AnXh3L0/blocklist" + }, "ara-0": { "content": "filters", "group": "regions", @@ -329,7 +386,7 @@ "group": "regions", "off": true, "title": "CHN: AdGuard Chinese (中文)", - "lang": "zh", + "lang": "ug zh", "contentURL": "https://filters.adtidy.org/extension/ublock/filters/224.txt", "supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters" }, @@ -347,7 +404,7 @@ "group": "regions", "off": true, "title": "DEU: EasyList Germany", - "lang": "de", + "lang": "de dsb hsb lb rm", "contentURL": [ "https://easylist.to/easylistgermany/easylistgermany.txt", "https://easylist-downloads.adblockplus.org/easylistgermany.txt" @@ -377,7 +434,7 @@ "group": "regions", "off": true, "title": "FRA: AdGuard Français", - "lang": "ar br fr oc", + "lang": "ar br ff fr lb oc son", "contentURL": "https://filters.adtidy.org/extension/ublock/filters/16.txt", "supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters" }, @@ -448,14 +505,6 @@ "contentURL": "https://easylist-downloads.adblockplus.org/easylistitaly.txt", "supportURL": "https://forums.lanik.us/viewforum.php?f=96" }, - "ITA-1": { - "content": "filters", - "group": "regions", - "off": true, - "title": "ITA: ABP X Files", - "contentURL": "https://raw.githubusercontent.com/gioxx/xfiles/master/filtri.txt", - "supportURL": "https://xfiles.noads.it/" - }, "JPN-1": { "content": "filters", "group": "regions", @@ -482,6 +531,11 @@ "title": "LTU: EasyList Lithuania", "lang": "lt", "contentURL": "https://raw.githubusercontent.com/EasyList-Lithuania/easylist_lithuania/master/easylistlithuania.txt", + "cdnURLs": [ + "https://gitcdn.xyz/repo/EasyList-Lithuania/easylist_lithuania/master/easylistlithuania.txt", + "https://cdn.jsdelivr.net/gh/EasyList-Lithuania/easylist_lithuania@master/easylistlithuania.txt", + "https://cdn.statically.io/gl/DandelionSprout/easylist_lithuania/raw/master/easylistlithuania.txt" + ], "supportURL": "https://github.com/EasyList-Lithuania/easylist_lithuania" }, "LVA-0": { @@ -497,10 +551,10 @@ "content": "filters", "group": "regions", "off": true, - "title": "NLD: EasyList Dutch", + "title": "NLD: EasyDutch", "lang": "af fy nl", - "contentURL": "https://easylist-downloads.adblockplus.org/easylistdutch.txt", - "supportURL": "https://forums.lanik.us/viewforum.php?f=100" + "contentURL": "https://raw.githubusercontent.com/EasyDutch-uBO/EasyDutch/main/EasyDutch.txt", + "supportURL": "https://github.com/EasyDutch-uBO/EasyDutch/" }, "NOR-0": { "content": "filters", @@ -509,8 +563,12 @@ "title": "NOR, DNK, ISL: Dandelion Sprouts nordiske filtre", "lang": "nb nn no da is", "contentURL": [ - "https://raw.githubusercontent.com/DandelionSprout/adfilt/master/NorwegianList.txt", - "https://repo.or.cz/FilterMirrorRepo.git/blob_plain/refs/heads/master:/NorwegianList.txt" + "https://raw.githubusercontent.com/DandelionSprout/adfilt/master/NorwegianList.txt" + ], + "cdnURLs": [ + "https://gitcdn.xyz/repo/DandelionSprout/adfilt/master/NorwegianList.txt", + "https://cdn.jsdelivr.net/gh/DandelionSprout/adfilt@master/NorwegianList.txt", + "https://cdn.statically.io/gl/DandelionSprout/adfilt/master/NorwegianList.txt" ], "supportURL": "https://github.com/DandelionSprout/adfilt" }, @@ -519,7 +577,7 @@ "group": "regions", "off": true, "title": "POL: Oficjalne Polskie Filtry do AdBlocka, uBlocka Origin i AdGuarda", - "lang": "pl", + "lang": "szl pl", "contentURL": "https://raw.githubusercontent.com/MajkiIT/polish-ads-filter/master/polish-adblock-filters/adblock.txt", "supportURL": "https://github.com/MajkiIT/polish-ads-filter/issues", "instructionURL": "https://github.com/MajkiIT/polish-ads-filter#polish-filters-for-adblock-ublock-origin--adguard" @@ -529,7 +587,7 @@ "group": "regions", "off": true, "title": "POL: Oficjalne polskie filtry przeciwko alertom o Adblocku", - "lang": "pl", + "lang": "szl pl", "contentURL": "https://raw.githubusercontent.com/olegwukr/polish-privacy-filters/master/anti-adblock.txt", "supportURL": "https://github.com/olegwukr/polish-privacy-filters/issues" }, @@ -550,7 +608,7 @@ "group": "regions", "off": true, "title": "RUS: RU AdList", - "lang": "be kk ru uk uz", + "lang": "be kk tt ru uk uz", "contentURL": "https://easylist-downloads.adblockplus.org/advblock+cssfixes.txt", "supportURL": "https://forums.lanik.us/viewforum.php?f=102", "instructionURL": "https://forums.lanik.us/viewtopic.php?f=102&t=22512" @@ -560,7 +618,7 @@ "group": "regions", "off": true, "title": "spa: EasyList Spanish", - "lang": "an ast ca es eu gl", + "lang": "an ast ca cak es eu gn gl trs quz", "contentURL": "https://easylist-downloads.adblockplus.org/easylistspanish.txt", "supportURL": "https://forums.lanik.us/viewforum.php?f=103" }, @@ -569,7 +627,7 @@ "group": "regions", "off": true, "title": "spa, por: AdGuard Spanish/Portuguese", - "lang": "an ast ca es eu gl pt", + "lang": "an ast ca cak es eu gl gn trs pt quz", "contentURL": "https://filters.adtidy.org/extension/ublock/filters/9.txt", "supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters", "instructionURL": "https://kb.adguard.com/en/general/adguard-ad-filters" diff -Nru ublock-origin-1.37.0+dfsg/assets/resources/scriptlets.js ublock-origin-1.42.0+dfsg/assets/resources/scriptlets.js --- ublock-origin-1.37.0+dfsg/assets/resources/scriptlets.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/assets/resources/scriptlets.js 2022-05-06 01:15:22.000000000 +0000 @@ -723,6 +723,27 @@ })(); +/// refresh-defuser.js +// https://www.reddit.com/r/uBlockOrigin/comments/q0frv0/while_reading_a_sports_article_i_was_redirected/hf7wo9v/ +(function() { + const arg1 = '{{1}}'; + const defuse = ( ) => { + const meta = document.querySelector('meta[http-equiv="refresh" i][content]'); + if ( meta === null ) { return; } + const s = arg1 === '' || arg1 === '{{1}}' + ? meta.getAttribute('content') + : arg1; + const ms = Math.max(parseFloat(s) || 0, 0) * 1000; + setTimeout(( ) => { window.stop(); }, ms); + }; + if ( document.readyState === 'loading' ) { + document.addEventListener('DOMContentLoaded', defuse, { once: true }); + } else { + defuse(); + } +})(); + + /// remove-attr.js /// alias ra.js (function() { @@ -767,7 +788,7 @@ rmattr(); if ( /\bstay\b/.test(behavior) === false ) { return; } const observer = new MutationObserver(mutationHandler); - observer.observe(document.documentElement, { + observer.observe(document, { attributes: true, attributeFilter: tokens, childList: true, @@ -826,7 +847,7 @@ rmclass(); if ( /\bstay\b/.test(behavior) === false ) { return; } const observer = new MutationObserver(mutationHandler); - observer.observe(document.documentElement, { + observer.observe(document, { attributes: true, attributeFilter: [ 'class' ], childList: true, @@ -924,7 +945,7 @@ const odesc = Object.getOwnPropertyDescriptor(owner, prop); let prevGetter, prevSetter; if ( odesc instanceof Object ) { - if ( odesc.configurable === false ) { return; } + owner[prop] = cValue; if ( odesc.get instanceof Function ) { prevGetter = odesc.get; } @@ -932,21 +953,24 @@ prevSetter = odesc.set; } } - Object.defineProperty(owner, prop, { - configurable, - get() { - if ( prevGetter !== undefined ) { - prevGetter(); - } - return handler.getter(); // cValue - }, - set(a) { - if ( prevSetter !== undefined ) { - prevSetter(a); + try { + Object.defineProperty(owner, prop, { + configurable, + get() { + if ( prevGetter !== undefined ) { + prevGetter(); + } + return handler.getter(); // cValue + }, + set(a) { + if ( prevSetter !== undefined ) { + prevSetter(a); + } + handler.setter(a); } - handler.setter(a); - } - }); + }); + } catch(ex) { + } }; const trapChain = function(owner, chain) { const pos = chain.indexOf('.'); @@ -1165,6 +1189,111 @@ })(); +/// no-xhr-if.js +(function() { + const xhrInstances = new WeakMap(); + let arg1 = '{{1}}'; + if ( arg1 === '{{1}}' ) { arg1 = ''; } + const needles = []; + for ( const condition of arg1.split(/\s+/) ) { + if ( condition === '' ) { continue; } + const pos = condition.indexOf(':'); + let key, value; + if ( pos !== -1 ) { + key = condition.slice(0, pos); + value = condition.slice(pos + 1); + } else { + key = 'url'; + value = condition; + } + if ( value === '' ) { + value = '^'; + } else if ( value.startsWith('/') && value.endsWith('/') ) { + value = value.slice(1, -1); + } else { + value = value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + } + needles.push({ key, re: new RegExp(value) }); + } + const log = needles.length === 0 ? console.log.bind(console) : undefined; + self.XMLHttpRequest = class extends self.XMLHttpRequest { + open(...args) { + if ( log !== undefined ) { + log(`uBO: xhr.open(${args.join(', ')})`); + } else { + const argNames = [ 'method', 'url' ]; + const haystack = new Map(); + for ( let i = 0; i < args.length && i < argNames.length; i++ ) { + haystack.set(argNames[i], args[i]); + } + if ( haystack.size !== 0 ) { + let matches = true; + for ( const { key, re } of needles ) { + matches = re.test(haystack.get(key) || ''); + if ( matches === false ) { break; } + } + if ( matches ) { + xhrInstances.set(this, haystack); + } + } + } + return super.open(...args); + } + send(...args) { + const haystack = xhrInstances.get(this); + if ( haystack === undefined ) { + return super.send(...args); + } + Object.defineProperties(this, { + readyState: { value: 4, writable: false }, + response: { value: '', writable: false }, + responseText: { value: '', writable: false }, + responseURL: { value: haystack.get('url'), writable: false }, + responseXML: { value: '', writable: false }, + status: { value: 200, writable: false }, + statusText: { value: 'OK', writable: false }, + }); + if ( this.onreadystatechange !== null ) { + setTimeout(( ) => { + const ev = new Event('readystatechange'); + this.onreadystatechange.call(this, ev); + }, 1); + } + if ( this.onload !== null ) { + setTimeout(( ) => { + const ev = new Event('load'); + this.onload.call(this, ev); + }, 1); + } + } + }; +})(); + + +// https://github.com/uBlockOrigin/uAssets/issues/10323#issuecomment-992312847 +// https://github.com/AdguardTeam/Scriptlets/issues/158 +/// window-close-if.js +(function() { + const arg1 = '{{1}}'; + let reStr; + if ( arg1 === '{{1}}' || arg1 === '' ) { + reStr = '^'; + } else if ( arg1.startsWith('/') && arg1.endsWith('/') ) { + reStr = arg1.slice(1, -1); + } else { + reStr = arg1.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + } + try { + const re = new RegExp(reStr); + if ( re.test(`${window.location.pathname}${window.location.search}`) ) { + window.close(); + } + } catch(ex) { + console.log(ex); + } +})(); + + // https://github.com/gorhill/uBlock/issues/1228 /// window.name-defuser (function() { @@ -1429,63 +1558,62 @@ /// damoh-defuser.js (function() { - var handled = new WeakSet(); - var asyncTimer; - var cleanVideo = function() { + const handled = new WeakSet(); + let asyncTimer; + const cleanVideo = function() { asyncTimer = undefined; - var v = document.querySelector('video'); + const v = document.querySelector('video'); if ( v === null ) { return; } if ( handled.has(v) ) { return; } handled.add(v); v.pause(); v.controls = true; - var el = v.querySelector('meta[itemprop="contentURL"][content]'); + let el = v.querySelector('meta[itemprop="contentURL"][content]'); if ( el === null ) { return; } v.src = el.getAttribute('content'); el = v.querySelector('meta[itemprop="thumbnailUrl"][content]'); if ( el !== null ) { v.poster = el.getAttribute('content'); } }; - var cleanVideoAsync = function() { + const cleanVideoAsync = function() { if ( asyncTimer !== undefined ) { return; } asyncTimer = window.requestAnimationFrame(cleanVideo); }; - var observer = new MutationObserver(cleanVideoAsync); - observer.observe(document.documentElement, { childList: true, subtree: true }); + const observer = new MutationObserver(cleanVideoAsync); + observer.observe(document, { childList: true, subtree: true }); })(); -// https://github.com/uBlockOrigin/uAssets/issues/5184 /// twitch-videoad.js +// https://github.com/uBlockOrigin/uAssets/issues/5184 +// https://github.com/pixeltris/TwitchAdSolutions/commit/6be4c5313035 +// https://github.com/pixeltris/TwitchAdSolutions/commit/3d2883ea9e3a +// https://github.com/pixeltris/TwitchAdSolutions/commit/7233b5fd2284 +// https://github.com/pixeltris/TwitchAdSolutions/commit/aad8946dab2b (function() { if ( /(^|\.)twitch\.tv$/.test(document.location.hostname) === false ) { return; } - var realFetch = window.fetch; - window.fetch = function(input) { - if ( arguments.length >= 2 && typeof input === 'string' && input.includes('/access_token') ) { - var url = new URL(arguments[0]); - url.searchParams.delete('platform'); - arguments[0] = url.href; + window.fetch = new Proxy(window.fetch, { + apply: function(target, thisArg, args) { + const [ url, init ] = args; + if ( + typeof url === 'string' && + url.includes('gql') && + init instanceof Object && + init.headers instanceof Object && + typeof init.body === 'string' && + init.body.includes('PlaybackAccessToken') && + init.body.includes('"isVod":true') === false + ) { + const { headers } = init; + if ( typeof headers['X-Device-Id'] === 'string' ) { + headers['X-Device-Id'] = 'twitch-web-wall-mason'; + } + if ( typeof headers['Device-ID'] === 'string' ) { + headers['Device-ID'] = 'twitch-web-wall-mason'; + } + } + return Reflect.apply(target, thisArg, args); } - return realFetch.apply(this, arguments); - }; -})(); - - -// https://github.com/uBlockOrigin/uAssets/issues/2912 -/// fingerprint2.js -(function() { - let browserId = ''; - for ( let i = 0; i < 8; i++ ) { - browserId += (Math.random() * 0x10000 + 0x1000 | 0).toString(16).slice(-4); - } - const fp2 = function(){}; - fp2.get = function(opts, cb) { - if ( !cb ) { cb = opts; } - setTimeout(( ) => { cb(browserId, []); }, 1); - }; - fp2.prototype = { - get: fp2.get - }; - window.Fingerprint2 = fp2; + }); })(); diff -Nru ublock-origin-1.37.0+dfsg/debian/changelog ublock-origin-1.42.0+dfsg/debian/changelog --- ublock-origin-1.37.0+dfsg/debian/changelog 2021-08-28 20:29:16.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/changelog 2022-07-01 22:10:52.000000000 +0000 @@ -1,8 +1,36 @@ -ublock-origin (1.37.0+dfsg-1~deb10u1) buster; urgency=medium +ublock-origin (1.42.0+dfsg-1~deb10u1) buster; urgency=medium - * Backport to Debian 10 "Buster". + * Backport to Buster. + * Correct the mistake in debian/changelog and produce a valid changelog file. + (Closes: #996249) - -- Markus Koschany Sat, 28 Aug 2021 22:29:16 +0200 + -- Markus Koschany Sat, 02 Jul 2022 00:10:52 +0200 + +ublock-origin (1.42.0+dfsg-1) unstable; urgency=medium + + * New upstream version 1.42.0+dfsg. + - Fix FTBFS unexpected token get_local. (Closes: #1005502) + + -- Markus Koschany Fri, 06 May 2022 03:17:53 +0200 + +ublock-origin (1.40.2+dfsg-1) unstable; urgency=medium + + * New upstream version 1.40.2+dfsg. + + -- Markus Koschany Thu, 30 Dec 2021 23:12:02 +0100 + +ublock-origin (1.39.0+dfsg-2) unstable; urgency=medium + + * Fix debian/watch to detect new upstream releases. + + -- Markus Koschany Fri, 26 Nov 2021 23:10:11 +0100 + +ublock-origin (1.39.0+dfsg-1) unstable; urgency=medium + + * New upstream version 1.39.0+dfsg. + * Skip the tests. + + -- Markus Koschany Fri, 26 Nov 2021 22:34:21 +0100 ublock-origin (1.37.0+dfsg-1) unstable; urgency=medium @@ -29,7 +57,6 @@ * Declare compliance with Debian Policy 4.5.1. -- Markus Koschany Sat, 26 Dec 2020 20:48:03 +0100 ->>>>>>> master ublock-origin (1.30.0+dfsg-1) unstable; urgency=medium diff -Nru ublock-origin-1.37.0+dfsg/debian/copyright ublock-origin-1.42.0+dfsg/debian/copyright --- ublock-origin-1.37.0+dfsg/debian/copyright 2021-08-28 20:29:16.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/copyright 2022-07-01 22:10:52.000000000 +0000 @@ -22,8 +22,8 @@ uAssets/thirdparties/someonewhocares.org Files: * -Copyright: (C) 2014-2019 The uBlock Origin authors - (C) 2014-2021 Raymond Hill +Copyright: (C) 2014-2022 The uBlock Origin authors + (C) 2014-2022 Raymond Hill License: GPL-3+ Files: uAssets/thirdparties/easylist-downloads.adblockplus.org/easylist.txt @@ -49,7 +49,7 @@ License: MIT Files: src/lib/lz4/* -Copyright: 2018, Raymond Hill +Copyright: 2018-2021, Raymond Hill License: BSD-2-clause Files: src/css/fonts/Inter/* @@ -99,7 +99,7 @@ Files: debian/* Copyright: 2015 Matthew Bekkema 2016 Sean Whitton - 2018-2021, Markus Koschany + 2018-2022, Markus Koschany License: GPL-3+ Files: debian/upstream/* diff -Nru ublock-origin-1.37.0+dfsg/debian/patches/disable-nonfree-filters-by-default.patch ublock-origin-1.42.0+dfsg/debian/patches/disable-nonfree-filters-by-default.patch --- ublock-origin-1.37.0+dfsg/debian/patches/disable-nonfree-filters-by-default.patch 2021-08-28 20:29:16.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/patches/disable-nonfree-filters-by-default.patch 2022-07-01 22:10:52.000000000 +0000 @@ -1,5 +1,5 @@ From: Markus Koschany -Date: Thu, 27 Aug 2020 23:48:22 +0200 +Date: Fri, 6 May 2022 03:21:36 +0200 Subject: disable-nonfree-filters-by-default --- @@ -7,11 +7,11 @@ 1 file changed, 1 insertion(+) diff --git a/assets/assets.json b/assets/assets.json -index fff3902..eda141f 100644 +index d40b0db..4d81cd2 100644 --- a/assets/assets.json +++ b/assets/assets.json -@@ -246,6 +246,7 @@ - "supportURL": "https://winhelp2002.mvps.org/" +@@ -343,6 +343,7 @@ + "supportURL": "https://someonewhocares.org/hosts/" }, "plowe-0": { + "off": true, diff -Nru ublock-origin-1.37.0+dfsg/debian/patches/lz4-block-codec.wat.patch ublock-origin-1.42.0+dfsg/debian/patches/lz4-block-codec.wat.patch --- ublock-origin-1.37.0+dfsg/debian/patches/lz4-block-codec.wat.patch 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/patches/lz4-block-codec.wat.patch 2022-07-01 22:10:52.000000000 +0000 @@ -0,0 +1,2544 @@ +From: Markus Koschany +Date: Fri, 6 May 2022 03:26:54 +0200 +Subject: lz4-block-codec.wat + +get_local is local.get now. Great. + +Bug-Debian: https://bugs.debian.org/1005502 +Forwarded: not yet +--- + src/js/wasm/biditrie.wat | 306 +++++++------- + src/js/wasm/hntrie.wat | 292 ++++++------- + src/lib/lz4/lz4-block-codec.wat | 462 ++++++++++----------- + src/lib/publicsuffixlist/wasm/publicsuffixlist.wat | 142 +++---- + 4 files changed, 601 insertions(+), 601 deletions(-) + +diff --git a/src/js/wasm/biditrie.wat b/src/js/wasm/biditrie.wat +index b98d879..ce0aa3c 100644 +--- a/src/js/wasm/biditrie.wat ++++ b/src/js/wasm/biditrie.wat +@@ -64,92 +64,92 @@ + (local $x i32) + (local $y i32) + ;; trie index is a uint32 offset, need to convert to uint8 offset +- get_local $icell ++ local.get $icell + i32.const 2 + i32.shl +- set_local $icell ++ local.set $icell + ;; const buf32 = this.buf32; + ;; const buf8 = this.buf8; + ;; const char0 = buf32[CHAR0_SLOT]; + i32.const 2060 + i32.load align=4 +- set_local $char0 ++ local.set $char0 + ;; const aR = buf32[HAYSTACK_SIZE_SLOT]; + i32.const 2048 + i32.load align=4 +- set_local $aR ++ local.set $aR + ;; let al = ai; +- get_local $ai +- set_local $al ++ local.get $ai ++ local.set $al + block $matchFound + block $matchNotFound + ;; for (;;) { + loop $mainLoop + ;; x = buf8[al]; +- get_local $al ++ local.get $al + i32.load8_u +- set_local $x ++ local.set $x + ;; al += 1; +- get_local $al ++ local.get $al + i32.const 1 + i32.add +- set_local $al ++ local.set $al + ;; // find matching segment + ;; for (;;) { + block $nextSegment loop $findSegment + ;; y = buf32[icell+SEGMENT_INFO]; +- get_local $icell ++ local.get $icell + i32.load offset=8 align=4 +- tee_local $y ++ local.tee $y + ;; bl = char0 + (y & 0x00FFFFFF); + i32.const 0x00FFFFFF + i32.and +- get_local $char0 ++ local.get $char0 + i32.add +- tee_local $bl ++ local.tee $bl + ;; if ( buf8[bl] === x ) { + i32.load8_u +- get_local $x ++ local.get $x + i32.eq + if + ;; y = (y >>> 24) - 1; +- get_local $y ++ local.get $y + i32.const 24 + i32.shr_u + i32.const 1 + i32.sub +- tee_local $y ++ local.tee $y + ;; if ( n !== 0 ) { + if + ;; x = al + y; +- get_local $y +- get_local $al ++ local.get $y ++ local.get $al + i32.add +- tee_local $x ++ local.tee $x + ;; if ( x > aR ) { return 0; } +- get_local $aR ++ local.get $aR + i32.gt_u + br_if $matchNotFound + ;; for (;;) { + loop + ;; bl += 1; +- get_local $bl ++ local.get $bl + i32.const 1 + i32.add +- tee_local $bl ++ local.tee $bl + ;; if ( buf8[bl] !== buf8[al] ) { return 0; } + i32.load8_u +- get_local $al ++ local.get $al + i32.load8_u + i32.ne + br_if $matchNotFound + ;; al += 1; +- get_local $al ++ local.get $al + i32.const 1 + i32.add +- tee_local $al ++ local.tee $al + ;; if ( al === x ) { break; } +- get_local $x ++ local.get $x + i32.ne + br_if 0 + end +@@ -158,11 +158,11 @@ + br $nextSegment + end + ;; icell = buf32[icell+CELL_OR]; +- get_local $icell ++ local.get $icell + i32.load offset=4 align=4 + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; if ( icell === 0 ) { return 0; } + i32.eqz + br_if $matchNotFound +@@ -171,14 +171,14 @@ + end end + ;; // next segment + ;; icell = buf32[icell+CELL_AND]; +- get_local $icell ++ local.get $icell + i32.load align=4 + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; const x = buf32[icell+BCELL_EXTRA]; + i32.load offset=8 align=4 +- tee_local $x ++ local.tee $x + ;; if ( x <= BCELL_EXTRA_MAX ) { + i32.const 0x00FFFFFF + i32.le_u +@@ -186,43 +186,43 @@ + ;; if ( x !== 0 && this.matchesExtra(ai, al, x) !== 0 ) { + ;; return 1; + ;; } +- get_local $x ++ local.get $x + if +- get_local $ai +- get_local $al +- get_local $x ++ local.get $ai ++ local.get $al ++ local.get $x + call $matchesExtra + br_if $matchFound + end + ;; x = buf32[icell+BCELL_ALT_AND]; +- get_local $icell ++ local.get $icell + i32.load offset=4 align=4 + i32.const 2 + i32.shl +- tee_local $x ++ local.tee $x + ;; if ( x !== 0 && this.matchesLeft(x, ai, al) !== 0 ) { + if +- get_local $x +- get_local $ai +- get_local $al ++ local.get $x ++ local.get $ai ++ local.get $al + call $matchesLeft + br_if $matchFound + ;; } + end + ;; icell = buf32[icell+BCELL_NEXT_AND]; +- get_local $icell ++ local.get $icell + i32.load align=4 + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; if ( icell === 0 ) { return 0; } + i32.eqz + br_if $matchNotFound + ;; } + end + ;; if ( al === aR ) { return 0; } +- get_local $al +- get_local $aR ++ local.get $al ++ local.get $aR + i32.ne + br_if $mainLoop + ;; } +@@ -255,60 +255,60 @@ + ;; const char0 = buf32[CHAR0_SLOT]; + i32.const 2060 + i32.load align=4 +- set_local $char0 ++ local.set $char0 + block $matchFound + block $matchNotFound + ;; for (;;) { + loop $mainLoop + ;; if ( ar === 0 ) { return 0; } +- get_local $ar ++ local.get $ar + i32.eqz + br_if $matchNotFound + ;; ar -= 1; +- get_local $ar ++ local.get $ar + i32.const 1 + i32.sub +- tee_local $ar ++ local.tee $ar + ;; x = buf8[ar]; + i32.load8_u +- set_local $x ++ local.set $x + ;; // find matching segment + ;; for (;;) { + block $nextSegment loop $findSegment + ;; y = buf32[icell+SEGMENT_INFO]; +- get_local $icell ++ local.get $icell + i32.load offset=8 align=4 +- tee_local $y ++ local.tee $y + ;; br = char0 + (y & 0x00FFFFFF); + i32.const 0x00FFFFFF + i32.and +- get_local $char0 ++ local.get $char0 + i32.add +- tee_local $br ++ local.tee $br + ;; y = (y >>> 24) - 1; +- get_local $y ++ local.get $y + i32.const 24 + i32.shr_u + i32.const 1 + i32.sub +- tee_local $y ++ local.tee $y + ;; br += y; + i32.add +- tee_local $br ++ local.tee $br + ;; if ( buf8[br] === x ) { + i32.load8_u +- get_local $x ++ local.get $x + i32.eq + if + ;; // all characters in segment must match + ;; if ( y !== 0 ) { +- get_local $y ++ local.get $y + if + ;; x = ar - y; +- get_local $ar +- get_local $y ++ local.get $ar ++ local.get $y + i32.sub +- tee_local $x ++ local.tee $x + ;; if ( x < 0 ) { return 0; } + i32.const 0 + i32.lt_s +@@ -317,21 +317,21 @@ + loop + ;; ar -= 1; br -= 1; + ;; if ( buf8[ar] !== buf8[br] ) { return 0; } +- get_local $ar ++ local.get $ar + i32.const 1 + i32.sub +- tee_local $ar ++ local.tee $ar + i32.load8_u +- get_local $br ++ local.get $br + i32.const 1 + i32.sub +- tee_local $br ++ local.tee $br + i32.load8_u + i32.ne + br_if $matchNotFound + ;; if ( ar === x ) { break; } +- get_local $ar +- get_local $x ++ local.get $ar ++ local.get $x + i32.ne + br_if 0 + end +@@ -340,11 +340,11 @@ + br $nextSegment + end + ;; icell = buf32[icell+CELL_OR]; +- get_local $icell ++ local.get $icell + i32.load offset=4 align=4 + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; if ( icell === 0 ) { return 0; } + i32.eqz + br_if $matchNotFound +@@ -353,14 +353,14 @@ + end end + ;; // next segment + ;; icell = buf32[icell+CELL_AND]; +- get_local $icell ++ local.get $icell + i32.load align=4 + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; const x = buf32[icell+BCELL_EXTRA]; + i32.load offset=8 align=4 +- tee_local $x ++ local.tee $x + ;; if ( x <= BCELL_EXTRA_MAX ) { + i32.const 0x00FFFFFF + i32.le_u +@@ -368,20 +368,20 @@ + ;; if ( x !== 0 && this.matchesExtra(ar, r, x) !== 0 ) { + ;; return 1; + ;; } +- get_local $x ++ local.get $x + if +- get_local $ar +- get_local $r +- get_local $x ++ local.get $ar ++ local.get $r ++ local.get $x + call $matchesExtra + br_if $matchFound + end + ;; icell = buf32[icell+BCELL_NEXT_AND]; +- get_local $icell ++ local.get $icell + i32.load align=4 + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; if ( icell === 0 ) { return 0; } + i32.eqz + br_if $matchNotFound +@@ -414,35 +414,35 @@ + ;; if ( ix !== 1 ) { + ;; const iu = this.extraHandler(l, r, ix); + ;; if ( iu === 0 ) { return 0; } +- get_local $ix ++ local.get $ix + i32.const 1 + i32.ne + if +- get_local $l +- get_local $r +- get_local $ix ++ local.get $l ++ local.get $r ++ local.get $ix + call $extraHandler +- tee_local $iu ++ local.tee $iu + i32.eqz + br_if $fail + ;; } else { + ;; iu = -1; + else + i32.const -1 +- set_local $iu ++ local.set $iu + ;; } + end + ;; this.buf32[RESULT_IU_SLOT] = iu; + i32.const 2076 +- get_local $iu ++ local.get $iu + i32.store align=4 + ;; this.buf32[RESULT_L_SLOT] = l; + i32.const 2068 +- get_local $l ++ local.get $l + i32.store align=4 + ;; this.buf32[RESULT_R_SLOT] = r; + i32.const 2072 +- get_local $r ++ local.get $r + i32.store align=4 + end ;; $succeed + i32.const 1 +@@ -470,49 +470,49 @@ + ;; if ( haystackLeft < 0 || (haystackLeft + needleLen) > haystackRight ) { + ;; return 0; + ;; } +- get_local $haystackLeft ++ local.get $haystackLeft + i32.const 0 + i32.lt_s + br_if $fail +- get_local $haystackLeft +- get_local $needleLen ++ local.get $haystackLeft ++ local.get $needleLen + i32.add +- get_local $haystackRight ++ local.get $haystackRight + i32.gt_u + br_if $fail + ;; const charCodes = this.buf8; + ;; needleLeft += this.buf32[CHAR0_SLOT]; +- get_local $needleLeft ++ local.get $needleLeft + i32.const 2060 ;; CHAR0_SLOT memory address + i32.load align=4 ;; CHAR0 memory address + i32.add ;; needle memory address +- tee_local $needleLeft ++ local.tee $needleLeft + ;; const needleRight = needleLeft + needleLen; +- get_local $needleLen ++ local.get $needleLen + i32.add +- set_local $needleRight ++ local.set $needleRight + ;; while ( charCodes[haystackLeft] === charCodes[needleLeft] ) { + loop $compare +- get_local $haystackLeft ++ local.get $haystackLeft + i32.load8_u +- get_local $needleLeft ++ local.get $needleLeft + i32.load8_u + i32.ne + br_if $fail + ;; needleLeft += 1; +- get_local $needleLeft ++ local.get $needleLeft + i32.const 1 + i32.add +- tee_local $needleLeft ++ local.tee $needleLeft + ;; if ( needleLeft === needleRight ) { return 1; } +- get_local $needleRight ++ local.get $needleRight + i32.eq + br_if $succeed + ;; haystackLeft += 1; + i32.const 1 +- get_local $haystackLeft ++ local.get $haystackLeft + i32.add +- set_local $haystackLeft ++ local.set $haystackLeft + br $compare + end + ;; } +@@ -545,76 +545,76 @@ + block $fail + block $succeed + ;; if ( needleLen === 0 ) { return haystackLeft; } +- get_local $needleLen ++ local.get $needleLen + i32.eqz + br_if $succeed + ;; haystackEnd -= needleLen; +- get_local $haystackEnd +- get_local $needleLen ++ local.get $haystackEnd ++ local.get $needleLen + i32.sub +- tee_local $haystackEnd ++ local.tee $haystackEnd + ;; if ( haystackEnd < haystackLeft ) { return -1; } +- get_local $haystackLeft ++ local.get $haystackLeft + i32.lt_s + br_if $fail + ;; needleLeft += this.buf32[CHAR0_SLOT]; +- get_local $needleLeft ++ local.get $needleLeft + i32.const 2060 ;; CHAR0_SLOT memory address + i32.load align=4 ;; CHAR0 memory address + i32.add ;; needle memory address +- tee_local $needleLeft ++ local.tee $needleLeft + ;; const needleRight = needleLeft + needleLen; +- get_local $needleLen ++ local.get $needleLen + i32.add +- set_local $needleRight ++ local.set $needleRight + ;; const charCodes = this.buf8; + ;; for (;;) { + loop $mainLoop + ;; let i = haystackLeft; + ;; let j = needleLeft; +- get_local $haystackLeft +- set_local $i +- get_local $needleLeft +- set_local $j ++ local.get $haystackLeft ++ local.set $i ++ local.get $needleLeft ++ local.set $j + ;; while ( charCodes[i] === charCodes[j] ) { + block $breakMatchChars loop $matchChars +- get_local $i ++ local.get $i + i32.load8_u +- get_local $j ++ local.get $j + i32.load8_u + i32.ne + br_if $breakMatchChars + ;; j += 1; +- get_local $j ++ local.get $j + i32.const 1 + i32.add +- tee_local $j ++ local.tee $j + ;; if ( j === needleRight ) { return haystackLeft; } +- get_local $needleRight ++ local.get $needleRight + i32.eq + br_if $succeed + ;; i += 1; +- get_local $i ++ local.get $i + i32.const 1 + i32.add +- set_local $i ++ local.set $i + br $matchChars + ;; } + end end + ;; haystackLeft += 1; +- get_local $haystackLeft ++ local.get $haystackLeft + i32.const 1 + i32.add +- tee_local $haystackLeft ++ local.tee $haystackLeft + ;; if ( haystackLeft > haystackEnd ) { break; } +- get_local $haystackEnd ++ local.get $haystackEnd + i32.gt_u + br_if $fail + br $mainLoop + ;; } + end + end ;; $succeed +- get_local $haystackLeft ++ local.get $haystackLeft + return + end ;; $fail + ;; return -1; +@@ -640,82 +640,82 @@ + (local $j i32) + (local $c0 i32) + ;; if ( needleLen === 0 ) { return haystackBeg; } +- get_local $needleLen ++ local.get $needleLen + i32.eqz + if +- get_local $haystackBeg ++ local.get $haystackBeg + return + end + block $fail + block $succeed + ;; let haystackLeft = haystackEnd - needleLen; +- get_local $haystackEnd +- get_local $needleLen ++ local.get $haystackEnd ++ local.get $needleLen + i32.sub +- tee_local $haystackLeft ++ local.tee $haystackLeft + ;; if ( haystackLeft < haystackBeg ) { return -1; } +- get_local $haystackBeg ++ local.get $haystackBeg + i32.lt_s + br_if $fail + ;; needleLeft += this.buf32[CHAR0_SLOT]; +- get_local $needleLeft ++ local.get $needleLeft + i32.const 2060 ;; CHAR0_SLOT memory address + i32.load align=4 ;; CHAR0 memory address + i32.add ;; needle memory address +- tee_local $needleLeft ++ local.tee $needleLeft + ;; const needleRight = needleLeft + needleLen; +- get_local $needleLen ++ local.get $needleLen + i32.add +- set_local $needleRight ++ local.set $needleRight + ;; const charCodes = this.buf8; + ;; for (;;) { + loop $mainLoop + ;; let i = haystackLeft; + ;; let j = needleLeft; +- get_local $haystackLeft +- set_local $i +- get_local $needleLeft +- set_local $j ++ local.get $haystackLeft ++ local.set $i ++ local.get $needleLeft ++ local.set $j + ;; while ( charCodes[i] === charCodes[j] ) { + block $breakMatchChars loop $matchChars +- get_local $i ++ local.get $i + i32.load8_u +- get_local $j ++ local.get $j + i32.load8_u + i32.ne + br_if $breakMatchChars + ;; j += 1; +- get_local $j ++ local.get $j + i32.const 1 + i32.add +- tee_local $j ++ local.tee $j + ;; if ( j === needleRight ) { return haystackLeft; } +- get_local $needleRight ++ local.get $needleRight + i32.eq + br_if $succeed + ;; i += 1; +- get_local $i ++ local.get $i + i32.const 1 + i32.add +- set_local $i ++ local.set $i + br $matchChars + ;; } + end end + ;; if ( haystackLeft === haystackBeg ) { break; } + ;; haystackLeft -= 1; +- get_local $haystackLeft +- get_local $haystackBeg ++ local.get $haystackLeft ++ local.get $haystackBeg + i32.eq + br_if $fail +- get_local $haystackLeft ++ local.get $haystackLeft + i32.const 1 + i32.sub +- set_local $haystackLeft ++ local.set $haystackLeft + br $mainLoop + ;; } + end + end ;; $succeed +- get_local $haystackLeft ++ local.get $haystackLeft + return + end ;; $fail + ;; return -1; +diff --git a/src/js/wasm/hntrie.wat b/src/js/wasm/hntrie.wat +index cb62b4c..2bcc46f 100644 +--- a/src/js/wasm/hntrie.wat ++++ b/src/js/wasm/hntrie.wat +@@ -64,19 +64,19 @@ + ;; + i32.const 264 ;; start of char section is stored at addr 264 + i32.load +- set_local $char0 ++ local.set $char0 + ;; let ineedle = this.buf[255]; + i32.const 255 ;; addr of needle is stored at addr 255 + i32.load8_u +- set_local $ineedle ++ local.set $ineedle + ;; let icell = this.buf32[iroot+0]; +- get_local $iroot ++ local.get $iroot + i32.const 2 + i32.shl + i32.load + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; if ( icell === 0 ) { return -1; } + i32.eqz + if +@@ -86,43 +86,43 @@ + ;; for (;;) { + block $noSegment loop $nextSegment + ;; if ( ineedle === 0 ) { return -1; } +- get_local $ineedle ++ local.get $ineedle + i32.eqz + if + i32.const -1 + return + end + ;; ineedle -= 1; +- get_local $ineedle ++ local.get $ineedle + i32.const -1 + i32.add +- tee_local $ineedle ++ local.tee $ineedle + ;; let c = this.buf[ineedle]; + i32.load8_u +- set_local $c ++ local.set $c + ;; for (;;) { + block $foundSegment loop $findSegment + ;; v = this.buf32[icell+2]; +- get_local $icell ++ local.get $icell + i32.load offset=8 +- tee_local $v ++ local.tee $v + ;; i0 = char0 + (v >>> 8); + i32.const 8 + i32.shr_u +- get_local $char0 ++ local.get $char0 + i32.add +- tee_local $i0 ++ local.tee $i0 + ;; if ( this.buf[i0] === c ) { break; } + i32.load8_u +- get_local $c ++ local.get $c + i32.eq + br_if $foundSegment + ;; icell = this.buf32[icell+0]; +- get_local $icell ++ local.get $icell + i32.load + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + i32.eqz + if + i32.const -1 +@@ -131,44 +131,44 @@ + br 0 + end end + ;; let n = v & 0x7F; +- get_local $v ++ local.get $v + i32.const 0x7F + i32.and +- tee_local $n ++ local.tee $n + ;; if ( n > 1 ) { + i32.const 1 + i32.gt_u + if + ;; n -= 1; +- get_local $n ++ local.get $n + i32.const -1 + i32.add +- tee_local $n ++ local.tee $n + ;; if ( n > ineedle ) { return -1; } +- get_local $ineedle ++ local.get $ineedle + i32.gt_u + if + i32.const -1 + return + end +- get_local $i0 ++ local.get $i0 + i32.const 1 + i32.add +- tee_local $i0 ++ local.tee $i0 + ;; const i1 = i0 + n; +- get_local $n ++ local.get $n + i32.add +- set_local $i1 ++ local.set $i1 + ;; do { + loop + ;; ineedle -= 1; +- get_local $ineedle ++ local.get $ineedle + i32.const -1 + i32.add +- tee_local $ineedle ++ local.tee $ineedle + ;; if ( this.buf[i0] !== this.buf[ineedle] ) { return -1; } + i32.load8_u +- get_local $i0 ++ local.get $i0 + i32.load8_u + i32.ne + if +@@ -176,47 +176,47 @@ + return + end + ;; i0 += 1; +- get_local $i0 ++ local.get $i0 + i32.const 1 + i32.add +- tee_local $i0 ++ local.tee $i0 + ;; } while ( i0 < i1 ); +- get_local $i1 ++ local.get $i1 + i32.lt_u + br_if 0 + end + end + ;; if ( (v & 0x80) !== 0 ) { +- get_local $v ++ local.get $v + i32.const 0x80 + i32.and + if + ;; if ( ineedle === 0 || buf8[ineedle-1] === 0x2E /* '.' */ ) { + ;; return ineedle; + ;; } +- get_local $ineedle ++ local.get $ineedle + i32.eqz + if + i32.const 0 + return + end +- get_local $ineedle ++ local.get $ineedle + i32.const -1 + i32.add + i32.load8_u + i32.const 0x2E + i32.eq + if +- get_local $ineedle ++ local.get $ineedle + return + end + end + ;; icell = this.buf32[icell+1]; +- get_local $icell ++ local.get $icell + i32.load offset=4 + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; if ( icell === 0 ) { break; } + br_if 0 + end end +@@ -245,7 +245,7 @@ + ;; let lhnchar = this.buf[255]; + i32.const 255 + i32.load8_u +- tee_local $lhnchar ++ local.tee $lhnchar + ;; if ( lhnchar === 0 ) { return 0; } + i32.eqz + if +@@ -281,21 +281,21 @@ + end + end + ;; let icell = this.buf32[iroot+0]; +- get_local $iroot ++ local.get $iroot + i32.const 2 + i32.shl +- tee_local $iroot ++ local.tee $iroot + i32.load + i32.const 2 + i32.shl +- tee_local $icell ++ local.tee $icell + ;; if ( this.buf32[icell+2] === 0 ) { + i32.eqz + if + ;; this.buf32[iroot+0] = this.addLeafCell(lhnchar); + ;; return 1; +- get_local $iroot +- get_local $lhnchar ++ local.get $iroot ++ local.get $lhnchar + call $addLeafCell + i32.store + i32.const 1 +@@ -304,37 +304,37 @@ + ;; const char0 = this.buf32[HNBIGTRIE_CHAR0_SLOT]; + i32.const 264 + i32.load +- set_local $char0 ++ local.set $char0 + ;; for (;;) { + loop $nextSegment + ;; const v = this.buf32[icell+2]; +- get_local $icell ++ local.get $icell + i32.load offset=8 +- tee_local $v ++ local.tee $v + ;; let isegchar0 = char0 + (v >>> 8); + i32.const 8 + i32.shr_u +- get_local $char0 ++ local.get $char0 + i32.add +- tee_local $isegchar0 ++ local.tee $isegchar0 + ;; if ( this.buf[isegchar0] !== this.buf[lhnchar-1] ) { + i32.load8_u +- get_local $lhnchar ++ local.get $lhnchar + i32.const -1 + i32.add + i32.load8_u + i32.ne + if + ;; inext = this.buf32[icell+0]; +- get_local $icell ++ local.get $icell + i32.load +- tee_local $inext ++ local.tee $inext + ;; if ( inext === 0 ) { + i32.eqz + if + ;; this.buf32[icell+0] = this.addLeafCell(lhnchar); +- get_local $icell +- get_local $lhnchar ++ local.get $icell ++ local.get $lhnchar + call $addLeafCell + i32.store + ;; return 1; +@@ -342,25 +342,25 @@ + return + end + ;; icell = inext; +- get_local $inext ++ local.get $inext + i32.const 2 + i32.shl +- set_local $icell ++ local.set $icell + br $nextSegment + end + ;; let isegchar = 1; + i32.const 1 +- set_local $isegchar ++ local.set $isegchar + ;; lhnchar -= 1; +- get_local $lhnchar ++ local.get $lhnchar + i32.const -1 + i32.add +- set_local $lhnchar ++ local.set $lhnchar + ;; const lsegchar = v & 0x7F; +- get_local $v ++ local.get $v + i32.const 0x7F + i32.and +- tee_local $lsegchar ++ local.tee $lsegchar + ;; if ( lsegchar !== 1 ) { + i32.const 1 + i32.ne +@@ -368,69 +368,69 @@ + ;; for (;;) { + block $mismatch loop + ;; if ( isegchar === lsegchar ) { break; } +- get_local $isegchar +- get_local $lsegchar ++ local.get $isegchar ++ local.get $lsegchar + i32.eq + br_if $mismatch +- get_local $lhnchar ++ local.get $lhnchar + i32.eqz + br_if $mismatch + ;; if ( this.buf[isegchar0+isegchar] !== this.buf[lhnchar-1] ) { break; } +- get_local $isegchar0 +- get_local $isegchar ++ local.get $isegchar0 ++ local.get $isegchar + i32.add + i32.load8_u +- get_local $lhnchar ++ local.get $lhnchar + i32.const -1 + i32.add + i32.load8_u + i32.ne + br_if $mismatch + ;; isegchar += 1; +- get_local $isegchar ++ local.get $isegchar + i32.const 1 + i32.add +- set_local $isegchar ++ local.set $isegchar + ;; lhnchar -= 1; +- get_local $lhnchar ++ local.get $lhnchar + i32.const -1 + i32.add +- set_local $lhnchar ++ local.set $lhnchar + br 0 + end end + end + ;; const boundaryBit = v & 0x80; +- get_local $v ++ local.get $v + i32.const 0x80 + i32.and +- set_local $boundaryBit ++ local.set $boundaryBit + ;; if ( isegchar === lsegchar ) { +- get_local $isegchar +- get_local $lsegchar ++ local.get $isegchar ++ local.get $lsegchar + i32.eq + if + ;; if ( lhnchar === 0 ) { +- get_local $lhnchar ++ local.get $lhnchar + i32.eqz + if + ;; if ( boundaryBit !== 0 ) { return 0; } +- get_local $boundaryBit ++ local.get $boundaryBit + if + i32.const 0 + return + end + ;; this.buf32[icell+2] = v | 0x80; +- get_local $icell +- get_local $v ++ local.get $icell ++ local.get $v + i32.const 0x80 + i32.or + i32.store offset=8 + else + ;; if ( boundaryBit !== 0 ) { +- get_local $boundaryBit ++ local.get $boundaryBit + if + ;; if ( this.buf[lhnchar-1] === 0x2E /* '.' */ ) { return -1; } +- get_local $lhnchar ++ local.get $lhnchar + i32.const -1 + i32.add + i32.load8_u +@@ -442,36 +442,36 @@ + end + end + ;; inext = this.buf32[icell+1]; +- get_local $icell ++ local.get $icell + i32.load offset=4 +- tee_local $inext ++ local.tee $inext + ;; if ( inext !== 0 ) { + if + ;; icell = inext; +- get_local $inext ++ local.get $inext + i32.const 2 + i32.shl +- set_local $icell ++ local.set $icell + ;; continue; + br $nextSegment + end + ;; this.buf32[icell+1] = this.addLeafCell(lhnchar); +- get_local $icell +- get_local $lhnchar ++ local.get $icell ++ local.get $lhnchar + call $addLeafCell + i32.store offset=4 + end + else + ;; isegchar0 -= char0; +- get_local $icell +- get_local $isegchar0 +- get_local $char0 ++ local.get $icell ++ local.get $isegchar0 ++ local.get $char0 + i32.sub +- tee_local $isegchar0 ++ local.tee $isegchar0 + ;; this.buf32[icell+2] = isegchar0 << 8 | isegchar; + i32.const 8 + i32.shl +- get_local $isegchar ++ local.get $isegchar + i32.or + i32.store offset=8 + ;; inext = this.addCell( +@@ -479,39 +479,39 @@ + ;; this.buf32[icell+1], + ;; isegchar0 + isegchar << 8 | boundaryBit | lsegchar - isegchar + ;; ); +- get_local $icell ++ local.get $icell + i32.const 0 +- get_local $icell ++ local.get $icell + i32.load offset=4 +- get_local $isegchar0 +- get_local $isegchar ++ local.get $isegchar0 ++ local.get $isegchar + i32.add + i32.const 8 + i32.shl +- get_local $boundaryBit ++ local.get $boundaryBit + i32.or +- get_local $lsegchar +- get_local $isegchar ++ local.get $lsegchar ++ local.get $isegchar + i32.sub + i32.or + call $addCell +- tee_local $inext ++ local.tee $inext + ;; this.buf32[icell+1] = inext; + i32.store offset=4 + ;; if ( lhnchar !== 0 ) { +- get_local $lhnchar ++ local.get $lhnchar + if + ;; this.buf32[inext+0] = this.addLeafCell(lhnchar); +- get_local $inext ++ local.get $inext + i32.const 2 + i32.shl +- get_local $lhnchar ++ local.get $lhnchar + call $addLeafCell + i32.store + else + ;; this.buf32[icell+2] |= 0x80; +- get_local $icell +- get_local $icell ++ local.get $icell ++ local.get $icell + i32.load offset=8 + i32.const 0x80 + i32.or +@@ -547,24 +547,24 @@ + i32.const 260 + i32.const 260 + i32.load +- tee_local $icell ++ local.tee $icell + i32.const 12 + i32.add + i32.store + ;; this.buf32[icell+0] = idown; +- get_local $icell +- get_local $idown ++ local.get $icell ++ local.get $idown + i32.store + ;; this.buf32[icell+1] = iright; +- get_local $icell +- get_local $iright ++ local.get $icell ++ local.get $iright + i32.store offset=4 + ;; this.buf32[icell+2] = v; +- get_local $icell +- get_local $v ++ local.get $icell ++ local.get $v + i32.store offset=8 + ;; return icell; +- get_local $icell ++ local.get $icell + i32.const 2 + i32.shr_u + ) +@@ -582,58 +582,58 @@ + ;; const r = this.buf32[TRIE1_SLOT] >>> 2; + i32.const 260 + i32.load +- tee_local $r ++ local.tee $r + ;; let i = r; +- set_local $i ++ local.set $i + ;; while ( lsegchar > 127 ) { + block $lastSegment loop +- get_local $lsegchar ++ local.get $lsegchar + i32.const 127 + i32.le_u + br_if $lastSegment + ;; this.buf32[i+0] = 0; +- get_local $i ++ local.get $i + i32.const 0 + i32.store + ;; this.buf32[i+1] = i + 3; +- get_local $i +- get_local $i ++ local.get $i ++ local.get $i + i32.const 12 + i32.add + i32.const 2 + i32.shr_u + i32.store offset=4 + ;; this.buf32[i+2] = this.addSegment(lsegchar, lsegchar - 127); +- get_local $i +- get_local $lsegchar +- get_local $lsegchar ++ local.get $i ++ local.get $lsegchar ++ local.get $lsegchar + i32.const 127 + i32.sub + call $addSegment + i32.store offset=8 + ;; lsegchar -= 127; +- get_local $lsegchar ++ local.get $lsegchar + i32.const 127 + i32.sub +- set_local $lsegchar ++ local.set $lsegchar + ;; i += 3; +- get_local $i ++ local.get $i + i32.const 12 + i32.add +- set_local $i ++ local.set $i + br 0 + end end + ;; this.buf32[i+0] = 0; +- get_local $i ++ local.get $i + i32.const 0 + i32.store + ;; this.buf32[i+1] = 0; +- get_local $i ++ local.get $i + i32.const 0 + i32.store offset=4 + ;; this.buf32[i+2] = this.addSegment(lsegchar, 0) | 0x80; +- get_local $i +- get_local $lsegchar ++ local.get $i ++ local.get $lsegchar + i32.const 0 + call $addSegment + i32.const 0x80 +@@ -641,12 +641,12 @@ + i32.store offset=8 + ;; this.buf32[TRIE1_SLOT] = i + 3 << 2; + i32.const 260 +- get_local $i ++ local.get $i + i32.const 12 + i32.add + i32.store + ;; return r; +- get_local $r ++ local.get $r + i32.const 2 + i32.shr_u + ) +@@ -666,7 +666,7 @@ + (local $i i32) ;; iterator + ;; + ;; if ( lsegchar === 0 ) { return 0; } +- get_local $lsegchar ++ local.get $lsegchar + i32.eqz + if + i32.const 0 +@@ -675,45 +675,45 @@ + ;; let char1 = this.buf32[HNBIGTRIE_CHAR1_SLOT]; + i32.const 268 + i32.load +- tee_local $char1 ++ local.tee $char1 + ;; const isegchar = char1 - this.buf32[HNBIGTRIE_CHAR0_SLOT]; + i32.const 264 + i32.load + i32.sub +- set_local $isegchar ++ local.set $isegchar + ;; let i = lsegchar; +- get_local $lsegchar +- set_local $i ++ local.get $lsegchar ++ local.set $i + ;; do { + loop + ;; this.buf[char1++] = this.buf[--i]; +- get_local $char1 +- get_local $i ++ local.get $char1 ++ local.get $i + i32.const -1 + i32.add +- tee_local $i ++ local.tee $i + i32.load8_u + i32.store8 +- get_local $char1 ++ local.get $char1 + i32.const 1 + i32.add +- set_local $char1 ++ local.set $char1 + ;; } while ( i !== lsegend ); +- get_local $i +- get_local $lsegend ++ local.get $i ++ local.get $lsegend + i32.ne + br_if 0 + end + ;; this.buf32[HNBIGTRIE_CHAR1_SLOT] = char1; + i32.const 268 +- get_local $char1 ++ local.get $char1 + i32.store + ;; return isegchar << 8 | lsegchar - lsegend; +- get_local $isegchar ++ local.get $isegchar + i32.const 8 + i32.shl +- get_local $lsegchar +- get_local $lsegend ++ local.get $lsegchar ++ local.get $lsegend + i32.sub + i32.or + ) +diff --git a/src/lib/lz4/lz4-block-codec.wat b/src/lib/lz4/lz4-block-codec.wat +index 93e5dc1..1181379 100644 +--- a/src/lib/lz4/lz4-block-codec.wat ++++ b/src/lib/lz4/lz4-block-codec.wat +@@ -68,15 +68,15 @@ + (func (export "lz4BlockEncodeBound") + (param $ilen i32) + (result i32) +- get_local $ilen ++ local.get $ilen + i32.const 0x7E000000 + i32.gt_u + if + i32.const 0 + return + end +- get_local $ilen +- get_local $ilen ++ local.get $ilen ++ local.get $ilen + i32.const 255 + i32.div_u + i32.add +@@ -123,14 +123,14 @@ + (local $llen i32) ;; length of found literals + (local $moffset i32) ;; offset to found match from current input position + (local $mlen i32) ;; length of found match +- get_local $ilen ;; empty input = empty output ++ local.get $ilen ;; empty input = empty output + i32.const 0x7E000000 ;; max input size: 0x7E000000 + i32.gt_u + if + i32.const 0 + return + end +- get_local $ilen ;; "blocks < 13 bytes cannot be compressed" ++ local.get $ilen ;; "blocks < 13 bytes cannot be compressed" + i32.const 13 + i32.lt_u + if +@@ -138,78 +138,78 @@ + return + end + call $getLinearMemoryOffset ;; hash table is at start of usable memory +- set_local $hashPtrBeg +- get_local $inPtr +- tee_local $anchorPtr +- get_local $ilen ++ local.set $hashPtrBeg ++ local.get $inPtr ++ local.tee $anchorPtr ++ local.get $ilen + i32.add +- tee_local $inPtrEnd ++ local.tee $inPtrEnd + i32.const -5 ;; "The last 5 bytes are always literals." + i32.add +- tee_local $inPtrEnd2 ++ local.tee $inPtrEnd2 + i32.const -7 ;; "The last match must start at least 12 bytes before end of block" + i32.add +- set_local $inPtrEnd1 +- get_local $outPtr +- set_local $outPtrBeg ++ local.set $inPtrEnd1 ++ local.get $outPtr ++ local.set $outPtrBeg + ;; + ;; sequence processing loop + ;; + block $noMoreSequence loop $nextSequence +- get_local $inPtr +- get_local $inPtrEnd1 ++ local.get $inPtr ++ local.get $inPtrEnd1 + i32.ge_u ;; 5 or less bytes left? + br_if $noMoreSequence +- get_local $inPtr ;; first sequence of 3 bytes before match-finding loop ++ local.get $inPtr ;; first sequence of 3 bytes before match-finding loop + i32.load8_u + i32.const 8 + i32.shl +- get_local $inPtr ++ local.get $inPtr + i32.load8_u offset=1 + i32.const 16 + i32.shl + i32.or +- get_local $inPtr ++ local.get $inPtr + i32.load8_u offset=2 + i32.const 24 + i32.shl + i32.or +- set_local $seq32 ++ local.set $seq32 + ;; + ;; match-finding loop + ;; + loop $findMatch block $noMatchFound +- get_local $inPtr +- get_local $inPtrEnd2 ++ local.get $inPtr ++ local.get $inPtrEnd2 + i32.gt_u ;; less than 12 bytes left? + br_if $noMoreSequence +- get_local $seq32 ;; update last byte of current sequence ++ local.get $seq32 ;; update last byte of current sequence + i32.const 8 + i32.shr_u +- get_local $inPtr ++ local.get $inPtr + i32.load8_u offset=3 + i32.const 24 + i32.shl + i32.or +- tee_local $seq32 ++ local.tee $seq32 + i32.const 0x9E3779B1 ;; compute 16-bit hash + i32.mul + i32.const 16 + i32.shr_u ;; hash value is at top of stack + i32.const 2 ;; lookup refPtr at hash entry + i32.shl +- get_local $hashPtrBeg ++ local.get $hashPtrBeg + i32.add +- tee_local $hashPtr ++ local.tee $hashPtr + i32.load +- set_local $refPtr +- get_local $hashPtr ;; update hash entry with inPtr +- get_local $inPtr ++ local.set $refPtr ++ local.get $hashPtr ;; update hash entry with inPtr ++ local.get $inPtr + i32.store +- get_local $inPtr +- get_local $refPtr ++ local.get $inPtr ++ local.get $refPtr + i32.sub +- tee_local $moffset ;; remember match offset, we will need it in case of match ++ local.tee $moffset ;; remember match offset, we will need it in case of match + i32.const 0xFFFF + i32.gt_s ;; match offset > 65535 = unusable match + br_if $noMatchFound +@@ -217,177 +217,177 @@ + ;; confirm match: different sequences can yield same hash + ;; compare-branch each byte to potentially save memory read ops + ;; +- get_local $seq32 ;; byte 0 ++ local.get $seq32 ;; byte 0 + i32.const 0xFF + i32.and +- get_local $refPtr ++ local.get $refPtr + i32.load8_u + i32.ne ;; refPtr[0] !== inPtr[0] + br_if $noMatchFound +- get_local $seq32 ;; byte 1 ++ local.get $seq32 ;; byte 1 + i32.const 8 + i32.shr_u + i32.const 0xFF + i32.and +- get_local $refPtr ++ local.get $refPtr + i32.load8_u offset=1 + i32.ne + br_if $noMatchFound ;; refPtr[1] !== inPtr[1] +- get_local $seq32 ;; byte 2 ++ local.get $seq32 ;; byte 2 + i32.const 16 + i32.shr_u + i32.const 0xFF + i32.and +- get_local $refPtr ++ local.get $refPtr + i32.load8_u offset=2 + i32.ne ;; refPtr[2] !== inPtr[2] + br_if $noMatchFound +- get_local $seq32 ;; byte 3 ++ local.get $seq32 ;; byte 3 + i32.const 24 + i32.shr_u + i32.const 0xFF + i32.and +- get_local $refPtr ++ local.get $refPtr + i32.load8_u offset=3 + i32.ne ;; refPtr[3] !== inPtr[3] + br_if $noMatchFound + ;; + ;; a valid match has been found at this point + ;; +- get_local $inPtr ;; compute length of literals +- get_local $anchorPtr ++ local.get $inPtr ;; compute length of literals ++ local.get $anchorPtr + i32.sub +- set_local $llen +- get_local $inPtr ;; find match length ++ local.set $llen ++ local.get $inPtr ;; find match length + i32.const 4 ;; skip over confirmed 4-byte match + i32.add +- set_local $inPtr +- get_local $refPtr ++ local.set $inPtr ++ local.get $refPtr + i32.const 4 + i32.add +- tee_local $mlen ;; remember refPtr to later compute match length +- set_local $refPtr ++ local.tee $mlen ;; remember refPtr to later compute match length ++ local.set $refPtr + block $endOfMatch loop ;; scan input buffer until match ends +- get_local $inPtr +- get_local $inPtrEnd2 ++ local.get $inPtr ++ local.get $inPtrEnd2 + i32.ge_u + br_if $endOfMatch +- get_local $inPtr ++ local.get $inPtr + i32.load8_u +- get_local $refPtr ++ local.get $refPtr + i32.load8_u + i32.ne + br_if $endOfMatch +- get_local $inPtr ++ local.get $inPtr + i32.const 1 + i32.add +- set_local $inPtr +- get_local $refPtr ++ local.set $inPtr ++ local.get $refPtr + i32.const 1 + i32.add +- set_local $refPtr ++ local.set $refPtr + br 0 + end end $endOfMatch + ;; encode token +- get_local $outPtr ;; output token +- get_local $llen +- get_local $refPtr +- get_local $mlen ++ local.get $outPtr ;; output token ++ local.get $llen ++ local.get $refPtr ++ local.get $mlen + i32.sub +- tee_local $mlen ++ local.tee $mlen + call $writeToken +- get_local $outPtr ++ local.get $outPtr + i32.const 1 + i32.add +- set_local $outPtr +- get_local $llen ;; encode/write length of literals if needed ++ local.set $outPtr ++ local.get $llen ;; encode/write length of literals if needed + i32.const 15 + i32.ge_s + if +- get_local $outPtr +- get_local $llen ++ local.get $outPtr ++ local.get $llen + call $writeLength +- set_local $outPtr ++ local.set $outPtr + end + ;; copy literals +- get_local $outPtr +- get_local $anchorPtr +- get_local $llen ++ local.get $outPtr ++ local.get $anchorPtr ++ local.get $llen + call $copy +- get_local $outPtr +- get_local $llen ++ local.get $outPtr ++ local.get $llen + i32.add +- set_local $outPtr ++ local.set $outPtr + ;; encode match offset +- get_local $outPtr +- get_local $moffset ++ local.get $outPtr ++ local.get $moffset + i32.store8 +- get_local $outPtr +- get_local $moffset ++ local.get $outPtr ++ local.get $moffset + i32.const 8 + i32.shr_u + i32.store8 offset=1 +- get_local $outPtr ++ local.get $outPtr + i32.const 2 + i32.add +- set_local $outPtr +- get_local $mlen ;; encode/write length of match if needed ++ local.set $outPtr ++ local.get $mlen ;; encode/write length of match if needed + i32.const 15 + i32.ge_s + if +- get_local $outPtr +- get_local $mlen ++ local.get $outPtr ++ local.get $mlen + call $writeLength +- set_local $outPtr ++ local.set $outPtr + end +- get_local $inPtr ;; advance anchor to current position +- set_local $anchorPtr ++ local.get $inPtr ;; advance anchor to current position ++ local.set $anchorPtr + br $nextSequence + end $noMatchFound +- get_local $inPtr ;; no match found: advance to next byte ++ local.get $inPtr ;; no match found: advance to next byte + i32.const 1 + i32.add +- set_local $inPtr ++ local.set $inPtr + br $findMatch end ;; match offset > 65535 = unusable match + end end $noMoreSequence + ;; + ;; generate last (match-less) sequence if compression succeeded + ;; +- get_local $outPtr +- get_local $outPtrBeg ++ local.get $outPtr ++ local.get $outPtrBeg + i32.eq + if + i32.const 0 + return + end +- get_local $outPtr +- get_local $inPtrEnd +- get_local $anchorPtr ++ local.get $outPtr ++ local.get $inPtrEnd ++ local.get $anchorPtr + i32.sub +- tee_local $llen ++ local.tee $llen + i32.const 0 + call $writeToken +- get_local $outPtr ++ local.get $outPtr + i32.const 1 + i32.add +- set_local $outPtr +- get_local $llen ++ local.set $outPtr ++ local.get $llen + i32.const 15 + i32.ge_u + if +- get_local $outPtr +- get_local $llen ++ local.get $outPtr ++ local.get $llen + call $writeLength +- set_local $outPtr ++ local.set $outPtr + end +- get_local $outPtr +- get_local $anchorPtr +- get_local $llen ++ local.get $outPtr ++ local.get $anchorPtr ++ local.get $llen + call $copy +- get_local $outPtr ;; return number of written bytes +- get_local $llen ++ local.get $outPtr ;; return number of written bytes ++ local.get $llen + i32.add +- get_local $outPtrBeg ++ local.get $outPtrBeg + i32.sub + ) + +@@ -413,128 +413,128 @@ + (local $token i32) ;; sequence token + (local $clen i32) ;; number of bytes to copy + (local $_ i32) ;; general purpose variable +- get_local $ilen ;; if ( ilen == 0 ) { return 0; } ++ local.get $ilen ;; if ( ilen == 0 ) { return 0; } + i32.eqz + if + i32.const 0 + return + end +- get_local $inPtr0 +- tee_local $inPtr ;; current position in input buffer +- get_local $ilen ++ local.get $inPtr0 ++ local.tee $inPtr ;; current position in input buffer ++ local.get $ilen + i32.add +- set_local $inPtrEnd +- get_local $outPtr0 ;; start of output buffer +- set_local $outPtr ;; current position in output buffer ++ local.set $inPtrEnd ++ local.get $outPtr0 ;; start of output buffer ++ local.set $outPtr ;; current position in output buffer + block $noMoreSequence loop ;; iterate through all sequences +- get_local $inPtr +- get_local $inPtrEnd ++ local.get $inPtr ++ local.get $inPtrEnd + i32.ge_u + br_if $noMoreSequence ;; break when nothing left to read in input buffer +- get_local $inPtr ;; read token -- consume one byte ++ local.get $inPtr ;; read token -- consume one byte + i32.load8_u +- get_local $inPtr ++ local.get $inPtr + i32.const 1 + i32.add +- set_local $inPtr +- tee_local $token ;; extract length of literals from token ++ local.set $inPtr ++ local.tee $token ;; extract length of literals from token + i32.const 4 + i32.shr_u +- tee_local $clen ;; consume extra length bytes if present ++ local.tee $clen ;; consume extra length bytes if present + i32.eqz + if else +- get_local $clen ++ local.get $clen + i32.const 15 + i32.eq + if loop +- get_local $inPtr ++ local.get $inPtr + i32.load8_u +- get_local $inPtr ++ local.get $inPtr + i32.const 1 + i32.add +- set_local $inPtr +- tee_local $_ +- get_local $clen ++ local.set $inPtr ++ local.tee $_ ++ local.get $clen + i32.add +- set_local $clen +- get_local $_ ++ local.set $clen ++ local.get $_ + i32.const 255 + i32.eq + br_if 0 + end end +- get_local $outPtr ;; copy literals to ouput buffer +- get_local $inPtr +- get_local $clen ++ local.get $outPtr ;; copy literals to ouput buffer ++ local.get $inPtr ++ local.get $clen + call $copy +- get_local $outPtr ;; advance output buffer pointer past copy +- get_local $clen ++ local.get $outPtr ;; advance output buffer pointer past copy ++ local.get $clen + i32.add +- set_local $outPtr +- get_local $clen ;; advance input buffer pointer past literals +- get_local $inPtr ++ local.set $outPtr ++ local.get $clen ;; advance input buffer pointer past literals ++ local.get $inPtr + i32.add +- tee_local $inPtr +- get_local $inPtrEnd ;; exit if this is the last sequence ++ local.tee $inPtr ++ local.get $inPtrEnd ;; exit if this is the last sequence + i32.eq + br_if $noMoreSequence + end +- get_local $outPtr ;; read match offset +- get_local $inPtr ++ local.get $outPtr ;; read match offset ++ local.get $inPtr + i32.load8_u +- get_local $inPtr ++ local.get $inPtr + i32.load8_u offset=1 + i32.const 8 + i32.shl + i32.or + i32.sub +- tee_local $matchPtr +- get_local $outPtr ;; match position can't be outside input buffer bounds ++ local.tee $matchPtr ++ local.get $outPtr ;; match position can't be outside input buffer bounds + i32.eq + br_if $noMoreSequence +- get_local $matchPtr +- get_local $inPtrEnd ++ local.get $matchPtr ++ local.get $inPtrEnd + i32.lt_u + br_if $noMoreSequence +- get_local $inPtr ;; advance input pointer past match offset bytes ++ local.get $inPtr ;; advance input pointer past match offset bytes + i32.const 2 + i32.add +- set_local $inPtr +- get_local $token ;; extract length of match from token ++ local.set $inPtr ++ local.get $token ;; extract length of match from token + i32.const 15 + i32.and + i32.const 4 + i32.add +- tee_local $clen ++ local.tee $clen + i32.const 19 ;; consume extra length bytes if present + i32.eq + if loop +- get_local $inPtr ++ local.get $inPtr + i32.load8_u +- get_local $inPtr ++ local.get $inPtr + i32.const 1 + i32.add +- set_local $inPtr +- tee_local $_ +- get_local $clen ++ local.set $inPtr ++ local.tee $_ ++ local.get $clen + i32.add +- set_local $clen +- get_local $_ ++ local.set $clen ++ local.get $_ + i32.const 255 + i32.eq + br_if 0 + end end +- get_local $outPtr ;; copy match to ouput buffer +- get_local $matchPtr +- get_local $clen ++ local.get $outPtr ;; copy match to ouput buffer ++ local.get $matchPtr ++ local.get $clen + call $copy +- get_local $clen ;; advance output buffer pointer past copy +- get_local $outPtr ++ local.get $clen ;; advance output buffer pointer past copy ++ local.get $outPtr + i32.add +- set_local $outPtr ++ local.set $outPtr + br 0 + end end $noMoreSequence +- get_local $outPtr ;; return number of written bytes +- get_local $outPtr0 ++ local.get $outPtr ;; return number of written bytes ++ local.get $outPtr0 + i32.sub + ) + +@@ -552,18 +552,18 @@ + (param $outPtr i32) + (param $llen i32) + (param $mlen i32) +- get_local $outPtr +- get_local $llen ++ local.get $outPtr ++ local.get $llen + i32.const 15 +- get_local $llen ++ local.get $llen + i32.const 15 + i32.lt_u + select + i32.const 4 + i32.shl +- get_local $mlen ++ local.get $mlen + i32.const 15 +- get_local $mlen ++ local.get $mlen + i32.const 15 + i32.lt_u + select +@@ -582,32 +582,32 @@ + (param $outPtr i32) + (param $len i32) + (result i32) +- get_local $len ++ local.get $len + i32.const 15 + i32.sub +- set_local $len ++ local.set $len + loop +- get_local $outPtr +- get_local $len ++ local.get $outPtr ++ local.get $len + i32.const 255 +- get_local $len ++ local.get $len + i32.const 255 + i32.lt_u + select + i32.store8 +- get_local $outPtr ++ local.get $outPtr + i32.const 1 + i32.add +- set_local $outPtr +- get_local $len ++ local.set $outPtr ++ local.get $len + i32.const 255 + i32.sub +- tee_local $len ++ local.tee $len + i32.const 0 + i32.ge_s + br_if 0 + end +- get_local $outPtr ++ local.get $outPtr + ) + + ;; +@@ -621,119 +621,119 @@ + (param $src i32) + (param $len i32) + block $lessThan8 loop +- get_local $len ++ local.get $len + i32.const 8 + i32.lt_u + br_if $lessThan8 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u + i32.store8 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=1 + i32.store8 offset=1 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=2 + i32.store8 offset=2 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=3 + i32.store8 offset=3 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=4 + i32.store8 offset=4 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=5 + i32.store8 offset=5 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=6 + i32.store8 offset=6 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=7 + i32.store8 offset=7 +- get_local $dst ++ local.get $dst + i32.const 8 + i32.add +- set_local $dst +- get_local $src ++ local.set $dst ++ local.get $src + i32.const 8 + i32.add +- set_local $src +- get_local $len ++ local.set $src ++ local.get $len + i32.const -8 + i32.add +- set_local $len ++ local.set $len + br 0 + end end $lessThan8 +- get_local $len ++ local.get $len + i32.const 4 + i32.ge_u + if +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u + i32.store8 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=1 + i32.store8 offset=1 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=2 + i32.store8 offset=2 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=3 + i32.store8 offset=3 +- get_local $dst ++ local.get $dst + i32.const 4 + i32.add +- set_local $dst +- get_local $src ++ local.set $dst ++ local.get $src + i32.const 4 + i32.add +- set_local $src +- get_local $len ++ local.set $src ++ local.get $len + i32.const -4 + i32.add +- set_local $len ++ local.set $len + end +- get_local $len ++ local.get $len + i32.const 2 + i32.ge_u + if +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u + i32.store8 +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u offset=1 + i32.store8 offset=1 +- get_local $dst ++ local.get $dst + i32.const 2 + i32.add +- set_local $dst +- get_local $src ++ local.set $dst ++ local.get $src + i32.const 2 + i32.add +- set_local $src +- get_local $len ++ local.set $src ++ local.get $len + i32.const -2 + i32.add +- set_local $len ++ local.set $len + end +- get_local $len ++ local.get $len + i32.eqz + if else +- get_local $dst +- get_local $src ++ local.get $dst ++ local.get $src + i32.load8_u + i32.store8 + end +diff --git a/src/lib/publicsuffixlist/wasm/publicsuffixlist.wat b/src/lib/publicsuffixlist/wasm/publicsuffixlist.wat +index ee002a1..8ea7381 100644 +--- a/src/lib/publicsuffixlist/wasm/publicsuffixlist.wat ++++ b/src/lib/publicsuffixlist/wasm/publicsuffixlist.wat +@@ -83,133 +83,133 @@ + ;; const iCharData = buf32[CHARDATA_PTR_SLOT]; + i32.const 404 + i32.load +- set_local $iCharData ++ local.set $iCharData + ;; let iNode = pslBuffer32[RULES_PTR_SLOT]; + i32.const 400 + i32.load + i32.const 2 + i32.shl +- set_local $iNode ++ local.set $iNode + ;; let iLabel = LABEL_INDICES_SLOT; + i32.const 256 +- set_local $iLabel ++ local.set $iLabel + ;; let cursorPos = -1; + i32.const -1 +- set_local $cursorPos ++ local.set $cursorPos + ;; label-lookup loop + ;; for (;;) { + block $labelLookupDone loop $labelLookup + ;; // Extract label indices + ;; const labelBeg = buf8[iLabel+1]; + ;; const labelLen = buf8[iLabel+0] - labelBeg; +- get_local $iLabel ++ local.get $iLabel + i32.load8_u +- get_local $iLabel ++ local.get $iLabel + i32.load8_u offset=1 +- tee_local $labelBeg ++ local.tee $labelBeg + i32.sub +- set_local $labelLen ++ local.set $labelLen + ;; // Match-lookup loop: binary search + ;; let r = buf32[iNode+0] >>> 16; + ;; if ( r === 0 ) { break; } +- get_local $iNode ++ local.get $iNode + i32.load16_u offset=2 +- tee_local $r ++ local.tee $r + i32.eqz + br_if $labelLookupDone + ;; const iCandidates = buf32[iNode+2]; +- get_local $iNode ++ local.get $iNode + i32.load offset=8 + i32.const 2 + i32.shl +- set_local $iCandidates ++ local.set $iCandidates + ;; let l = 0; + ;; let iFound = 0; + i32.const 0 +- tee_local $l +- set_local $iFound ++ local.tee $l ++ local.set $iFound + ;; while ( l < r ) { + block $binarySearchDone loop $binarySearch +- get_local $l +- get_local $r ++ local.get $l ++ local.get $r + i32.ge_u + br_if $binarySearchDone + ;; const iCandidate = l + r >>> 1; +- get_local $l +- get_local $r ++ local.get $l ++ local.get $r + i32.add + i32.const 1 + i32.shr_u +- tee_local $iCandidate ++ local.tee $iCandidate + ;; const iCandidateNode = iCandidates + iCandidate + (iCandidate << 1); + i32.const 2 + i32.shl +- tee_local $_1 +- get_local $_1 ++ local.tee $_1 ++ local.get $_1 + i32.const 1 + i32.shl + i32.add +- get_local $iCandidates ++ local.get $iCandidates + i32.add +- tee_local $iCandidateNode ++ local.tee $iCandidateNode + ;; const candidateLen = buf32[iCandidateNode+0] & 0x000000FF; + i32.load8_u +- set_local $candidateLen ++ local.set $candidateLen + ;; let d = labelLen - candidateLen; +- get_local $labelLen +- get_local $candidateLen ++ local.get $labelLen ++ local.get $candidateLen + i32.sub +- tee_local $d ++ local.tee $d + ;; if ( d === 0 ) { + i32.eqz + if + ;; const iCandidateChar = candidateLen <= 4 +- get_local $candidateLen ++ local.get $candidateLen + i32.const 4 + i32.le_u + if + ;; ? iCandidateNode + 1 << 2 +- get_local $iCandidateNode ++ local.get $iCandidateNode + i32.const 4 + i32.add +- set_local $iCandidateChar ++ local.set $iCandidateChar + else + ;; : buf32[CHARDATA_PTR_SLOT] + buf32[iCandidateNode+1]; +- get_local $iCharData +- get_local $iCandidateNode ++ local.get $iCharData ++ local.get $iCandidateNode + i32.load offset=4 + i32.add +- set_local $iCandidateChar ++ local.set $iCandidateChar + end + ;; for ( let i = 0; i < labelLen; i++ ) { +- get_local $labelBeg +- tee_local $_1 +- get_local $labelLen ++ local.get $labelBeg ++ local.tee $_1 ++ local.get $labelLen + i32.add +- set_local $_3 +- get_local $iCandidateChar +- set_local $_2 ++ local.set $_3 ++ local.get $iCandidateChar ++ local.set $_2 + block $findDiffDone loop $findDiff + ;; d = buf8[labelBeg+i] - buf8[iCandidateChar+i]; + ;; if ( d !== 0 ) { break; } +- get_local $_1 ++ local.get $_1 + i32.load8_u +- get_local $_2 ++ local.get $_2 + i32.load8_u + i32.sub +- tee_local $d ++ local.tee $d + br_if $findDiffDone +- get_local $_1 ++ local.get $_1 + i32.const 1 + i32.add +- tee_local $_1 +- get_local $_3 ++ local.tee $_1 ++ local.get $_3 + i32.eq + br_if $findDiffDone +- get_local $_2 ++ local.get $_2 + i32.const 1 + i32.add +- set_local $_2 ++ local.set $_2 + br $findDiff + ;; } + end end +@@ -217,32 +217,32 @@ + end + ;; if ( d < 0 ) { + ;; r = iCandidate; +- get_local $d ++ local.get $d + i32.const 0 + i32.lt_s + if +- get_local $iCandidate +- set_local $r ++ local.get $iCandidate ++ local.set $r + br $binarySearch + end + ;; } else if ( d > 0 ) { + ;; l = iCandidate + 1; +- get_local $d ++ local.get $d + i32.const 0 + i32.gt_s + if +- get_local $iCandidate ++ local.get $iCandidate + i32.const 1 + i32.add +- set_local $l ++ local.set $l + br $binarySearch + end + ;; } else /* if ( d === 0 ) */ { + ;; iFound = iCandidateNode; + ;; break; + ;; } +- get_local $iCandidateNode +- set_local $iFound ++ local.get $iCandidateNode ++ local.set $iFound + end end + ;; } + ;; // 2. If no rules match, the prevailing rule is "*". +@@ -251,10 +251,10 @@ + ;; buf8[SUFFIX_NOT_FOUND_SLOT] = 1; + ;; iFound = iCandidates; + ;; } +- get_local $iFound ++ local.get $iFound + i32.eqz + if +- get_local $iCandidates ++ local.get $iCandidates + i32.load offset=4 + i32.const 0x2A + i32.ne +@@ -262,12 +262,12 @@ + i32.const 399 + i32.const 1 + i32.store8 +- get_local $iCandidates +- set_local $iFound ++ local.get $iCandidates ++ local.set $iFound + end + ;; iNode = iFound; +- get_local $iFound +- tee_local $iNode ++ local.get $iFound ++ local.tee $iNode + ;; // 5. If the prevailing rule is a exception rule, modify it by + ;; // removing the leftmost label. + ;; if ( (buf32[iNode+0] & 0x00000200) !== 0 ) { +@@ -277,15 +277,15 @@ + ;; break; + ;; } + i32.load8_u offset=1 +- tee_local $_1 ++ local.tee $_1 + i32.const 0x02 + i32.and + if +- get_local $iLabel ++ local.get $iLabel + i32.const 256 + i32.gt_u + if +- get_local $iLabel ++ local.get $iLabel + i32.const -2 + i32.add + return +@@ -295,25 +295,25 @@ + ;; if ( (buf32[iNode+0] & 0x00000100) !== 0 ) { + ;; cursorPos = labelBeg; + ;; } +- get_local $_1 ++ local.get $_1 + i32.const 0x01 + i32.and + if +- get_local $iLabel +- set_local $cursorPos ++ local.get $iLabel ++ local.set $cursorPos + end + ;; if ( labelBeg === 0 ) { break; } +- get_local $labelBeg ++ local.get $labelBeg + i32.eqz + br_if $labelLookupDone + ;; iLabel += 2; +- get_local $iLabel ++ local.get $iLabel + i32.const 2 + i32.add +- set_local $iLabel ++ local.set $iLabel + br $labelLookup + end end +- get_local $cursorPos ++ local.get $cursorPos + ) + + ;; diff -Nru ublock-origin-1.37.0+dfsg/debian/patches/make-assets.sh-for-Debian.patch ublock-origin-1.42.0+dfsg/debian/patches/make-assets.sh-for-Debian.patch --- ublock-origin-1.37.0+dfsg/debian/patches/make-assets.sh-for-Debian.patch 2021-08-28 20:29:16.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/patches/make-assets.sh-for-Debian.patch 2022-07-01 22:10:52.000000000 +0000 @@ -1,40 +1,26 @@ From: Markus Koschany -Date: Thu, 27 Aug 2020 23:49:51 +0200 +Date: Fri, 26 Nov 2021 22:40:50 +0100 Subject: make-assets.sh-for-Debian +Forwarded: not-needed --- - tools/make-assets.sh | 17 ++++------------- - 1 file changed, 4 insertions(+), 13 deletions(-) + tools/make-assets.sh | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) +diff --git a/tools/make-assets.sh b/tools/make-assets.sh +index 3850f35..c2dca11 100755 --- a/tools/make-assets.sh +++ b/tools/make-assets.sh -@@ -4,25 +4,16 @@ - - DES=$1/assets - --printf "*** Packaging assets in $DES... " -- --if [ -n "${TRAVIS_TAG}" ]; then -- pushd .. > /dev/null -- git clone --depth 1 https://github.com/uBlockOrigin/uAssets.git -- popd > /dev/null --fi -- - rm -rf $DES - cp -R ./assets $DES/ +@@ -13,11 +13,9 @@ cp -R ./assets $DES/ mkdir $DES/thirdparties --cp -R ../uAssets/thirdparties/easylist-downloads.adblockplus.org $DES/thirdparties/ --cp -R ../uAssets/thirdparties/pgl.yoyo.org $DES/thirdparties/ --cp -R ../uAssets/thirdparties/publicsuffix.org $DES/thirdparties/ --cp -R ../uAssets/thirdparties/urlhaus-filter $DES/thirdparties/ -+cp -R ./uAssets/thirdparties/easylist-downloads.adblockplus.org $DES/thirdparties/ -+cp -R ./uAssets/thirdparties/publicsuffix.org $DES/thirdparties/ -+cp -R ./uAssets/thirdparties/urlhaus-filter $DES/thirdparties/ - mkdir $DES/ublock --cp -R ../uAssets/filters/* $DES/ublock/ -+cp -R ./uAssets/filters/* $DES/ublock/ - # Optional filter lists: do not include in package - rm $DES/ublock/annoyances.txt +-git submodule update --depth 1 --init +-UASSETS=submodules/uAssets ++UASSETS=./uAssets + + cp -R $UASSETS/thirdparties/easylist-downloads.adblockplus.org $DES/thirdparties/ +-cp -R $UASSETS/thirdparties/pgl.yoyo.org $DES/thirdparties/ + cp -R $UASSETS/thirdparties/publicsuffix.org $DES/thirdparties/ + cp -R $UASSETS/thirdparties/urlhaus-filter $DES/thirdparties/ diff -Nru ublock-origin-1.37.0+dfsg/debian/patches/python3.patch ublock-origin-1.42.0+dfsg/debian/patches/python3.patch --- ublock-origin-1.37.0+dfsg/debian/patches/python3.patch 2021-08-28 20:29:16.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/patches/python3.patch 2022-07-01 22:10:52.000000000 +0000 @@ -1,17 +1,17 @@ From: Markus Koschany -Date: Mon, 24 Feb 2020 01:04:26 +0100 +Date: Fri, 26 Nov 2021 22:38:46 +0100 Subject: python3 +Forwarded: no --- tools/make-chromium.sh | 2 +- - tools/make-firefox.sh | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/make-chromium.sh b/tools/make-chromium.sh -index e1f6e5c..963831f 100755 +index cd901f3..afdb25d 100755 --- a/tools/make-chromium.sh +++ b/tools/make-chromium.sh -@@ -15,7 +15,7 @@ bash ./tools/copy-common-files.sh $DES +@@ -23,7 +23,7 @@ cp platform/chromium/*.json $DES/ cp -R $DES/_locales/nb $DES/_locales/no echo "*** uBlock0.chromium: Generating meta..." @@ -20,16 +20,3 @@ if [ "$1" = all ]; then echo "*** uBlock0.chromium: Creating plain package..." -diff --git a/tools/make-firefox.sh b/tools/make-firefox.sh -index d1708cd..e6336a1 100755 ---- a/tools/make-firefox.sh -+++ b/tools/make-firefox.sh -@@ -22,7 +22,7 @@ cp platform/firefox/vapi-webrequest.js $DES/js/ - rm $DES/img/icon_128.png - - echo "*** uBlock0.firefox: Generating meta..." --python tools/make-firefox-meta.py $DES/ -+python3 tools/make-firefox-meta.py $DES/ - - if [ "$1" = all ]; then - echo "*** uBlock0.firefox: Creating package..." diff -Nru ublock-origin-1.37.0+dfsg/debian/patches/series ublock-origin-1.42.0+dfsg/debian/patches/series --- ublock-origin-1.37.0+dfsg/debian/patches/series 2021-08-28 20:29:16.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/patches/series 2022-07-01 22:10:52.000000000 +0000 @@ -1,3 +1,4 @@ python3.patch -disable-nonfree-filters-by-default.patch make-assets.sh-for-Debian.patch +disable-nonfree-filters-by-default.patch +lz4-block-codec.wat.patch diff -Nru ublock-origin-1.37.0+dfsg/debian/rules ublock-origin-1.42.0+dfsg/debian/rules --- ublock-origin-1.37.0+dfsg/debian/rules 2021-08-28 20:29:16.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/rules 2022-07-01 22:10:52.000000000 +0000 @@ -20,6 +20,9 @@ dh_install -p webext-ublock-origin-firefox -X LICENSE.txt dh_install -p webext-ublock-origin-chromium -X LICENSE.txt +override_dh_auto_test: + # Skip the tests + override_dh_auto_clean: ./tools/make-clean.sh diff -Nru ublock-origin-1.37.0+dfsg/debian/watch ublock-origin-1.42.0+dfsg/debian/watch --- ublock-origin-1.37.0+dfsg/debian/watch 2021-08-28 20:29:16.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/debian/watch 2022-07-01 22:10:52.000000000 +0000 @@ -1,3 +1,3 @@ version=3 opts=repacksuffix=+dfsg,dversionmangle=s/\+(repack|dfsg|ds|deb)\d*$// \ -https://github.com/gorhill/uBlock/releases .*/archive/(\d.*)\.tar\.gz +https://github.com/gorhill/uBlock/releases .*/(\d.*)\.tar\.gz diff -Nru ublock-origin-1.37.0+dfsg/dist/README.md ublock-origin-1.42.0+dfsg/dist/README.md --- ublock-origin-1.37.0+dfsg/dist/README.md 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/dist/README.md 2022-05-06 01:15:22.000000000 +0000 @@ -60,19 +60,22 @@ ### Build instructions (for developers) -- Clone [uBlock](https://github.com/gorhill/uBlock) and [uAssets](https://github.com/uBlockOrigin/uAssets) repositories in the same parent directory - - `git clone https://github.com/gorhill/uBlock.git` - - `git clone https://github.com/uBlockOrigin/uAssets.git` +- Clone [uBlock repo](https://github.com/gorhill/uBlock): `git clone https://github.com/gorhill/uBlock.git` - Set path to uBlock: `cd uBlock` - The official version of uBO is in the `master` branch - `git checkout master` - Build the plugin: - - Chromium: `./tools/make-chromium.sh` - - Firefox webext: `./tools/make-firefox.sh all` - - Firefox legacy: - - `git checkout firefox-legacy` - - `./tools/make-firefox-legacy.sh all` + - Chromium: `make chromium` + - Firefox: `make firefox` + - NPM package: `make npm` - Load the result of the build into your browser: - - Chromium: load the unpacked extension folder `/uBlock/dist/build/uBlock0.chromium/` in Chromium to use the extension. - - Firefox: drag-and-drop `/uBlock/dist/build/uBlock0.firefox.xpi` or `/uBlock/dist/build/uBlock0.firefox-legacy.xpi` into Firefox. + - Chromium: + - Navigate to `chrome://extensions/` + - Check _"Developer mode"_ + - Click _"Load unpacked"_ + - Select `/uBlock/dist/build/uBlock0.chromium/` + - Firefox: + - Navigate to `about:debugging#/runtime/this-firefox` + - Click _"Load Temporary Add-on..."_ + - Select `/uBlock/dist/build/uBlock0.firefox/` diff -Nru ublock-origin-1.37.0+dfsg/dist/description/description-bn.txt ublock-origin-1.42.0+dfsg/dist/description/description-bn.txt --- ublock-origin-1.37.0+dfsg/dist/description/description-bn.txt 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/dist/description/description-bn.txt 2022-05-06 01:15:22.000000000 +0000 @@ -2,7 +2,7 @@ এটির কার্যকারিতার সচিত্র সংক্ষিপ্ত বিবরণ: https://github.com/gorhill/uBlock/wiki/uBlock-vs.-ABP:-efficiency-compared -ব্যবহার: পপআপে বড় বোতামটি বর্তমান ওয়েব সাইটকে স্থায়ীভাবে জন্য ইউব্লক দ্বারা সক্রিয়/নিষ্ক্রিয় করবে। এটা শুধুমাত্র বর্তমান ওয়েব সাইটে প্রযোজ্য, এটি একটি সার্বজনীন পাওয়ার বোতাম নয়। +ব্যবহার: পপআপের বড় পাওয়ার বাটনটি হলো বর্তমান ওয়েবসাইটে uBlock কে স্থায়ীভাবে সক্রিয় / নিষ্ক্রিয় করার জন্য। এটা শুধুমাত্র বর্তমান ওয়েব সাইটে প্রযোজ্য, এটি একটি সার্বজনীন পাওয়ার বোতাম নয়। *** @@ -18,7 +18,7 @@ আপনি যদি চান আপনি নির্বাচন করার জন্য আরো তালিকা পাবেন: - ফ্যানবয়ের বর্ধিত অনুসরণকরণ তালিকা -- ডেন পোলোক-এর হোস্ট ফাইল +- Dan Pollock’s hosts file - এইচপিহোস্টসের বিজ্ঞাপন এবং অনুসরণকরণ সার্ভার - MVPS হোস্টসমূহ - স্প্যাম৪০৪ diff -Nru ublock-origin-1.37.0+dfsg/dist/description/description-bs.txt ublock-origin-1.42.0+dfsg/dist/description/description-bs.txt --- ublock-origin-1.37.0+dfsg/dist/description/description-bs.txt 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/dist/description/description-bs.txt 2022-05-06 01:15:22.000000000 +0000 @@ -1,36 +1,36 @@ -Efikasan bloker: lagan je na otisak/zahtjev memorije i procesora, a može učitati i primijeniti tisuće/hiljade više filtera nego ostali popularni blokeri. +Efikasan bloker: lagan na memoriju i procesor, a može učitati i primijeniti još hiljadu više drugih filtera nego drugi poznati blokeri. -Ilustrovani/Ilustrirani pregled njegove efikasnosti: https://github.com/gorhill/uBlock/wiki/uBlock-vs.-ABP:-efficiency-compared +Ilustrovani pregled njegove efikasnosti: https://github.com/gorhill/uBlock/wiki/uBlock-vs.-ABP:-efficiency-compared -Korištenje/Upotreba: Veliko dugme/gumb u iskočnom prozoru je da se trajno omogući/onemogući uBlock na trenutačnoj stranici. To se odnosi samo na trenutnu web-stranicu, nije da se kompletno isključi. +Upotreba: Veliko dugme u skočnom prozoru je da trajno omogućite/onemogućite uBlock na trenutačnoj web-stranici. To se odnosi samo na trenutačnu web-stranicu, pa nije da ga kompletno isključite. *** -Fleksibilan je, više je od "blokatora reklama": može i učitati i napraviti filtere iz izvornih datoteka. +Baš je fleksibilan, nije samo da blokira reklame: može čitati i napraviti filtere iz hosts datoteka. -Odmah po instalaciji/instaliranju, ovi slijedeći popisi/spisci filtera su pokrenuti i provođeni: +Odmah po instaliranju, slijedeći spisci filtera su pokrenuti i sprovedeni: - EasyList -- Peter Lowe’s Ad server list +- Peter Lowe-ov popis reklamnih servera - EasyPrivacy -- Malware domains +- Malverske domene -Ostale liste/spisci su dostupni za odabir/izbor ako ih želite: +Sljedeće liste su dostupne po odabiru ako ih želite: -- Fanboy’s Enhanced Tracking List -- Dan Pollock’s hosts file -- hpHosts’s Ad and tracking servers +- Fanboy-eva Poboljšana Lista za Praćenje +- Dan Pollock-ova hosts datoteka +- hpHosts-ovi serveri za reklame i praćenje - MVPS HOSTS - Spam404 - I mnogi drugi -Naravno, što je više omogućeno filtera, veća je i upotreba memorije. Ipak, čak i nakon dodavanja Fanboy-ova dva dodatna popisa/spiska, hpHosts servera za reklame i praćenje, uBlock još uvijek ima manji memorijski otisak/zahtjev od drugih/ostalih poznatih blokera. +Naravno, sa više omogućenih filtera, veća je i upotreba memorije. Ipak, čak i nakon što Fanboy-ova dva dodatna spiska, i hpHosts serveri za reklame i praćenje, su dodata, uBlock još uvijek ima manju upotrebu memorije od drugih poznatih blokera. -Također, čuvajte na umu da odabirom/izbor nekih od ovih dodatnih popisa može povećati prilike da se web-stranica pokvari -- posebno/naručito onih popisa/spiskova koji se obično koriste kao izvorne datoteke. +Također, držite na umu da ako odaberete nekih od ovih pomoćnih spisaka možete i povećati prilike kvara web-stranice -- pogotovo onih spisaka koji se obično koriste kao hosts datoteke. *** -Bez napredne liste/spiska filtera, ovo proširenje neće raditi. Tako da ako ikad želite doprinijeti nešto, razmislite o ljudima koji naporno rade održavajući popise/spiskove filtera koje vi koristite, i koji su dostupni svima za besplatnu korist. +Bez prednaštimanih listih filtera, ovo proširenje neće raditi. Tako da ako ikad želite doprinijeti nešto, razmislite o ljudima koji naporno rade održavajući spiske filtera koje vi koristite i koji su dostupni za besplatno korištenje svima. *** @@ -38,10 +38,10 @@ Otvorenog koda sa javnom licencom (GPLv3) Za korisnike od korisnika. -Suradnici @ Github: https://github.com/gorhill/uBlock/graphs/contributors -Suradnici @ Crowdin: https://crowdin.net/project/ublock +Saradnici @ Github: https://github.com/gorhill/uBlock/graphs/contributors +Saradnici @ Crowdin: https://crowdin.net/project/ublock *** -Popis/izvješće promjena: +Spiska promjena: https://github.com/gorhill/uBlock/releases diff -Nru ublock-origin-1.37.0+dfsg/dist/description/description-ja.txt ublock-origin-1.42.0+dfsg/dist/description/description-ja.txt --- ublock-origin-1.37.0+dfsg/dist/description/description-ja.txt 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/dist/description/description-ja.txt 2022-05-06 01:15:22.000000000 +0000 @@ -1,8 +1,8 @@ -効率的なブロッカー:メモリーとCPUに優しいため、人気のある他のブロッカーと比べて何千も多くのフィルターを使用することができます。 +効率的なブロッカー: メモリーとCPUに優しいため、人気のある他のブロッカーと比べて何千も多くのフィルターを使用することができます。 -他ソフトとの比較: https://github.com/gorhill/uBlock/wiki/uBlock-vs.-ABP:-efficiency-compared +他ソフトとの比較: https://github.com/gorhill/uBlock/wiki/uBlock-vs.-ABP:-efficiency-compared -使用法: ポップアップに表示される大きな電源ボタンは、現在のサイトでuBlockの有効/無効を切り替えます。 変更は現在のサイトへのみ適用されます。他のサイトとの共通ボタンではありません。 +使用法: ポップアップに表示される大きな電源ボタンで、現在のサイトのuBlockの有効/無効を切り替えます。 変更は現在のサイトへのみ適用されます。他のサイトとの共通ボタンではありません。 *** diff -Nru ublock-origin-1.37.0+dfsg/dist/firefox/publish-signed-beta.py ublock-origin-1.42.0+dfsg/dist/firefox/publish-signed-beta.py --- ublock-origin-1.37.0+dfsg/dist/firefox/publish-signed-beta.py 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/dist/firefox/publish-signed-beta.py 2022-05-06 01:15:22.000000000 +0000 @@ -201,7 +201,7 @@ headers = { 'Authorization': get_jwt_auth(), } data = { 'channel': 'unlisted' } files = { 'upload': f, } - signing_url = 'https://addons.mozilla.org/api/v3/addons/{0}/versions/{1}/'.format(extension_id, ext_version) + signing_url = 'https://addons.mozilla.org/api/v4/addons/{0}/versions/{1}/'.format(extension_id, ext_version) print('Submitting package to be signed...') response = requests.put(signing_url, headers=headers, data=data, files=files) if response.status_code != 202: diff -Nru ublock-origin-1.37.0+dfsg/dist/firefox/updates.json ublock-origin-1.42.0+dfsg/dist/firefox/updates.json --- ublock-origin-1.37.0+dfsg/dist/firefox/updates.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/dist/firefox/updates.json 2022-05-06 01:15:22.000000000 +0000 @@ -3,9 +3,9 @@ "uBlock0@raymondhill.net": { "updates": [ { - "version": "1.36.3.101", - "browser_specific_settings": { "gecko": { "strict_min_version": "57" } }, - "update_link": "https://github.com/gorhill/uBlock/releases/download/1.36.3rc1/uBlock0_1.36.3rc1.firefox.signed.xpi" + "version": "1.41.9.103", + "browser_specific_settings": { "gecko": { "strict_min_version": "60" } }, + "update_link": "https://github.com/gorhill/uBlock/releases/download/1.41.9rc3/uBlock0_1.41.9rc3.firefox.signed.xpi" } ] } diff -Nru ublock-origin-1.37.0+dfsg/dist/firefox/updates.template.json ublock-origin-1.42.0+dfsg/dist/firefox/updates.template.json --- ublock-origin-1.37.0+dfsg/dist/firefox/updates.template.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/dist/firefox/updates.template.json 2022-05-06 01:15:22.000000000 +0000 @@ -4,7 +4,7 @@ "updates": [ { "version": "$ext_version", - "browser_specific_settings": { "gecko": { "strict_min_version": "57" } }, + "browser_specific_settings": { "gecko": { "strict_min_version": "60" } }, "update_link": "https://github.com/gorhill/uBlock/releases/download/$tag_version/uBlock0_$tag_version.firefox.signed.xpi" } ] diff -Nru ublock-origin-1.37.0+dfsg/dist/version ublock-origin-1.42.0+dfsg/dist/version --- ublock-origin-1.37.0+dfsg/dist/version 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/dist/version 2022-05-06 01:15:22.000000000 +0000 @@ -1 +1 @@ -1.37.0 +1.42.0 diff -Nru ublock-origin-1.37.0+dfsg/docs/tests/procedural-cosmetic-filters.html ublock-origin-1.42.0+dfsg/docs/tests/procedural-cosmetic-filters.html --- ublock-origin-1.37.0+dfsg/docs/tests/procedural-cosmetic-filters.html 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/docs/tests/procedural-cosmetic-filters.html 2022-05-06 01:15:22.000000000 +0000 @@ -73,118 +73,133 @@

Tests

-
+
- #pcf #a1 .fail:has(b) + .fail:has(b)
-
+
- #pcf #a2 .fail:has(> a > b) + .fail:has(> a > b)
-
+
+
+ .fail:has(+ a > b) +
+ +
+
+ .fail:has(:scope + a > b) +
+ +
+
+ .fail:has(:is(.pass a > b)) +
+ +
- #pcf #a3 .fail:not(:has(c)) + .fail:not(:has(c))
-
+
- #pcf #a4 .fail:has-text(needle) + .fail:has-text(needle)
-
+
- #pcf #a5 .fail:has-text(/NEEDLE/i) + .fail:has-text(/NEEDLE/i)
-
+
- #pcf #a6 .fail:not(:has-text(haystack)) + .fail:not(:has-text(haystack))
-
+
- #pcf #a7 .fail:matches-css(position: absolute) + .fail:matches-css(position: absolute)
-
+
- #pcf #a8 .fail:has(a:matches-css-before(opacity: 0)) + .fail:has(a:matches-css-before(opacity: 0))
-
+
- #pcf #a9 .fail:has(b:matches-css-after(opacity: 0)) + .fail:has(b:matches-css-after(opacity: 0))
-
+
- #pcf #a10 .fail > a > b:nth-ancestor(2) + .fail > a > b:nth-ancestor(2)
-
+
- #pcf #a11:xpath(.//b/../..) + :xpath(.//b/../..)
-
+ -
+
- #pcf #a13 .pass > a:has(b) + .fail + .pass > a:has(b) + .fail
-
+
- #pcf #a14 .pass > a:has(b) + .fail:has(b) + .pass > a:has(b) + .fail:has(b)
-
+
- #pcf #a15 .pass:watch-attr(class) > .fail:has(b.notok) + .pass:watch-attr(class) > .fail:has(b.notok)
-
+
- #pcf #a16 .fail:has(+ a) + .fail:has(+ a)
-
+
- #pcf #a17 .fail:has(~ a:has(b)) + .fail:has(~ a:has(b))
-
+
- #pcf #a18 .fail:remove() + .fail:remove()
-
+
- #pcf #a19 b:upward(2) + b:upward(2)
-
+
- #pcf #a20 b:upward(.fail) + b:upward(.fail)
-
+
- #pcf #a21 b:upward(.fail):style(visibility: hidden !important) + b:upward(.fail):style(visibility: hidden !important)
@@ -193,10 +208,17 @@ const hostname = self.location.hostname; const filters = []; const fragment = document.createDocumentFragment(); - for ( const node of document.querySelectorAll('code') ) { + let i = 1; + for ( const tile of document.querySelectorAll('.tile') ) { + const id = `a${i}`; + tile.id = id; + const code = tile.querySelector('code'); + const filter = `#pcf #${id}${code.textContent}`; + code.textContent = filter; const div = document.createElement('div'); - div.textContent = `${hostname}##${node.textContent}`; + div.textContent = `${hostname}#?#${filter}`; fragment.appendChild(div); + i += 1; } const parent = document.querySelector('.filters'); while ( parent.lastElementChild !== null ) { diff -Nru ublock-origin-1.37.0+dfsg/docs/tests/static-filtering-parser-checklist.txt ublock-origin-1.42.0+dfsg/docs/tests/static-filtering-parser-checklist.txt --- ublock-origin-1.37.0+dfsg/docs/tests/static-filtering-parser-checklist.txt 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/docs/tests/static-filtering-parser-checklist.txt 2022-05-06 01:15:22.000000000 +0000 @@ -7,7 +7,7 @@ ! invalid cases, by typically adding the list to uBO, disabling the list, ! and viewing it in uBO's asset viewer. ! -! Feel free to add more entries to more throughly validate the static +! Feel free to add more entries to more thoroughly validate the static ! filtering parser, submit the changes in your fork of uBO by opening an ! issue at https://github.com/uBlockOrigin/uBlock-issues/issues diff -Nru ublock-origin-1.37.0+dfsg/platform/browser/main.js ublock-origin-1.42.0+dfsg/platform/browser/main.js --- ublock-origin-1.37.0+dfsg/platform/browser/main.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/browser/main.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,125 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +'use strict'; + +/******************************************************************************/ + +import publicSuffixList from './lib/publicsuffixlist/publicsuffixlist.js'; +import punycode from './lib/punycode.js'; + +import staticNetFilteringEngine from './js/static-net-filtering.js'; +import { FilteringContext } from './js/filtering-context.js'; +import { LineIterator } from './js/text-utils.js'; +import { StaticFilteringParser } from './js/static-filtering-parser.js'; + +import { + CompiledListReader, + CompiledListWriter +} from './js/static-filtering-io.js'; + +/******************************************************************************/ + +function compileList(rawText, writer) { + const lineIter = new LineIterator(rawText); + const parser = new StaticFilteringParser(true); + const compiler = staticNetFilteringEngine.createCompiler(parser); + + parser.setMaxTokenLength(staticNetFilteringEngine.MAX_TOKEN_LENGTH); + + while ( lineIter.eot() === false ) { + let line = lineIter.next(); + + while ( line.endsWith(' \\') ) { + if ( lineIter.peek(4) !== ' ' ) { break; } + line = line.slice(0, -2).trim() + lineIter.next().trim(); + } + parser.analyze(line); + + if ( parser.shouldIgnore() ) { continue; } + if ( parser.category !== parser.CATStaticNetFilter ) { continue; } + if ( parser.patternHasUnicode() && parser.toASCII() === false ) { + continue; + } + if ( compiler.compile(parser, writer) ) { continue; } + if ( compiler.error !== undefined ) { + console.info(JSON.stringify({ + realm: 'message', + type: 'error', + text: compiler.error + })); + } + } + + return writer.toString(); +} + +function applyList(name, raw) { + const writer = new CompiledListWriter(); + writer.properties.set('name', name); + const compiled = compileList(raw, writer); + const reader = new CompiledListReader(compiled); + staticNetFilteringEngine.fromCompiled(reader); +} + +function enableWASM(path) { + return Promise.all([ + publicSuffixList.enableWASM(`${path}/lib/publicsuffixlist`), + staticNetFilteringEngine.enableWASM(`${path}/js`), + ]); +} + +function pslInit(raw) { + if ( typeof raw !== 'string' || raw.trim() === '' ) { + console.info('Unable to populate public suffix list'); + return; + } + publicSuffixList.parse(raw, punycode.toASCII); + console.info('Public suffix list populated'); +} + +function restart(lists) { + // Remove all filters + reset(); + + if ( Array.isArray(lists) && lists.length !== 0 ) { + // Populate filtering engine with filter lists + for ( const { name, raw } of lists ) { + applyList(name, raw); + } + // Commit changes + staticNetFilteringEngine.freeze(); + staticNetFilteringEngine.optimize(); + } + + return staticNetFilteringEngine; +} + +function reset() { + staticNetFilteringEngine.reset(); +} + +export { + FilteringContext, + enableWASM, + pslInit, + restart, +}; diff -Nru ublock-origin-1.37.0+dfsg/platform/browser/test.html ublock-origin-1.42.0+dfsg/platform/browser/test.html --- ublock-origin-1.37.0+dfsg/platform/browser/test.html 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/browser/test.html 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,71 @@ + + + + +uBO Static Network Filtering Engine + + + + + diff -Nru ublock-origin-1.37.0+dfsg/platform/chromium/manifest.json ublock-origin-1.42.0+dfsg/platform/chromium/manifest.json --- ublock-origin-1.37.0+dfsg/platform/chromium/manifest.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/chromium/manifest.json 2022-05-06 01:15:22.000000000 +0000 @@ -26,6 +26,9 @@ }, "relax-blocking-mode": { "description": "__MSG_relaxBlockingMode__" + }, + "toggle-cosmetic-filtering": { + "description": "__MSG_toggleCosmeticFiltering__" } }, "content_scripts": [ @@ -50,7 +53,8 @@ "https://filterlists.com/*", "https://forums.lanik.us/*", "https://github.com/*", - "https://*.github.io/*" + "https://*.github.io/*", + "https://*.letsblock.it/*" ], "js": [ "/js/scriptlets/subscriber.js" @@ -70,7 +74,7 @@ }, "incognito": "split", "manifest_version": 2, - "minimum_chrome_version": "55.0", + "minimum_chrome_version": "66.0", "name": "uBlock Origin", "options_ui": { "page": "dashboard.html", diff -Nru ublock-origin-1.37.0+dfsg/platform/chromium/vapi-background-ext.js ublock-origin-1.42.0+dfsg/platform/chromium/vapi-background-ext.js --- ublock-origin-1.37.0+dfsg/platform/chromium/vapi-background-ext.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/chromium/vapi-background-ext.js 2022-05-06 01:15:22.000000000 +0000 @@ -28,6 +28,8 @@ // https://github.com/uBlockOrigin/uBlock-issues/issues/1659 // Chromium fails to dispatch onCreatedNavigationTarget() events sometimes, // so we synthetize these missing events when this happens. +// https://github.com/uBlockOrigin/uAssets/issues/10323 +// Also mind whether the new tab is launched from an external application. vAPI.Tabs = class extends vAPI.Tabs { constructor() { @@ -65,12 +67,11 @@ synthesizeNavigationTargetEvent(details) { if ( this.tabIds.has(details.tabId) === false ) { return; } this.tabIds.delete(details.tabId); - if ( - Array.isArray(details.transitionQualifiers) === false || - details.transitionQualifiers.includes('client_redirect') === false - ) { - return; - } + const isClientRedirect = + Array.isArray(details.transitionQualifiers) && + details.transitionQualifiers.includes('client_redirect'); + const isStartPage = details.transitionType === 'start_page'; + if ( isClientRedirect === false && isStartPage === false ) { return; } this.onCreatedNavigationTargetHandler({ tabId: details.tabId, sourceTabId: details.tabId, @@ -182,12 +183,16 @@ suspendOneRequest(details) { this.suspendedTabIds.add(details.tabId); - return { cancel: true }; + return { + redirectUrl: vAPI.getURL(`web_accessible_resources/empty?secret=${vAPI.warSecret()}`) + }; } - unsuspendAllRequests() { - for ( const tabId of this.suspendedTabIds ) { - vAPI.tabs.reload(tabId); + unsuspendAllRequests(discard = false) { + if ( discard !== true ) { + for ( const tabId of this.suspendedTabIds ) { + vAPI.tabs.reload(tabId); + } } this.suspendedTabIds.clear(); } diff -Nru ublock-origin-1.37.0+dfsg/platform/chromium/webext.js ublock-origin-1.42.0+dfsg/platform/chromium/webext.js --- ublock-origin-1.37.0+dfsg/platform/chromium/webext.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/chromium/webext.js 2022-05-06 01:15:22.000000000 +0000 @@ -24,9 +24,6 @@ // `webext` is a promisified api of `chrome`. Entries are added as // the promisification of uBO progress. -const webext = (( ) => { // jshint ignore:line -// >>>>> start of private scope - const promisifyNoFail = function(thisArg, fnName, outFn = r => r) { const fn = thisArg[fnName]; return function() { @@ -164,7 +161,4 @@ webext.tabs.removeCSS = promisifyNoFail(chrome.tabs, 'removeCSS'); } -return webext; - -// <<<<< end of private scope -})(); +export default webext; diff -Nru ublock-origin-1.37.0+dfsg/platform/common/vapi-background.js ublock-origin-1.42.0+dfsg/platform/common/vapi-background.js --- ublock-origin-1.37.0+dfsg/platform/common/vapi-background.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/common/vapi-background.js 2022-05-06 01:15:22.000000000 +0000 @@ -26,13 +26,11 @@ /******************************************************************************/ -{ -// >>>>> start of local scope +import webext from './webext.js'; +import { ubolog } from './console.js'; /******************************************************************************/ -/******************************************************************************/ -const browser = self.browser; const manifest = browser.runtime.getManifest(); vAPI.cantWebsocket = @@ -42,28 +40,11 @@ vAPI.canWASM = vAPI.webextFlavor.soup.has('chromium') === false; if ( vAPI.canWASM === false ) { const csp = manifest.content_security_policy; - vAPI.canWASM = csp !== undefined && csp.indexOf("'wasm-eval'") !== -1; + vAPI.canWASM = csp !== undefined && csp.indexOf("'unsafe-eval'") !== -1; } vAPI.supportsUserStylesheets = vAPI.webextFlavor.soup.has('user_stylesheet'); -// The real actual webextFlavor value may not be set in stone, so listen -// for possible future changes. -window.addEventListener('webextFlavor', function() { - vAPI.supportsUserStylesheets = - vAPI.webextFlavor.soup.has('user_stylesheet'); -}, { once: true }); - -/******************************************************************************/ - -vAPI.randomToken = function() { - const n = Math.random(); - return String.fromCharCode(n * 26 + 97) + - Math.floor( - (0.25 + n * 0.75) * Number.MAX_SAFE_INTEGER - ).toString(36).slice(-8); -}; - /******************************************************************************/ vAPI.app = { @@ -125,82 +106,10 @@ if ( bp instanceof Object === false ) { return; } return { - // Whether the WebRTC-related privacy API is crashy is an open question - // only for Chromium proper (because it can be compiled without the - // WebRTC feature): hence avoid overhead of the evaluation (which uses - // an iframe) for platforms where it's a non-issue. - // https://github.com/uBlockOrigin/uBlock-issues/issues/9 - // Some Chromium builds are made to look like a Chrome build. - webRTCSupported: vAPI.webextFlavor.soup.has('chromium') === false || undefined, - - // Calling with `true` means IP address leak is not prevented. - // https://github.com/gorhill/uBlock/issues/533 - // We must first check wether this Chromium-based browser was compiled - // with WebRTC support. To do this, we use an iframe, this way the - // empty RTCPeerConnection object we create to test for support will - // be properly garbage collected. This prevents issues such as - // a computer unable to enter into sleep mode, as reported in the - // Chrome store: - // https://github.com/gorhill/uBlock/issues/533#issuecomment-167931681 - setWebrtcIPAddress: function(setting) { - // We don't know yet whether this browser supports WebRTC: find out. - if ( this.webRTCSupported === undefined ) { - // If asked to leave WebRTC setting alone at this point in the - // code, this means we never grabbed the setting in the first - // place. - if ( setting ) { return; } - this.webRTCSupported = { setting: setting }; - let iframe = document.createElement('iframe'); - const messageHandler = ev => { - if ( ev.origin !== self.location.origin ) { return; } - window.removeEventListener('message', messageHandler); - const setting = this.webRTCSupported.setting; - this.webRTCSupported = ev.data === 'webRTCSupported'; - this.setWebrtcIPAddress(setting); - iframe.parentNode.removeChild(iframe); - iframe = null; - }; - window.addEventListener('message', messageHandler); - iframe.src = 'is-webrtc-supported.html'; - document.body.appendChild(iframe); - return; - } - - // We are waiting for a response from our iframe. This makes the code - // safe to re-entrancy. - if ( typeof this.webRTCSupported === 'object' ) { - this.webRTCSupported.setting = setting; - return; - } - - // https://github.com/gorhill/uBlock/issues/533 - // WebRTC not supported: `webRTCMultipleRoutesEnabled` can NOT be - // safely accessed. Accessing the property will cause full browser - // crash. - if ( this.webRTCSupported !== true ) { return; } - - const bpn = bp.network; - - if ( setting ) { - bpn.webRTCIPHandlingPolicy.clear({ - scope: 'regular', - }); - } else { - // https://github.com/uBlockOrigin/uAssets/issues/333#issuecomment-289426678 - // Leverage virtuous side-effect of strictest setting. - // https://github.com/gorhill/uBlock/issues/3009 - // Firefox currently works differently, use - // `default_public_interface_only` for now. - // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy/network#Browser_compatibility - // Firefox 70+ supports `disable_non_proxied_udp` - const value = - vAPI.webextFlavor.soup.has('firefox') === false || - vAPI.webextFlavor.major < 70 - ? 'default_public_interface_only' - : 'disable_non_proxied_udp'; - bpn.webRTCIPHandlingPolicy.set({ value, scope: 'regular' }); - } - }, + // https://github.com/uBlockOrigin/uBlock-issues/issues/1723#issuecomment-919913361 + canLeakLocalIPAddresses: + vAPI.webextFlavor.soup.has('firefox') && + vAPI.webextFlavor.soup.has('mobile'), set: function(details) { for ( const setting in details ) { @@ -236,10 +145,36 @@ } break; - case 'webrtcIPAddress': - this.setWebrtcIPAddress(!!details[setting]); + case 'webrtcIPAddress': { + // https://github.com/uBlockOrigin/uBlock-issues/issues/1928 + // https://www.reddit.com/r/uBlockOrigin/comments/sl7p74/ + // Hypothetical: some browsers _think_ uBO is still using + // the setting possibly based on cached state from the + // past, and making an explicit API call that uBO is not + // using the setting appears to solve those unexpected + // reported occurrences of uBO interfering despite never + // using the API. + const mustEnable = !details[setting]; + if ( this.canLeakLocalIPAddresses === false ) { + if ( mustEnable && vAPI.webextFlavor.soup.has('chromium') ) { + bp.network.webRTCIPHandlingPolicy.clear({ + scope: 'regular', + }); + } + continue; + } + if ( mustEnable ) { + bp.network.webRTCIPHandlingPolicy.set({ + value: 'default_public_interface_only', + scope: 'regular' + }); + } else { + bp.network.webRTCIPHandlingPolicy.clear({ + scope: 'regular', + }); + } break; - + } default: break; } @@ -476,16 +411,6 @@ return; } - // https://github.com/gorhill/uBlock/issues/3053#issuecomment-332276818 - // Do not try to lookup uBO's own pages with FF 55 or less. - if ( - vAPI.webextFlavor.soup.has('firefox') && - vAPI.webextFlavor.major < 56 - ) { - this.create(targetURL, details); - return; - } - // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query#Parameters // "Note that fragment identifiers are not matched." // Fragment identifiers ARE matched -- we need to remove the fragment. @@ -600,9 +525,12 @@ } onUpdatedHandler(tabId, changeInfo, tab) { + // Ignore uninteresting update events + const { status = '', title = '', url = '' } = changeInfo; + if ( status === '' && title === '' && url === '' ) { return; } // https://github.com/gorhill/uBlock/issues/3073 // Fall back to `tab.url` when `changeInfo.url` is not set. - if ( typeof changeInfo.url !== 'string' ) { + if ( url === '' ) { changeInfo.url = tab && tab.url; } if ( changeInfo.url ) { @@ -896,12 +824,18 @@ // content scripts. Whether a message can trigger a privileged operation is // decided based on whether the port from which a message is received is // privileged, which is a status evaluated once, at port connection time. +// +// https://github.com/uBlockOrigin/uBlock-issues/issues/1992 +// If present, use MessageSender.origin to determine whether the port is +// from a privileged page, otherwise use MessageSender.url. +// MessageSender.origin is more reliable as it is not spoofable by a +// compromised renderer. vAPI.messaging = { ports: new Map(), listeners: new Map(), defaultHandler: null, - PRIVILEGED_URL: vAPI.getURL(''), + PRIVILEGED_ORIGIN: vAPI.getURL('').slice(0, -1), NOOPFUNC: function(){}, UNHANDLED: 'vAPI.messaging.notHandled', @@ -927,10 +861,12 @@ ); const portDetails = { port }; const sender = port.sender; - const { tab, url } = sender; + const { origin, tab, url } = sender; portDetails.frameId = sender.frameId; portDetails.frameURL = url; - portDetails.privileged = url.startsWith(this.PRIVILEGED_URL); + portDetails.privileged = origin !== undefined + ? origin === this.PRIVILEGED_ORIGIN + : url.startsWith(this.PRIVILEGED_ORIGIN); if ( tab ) { portDetails.tabId = tab.id; portDetails.tabURL = tab.url; @@ -1143,7 +1079,7 @@ } // Auxiliary process to main process: no handler - log.info( + ubolog( `vAPI.messaging.onPortMessage > unhandled request: ${JSON.stringify(request.msg)}`, request ); @@ -1301,12 +1237,10 @@ } unsuspendAllRequests() { } - suspend(force = false) { - if ( this.canSuspend() || force ) { - this.suspendDepth += 1; - } + suspend() { + this.suspendDepth += 1; } - unsuspend(all = false) { + unsuspend({ all = false, discard = false } = {}) { if ( this.suspendDepth === 0 ) { return; } if ( all ) { this.suspendDepth = 0; @@ -1314,55 +1248,11 @@ this.suspendDepth -= 1; } if ( this.suspendDepth !== 0 ) { return; } - this.unsuspendAllRequests(); + this.unsuspendAllRequests(discard); } - canSuspend() { + static canSuspend() { return false; } - async benchmark() { - if ( typeof µBlock !== 'object' ) { return; } - const requests = await µBlock.loadBenchmarkDataset(); - if ( Array.isArray(requests) === false || requests.length === 0 ) { - console.info('No requests found to benchmark'); - return; - } - const mappedTypes = new Map([ - [ 'document', 'main_frame' ], - [ 'subdocument', 'sub_frame' ], - ]); - console.info('vAPI.net.onBeforeSuspendableRequest()...'); - const t0 = self.performance.now(); - const promises = []; - const details = { - documentUrl: '', - tabId: -1, - parentFrameId: -1, - frameId: 0, - type: '', - url: '', - }; - for ( const request of requests ) { - details.documentUrl = request.frameUrl; - details.tabId = -1; - details.parentFrameId = -1; - details.frameId = 0; - details.type = mappedTypes.get(request.cpt) || request.cpt; - details.url = request.url; - if ( details.type === 'main_frame' ) { continue; } - promises.push(this.onBeforeSuspendableRequest(details)); - } - return Promise.all(promises).then(results => { - let blockCount = 0; - for ( const r of results ) { - if ( r !== undefined ) { blockCount += 1; } - } - const t1 = self.performance.now(); - const dur = t1 - t0; - console.info(`Evaluated ${requests.length} requests in ${dur.toFixed(0)} ms`); - console.info(`\tBlocked ${blockCount} requests`); - console.info(`\tAverage: ${(dur / requests.length).toFixed(3)} ms per request`); - }); - } }; /******************************************************************************/ @@ -1719,9 +1609,3 @@ })(); /******************************************************************************/ -/******************************************************************************/ - -// <<<<< end of local scope -} - -/******************************************************************************/ diff -Nru ublock-origin-1.37.0+dfsg/platform/common/vapi-client.js ublock-origin-1.42.0+dfsg/platform/common/vapi-client.js --- ublock-origin-1.37.0+dfsg/platform/common/vapi-client.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/common/vapi-client.js 2022-05-06 01:15:22.000000000 +0000 @@ -40,7 +40,7 @@ vAPI.randomToken = function() { const n = Math.random(); - return String.fromCharCode(n * 26 + 97) + + return String.fromCharCode(n * 25 + 97) + Math.floor( (0.25 + n * 0.75) * Number.MAX_SAFE_INTEGER ).toString(36).slice(-8); @@ -97,9 +97,12 @@ // as world-ending, i.e. stay around. Except for embedded frames. disconnectListener: function() { + void browser.runtime.lastError; this.port = null; if ( window !== window.top ) { vAPI.shutdown.exec(); + } else { + this.destroyPort(); } }, disconnectListenerBound: null, @@ -129,11 +132,10 @@ messageListenerBound: null, canDestroyPort: function() { - return this.pending.size === 0 && - ( - this.extensions.length === 0 || - this.extensions.every(e => e.canDestroyPort()) - ); + return this.pending.size === 0 && ( + this.extensions.length === 0 || + this.extensions.every(e => e.canDestroyPort()) + ); }, mustDestroyPort: function() { diff -Nru ublock-origin-1.37.0+dfsg/platform/common/vapi-common.js ublock-origin-1.42.0+dfsg/platform/common/vapi-common.js --- ublock-origin-1.37.0+dfsg/platform/common/vapi-common.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/common/vapi-common.js 2022-05-06 01:15:22.000000000 +0000 @@ -66,19 +66,16 @@ typeof browser.runtime.getBrowserInfo === 'function' ) { browser.runtime.getBrowserInfo().then(info => { - flavor.major = parseInt(info.version, 10) || 60; + flavor.major = parseInt(info.version, 10) || flavor.major; soup.add(info.vendor.toLowerCase()) .add(info.name.toLowerCase()); - if ( soup.has('firefox') && flavor.major < 57 ) { - soup.delete('html_filtering'); - } dispatch(); }); if ( browser.runtime.getURL('').startsWith('moz-extension://') ) { soup.add('firefox') .add('user_stylesheet') .add('html_filtering'); - flavor.major = 60; + flavor.major = 91; } return; } @@ -86,12 +83,9 @@ // Synchronous -- order of tests is important const match = /\bChrom(?:e|ium)\/([\d.]+)/.exec(ua); if ( match !== null ) { - soup.add('chromium'); + soup.add('chromium') + .add('user_stylesheet'); flavor.major = parseInt(match[1], 10) || 0; - // https://github.com/gorhill/uBlock/issues/3588 - if ( flavor.major >= 66 ) { - soup.add('user_stylesheet'); - } } // Don't starve potential listeners @@ -100,59 +94,6 @@ /******************************************************************************/ -{ - const punycode = self.punycode; - const reCommonHostnameFromURL = /^https?:\/\/([0-9a-z_][0-9a-z._-]*[0-9a-z])\//; - const reAuthorityFromURI = /^(?:[^:\/?#]+:)?(\/\/[^\/?#]+)/; - const reHostFromNakedAuthority = /^[0-9a-z._-]+[0-9a-z]$/i; - const reHostFromAuthority = /^(?:[^@]*@)?([^:]+)(?::\d*)?$/; - const reIPv6FromAuthority = /^(?:[^@]*@)?(\[[0-9a-f:]+\])(?::\d*)?$/i; - const reMustNormalizeHostname = /[^0-9a-z._-]/; - - vAPI.hostnameFromURI = function(uri) { - let matches = reCommonHostnameFromURL.exec(uri); - if ( matches !== null ) { return matches[1]; } - matches = reAuthorityFromURI.exec(uri); - if ( matches === null ) { return ''; } - const authority = matches[1].slice(2); - if ( reHostFromNakedAuthority.test(authority) ) { - return authority.toLowerCase(); - } - matches = reHostFromAuthority.exec(authority); - if ( matches === null ) { - matches = reIPv6FromAuthority.exec(authority); - if ( matches === null ) { return ''; } - } - let hostname = matches[1]; - while ( hostname.endsWith('.') ) { - hostname = hostname.slice(0, -1); - } - if ( reMustNormalizeHostname.test(hostname) ) { - hostname = punycode.toASCII(hostname.toLowerCase()); - } - return hostname; - }; - - const reHostnameFromNetworkURL = - /^(?:http|ws|ftp)s?:\/\/([0-9a-z_][0-9a-z._-]*[0-9a-z])(?::\d+)?\//; - - vAPI.hostnameFromNetworkURL = function(url) { - const matches = reHostnameFromNetworkURL.exec(url); - return matches !== null ? matches[1] : ''; - }; - - const psl = self.publicSuffixList; - const reIPAddressNaive = /^\d+\.\d+\.\d+\.\d+$|^\[[\da-zA-Z:]+\]$/; - - vAPI.domainFromHostname = function(hostname) { - return reIPAddressNaive.test(hostname) - ? hostname - : psl.getDomain(hostname); - }; -} - -/******************************************************************************/ - vAPI.download = function(details) { if ( !details.url ) { return; } const a = document.createElement('a'); diff -Nru ublock-origin-1.37.0+dfsg/platform/common/vapi.js ublock-origin-1.42.0+dfsg/platform/common/vapi.js --- ublock-origin-1.37.0+dfsg/platform/common/vapi.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/common/vapi.js 2022-05-06 01:15:22.000000000 +0000 @@ -27,7 +27,10 @@ /******************************************************************************/ -if ( self.browser instanceof Object ) { +if ( + self.browser instanceof Object && + self.browser instanceof Element === false +) { self.chrome = self.browser; } else { self.browser = self.chrome; diff -Nru ublock-origin-1.37.0+dfsg/platform/dig/package.json ublock-origin-1.42.0+dfsg/platform/dig/package.json --- ublock-origin-1.37.0+dfsg/platform/dig/package.json 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/dig/package.json 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,28 @@ +{ + "name": "@gorhill/ubo-dig", + "version": "0.1.0", + "description": "To investigate code changes (not for publication)", + "type": "module", + "main": "index.js", + "scripts": { + "build": "node build.js", + "snfe": "node snfe.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/gorhill/uBlock.git" + }, + "author": "Raymond Hill", + "license": "GPL-3.0-or-later", + "bugs": { + "url": "https://github.com/gorhill/uBlock/issues" + }, + "homepage": "https://github.com/gorhill/uBlock#readme", + "engines": { + "node": ">=14.0.0", + "npm": ">=6.14.4" + }, + "devDependencies": { + "scaling-palm-tree": "github:mjethani/scaling-palm-tree#15cf1ab" + } +} diff -Nru ublock-origin-1.37.0+dfsg/platform/dig/snfe.js ublock-origin-1.42.0+dfsg/platform/dig/snfe.js --- ublock-origin-1.37.0+dfsg/platform/dig/snfe.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/dig/snfe.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,392 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +/* eslint-disable-next-line no-redeclare */ +/* globals process */ + +'use strict'; + +/******************************************************************************/ + +import { strict as assert } from 'assert'; +import { createRequire } from 'module'; +import { readFileSync, writeFileSync } from 'fs'; +import { dirname, resolve } from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +import { enableWASM, StaticNetFilteringEngine } from './index.js'; + +/******************************************************************************/ + +const FLAGS = process.argv.slice(2); +const COMPARE = FLAGS.includes('compare'); +const MAXCOST = FLAGS.includes('maxcost'); +const MEDCOST = FLAGS.includes('medcost'); +const MINCOST = FLAGS.includes('mincost'); +const MODIFIERS = FLAGS.includes('modifiers'); +const RECORD = FLAGS.includes('record'); +const WASM = FLAGS.includes('wasm'); +const NEED_RESULTS = COMPARE || MAXCOST || MEDCOST || MINCOST || RECORD; + +// This maps puppeteer types to WebRequest types +const WEBREQUEST_OPTIONS = { + // Consider document requests as sub_document. This is because the request + // dataset does not contain sub_frame or main_frame but only 'document' and + // different blockers have different behaviours. + document: 'sub_frame', + stylesheet: 'stylesheet', + image: 'image', + media: 'media', + font: 'font', + script: 'script', + xhr: 'xmlhttprequest', + fetch: 'xmlhttprequest', + websocket: 'websocket', + ping: 'ping', + // other + other: 'other', + eventsource: 'other', + manifest: 'other', + texttrack: 'other', +}; + +/******************************************************************************/ + +function nanoToMilli(bigint) { + return (Number(bigint) / 1000000).toFixed(2) + ' ms'; +} + +function nanoToMicro(bigint) { + return (Number(bigint) / 1000).toFixed(2) + ' µs'; +} + +async function read(path) { + return readFileSync(resolve(__dirname, path), 'utf8'); +} + +async function write(path, data) { + return writeFileSync(resolve(__dirname, path), data, 'utf8'); +} + +/******************************************************************************/ + +async function matchRequests(engine, requests) { + const results = []; + const details = { + r: 0, + f: undefined, + type: '', + url: '', + originURL: '', + t: 0, + }; + + let notBlockedCount = 0; + let blockedCount = 0; + let unblockedCount = 0; + + const start = process.hrtime.bigint(); + + for ( let i = 0; i < requests.length; i++ ) { + const request = requests[i]; + const reqstart = process.hrtime.bigint(); + details.type = WEBREQUEST_OPTIONS[request.cpt]; + details.url = request.url; + details.originURL = request.frameUrl; + const r = engine.matchRequest(details); + if ( r === 0 ) { + notBlockedCount += 1; + } else if ( r === 1 ) { + blockedCount += 1; + } else { + unblockedCount += 1; + } + if ( NEED_RESULTS !== true ) { continue; } + const reqstop = process.hrtime.bigint(); + details.r = r; + details.f = r !== 0 ? engine.toLogData().raw : undefined; + details.t = Math.round(Number(reqstop - reqstart) / 10) / 100; + results.push([ i, Object.assign({}, details) ]); + } + + const stop = process.hrtime.bigint(); + + console.log(`Matched ${requests.length} requests in ${nanoToMilli(stop - start)}`); + console.log(`\tNot blocked: ${notBlockedCount} requests`); + console.log(`\tBlocked: ${blockedCount} requests`); + console.log(`\tUnblocked: ${unblockedCount} requests`); + console.log(`\tAverage: ${nanoToMicro((stop - start) / BigInt(requests.length))} per request`); + + if ( RECORD ) { + write('data/snfe.json', JSON.stringify(results, null, 2)); + } + + if ( COMPARE ) { + const diffs = await compare(results); + if ( Array.isArray(diffs) ) { + write('data/snfe.diffs.json', JSON.stringify(diffs, null, 2)); + } + console.log(`Compare: ${diffs.length} requests differ`); + } + + if ( MAXCOST ) { + const costly = results.slice().sort((a,b) => b[1].t - a[1].t).slice(0, 1000); + write('data/snfe.maxcost.json', JSON.stringify(costly, null, 2)); + } + + if ( MEDCOST ) { + const median = results.length >>> 1; + const costly = results.slice().sort((a,b) => b[1].t - a[1].t).slice(median - 500, median + 500); + write('data/snfe.medcost.json', JSON.stringify(costly, null, 2)); + } + + if ( MINCOST ) { + const costly = results.slice().sort((a,b) => b[1].t - a[1].t).slice(-1000); + write('data/snfe.mincost.json', JSON.stringify(costly, null, 2)); + } +} + +async function compare(results) { + let before; + try { + const raw = await read('data/snfe.json'); + before = new Map(JSON.parse(raw)); + } catch(ex) { + console.log(ex); + console.log('Nothing to compare'); + return; + } + const after = new Map(results); + const diffs = []; + for ( let i = 0; i < results.length; i++ ) { + const a = before.get(i); + const b = after.get(i); + if ( a.r === b.r ) { continue; } + diffs.push([ i, { + type: a.type, + url: a.url, + originURL: a.originURL, + before: { r: a.r, f: a.f, t: a.t }, + after: { r: b.r, f: b.f, t: b.t }, + }]); + } + return diffs; +} + +/******************************************************************************/ + +async function matchRequestModifiers(engine, requests) { + const results = { + 'csp': [], + 'redirect-rule': [], + 'removeparam': [], + }; + + const details = { + f: undefined, + type: '', + url: '', + originURL: '', + t: 0, + }; + + let modifiedCount = 0; + + const start = process.hrtime.bigint(); + for ( let i = 0; i < requests.length; i++ ) { + const request = requests[i]; + details.type = WEBREQUEST_OPTIONS[request.cpt]; + details.url = request.url; + details.originURL = request.frameUrl; + const r = engine.matchRequest(details); + let modified = false; + if ( r !== 1 && details.type === 'sub_frame' ) { + const reqstart = process.hrtime.bigint(); + const directives = engine.matchAndFetchModifiers(details, 'csp'); + if ( directives !== undefined ) { + modified = true; + if ( NEED_RESULTS ) { + const reqstop = process.hrtime.bigint(); + details.f = directives.map(a => `${a.result}:${a.logData().raw}`).sort(); + details.t = Math.round(Number(reqstop - reqstart) / 10) / 100; + results['csp'].push([ i, Object.assign({}, details) ]); + } + } + } + if ( r === 1 ) { + const reqstart = process.hrtime.bigint(); + const directives = engine.matchAndFetchModifiers(details, 'redirect-rule'); + if ( directives !== undefined ) { + modified = true; + if ( NEED_RESULTS ) { + const reqstop = process.hrtime.bigint(); + details.f = directives.map(a => `${a.result}:${a.logData().raw}`).sort(); + details.t = Math.round(Number(reqstop - reqstart) / 10) / 100; + results['redirect-rule'].push([ i, Object.assign({}, details) ]); + } + } + } + if ( r !== 1 && engine.hasQuery(details) ) { + const reqstart = process.hrtime.bigint(); + const directives = engine.matchAndFetchModifiers(details, 'removeparam'); + if ( directives !== undefined ) { + modified = true; + if ( NEED_RESULTS ) { + const reqstop = process.hrtime.bigint(); + details.f = directives.map(a => `${a.result}:${a.logData().raw}`).sort(); + details.t = Math.round(Number(reqstop - reqstart) / 10) / 100; + results['removeparam'].push([ i, Object.assign({}, details) ]); + } + } + } + if ( modified ) { + modifiedCount += 1; + } + } + const stop = process.hrtime.bigint(); + + console.log(`Matched-modified ${requests.length} requests in ${nanoToMilli(stop - start)}`); + console.log(`\t${modifiedCount} modifiers found`); + console.log(`\tAverage: ${nanoToMicro((stop - start) / BigInt(requests.length))} per request`); + + if ( RECORD ) { + write('data/snfe.modifiers.json', JSON.stringify(results, null, 2)); + } + + if ( COMPARE ) { + const diffs = await compareModifiers(results); + if ( Array.isArray(diffs) ) { + write('data/snfe.modifiers.diffs.json', JSON.stringify(diffs, null, 2)); + } + console.log(`Compare: ${diffs.length} modified requests differ`); + } +} + +async function compareModifiers(afterResults) { + let beforeResults; + try { + const raw = await read('data/snfe.modifiers.json'); + beforeResults = JSON.parse(raw); + } catch(ex) { + console.log(ex); + console.log('Nothing to compare'); + return; + } + const diffs = []; + for ( const modifier of [ 'csp', 'redirect-rule', 'removeparam' ] ) { + const before = new Map(beforeResults[modifier]); + const after = new Map(afterResults[modifier]); + for ( const [ i, b ] of before ) { + const a = after.get(i); + if ( a !== undefined && JSON.stringify(a.f) === JSON.stringify(b.f) ) { continue; } + diffs.push([ i, { + type: b.type, + url: b.url, + originURL: b.originURL, + before: { f: b.f, t: b.t }, + after: a !== undefined ? { f: a.f, t: a.t } : null, + }]); + } + for ( const [ i, a ] of after ) { + const b = before.get(i); + if ( b !== undefined ) { continue; } + diffs.push([ i, { + type: a.type, + url: a.url, + originURL: a.originURL, + before: null, + after: { f: a.f, t: a.t }, + }]); + } + } + return diffs; +} + +/******************************************************************************/ + +async function bench() { + if ( WASM ) { + try { + const result = await enableWASM(); + if ( result === true ) { + console.log('WASM code paths enabled'); + } + } catch(ex) { + console.log(ex); + } + } + + const require = createRequire(import.meta.url); // jshint ignore:line + const requests = await require('./node_modules/scaling-palm-tree/requests.json'); + const engine = await StaticNetFilteringEngine.create(); + + let start = process.hrtime.bigint(); + await engine.useLists([ + read('assets/ublock/badware.txt') + .then(raw => ({ name: 'badware', raw })), + read('assets/ublock/filters.txt') + .then(raw => ({ name: 'filters', raw })), + read('assets/ublock/filters-2020.txt') + .then(raw => ({ name: 'filters-2020', raw })), + read('assets/ublock/filters-2021.txt') + .then(raw => ({ name: 'filters-2021', raw })), + read('assets/ublock/privacy.txt') + .then(raw => ({ name: 'privacy', raw })), + read('assets/ublock/resource-abuse.txt') + .then(raw => ({ name: 'resource-abuse', raw })), + read('assets/ublock/unbreak.txt') + .then(raw => ({ name: 'unbreak.txt', raw })), + read('assets/thirdparties/easylist-downloads.adblockplus.org/easylist.txt') + .then(raw => ({ name: 'easylist', raw })), + read('assets/thirdparties/easylist-downloads.adblockplus.org/easyprivacy.txt') + .then(raw => ({ name: 'easyprivacy', raw })), + read('assets/thirdparties/pgl.yoyo.org/as/serverlist') + .then(raw => ({ name: 'PGL', raw })), + read('assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt') + .then(raw => ({ name: 'urlhaus', raw })), + ]); + let stop = process.hrtime.bigint(); + console.log(`Filter lists parsed-compiled-loaded in ${nanoToMilli(stop - start)}`); + + // Dry run to let JS engine optimize hot JS code paths + for ( let i = 0; i < requests.length; i += 8 ) { + const request = requests[i]; + void engine.matchRequest({ + type: WEBREQUEST_OPTIONS[request.cpt], + url: request.url, + originURL: request.frameUrl, + }); + } + + if ( MODIFIERS === false ) { + matchRequests(engine, requests); + } else { + matchRequestModifiers(engine, requests); + } + + StaticNetFilteringEngine.release(); +} + +bench(); + +/******************************************************************************/ diff -Nru ublock-origin-1.37.0+dfsg/platform/firefox/manifest.json ublock-origin-1.42.0+dfsg/platform/firefox/manifest.json --- ublock-origin-1.37.0+dfsg/platform/firefox/manifest.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/firefox/manifest.json 2022-05-06 01:15:22.000000000 +0000 @@ -15,7 +15,7 @@ "browser_specific_settings": { "gecko": { "id": "uBlock0@raymondhill.net", - "strict_min_version": "57.0" + "strict_min_version": "68.0" } }, "commands": { @@ -35,6 +35,9 @@ }, "relax-blocking-mode": { "description": "__MSG_relaxBlockingMode__" + }, + "toggle-cosmetic-filtering": { + "description": "__MSG_toggleCosmeticFiltering__" } }, "content_scripts": [ @@ -60,7 +63,8 @@ "https://filterlists.com/*", "https://forums.lanik.us/*", "https://github.com/*", - "https://*.github.io/*" + "https://*.github.io/*", + "https://*.letsblock.it/*" ], "js": [ "/js/scriptlets/subscriber.js" diff -Nru ublock-origin-1.37.0+dfsg/platform/firefox/vapi-background-ext.js ublock-origin-1.42.0+dfsg/platform/firefox/vapi-background-ext.js --- ublock-origin-1.37.0+dfsg/platform/firefox/vapi-background-ext.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/firefox/vapi-background-ext.js 2022-05-06 01:15:22.000000000 +0000 @@ -25,30 +25,17 @@ /******************************************************************************/ +import { + domainFromHostname, + hostnameFromNetworkURL, +} from './uri-utils.js'; + +/******************************************************************************/ + (( ) => { // https://github.com/uBlockOrigin/uBlock-issues/issues/407 if ( vAPI.webextFlavor.soup.has('firefox') === false ) { return; } - // https://github.com/gorhill/uBlock/issues/2950 - // Firefox 56 does not normalize URLs to ASCII, uBO must do this itself. - // https://bugzilla.mozilla.org/show_bug.cgi?id=945240 - const evalMustPunycode = ( ) => { - return vAPI.webextFlavor.soup.has('firefox') && - vAPI.webextFlavor.major < 57; - }; - - let mustPunycode = evalMustPunycode(); - - // The real actual webextFlavor value may not be set in stone, so listen - // for possible future changes. - window.addEventListener('webextFlavor', ( ) => { - mustPunycode = evalMustPunycode(); - }, { once: true }); - - const punycode = self.punycode; - const reAsciiHostname = /^https?:\/\/[0-9a-z_.:@-]+[/?#]/; - const parsedURL = new URL('about:blank'); - // Canonical name-uncloaking feature. let cnameUncloakEnabled = browser.dns instanceof Object; let cnameUncloakProxied = false; @@ -144,14 +131,6 @@ } } normalizeDetails(details) { - if ( mustPunycode && !reAsciiHostname.test(details.url) ) { - parsedURL.href = details.url; - details.url = details.url.replace( - parsedURL.hostname, - punycode.toASCII(parsedURL.hostname) - ); - } - const type = details.type; if ( type === 'imageset' ) { @@ -231,7 +210,7 @@ if ( cname !== '' && this.cnameIgnore1stParty && - vAPI.domainFromHostname(cname) === vAPI.domainFromHostname(hn) + domainFromHostname(cname) === domainFromHostname(hn) ) { cname = ''; } @@ -284,7 +263,7 @@ ) { return; } - const hn = vAPI.hostnameFromNetworkURL(details.url); + const hn = hostnameFromNetworkURL(details.url); const cname = this.cnames.get(hn); if ( cname === '' ) { return; } if ( cname !== undefined ) { @@ -313,14 +292,18 @@ this.pendingRequests.push(pending); return pending.promise; } - unsuspendAllRequests() { + unsuspendAllRequests(discard = false) { const pendingRequests = this.pendingRequests; this.pendingRequests = []; for ( const entry of pendingRequests ) { - entry.resolve(this.onBeforeSuspendableRequest(entry.details)); + entry.resolve( + discard !== true + ? this.onBeforeSuspendableRequest(entry.details) + : undefined + ); } } - canSuspend() { + static canSuspend() { return true; } }; diff -Nru ublock-origin-1.37.0+dfsg/platform/firefox/webext.js ublock-origin-1.42.0+dfsg/platform/firefox/webext.js --- ublock-origin-1.37.0+dfsg/platform/firefox/webext.js 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/firefox/webext.js 2022-05-06 01:15:22.000000000 +0000 @@ -21,4 +21,4 @@ 'use strict'; -const webext = browser; // jshint ignore:line +export default browser; diff -Nru ublock-origin-1.37.0+dfsg/platform/nodejs/README.md ublock-origin-1.42.0+dfsg/platform/nodejs/README.md --- ublock-origin-1.37.0+dfsg/platform/nodejs/README.md 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/nodejs/README.md 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,158 @@ +# uBlock Origin Core + +The core filtering engines used in the uBlock Origin ("uBO") extension, and has +no external dependencies. + +## Installation + +Install: `npm install @gorhill/ubo-core` + +This is a very early version and the API is subject to change at any time. + +This package uses [native JavaScript modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules). + + +## Description + +The package contains uBO's static network filtering engine ("SNFE"), which +purpose is to parse and enforce filter lists. The matching algorithm is highly +efficient, and _especially_ optimized to match against large sets of pure +hostnames. + +The SNFE can be fed filter lists from a variety of sources, such as [EasyList/EasyPrivacy](https://easylist.to/), +[uBlock filters](https://github.com/uBlockOrigin/uAssets/tree/master/filters), +and also lists of domain names or hosts file format (i.e. block lists from [The Block List Project](https://github.com/blocklistproject/Lists#the-block-list-project), +[Steven Black's HOSTS](https://github.com/StevenBlack/hosts#readme), etc). + + +## Usage + +At the moment, there can be only one instance of the static network filtering +engine ("SNFE"), which proxy API must be imported as follow: + +```js +import { StaticNetFilteringEngine } from '@gorhill/ubo-core'; +``` + +If you must import as a NodeJS module: + +```js +const { StaticNetFilteringEngine } = await import('@gorhill/ubo-core'); +``` + + +Create an instance of SNFE: + +```js +const snfe = StaticNetFilteringEngine.create(); +``` + +Feed the SNFE with filter lists -- `useLists()` accepts an array of +objects (or promises to object) which expose the raw text of a list +through the `raw` property, and optionally the name of the list through the +`name` property (how you fetch the lists is up to you): + +```js +await snfe.useLists([ + fetch('easylist').then(raw => ({ name: 'easylist', raw })), + fetch('easyprivacy').then(raw => ({ name: 'easyprivacy', raw })), +]); +``` + +Now we are ready to match network requests: + +```js +// Not blocked +if ( snfe.matchRequest({ + originURL: 'https://www.bloomberg.com/', + url: 'https://www.bloomberg.com/tophat/assets/v2.6.1/that.css', + type: 'stylesheet' +}) !== 0 ) { + console.log(snfe.toLogData()); +} + +// Blocked +if ( snfe.matchRequest({ + originURL: 'https://www.bloomberg.com/', + url: 'https://securepubads.g.doubleclick.net/tag/js/gpt.js', + type: 'script' +}) !== 0 ) { + console.log(snfe.toLogData()); +} + +// Unblocked +if ( snfe.matchRequest({ + originURL: 'https://www.bloomberg.com/', + url: 'https://sourcepointcmp.bloomberg.com/ccpa.js', + type: 'script' +}) !== 0 ) { + console.log(snfe.toLogData()); +} +``` + +It is possible to pre-parse filter lists and save the intermediate results for +later use -- useful to speed up the loading of filter lists. This will be +documented eventually, but if you feel adventurous, you can look at the code +and use this capability now if you figure out the details. + +--- + +## Extras + +You can directly use specific APIs exposed by this package, here are some of +them, which are used internally by uBO's SNFE. + +### HNTrieContainer + +A well optimised [compressed trie](https://en.wikipedia.org/wiki/Trie#Compressing_tries) +container specialized to specifically store and lookup hostnames. + +The matching algorithm is designed for hostnames, i.e. the hostname labels +making up a hostname are matched from right to left, such that `www.example.org` +with be a match if `example.org` is stored into the trie, while +`anotherexample.org` won't be a match. + +`HNTrieContainer` is designed to store a large number of hostnames with CPU and +memory efficiency as a main concern -- and is a key component of uBO. + +To create and use a standalone `HNTrieContainer` object: + +```js +import HNTrieContainer from '@gorhill/ubo-core/js/hntrie.js'; + +const trieContainer = new HNTrieContainer(); + +const aTrie = trieContainer.createOne(); +trieContainer.add(aTrie, 'example.org'); +trieContainer.add(aTrie, 'example.com'); + +const anotherTrie = trieContainer.createOne(); +trieContainer.add(anotherTrie, 'foo.invalid'); +trieContainer.add(anotherTrie, 'bar.invalid'); + +// matches() return the position at which the match starts, or -1 when +// there is no match. + +// Matches: return 4 +console.log("trieContainer.matches(aTrie, 'www.example.org')", trieContainer.matches(aTrie, 'www.example.org')); + +// Does not match: return -1 +console.log("trieContainer.matches(aTrie, 'www.foo.invalid')", trieContainer.matches(aTrie, 'www.foo.invalid')); + +// Does not match: return -1 +console.log("trieContainer.matches(anotherTrie, 'www.example.org')", trieContainer.matches(anotherTrie, 'www.example.org')); + +// Matches: return 0 +console.log("trieContainer.matches(anotherTrie, 'foo.invalid')", trieContainer.matches(anotherTrie, 'foo.invalid')); +``` + +The `reset()` method must be used to remove all the tries from a trie container, +you can't remove a single trie from the container. + +```js +trieContainer.reset(); +``` + +When you reset a trie container, you can't use the reference to prior instances +of trie, i.e. `aTrie` and `anotherTrie` are no longer valid and shouldn't be +used following a reset. diff -Nru ublock-origin-1.37.0+dfsg/platform/nodejs/build.js ublock-origin-1.42.0+dfsg/platform/nodejs/build.js --- ublock-origin-1.37.0+dfsg/platform/nodejs/build.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/nodejs/build.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,34 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +'use strict'; + +/******************************************************************************/ + +import fs from 'fs'; + +import { pslInit } from './index.js'; + +/******************************************************************************/ + +fs.mkdirSync('./build', { recursive: true }); +fs.writeFileSync('./build/publicsuffixlist.json', + JSON.stringify(pslInit().toSelfie())); diff -Nru ublock-origin-1.37.0+dfsg/platform/nodejs/index.js ublock-origin-1.42.0+dfsg/platform/nodejs/index.js --- ublock-origin-1.37.0+dfsg/platform/nodejs/index.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/nodejs/index.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,282 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +/* globals WebAssembly */ + +'use strict'; + +/******************************************************************************/ + +import { createRequire } from 'module'; + +import { readFileSync } from 'fs'; +import { dirname, resolve } from 'path'; +import { domainToASCII, fileURLToPath } from 'url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +import publicSuffixList from './lib/publicsuffixlist/publicsuffixlist.js'; + +import snfe from './js/static-net-filtering.js'; +import { FilteringContext } from './js/filtering-context.js'; +import { LineIterator } from './js/text-utils.js'; +import { StaticFilteringParser } from './js/static-filtering-parser.js'; + +import { + CompiledListReader, + CompiledListWriter, +} from './js/static-filtering-io.js'; + +/******************************************************************************/ + +function loadJSON(path) { + return JSON.parse(readFileSync(resolve(__dirname, path), 'utf8')); +} + +/******************************************************************************/ + +async function enableWASM() { + const wasmModuleFetcher = function(path) { + const require = createRequire(import.meta.url); // jshint ignore:line + const wasm = new Uint8Array(require(`${path}.wasm.json`)); + return WebAssembly.compile(wasm); + }; + try { + const results = await Promise.all([ + publicSuffixList.enableWASM(wasmModuleFetcher, './lib/publicsuffixlist/wasm/'), + snfe.enableWASM(wasmModuleFetcher, './js/wasm/'), + ]); + return results.every(a => a === true); + } catch(reason) { + console.log(reason); + } + return false; +} + +/******************************************************************************/ + +function pslInit(raw) { + if ( typeof raw === 'string' && raw.trim() !== '' ) { + publicSuffixList.parse(raw, domainToASCII); + return publicSuffixList; + } + + // Use serialized version if available + let serialized = null; + try { + // Use loadJSON() because require() would keep the string in memory. + serialized = loadJSON('build/publicsuffixlist.json'); + } catch (error) { + if ( process.env.npm_lifecycle_event !== 'build' ) { + // This should never happen except during package building. + console.error(error); + } + } + if ( serialized !== null ) { + publicSuffixList.fromSelfie(serialized); + return publicSuffixList; + } + + raw = readFileSync( + resolve(__dirname, './assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat'), + 'utf8' + ); + if ( typeof raw !== 'string' || raw.trim() === '' ) { + console.error('Unable to populate public suffix list'); + return; + } + publicSuffixList.parse(raw, domainToASCII); + return publicSuffixList; +} + +/******************************************************************************/ + +function compileList({ name, raw }, compiler, writer, options = {}) { + const lineIter = new LineIterator(raw); + const events = Array.isArray(options.events) ? options.events : undefined; + + if ( name ) { + writer.properties.set('name', name); + } + + const { parser } = compiler; + + while ( lineIter.eot() === false ) { + let line = lineIter.next(); + while ( line.endsWith(' \\') ) { + if ( lineIter.peek(4) !== ' ' ) { break; } + line = line.slice(0, -2).trim() + lineIter.next().trim(); + } + parser.analyze(line); + if ( parser.shouldIgnore() ) { continue; } + if ( parser.category !== parser.CATStaticNetFilter ) { continue; } + if ( parser.patternHasUnicode() && parser.toASCII() === false ) { + continue; + } + if ( compiler.compile(writer) ) { continue; } + if ( compiler.error !== undefined && events !== undefined ) { + options.events.push({ + type: 'error', + text: compiler.error + }); + } + } + + return writer.toString(); +} + +/******************************************************************************/ + +async function useLists(lists, options = {}) { + if ( useLists.promise !== null ) { + throw new Error('Pending useLists() operation'); + } + + // Remove all filters + snfe.reset(); + + if ( Array.isArray(lists) === false || lists.length === 0 ) { + return; + } + + let compiler = null; + + const consumeList = list => { + let { compiled } = list; + if ( typeof compiled !== 'string' || compiled === '' ) { + const writer = new CompiledListWriter(); + if ( compiler === null ) { + compiler = snfe.createCompiler(new StaticFilteringParser()); + } + compiled = compileList(list, compiler, writer, options); + } + snfe.fromCompiled(new CompiledListReader(compiled)); + }; + + // Populate filtering engine with resolved filter lists + const promises = []; + for ( const list of lists ) { + const promise = list instanceof Promise ? list : Promise.resolve(list); + promises.push(promise.then(list => consumeList(list))); + } + + useLists.promise = Promise.all(promises); + await useLists.promise; + useLists.promise = null; // eslint-disable-line require-atomic-updates + + // Commit changes + snfe.freeze(); + snfe.optimize(); +} + +useLists.promise = null; + +/******************************************************************************/ + +const fctx = new FilteringContext(); +let snfeProxyInstance = null; + +class StaticNetFilteringEngine { + constructor() { + if ( snfeProxyInstance !== null ) { + throw new Error('Only a single instance is supported.'); + } + snfeProxyInstance = this; + } + + useLists(lists) { + return useLists(lists); + } + + matchRequest(details) { + return snfe.matchRequest(fctx.fromDetails(details)); + } + + matchAndFetchModifiers(details, modifier) { + return snfe.matchAndFetchModifiers(fctx.fromDetails(details), modifier); + } + + hasQuery(details) { + return snfe.hasQuery(details); + } + + filterQuery(details) { + const directives = snfe.filterQuery(fctx.fromDetails(details)); + if ( directives === undefined ) { return; } + return { redirectURL: fctx.redirectURL, directives }; + } + + isBlockImportant() { + return snfe.isBlockImportant(); + } + + toLogData() { + return snfe.toLogData(); + } + + createCompiler(parser) { + return snfe.createCompiler(parser); + } + + compileList(...args) { + return compileList(...args); + } + + serialize() { + return snfe.serialize(); + } + + deserialize(serialized) { + return snfe.unserialize(serialized); + } + + static async create({ noPSL = false } = {}) { + const instance = new StaticNetFilteringEngine(); + + if ( noPSL !== true && !pslInit() ) { + throw new Error('Failed to initialize public suffix list.'); + } + + return instance; + } + + static async release() { + if ( snfeProxyInstance === null ) { return; } + snfeProxyInstance = null; + await useLists([]); + } +} + +/******************************************************************************/ + +// rollup.js needs module.exports to be set back to the local exports object. +// This is because some of the code (e.g. publicsuffixlist.js) sets +// module.exports. Once all included files are written like ES modules, using +// export statements, this should no longer be necessary. +if ( typeof module !== 'undefined' && typeof exports !== 'undefined' ) { + module.exports = exports; +} + +export { + enableWASM, + pslInit, + StaticNetFilteringEngine, +}; diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/.eslintrc.json ublock-origin-1.42.0+dfsg/platform/npm/.eslintrc.json --- ublock-origin-1.37.0+dfsg/platform/npm/.eslintrc.json 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/.eslintrc.json 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,38 @@ +{ + "root": true, + "env": { + "es2021": true, + "node": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 12, + "sourceType": "module" + }, + "rules": { + "eqeqeq": [ "warn", "always" ], + "indent": [ + "warn", + 4, + { + "ArrayExpression": "first", + "CallExpression": { "arguments": "first" }, + "MemberExpression": "off", + "ObjectExpression": "off", + "ignoreComments": true, + "ignoredNodes": [ + "AssignmentExpression:has(Literal)" + ] + } + ], + "getter-return": "off", + "no-control-regex": "off", + "no-empty": [ "error", { "allowEmptyCatch": true } ], + "no-promise-executor-return": [ "error" ], + "no-template-curly-in-string": [ "error" ], + "no-unreachable-loop": [ "error" ], + "no-useless-backreference": [ "error" ], + "no-useless-escape": "off", + "require-atomic-updates": [ "warn" ] + } +} diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/.npmignore ublock-origin-1.42.0+dfsg/platform/npm/.npmignore --- ublock-origin-1.37.0+dfsg/platform/npm/.npmignore 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/.npmignore 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,5 @@ +assets/ +coverage/ +tests/ +.eslintrc.json +test.js diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/package-lock.json ublock-origin-1.42.0+dfsg/platform/npm/package-lock.json --- ublock-origin-1.37.0+dfsg/platform/npm/package-lock.json 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/package-lock.json 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,1658 @@ +{ + "name": "@gorhill/ubo-core", + "version": "0.1.9", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "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" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "c8": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.8.0.tgz", + "integrity": "sha512-x2Bx+IIEd608B1LmjiNQ/kizRPkCWo5XzuV57J9afPjAHSnYXALwbCSOkQ7cSaNXBNblfqcvdycj+klmL+j6yA==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.2", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.0.2", + "rimraf": "^3.0.0", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^8.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.7" + }, + "dependencies": { + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "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": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esm-world": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/esm-world/-/esm-world-0.1.1.tgz", + "integrity": "sha512-BrUju/zoltW1L3MXWM3WZFpZddekSLnl0st7L//luZs3fbJ/o/3knWByewSic3RsMWCp3lGIh0GfA9WOEU8QxQ==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "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" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "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 + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "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==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mocha": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.0.3.tgz", + "integrity": "sha512-hnYFrSefHxYS2XFGtN01x8un0EwNu2bzKvhpRFhgoybIvMaOkkL60IVPmkb5h6XDmUl4IMSB+rT5cIO4/4bJgg==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.2", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "3.0.4", + "ms": "2.1.3", + "nanoid": "3.1.23", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.5", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "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 + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "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" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "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" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "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 + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "scaling-palm-tree": { + "version": "github:mjethani/scaling-palm-tree#15cf1ab37e038771e1ff8005edc46d95f176739f", + "from": "github:mjethani/scaling-palm-tree#15cf1ab37e038771e1ff8005edc46d95f176739f", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "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 + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "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 + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-to-istanbul": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", + "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "workerpool": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/package.json ublock-origin-1.42.0+dfsg/platform/npm/package.json --- ublock-origin-1.37.0+dfsg/platform/npm/package.json 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/package.json 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,44 @@ +{ + "name": "@gorhill/ubo-core", + "version": "0.1.25", + "description": "To create a working instance of uBlock Origin's static network filtering engine", + "type": "module", + "main": "index.js", + "scripts": { + "build": "node build.js", + "lint": "eslint js/ *.js tests/*.js", + "test": "c8 --include=index.js --include=js/**/*.js node test.js --mocha", + "test-full-battery": "c8 --include=index.js --include=js/**/*.js node test.js --mocha --full-battery", + "check-leaks": "mocha --check-leaks tests/leaks.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/gorhill/uBlock.git" + }, + "keywords": [ + "uBlock", + "uBO", + "adblock", + "trie" + ], + "author": "Raymond Hill (https://github.com/gorhill)", + "license": "GPL-3.0-or-later", + "contributors": [ + "Manish Jethani " + ], + "bugs": { + "url": "https://github.com/uBlockOrigin/uBlock-issues/issues" + }, + "homepage": "https://github.com/gorhill/uBlock#readme", + "engines": { + "node": ">=14.0.0", + "npm": ">=6.14.4" + }, + "devDependencies": { + "c8": "^7.8.0", + "eslint": "^7.32.0", + "esm-world": "0.1.1", + "mocha": "^9.0.3", + "scaling-palm-tree": "github:mjethani/scaling-palm-tree#15cf1ab37e038771e1ff8005edc46d95f176739f" + } +} diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/test.js ublock-origin-1.42.0+dfsg/platform/npm/test.js --- ublock-origin-1.37.0+dfsg/platform/npm/test.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/test.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,59 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +/* eslint-disable-next-line no-redeclare */ +/* globals process */ + +'use strict'; + +/******************************************************************************/ + +import { spawn } from "child_process"; +import { promisify } from 'util'; + +/******************************************************************************/ + +async function spawnMocha() { + const files = [ + 'tests/wasm.js', + 'tests/snfe.js', + ]; + + const options = []; + + if ( process.argv[3] === '--full-battery' ) { + files.push('tests/request-data.js'); + + options.push('--reporter', 'progress'); + } + + await promisify(spawn)('mocha', [ '--experimental-vm-modules', '--no-warnings', ...files, ...options ], { stdio: [ 'inherit', 'inherit', 'inherit' ] }); +} + +async function main() { + if ( process.argv[2] === '--mocha' ) { + await spawnMocha(); + } +} + +main(); + +/******************************************************************************/ diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/tests/.eslintrc.json ublock-origin-1.42.0+dfsg/platform/npm/tests/.eslintrc.json --- ublock-origin-1.37.0+dfsg/platform/npm/tests/.eslintrc.json 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/tests/.eslintrc.json 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,5 @@ +{ + "env": { + "mocha": true + } +} diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/tests/_common.js ublock-origin-1.42.0+dfsg/platform/npm/tests/_common.js --- ublock-origin-1.37.0+dfsg/platform/npm/tests/_common.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/tests/_common.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,34 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +'use strict'; + +/******************************************************************************/ + +import process from 'process'; + +process.on('warning', warning => { + // Ignore warnings about experimental features like + // --experimental-vm-modules + if ( warning.name !== 'ExperimentalWarning' ) { + console.warn(warning.stack); + } +}); Binary files /srv/release.debian.org/tmp/Kcg7p4leK6/ublock-origin-1.37.0+dfsg/platform/npm/tests/data/bundle.tgz and /srv/release.debian.org/tmp/6shuIU8Ibw/ublock-origin-1.42.0+dfsg/platform/npm/tests/data/bundle.tgz differ diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/tests/leaks.js ublock-origin-1.42.0+dfsg/platform/npm/tests/leaks.js --- ublock-origin-1.37.0+dfsg/platform/npm/tests/leaks.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/tests/leaks.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,30 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +'use strict'; + +/******************************************************************************/ + +describe('Leaks', () => { + it('should not leak global variables', async () => { + await import('../index.js'); + }); +}); diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/tests/request-data.js ublock-origin-1.42.0+dfsg/platform/npm/tests/request-data.js --- ublock-origin-1.37.0+dfsg/platform/npm/tests/request-data.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/tests/request-data.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,117 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +'use strict'; + +/******************************************************************************/ + +import { strict as assert } from 'assert'; +import { readFile } from 'fs/promises'; +import { createRequire } from 'module'; +import { dirname, resolve } from 'path'; +import { fileURLToPath } from 'url'; + +import { createWorld } from 'esm-world'; + +import './_common.js'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +const require = createRequire(import.meta.url); + +const requests = require('scaling-palm-tree/requests.json'); +const results = require('./data/results.json'); + +async function read(path) { + return readFile(resolve(__dirname, path), 'utf8'); +} + +describe('Request data', () => { + const typeMap = { + document: 'sub_frame', + stylesheet: 'stylesheet', + image: 'image', + media: 'media', + font: 'font', + script: 'script', + xhr: 'xmlhttprequest', + fetch: 'xmlhttprequest', + websocket: 'websocket', + ping: 'ping', + + other: 'other', + eventsource: 'other', + manifest: 'other', + texttrack: 'other', + }; + + for ( let wasm of [ false, true ] ) { + context(`${wasm ? 'Wasm on' : 'Wasm off'}`, () => { + let engine = null; + + before(async () => { + const { StaticNetFilteringEngine, enableWASM } = await createWorld('./index.js', { globals: global }); + + if ( wasm ) { + assert(await enableWASM()); + } + + engine = await StaticNetFilteringEngine.create(); + + await engine.useLists([ + read('./data/assets/ublock/badware.txt') + .then(raw => ({ name: 'badware', raw })), + read('./data/assets/ublock/filters.txt') + .then(raw => ({ name: 'filters', raw })), + read('./data/assets/ublock/filters-2020.txt') + .then(raw => ({ name: 'filters-2020', raw })), + read('./data/assets/ublock/filters-2021.txt') + .then(raw => ({ name: 'filters-2021', raw })), + read('./data/assets/ublock/privacy.txt') + .then(raw => ({ name: 'privacy', raw })), + read('./data/assets/ublock/resource-abuse.txt') + .then(raw => ({ name: 'resource-abuse', raw })), + read('./data/assets/ublock/unbreak.txt') + .then(raw => ({ name: 'unbreak.txt', raw })), + read('./data/assets/thirdparties/easylist-downloads.adblockplus.org/easylist.txt') + .then(raw => ({ name: 'easylist', raw })), + read('./data/assets/thirdparties/easylist-downloads.adblockplus.org/easyprivacy.txt') + .then(raw => ({ name: 'easyprivacy', raw })), + read('./data/assets/thirdparties/pgl.yoyo.org/as/serverlist') + .then(raw => ({ name: 'PGL', raw })), + read('./data/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt') + .then(raw => ({ name: 'urlhaus', raw })), + ]); + }); + + for ( let i = 0; i < requests.length; i++ ) { + const { url, frameUrl, cpt } = requests[i]; + const request = { url, originURL: frameUrl, type: typeMap[cpt] }; + + const expected = results[i]; + + it(`should ${expected === 1 ? 'block' : 'allow'} ${request.type} URL ${request.url} from origin ${request.originURL}`, () => { + assert.equal(engine.matchRequest(request), expected); + }); + } + }); + } +}); diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/tests/snfe.js ublock-origin-1.42.0+dfsg/platform/npm/tests/snfe.js --- ublock-origin-1.37.0+dfsg/platform/npm/tests/snfe.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/tests/snfe.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,372 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +'use strict'; + +/******************************************************************************/ + +import { strict as assert } from 'assert'; + +import { createWorld } from 'esm-world'; + +import './_common.js'; + +describe('SNFE', () => { + for ( let wasm of [ false/*, true*/ ] ) { + context(`${wasm ? 'Wasm on' : 'Wasm off'}`, () => { + let module = null; + let engine = null; + + beforeEach(async () => { + module = await createWorld('./index.js', { globals: global }); + + if ( wasm ) { + assert(await module.enableWASM()); + } + }); + + afterEach(() => { + engine = null; + module = null; + }); + + describe('Initialization', () => { + it('should not reject on first attempt', async () => { + await module.StaticNetFilteringEngine.create(); + }); + + it('should reject on second attempt', async () => { + await module.StaticNetFilteringEngine.create(); + await assert.rejects(module.StaticNetFilteringEngine.create()); + }); + + it('should reject on third attempt', async () => { + await module.StaticNetFilteringEngine.create(); + + try { + await module.StaticNetFilteringEngine.create(); + } catch (error) { + } + + await assert.rejects(module.StaticNetFilteringEngine.create()); + }); + }); + + describe('Filter loading', () => { + beforeEach(async () => { + engine = await module.StaticNetFilteringEngine.create(); + }); + + it('should not reject on no lists', async () => { + await engine.useLists([]); + }); + + it('should not reject on one empty list', async () => { + await engine.useLists([ + { name: 'easylist', raw: '' }, + ]); + }); + + it('should not reject on one list containing one filter', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^' }, + ]); + }); + + it('should not reject on one list containing multiple filters', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^\n||example.com^' }, + ]); + }); + + it('should not reject on multiple lists containing multiple filters', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^\n||example.com^' }, + { name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }, + ]); + }); + + it('should not reject on promised-based lists', async () => { + await engine.useLists([ + Promise.resolve({ name: 'easylist', raw: '/foo^\n||example.com^' }), + Promise.resolve({ name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }), + ]); + }); + + it('should reject on promised-based lists in which a promise is rejected', async () => { + await assert.rejects(engine.useLists([ + Promise.reject({ name: 'easylist', raw: '/foo^\n||example.com^' }), + Promise.resolve({ name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }), + ])); + }); + + it('should reject on promised-based lists in which all promises are rejected', async () => { + await assert.rejects(engine.useLists([ + Promise.reject({ name: 'easylist', raw: '/foo^\n||example.com^' }), + Promise.reject({ name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }), + ])); + }); + + it('should not reject on second call in sequence', async () => { + await engine.useLists([ + Promise.resolve({ name: 'easylist', raw: '/foo^\n||example.com^' }), + Promise.resolve({ name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }), + ]); + + await engine.useLists([ + Promise.resolve({ name: 'easylist', raw: '/foo^\n||example.com^' }), + Promise.resolve({ name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }), + ]); + }); + }); + + describe('Serialization', () => { + beforeEach(async () => { + engine = await module.StaticNetFilteringEngine.create(); + }); + + it('should not reject with no lists', async () => { + await engine.useLists([]); + + await engine.serialize(); + }); + + it('should not reject with one empty list', async () => { + await engine.useLists([ + { name: 'easylist', raw: '' }, + ]); + + await engine.serialize(); + }); + + it('should not reject with one list containing one filter', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^' }, + ]); + + await engine.serialize(); + }); + + it('should not reject with one list containing multiple filters', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^\n||example.com^' }, + ]); + + await engine.serialize(); + }); + + it('should not reject with multiple lists containing multiple filters', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^\n||example.com^' }, + { name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }, + ]); + + await engine.serialize(); + }); + }); + + describe('Deserialization', () => { + beforeEach(async () => { + engine = await module.StaticNetFilteringEngine.create(); + }); + + it('should not reject with no lists', async () => { + await engine.useLists([]); + + const serialized = await engine.serialize(); + await engine.deserialize(serialized); + }); + + it('should not reject with one empty list', async () => { + await engine.useLists([ + { name: 'easylist', raw: '' }, + ]); + + const serialized = await engine.serialize(); + await engine.deserialize(serialized); + }); + + it('should not reject with one list containing one filter', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^' }, + ]); + + const serialized = await engine.serialize(); + await engine.deserialize(serialized); + }); + + it('should not reject with one list containing multiple filters', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^\n||example.com^' }, + ]); + + const serialized = await engine.serialize(); + await engine.deserialize(serialized); + }); + + it('should not reject with multiple lists containing multiple filters', async () => { + await engine.useLists([ + { name: 'easylist', raw: '/foo^\n||example.com^' }, + { name: 'easyprivacy', raw: '||example.net/bar/\n^bar.js?' }, + ]); + + const serialized = await engine.serialize(); + await engine.deserialize(serialized); + }); + + // https://github.com/gorhill/uBlock/commit/8f461072f576cdf72c088a952ef342281a7c44d6 + it('should correctly remove query parameter following deserialization', async () => { + await engine.useLists([ + { name: 'custom', raw: '*$removeparam=/^utm_/' }, + ]); + const request = { + originURL: 'https://www.example.com/?utm_source=1', + type: 'document', + url: 'https://www.example.com/?utm_source=1', + }; + let result = engine.filterQuery(request); + assert.strictEqual(result.redirectURL, 'https://www.example.com/'); + const serialized = await engine.serialize(); + await engine.deserialize(serialized); + result = engine.filterQuery(request); + assert.strictEqual(result.redirectURL, 'https://www.example.com/'); + }); + }); + + describe('Filter matching', () => { + beforeEach(async () => { + engine = await module.StaticNetFilteringEngine.create(); + }); + + it('should match pure-hostname block filter', async () => { + await engine.useLists([ + { name: 'test', raw: '||example.net^' }, + ]); + const r = engine.matchRequest({ + originURL: 'https://www.example.com/', + type: 'image', + url: 'https://www.example.net/', + }); + assert.strictEqual(r, 1); + }); + + it('should match pure-hostname exception filter', async () => { + await engine.useLists([ + { name: 'test', raw: '||example.net^\n@@||example.net^' }, + ]); + const r = engine.matchRequest({ + originURL: 'https://www.example.com/', + type: 'image', + url: 'https://www.example.net/', + }); + assert.strictEqual(r, 2); + }); + + it('should match pure-hostname block-important filter', async () => { + await engine.useLists([ + { name: 'test', raw: '@@||example.net^\n||example.net^$important' }, + ]); + const r = engine.matchRequest({ + originURL: 'https://www.example.com/', + type: 'image', + url: 'https://www.example.net/', + }); + assert.strictEqual(r, 1); + assert(engine.isBlockImportant()); + }); + + it('should detect the filter is block-important', async () => { + await engine.useLists([ + { name: 'test', raw: '||example.net^$important' }, + ]); + engine.matchRequest({ + originURL: 'https://www.example.com/', + type: 'image', + url: 'https://www.example.net/', + }); + assert(engine.isBlockImportant()); + }); + + it('should block all except stylesheets #1', async () => { + await engine.useLists([ + { name: 'test', raw: '||example.com^$~stylesheet,all' }, + ]); + const r = engine.matchRequest({ + originURL: 'https://www.example.com/', + type: 'stylesheet', + url: 'https://www.example.com/', + }); + assert.strictEqual(r, 0); + }); + + it('should block all except stylesheets #2', async () => { + await engine.useLists([ + { name: 'test', raw: '||example.com^$all,~stylesheet' }, + ]); + const r = engine.matchRequest({ + originURL: 'https://www.example.com/', + type: 'stylesheet', + url: 'https://www.example.com/', + }); + assert.strictEqual(r, 0); + }); + + // https://github.com/gorhill/uBlock/commit/d66cd1116c0e + it('should not match on localhost', async () => { + await engine.useLists([ + { name: 'test', raw: '.js$domain=foo.*|bar.*\n/^/$domain=example.*|foo.*' }, + ]); + const r = engine.matchRequest({ + originURL: 'https://localhost/', + type: 'script', + url: 'https://localhost/baz.js', + }); + assert.strictEqual(r, 0); + }); + + // https://github.com/AdguardTeam/AdguardFilters/issues/88067#issuecomment-1019518277 + it('should match regex-based filter without `match-case` option', async () => { + await engine.useLists([ + { name: 'test', raw: '/\.com\/[a-z]{9,}\/[a-z]{9,}\.js$/$script,1p' }, + ]); + const r = engine.matchRequest({ + originURL: 'https://example.com/', + type: 'script', + url: 'https://example.com/LQMDQSMLDAZAEHERE/LQMDQSMLDAZAEHERE.js', + }); + assert.strictEqual(r, 1); + }); + + it('should not match regex-based filter with `match-case` option', async () => { + await engine.useLists([ + { name: 'test', raw: '/\.com\/[a-z]{9,}\/[a-z]{9,}\.js$/$script,1p,match-case' }, + ]); + const r = engine.matchRequest({ + originURL: 'https://example.com/', + type: 'script', + url: 'https://example.com/LQMDQSMLDAZAEHERE/LQMDQSMLDAZAEHERE.js', + }); + assert.strictEqual(r, 0); + }); + }); + }); + } +}); diff -Nru ublock-origin-1.37.0+dfsg/platform/npm/tests/wasm.js ublock-origin-1.42.0+dfsg/platform/npm/tests/wasm.js --- ublock-origin-1.37.0+dfsg/platform/npm/tests/wasm.js 1970-01-01 00:00:00.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/npm/tests/wasm.js 2022-05-06 01:15:22.000000000 +0000 @@ -0,0 +1,53 @@ +/******************************************************************************* + + uBlock Origin - a browser extension to block requests. + Copyright (C) 2014-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +/* globals WebAssembly */ + +'use strict'; + +/******************************************************************************/ + +import { strict as assert } from 'assert'; + +import { createWorld } from 'esm-world'; + +import './_common.js'; + +describe('WASM', () => { + context('WebAssembly available', () => { + it('should fulfill with true', async () => { + const { enableWASM } = await createWorld('./index.js', { globals: { URL, WebAssembly } }); + + assert.equal(await enableWASM(), true); + }); + }); + + context('WebAssembly not available', () => { + it('should fulfill with false', async () => { + // WebAssembly must be set to undefined explicitly; otherwise + // createWorld() ends up using the global WebAssembly object + // anyway. + const { enableWASM } = await createWorld('./index.js', { globals: { URL, WebAssembly: undefined } }); + + assert.equal(await enableWASM(), false); + }); + }); +}); diff -Nru ublock-origin-1.37.0+dfsg/platform/opera/manifest.json ublock-origin-1.42.0+dfsg/platform/opera/manifest.json --- ublock-origin-1.37.0+dfsg/platform/opera/manifest.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/opera/manifest.json 2022-05-06 01:15:22.000000000 +0000 @@ -26,6 +26,9 @@ }, "relax-blocking-mode": { "description": "__MSG_relaxBlockingMode__" + }, + "toggle-cosmetic-filtering": { + "description": "__MSG_toggleCosmeticFiltering__" } }, "content_scripts": [ @@ -50,7 +53,8 @@ "https://filterlists.com/*", "https://forums.lanik.us/*", "https://github.com/*", - "https://*.github.io/*" + "https://*.github.io/*", + "https://*.letsblock.it/*" ], "js": [ "/js/scriptlets/subscriber.js" @@ -69,7 +73,7 @@ }, "incognito": "split", "manifest_version": 2, - "minimum_opera_version": "42.0", + "minimum_opera_version": "53.0", "name": "uBlock Origin", "options_page": "dashboard.html", "permissions": [ diff -Nru ublock-origin-1.37.0+dfsg/platform/thunderbird/manifest.json ublock-origin-1.42.0+dfsg/platform/thunderbird/manifest.json --- ublock-origin-1.37.0+dfsg/platform/thunderbird/manifest.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/platform/thunderbird/manifest.json 2022-05-06 01:15:22.000000000 +0000 @@ -2,7 +2,7 @@ "applications": { "gecko": { "id": "uBlock0@raymondhill.net", - "strict_min_version": "65.0" + "strict_min_version": "78.0" } }, "author": "Raymond Hill & contributors", @@ -41,7 +41,8 @@ "https://filterlists.com/*", "https://forums.lanik.us/*", "https://github.com/*", - "https://*.github.io/*" + "https://*.github.io/*", + "https://*.letsblock.it/*" ], "js": [ "/js/scriptlets/subscriber.js" diff -Nru ublock-origin-1.37.0+dfsg/src/1p-filters.html ublock-origin-1.42.0+dfsg/src/1p-filters.html --- ublock-origin-1.37.0+dfsg/src/1p-filters.html 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/1p-filters.html 2022-05-06 01:15:22.000000000 +0000 @@ -26,11 +26,11 @@

question-circle

- - + +   - - + +

@@ -50,11 +50,10 @@ - + - @@ -65,8 +64,7 @@ - - + diff -Nru ublock-origin-1.37.0+dfsg/src/3p-filters.html ublock-origin-1.42.0+dfsg/src/3p-filters.html --- ublock-origin-1.37.0+dfsg/src/3p-filters.html 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/3p-filters.html 2022-05-06 01:15:22.000000000 +0000 @@ -18,16 +18,23 @@
- - - + + +
-
-
+
+
-
+
+ +
+
+ +
+
+
@@ -63,6 +70,8 @@
+ + diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/ar/messages.json ublock-origin-1.42.0+dfsg/src/_locales/ar/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/ar/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/ar/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "حول البرنامج", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "الدعم", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — مُعاين العناصر", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "إفتح سجل طلبات الشبكة", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "التقرير عن مُشكلة في الموقع", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "تفعيل أو تعطيل النوافذ منبثقة لهذا الموقع", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "وضع عمى الألوان", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "مظهر", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "المظاهر", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "لون التمييز المخصص", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "تفعيل دعم سحابة التخزين", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "تمكين الميزات المتقدمة (يرجى الإطلاع)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "الإعدادات المتقدمة", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "أنا مستخدم ذو خبرة (قراءة إجبارية)", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "تعطيل الجلب المسبق على الشبكة (لمنع أي اتصال لطلبات الشبكة المحجوبة)", @@ -383,6 +399,18 @@ "message": "فك الأسماء المتعارف عليها", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "متقدم", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "ميزات مناسبة فقط للمستخدمين التقنيين", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "الإعدادات المتقدمة", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "آخر إسترجاع:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "الفلاتر التجميلية العمومية هي الفلاتر التجميلية التي تنطبق على كل مواقع الإنترنت. تفعيل هذا الخيار سوف يترك مساحة أقل من الذاكرة و قوة المعالجة للإستعمال من قبل صفحات الويب كنتيجة لمعالجة الفلاتر التجميلية العمومية.\n\nمن الأفضل تفعيل هذا الخيار على الأجهزة الأقل قوة.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "تعليق نشاط الشبكة حتى يتم تحميل كافة قوائم عوامل التصفية", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "قائمة المواقع المحجوبة", "description": "English: Lists of blocked hosts" @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "قائمة المواقع الوثوقة تحتوي على صفحات الويب التي يجب تعطيل uBlock₀ عند الدخول عليها. أدخل رابط واحد كل سطر. الروابط الغير صحيحه سوف يتم تجاهلها تلقائيًا.", - "description": "The name of the trusted sites pane." + "message": "قائمة المواقع الوثوقة تحتوي على صفحات الويب التي يجب تعطيل يو بلوك أوريجين عند الدخول عليها. أدخل رابط واحد كل سطر. الروابط الغير صحيحة سوف يتم تجاهلها تلقائيًا.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "استيراد", @@ -640,7 +672,7 @@ "description": "Tooltip for the popup panel button in the logger page" }, "loggerInfoTip": { - "message": "ويكي uBlock Origin: حافظ السجلات", + "message": "ويكي يو بلوك أوريجين: حافظ السجلات", "description": "Tooltip for the top-right info label in the logger page" }, "loggerClearTip": { @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "افتح", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "إنشاء تقرير جديد", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "العثور على تقارير مماثلة", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "وثائق", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "اقرأ الوثائق على uBlock/wiki للتعرف على جميع ميزات يو بلوك أوريجين.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "الأسئلة والدعم", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "يتم توفير إجابات للأسئلة وأنواع أخرى من دعم المساعدة على subreddit /r/uBlockOrigin", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "تصفية المسائل/موقع الويب معطل", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "الإبلاغ عن مشكلات التصفية في مواقع ويب محددة لـ uBlockOrigin/uAssets أداة تعقب المشكلات. يتطلب حساب GitHub..", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "هام: تجنب استخدام أدوات الحظر الأخرى ذات الغرض المشابه مع يو بلوك أوريجين، حيث قد يتسبب ذلك في حدوث مشكلات في التصفية على مواقع ويب معينة.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "نصائح: تأكد من تحديث قوائم التصفية. المُسجِّل هو الأداة الأساسية لتشخيص المشكلات المتعلقة بالفلتر", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "تقرير الأخطاء", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "الإبلاغ عن المشكلات المتعلقة بيو بلوك أوريجين نفسه إلى uBlockOrigin/uBlock-issue أداة تعقب المشكلات. يتطلب حساب GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "رأس قسم \"معلومات استكشاف الأخطاء وإصلاحها\" في جزء الدعم", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "فيما يلي معلومات فنية قد تكون مفيدة عندما يحاول المتطوعون مساعدتك في حل مشكلة ما.فيما يلي معلومات فنية قد تكون مفيدة عندما يحاول المتطوعون مساعدتك في حل مشكلة ما.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "هام: يتم تنقيح المعلومات التي يُحتمل أن تكون خاصة أو حساسة بشكل افتراضي. المعلومات المنقحة قد تجعل حل مشكلة ما أكثر صعوبة.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "الإبلاغ عن مشكلة في عوامل التصفية", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "لتجنب إثقال كاهل المتطوعين بتقارير مكررة، يرجى التحقق من عدم الإبلاغ عن المشكلة بالفعل.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "عنوان صفحة الويب:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "صفحة الويب...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- إختر خيارًا --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "ٌيُظهر الإعلانات أو بقايا الإعلانات", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "به تراكبات أو مضايقات أخرى", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "يكتشف يو بلوك أوريجين", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "لديه مشاكل متعلقة بالخصوصية", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "الأعطال عند تمكين يو بلوك أوريجين", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "افتح التبويبات أو النوافذ التي ليس مرغوبًا بها", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "تسمية صفحة الويب باسم \"NSFW\" (\"ليس آمن للعمل\"\n", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "تنقيح", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "غير منقح", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "سياسة الخصوصية", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "سجل التغييرات", "description": "" }, - "aboutWiki": { - "message": "الويكي (Wiki)", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "الدعم", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "متعقب المشاكل", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "اكواد البرنامج (GPLv3)", "description": "English: Source code (GPLv3)" @@ -892,11 +1032,11 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBO's own filter lists are freely hosted on the following CDNs:", + "message": "يتم استضافة قوائم عوامل التصفية الخاصة بـ uBO بحرية على ما يلي CDNs:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "A randomly picked CDN is used when a filter list needs to be updated", + "message": "يتم استخدام CDN الذي تم اختياره عشوائيًا عند الحاجة إلى تحديث قائمة عوامل التصفية", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -1075,13 +1215,17 @@ "message": "نسخ إلى الحافظة", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "تبديل صفحة الحظر", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "اختر الكل", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "تبديل تصفية مستحضرات التجميل", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "وضع الحظر المتراخي", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "مساحة التخزين المستخدمة: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/az/messages.json ublock-origin-1.42.0+dfsg/src/_locales/az/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/az/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/az/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Haqqında", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Dəstək", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Resurslar", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Jurnalı aç", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Bu veb-saytdakı problemi bildir", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Bu sayt üçün bütün açılan pəncələri aç/bağla", "description": "Tooltip for the no-popups per-site switch" @@ -228,7 +236,7 @@ "description": "" }, "popupImageRulePrompt": { - "message": "şəkillər", + "message": "təsvirlər", "description": "" }, "popup3pAnyRulePrompt": { @@ -236,7 +244,7 @@ "description": "" }, "popup3pPassiveRulePrompt": { - "message": "3-cü tərəf CSS/şəkillər", + "message": "3-cü tərəf CSS/təsvirlər", "description": "" }, "popupInlineScriptRulePrompt": { @@ -268,11 +276,11 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party scripts", + "message": "↑: Qeyd edək simli olan var, üçüncü scripts", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party frames", + "message": "↑: 3-cü tərəf çərçivələri olan sətirləri vurğula", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { @@ -284,11 +292,11 @@ "description": "English: Pick" }, "pickerQuit": { - "message": "Çıx", + "message": "Çıxış", "description": "English: Quit" }, "pickerPreview": { - "message": "İlkin baxış", + "message": "Önbaxış", "description": "Element picker preview mode: will cause the elements matching the current filter to be removed from the page" }, "pickerNetFilters": { @@ -312,7 +320,7 @@ "description": "English: Hide placeholders of blocked elements" }, "settingsIconBadgePrompt": { - "message": "Əngəllənmiş sorğuların sayını piktoqramda göstər", + "message": "Əngəllənən tələb sayını nişan üstündə göstər", "description": "English: Show the number of blocked requests on the icon" }, "settingsTooltipsPrompt": { @@ -327,17 +335,25 @@ "message": "Rəng seçmə qabiliyyəti olmayanlar üçün rəngləmə rejimi", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Bulud yaddaşı dəstəyini işə sal", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Mən təcrübəli istifadəçiyəm (mütləq oxuyun)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "əlavə parametrlər", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Erkən yükləməni dayandır (əngəllənmiş şəbəkə sorğuları üzrə qoşulmalara yol verməmək üçün)", @@ -380,9 +396,21 @@ "description": "background information: https://github.com/gorhill/uBlock/issues/3150" }, "settingsUncloakCnamePrompt": { - "message": "Uncloak canonical names", + "message": "Canonical adları ortaya çıxarın", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "əlavə parametrlər", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Son bərpa əməliyyatının tarixi:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Ümumi kosmetik filtrlərin bütün veb-saytlarda istifadəsi nəzərdə tutulur. Bu seçimi etdiyiniz təqdirdə veb-səhifələrdə ümumi kosmetik filtrlərin işlənməsi ilə əlaqədar yaddaşdan istifadə və prosessor yükü azalacaq.\n\nAz güclü cihazlarda bu seçimin aktivləşdirilməsi tövsiyə olunur.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Filter siyahıları yüklənənə kimi şəbəkə fəaliyyətini dayandır", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "İstisnalar siyahısındakı təlimatlar uBlock Origin-in hansı veb-səhifələrdə işləyişinin dayandırılmasını təmin edir. Hər sətirdə yalnız bir təlimat ola bilər. Yanlış təlimatlar xəbərdarlıq edilmədən nəzərə alınmayacaq və şərhə çeviriləcəkdir.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "İdxal və əlavə et", @@ -847,26 +879,134 @@ "message": "Nişanlı", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Aç", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Yeni hesabat yaradın", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Oxşar hesabat tap", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentasiya", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "UBlock Origin-in bütün xüsusiyyətlərini öyrənmək üçün uBlock/wiki ünvanında sənədləri oxuyun.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Suallar və dəstək", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Suallara və yardım dəstəyinin digər növlərinə cavablar /r/uBlock Origin - də təqdim olunur.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter problemləri / vebsəhifə işləmir", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Xəta bildirişi", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Filter problemini bildir", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Səhifə...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { - "message": "Privacy policy", + "message": "Məxfilik siyasəti", "description": "Link to privacy policy on GitHub (English)" }, "aboutChangelog": { "message": "Dəyişikliklər siyahısı", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Dəstək", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Məlum problemlər", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Mənbə kodu (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Çərçivədəki elementi əngəllə", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Filter siyahısına abunə ol", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Lövhəyə kopyala", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Əngəlləmə profilini aç/bağla", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Hamısını seç", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Əngəlləmə rejimini yüngülləşdir", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "İstifadə olunan anbar: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/bg/messages.json ublock-origin-1.42.0+dfsg/src/_locales/bg/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/bg/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/bg/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -40,7 +40,7 @@ "description": "appears as tab name in dashboard" }, "whitelistPageName": { - "message": "Изключения", + "message": "Доверени сайтове", "description": "appears as tab name in dashboard" }, "shortcutsPageName": { @@ -55,6 +55,10 @@ "message": "Относно", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Поддръжка", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Активи", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Преглед на дневника със заявки", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Докладване на проблем с този уебсайт", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Превключване блокирането на всички изскачащи прозорци за този сайт", "description": "Tooltip for the no-popups per-site switch" @@ -268,11 +276,11 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: Подчертаване на редовете, които имат скриптове на 3-ти страни", + "message": "↑: Открояване на редовете, в които има скриптове на 3-ти страни", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: Подчертаване на редовете, които имат рамки на 3-ти страни", + "message": "↑: Открояване на редовете, в които има рамки на 3-ти страни", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Блокиране на елемент...", + "message": "Блокиране на елемент…", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -324,20 +332,28 @@ "description": "English: Make use of context menu where appropriate" }, "settingsColorBlindPrompt": { - "message": "Достъпност за хора с цветна слепота", + "message": "Достъпност за хора с нарушено цветоусещане", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Външен вид", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Тема", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Потребителски цвят на акцента", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Включване на поддръжка за съхранение в облак", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Аз съм опитен потребител (Допълнително четиво)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "разширени настройки", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Аз съм опитен потребител", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Изключване на предварителното извличане (за избягване на всяка връзка за блокираните мрежови заявки)", @@ -383,6 +399,18 @@ "message": "Разкриване на каноничните имена", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Разширени", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Функции, подходящи само за технически грамотни потребители", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "разширени настройки", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Последно възстановяване:", "description": "English: Last restore:" @@ -416,7 +444,7 @@ "description": "English: Parse and enforce Adblock+ element hiding filters." }, "3pParseAllABPHideFiltersInfo": { - "message": "

Настройката разрешава синтактично обособяване и налагане на съвместими с Adblock Plus филтри за “скриване на елементи”. Козметични по същество, филтрите скриват визуално неприятни елементи в страницата, които иначе не се блокират от системата за филтриране по мрежова заявка.

Разрешаването ѝ ще увеличи ползваната от uBlock₀ памет.

", + "message": "Козметичните филтри служат за скриване на елементи в уебстраницата, които се считат за визуално неприятни и които не могат да бъдат блокирани от механизмите за филтриране, базирани на мрежови заявки.", "description": "Describes the purpose of the 'Parse and enforce cosmetic filters' feature." }, "3pIgnoreGenericCosmeticFilters": { @@ -424,9 +452,13 @@ "description": "This will cause uBO to ignore all generic cosmetic filters." }, "3pIgnoreGenericCosmeticFiltersInfo": { - "message": "

Общокозметични са филтрите, предназначени за прилагане във всички сайтове.

И макар че се ползват ефективно в uBlock₀, те могат съществено да увеличат натоварването на паметта и процесора в определени страници, особено в такива обемисти и дългозареждащи се.

Разрешаването ѝ ще премахне натоварването им в тях, поради начина на боравене с общокозметични филтри, както и ще намали ползваната от uBlock₀ памет.

Ползването на настройката се препоръчва при по-слаби устройства.", + "message": "Общокозметични са филтрите, предназначени за прилагане във всички сайтове. Разрешаването на тази опция ще премахне натоварването на паметта и процесора, добавено към уеб страниците в резултат на обработката на общите козметични филтри.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Преустановяване на мрежовата дейност, докато се заредят всички списъци с филтри", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Списъци на блокираните хостове", "description": "English: Lists of blocked hosts" @@ -496,7 +528,7 @@ "description": "used as a tooltip for error icon beside a list" }, "1pFormatHint": { - "message": "Един филтър на ред. Това може да бъде обикновен адрес или съвместим с Adblock Plus филтър. Редовете с представка ‘!’ ще бъдат игнорирани.", + "message": "Един филтър на ред. Това може да бъде обикновен адрес или филтър, съвместим с EasyList. Редовете с представка ! ще бъдат игнорирани.", "description": "Short information about how to create custom filters" }, "1pImport": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "Списък на адресите, за които uBlock Origin ще бъде изключен. Един елемент на ред. Недействителните адреси ще бъдат пренебрегнати.", - "description": "The name of the trusted sites pane." + "message": "Указанията за доверени сайтове определят кои уеб страници трябва да бъдат изключени от uBlock Origin. По един запис на ред.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Внасяне от файл...", @@ -592,7 +624,7 @@ "description": "English: Export" }, "whitelistExportFilename": { - "message": "ublock-изключения_{{datetime}}.txt", + "message": "ublock-доверени_сайтове_{{datetime}}.txt", "description": "The default filename to use for import/export purpose" }, "whitelistApply": { @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Отваряне", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Нов доклад", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Намиране на подобни доклади", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Документация", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Прочетете документацията в uBlock/wiki, за да научите повече за всички функции на uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Въпроси и поддръжка", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Отговори на въпроси и други видове помощ се предоставят в Reddit /r/uBlockOrigin", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Проблеми с филтъра/уебсайтът е счупен", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Докладвайте за проблеми с филтрирането на конкретни уебсайтове в uBlockOrigin/uAssets за проследяване на проблеми. Изисква се акаунт в GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Важно: Избягвайте да използвате други блокери с подобно предназначение заедно с uBlock Origin, тъй като това може да доведе до проблеми с филтрирането на определени уебсайтове.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Съвети: Уверете се, че списъците ви с филтри са актуални. Дневникът е основният инструмент за диагностициране на проблеми, свързани с филтрите.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Доклад за грешка", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Докладвайте за проблеми със самия uBlock Origin в uBlockOrigin/uBlock-issue за проследяване на проблеми. Изисква се акаунт в GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Информация за отстраняване на неизправности", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "По-долу е представена техническа информация, която може да е полезна, когато доброволците се опитват да ви помогнат да разрешите даден проблем.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Важно: Потенциално лична или чувствителна информация се редактира по подразбиране. Редактираната информация може да затрудни решаването на даден проблем.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Докладване на проблем с филтъра", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "За да се избегне натоварването на доброволците с дублиращи се доклади, моля, проверете дали проблемът все още не е докладван.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Адрес на уеб страницата:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Уеб страницата...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Изберете запис --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Показва реклами или остатъци от реклами", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Има наслагвания или други неудобства", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Открива uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Има проблеми, свързани с поверителността", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Функционира неправилно, когато uBlock Origin е активиран", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Отваря нежелани раздели или прозорци", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Маркиране на уеб страницата като “NSFW” (“не е безопасна за работа”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Редактиран вид", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Нередактиран вид", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Политика за поверителност", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Списък с промени", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Поддръжка", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Проследяване и докладване на проблеми", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Изходен код (GPLv3)", "description": "English: Source code (GPLv3)" @@ -896,7 +1036,7 @@ "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "Ще бъде използван случайно избран CDN, когато трябва да се актуализира списък с филтри", + "message": "Ще бъде използван случайно избран CDN, когато трябва да се обнови списък с филтри", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -908,7 +1048,7 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Внасяне от файл...", + "message": "Възстановяване от файл...", "description": "English: Restore from file..." }, "aboutResetDataButton": { @@ -932,7 +1072,7 @@ "description": "English: Network error: {{msg}}" }, "subscriberConfirm": { - "message": "uBlock₀: Добавяне на следния адрес към потребителският списък с филтри?\n\nИме: \"{{title}}\"\nURL адрес: {{url}}", + "message": "Добавяне на следния адрес към списъците с потребителски филтри?\n\nИме: \"{{title}}\"\nURL адрес: {{url}}", "description": "No longer used" }, "subscribeButton": { @@ -1075,13 +1215,17 @@ "message": "Копиране в клипборда", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Превключване на профила за блокиране", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Избиране на всичко", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Превключване на козметичното филтриране", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Отпуснат режим на блокиране", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Използвано пространство: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/bn/messages.json ublock-origin-1.42.0+dfsg/src/_locales/bn/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/bn/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/bn/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "সম্পর্কে", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "সাহায্য", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — তথ্য নিরিক্ষক", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "ঘটনাবলী খুলুন", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "এই ওয়েবসাইট এর একটি সমস্যার ব্যাপারা অভিযোগ যানান", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "এই সাইটের সব পপআপ ব্লকিং চালু/বন্ধ করুন", "description": "Tooltip for the no-popups per-site switch" @@ -144,7 +152,7 @@ "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia2": { - "message": "এই সাইটে বড় মিডিয়া উপাদান আর অবরুদ্ধ না করতে ক্লিক করুন", + "message": "এই সাইটের বর মিডিয়া এলিমেন্টগুলি ব্লক করা বন্ধ করতে ক্লিক করুন", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoCosmeticFiltering": { @@ -327,17 +335,25 @@ "message": "বর্ণান্ধ সহযোগী", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "ক্লাউড সংরক্ষণ সক্রিয় করুন", "description": "" }, "settingsAdvancedUserPrompt": { "message": "আমি একজন উন্নত ব্যবহারকারী (পড়া আবশ্যক)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "উন্নত সেটিংস", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "প্রি-ফেচিং বন্ধ করুন (অবরুদ্ধ নেটওয়ার্ক থেকে যে কোনো সংযোগ প্রতিরোধ করতে)", @@ -383,6 +399,18 @@ "message": "Canonical Name এর উন্মোচন", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "উন্নত সেটিংস", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "সর্বশেষ পুনঃস্থাপন:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

জেনেরিক প্রসাধনী ছাঁকনি হচ্ছে সেইসব প্রসাধনী ছাঁকনি যা সব ওয়েবসাইটে প্রয়োগের জন্য অভিপ্রেত।

যদিও তা uBlock₀ দ্বারা দক্ষতার সঙ্গে পরিচালনা করে, কিন্তু জেনেরিক প্রসাধন ফিল্টার এখনও কিছু ওয়েব পাতার পরিমাপযোগ্য মেমরি ও CPU-র অত্যাধিক চাপ সৃষ্টিতে অবদান রাখতে পারে, বিশেষ করে বড় এবং দীর্ঘ একটিতে।

এই অপশন সক্রিয় করলে জেনেরিক প্রসাধনী ছাঁকনি পরিচালিত হবে যা ওয়েব পাতার পরিমাপযোগ্য মেমরি ও CPU-র অত্যাধিক চাপ সৃষ্টি দূর করবে এবং uBlock₀ নিজেই মেমরি পদাঙ্ক অর্ধ করবে।

এটা কম শক্তিশালী ডিভাইসে এই অপশনটি সক্রিয় করার জন্য সুপারিশ করা হচ্ছে।", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "সবগুলি ফিল্টার তালিকা লোড না হওয়া পর্যন্ত নেটওয়ার্ক কার্যকলাপ স্থগিত করুন", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "অবরুদ্ধ হোস্টের তালিকা", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "আপনার হোস্টের তালিকা যাদের জন্য uBlock₀ নিষ্ক্রিয় করা হবে। লাইন প্রতি একটি ভুক্তি। অবৈধ হোস্ট নাম নিশব্দে উপেক্ষা করা হবে।", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "আমদানি ও পরিশেষে যোগ করুন", @@ -847,6 +879,126 @@ "message": "মার্কডাউন", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "খুলুন", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "নতুন অভিযোগ", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "একই রকম অভিযোগ দেখুন", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "গোপনীয়তার নীতি", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "পরিবর্তন লগ", "description": "" }, - "aboutWiki": { - "message": "উইকি", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "সমর্থন", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "ইস্যু অনুসরণকারী", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "উত্স কোড (GPLv৩)", "description": "English: Source code (GPLv3)" @@ -1075,13 +1215,17 @@ "message": "ক্লিপবোর্ডে প্রতিলিপি করুন", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "রোধক প্রোফাইল চালু/বন্ধ", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "সবগুলো নির্বাচন করুন", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "রোধক মোড শিথিল করুন", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "ব্যবহৃত স্টোরেজ: {{value}}{{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/bs/messages.json ublock-origin-1.42.0+dfsg/src/_locales/bs/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/bs/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/bs/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -4,7 +4,7 @@ "description": "extension name." }, "extShortDesc": { - "message": "Konačno, efikasan bloker. Štedljiv na procesor i memoriju", + "message": "Konačno, efikasan bloker. Lagan na procesor i memoriju.", "description": "this will be in the Chrome web store: must be 132 characters or less" }, "dashboardName": { @@ -55,6 +55,10 @@ "message": "O aplikaciji", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Podrška", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Pregled sadržaja", "description": "Title for the asset viewer page" @@ -76,7 +80,7 @@ "description": "Message to be read by screen readers" }, "popupBlockedRequestPrompt": { - "message": "blokirani zahtjevi", + "message": "zahtjeva blokirano", "description": "English: requests blocked" }, "popupBlockedOnThisPagePrompt": { @@ -84,7 +88,7 @@ "description": "English: on this page" }, "popupBlockedStats": { - "message": "{{count}} ili {{percent}}%", + "message": "{{count}} ({{percent}}%)", "description": "Example: 15 (13%)" }, "popupBlockedSinceInstallPrompt": { @@ -123,6 +127,10 @@ "message": "Otvorite zapisnik", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Prijavite problem na ovoj web stranici", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Uključite/isključite sve iskačujuće prozore na ovoj stranici", "description": "Tooltip for the no-popups per-site switch" @@ -148,15 +156,15 @@ "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoCosmeticFiltering": { - "message": "Uključite/isključite eststsko filtriranje za ovaj sajt", + "message": "Uključite/isključite estetsko filtriranje za ovaj sajt", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering1": { - "message": "Kliknite da isključite eststsko filtriranje za ovaj sajt", + "message": "Kliknite da isključite estetsko filtriranje za ovaj sajt", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering2": { - "message": "Kliknite da uključite eststsko filtriranje za ovaj sajt", + "message": "Kliknite da uključite estetsko filtriranje za ovaj sajt", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoRemoteFonts": { @@ -256,7 +264,7 @@ "description": "" }, "popupHitDomainCountPrompt": { - "message": "povezani domeni", + "message": "povezane domene", "description": "appears in popup" }, "popupHitDomainCount": { @@ -327,17 +335,25 @@ "message": "Mod za daltoniste", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Uključi podršku za pohranu u oblaku", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Ja sam napredni korisnik (obavezna literatura)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "napredne postavke", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Onemogućite predučitavanje (da bi ste spriječili bilo koju vezu za blokirane mrežne zahtjeve)", @@ -383,6 +399,18 @@ "message": "Otkrijte kanonske nazive", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "napredne postavke", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Posljednji prijašnji povratak:", "description": "English: Last restore:" @@ -416,7 +444,7 @@ "description": "English: Parse and enforce Adblock+ element hiding filters." }, "3pParseAllABPHideFiltersInfo": { - "message": "Estetski filteri služe za sakrivanje elementa na web stranici koji se smatraju izglednim smjetnjama, i koji ne mogu biti blokirani filtratorima zasnovanih od mrežnih zahtjeva.", + "message": "Estetski filteri služe za sakrivanje elementa na web stranici koji se smatraju izglednim smjetnjama, i koji ne mogu biti blokirani filterima zasnovanih od mrežnih zahtjeva.", "description": "Describes the purpose of the 'Parse and enforce cosmetic filters' feature." }, "3pIgnoreGenericCosmeticFilters": { @@ -427,8 +455,12 @@ "message": "Opći estetski filteri su onakvi estetski filteri koji su namijenjeni za primjenu na svim sajtovima. Uključivanjem ove postavke će se eliminirati dodatna upotreba memorije i procesora na sajtovima kao rezultat upravljanja općih estetskih filtera.\n\nPreporučeno je omogućiti ovu postavku na slabijim uređajima.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { - "message": "Lists of blocked hosts", + "message": "Lista blokiranih hostova", "description": "English: Lists of blocked hosts" }, "3pApplyChanges": { @@ -448,7 +480,7 @@ "description": "English: Privacy" }, "3pGroupMalware": { - "message": "Zlonamjerni domeni", + "message": "Zlonamjerne domene", "description": "English: Malware domains" }, "3pGroupAnnoyances": { @@ -536,7 +568,7 @@ "description": "Will enable manual-edit mode (textarea)" }, "rulesEditSave": { - "message": "Spasi", + "message": "Spremi", "description": "Will save manually-edited content and exit manual-edit mode" }, "rulesEditDiscard": { @@ -556,7 +588,7 @@ "description": "default file name to use" }, "rulesHint": { - "message": "Spisak/popis vaših dinamičkih pravila za filtriranje.", + "message": "Lista vaših dinamičkih pravila za filtriranje.", "description": "English: List of your dynamic filtering rules." }, "rulesFormatHint": { @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Direktive pouzdanih sajtova kažu na kojim sajtovima bi uBlock Origin trebao biti isključen. Jedna stavka po redu. Netočne direktive će biti ignorisane i odkomentirane.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Uvezi i dodaj", @@ -620,15 +652,15 @@ "description": "Appears in the logger's tab selector" }, "logBehindTheScene": { - "message": "Iza zavjese", + "message": "Bez tabova", "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { - "message": "Trenutna kartica", + "message": "Trenutni tab", "description": "Appears in the logger's tab selector" }, "loggerReloadTip": { - "message": "Ponovo učitajte sadržaj kartice", + "message": "Ponovo učitaj sadržaj taba", "description": "Tooltip for the reload button in the logger page" }, "loggerDomInspectorTip": { @@ -640,31 +672,31 @@ "description": "Tooltip for the popup panel button in the logger page" }, "loggerInfoTip": { - "message": "uBlock Origin wiki: bilježak", + "message": "uBlock Origin wiki: zapisnik", "description": "Tooltip for the top-right info label in the logger page" }, "loggerClearTip": { - "message": "Očistite bilješke", + "message": "Očistite zapise", "description": "Tooltip for the eraser in the logger page; used to blank the content of the logger" }, "loggerPauseTip": { - "message": "Pauzirajte bilješke (odbacite sve dolazne podatke)", + "message": "Pauzirajte zapise (odbacite sve dolazne podatke)", "description": "Tooltip for the pause button in the logger page" }, "loggerUnpauseTip": { - "message": "Pokrenite bilješke", + "message": "Pokrenite zapise", "description": "Tooltip for the play button in the logger page" }, "loggerRowFiltererButtonTip": { - "message": "Uključite/isključite filtriranje bilješka", + "message": "Uključite/isključite filtriranje zapisa", "description": "Tooltip for the row filterer button in the logger page" }, "logFilterPrompt": { - "message": "filtrirajte sadržaj bilješka", + "message": "filtrirajte sadržaj zapisa", "description": "Placeholder string for logger output filtering input field" }, "loggerRowFiltererBuiltinTip": { - "message": "Postavke fitriranja bilješka", + "message": "Postavke filtriranja zapisa", "description": "Tooltip for the button to bring up logger output filtering options" }, "loggerRowFiltererBuiltinNot": { @@ -672,7 +704,7 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltinEventful": { - "message": "eventful", + "message": "puno događaja", "description": "A keyword in the built-in row filtering expression: all items corresponding to uBO doing something (blocked, allowed, redirected, etc.)" }, "loggerRowFiltererBuiltinBlocked": { @@ -684,7 +716,7 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltinModified": { - "message": "izmjenuto", + "message": "Izmjenjeno:", "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltin1p": { @@ -724,7 +756,7 @@ "description": "Label to identify a field providing partyness information" }, "loggerEntryDetailsType": { - "message": "Tip", + "message": "Vrsta", "description": "Label to identify the type of an entry" }, "loggerEntryDetailsURL": { @@ -740,7 +772,7 @@ "description": "Label for the context selector" }, "loggerURLFilteringTypeLabel": { - "message": "Tip:", + "message": "Vrsta:", "description": "Label for the type selector" }, "loggerStaticFilteringHeader": { @@ -760,11 +792,11 @@ "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartType": { - "message": "tip “{{type}}”", + "message": "vrsta “{{type}}”", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartAnyType": { - "message": "bilo koji tip", + "message": "bilo koja vrsta", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartOrigin": { @@ -788,7 +820,7 @@ "description": "Below this sentence, the filter list(s) in which the filter was found" }, "loggerStaticFilteringFinderSentence2": { - "message": "Statični filter nije pronađen u nijedno od trenutno uključenih filterskih listi", + "message": "Statični filter nije pronađen u nijednoj od trenutno uključenih filterskih listi", "description": "Message to show when a filter cannot be found in any filter lists" }, "loggerSettingDiscardPrompt": { @@ -796,15 +828,15 @@ "description": "Logger setting: A sentence to describe the purpose of the settings below" }, "loggerSettingPerEntryMaxAge": { - "message": "Spasite unose iz zadnje/ih {{input}} minute/a", + "message": "Spremite unose iz zadnje/ih {{input}} minute/a", "description": "A logger setting" }, "loggerSettingPerTabMaxLoads": { - "message": "Spasite najviše {{input}} učitavanja stranica po kartici", + "message": "Spremite najviše {{input}} učitavanja stranica po kartici", "description": "A logger setting" }, "loggerSettingPerTabMaxEntries": { - "message": "Spasite najviše {{input}} unosa po kartici", + "message": "Spremite najviše {{input}} unosa po kartici", "description": "A logger setting" }, "loggerSettingPerEntryLineCount": { @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Otvori", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Napravite novu prijavu", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Pronađite slične prijave", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentacija", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Pročitajte dokumentaciju na uBlock/wiki da bi ste naučili sve o uBlock Origin-ovim funkcijama.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Pitanja i podrška", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Odgovori na pitanja i druge vrste podrške nalaze se na podreditu r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Problemi sa filterom/website ne radi", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Prijavite probleme s filtriranjem određenih web stranica na uBlockOrigin/uAssets stranici za praćenje problema. Potreban će vam biti GitHub račun.\n\n", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Važno: Nemojte koristiti druge blokere slične namjene zajedno sa uBlock Origin-om, jer bi to moglo uzrokovati probleme s filtriranjem na određenim web stranicama.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Savjeti: Provjerite jesu li vaše liste filtera ažurirane. Zapisnik je primarni alat za dijagnosticiranje problema povezanim sa filterima.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Prijava greške", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Prijavite probleme sa samim uBlock Origin-om na uBlockOrigin/uBlock-problem stranici za praćenje problema. Potreban če vam biti GitHub račun.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informacija o rješavanju problema", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Ispod se nalaze tehničke informacije koje bi vam mogle biti korisne kada vam dobrovoljci pokušavaju pomoći s rješenjem problema.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Važno: Moguće privatna ili osjetljiva informacija je prema zadanim postavkama automatski zaklonjena. Zaklonjene informacije mogu otežati rješavanju problema.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Prijavite problem sa filterom", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Da bi ste izbjegli opterećivanje dobrovoljaca sa dupliciranim prijavama, molimo vas da provjerite da li je vaš problem već prijavljen, ili nije.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Adresa web stranice:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Web stranica...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Odaberite unos --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Pokaže oglase ili ostatke oglasa", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Ima prekrive ili druge dosade", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Otkrije uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Ima probleme povezane za privatnost", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Kvari se kad je uBlock Origin uključen", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Otvara neželjene kartice ili prozore", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Označite web stranicu kao “NSZP” (“Ne-Sigurna-Za-Posao”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Zakloni", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Odzakloni", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Pravila privatnosti", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Popis izmjena", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Podrška", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Pratilac problema", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Izvorni kod (GPLv3)", "description": "English: Source code (GPLv3)" @@ -892,7 +1032,7 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "Sopstveni zapisi filtera uBO-a su besplatno gostovani na sljedećim CDN-ovima:\n", + "message": "Sopstveni zapisi filtera uBO-a su besplatno hostani na sljedećim CDN-ovima:\n", "description": "Shown in the About pane" }, "aboutCDNsInfo": { @@ -916,7 +1056,7 @@ "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { - "message": "Sve vaše postavke će je biti prebrisane koristeći rezervnu kopiju sa postavkama sačuvanim {{time}}, i uBlock₀ će se ponovno pokrenuti. \n\nPrepisati sve postojeće postavke sa rezervnom kopijom postavkih?", + "message": "Sve vaše postavke će je biti prebrisane koristeći rezervnu kopiju sa postavkama sačuvanim {{time}}, i uBlock₀ će se ponovno pokrenuti. \n\nPrepisati sve postojeće postavke sa rezervnom kopijom postavki?", "description": "Message asking user to confirm restore" }, "aboutRestoreDataError": { @@ -968,7 +1108,7 @@ "description": "Firefox/Fennec-specific: Show Dashboard" }, "showNetworkLogButton": { - "message": "Pokaži Dnevnik", + "message": "Pokaži zapisnik", "description": "Firefox/Fennec-specific: Show Logger" }, "fennecMenuItemBlockingOff": { @@ -1068,20 +1208,24 @@ "description": "Placeholder string for input field used to capture a keyboard shortcut" }, "genericMergeViewScrollLock": { - "message": "(De)aktivacija zaključanog scrollanja", + "message": "(De)aktivacija zaključanog pomicanja", "description": "Tooltip for the button used to lock scrolling between the views in the 'My rules' pane" }, "genericCopyToClipboard": { - "message": "Kopirano u međuspremnik", + "message": "Kopiraj u međuspremnik", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "(De)aktivacija blokiranja profila", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Označi sve", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { - "message": "Relaksirano mod blokiranja", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "message": "Relaksiran mod blokiranja", + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Iskorišten prostor: {{value}} {{unit}}", @@ -1104,7 +1248,7 @@ "description": "Message used in frame placeholders" }, "dummy": { - "message": "This entry must be the last one", + "message": "Ova stavka mora biti posljednja", "description": "so we dont need to deal with comma for last entry" } } diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/ca/messages.json ublock-origin-1.42.0+dfsg/src/_locales/ca/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/ca/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/ca/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Quant a", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Ajuda", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Visor de recursos", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Obre el registre d'esdeveniments", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Informeu d'un problema en aquest lloc web", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Commuta el bloqueig de totes les finestres emergents d'aquest lloc", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Bloqueja l'element", + "message": "Bloca l'element", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Configuració per a persones daltòniques", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Aparença", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Tema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Color d'accent personalitzat", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Habilita el suport d'emmagatzematge al núvol", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Sóc un usuari avançat (Lectura necessària)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "configuració avançada", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Sóc un usuari avançat (lectura necessària)", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Inhabilita la cerca prèvia (per evitar qualsevol connexió de xarxa per a sol·licituds blocades)", @@ -383,6 +399,18 @@ "message": "Revela els noms canònics", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Avançat", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Característiques adequades només per a usuaris tècnics", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "configuració avançada", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Darrera restauració:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

Els filtres cosmètics genèrics són filtres que no s'apliquen a tots els llocs web.

Tot i que l'uBlock₀ els gestiona de manera eficient, aquests filtres encara poden contribuir a un augment d'ús de la memòria o sobrecàrrega de la CPU en algunes pàgines web, especialment si tenen molt contingut, elements d'animació o temps real.

En habilitar aquesta opció s'elimina el risc de sobrecàrrega a la CPU i excés d'ús de la memòria com a resultat de la manipulació de filtres cosmètics genèrics i també es redueix el consum de memòria de l'uBlock₀.

Es recomana habilitar aquesta opció en dispositius poc potents.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspèn l'activitat de la xarxa fins a carregar totes les llistes de filtres", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Llistes de servidors bloquejats", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Llistat dels noms de servidor amb que s'inhabilitarà l'µBlock. Una entrada per línia. S'ignoraran els noms de servidor no vàlids.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Imporar i annexar", @@ -620,7 +652,7 @@ "description": "Appears in the logger's tab selector" }, "logBehindTheScene": { - "message": "Peticions ocultes", + "message": "Peticions amagades", "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { @@ -628,7 +660,7 @@ "description": "Appears in the logger's tab selector" }, "loggerReloadTip": { - "message": "Refresca la pestanya", + "message": "Torna a carregar el contingut de la pestanya", "description": "Tooltip for the reload button in the logger page" }, "loggerDomInspectorTip": { @@ -788,7 +820,7 @@ "description": "Below this sentence, the filter list(s) in which the filter was found" }, "loggerStaticFilteringFinderSentence2": { - "message": "No s'ha pogut trobar el filtre estàtic {{filter}} en cap de les llistes de filtres actualment activades", + "message": "No s'ha trobat el filtre estàtic {{filter}} a cap de les llistes de filtres actualment habilitades", "description": "Message to show when a filter cannot be found in any filter lists" }, "loggerSettingDiscardPrompt": { @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Obre", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Crea un informe nou", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Cerca d'informes semblants", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentació", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Llegiu la documentació a uBlock/wiki per obtenir informació sobre totes les funcions de l'uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Preguntes i suport", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Les respostes a preguntes i altres tipus d’ajuda es proporcionen al subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Problemes de filtre/lloc web trencat", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Informeu de problemes de filtres amb llocs web específics al uBlockOrigin/uAssets rastrejador de problemes. Requereix un compte de GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: eviteu utilitzar altres bloquejadors amb propòsits similars juntament amb l'uBlock Origin, ja que això pot causar problemes de filtratge en llocs web específics.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Consells: Assegureu-vos que les vostres llistes de filtres estiguin actualitzades. El registrador és l’eina principal per diagnosticar problemes relacionats amb els filtres.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Informe d'errors", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Informeu de problemes amb el propi uBlock Origin al uBlockOrigin/uBlock-issue rastrejador de problemes . Requereix un compte de GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informació de resolució de problemes", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "A continuació es mostra informació tècnica que pot ser útil quan els voluntaris intenten ajudar-vos a resoldre un problema.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Per defecte es redacta informació potencialment privada o confidencial. La informació redactada pot dificultar la resolució d'un problema.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Informeu d'un problema de filtre", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Per evitar carregar els voluntaris amb informes duplicats, verifiqueu que el problema encara no s'hagi notificat.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Adreça de la pàgina web:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "La pàgina web...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Trieu una entrada --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Mostra anuncis o restes d'anuncis", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Té superposicions o altres errors", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detecta l'uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Té problemes relacionats amb la privadesa", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "No funciona amb l'uBlock Origin habilitat", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Obre pestanyes o finestres no desitjades", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Marca aquesta pàgina com a “NSFW” (“No segur per al treball”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redacta", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "No redactis", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Política de privadesa", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Registre de canvis", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Suport", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Seguiment d'errors", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Codi font (GPLv3)", "description": "English: Source code (GPLv3)" @@ -908,11 +1048,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Restaurar des d'un fitxer...", + "message": "Restaura des d'un fitxer...", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Restaurar als valors de fàbrica...", + "message": "Restaura als valors per defecte...", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -932,7 +1072,7 @@ "description": "English: Network error: {{msg}}" }, "subscriberConfirm": { - "message": "uBlock₀: Voleu afegir aquesta URL a la llista de filtres personalitzats?\n\nTítol: \"{{title}}\"\nURL: {{url}}", + "message": "uBlock₀: Voleu afegir aquest URL a la llista de filtres personalitzats?\n\nTítol: \"{{title}}\"\nURL: {{url}}", "description": "No longer used" }, "subscribeButton": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1056,7 +1196,7 @@ "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscriviu-vos a la llista de filtres... ", + "message": "Uniu-vos a la llista de filtres... ", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Copia al porta-retalls", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Commuta el perfil de bloqueig", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Selecciona-ho tot", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Commuta els filtres cosmètics", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Mode de bloqueig relaxat", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Emmagatzematge utilitzat: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/cs/messages.json ublock-origin-1.42.0+dfsg/src/_locales/cs/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/cs/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/cs/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "O rozšíření", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Podpora", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Prohlížeč zdrojů", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Otevřít protokol požadavků", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Nahlásit problém na této webové stránce", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Přepnout blokování všech vyskakovacích oken na tomto webu", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Blokovat prvek...", + "message": "Blokovat prvek", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Styl pro barvoslepé", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Vzhled", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Motiv", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Vlastní barva motivu", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Povolit podporu cloudového úložiště", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Jsem pokročilý uživatel (nutno přečíst)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "pokročilá nastavení", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Zakázat přednačítání (zakáže jakékoliv spojení pro zablokované síťové požadavky)", @@ -383,6 +399,18 @@ "message": "Odkrýt kanonická jména", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Pokročilé", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Funkce vhodné pouze pro pokročilé uživatele", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "pokročilá nastavení", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Poslední obnova:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

Obecné kosmetické filtry jsou kosmetické filtry vytvořené k použití se všemi webovými stránkami.

Přestože je uBlock₀ používá velmi efektivně, kosmetické filtry mohou přispět ke zvýšenému využití operační paměti a procesoru na některých webech, zejména těch velkých a složitých.

Zapnutím této volby se lze vyhnout nadbytečnému zatížení paměti i procesoru vyvolaném použitím obecných kosmetických filtrů a rovněž snížit využití paměti samotným uBlock₀ rozšířením.

Na méně výkonných zařízeních je doporučeno tuto volbu povolit.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Pozastavit síťové aktivity, dokud se nenačtou všechny seznamy filtrů.", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Seznamy blokovaných hostitelů", "description": "English: Lists of blocked hosts" @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Aktualizování...", + "message": "Probíhá aktualizace...", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Pravidla v seznamu povolených domén určují, pro které webové stránky bude uBlock Origin vypnutý. Jedna položka na řádek. Neplatná pravidla budou tiše ignorována a zakomentována.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importovat a připojit", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Otevřít", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Vytvořit nové hlášení", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Vyhledat podobná hlášení", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentace", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Čtěte dokumentaci na uBlock/wiki, kde se dozvíte o všech funkcích uBlocku Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Otázky a podpora", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Odpovědi na otázky a další druhy podpory jsou poskytovány na subredditu /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Problémy s filtrem/web. stránka je nefunkční", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Hlášení problémů s filtrem u učitých web. stránek do uBlockOrigin/uAssets issue tracker. Vyžaduje účet GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Důležité: Nepoužívejte podobně zaměřené blokátory s uBlock Origin, může to způsobit problémy s filtry na určitých webových stránkách.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tipy: Ověřte, že jsou seznamy filtrů aktuální. Protokol je hlavní nástroj pro diagnósu problémů s filtry.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Hlášení chyb", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Hlášení problémů se samotným uBlock Origin na uBlockOrigin/uBlock-issue issue tracker. Požaduje účet GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informace o řešení problémů", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Níže jsou technické informace, které mohou být užitečné, když vám dobrovolníci pomáhají vyřešit nějaký problém.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Důležité: Potenciálně soukromé nebo citlivé informace jsou ve výchozím nastavení redigovány. Redigované informace mohou ztížit řešení problému.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Nahlásit problém s filtrem", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Abyste dobrovolníky nezatěžovali duplicitními hlášeními, ověřte si, zda již problém nebyl nahlášen.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Adresa webové stránky:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Webová stránka…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Vyberte položku --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Zobrazuje reklamy nebo zbytky reklam", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Je překrytá nebo má jiné nedostatky", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detekuje uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Má problémy související se soukromím", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Je rozbitá, když je povolen uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Otevírá nechtěné karty nebo okna", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Označit webovou stránku jako “NSFW” (Není bezpečné pro práci”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Upravit", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Odstranit", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Ochrana soukromí", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Přehled změn", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Podpora", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Evidence problémů", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Zdrojový kód (GPLv3)", "description": "English: Source code (GPLv3)" @@ -908,11 +1048,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Obnovit ze souboru...", + "message": "Obnovit ze souboru…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Obnovit výchozí nastavení...", + "message": "Obnovit výchozí nastavení…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1056,7 +1196,7 @@ "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Přihlásit se k odběru seznamu filtrů ...", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Kopírovat do schránky", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Přepnout blokovací profil", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Vybrat vše", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Zapnout kosmetické filtrování", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Uvolnit režim blokování", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Využití úložiště: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/cv/messages.json ublock-origin-1.42.0+dfsg/src/_locales/cv/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/cv/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/cv/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Сарӑм пирки", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Asset viewer", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Open the logger", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Toggle the blocking of all popups for this site", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Block element...", + "message": "Block element…", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Color-blind friendly", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Enable cloud storage support", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Эпӗ ӑста усӑҫ (Вуламасӑр иртме ҫук)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "advanced settings", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Disable pre-fetching (to prevent any connection for blocked network requests)", @@ -383,6 +399,18 @@ "message": "Uncloak canonical names", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "advanced settings", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Юлашки тавӑру:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generic cosmetic filters are those cosmetic filters which are meant to apply on all web sites. Enabling this option will eliminate the memory and CPU overhead added to web pages as a result of handling generic cosmetic filters.\n\nIt is recommended to enable this option on less powerful devices.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Чарнӑ хостсен йышӗ", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Import...", + "message": "Import…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Updating...", + "message": "Updating…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -544,7 +576,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Import from file...", + "message": "Import from file…", "description": "" }, "rulesExport": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line. Invalid directives will be silently ignored and commented out.", - "description": "The name of the trusted sites pane." + "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Import and append", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Create new report", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find similar reports", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privacy policy", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Улшӑнусен йышӗ", "description": "" }, - "aboutWiki": { - "message": "Вики", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Support", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Issue tracker", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Source code (GPLv3)", "description": "English: Source code (GPLv3)" @@ -908,11 +1048,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Restore from file...", + "message": "Restore from file…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Reset to default settings...", + "message": "Reset to default settings…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Block element in frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Subscribe to filter list…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Copy to clipboard", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Toggle blocking profile", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Select all", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Storage used: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/da/messages.json ublock-origin-1.42.0+dfsg/src/_locales/da/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/da/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/da/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Om", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Visning af aktiver", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Åbn loggeren", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Anmeld et problem med dette websted", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Aktivér/deaktivér blokering af alle popups på dette websted", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Optimeret til farveblinde", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Udseende", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Tema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Tilpasset accentfarve", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Aktivér understøttelse for Skylagring", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Dette er (obligatorisk læsning) for den erfarne bruger", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "avancerede indstillinger", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Jeg er en erfarne bruger", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Deaktivér præindlæsning (for at hindre enhver forbindelse for blokerede netværksanmodninger)", @@ -383,6 +399,18 @@ "message": "Vis kanoniske navne", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Avanceret", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Funktioner kun egnet til tekniske brugere.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "avancerede indstillinger", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Seneste gendannelse:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generiske kosmetiske filtre er de kosmetiske filtre, der er beregnet til at gælde på alle websteder. Aktivering af denne indstilling vil eliminere hukommelse- og CPU-forbrug, der tilføjes til websider som et resultat af håndtering af generiske kosmetiske filtre.\n\nDet anbefales at aktivere denne indstilling på mindre kraftfulde enheder.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspendér netværksaktivitet, indtil alle filterlister er indlæst", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Liste over blokerede værter", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Importer...", + "message": "Importér...", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "De betroede webstedsdirektiver dikterer, på hvilke websider uBlock Origin skal deaktiveres. Én post pr. linje. Ugyldige direktiver ignoreres og kommenteres ud.", - "description": "The name of the trusted sites pane." + "message": "De betroede webstedsdirektiver dikterer, på hvilke websider uBlock Origin skal deaktiveres. En post pr. linje.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importér og tilføj", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Åbn", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Opret ny anmeldelse", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find lign. anmeldelser", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Læs dokumentationen på uBlock/wiki for at få mere at vide om alle uBlock Origin-funktionerne.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Spørgsmål og Support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Svar på spørgsmål samt andre former for hjælp/support er tilgængelig via subreddit/r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filterproblemer/websted er ødelagt", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Rapportér filterproblemer med bestemte websteder via uBlockOrigin/uAssets-problemsporing. Kræver en GitHub-konto.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Vigtigt: Undgå brug af andre blockere med lign. formål sammen med uBlock Origin, da dette kan medføre filterproblemer på visse websteder.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tip: Sørg for, at dine filterlister er opdaterede. Loggeren er det primære værktøj til diagnosticering af filterrelaterede problemer.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Fejlrapport", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Rapportér problemer med selve uBlock Origin via uBlockOrigin/uBlock-issue problemsporingen. Kræver en GitHub-konto.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Fejlfindingsinformation", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Nedenfor findes tekniske oplysninger, som kan være nyttige, når frivillige forsøger at hjælpe dig med at løse et problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Vigtigt: Potentielt fortrolige eller sensitive oplysninger bortredigeres som standard, hvilket kan gøre problemløsningen vanskeligere.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Anmeld et filterproblem", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "For at undgå at belaste frivillige med dubletanmeldelser, så tjek venligst, at problemet ikke allerede er anmeldt.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Websideadressen", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Websiden...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Vælg problemtype --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Viser annoncer eller annoncerester", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Indeholder overlejringer eller andre gener", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detekterer uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Indeholder fortrolighedsrelaterede problemer", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Ødelægges, når uBlock Origin er aktiveret", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Åbner uønskede faner eller vinduer", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Markér websiden som “NSFW” (“Ikke sikker til arbejdsbrug”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Bortredigér", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Bortredigér ikke", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Fortrolighedspolitik", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Ændringslog", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Support", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Problemsporer", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Kildekode (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1075,13 +1215,17 @@ "message": "Kopiér til Udklipsholder", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Slå blokeringsprofil til/fra", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Vælg alt", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Kosmetisk filtrering til/fra", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Lemp blokeringstilstand", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Lagerplads brugt: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/de/messages.json ublock-origin-1.42.0+dfsg/src/_locales/de/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/de/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/de/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -1,10 +1,10 @@ { "extName": { - "message": "uBlock₀", + "message": "uBlock Origin", "description": "extension name." }, "extShortDesc": { - "message": "Endlich ein effizienter Blocker. Prozessor-freundlich und bescheiden beim Speicherbedarf.", + "message": "Endlich ein effizienter Blocker, der wenig Prozessorleistung und Arbeitsspeicher verbraucht.", "description": "this will be in the Chrome web store: must be 132 characters or less" }, "dashboardName": { @@ -44,7 +44,7 @@ "description": "appears as tab name in dashboard" }, "shortcutsPageName": { - "message": "Tastenkürzel", + "message": "Tastenkombinationen", "description": "appears as tab name in dashboard" }, "statsPageName": { @@ -55,6 +55,10 @@ "message": "Über", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Unterstützung", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Ressourcenbetrachter", "description": "Title for the asset viewer page" @@ -68,15 +72,15 @@ "description": "English: Click: disable/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page." }, "popupPowerSwitchInfo1": { - "message": "Klicken, um uBlock₀ für diese Website zu deaktivieren. \n\nStrg+Klick, um uBlock₀ nur auf dieser Webseite zu deaktivieren.", + "message": "Hier klicken, um uBlock₀ für diese Website zu deaktivieren. \n\nStrg+Klick, um uBlock₀ nur auf dieser Seite zu deaktivieren.", "description": "Message to be read by screen readers" }, "popupPowerSwitchInfo2": { - "message": "Klicken Sie hier, um uBlock₀ für diese Website zu aktivieren.", + "message": "Hier klicken, um uBlock₀ für diese Website zu aktivieren.", "description": "Message to be read by screen readers" }, "popupBlockedRequestPrompt": { - "message": "blockierte Anfragen", + "message": "Blockierte Anfragen", "description": "English: requests blocked" }, "popupBlockedOnThisPagePrompt": { @@ -108,7 +112,7 @@ "description": "For the new mobile-friendly popup design" }, "popupTipDashboard": { - "message": "Klicken, um die Übersicht zu öffnen", + "message": "Dashboard öffnen", "description": "English: Click to open the dashboard" }, "popupTipZapper": { @@ -123,20 +127,24 @@ "message": "Protokoll der Netzwerkanfragen öffnen", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Ein Problem auf dieser Website melden", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { - "message": "Pop-ups auf dieser Seite blockieren/zulassen", + "message": "Pop-ups auf dieser Website blockieren/zulassen", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups1": { - "message": "Hier klicken, um alle Popups auf dieser Website zu blockieren", + "message": "Hier klicken, um alle Pop-ups auf dieser Website zu blockieren", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups2": { - "message": "Hier klicken, um Popups auf dieser Website nicht mehr zu blockieren", + "message": "Hier klicken, um Pop-ups auf dieser Website wieder zuzulassen", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoLargeMedia": { - "message": "Große Medienelemente dieser Seite anzeigen/sperren", + "message": "Große Medienelemente auf dieser Website anzeigen/blockieren", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia1": { @@ -144,39 +152,39 @@ "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia2": { - "message": "Hier klicken, um große Medienelemente auf dieser Website nicht mehr zu blockieren", + "message": "Hier klicken, um große Medienelemente auf dieser Website wieder zuzulassen", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoCosmeticFiltering": { - "message": "Kosmetische Filter für diese Seite an-/ausschalten", + "message": "Kosmetische Filterung für diese Website ein-/ausschalten", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering1": { - "message": "Hier klicken, um kosmetische Filter auf dieser Seite zu deaktivieren", + "message": "Hier klicken, um die kosmetische Filterung auf dieser Website zu deaktivieren", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering2": { - "message": "Hier klicken, um kosmetische Filter auf dieser Seite zu aktivieren", + "message": "Hier klicken, um die kosmetische Filterung auf dieser Website zu aktivieren", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoRemoteFonts": { - "message": "Remote-Schriftarten für diese Seite an-/ausschalten", + "message": "Externe Schriftarten für diese Website erlauben/blockieren", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts1": { - "message": "Hier klicken, um Remote-Schriftarten auf dieser Website zu blockieren", + "message": "Hier klicken, um externe Schriftarten auf dieser Website zu blockieren", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts2": { - "message": "Hier klicken, um Remote-Schriftarten auf dieser Website nicht mehr zu blockieren", + "message": "Hier klicken, um externe Schriftarten auf dieser Website wieder zuzulassen", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoScripting1": { - "message": "Klicken, um JavaScript auf dieser Seite zu deaktivieren", + "message": "Hier klicken, um JavaScript auf dieser Website zu deaktivieren", "description": "Tooltip for the no-scripting per-site switch" }, "popupTipNoScripting2": { - "message": "Klicken, um JavaScript auf dieser Seite wieder zuzulassen", + "message": "Hier klicken, um JavaScript auf dieser Website wieder zuzulassen", "description": "Tooltip for the no-scripting per-site switch" }, "popupNoPopups_v2": { @@ -192,7 +200,7 @@ "description": "Caption for the no-cosmetic-filtering per-site switch" }, "popupNoRemoteFonts_v2": { - "message": "Externe Schriften", + "message": "Externe Schriftarten", "description": "Caption for the no-remote-fonts per-site switch" }, "popupNoScripting_v2": { @@ -208,19 +216,19 @@ "description": "Label to be used to hide popup panel sections" }, "popupTipGlobalRules": { - "message": "Globale Regeln: Diese Spalte ist für Regeln, die bei allen Seiten angewendet werden.", + "message": "Globale Regeln: Diese Spalte ist für Regeln, die für alle Websites gelten.", "description": "Tooltip when hovering the top-most cell of the global-rules column." }, "popupTipLocalRules": { - "message": "Lokale Regeln: Diese Spalte ist für Regeln, die nur bei dieser Seite angewendet werden.\nLokale Regeln überschreiben globale Regeln.", + "message": "Lokale Regeln: Diese Spalte ist für Regeln, die nur für die aktuelle Website gelten.\nLokale Regeln überschreiben globale Regeln.", "description": "Tooltip when hovering the top-most cell of the local-rules column." }, "popupTipSaveRules": { - "message": "Hier klicken, um deine Änderungen dauerhaft zu übernehmen.", + "message": "Hier klicken, um Ihre Änderungen dauerhaft zu übernehmen.", "description": "Tooltip when hovering over the padlock in the dynamic filtering pane." }, "popupTipRevertRules": { - "message": "Hier klicken, um deine Änderungen rückgängig zu machen.", + "message": "Hier klicken, um Ihre Änderungen rückgängig zu machen.", "description": "Tooltip when hovering over the eraser in the dynamic filtering pane." }, "popupAnyRulePrompt": { @@ -232,11 +240,11 @@ "description": "" }, "popup3pAnyRulePrompt": { - "message": "Ressourcen von Drittseiten", + "message": "Ressourcen aus Drittquellen", "description": "" }, "popup3pPassiveRulePrompt": { - "message": "CSS/Bilder von Drittanbietern", + "message": "CSS/Bilder aus Drittquellen", "description": "" }, "popupInlineScriptRulePrompt": { @@ -244,23 +252,23 @@ "description": "" }, "popup1pScriptRulePrompt": { - "message": "Skripte der aktuellen Seite", + "message": "Skripte dieser Domain", "description": "" }, "popup3pScriptRulePrompt": { - "message": "Skripte von Drittseiten", + "message": "Skripte aus Drittquellen", "description": "" }, "popup3pFrameRulePrompt": { - "message": "Frames von Drittseiten", + "message": "Frames aus Drittquellen", "description": "" }, "popupHitDomainCountPrompt": { - "message": "verbundene Domains", + "message": "Verbundene Domains", "description": "appears in popup" }, "popupHitDomainCount": { - "message": "{{count}} von insgesamt {{total}}", + "message": "{{count}} von {{total}}", "description": "appears in popup" }, "popupVersion": { @@ -268,15 +276,15 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: Zeilen hervorheben, die Skripte von Drittanbietern enthalten", + "message": "↑: Zeilen hervorheben, die Skripte aus Drittquellen enthalten", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: Zeilen hervorheben, die Frames von Drittanbietern enthalten", + "message": "↑: Zeilen hervorheben, die Frames aus Drittquellen enthalten", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { - "message": "Erzeugen", + "message": "Erstellen", "description": "English: Create" }, "pickerPick": { @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Element blockieren...", + "message": "Element blockieren…", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -312,7 +320,7 @@ "description": "English: Hide placeholders of blocked elements" }, "settingsIconBadgePrompt": { - "message": "Anzahl blockierter Anfragen auf dem Symbol anzeigen", + "message": "Anzahl der blockierten Anfragen auf dem Symbol anzeigen", "description": "English: Show the number of blocked requests on the icon" }, "settingsTooltipsPrompt": { @@ -324,20 +332,28 @@ "description": "English: Make use of context menu where appropriate" }, "settingsColorBlindPrompt": { - "message": "Anzeige für farbenblinde Benutzer", + "message": "Modus für Farbenblinde", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Erscheinungsbild", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Farbschema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Benutzerdefinierte Akzentfarbe", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Unterstützung für Speicherung in der Cloud aktivieren", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Ich bin ein erfahrener Anwender (Pflichtlektüre)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "Erweiterte Einstellungen", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Ich bin technisch versiert", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Prefetching (Vorabrufen von Webseiten) deaktivieren (um jede Verbindung für blockierte Netzwerkanfragen zu verhindern)", @@ -356,11 +372,11 @@ "description": "" }, "settingPerSiteSwitchGroupSynopsis": { - "message": "Dieses Standardverhalten kann für jede Webseite angepasst werden", + "message": "Dieses Standardverhalten kann für jede Website angepasst werden", "description": "" }, "settingsNoCosmeticFilteringPrompt": { - "message": "Kosmetische Filter deaktivieren", + "message": "Kosmetische Filterung deaktivieren", "description": "" }, "settingsNoLargeMediaPrompt": { @@ -368,7 +384,7 @@ "description": "" }, "settingsNoRemoteFontsPrompt": { - "message": "Externe Schriftarten blocken", + "message": "Externe Schriftarten blockieren", "description": "" }, "settingsNoScriptingPrompt": { @@ -383,12 +399,24 @@ "message": "Kanonische Namen enthüllen", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Erweitert", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Funktionen, die nur für technisch versierte Benutzer geeignet sind", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "Erweiterte Einstellungen", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Letzte Wiederherstellung:", "description": "English: Last restore:" }, "settingsLastBackupPrompt": { - "message": "Letztes Backup:", + "message": "Letzte Sicherung:", "description": "English: Last backup:" }, "3pListsOfBlockedHostsPrompt": { @@ -400,7 +428,7 @@ "description": "Appears aside each filter list in the _3rd-party filters_ pane" }, "3pAutoUpdatePrompt1": { - "message": "Automatische Aktualisierung der Filterlisten", + "message": "Filterlisten automatisch aktualisieren", "description": "A checkbox in the _3rd-party filters_ pane" }, "3pUpdateNow": { @@ -408,11 +436,11 @@ "description": "A button in the in the _3rd-party filters_ pane" }, "3pPurgeAll": { - "message": "Alle Cache-Speicher leeren", + "message": "Alle Caches leeren", "description": "A button in the in the _3rd-party filters_ pane" }, "3pParseAllABPHideFiltersPrompt1": { - "message": "Kosmetische Filter auswerten und deren Anwendung erzwingen", + "message": "Kosmetische Filter auswerten und anwenden", "description": "English: Parse and enforce Adblock+ element hiding filters." }, "3pParseAllABPHideFiltersInfo": { @@ -424,9 +452,13 @@ "description": "This will cause uBO to ignore all generic cosmetic filters." }, "3pIgnoreGenericCosmeticFiltersInfo": { - "message": "Generische kosmetische Filter sind diejenigen kosmetischen Filter, die für die Anwendung auf allen Webseiten bestimmt sind. Die Aktivierung dieser Option wird die Mehrbelastung für Speicher und Prozessor auf Webseiten durch die Verarbeitung generischer kosmetischer Filter verhindern.\n\nEs wird empfohlen, diese Option auf weniger leistungsstarken Geräten zu aktivieren.", + "message": "Generische kosmetische Filter sind kosmetische Filter, die auf alle Websites angewendet werden sollen. Die Aktivierung dieser Option verhindert die Mehrbelastung des Arbeitsspeichers und der CPU, die durch die Verarbeitung generischer kosmetischer Filter auf Websites entsteht.\n\nEs wird empfohlen, diese Option auf weniger leistungsfähigen Geräten zu aktivieren.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Netzwerkaktivität unterbrechen, bis alle Filterlisten geladen sind", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Listen blockierter Hostnamen", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Importieren …", + "message": "Importieren…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Wird aktualisiert …", + "message": "Wird aktualisiert…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -496,15 +528,15 @@ "description": "used as a tooltip for error icon beside a list" }, "1pFormatHint": { - "message": "Eine Regel pro Zeile. Eine Regel kann ein einfacher Hostname sein oder ein Adblock-Plus-kompatibler Filter. Zeilen mit vorangestelltem ! werden ignoriert.", + "message": "Ein Filter pro Zeile. Ein Filter kann ein einfacher Hostname oder ein EasyList-kompatibler Filter sein. Zeilen mit vorangestelltem ! werden ignoriert.", "description": "Short information about how to create custom filters" }, "1pImport": { - "message": "Importieren und anfügen", + "message": "Importieren und anfügen…", "description": "English: Import and append" }, "1pExport": { - "message": "Exportieren", + "message": "Exportieren…", "description": "English: Export" }, "1pExportFilename": { @@ -544,23 +576,23 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Aus einer Datei importieren …", + "message": "Aus Datei importieren…", "description": "" }, "rulesExport": { - "message": "In eine Datei exportieren ...", + "message": "In Datei exportieren…", "description": "" }, "rulesDefaultFileName": { - "message": "my-ublock-dynamic-rules_{{datetime}}.txt", + "message": "ublock-dynamische-regeln_{{datetime}}.txt", "description": "default file name to use" }, "rulesHint": { - "message": "Liste deiner dynamischen Filterregeln.", + "message": "Liste Ihrer dynamischen Filterregeln.", "description": "English: List of your dynamic filtering rules." }, "rulesFormatHint": { - "message": "Regel-Syntax: Quelle Ziel Typ Action ( vollständige Dokumentation).", + "message": "Regel-Syntax: Quelle Ziel Typ Aktion (Ausführliche Dokumentation).", "description": "English: dynamic rule syntax and full documentation." }, "rulesSort": { @@ -580,19 +612,19 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "Ausnahmeregeln bestimmen, auf welchen Webseiten uBlock Origin nicht aktiv sein soll. Ein Eintrag pro Zeile. Ungültige Regeln werden ignoriert und auskommentiert.", - "description": "The name of the trusted sites pane." + "message": "Ausnahmeregeln bestimmen, auf welchen Webseiten uBlock Origin deaktiviert werden soll. Ein Eintrag pro Zeile.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { - "message": "Importieren und anfügen", + "message": "Importieren und anfügen…", "description": "English: Import and append" }, "whitelistExport": { - "message": "Exportieren", + "message": "Exportieren…", "description": "English: Export" }, "whitelistExportFilename": { - "message": "ublock-whitelist_{{datetime}}.txt", + "message": "ublock-ausnahmeregeln_{{datetime}}.txt", "description": "The default filename to use for import/export purpose" }, "whitelistApply": { @@ -620,7 +652,7 @@ "description": "Appears in the logger's tab selector" }, "logBehindTheScene": { - "message": "Hintergrundanfragen", + "message": "Hintergrund-Netzwerkanfragen", "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { @@ -632,15 +664,15 @@ "description": "Tooltip for the reload button in the logger page" }, "loggerDomInspectorTip": { - "message": "DOM-Inspektor umschalten", + "message": "DOM-Inspektor ein-/ausschalten", "description": "Tooltip for the DOM inspector button in the logger page" }, "loggerPopupPanelTip": { - "message": "Popup-Bereich umschalten", + "message": "Pop-up-Fenster ein-/ausblenden", "description": "Tooltip for the popup panel button in the logger page" }, "loggerInfoTip": { - "message": "uBlock Origin Wiki: Protokollierung", + "message": "uBlock Origin-Wiki: Protokoll der Netzwerkanfragen", "description": "Tooltip for the top-right info label in the logger page" }, "loggerClearTip": { @@ -656,7 +688,7 @@ "description": "Tooltip for the play button in the logger page" }, "loggerRowFiltererButtonTip": { - "message": "Protokollierungsfilterung umschalten", + "message": "Protokollierungsfilterung ein-/ausschalten", "description": "Tooltip for the row filterer button in the logger page" }, "logFilterPrompt": { @@ -692,7 +724,7 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltin3p": { - "message": "Drittanbieter", + "message": "Ressourcen aus Drittquellen", "description": "A keyword in the built-in row filtering expression" }, "loggerEntryDetailsHeader": { @@ -732,7 +764,7 @@ "description": "Label to identify the URL of an entry" }, "loggerURLFilteringHeader": { - "message": "URL-Regeln", + "message": "URL-Regel", "description": "Small header to identify the dynamic URL filtering section" }, "loggerURLFilteringContextLabel": { @@ -744,23 +776,23 @@ "description": "Label for the type selector" }, "loggerStaticFilteringHeader": { - "message": "Statische Filter", + "message": "Statischer Filter", "description": "Small header to identify the static filtering section" }, "loggerStaticFilteringSentence": { - "message": "{{action}} Netzwerkanfragen {{type}} {{br}}deren URL-Adresse mit {{url}} übereinstimmt{{br}} und von {{origin}} stammen,{{br}}{{importance}} ein übereinstimmender Ausnahme-Filter existiert.", + "message": "{{action}} Netzwerkanfragen {{type}},{{br}}deren URL-Adresse mit {{url}} übereinstimmt{{br}}und von {{origin}} stammen,{{br}}{{importance}} ein übereinstimmender Ausnahme-Filter existiert.", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartBlock": { - "message": "Blockieren", + "message": "Blockiere", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartAllow": { - "message": "Erlauben", + "message": "Erlaube", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartType": { - "message": "vom Typ \"{{type}}\"", + "message": "vom Typ »{{type}}«", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartAnyType": { @@ -788,7 +820,7 @@ "description": "Below this sentence, the filter list(s) in which the filter was found" }, "loggerStaticFilteringFinderSentence2": { - "message": "Statischer Filter {{filter}} konnte in keiner der aktuell aktivierten Filterlisten gefunden werden.", + "message": "Statischer Filter konnte in keiner der derzeit aktivierten Filterlisten gefunden werden", "description": "Message to show when a filter cannot be found in any filter lists" }, "loggerSettingDiscardPrompt": { @@ -796,7 +828,7 @@ "description": "Logger setting: A sentence to describe the purpose of the settings below" }, "loggerSettingPerEntryMaxAge": { - "message": "Einträge der letzten {{input}} Minuten behalten", + "message": "Einträge der letzten {{input}} Minuten beibehalten", "description": "A logger setting" }, "loggerSettingPerTabMaxLoads": { @@ -808,7 +840,7 @@ "description": "A logger setting" }, "loggerSettingPerEntryLineCount": { - "message": "{{input}} Zeilen pro Element im vertikal erweiterten Modus verwenden", + "message": "{{input}} Zeilen pro Eintrag im vertikal erweiterten Modus verwenden", "description": "A logger setting" }, "loggerSettingHideColumnsPrompt": { @@ -816,7 +848,7 @@ "description": "Logger settings: a sentence to describe the purpose of the checkboxes below" }, "loggerSettingHideColumnTime": { - "message": "{{input}} Zeit", + "message": "{{input}} Uhrzeit", "description": "A label for the time column" }, "loggerSettingHideColumnFilter": { @@ -840,13 +872,133 @@ "description": "Label for radio-button to pick export format" }, "loggerExportEncodePlain": { - "message": "Rohtext", + "message": "Nur Text", "description": "Label for radio-button to pick export text format" }, "loggerExportEncodeMarkdown": { "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Öffnen", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Neuen Bericht erstellen", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Ähnliche Berichte suchen", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Lesen Sie die Dokumentation auf uBlock/wiki, um mehr über alle Funktionen von uBlock Origin zu erfahren.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Fragen und Unterstützung", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Antworten auf Fragen und andere Arten der Hilfe werden im Subreddit /r/uBlockOrigin gegeben.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filterprobleme / Website funktioniert nicht", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Melden Sie Filterprobleme mit spezifischen Websites an den uBlockOrigin/uAssets Issue Tracker. Erfordert einen GitHub-Account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Wichtig: Vermeiden Sie die Verwendung anderer, ähnlicher Blocker zusammen mit uBlock Origin, da dies zu Filterproblemen auf bestimmten Websites führen kann.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tipp: Stellen Sie sicher, dass Ihre Filterlisten auf dem aktuellen Stand sind. Protokoll der Netzwerkanfragen ist das primäre Werkzeug, um filterbezogene Fehler zu diagnostizieren.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Fehlerbericht", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Melden Sie Fehler von uBlock Origin selbst an den uBlockOrigin/uBlock-issue Issue Tracker. Erfordert einen GitHub-Account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informationen zur Fehlerbehebung", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Im Folgenden finden Sie technische Informationen, die nützlich sein können, wenn Freiwillige versuchen, Ihnen bei der Lösung eines Problems zu helfen.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Wichtig: Potenziell private oder sensible Informationen werden standardmäßig geschwärzt. Redigierte Informationen können die Lösung eines Problems erschweren.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Ein Filterproblem melden", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Um die Freiwilligen nicht mit doppelten Meldungen zu belasten, vergewissern Sie sich bitte, ob das Problem nicht schon einmal gemeldet wurde.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Adresse der Webseite:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Die Webseite…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Einen Eintrag auswählen --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Zeigt Werbung oder Anzeigenreste", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Enthält Überdeckungen oder andere Belästigungen", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Erkennt uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Enthält Datenschutzprobleme", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Funktioniert nicht richtig, wenn uBlock Origin aktiviert ist", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Öffnet unerwünschte Tabs oder Fenster", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Kennzeichnen Sie die Webseite als „NSFW” („Nicht zur Ansicht bzw. Verwendung am Arbeitsplatz geeignet”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Überarbeiten", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Überarbeitung widerrufen", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Datenschutzerklärung", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Änderungsprotokoll", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Unterstützung", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Bugtracker", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Quellcode (GPLv3)", "description": "English: Source code (GPLv3)" @@ -876,7 +1016,7 @@ "description": "English: Contributors" }, "aboutSourceCode": { - "message": "Quelltext", + "message": "Quellcode", "description": "Link text to source code repo" }, "aboutTranslations": { @@ -892,7 +1032,7 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "Die uBO-eigenen Filterlisten werden auf den folgenden CDNs frei zur Verfügung gestellt:", + "message": "Die uBO-eigenen Filterlisten werden auf den folgenden CDNs frei zur Verfügung gestellt:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { @@ -900,7 +1040,7 @@ "description": "Shown in the About pane" }, "aboutBackupDataButton": { - "message": "Backup in eine Datei", + "message": "In Datei sichern…", "description": "Text for button to create a backup of all settings" }, "aboutBackupFilename": { @@ -908,19 +1048,19 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Aus einer Datei wiederherstellen ...", + "message": "Aus Datei wiederherstellen…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Auf Vorgaben zurücksetzen …", + "message": "Auf Werkseinstellungen zurücksetzen…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { - "message": "Alle Einstellungen werden überschrieben und auf den Stand von {{time}} gebracht. Anschließend wird uBlock neu gestartet.\n\nSollen die aktuellen Einstellungen durch die Sicherung ersetzt werden?", + "message": "Alle Einstellungen werden überschrieben und auf den Stand vom {{time}} gebracht. Anschließend wird uBlock₀ neu gestartet.\n\nSollen die aktuellen Einstellungen durch die Sicherung ersetzt werden?", "description": "Message asking user to confirm restore" }, "aboutRestoreDataError": { - "message": "Die Daten konnten nicht gelesen werden oder waren ungültig", + "message": "Die Daten konnten nicht gelesen werden oder sind ungültig", "description": "Message to display when an error occurred during restore" }, "aboutResetDataConfirm": { @@ -932,7 +1072,7 @@ "description": "English: Network error: {{msg}}" }, "subscriberConfirm": { - "message": "uBlock₀: Folgende Adresse Ihrer benutzerdefinierten Filterliste hinzufügen?\n\nTitel: »{{title}}«\nAdresse: {{url}}", + "message": "Folgende URL zu Ihren benutzerdefinierten Filterlisten hinzufügen?\n\nTitel: »{{title}}«\nURL: {{url}}", "description": "No longer used" }, "subscribeButton": { @@ -980,7 +1120,7 @@ "description": "Used in the strict-blocking page" }, "docblockedPrompt2": { - "message": "Aufgrund des folgenden Filters", + "message": "Aufgrund des folgenden Filters:", "description": "Used in the strict-blocking page" }, "docblockedNoParamsPrompt": { @@ -992,7 +1132,7 @@ "description": "English: List of filter list names follows" }, "docblockedBack": { - "message": "Gehe zurück", + "message": "Zurück", "description": "English: Go back" }, "docblockedClose": { @@ -1000,7 +1140,7 @@ "description": "English: Close this window" }, "docblockedProceed": { - "message": "Kein striktes Blockieren für {{hostname}}", + "message": "Striktes Blockieren für {{hostname}} deaktivieren", "description": "English: Disable strict blocking for {{hostname}} ..." }, "docblockedDisableTemporary": { @@ -1020,11 +1160,11 @@ "description": "tooltip" }, "cloudPullAndMerge": { - "message": "Backup aus der Cloud importieren und mit den aktuellen Einstellungen zusammenführen", + "message": "Sicherung aus der Cloud importieren und mit den aktuellen Einstellungen zusammenführen", "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1032,7 +1172,7 @@ "description": "used as a prompt for the user to provide a custom device name" }, "advancedSettingsWarning": { - "message": "Warnung! Veränderungen dieser erweiterten Einstellungen auf eigenes Risiko.", + "message": "Warnung! Die Veränderung dieser erweiterten Einstellungen erfolgt auf eigenes Risiko.", "description": "A warning to users at the top of 'Advanced settings' page" }, "genericSubmit": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Elemente in Frame sperren …", + "message": "Element im Frame blockieren…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Filterliste abonnieren …", + "message": "Filterliste abonnieren…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1064,24 +1204,28 @@ "description": "A context menu entry, present when large media elements have been blocked on the current site" }, "shortcutCapturePlaceholder": { - "message": "Tastaturkürzel festlegen", + "message": "Tastenkombination drücken", "description": "Placeholder string for input field used to capture a keyboard shortcut" }, "genericMergeViewScrollLock": { - "message": "Bildlauf sperren/entsperren", + "message": "Synchrones Scrollen ein-/ausschalten", "description": "Tooltip for the button used to lock scrolling between the views in the 'My rules' pane" }, "genericCopyToClipboard": { "message": "In die Zwischenablage kopieren", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Sperrprofil umschalten", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Alles auswählen", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Kosmetische Filterung ein-/ausschalten", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Blockiermodus lockern", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Genutzter Speicherplatz: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/el/messages.json ublock-origin-1.42.0+dfsg/src/_locales/el/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/el/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/el/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Σχετικά", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Υποστήριξη", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Προβολή πόρων", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Πηγαίνετε στο αρχείο καταγραφής αιτημάτων", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Αναφέρετε ένα πρόβλημα σε αυτόν τον ιστότοπο", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Παρεμπόδιση αναδυόμενων παραθύρων για αυτόν τον ιστότοπο", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Λειτουργία φιλική προς χρήστες με αχρωματοψία", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Εμφάνιση", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Θέμα", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Προσαρμοσμένο χρώμα έμφασης", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Ενεργοποίηση υποστήριξης cloud storage", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Είμαι προχωρημένος χρήστης (Aπαραίτητη ανάγνωση)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "ρυθμίσεις για προχωρημένους", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Απενεργοποίηση προ-φόρτωσης (για να αποτραπεί κάθε σύνδεση σε αποκλεισμένες αιτήσεις δικτύου)", @@ -383,6 +399,18 @@ "message": "Ξεσκέπασμα/εμφάνιση κανονικών ονομάτων CNAME", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Για προχωρημένους", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Χαρακτηριστικά κατάλληλα μόνο για τεχνικούς χρήστες.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "ρυθμίσεις για προχωρημένους", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Τελευταία ανάκτηση:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

Τα γενικά κοσμητικά φίλτρα είναι εκείνα τα κοσμητικά φίλτρα που εφαρμόζονται σε όλες τις ιστοσελίδες.

Αν και γίνεται αποτελεσματική διαχείρισή τους από το uBlock₀, τα γενικά κοσμητικά φίλτρα ενδέχεται να καταναλώσουν σημαντική μνήμη και να υπερφορτώσουν τη CPU σε μερικές ιστοσελίδες, ειδικά για μεγάλες μακροχρόνιες.

Η ενεργοποίηση αυτής της επιλογής θα εξαλείψει την υπερφόρτωση μνήμης και CPU στις ιστοσελίδες ως αποτέλεσμα της διαχείρισης γενικών κοσμητικών φίλτρων, ενώ ενδέχεται να μειώσει την κατανάλωση μνήμης του ίδιου του uBlock₀.

Προτείνεται η ενεργοποίηση αυτής της επιλογής στις λιγότερο ισχυρές συσκευές.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Αναστολή της δραστηριότητας δικτύου μέχρι να φορτωθούν όλες οι λίστες φίλτρων", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Λίστες αποκλεισμένων hosts", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Η λίστα σας με τα ονόματα κόμβων (host names) στα οποία το uBlock θα είναι απενεργοποιημένο. Μια καταχώρηση ανά γραμμή. Άκυρα ονόματα κόμβων θα παρακάμπτονται σιωπηλά.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Εισαγωγή και προσάρτηση", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Άνοιγμα", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Δημιουργία νέας αναφοράς", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Βρείτε παρόμοιες αναφορές", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Οδηγίες", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Διαβάστε τις οδηγίες στο uBlock/wiki για να μάθετε για όλες τις δυνατότητες του uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Ερωτήσεις και υποστήριξη", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Απαντήσεις σε ερωτήσεις και άλλα είδη υποστήριξης βοήθειας παρέχονται στο subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Προβλήματα φίλτρου/ιστότοπος είναι κατεστραμμένος", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Αναφέρετε προβλήματα φίλτρου με συγκεκριμένους ιστότοπους στο uBlockOrigin/uAssets issue tracker. Απαιτείται λογαριασμός GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Σημαντικό: Αποφύγετε τη χρήση άλλων blocker με παρόμοιο σκοπό μαζί με το uBlock Origin, καθώς αυτό μπορεί να προκαλέσει προβλήματα φιλτραρίσματος σε συγκεκριμένους ιστότοπους.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Συμβουλές: Βεβαιωθείτε ότι οι λίστες φίλτρων σας είναι ενημερωμένες. Ο καταγραφέας είναι το κύριο εργαλείο για τη διάγνωση προβλημάτων που σχετίζονται με το φίλτρο.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Αναφορά σφαλμάτων", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Αναφέρετε προβλήματα με το ίδιο το uBlock Origin στο uBlockOrigin/uBlock-issue issue tracker. Απαιτείται λογαριασμός GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Πληροφορίες αντιμετώπισης προβλημάτων", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Παρακάτω υπάρχουν τεχνικές πληροφορίες που μπορεί να είναι χρήσιμες όταν εθελοντές προσπαθούν να σας βοηθήσουν να λύσετε ένα πρόβλημα.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Σημαντικό: Πιθανώς ιδιωτικές ή ευαίσθητες πληροφορίες αναπροσαρμόζονται από προεπιλογή. Οι αναδιατυπωμένες πληροφορίες ενδέχεται να δυσκολέψουν την επίλυση ενός προβλήματος.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Αναφέρετε ένα πρόβλημα φίλτρου", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Για να αποφύγετε την επιβάρυνση των εθελοντών με διπλές αναφορές, βεβαιωθείτε ότι το ζήτημα δεν έχει ήδη αναφερθεί.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Διεύθυνση της ιστοσελίδας:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Η ιστοσελίδα...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Επιλέξτε μια καταχώρηση --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Εμφανίζει διαφημίσεις ή υπολείμματα διαφημίσεων", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Έχει επικαλύψεις ή άλλες ενοχλήσεις", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Ανιχνεύει το uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Έχει ζητήματα που σχετίζονται με το απόρρητο", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Μη λειτουργικό όταν το uBlock Origin είναι ενεργοποιημένο", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Ανοίγει ανεπιθύμητες καρτέλες ή παράθυρα", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Επισημάνετε την ιστοσελίδα ως “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Πολιτική Απορρήτου", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Αρχείο καταγραφής αλλαγών", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Υποστήριξη", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Ιχνηλάτης ζητημάτων", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Πηγαίος κώδικας (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1075,13 +1215,17 @@ "message": "Αντιγραφή στο πρόχειρο", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Ενεργοποίηση/απενεργοποίηση προφίλ μπλοκαρίσματος", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Επιλογή όλων", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Εναλλαγή διακοσμητικού φιλτραρίσματος", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Χαλάρωση κατάστασης φραγής", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Χώρος σε χρήση: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/en/messages.json ublock-origin-1.42.0+dfsg/src/_locales/en/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/en/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/en/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "About", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Asset viewer", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Open the logger", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Toggle the blocking of all popups for this site", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Block element...", + "message": "Block element…", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Color-blind friendly", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Enable cloud storage support", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "I am an advanced user (required reading)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "advanced settings", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "I am an advanced user", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Disable pre-fetching (to prevent any connection for blocked network requests)", @@ -383,6 +399,18 @@ "message": "Uncloak canonical names", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "advanced settings", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Last restore:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generic cosmetic filters are those cosmetic filters which are meant to apply on all web sites. Enabling this option will eliminate the memory and CPU overhead added to web pages as a result of handling generic cosmetic filters.\n\nIt is recommended to enable this option on less powerful devices.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Import...", + "message": "Import…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Updating...", + "message": "Updating…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -544,7 +576,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Import from file...", + "message": "Import from file…", "description": "" }, "rulesExport": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line. Invalid directives will be silently ignored and commented out.", - "description": "The name of the trusted sites pane." + "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Import and append", @@ -847,6 +879,128 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Create new report", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find similar reports", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, + "aboutPrivacyPolicy": { "message": "Privacy policy", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1009,6 @@ "message": "Changelog", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Support", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Issue tracker", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Source code (GPLv3)", "description": "English: Source code (GPLv3)" @@ -908,11 +1050,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Restore from file...", + "message": "Restore from file…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Reset to default settings...", + "message": "Reset to default settings…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1024,7 +1166,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1194,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Block element in frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Subscribe to filter list…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1217,17 @@ "message": "Copy to clipboard", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Toggle blocking profile", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Select all", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Storage used: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/en_GB/messages.json ublock-origin-1.42.0+dfsg/src/_locales/en_GB/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/en_GB/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/en_GB/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "About", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Asset viewer", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Open the logger", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Toggle the blocking of all pop-ups for this site", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Block element...", + "message": "Block element…", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Colour-blind friendly", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent colour", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Enable cloud storage support", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "I am an advanced user (required reading)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "advanced settings", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "I am an advanced user", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Disable pre-fetching (to prevent any connection for blocked network requests)", @@ -383,6 +399,18 @@ "message": "Uncloak canonical names", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "advanced settings", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Last restore:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generic cosmetic filters are those cosmetic filters which are meant to apply on all web sites. Enabling this option will eliminate the memory and CPU overhead added to web pages as a result of handling generic cosmetic filters.\n\nIt is recommended to enable this option on less powerful devices.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Import...", + "message": "Import…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Updating...", + "message": "Updating…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -544,7 +576,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Import from file...", + "message": "Import from file…", "description": "" }, "rulesExport": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line. Invalid directives will be silently ignored and commented out.", - "description": "The name of the trusted sites pane." + "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Import and append", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Create new report", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find similar reports", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privacy policy", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Changelog", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Support", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Issue tracker", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Source code (GPLv3)", "description": "English: Source code (GPLv3)" @@ -908,11 +1048,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Restore from file...", + "message": "Restore from file…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Reset to default settings...", + "message": "Reset to default settings…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Block element in frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Subscribe to filter list…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Copy to clipboard", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Toggle blocking profile", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Select all", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Storage used: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/eo/messages.json ublock-origin-1.42.0+dfsg/src/_locales/eo/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/eo/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/eo/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Pri", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Subteno", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Montrilo de rimedoj", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Malfermi la protokolilon", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Raporti problemon ĉe ĉi tiu retejo", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Baskuligi la blokadon de ŝprucfenestroj por ĉi tiu retejo", "description": "Tooltip for the no-popups per-site switch" @@ -184,7 +192,7 @@ "description": "Caption for the no-popups per-site switch" }, "popupNoLargeMedia_v2": { - "message": "Large media elements", + "message": "Grandaj aŭdvidaj elementoj", "description": "Caption for the no-large-media per-site switch" }, "popupNoCosmeticFiltering_v2": { @@ -268,11 +276,11 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party scripts", + "message": "↑: Emfazi tiujn vicojn, kiuj enhavas triapartiajn programetojn", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party frames", + "message": "↑: Emfazi tiujn vicojn, kiuj enhavas triapartiajn kadrojn", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { @@ -327,17 +335,25 @@ "message": "Afabla por kolorblinduloj", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Aspekto", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Etoso", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Propra akcenta koloro", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Ŝalti subtenon por nelokdependa konservado", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Mi estas sperta uzanto (Nepra legaĵo)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "altgradaj agordoj", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Mi estas sperta uzanto", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Malŝalti antaŭvenigadon (por preventi ajnan konekton de blokitaj retaj petoj)", @@ -380,9 +396,21 @@ "description": "background information: https://github.com/gorhill/uBlock/issues/3150" }, "settingsUncloakCnamePrompt": { - "message": "Uncloak canonical names", + "message": "Malkaŝi ĉefnomojn", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Altnivelaĵoj", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Funkcioj taŭgaj nur por spertuloj", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "altgradaj agordoj", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Lasta restaŭro:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generic cosmetic filters are those cosmetic filters which are meant to apply on all web sites. Enabling this option will eliminate the memory and CPU overhead added to web pages as a result of handling generic cosmetic filters.\n\nIt is recommended to enable this option on less powerful devices.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -492,7 +524,7 @@ "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { - "message": "A network error prevented the resource from being updated.", + "message": "Reta eraro malhelpis ĝisdatigon de la resurso.", "description": "used as a tooltip for error icon beside a list" }, "1pFormatHint": { @@ -564,11 +596,11 @@ "description": "English: dynamic rule syntax and full documentation." }, "rulesSort": { - "message": "Sort:", + "message": "Ordigi:", "description": "English: label for sort option." }, "rulesSortByType": { - "message": "Rule type", + "message": "Speco de regulo", "description": "English: a sort option for list of rules." }, "rulesSortBySource": { @@ -576,12 +608,12 @@ "description": "English: a sort option for list of rules." }, "rulesSortByDestination": { - "message": "Destination", + "message": "Celo", "description": "English: a sort option for list of rules." }, "whitelistPrompt": { "message": "Via listo de gastignomoj por kiuj uBlock₀ estos malŝaltata. Unu gastignomo por ĉiu linio. Nevalidaj gastignomoj estos ignorataj silente.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importi kaj postaldoni", @@ -636,11 +668,11 @@ "description": "Tooltip for the DOM inspector button in the logger page" }, "loggerPopupPanelTip": { - "message": "Toggle the popup panel", + "message": "Baskuligi la ŝprucpanelon", "description": "Tooltip for the popup panel button in the logger page" }, "loggerInfoTip": { - "message": "uBlock Origin wiki: The logger", + "message": "Dokumentaro de uBlock Origin: la protokolilo", "description": "Tooltip for the top-right info label in the logger page" }, "loggerClearTip": { @@ -648,15 +680,15 @@ "description": "Tooltip for the eraser in the logger page; used to blank the content of the logger" }, "loggerPauseTip": { - "message": "Pause logger (discard all incoming data)", + "message": "Paŭzigi protokolilon (forĵeti ĉiujn envenantajn datenojn)", "description": "Tooltip for the pause button in the logger page" }, "loggerUnpauseTip": { - "message": "Unpause logger", + "message": "Malpaŭzigi protokolilon", "description": "Tooltip for the play button in the logger page" }, "loggerRowFiltererButtonTip": { - "message": "Toggle logger filtering", + "message": "Baskuligi filtradon de protokolilo", "description": "Tooltip for the row filterer button in the logger page" }, "logFilterPrompt": { @@ -664,7 +696,7 @@ "description": "Placeholder string for logger output filtering input field" }, "loggerRowFiltererBuiltinTip": { - "message": "Logger filtering options", + "message": "Opcioj pri filtrado de protokolilo", "description": "Tooltip for the button to bring up logger output filtering options" }, "loggerRowFiltererBuiltinNot": { @@ -684,7 +716,7 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltinModified": { - "message": "modified", + "message": "modifita", "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltin1p": { @@ -847,26 +879,134 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Malfermi", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Krei novan raporton", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Serĉi similajn raportojn", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentaro", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Legu la dokumentaron ĉe uBlock/wiki por lerni ĉiujn funkciojn de uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Demandoj kaj subtenado", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Problemoj pri filtrilo / la retejo misfunkcias", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Raportu problemojn pri specifaj retejoj ĉe la cimspurilo uBlockOrigin/uAssets. Tio postulas konton ĉe GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Raporto pri cimo", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Raportu problemojn pri uBlock Origin mem ĉe la cimspurilo uBlockOrigin/uBlock-issue. Tio postulas konton ĉe GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informoj pri problemsolvado", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Jen teknikaj informoj eble utilaj al tiuj volontuloj, kiuj helpas vin solvi problemon.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Raporti problemon pri filtrado", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Adreso de la retpaĝo:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "La retpaĝo…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Elektu ion --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Montras reklamojn aŭ restaĵojn de reklamoj", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Havas plustavolojn aŭ aliajn ĝenaĵojn", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detektas uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Havas problemojn pri privateco", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Misfunkcias, se uBlock Origin estas ŝaltita ", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Malfermas nedeziratajn langetojn aŭ fenestrojn", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Marki la paĝon kiel «nelabortaŭgan»", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { - "message": "Privacy policy", + "message": "Reguloj pri privateco", "description": "Link to privacy policy on GitHub (English)" }, "aboutChangelog": { "message": "Ŝanĝoprotokolo", "description": "" }, - "aboutWiki": { - "message": "Vikio", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Helpo", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Issue tracker", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Fontkodo (GPLv3)", "description": "English: Source code (GPLv3)" @@ -888,15 +1028,15 @@ "description": "Link text to uBO's own filter lists repo" }, "aboutDependencies": { - "message": "External dependencies (GPLv3-compatible):", + "message": "Eksteraj dependaĵoj (kongruaj kun GPLv3):", "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBO's own filter lists are freely hosted on the following CDNs:", + "message": "La proprajn filtrilojn de uBO gastigas la jenaj enhavo-liverantaj retoj:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "A randomly picked CDN is used when a filter list needs to be updated", + "message": "Kiam filtrilo postulas ĝisdatigon, hazarde elektita enhavo-liveranta reto estas uzata.", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1032,7 +1172,7 @@ "description": "used as a prompt for the user to provide a custom device name" }, "advancedSettingsWarning": { - "message": "Warning! Change these advanced settings at your own risk.", + "message": "Averto! Tiuj altnivelaj opcioj esta eble danĝeraj.", "description": "A warning to users at the top of 'Advanced settings' page" }, "genericSubmit": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Bloki elementon en kadro…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Aboni filtrilon…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1064,24 +1204,28 @@ "description": "A context menu entry, present when large media elements have been blocked on the current site" }, "shortcutCapturePlaceholder": { - "message": "Type a shortcut", + "message": "Tajpu alirklavon", "description": "Placeholder string for input field used to capture a keyboard shortcut" }, "genericMergeViewScrollLock": { - "message": "Toggle locked scrolling", + "message": "Baskuligi ŝlositan rulumadon", "description": "Tooltip for the button used to lock scrolling between the views in the 'My rules' pane" }, "genericCopyToClipboard": { "message": "Kopii al tondujo", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Toggle blocking profile", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Elekti ĉiujn", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Baskuligi ornaman filtradon", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { - "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "message": "Malstriktigi blokadan reĝimon", + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Uzata memoro: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/es/messages.json ublock-origin-1.42.0+dfsg/src/_locales/es/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/es/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/es/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Acerca de", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Soporte", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Visor de recursos", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Ir al registro de peticiones", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Reportar un problema en este sitio web", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Alternar bloqueo de todas las ventanas emergentes en este sitio", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Bloquear elemento...", + "message": "Bloquear elemento…", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Accesible para daltónicos", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Apariencia", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Tema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Tono de color personalizado", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Habilitar almacenamiento en la nube", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Soy usuario avanzado (lectura necesaria)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "configuración avanzada", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Soy usuario avanzado", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Deshabilitar pre-carga de sitios (previene cualquier conexión para peticiones de red bloqueadas)", @@ -383,6 +399,18 @@ "message": "Desvelar nombres canónicos", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Avanzado", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Características aptas solo para usuarios técnicos", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "configuración avanzada", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Última restauración:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Los filtros cosméticos genéricos son aquellos filtros cosméticos que se aplican a todos los sitios web. Al habilitar esta opción se elimina el riesgo de sobrecarga a la CPU y exceso de uso de la memoria que resulta del procesamiento de los filtros cosméticos genéricos.\n\nSe recomienda habilitar esta opción en dispositivos poco potentes.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspender actividad de la red hasta que todas las listas de filtros estén cargadas", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lista de dominios bloqueados", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Importar...", + "message": "Importar…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Actualizando...", + "message": "Actualizando…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -544,11 +576,11 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Importar desde archivo...", + "message": "Importar desde archivo…", "description": "" }, "rulesExport": { - "message": "Exportar a archivo...", + "message": "Exportar a archivo…", "description": "" }, "rulesDefaultFileName": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "Sitios de confianza para los cuales se deshabilitará uBlock Origin. Una entrada por línea. Las entradas no válidas serán ignoradas.", - "description": "The name of the trusted sites pane." + "message": "Sitios de confianza para los cuales se deshabilitará uBlock Origin. Una entrada por línea.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importar y anexar", @@ -847,6 +879,126 @@ "message": "Formato markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Abrir", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Crear nuevo reporte", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Encontrar reportes similares", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentación", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Lee la documentación en uBlock/wiki para aprender sobre todas las características de uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Preguntas y soporte", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Respuestas a preguntas y otros tipos de ayuda se proporcionan en el sub-reddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Problemas de filtros/sitio web roto", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Reportar problemas de filtros con sitios web específicos en el registro de problemas uBlockOrigin/uAssets. Requiere una cuenta en GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Importante: evita utilizar otros bloqueadores con propósito similar junto con uBlock Origin, ya que esto puede causar problemas de filtros en sitios web específicos.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Consejos: asegúrate de que tus listas de filtros estén actualizadas. El registro de peticiones es la principal herramienta para diagnosticar problemas relacionados con los filtros.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Reportar error", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Reportar problemas con uBlock Origin en el registro de problemas uBlockOrigin/uBlock-issue. Requiere una cuenta en GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Información para solucionar problemas", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "A continuación encontrarás información técnica que puede ser útil cuando los voluntarios intenten ayudarte a resolver un problema.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Importante: la información potencialmente privada o sensible se redacta de forma predeterminada. La información redactada puede dificultar la resolución de un problema.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Reportar un problema de filtro", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Para evitar sobrecargar a voluntarios con reportes duplicados, verifica que el problema no haya sido reportado.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Dirección de la página web:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "La página web…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Elige una entrada --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Muestra anuncios o restos de anuncios", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Tiene superposiciones u otras molestias", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detecta uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Tiene problemas relacionados con la privacidad", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Se rompe cuando uBlock Origin está habilitado", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Abre pestañas o ventanas no deseadas", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Etiquetar la página web como “NSFW” (“no es seguro/apropiado para el trabajo”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redactar", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Sin redactar", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Política de privacidad", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Registro de cambios", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Soporte", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Registro de problemas", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Código fuente (GPLv3)", "description": "English: Source code (GPLv3)" @@ -900,7 +1040,7 @@ "description": "Shown in the About pane" }, "aboutBackupDataButton": { - "message": "Respaldar en archivo...", + "message": "Respaldar en archivo…", "description": "Text for button to create a backup of all settings" }, "aboutBackupFilename": { @@ -908,11 +1048,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Restaurar desde archivo...", + "message": "Restaurar desde archivo…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Restablecer ajustes predeterminados...", + "message": "Restablecer ajustes predeterminados…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Bloquear elemento en frame...", + "message": "Bloquear elemento en frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Suscribirse a lista de filtros...", + "message": "Suscribirse a lista de filtros…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Copiar al portapapeles", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Alternar perfil de bloqueo", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Seleccionar todo", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Alternar filtrado cosmético", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Modo de bloqueo relajado", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Almacenamiento usado: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/et/messages.json ublock-origin-1.42.0+dfsg/src/_locales/et/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/et/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/et/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Teave", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Tugi", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — vara vaatur", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Ava logija", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Teavita selle veebilehe probleemist", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Keela hüpikaknad sellel saidil", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Värvipimeduse-sõbralik", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Välimus", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Teema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Kohandatud rõhuvärv", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Luba pilves hoiustamise tugi", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Olen kogenud kasutaja (Vajalik lugemus)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "täpsemad seaded", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Olen kogenud kasutaja", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Keela eellaadimine (et vältida ühendusi blokeeritud võrgutaotlustele)", @@ -383,6 +399,18 @@ "message": "Kanooniliste nimede tuvastamine", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Täpsemad", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Funktsioonid, mis on sobilikud vaid tehnikas pädevatele kasutajatele.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "täpsemad seaded", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Viimane taastus:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Üldised ilufiltrid on need ilufiltrid, mis töötavad kõikidel veebisaitidel. Selle valiku lubamine vähendab veebisaitidel üldiste ilufiltrite kasutamisest tulenevat mälu ja protsessori koormust.\n\nSelle valiku lubamine on soovitatav vähem võimekates seadmetes.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Peata võrguliiklus kõikide filtriloendite laadimiseni", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Blokeeritud domeenide loendid", "description": "English: Lists of blocked hosts" @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "Usaldatud saitide direktiivid määravad, millistel veebilehtedel peaks uBlock Origin keelatud olema. Üks kirje rea kohta. Sobimatuid direktiive vaikselt ignoreeritakse ja kommenteeritakse välja.", - "description": "The name of the trusted sites pane." + "message": "Usaldatud saitide direktiivid määravad, millistel veebilehtedel peaks uBlock Origin keelatud olema. Üks kirje rea kohta.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Impordi ja lisa", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Ava", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Loo uus aruanne", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Leia sarnaseid aruandeid", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumendid", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Loe dokumente kohas uBlock/wiki, et avastada kõik uBlock Origini võimalusi.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Küsimused ja tugi", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Vastused küsimustele ja muud sorti kliendituge pakutakse subredditis /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filtrivead/veebileht on katki", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Teata kindlate veebilehtede filtrivigadest uBlockOrigin/uAssets veahalduris. Nõuab GitHubi kontot.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Oluline: väldi teiste sarnaselt toimivate blokeerijate kasutamist koos uBlock Originiga, see võib põhjustada teatud lehtedel filtrivigu.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Nõuanne: veendu, et filtrinimekirjad on ajakohased. Logija on peamine tööriist filtritega seotud vigade diagnoosimiseks.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Veast teatamine", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Teata uBlock Origini vigadest uBlockOrigin/uBlock-issue veahalduris. Nõuab GitHubi kontot.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Tõrkeotsingu teave", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Allpool on tehniline info, mis võib olla kasulik, kui vabatahtlikud aitavad sul probleemi lahendada.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Oluline: potentsiaalselt privaatne või tundlik info on vaikimisi kaetud. Kaetud info võib probleemi lahendamist raskendada.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Teavita filtri veast", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Vabatahtlike koormuse vähendamiseks veendu, et probleemi pole juba teatatud.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Veebilehe aadress:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Veebileht...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Vali kirje --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Kuvab reklaame või reklaami kohatäitjaid", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Omab ülekatteid või teisi nuhtlusi", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Tuvastab uBlock Origini", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Omab privaatsusega seonduvaid probleeme", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Läheb uBlock Origini olemasolul katki", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Avab soovimatuid kaarte või aknaid", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Sildista veebileht kui „NSFW“ (“tööks sobimatu”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Kata info", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Ära kata infot", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privaatsusteatis", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Muudatuste logi", "description": "" }, - "aboutWiki": { - "message": "Viki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Tugi", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Vigade loend", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Lähtekood (GPLv3)", "description": "English: Source code (GPLv3)" @@ -912,7 +1052,7 @@ "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Taasta vaikeseadetele...", + "message": "Alusta nullist...", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1075,13 +1215,17 @@ "message": "Kopeeri lõikelauale", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Lülita blokeerimisprofiili", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Vali kõik", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Lülita kosmeetilist filtreerimist", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Rahulik blokeerimisrežiim", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Mahtu kasutatud: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/eu/messages.json ublock-origin-1.42.0+dfsg/src/_locales/eu/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/eu/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/eu/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Honi buruz", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Laguntza", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Aktibo-ikuslea", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Ireki egunkaria", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Webgune honetan arazo baten berri eman", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Txandakatu laster-leihoen blokeoa gune honetan", "description": "Tooltip for the no-popups per-site switch" @@ -268,11 +276,11 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party scripts", + "message": "↑: Garrantzia eman hirugarrenen scriptak dituzten lerroei", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party frames", + "message": "↑: Garrantzia eman hirugarrenen markoak dituzten lerroei", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { @@ -327,17 +335,25 @@ "message": "Kolore-itsuentzat egokia", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Itxura", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Azala", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Azentu-kolore pertsonalizatua", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Gaitu hodei biltegiratzearen euskarria", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Erabiltzaile aurreratua naiz (Irakurri beharrekoa)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "ezarpen aurreratuak", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Desgaitu aurrez-kargatzea (blokeatutako sare eskaeretako edozein konexio galarazteko)", @@ -380,9 +396,21 @@ "description": "background information: https://github.com/gorhill/uBlock/issues/3150" }, "settingsUncloakCnamePrompt": { - "message": "Uncloak canonical names", + "message": "Erakutsi izen kanonikoak", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Aurreratua", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Erabiltzaile teknikoentzat soilik egokiak diren funtzioak", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "ezarpen aurreratuak", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Azken berreskuratzea:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

Iragazki kosmetiko orokorrak webgune guztietan aplikatzeko sortu diren iragazki kosmetikoak dira.

uBlock₀ aplikazioak ongi kudeatzen baditu ere iragazki kosmetiko orokorrek wegune batzuetan memoria edo PUZ erabilera nabarmena ekar dezakete handiak eta antzinakoak diren horietan gehienbat.

Aukera hau gaituz iragazki kosmetiko orokorren erabileraren ondoriozko memoria eta PUZ erabilera gehigarria sahiestuko da, eta baita uBlock₀ beraren memoria erabilera gutxiagotu.

Ahalmen gutxiagoko gailuetan aukera hau gaitzea aholkatzen da.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Eten sarearen jarduera iragazki-zerrenda guztiak kargatuta egon arte", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Zerrenda zuriaren direktibek uBlock zeintzu web orrietan desgaituko den zehazten dute. Sarrera bat lerroko. Baliogabeko ostalari izenak ezikusiko dira.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Inportatu eta gehitu", @@ -847,26 +879,134 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Ireki", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Txosten berri bat sortu", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Antzeko txostenak aurkitu", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentazioa", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Irakurri dokumentazioa uBlock/wiki helbidean, uBlock Originen funtzio guztiak ezagutzeko.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Galderak eta laguntza", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "/r/uBlockOrigin azpidian galderen erantzunak eta beste laguntza mota batzuk eskaintzen dira.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Arazoak iragazkiekin/webguneak ez du funtzionatzen", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Web-gune espezifikoekin iragazteko arazoak jakinaraz iezaguzu hemen: uBlockOrigin/uAssets issue tracker. GitHub kontu bat behar da", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Kontuan izan: Ez erabili antzeko helburua duten beste blokeatzaile batzuk uBlock Originekin batera, horrek arazoak sor baititzake webgune espezifikoetan iragazteko.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Aholkuak Ziurtatu zure iragazki-zerrendak eguneratuta daudela. Erregistratzailea da iragazkiekin lotutako arazoak diagnostikatzeko tresna nagusia.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Errore-txostena", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Arazoak jakinarazi uBlock Originekin arazoen erregistroan uBlockOrigin/uBlock-issueissue tracker. GitHub kontua beharrezkoa da.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Arazoen konponbideari buruzko informazioa", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Jarraian, boluntarioek arazo bat konpontzen laguntzen saiatzen direnean baliagarria izan daitekeen informazio teknikoa aurkituko duzu.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Garrantzitsua: Pribatua edo sentikorra izan daitekeen informazioa modu lehenetsian idazten da. Idatzitako informazioak arazo bat konpontzea zaildu dezake.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Iragazkiko arazo baten berri eman", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Txosten bikoiztuak dituzten boluntarioak ez gainkargatzeko, mesedez egiaztatu arazoa ez dela jakinarazi.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Web orriaren helbidea:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Webgunea...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Aukeratu sarrera bat --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Iragarkiak edo iragarkien hondarrak erakusten ditu", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Gainjartzeak edo bestelako eragozpenak ditu", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "uBlock Origin detektatzen du", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Pribatutasun-arazoak ditu", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Funtzionamendu-akatsak uBlock Origin aktibatuta dagoenean", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Ireki nahi ez diren erlaitzak edo leihoak", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Web orria «NSFW» moduan jarri (“Not Safe For Work” )", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Erredaktatu", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Desegin erredakzioa", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { - "message": "Privacy policy", + "message": "Pribatutasun politika", "description": "Link to privacy policy on GitHub (English)" }, "aboutChangelog": { "message": "Aldaketa egunkaria", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Laguntza", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Akats datu-basea", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Iturburu kodea (GPLv3)", "description": "English: Source code (GPLv3)" @@ -892,11 +1032,11 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBO's own filter lists are freely hosted on the following CDNs:", + "message": "uBOren iragazki zerrendan CDN hauetan daude:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "A randomly picked CDN is used when a filter list needs to be updated", + "message": "Ausaz aukeratutako CDN bat erabiltzen da iragazki zerrenda bat eguneratu behar denean", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1056,7 +1196,7 @@ "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Harpidetu iragazki zerrenda batera...", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Kopiatu arbelera", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Txandakatu blokeatze profila", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Hautatu dena", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Iragazte kosmetikoa txandakatu", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Baretu blokeatze-modua", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Erabilitako biltegiratzea: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/fa/messages.json ublock-origin-1.42.0+dfsg/src/_locales/fa/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/fa/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/fa/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "در باره", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "پشتیبانی", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — نماینگر دارایی", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "بازکردن واقعه‌نگار", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "گزارش یک اشکال در خصوص این وبسایت", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "تغییر وضعیت انسداد همه‌ی پنجره های بالاپَر برای این سایت", "description": "Tooltip for the no-popups per-site switch" @@ -272,7 +280,7 @@ "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party frames", + "message": "↑: تاکید بر ردیف‌هایی که فریم‌های خارجی (3rd-party) دارند", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "بلاک کردن این اِلمان‌", + "message": "بلاک کردن این بخش", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "بهینه سازی کور رنگی", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "ظاهر", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "پوسته", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "رنگ اصلی دلخواه", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "فعال سازی پشتیبانی ذخیره سازی ابری", "description": "" }, "settingsAdvancedUserPrompt": { "message": "من کاربر حرفه ای هستم (لازم است بخوانید)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "تنظیمات پیشرفته", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "غیر فعال کردن واکشی اولیه (برای جلوگیری از هر گونه اتصال برای درخواست های مسدود شدۀ شبکه)", @@ -383,6 +399,18 @@ "message": "اسامی متعارف را از حالت قفل خارج کنید", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "پیشرفته", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "قابلیت‌های مناسب برای کاربران فنی", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "تنظیمات پیشرفته", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "آخرین بازیابی:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

فیلترهای زیبا سازی عمومی، آن دسته از فیلترهای زیبا سازی هستند که در همه وب سایت ها کاربرد دارند.\n

اگر چه بصورت موثر توسط uBlock₀ انجام شده، ولی فیلترهای عمومی زیبا سازی هنوز هم ممکن است سربار حافظه قابل اندازه گیری و سربار پردازنده در برخی از صفحات وب به جای بگذارد، به ویژه برای صفحات وب بزرگ و طولانی مدت.

فعال کردن این گزینه سربارهای حافظه و پردازنده را که به صفحات اضافه شده به عنوان نتیجۀ اجرای فیلترهای عمومی زیبا سازی برطرف می‌کند، و همچنین ردپای حافظۀ خود uBlock₀ را کمتر می‌کند

توصیه می شود این گزینه را در دستگاه های با قدرت کمتر فعال کنید.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "تا وقتی همه‌ی فیلترها لود نشده‌اند ارتباط شبکه را قطع کن", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "فهرست میزبان های مسدود شده", "description": "English: Lists of blocked hosts" @@ -436,7 +468,7 @@ "description": "English: Apply changes" }, "3pGroupDefault": { - "message": "محلی", + "message": "داخلی", "description": "Header for the uBlock filters section in 'Filter lists pane'" }, "3pGroupAds": { @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "واردات...", + "message": "وارد شده", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "دستور العمل‌های لیست سفید حکم می‌کند که uBlock₀ باید بر روی کدام یک از صفحات وب غیر فعال باشد. در هر خط فقط یک مورد. دستور العمل‌های نامعتبر بدون اشاره ای نادیده گرفته شده و بیرون انداخته می‌شوند.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "وارد کردن و الحاق", @@ -660,7 +692,7 @@ "description": "Tooltip for the row filterer button in the logger page" }, "logFilterPrompt": { - "message": "فیلتر کردن مطالب لاگ", + "message": "فیلتر کردن محتوای لاگ", "description": "Placeholder string for logger output filtering input field" }, "loggerRowFiltererBuiltinTip": { @@ -847,6 +879,126 @@ "message": "مارک‌داون", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "باز کردن", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "ایجاد گزارش جدید", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "یافتن گزارش‌های مشابه", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "مستندات", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "مستنداتی که در uBlock/wiki هست را بخوانید تا با تمام امکانات uBlock Origin آشنا شوید.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "سوال‌ها و پشتیبانی", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "پاسخ به سوالات و انواع راهنمایی‌ها در ساب‌ردیت /r/uBlockOrigin ارائه می‌شود.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "مشکل فیلترها/وبسایتی ایراد دارد", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "مهم: از مسدودکننده‌های مشابه دیگر در کنار یوبلاک اوریجین استفاده نکنید. این کار ممکن است باعث ایجاد مشکل در فیلترها برای برخی سایت‌ها شود.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "گزارش اشکال", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "اطلاعات مشکل‌گشایی", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "در زیر اطلاعات فنی آمده که ممکن است برای داوطلبانی که می‌خواهند در حل یک مشکل کمک کنند مفید باشد.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "مهم: اطلاعات شخصی یا حساس به طور پیشفرض ویرایش و مبهم می‌شوند. اطلاعات مبهم‌شده ممکن است حل مشکل را سخت‌تر کند.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "گزارش یک اشکال در فیلتر", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "برای این که وقت داوطلبان با گزارش‌های تکراری گرفته نشوند، لطفا مطمئن شوید که این اشکال قبلا گزارش نشده باشد.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "آدرس صفحه‌ی وب:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "این صفحه‌ی وب...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- یک گزینه را انتخاب کنید --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "تبلیغات یا باقی‌مانده‌هایی از آن نشان می‌دهد", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "یوبلاک اوریجین را تشخیص می‌دهد", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "دارای ایراد مربوط به حریم خصوصی است", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "وقتی یوبلاک اوریجین فعال است عملکرد درستی ندارد", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "تب یا پنجره‌ی ناخواسته باز می‌کند", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "علامت زدن صفحه به عنوان \"NSFW\" (\"نامناسب برای کار\")", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "قوانین حریم خصوصی", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "تغییرات اخیر", "description": "" }, - "aboutWiki": { - "message": "ویکی", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "پشتیبانی", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "دنبال‌کننده‌ی ایرادات", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "سورس کد (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1075,13 +1215,17 @@ "message": "کپی به کلیپ‌بورد", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "تغییروضعیت نمایه‌ی بلاک‌کردن", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "انتخاب همه", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "حالت بلاک‌کردن غیرسخت‌گیر", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "فضای مصرفی: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/fi/messages.json ublock-origin-1.42.0+dfsg/src/_locales/fi/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/fi/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/fi/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -4,7 +4,7 @@ "description": "extension name." }, "extShortDesc": { - "message": "Viimeinkin tehokas ja kevyt mainosten estäjä.", + "message": "Viimeinkin tehokas estotyökalu, joka ei kuormita prosessoria ja muistia.", "description": "this will be in the Chrome web store: must be 132 characters or less" }, "dashboardName": { @@ -12,11 +12,11 @@ "description": "English: uBlock₀ — Dashboard" }, "dashboardUnsavedWarning": { - "message": "Varoitus! Sinulla on tallentamattomia muutoksia", + "message": "Varoitus! Olet tehnyt muutoksia, joita ei ole vielä tallennettu", "description": "A warning in the dashboard when navigating away from unsaved changes" }, "dashboardUnsavedWarningStay": { - "message": "Pysy", + "message": "Älä poistu", "description": "Label for button to prevent navigating away from unsaved changes" }, "dashboardUnsavedWarningIgnore": { @@ -32,7 +32,7 @@ "description": "appears as tab name in dashboard" }, "1pPageName": { - "message": "Minun suodattimet", + "message": "Omat suodattimet", "description": "appears as tab name in dashboard" }, "rulesPageName": { @@ -48,15 +48,19 @@ "description": "appears as tab name in dashboard" }, "statsPageName": { - "message": "uBlock₀ — Verkkopyyntöjen loki", + "message": "uBlock₀ — Pyyntöhistoria", "description": "Title for the logger window" }, "aboutPageName": { "message": "Tietoja", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Tuki", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { - "message": "uBlock₀ — Elementtien valitsin", + "message": "uBlock₀ — Resurssien katselu", "description": "Title for the asset viewer page" }, "advancedSettingsPageName": { @@ -64,15 +68,15 @@ "description": "Title for the advanced settings page" }, "popupPowerSwitchInfo": { - "message": "Painallus: poista käytöstä/ota käyttöön uBlock₀ tällä sivustolla.\n\nCtrl+painallus: poista uBlock₀ käytöstä vain tällä sivulla.", + "message": "Painallus: Poista uBlock₀ käytöstä/ota se käyttöön tällä sivustolla.\n\nCtrl+painallus: poista uBlock₀ käytöstä vain tällä sivulla.", "description": "English: Click: disable/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page." }, "popupPowerSwitchInfo1": { - "message": "Klikkaa poistaaksesi uBlock₀:n käytöstä tällä sivustolla.\n\nCtrl+klikkaus poistaaksesi uBlock₀:n käytöstä vain tällä sivulla.", + "message": "Painallus poistaa uBlock₀;n käytöstä tällä sivustolla.\n\nCtrl+painallus poistaa uBlock₀:n käytöstä vain tällä sivulla.", "description": "Message to be read by screen readers" }, "popupPowerSwitchInfo2": { - "message": "Klikkaa ottaaksesi uBlock₀:n käyttöön tällä sivustolla.", + "message": "Paina ottaaksesi uBlock₀:n käyttöön tällä sivustolla.", "description": "Message to be read by screen readers" }, "popupBlockedRequestPrompt": { @@ -84,7 +88,7 @@ "description": "English: on this page" }, "popupBlockedStats": { - "message": "{{count}} tai {{percent}}%", + "message": "{{count}} ({{percent}}%)", "description": "Example: 15 (13%)" }, "popupBlockedSinceInstallPrompt": { @@ -104,7 +108,7 @@ "description": "For the new mobile-friendly popup design" }, "popupDomainsConnected_v2": { - "message": "Yhdistetyt verkkotunnukset", + "message": "Verkkotunnuksia yhdistetty", "description": "For the new mobile-friendly popup design" }, "popupTipDashboard": { @@ -112,71 +116,75 @@ "description": "English: Click to open the dashboard" }, "popupTipZapper": { - "message": "Siirry elementtien hävitystilaan", + "message": "Avaa elementin piilotustila", "description": "Tooltip for the element-zapper icon in the popup panel" }, "popupTipPicker": { - "message": "Siirry elementtien valintaan", + "message": "Avaa elementtien valintatila", "description": "English: Enter element picker mode" }, "popupTipLog": { - "message": "Näytä pyyntöjen loki", + "message": "Näytä pyyntöhistoria", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Ilmoita ongelmasta tällä verkkosivustolla", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { - "message": "Kytke ponnahdusten esto tälle sivustolle", + "message": "Muuta ponnahduseston tilaa tällä sivustolla", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups1": { - "message": "Klikkaa estääksesi kaikki ponnahdukset tällä sivustolla", + "message": "Paina estääksesi kaikki ponnahdukset tällä sivustolla", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups2": { - "message": "Klikkaa salliaksesi kaikki ponnahdukset tällä sivustolla", + "message": "Paina salliaksesi kaikki ponnahdukset tällä sivustolla", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoLargeMedia": { - "message": "Kytke suurten mediaelementtien esto tälle sivustolle", + "message": "Muuta suurten mediaelementtien eston tilaa tällä sivustolla", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia1": { - "message": "Klikkaa estääksesi suuret mediaelementit tällä sivustolla", + "message": "Paina estääksesi suuret mediaelementit tällä sivustolla", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia2": { - "message": "Klikkaa salliaksesi suuret mediaelementit tällä sivustolla", + "message": "Paina salliaksesi suuret mediaelementit tällä sivustolla", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoCosmeticFiltering": { - "message": "Aktivoi kosmeettinen suodatus tälle sivulle", + "message": "Muuta kosmeettisen suodatuksen tilaa tällä sivustolla", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering1": { - "message": "Klikkaa poistaaksesi kosmeettisen suodatuksen käytöstä tällä sivustolla", + "message": "Paina poistaaksesi kosmeettisen suodatuksen käytöstä tällä sivustolla", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering2": { - "message": "Klikkaa käyttääksesi kosmeettista suodatusta tällä sivustolla", + "message": "Paina käyttääksesi kosmeettista suodatusta tällä sivustolla", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoRemoteFonts": { - "message": "Estä kirjasinten etälataus tällä sivulla", + "message": "Muuta ulkoisten fonttien lataustilaa tällä sivustolla", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts1": { - "message": "Klikkaa estääksesi kirjasinten etälatauksen tällä sivustolla", + "message": "Paina estääksesi ulkoisten fonttien latauksen tällä sivustolla", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts2": { - "message": "Klikkaa salliaksesi kirjasinten etälatauksen tällä sivustolla", + "message": "Paina salliaksesi ulkoisten fonttien latauksen tällä sivustolla", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoScripting1": { - "message": "Klikkaa poistaaksesi JavaScriptin käytöstä tällä sivulla", + "message": "Paina estääksesi JavaScriptin tällä sivustolla", "description": "Tooltip for the no-scripting per-site switch" }, "popupTipNoScripting2": { - "message": "Klikkaa salliaksesi JavaScriptin tällä sivulla", + "message": "Paina salliaksesi JavaScriptin tällä sivustolla", "description": "Tooltip for the no-scripting per-site switch" }, "popupNoPopups_v2": { @@ -192,7 +200,7 @@ "description": "Caption for the no-cosmetic-filtering per-site switch" }, "popupNoRemoteFonts_v2": { - "message": "Etäladattavat kirjasimet", + "message": "Ulkoiset fontit", "description": "Caption for the no-remote-fonts per-site switch" }, "popupNoScripting_v2": { @@ -200,7 +208,7 @@ "description": "Caption for the no-scripting per-site switch" }, "popupMoreButton_v2": { - "message": "Lisää", + "message": "Enemmän", "description": "Label to be used to show popup panel sections" }, "popupLessButton_v2": { @@ -208,19 +216,19 @@ "description": "Label to be used to hide popup panel sections" }, "popupTipGlobalRules": { - "message": "Yleiset säännöt: tämä sarake on säännöille, joita käytetään kaikille sivustoille.", + "message": "Yleiset säännöt: sarake säännöille, joita käytetään kaikilla sivustoilla.", "description": "Tooltip when hovering the top-most cell of the global-rules column." }, "popupTipLocalRules": { - "message": "Paikalliset säännöt: tämä sarake on säännöille, joita käytetään vain nykyiselle sivustolle.\nPaikalliset säännöt ohittavat yleiset säännöt.", + "message": "Paikalliset säännöt: sarake säännöille, joita käytetään vain nykyisellä sivustolla.\nPaikalliset säännöt ohittavat yleiset säännöt.", "description": "Tooltip when hovering the top-most cell of the local-rules column." }, "popupTipSaveRules": { - "message": "Klikkaa tehdäksesi muutoksistasi pysyvät.", + "message": "Paina tehdäksesi muutoksistasi pysyviä.", "description": "Tooltip when hovering over the padlock in the dynamic filtering pane." }, "popupTipRevertRules": { - "message": "Klikkaa kumotaksesi muutoksesi.", + "message": "Paina kumotaksesi muutoksesi.", "description": "Tooltip when hovering over the eraser in the dynamic filtering pane." }, "popupAnyRulePrompt": { @@ -240,23 +248,23 @@ "description": "" }, "popupInlineScriptRulePrompt": { - "message": "upotetut skriptit", + "message": "upotetut komentosarjat", "description": "" }, "popup1pScriptRulePrompt": { - "message": "1:sen osapuolen skriptit", + "message": "1. osapuolen komentosarjat", "description": "" }, "popup3pScriptRulePrompt": { - "message": "3:nen osapuolen skriptit", + "message": "3. osapuolen komentosarjat", "description": "" }, "popup3pFrameRulePrompt": { - "message": "3:nen osapuolen kehykset", + "message": "3. osapuolen kehykset", "description": "" }, "popupHitDomainCountPrompt": { - "message": "yhdistetyt verkkotunnukset", + "message": "verkkotunnuksia yhdistetty", "description": "appears in popup" }, "popupHitDomainCount": { @@ -268,7 +276,7 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: Korosta rivit, joilla on kolmannen osapuolen skriptejä", + "message": "↑: Korosta rivit, joilla on kolmannen osapuolen komentosarjoja", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { @@ -304,55 +312,63 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Estä elementti...", + "message": "Estä elementti…", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { - "message": "Piilota estettyjen elementtien paikanpitäjät", + "message": "Piilota estettyjen elementtien paikkamerkit", "description": "English: Hide placeholders of blocked elements" }, "settingsIconBadgePrompt": { - "message": "Näytä estetyt pyynnöt työkalupalkin kuvakkeessa", + "message": "Näytä estettyjen pyyntöjen määrä työkalupalkin kuvakkeessa", "description": "English: Show the number of blocked requests on the icon" }, "settingsTooltipsPrompt": { - "message": "Poista työkaluvihjeet käytöstä", + "message": "Älä näytä työkaluvihjeitä", "description": "A checkbox in the Settings pane" }, "settingsContextMenuPrompt": { - "message": "Käytä pikavalikkoa, kun mahdollista", + "message": "Käytä kontekstivalikkoa tarvittaessa", "description": "English: Make use of context menu where appropriate" }, "settingsColorBlindPrompt": { "message": "Värisokeille sopiva tila", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Ulkoasu", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Teema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Oma korostusväri", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Käytä pilvitallennusta", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Olen edistynyt käyttäjä (Lue tämä)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "lisäasetukset", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Olen edistynyt käyttäjä", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { - "message": "Poista esihaku käytöstä (estääksesi kaikki yhteydet estettyyn sisältöön)", + "message": "Älä käytä esihakua (estää kaikki yhteydet estetyiltä verkkopyynnöiltä)", "description": "English: " }, "settingsHyperlinkAuditingDisabledPrompt": { - "message": "Poista linkkien tarkastus käytöstä", + "message": "Älä salli hyperlinkkien käytönseurantaa", "description": "English: " }, "settingsWebRTCIPAddressHiddenPrompt": { - "message": "Estä WebRTC:tä vuotamasta paikallista IP-osoitetta", + "message": "Estä paikallisen IP-osoitteen vuoto WebRTC:n välityksellä", "description": "English: " }, "settingPerSiteSwitchGroup": { - "message": "Oletuskäytäntö", + "message": "Oletuskäytännöt", "description": "" }, "settingPerSiteSwitchGroupSynopsis": { @@ -360,7 +376,7 @@ "description": "" }, "settingsNoCosmeticFilteringPrompt": { - "message": "Poista kosmeettinen suodatus käytöstä", + "message": "Älä käytä kosmeetista suodatusta", "description": "" }, "settingsNoLargeMediaPrompt": { @@ -368,7 +384,7 @@ "description": "" }, "settingsNoRemoteFontsPrompt": { - "message": "Estä etäladattavat kirjasimet", + "message": "Estä ulkoisten fonttien lataus", "description": "" }, "settingsNoScriptingPrompt": { @@ -380,9 +396,21 @@ "description": "background information: https://github.com/gorhill/uBlock/issues/3150" }, "settingsUncloakCnamePrompt": { - "message": "Paljasta kanoniset nimet", + "message": "Paljasta kanoniset nimet (CNAME-uncloaking)", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Lisäasetukset", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Teknisille käyttäjille sopivat ominaisuudet", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "Lisäasetukset", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Viimeisin palautus:", "description": "English: Last restore:" @@ -392,51 +420,55 @@ "description": "English: Last backup:" }, "3pListsOfBlockedHostsPrompt": { - "message": "{{netFilterCount}} verkkosuodatinta ja {{cosmeticFilterCount}} kosmeettista suodatinta lähteestä:", + "message": "{{netFilterCount}} verkkosuodatinta + {{cosmeticFilterCount}} kosmeettista suodatinta:", "description": "Appears at the top of the _3rd-party filters_ pane" }, "3pListsOfBlockedHostsPerListStats": { - "message": "käytetty {{used}}/{{total}}", + "message": "Käytössä {{used}}/{{total}}", "description": "Appears aside each filter list in the _3rd-party filters_ pane" }, "3pAutoUpdatePrompt1": { - "message": "Päivitä suodatinlista automaattisesti.", + "message": "Päivitä suodatinlistat automaattisesti", "description": "A checkbox in the _3rd-party filters_ pane" }, "3pUpdateNow": { - "message": "Päivitä", + "message": "Päivitä nyt", "description": "A button in the in the _3rd-party filters_ pane" }, "3pPurgeAll": { - "message": "Tyhjennä välimuisti", + "message": "Tyhjennä kaikki välimuistit", "description": "A button in the in the _3rd-party filters_ pane" }, "3pParseAllABPHideFiltersPrompt1": { - "message": "Jäsennä ja pakota kosmeettiset suodattimet käyttöön.", + "message": "Jäsennä ja pakota kosmeettiset suodattimet", "description": "English: Parse and enforce Adblock+ element hiding filters." }, "3pParseAllABPHideFiltersInfo": { - "message": "Kosmeettisten suodattimien tehtävä on piilottaa sivujen elementtejä, jotka on luokiteltu visuaalisiksi ärsykkeiksi ja joiden esto ei ole mahdollista yhteyden estoon perustuvien suodatusjärjestelmien avulla.", + "message": "Kosmeettisten suodattimien tehtävä on piilottaa sivujen elementtejä, jotka on luokiteltu visuaalisiksi ärsykkeiksi ja joiden esto ei ole mahdollista verkkopyyntöjen estoon perustuvien suodatusmoottoreiden avulla.", "description": "Describes the purpose of the 'Parse and enforce cosmetic filters' feature." }, "3pIgnoreGenericCosmeticFilters": { - "message": "Älä huomioi kosmeettisia yleissuodattimia", + "message": "Ohita kosmeettiset yleissuodattimet", "description": "This will cause uBO to ignore all generic cosmetic filters." }, "3pIgnoreGenericCosmeticFiltersInfo": { - "message": "Kosmeettiset yleissuodattimet ovat kosmeettisista suodattimista niitä, jotka on tarkoitettu käytettäväksi kaikilla verkkosivuilla. Tämä asetus poistaa näiden suodattimien aiheuttaman korkeamman keskusmuistin ja suorittimen kuormituksen.\n\nAsetuksen käyttö on suositeltavaa heikkotehoisissa laitteissa.", + "message": "Kosmeettiset yleissuodattimet ovat sellaisia kosmeettisia suodattimia, jotka on tarkoitettu käytettäväksi kaikilla verkkosivustoilla. Tämä asetus poistaa tällaisten suodattimien käsittelystä verkkosivuille aiheutuvan, korkeamman keskusmuistin ja suorittimen kuormituksen.\n\nAsetuksen käyttö on suositeltavaa heikkotehoisilla laitteilla.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Keskeytä verkon toiminta, kunnes kaikki suodatinlistat on ladattu", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { - "message": "Lista estetyistä isännistä", + "message": "Luettelo estetyistä osoitteista", "description": "English: Lists of blocked hosts" }, "3pApplyChanges": { - "message": "Vahvista muutokset", + "message": "Käytä muutoksia", "description": "English: Apply changes" }, "3pGroupDefault": { - "message": "Sisäänrakennettu", + "message": "Laajennukseen sisältyvät", "description": "Header for the uBlock filters section in 'Filter lists pane'" }, "3pGroupAds": { @@ -448,15 +480,15 @@ "description": "English: Privacy" }, "3pGroupMalware": { - "message": "Malware domains", + "message": "Haittaohjelmia jakelevat verkkotunnukset", "description": "English: Malware domains" }, "3pGroupAnnoyances": { - "message": "Mielipahat", + "message": "Ärsykkeet", "description": "The header identifying the filter lists in the category 'annoyances'" }, "3pGroupMultipurpose": { - "message": "Monikäyttöinen", + "message": "Yleishyödylliset", "description": "English: Multipurpose" }, "3pGroupRegions": { @@ -464,31 +496,31 @@ "description": "English: Regions, languages" }, "3pGroupCustom": { - "message": "Mukautettu", + "message": "Muut listat", "description": "English: Custom" }, "3pImport": { - "message": "Tuo...", + "message": "Tuo…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { - "message": "Yksi URL-osoite riviä kohden. Virheelliset URL-osoitteet ohitetaan huomaamattomasti.", + "message": "Yksi URL-osoite riviä kohden. Virheelliset osoitteet ohitetaan huomaamattomasti.", "description": "Short information about how to use the textarea to import external filter lists by URL" }, "3pExternalListObsolete": { - "message": "Vanhentunut.", + "message": "Vanhentunut", "description": "used as a tooltip for the out-of-date icon beside a list" }, "3pViewContent": { - "message": "näytä sisältö", + "message": "Näytä sisältö", "description": "used as a tooltip for eye icon beside a list" }, "3pLastUpdate": { - "message": "Viimeisin päivitys: {{ago}}.\nKlikkaa päivittääksesi manuaalisesti.", + "message": "Viimeisin päivitys: {{ago}}.\nPaina pakottaaksesi päivityksen.", "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Päivitetään...", + "message": "Päivitetään…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -496,23 +528,23 @@ "description": "used as a tooltip for error icon beside a list" }, "1pFormatHint": { - "message": "Yksi suodatin riviä kohden. Suodatin voi olla pelkkä osoite tai EasyList-yhteensopiva suodatin. Rivit, joiden alussa on !, jätetään huomioimatta.", + "message": "Yksi suodatin riviä kohden. Suodatin voi olla pelkkä osoite tai EasyList-yhteensopiva suodatin. Rivit, joiden alussa on !, ohitetaan.", "description": "Short information about how to create custom filters" }, "1pImport": { - "message": "Tuo ja liitä loppuun", + "message": "Tuo ja lisää...", "description": "English: Import and append" }, "1pExport": { - "message": "Vie", + "message": "Vie tiedostoon", "description": "English: Export" }, "1pExportFilename": { - "message": "staattiset-ublock-suodattimeni_{{datetime}}.txt", + "message": "omat-staattiset-ublock-suodattimet_{{datetime}}.txt", "description": "English: my-ublock-static-filters_{{datetime}}.txt" }, "1pApplyChanges": { - "message": "Vahvista muutokset", + "message": "Käytä muutoksia", "description": "English: Apply changes" }, "rulesPermanentHeader": { @@ -520,15 +552,15 @@ "description": "header" }, "rulesTemporaryHeader": { - "message": "Väliaikaiset säännöt", + "message": "Tilapäiset säännöt", "description": "header" }, "rulesRevert": { - "message": "Kumoa", + "message": "Palauta", "description": "This will remove all temporary rules" }, "rulesCommit": { - "message": "Lähetä", + "message": "Pysyväksi", "description": "This will persist temporary rules" }, "rulesEdit": { @@ -544,15 +576,15 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Tuo tiedostosta...", + "message": "Tuo tiedostosta…", "description": "" }, "rulesExport": { - "message": "Vie tiedostoon...", + "message": "Vie tiedostoon", "description": "" }, "rulesDefaultFileName": { - "message": "dynaamiset-ublock-saantoni_{{datetime}}.txt", + "message": "omat-dynaamiset-ublock-saannot_{{datetime}}.txt", "description": "default file name to use" }, "rulesHint": { @@ -560,11 +592,11 @@ "description": "English: List of your dynamic filtering rules." }, "rulesFormatHint": { - "message": "Säännön syntaksi: lähde kohde tyyppi toiminto (täysi dokumentaatio).", + "message": "Sääntösyntaksi: lähde kohde tyyppi toiminto (täysi ohje).", "description": "English: dynamic rule syntax and full documentation." }, "rulesSort": { - "message": "Järjestä:", + "message": "Järjestys:", "description": "English: label for sort option." }, "rulesSortByType": { @@ -580,23 +612,23 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "Luetettujen sivustojen säännöt määrittävät, millä sivuilla uBlock₀ ei ole käytössä. Kirjoita yksi osoite riviä kohden. Virheelliset säännöt ohitetaan huomaamattomasti ja kommentoidaan pois.", - "description": "The name of the trusted sites pane." + "message": "Luotettu sivusto -luokitukset määrittelevät millä sivuilla uBlock Originia ei käytetä. Yksi osoite riviä kohden.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { - "message": "Tuo ja lisää", + "message": "Tuo ja lisää...", "description": "English: Import and append" }, "whitelistExport": { - "message": "Vie", + "message": "Vie tiedostoon", "description": "English: Export" }, "whitelistExportFilename": { - "message": "luotetut-ublock-sivustoni_{{datetime}}.txt", + "message": "omat-luotetut-ublock-sivustot_{{datetime}}.txt", "description": "The default filename to use for import/export purpose" }, "whitelistApply": { - "message": "Vahvista muutokset", + "message": "Käytä muutoksia", "description": "English: Apply changes" }, "logRequestsHeaderType": { @@ -608,7 +640,7 @@ "description": "English: Domain" }, "logRequestsHeaderURL": { - "message": "URL-Osoite", + "message": "URL", "description": "English: URL" }, "logRequestsHeaderFilter": { @@ -620,7 +652,7 @@ "description": "Appears in the logger's tab selector" }, "logBehindTheScene": { - "message": "Välilehtiriippumattomat", + "message": "Piilotetut", "description": "Pretty name for behind-the-scene network requests" }, "loggerCurrentTab": { @@ -640,31 +672,31 @@ "description": "Tooltip for the popup panel button in the logger page" }, "loggerInfoTip": { - "message": "uBlock Origin wiki: Verkkopyyntöjen loki", + "message": "uBlock Origin wiki: Pyyntöhistoria", "description": "Tooltip for the top-right info label in the logger page" }, "loggerClearTip": { - "message": "Tyhjennä verkkopyyntöjen loki", + "message": "Tyhjennä pyyntöhistoria", "description": "Tooltip for the eraser in the logger page; used to blank the content of the logger" }, "loggerPauseTip": { - "message": "Pysäytä verkkopyyntöjen loki (hylkää kaiken sisääntulevan datan)", + "message": "Pysäytä pyyntöhistoria (ohita kaikki saapuva tietoliikenne)", "description": "Tooltip for the pause button in the logger page" }, "loggerUnpauseTip": { - "message": "Jatka verkkopyyntöjen lokia", + "message": "Käynnistä pyyntöhistoria", "description": "Tooltip for the play button in the logger page" }, "loggerRowFiltererButtonTip": { - "message": "Vaihda verkkopyyntöjen lokin suodatustilaa", + "message": "Muuta pyyntöhistorian suodatusta", "description": "Tooltip for the row filterer button in the logger page" }, "logFilterPrompt": { - "message": "suodata lokimerkinnät", + "message": "Suodata pyyntöhistoriaa", "description": "Placeholder string for logger output filtering input field" }, "loggerRowFiltererBuiltinTip": { - "message": "Verkkopyyntöjen lokin suodatusasetukset", + "message": "Pyyntöhistorian suodatusvalinnat", "description": "Tooltip for the button to bring up logger output filtering options" }, "loggerRowFiltererBuiltinNot": { @@ -672,7 +704,7 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltinEventful": { - "message": "eventful", + "message": "tapahtumarikas", "description": "A keyword in the built-in row filtering expression: all items corresponding to uBO doing something (blocked, allowed, redirected, etc.)" }, "loggerRowFiltererBuiltinBlocked": { @@ -688,15 +720,15 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltin1p": { - "message": "Ensimmäinen osapuoli", + "message": "1. osapuoli", "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltin3p": { - "message": "Kolmas osapuoli", + "message": "3. osapuoli", "description": "A keyword in the built-in row filtering expression" }, "loggerEntryDetailsHeader": { - "message": "Yksityiskohtaiset tiedot", + "message": "Tiedot", "description": "Small header to identify the 'Details' pane for a specific logger entry" }, "loggerEntryDetailsFilter": { @@ -720,7 +752,7 @@ "description": "Label to identify a root context field (typically a hostname)" }, "loggerEntryDetailsPartyness": { - "message": "Suhde", + "message": "Osapuoli", "description": "Label to identify a field providing partyness information" }, "loggerEntryDetailsType": { @@ -736,11 +768,11 @@ "description": "Small header to identify the dynamic URL filtering section" }, "loggerURLFilteringContextLabel": { - "message": "Konteksti:", + "message": "Konteksti: ", "description": "Label for the context selector" }, "loggerURLFilteringTypeLabel": { - "message": "Tyyppi:", + "message": "Tyyppi: ", "description": "Label for the type selector" }, "loggerStaticFilteringHeader": { @@ -748,7 +780,7 @@ "description": "Small header to identify the static filtering section" }, "loggerStaticFilteringSentence": { - "message": "{{action}} verkkopyyntö {{type}}, {{br}}jonka URL-osoite vastaa {{url}} {{br}}ja joka on peräisin {{origin}},{{br}}{{importance}} löytyy vastaava poikkeussuodatin.", + "message": "{{action}} verkkopyynnöt, joiden tyyppi on {{type}}, {{br}}URL vastaa osoitetta {{url}} {{br}}ja joiden lähde on {{origin}},{{br}}{{importance}} vastaava poikkeussuodatin.", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartBlock": { @@ -760,39 +792,39 @@ "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartType": { - "message": "tyyppi \"{{type}}\"", + "message": "{{type}}", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartAnyType": { - "message": "kaikki tyypit", + "message": "mikä tahansa", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartOrigin": { - "message": "kohteesta \"{{origin}}\"", + "message": "{{origin}}", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartAnyOrigin": { - "message": "kaikkialta", + "message": "mikä tahansa", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartNotImportant": { - "message": "paitsi jos", + "message": "paitsi, kun löytyy", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartImportant": { - "message": "vaikka", + "message": "vaikka löytyisi", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringFinderSentence1": { - "message": "Staattinen suodatus {{filter}} löytyi:", + "message": "Staattinen suodatin {{filter}} löydettiin:", "description": "Below this sentence, the filter list(s) in which the filter was found" }, "loggerStaticFilteringFinderSentence2": { - "message": "Staattista suodatinta {{filter}} ei löytynyt miltään tällä hetkellä käytössä olevalta suodatinlistalta", + "message": "Staattista suodatinta ei löytynyt tällä hetkellä käytössä olevilta suodatinlistoilta", "description": "Message to show when a filter cannot be found in any filter lists" }, "loggerSettingDiscardPrompt": { - "message": "Merkinnät, jotka eivät täytä seuraavia kolmea ehtoa, hylätään automaattisesti:", + "message": "Merkinnät, jotka eivät täytä alla olevista kolmesta ehdosta jokaista, ohitetaan automaattisesti:", "description": "Logger setting: A sentence to describe the purpose of the settings below" }, "loggerSettingPerEntryMaxAge": { @@ -800,7 +832,7 @@ "description": "A logger setting" }, "loggerSettingPerTabMaxLoads": { - "message": "Säilytä enintään {{input}} sivun latausta välilehteä kohden", + "message": "Säilytä enintään {{input}} sivulatausta välilehteä kohden", "description": "A logger setting" }, "loggerSettingPerTabMaxEntries": { @@ -808,11 +840,11 @@ "description": "A logger setting" }, "loggerSettingPerEntryLineCount": { - "message": "Käytä {{input}} riviä pyyntöä kohden pystysuutaan laajennetussa tilassa", + "message": "Näytä pyynnöille {{input}} riviä pystysuutaan laajennetussa tilassa", "description": "A logger setting" }, "loggerSettingHideColumnsPrompt": { - "message": "Piilota sarakkeet:", + "message": "Piilota sarakkeita:", "description": "Logger settings: a sentence to describe the purpose of the checkboxes below" }, "loggerSettingHideColumnTime": { @@ -828,7 +860,7 @@ "description": "A label for the context column" }, "loggerSettingHideColumnPartyness": { - "message": "{{input}} Suhde", + "message": "{{input}} Osapuoli", "description": "A label for the partyness column" }, "loggerExportFormatList": { @@ -840,39 +872,147 @@ "description": "Label for radio-button to pick export format" }, "loggerExportEncodePlain": { - "message": "Yksinkertainen", + "message": "Pelkkä teksti", "description": "Label for radio-button to pick export text format" }, "loggerExportEncodeMarkdown": { - "message": "Koodi", + "message": "Markdown-kieli", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Avaa", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Luo uusi ilmoitus", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Etsi samankaltaisia ilmoituksia", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Ohje", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Lue ohjeet sijainnista uBlock/wiki tutustuaksesi uBlock Originin kaikkiin ominaisuuksiin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Kysymykset ja tuki", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Vastauksia kysymyksiin ja muuta tukea on saatavilla /r/uBlockOrigin-subredditistä.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Suodatusongelma/sivusto on hajonnut", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Ilmoita ongelmista suodatuksessa tietyillä sivustoilla uBlockOrigin/uAssets-ongelmaseurannassa. Vaatii GitHub-tilin.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Tärkeää: Vältä muiden vastaavien estotyökalujen samanaikaista käyttöä uBlock Originin kanssa, koska se voi aiheuttaa ongelmia joillakin sivustoilla.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Vinkkejä: Varmista, että suodatinlistasi ovat ajan tasalla. Pyyntöhistoria on pääasiallinen työkalu suodattimiin liittyvien ongelmien selvityksessä.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Virheilmoitus", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Ilmoita uBlock Origin -laajennuksen ongelmista uBlockOrigin/uBlock-ongelmaseurannanssa. Vaatii GitHub-tilin.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Vianmääritystiedot", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Alla on teknisiä tietoja, joista voi olla hyötyä vapaaehtoisille, jotka pyrkivät auttamaan ongelmasi ratkaisussa.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Tärkeää: Mahdolliset yksityiset ja arkaluonteiset tiedot poistetaan oletusarvoisesti. Tietojen puuttuminen saattaa vaikeuttaa ongelman ratkaisemista.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Ilmoita suodatinongelmasta", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Välttääksesi vapaaehtoisten kuormittamisen ylimääräisillä ilmoituksilla, tarkista ensin onko ongelmasta jo ilmoitettu.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Verkkosivun osoite:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Verkkosivu…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Valitse aihe --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Näyttää mainoksia tai niiden jäänteitä", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Sisältää peiteruutuja tai muita ärsykkeitä", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Havaitsee uBlock Originin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Sisältää tietosuojaan liittyviä ongelmia", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Hajoaa, kun uBlock Origin on käytössä", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Avaa ei-toivottuja välilehtiä tai ikkunoita", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Luokittele verkkosivu ns. työpaikalle sopimattomaksi, \"NSFW\" (\"Not Safe For Work\")", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Älä sisällytä", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Sisällytä", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Tietosuojakäytäntö", "description": "Link to privacy policy on GitHub (English)" }, "aboutChangelog": { - "message": "Muutosloki", + "message": "Muutoshistoria", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Tuki", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Ongelmien seuranta", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Lähdekoodi (GPLv3)", "description": "English: Source code (GPLv3)" }, "aboutContributors": { - "message": "Kehittäjät", + "message": "Avustajat", "description": "English: Contributors" }, "aboutSourceCode": { @@ -892,11 +1032,11 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBO's own filter lists are freely hosted on the following CDNs:", + "message": "uBO:n omat suodatinlistat ovat vapaasti saatavilla seuraavista sisällönjakeluverkoista:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "A randomly picked CDN is used when a filter list needs to be updated", + "message": "Suodatinlistat päivitetään käyttäen satunnaista sisällönjakeluverkkoa", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -904,23 +1044,23 @@ "description": "Text for button to create a backup of all settings" }, "aboutBackupFilename": { - "message": "minun-ublock-varmuuskopio_{{datetime}}.txt", + "message": "oma-ublock-varmuuskopio_{{datetime}}.txt", "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Palauta tiedostosta...", + "message": "Palauta tiedostosta…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Palauta oletusasetukset...", + "message": "Palauta oletusasetukset…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { - "message": "Kaikki asetuksesi korvataan {{time}} varmuuskopioiduilla teidoilla, jonka jälkeen uBlock₀ käynnistyy uudelleen.\n\nKorvataanko kaikki nykyiset asetukset varmuuskopioiduilla tiedoilla?", + "message": "Kaikki asetuksesi korvataan {{time}} varmuuskopioiduilla tiedoilla, jonka jälkeen uBlock₀ käynnistyy uudelleen.\n\nKorvataanko kaikki nykyiset asetukset varmuuskopion tiedoilla?", "description": "Message asking user to confirm restore" }, "aboutRestoreDataError": { - "message": "Tiedon luku ei onnistunut tai se on viallista", + "message": "Tietoja ei voitu lukea tai ne ovat virheellisiä", "description": "Message to display when an error occurred during restore" }, "aboutResetDataConfirm": { @@ -932,7 +1072,7 @@ "description": "English: Network error: {{msg}}" }, "subscriberConfirm": { - "message": "uBlock₀: lisätäänkö seuraava URL-osoite suodatinlistoihisi?\n\nNimi: \"{{title}}\"\nURL: {{url}}", + "message": "Lisätäänkö seuraava URL-osoite omiin suodatinlistoihisi?\n\nOtsikko: \"{{title}}\"\nURL: {{url}}", "description": "No longer used" }, "subscribeButton": { @@ -968,15 +1108,15 @@ "description": "Firefox/Fennec-specific: Show Dashboard" }, "showNetworkLogButton": { - "message": "Näytä loki", + "message": "Näytä pyyntöhistoria", "description": "Firefox/Fennec-specific: Show Logger" }, "fennecMenuItemBlockingOff": { - "message": "pois päältä", + "message": "ei käytössä", "description": "Firefox-specific: appears as 'uBlock₀ (off)'" }, "docblockedPrompt1": { - "message": "uBlock₀ on estänyt seuraavaa sivua lataamasta:", + "message": "uBlock₀ on estänyt seuraavan sivun latauksen:", "description": "Used in the strict-blocking page" }, "docblockedPrompt2": { @@ -988,11 +1128,11 @@ "description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png" }, "docblockedFoundIn": { - "message": "Löytyy:", + "message": "Sisältyy listoihin:", "description": "English: List of filter list names follows" }, "docblockedBack": { - "message": "Mene takaisin", + "message": "Palaa takaisin", "description": "English: Go back" }, "docblockedClose": { @@ -1000,7 +1140,7 @@ "description": "English: Close this window" }, "docblockedProceed": { - "message": "Poista tiukka esto käytöstä verkkotunnukselle {{hostname}}", + "message": "Älä käytä tiukkaa estoa osoitteelle {{hostname}}", "description": "English: Disable strict blocking for {{hostname}} ..." }, "docblockedDisableTemporary": { @@ -1012,15 +1152,15 @@ "description": "English: Permanently" }, "cloudPush": { - "message": "Vie pilveen", + "message": "Vie pilvitallennustilaan", "description": "tooltip" }, "cloudPull": { - "message": "Tuo pilvestä", + "message": "Tuo pilvitallennustilasta", "description": "tooltip" }, "cloudPullAndMerge": { - "message": "Tuo pilvestä ja yhdistä nykyisiin asetuksiin", + "message": "Tuo pilvitallennustilasta ja yhdistä nykyisiin asetuksiin", "description": "tooltip" }, "cloudNoData": { @@ -1040,7 +1180,7 @@ "description": "for generic 'Submit' buttons" }, "genericApplyChanges": { - "message": "Vahvista muutokset", + "message": "Käytä muutoksia", "description": "for generic 'Apply changes' buttons" }, "genericRevert": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Estä elementti kehyksestä...", + "message": "Estä elementti kehyksestä…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Tilaa suodatinlista...", + "message": "Tilaa suodatinlista…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1064,31 +1204,35 @@ "description": "A context menu entry, present when large media elements have been blocked on the current site" }, "shortcutCapturePlaceholder": { - "message": "Syötä pikanäppäimet", + "message": "Syötä näppäinyhdistelmä", "description": "Placeholder string for input field used to capture a keyboard shortcut" }, "genericMergeViewScrollLock": { - "message": "Kytke vierityksen lukitus", + "message": "Kytke puoliskojen välisen vierityksen lukitus", "description": "Tooltip for the button used to lock scrolling between the views in the 'My rules' pane" }, "genericCopyToClipboard": { "message": "Kopioi leikepöydälle", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Valitse esto-profiili", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Valitse kaikki", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Kytke kosmeettinen suodatus päälle/pois", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { - "message": "Kevennä estotilaa", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "message": "Kevennetty estotila", + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { - "message": "Tallennustilaa käytetty: {{value}} {{unit}}", + "message": "Tallennustilan käyttö: {{value}} {{unit}}", "description": " In Setting pane, renders as (example): Storage used: 13.2 MB" }, "KB": { - "message": "Kt", + "message": "kt", "description": "short for 'kilobytes'" }, "MB": { @@ -1100,11 +1244,11 @@ "description": "short for 'gigabytes'" }, "clickToLoad": { - "message": "Klikkaa ladataksesi", + "message": "Lataa painamalla tästä", "description": "Message used in frame placeholders" }, "dummy": { - "message": "This entry must be the last one", + "message": "Tämän täytyy olla viimeinen merkintä", "description": "so we dont need to deal with comma for last entry" } } diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/fil/messages.json ublock-origin-1.42.0+dfsg/src/_locales/fil/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/fil/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/fil/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Tungkol dito", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Pang-tingin ng Asset\n", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Pumunta sa request log", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Palit-ayos sa paghalang ng mga labasin sa site", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Color-blind friendly", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Enable cloud storage support", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "I am an advanced user (required reading)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "advanced settings", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "I am an advanced user", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Disable pre-fetching (to prevent any connection for blocked network requests)", @@ -383,6 +399,18 @@ "message": "Uncloak canonical names", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "advanced settings", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Huling pag-restore:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generic cosmetic filters are those cosmetic filters which are meant to apply on all web sites. Enabling this option will eliminate the memory and CPU overhead added to web pages as a result of handling generic cosmetic filters.\n\nIt is recommended to enable this option on less powerful devices.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line. Invalid directives will be silently ignored and commented out.", - "description": "The name of the trusted sites pane." + "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Import and append", @@ -796,7 +828,7 @@ "description": "Logger setting: A sentence to describe the purpose of the settings below" }, "loggerSettingPerEntryMaxAge": { - "message": "Preserve entries from the last {{input}} minutes", + "message": "Panatilihin and mga entry mula sa huling {{input}} mga minuto", "description": "A logger setting" }, "loggerSettingPerTabMaxLoads": { @@ -812,7 +844,7 @@ "description": "A logger setting" }, "loggerSettingHideColumnsPrompt": { - "message": "Hide columns:", + "message": "Itago ang mga columns", "description": "Logger settings: a sentence to describe the purpose of the checkboxes below" }, "loggerSettingHideColumnTime": { @@ -847,26 +879,134 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Create new report", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find similar reports", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privacy policy", "description": "Link to privacy policy on GitHub (English)" }, "aboutChangelog": { - "message": "Changelog", + "message": "Mga pagbabago", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Alalay", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Issue tracker", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Source code (GPLv3)", "description": "English: Source code (GPLv3)" @@ -912,7 +1052,7 @@ "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Reset to default settings...", + "message": "Reset to default settings…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -948,7 +1088,7 @@ "description": "English: {{value}} minutes ago" }, "elapsedOneHourAgo": { - "message": "an hour ago", + "message": "isang oras ang nakalipas", "description": "English: an hour ago" }, "elapsedManyHoursAgo": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,7 +1192,7 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Block element in frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { @@ -1075,13 +1215,17 @@ "message": "Kopyahin sa clipboard", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Toggle blocking profile", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Select all", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Storage used: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/fr/messages.json ublock-origin-1.42.0+dfsg/src/_locales/fr/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/fr/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/fr/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "À propos", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Visionneuse d'éléments", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Ouvrir le journal des requêtes", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Rapporter un problème sur ce site Web", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Activer/Désactiver le blocage des fenêtres pop-ups pour ce site", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Bloquer un élément", + "message": "Bloquer l'élément", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Mode Daltonien", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Apparence", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Thème", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Couleur d'accentuation personnalisée", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Activer le stockage des paramètres dans le nuage", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Activer les fonctionnalités avancées (À lire)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "Paramètres avancés", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Je suis un utilisateur/une utilisatrice avancé(e)", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Désactiver la prédiction des actions sur le réseau (afin d'empêcher toute connexion pour les requêtes réseau bloquées)", @@ -383,6 +399,18 @@ "message": "Révéler les noms canoniques", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Avancé", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Fonctionnalités convenant uniquement aux utilisateurs avancés", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "Paramètres avancés", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Date de la dernière restauration :", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Les filtres esthétiques génériques sont des filtres esthétiques conçus pour être appliqués sur tous les sites Web. Activer cette option réduira l'utilisation en mémoire et en processeur sur les pages Web.\n\nIl est recommandé d'activer ce paramètre sur des appareils à la puissance modeste.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspendre l'activité réseau jusqu'au chargement de toutes les listes de filtres", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Listes prédéfinies d'hôtes à bloquer", "description": "English: Lists of blocked hosts" @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Mise à jour en cours...", + "message": "Mise à jour en cours…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -544,7 +576,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Importer à partir du fichier", + "message": "Importer à partir du fichier…", "description": "" }, "rulesExport": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "Les sites Web déclarés comme fiables auprès d'uBlock Origin ne seront pas traités par ce dernier.\nUne entrée par ligne. Les entrées invalides seront silencieusement ignorées et commentées.", - "description": "The name of the trusted sites pane." + "message": "Les directives de site de confiance indiquent sur quelles pages Web uBlock Origin devrait être désactivée. Une entrée par ligne.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importer", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Ouvrir", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Créer un rapport", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Trouver des rapports similaires", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Lisez la documentation à uBlock/wiki pour apprendre toutes les fonctionnalités d'uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions et support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Les réponses aux questions et autres formes d'assistance sont fournies dans le subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Problèmes de filtrage/Site Web non fonctionnel", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Rapportez les problèmes de filtrage avec des sites Web spécifiques dans le suivi des problèmes. Nécessite un compte GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important : Evitez d'utiliser des bloqueurs similaires à uBlock Origin en même temps que ce dernier, car cela peut causer des problèmes de filtrage sur certains sites Web.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Astuces : Assurez-vous que vos listes de filtres sont à jour. Le journal des requêtes est l'outil principal pour diagnostiquer des problèmes liés au filtrage.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Rapporter un bogue", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Rapportez des problèmes avec l'extension uBlock Origin elle-même dans le suivi des problèmes. Nécessite un compte GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informations de dépannage", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Veuillez trouver ci-dessous les informations techniques pouvant aider les bénévoles à vous assister dans la résolution de problème.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important : Les informations potentiellement privées ou sensibles sont retirées par défaut. Ainsi éditées, elles peuvent compliquer la résolution de problème.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Rapporter un problème de filtre", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Pour éviter d'encombrer les contributeurs avec des rapports en double, veuillez vérifier que le problème n'a pas déjà été rapporté.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Adresse de la page Web :", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "La page Web…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Choisir un type --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "affiche des publicités ou des résidus de publicité", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "a une surcouche ou d'autres nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "détecte uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "a des problèmes de confidentialité", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "ne fonctionne pas correctement quand uBlock Origin est activée", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "ouvre des onglets ou fenêtres indésirables", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Marquer le site Web en tant que \"NSFW\" (\"Not Safe For Work\", c'est-à-dire pour public averti/inapproprié au travail)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Retirer les informations potentiellement privées ou sensibles", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Restaurer les informations potentiellement privées ou sensibles", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Politique de confidentialité", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Journal des changements", "description": "" }, - "aboutWiki": { - "message": "Documentation", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Support", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Suivi des problèmes", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Code Source (Licence GPLv3)", "description": "English: Source code (GPLv3)" @@ -908,11 +1048,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Importer depuis un fichier", + "message": "Restaurer depuis un fichier…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Paramètres par défaut", + "message": "Réinitialiser les réglages", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1052,7 +1192,7 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Bloquer un élément de cadre", + "message": "Bloquer l'élément dans le cadre", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { @@ -1075,13 +1215,17 @@ "message": "Copier vers le presse-papier", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Changer le mode de blocage", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Sélectionner tout", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Commuter le filtrage esthétique", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Détendre le mode de blocage", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Espace de stockage utilisé : {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/fy/messages.json ublock-origin-1.42.0+dfsg/src/_locales/fy/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/fy/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/fy/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Oer", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Stipe", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ – Middelenviewer", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Lochboek iepenje", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "In probleem op dizze website melde", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Alle pop-ups foar dizze website yn-/útskeakelje", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Kleureblynfreonlik", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Foarmjouwing", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Tema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Oanpaste aksintkleur", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Stipe foar cloudûnthâld ynskeakelje", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Ik bin in betûfte brûker (Lês dit earst)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "avansearre ynstellingen", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Pre-fetching útskeakelje (om eltse ferbining foar blokkearre netwurkfersiken foar te kommen)", @@ -383,6 +399,18 @@ "message": "Kanonike nammen toane", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Avansearre", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Allinnich foar technyske brûkers geskikte funksjes.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "avansearre ynstellingen", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Lêste werstel:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Algemiene kosmetyske filters binne dy kosmetyske filters dy't bedoeld binne om op alle websites tapast te wurden. It ynskeakeljen fan dizze opsje eliminearret de oan websiden tafoege ûnthâld- en cpu-oerhead as gefolch fan it ferwurkjen fan algemiene kosmetyske filters.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Netwurkaktiviteit ûnderbrekke oant alle filterlisten laden binne", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "List fan blokkearre hosts", "description": "English: Lists of blocked hosts" @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "De whitelist-ynstruksjes skriuwe foar op hokker websiden uBlock Origin útskeakele wurde moat. Ien fermelding per rigel. Unjildige ynstruksjes wurde sûnder meidieling negearre en útskeakele.", - "description": "The name of the trusted sites pane." + "message": "De fertroude-website-ynstruksjes skriuwe foar op hokker websiden uBlock Origin útskeakele wurde moat. Ien fermelding per rigel.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Ymportearje en tafoegje", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Iepenje", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Nije melding meitsje", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Soartgelikense meldingen sykje", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumintaasje", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Lês de dokumintaasje op uBlock/wiki foar mear ynfo oer alle funksjes fan uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Fragen en stipe", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Antwurden op fragen en oare soarten stipe wurde levere op de subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filterproblemen/website wurket net", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Meld filterproblemen mei spesifike websites op de probleemtracker. Fereasket in GitHub-account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Wichtich: mij it gebrûk fan oare adblockers foar itselde doel yn kombinaasje mei uBlock Origin, omdat dit op bepaalde websites problemen jaan kin.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: soargje derfoar dat jo filterlisten by-de-tiid binne. De logger is it primêre helpmiddel foar it analysearjen fan filterrelatearre problemen.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bugmelding", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Meld problemen mei uBlock Origin sels by de probleemtracker. Fereasket in GitHub-account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Probleemoplossingsynformaasje", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Hjirûnder stiet technyske ynformaasje dy't handich wêze kin wannear't frijwilligers jo probearje te helpen by it oplossen fan in probleem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Wichtich: mooglik gefoelige of priveegegevens wurde standert redigearre. Redigearre gegevens kinne it oplossen fan in probleem swierder meitsje.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "In filterprobleem melde", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Kontrolearje oft it probleem net earder meld is om foar te kommen dat frijwilligers mei dûbele meldingen belêst wurde.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Adres fan de webside:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "De webside...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Meitsje in kar --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Toant advertinsjes of restanten", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Hat oerlapingen of oare ûngemakken", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detektearret uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Hat privacy-relatearre problemen", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Wurket net as uBlock Origin ynskeakele is", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Iepenet net-winske ljepblêden of finsters", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "De webside labelje as ‘NSFW’ (‘Not Safe For Work’)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redigearje", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Redigearje ûngedien meitsje", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privacybelied", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Wizigingenlochboek", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Stipe", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Probleemfolger", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Boarnekoade (GPLv3)", "description": "English: Source code (GPLv3)" @@ -896,7 +1036,7 @@ "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "As in filterlist bywurke wurde moat, wurdt in willekeurich keazen CDN brûkt", + "message": "As in filterlist bywurke wurde moat, wurdt samar in CDN brûkt", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -1075,13 +1215,17 @@ "message": "Kopiearje nei klamboerd", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Blokkearringsprofyl omskeakelje", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Alles selektearje", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Kosmetyske filters yn-/útskeakelje", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Blokkearringsmodus beheine", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Brûkte ûnthâldromte {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/gl/messages.json ublock-origin-1.42.0+dfsg/src/_locales/gl/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/gl/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/gl/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Sobre", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Asset viewer", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Ir ó rexistro de peticións", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Activar todas as xanelas emerxentes nesta páxina", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Accesible para daltónicos", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Activar soporte para almacenamento na nube", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Sonche un usuario experto (Precisas ler isto)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "configuración avanzada", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Desactivar a precarga de sitios (prevén calquera conexión para peticións de red bloqueadas)", @@ -383,6 +399,18 @@ "message": "Uncloak canonical names", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "configuración avanzada", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Última recuperación:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

Os filtros cosméticos xenéricos estanche pensados para seren aplicados en todas as páxinas.

Aínda que o uBlock₀ os xestiona dun xeito eficiente, algúns deles precisan de altas cantidades de memoria e sobreemprego da CPU, especialmente nas páxinas grandes e nas máis duradeiras.

Activar esta opción suprimirá os requerimentos de memoria e CPU por causa destes filtros cosméticos xenéricos, así como reducirá a cantidade de memoria ocupada polo uBlock₀ mesmo.

Recomendámosche activar esta opción sobre todo nos dispositivos menos potentes.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lista dos servidores bloqueados", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "A lista branca é a túa lista de nomes de servidor nos que o uBlock₀ estará desactivado. Ten unha entrada por cada liña, e os nomes de servidor non válidos serán ignorados.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importar e anexar", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Create new report", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find similar reports", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privacy policy", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Rexistro de cambios", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Asistencia", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Seguimento de erros", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Código fonte (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Block element in frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Subscribe to filter list…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Copy to clipboard", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Toggle blocking profile", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Select all", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Storage used: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/he/messages.json ublock-origin-1.42.0+dfsg/src/_locales/he/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/he/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/he/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "אודות", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "תמיכה", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — מציג הנכסים", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "פתח את מתעד הבקשות", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "דווח על סוגייה באתר זה", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "הפעל/כבה את החסימה של חלונות קופצים באתר זה", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "ידידותי לעיוורי צבעים", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "נראות", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "ערכת נושא", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "צבע הדגשה מותאם", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "הפעל אחסון בענן", "description": "" }, "settingsAdvancedUserPrompt": { "message": "אני משתמש מתקדם (נדרש לקרוא)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "הגדרות מתקדמות", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "כבה אחזור מוקדם של משאבים (על מנת למנוע מחיבורים של בקשות רשת חסומות להישלח)", @@ -383,6 +399,18 @@ "message": "חשוף רשומות DNS מסוג CNAME", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "מתקדם", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "מאפיינים למשתמשים טכניים בלבד", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "הגדרות מתקדמות", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "שחזור אחרון:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "מסננים קוסמטיים כלליים - אלה הם המסננים הקוסמטיים, אשר מיועדים להיות מוחלים על כל דפי האינטרנט. אפשור הגדרה זו תוריד את צריכת הזיכרון והמעבד אשר מתווספות לדפי אינטרנט כתוצאה משימוש במסננים קוסמטיים כלליים.\n\nמומלץ לאפשר הגדרה זו במכשירים פחות חזקים.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "השהה פעילות רשת עד לסיום טעינת כל רשימות הסינון", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "רשימה של דומיינים חסומים", "description": "English: Lists of blocked hosts" @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "מעדכן...", + "message": "מעדכן…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -544,7 +576,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "ייבא מקובץ...", + "message": "ייבא מקובץ…", "description": "" }, "rulesExport": { @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "הרשומות באתרים המהימנים מציינות באילו דפי אינטרנט uBlock Origin לא יהיה פעיל. רשומה אחת בכל שורה. רשומות לא חוקיות תתעלמנה בשקט ויסומנו כהערות.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "ייבא וצרף", @@ -847,6 +879,126 @@ "message": "פורמט Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "לפתוח", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "צור דוח חדש", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "מצא דוחות דומים", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "דוקומנטציה", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "קרא את הדוקומנטציה ב uBlock/wik על מנת ללמוד על כל היכולות של uBlock Origin", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "שאלות ותמיכה", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "תשובות לשאלות ושאר סוגי העזרה ניתן להיעזר בסאברדיט /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "בעיות סינון/אתר שבור", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "דווח על בעיות סינון באתרים קונקרטיים בלוח הבעיות uBlockOrigin/uAssets. נדרש משתמש GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "חשוב: המנע משימוש בחוסמים אחרים שיש להם את אותה המטרה באותו הזמן עם uBlock Origin, שכן זה יכול לגרום לבעיות סינון באתרים ספציפיים.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "טיפים: וודאו כי רשימות המסננים שלכם מעודכנים. מתעד הבקשות הינו הכלי המרכזי לפענוח בעיות הקשורות לרשימות מסננים.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "דיווח על באג", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "דווח על בעיות סינון באתרים קונקרטיים בלוח הבעיות uBlockOrigin/uBlock-issue. נדרש משתמש GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "מידע לפתרון בעיות", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "ראה מטה מידע טכני שיכול להיות מועיל למתנדב, כאשר הוא מנסה לעזור לך לפתור בעיה.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "חשוב: מידע שהוא פוטנציאלי רגיש או פרטי מוסר בברירת מחדל. המידע שמוסר יכול לגרום לעיכוב בפתרון בעיות.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "דווח על סוגיית מסנן", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "כדי להימנע מהעמקת מתנדבים בדוחות כפולים, ודא שהבעיה טרם דווחה.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "כתובת של דף האינטרנט:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "דף האינטרנט…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- בחר ערך --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "הצגת פרסומות או שאריות של פרסומות", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "יש שכבות על או מטרד אחר", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "מזהה מקור uBlock", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "יש בעיות הקשורות לפרטיות", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "תקלות כאשר uBlock Origin מופעל", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "פתיחת כרטיסיות או חלונות לא רצויים", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "סמן דף אינטרנט זה בתור ”NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "הסר מידע פרטי או רגיש", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "שחזר מידע פרטי או רגיש", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "מדיניות פרטיות", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "רשימת שינויים", "description": "" }, - "aboutWiki": { - "message": "ויקי", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "תמיכה", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "בעיות ידועות", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "קוד מקור (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1075,13 +1215,17 @@ "message": "העתק ללוח", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "שנה את פרופיל החסימה", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "בחר הכל", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "הרפה את מצב החסימה הנוכחי", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "אחסון בשימוש: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/hi/messages.json ublock-origin-1.42.0+dfsg/src/_locales/hi/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/hi/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/hi/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -12,15 +12,15 @@ "description": "English: uBlock₀ — Dashboard" }, "dashboardUnsavedWarning": { - "message": "Savdhan! Apke badlav abhi save nahi hue hai", + "message": "चेतावनी! आपके कुछ परिवर्तनों को सहेजना अभी बाकी है", "description": "A warning in the dashboard when navigating away from unsaved changes" }, "dashboardUnsavedWarningStay": { - "message": "रुको", + "message": "रुकें", "description": "Label for button to prevent navigating away from unsaved changes" }, "dashboardUnsavedWarningIgnore": { - "message": "नज़रअंदाज़ करो ", + "message": "नज़रअंदाज़ करें ", "description": "Label for button to ignore unsaved changes" }, "settingsPageName": { @@ -40,7 +40,7 @@ "description": "appears as tab name in dashboard" }, "whitelistPageName": { - "message": "सफेद सूची", + "message": "विश्वस्त साइट सूची", "description": "appears as tab name in dashboard" }, "shortcutsPageName": { @@ -55,6 +55,10 @@ "message": "जानकारी", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "सहायता", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — असेट व्यूअर", "description": "Title for the asset viewer page" @@ -96,23 +100,23 @@ "description": "English: or" }, "popupBlockedOnThisPage_v2": { - "message": "इस पेज पर ब्लॉक होगइ हुई ", + "message": "इस पेज पर ब्लॉक किया गया ", "description": "For the new mobile-friendly popup design" }, "popupBlockedSinceInstall_v2": { - "message": "इंस्टाल के समय से ब्लॉक किया हुआ ", + "message": "स्थापना के समय से ब्लॉक किया हुआ", "description": "For the new mobile-friendly popup design" }, "popupDomainsConnected_v2": { - "message": "कनेक्ट हुई साइटें", + "message": "कनेक्ट हुई डोमेंस", "description": "For the new mobile-friendly popup design" }, "popupTipDashboard": { - "message": "डैशबोर्ड को खोलने के लिए क्लिक करें", + "message": "डैशबोर्ड खोलें", "description": "English: Click to open the dashboard" }, "popupTipZapper": { - "message": "चीजें मिटाने के मोड में जाएं ", + "message": "चीजें मिटाने के मोड में जाएं", "description": "Tooltip for the element-zapper icon in the popup panel" }, "popupTipPicker": { @@ -123,6 +127,10 @@ "message": "लॉगर खोलें", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "इस वेबसाइट पर किसी समस्या की रिपोर्ट करें", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "इस साईट के लिए कोई पॉपअप नहीं", "description": "Tooltip for the no-popups per-site switch" @@ -268,11 +276,11 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party scripts", + "message": "↑: उन पंक्तियों पर जोर दें जिनमें तृतीय-पक्ष स्क्रिप्ट हैं", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party frames", + "message": "↑: उन पंक्तियों पर जोर दें जिनमें तृतीय-पक्ष स्क्रिप्ट हैं", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { @@ -327,17 +335,25 @@ "message": "वरणांध अनुकूलित ", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "दिखावट", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "थीम", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "निर्मित किए हुए उच्चारण रंग", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "क्लाउड स्टोरेज सपोर्ट चालू करें", "description": "" }, "settingsAdvancedUserPrompt": { "message": "मैं एक उच्च उपयोगकर्ता हूँ (आवश्यक पठन)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "उन्नत सेटिंग्स", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "प्री-फ़ेचिंग बंद करें (कोई भी ब्लॉक किये गए कनेक्शंनो से संपर्क न करने लिए)", @@ -380,9 +396,21 @@ "description": "background information: https://github.com/gorhill/uBlock/issues/3150" }, "settingsUncloakCnamePrompt": { - "message": "Uncloak canonical names", + "message": "विहित नाम अनलॉक करें", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "उन्नत", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "केवल तकनीकी उपयोगकर्ताओं के लिए उपयुक्त सुविधाएँ.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "उन्नत सेटिंग्स", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": " पिछला रिस्टोर:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "जेनेरिक कॉस्मेटिक फिल्टरस वो कॉस्मेटिक फिल्टरस हैं जो सब वेब साइट्स पर लागू होते हैं। यह विकल्प को चालू कराने से मेमोरी और सीपीयू पर जो उपर का दबाव पड़ता है वो नहीं रहेगा जो कॉस्मेटिक फिल्टरों को जारी करने से हुआ था।\n\nइस विकल्प को कमज़ोर डिवाइसों पर चालू कराने की सलाह दी जाती है।", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "सभी फ़िल्टर सूचियाँ लोड होने तक नेटवर्क गति-विधि को निलंबित करें", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -564,24 +596,24 @@ "description": "English: dynamic rule syntax and full documentation." }, "rulesSort": { - "message": "Sort:", + "message": "क्रम में लगाये", "description": "English: label for sort option." }, "rulesSortByType": { - "message": "Rule type", + "message": "नियम प्रकार", "description": "English: a sort option for list of rules." }, "rulesSortBySource": { - "message": "Source", + "message": "स्रोत", "description": "English: a sort option for list of rules." }, "rulesSortByDestination": { - "message": "Destination", + "message": "गंतव्य", "description": "English: a sort option for list of rules." }, "whitelistPrompt": { "message": "वाइटलिस्ट के नियम यह बताते हैं कि uBlock Origin को किस वेब पेज पर बंद करना चाहिए। एक एंट्री हर लाइन में। अमान्य नियमों को सीधे-सीधे नजरअंदाज कर दिया जाएगा।", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "इम्पोर्ट करें और जोड़ें", @@ -684,7 +716,7 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltinModified": { - "message": "modified", + "message": "परिवर्तित", "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltin1p": { @@ -847,26 +879,134 @@ "message": "मार्कडाउन", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "खोलें", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "नई रिपोर्ट बनाएं", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "ऐसी ही रिपोर्ट खोजें", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "प्रलेखन", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "uBlock की सभी विशेषताओं के बारे में जानने के लिए uBlock/wiki पर दस्तावेज़ पढ़ें।", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "प्रश्न और समर्थन", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "सबरेडिट /r/uBlockOrigin. पर सवालों के जवाब और अन्य प्रकार की सहायता सहायता प्रदान की जाती है", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "फ़िल्टर समस्याएं/वेबसाइट टूट गई है", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "विशिष्ट वेबसाइटों के साथ फ़िल्टर समस्याओं की रिपोर्टuBlockOrigin/uAssets इश्यू ट्रैकर. GitHub खाते की आवश्यकता है। ", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "ध्यान दें :uBlock Origin के साथ समान उद्देश्य वाले अन्य अवरोधकों का उपयोग करने से बचें, क्योंकि इससे विशिष्ट वेबसाइटों पर फ़िल्टर समस्याएँ हो सकती हैं।", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "युक्तियाँ : सुनिश्चित करें कि आपकी फ़िल्टर सूचियाँ नवीनतम हैं। लॉगर आपकी फ़िल्टर से संबंधित समस्याओं के निदान के लिए प्राथमिक टूल है।", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "बग रिपोर्ट", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "uBlock Origin के साथ समस्याओं की रिपोर्ट यहाँ uBlockOrigin/uBlock-issueइश्यू ट्रैकर पर करें। इसके लिए GitHub खाते की आवश्यकता है।", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "समस्या निवारक जानकारी", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "नीचे तकनीकी जानकारी दी गई है जो तब उपयोगी हो सकती है जब स्वयंसेवक किसी समस्या का समाधान करने में आपकी सहायता करने का प्रयास कर रहे हों।", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": " महत्वपूर्ण: संभावित रूप से निजी या संवेदनशील जानकारी को डिफ़ॉल्ट रूप से संशोधित किया जाता है। संशोधित जानकारी किसी समस्या को हल करना अधिक कठिन बना सकती है।", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "फ़िल्टर समस्या की रिपोर्ट करें", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "स्वयंसेवकों पर डुप्लीकेट रिपोर्ट का बोझ डालने से बचने के लिए, कृपया सत्यापित करें कि समस्या की रिपोर्ट पहले ही नहीं की गई है।", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "वेब पेज का पता:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "वेब पेज...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- एक प्रविष्टि चुनें --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "विज्ञापन या बचा हुआ विज्ञापन दिखाता है", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "ओवरले या अन्य उपद्रव हैं", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "uBlock Origin का पता लगाता है", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "गोपनीयता से संबंधित समस्याएं हैं", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "uBlock Origin सक्षम होने पर खराबी", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "अवांछित टैब या विंडो खोलता है", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "वेब पेज को इस रूप में लेबल करें “NSFW” (“काम करने के लिए सुरक्षित नहीं”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "संपादन", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "असंशोधित", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { - "message": "Privacy policy", + "message": "गोपनीयता नीति", "description": "Link to privacy policy on GitHub (English)" }, "aboutChangelog": { "message": "परिवर्तन सूची", "description": "" }, - "aboutWiki": { - "message": "विकी", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "मदद", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "समस्या खोजी", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "सोर्स कोड {GPLv3}", "description": "English: Source code (GPLv3)" @@ -892,11 +1032,11 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBO's own filter lists are freely hosted on the following CDNs:", + "message": "uBO's स्वयं की फ़िल्टर सूचियाँ निम्नलिखित पर स्वतंत्र रूप से होस्ट की जाती हैं CDNs ", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "A randomly picked CDN is used when a filter list needs to be updated", + "message": "बेतरतीब ढंग से चुनी गई सीडीएन का उपयोग तब किया जाता है जब फ़िल्टर सूची को अद्यतन करने की आवश्यकता होती है", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -936,7 +1076,7 @@ "description": "No longer used" }, "subscribeButton": { - "message": "Subscribe", + "message": "सबˈस्क्राइब्", "description": "For the button used to subscribe to a filter list" }, "elapsedOneMinuteAgo": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "फ्रेम में तत्व को ब्लॉक करें...", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "फ़िल्टर सूची की सदस्यता लें...", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "क्लिपबोर्ड में कॉपी करें", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "ब्लॉकिंग प्रोफ़ाइल क्को टॉगल करें ", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "सभी चुनें", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "कॉस्मेटिक फ़िल्टरिंग टॉगल करें", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "ब्लैकिंग मोड को ढील दें", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "इस्तेमाल हुई स्टोरेज:{{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/hr/messages.json ublock-origin-1.42.0+dfsg/src/_locales/hr/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/hr/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/hr/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "O programu", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Podrška", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Preglednik svojstva", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Odlazak na zapisnik zahtjeva", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Prijavite problem na ovoj web stranici", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Uključi/isključi skočne prozore na ovoj stranici", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Blokiraj element...", + "message": "Blokiraj element…", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Ugodan za daltoniste", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Izgled", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Tema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Prilagođena glavna boja", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Omogući podršku za pohranu u oblaku", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Ja sam napredni korisnik (obavezna literatura)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "napredne postavke", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Ja sam napredni korisnik", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Onemogući pretpreuzimanje (za sprečavanje bilo koje veze blokiranih mrežnih zahtjeva)", @@ -383,6 +399,18 @@ "message": "Prikaži kanonske nazive", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Napredno", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Značajke prikladne samo za napredne korisnike.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "napredne postavke", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Posljednji povratak na prijašnje:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generički estetski filteri su takvi filteri koji su namijenjeni svim web stranicama. Omogućavanjem ove postavke eliminirati će se memorijska i procesorska dodatna upotreba na web stranicama kao rezultat korištenja generičkih estetskih filtera.\n\nPreporučeno je omogućiti ovu postavku na slabijim uređajima.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Obustavite mrežnu aktivnost dok se ne učitaju svi popisi filtera", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Popis blokiranih hosts", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Uvoz...", + "message": "Uvoz…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Ažuriranje u tijeku...", + "message": "Ažuriranje u tijeku…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -544,7 +576,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Uvoz iz datoteke...", + "message": "Uvoz iz datoteke…", "description": "" }, "rulesExport": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "Direktiva pouzdanih stranica govori za koje bi web stranice uBlock Origin trebao biti onemogućen. Jedan zapis po retku. Nevaljane direktive biti će tiho ignorirane i komentirane.", - "description": "The name of the trusted sites pane." + "message": "Direktiva pouzdanih stranica govori za koje bi web stranice uBlock Origin trebao biti onemogućen. Jedan zapis po retku.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Uvesti i dodati", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Otvori", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Napravi novu prijavu", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Nađi slične prijave", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentacija", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Pročitajte dokumentaciju na uBlock/wiki kako bi ste saznali uBlock Origin mogućnosti.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Pitanja i podrška", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Odgovori na pitanja i druge vrste podrške nalaze se na subreddit r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter problemi/website je pao", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Prijavite probleme s filtriranjem određenih web stranica uBlockOrigin/uAssets alatki za praćenje problema. Potreban je GitHub račun.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Važno: Izbjegavajte korištenje drugih blokera slične namjene u isto vrijeme s uBlock Origin-om jer to može uzrokovati probleme s filtriranjem na određenim web stranicama.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Savjeti: Provjerite jesu li vaše liste filtera ažurirane. Zapisnik je primarni alat za dijagnosticiranje problema povezanih s filterima.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Prijava greške", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Prijavite probleme sa samim uBlock Origin-om na uBlockOrigin/uBlock-problem alatki za praćenje problema. Potreban je GitHub račun.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informacije o rješavanju problema", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "U nastavku se nalaze tehničke informacije koje bi mogle biti korisne kada vam volonteri pokušavaju pomoći u rješavanju problema.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Važno: Potencijalno privatni ili osjetljivi podaci redigirani su prema zadanim postavkama. Redaktirane informacije mogu otežati rješavanje problema.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Prijavi problem sa filterom", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Kako biste izbjegli opterećivanje volontera duplim prijavama, provjerite nije li problem već prijavljen.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Adresa web stranice:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Web stranica…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Odaberite unos --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Prikazuje oglase ili ostatke oglasa", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Ima overlaye ili druge smetnje", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detektira uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Ima problema u vezi s privatnošću", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Ruši se kad je uBlock Origin omogućen", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Otvara neželjene kartice ili prozore", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Označite web stranicu kao “NSFW” (“nije sigurno za pregledavanje na poslu“)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redigiraj", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Vratiti na prijašnje", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Pravila privatnosti", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Popis promjena", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Podrška", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Praćenje problema", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Izvorni kôd (GPLv3)", "description": "English: Source code (GPLv3)" @@ -896,7 +1036,7 @@ "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "Koristit će se slučajno odabrani CDN kada treba ažurirati popis filtera", + "message": "Koristit će se slučajno odabrani CDN za ažuriranje popisa filtera", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -908,11 +1048,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Vraćanje iz datoteke...", + "message": "Vraćanje iz datoteke…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Vraćanje izvornih zadanih postavki...", + "message": "Vraćanje izvornih zadanih postavki…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Blokiraj element u okviru...", + "message": "Blokiraj element u okviru…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Prijavite se na popis filtera...", + "message": "Prijavite se na popis filtera…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Kopiraj u međuspremnik", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Uključi/isključi profil za blokiranje", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Odaberi sve", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Prekidač estetskog filtriranja", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Opušteni način blokiranja", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Korišteno prostora: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/hu/messages.json ublock-origin-1.42.0+dfsg/src/_locales/hu/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/hu/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/hu/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Névjegy", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Támogatás", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ - Eszköznézet", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Naplózott lekérések megtekintése", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Az oldalon lévő probléma bejelentése", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Oldal összes felugró ablakának blokkolása/engedélyezése", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Színvak-barát", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Kinézet", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Téma", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Felhőben tárolás bekapcsolása", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Haladó felhasználó vagyok (További tudnivalók)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "haladó beállítások", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Előtöltés kikapcsolása (kapcsolódás megakadályozása blokkolt hálózati lekérésekhez)", @@ -383,6 +399,18 @@ "message": "Kanonikus nevek felfedése", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "haladó beállítások", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Utolsó visszaállítás:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

Az általános kozmetikai szűrők azok a kozmetikai szűrők, amelyek minden weboldalra érvényesek.

Ugyan a uBlock₀ hatékonyan kezeli őket, az általános kozmetikai szűrők mégis mérhetően magasabb memória és CPU használatot eredményezhetnek néhány weboldalon, főleg nagy, és régóta futóak esetében.

Ennek az opciónak a bekapcsolása kiküszöböli az általános kozmetikai szűrők kezeléséből a weboldalakon adódó memória és CPU használat többletet, továbbá csökkenti a uBlock₀ által foglalt memóriát is.

Ajánlott bekapcsolni ezt az opciót a gyengébb eszközökön.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Hálózati forgalom szüneteltetése, amíg a szűrőlisták be nem töltődtek", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Blokkolt hostokat tartalmazó listák", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Az alábbi listában felsorolt hostokon a kiegészítő nem fog működni. Soronként egy bejegyzés. Érvénytelen hostnevek figyelmen kívül maradnak.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importál és hozzáad", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Megnyitás", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Hiba bejelentése", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Hasonló hibák keresése", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentáció", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Az uBlock Origin további funkcióihoz látogassa meg a dokumentációt itt: uBlock/wiki.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Kérdések és támogatás", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "A felhasználói kérdésekre választ és további segítséget, támogatást az /r/uBlockOrigin subredditen nyújtunk.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Szűrőhibák/a weboldal nem működik megfelelően", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Adott weboldalra vonatkozó szűrőhibákat jelentse a uBlockOrigin/uAssets hibakövetőn. GitHub-fiók szükséges.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Fontos: Ne használjon hasonló célú reklámblokkolókat az uBlock Originnal egyszerre, mert ez szűrőhibákat okozhat bizonyos weboldalakon.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tippek: Bizonyosodjon meg arról, hogy a legfrissebb szűrőlistákat használja. A napló a legfontosabb eszköz a szűrőkkel kapcsolatos hibák diagnózisában.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Hibajelentés", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Az uBlock Origin hibáit jelentse a uBlockOrigin/uBlock-issue hibakövetőn. GitHub-fiók szükséges.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Hibakeresési információ", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Az alább található technikai információk segíthetnek önkénteseinknek megoldani a problémáját.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Fontos: Az esetlegesen személyes vagy érzékeny adatok alapértelmezésből rejtve vannak. Az elrejtett információk megnehezíthetik a probléma megoldását.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Szűrőhibák bejelentése", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Az önkéntesek terhelésének csökkentése érdekében győződjön meg róla, hogy a hiba még nem lett bejelentve.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "A weboldal címe:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "A weboldal...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Válasszon egy opciót --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Hirdetéseket vagy hirdetés maradványokat jelenít meg", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Zavaró elemeket tartalmaz", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Érzékeli a uBlock Origin-t", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Adatvédelmi problémákat vet fel", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Hibásan működik, amikor az uBlock Origin be van kapcsolva", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Kéretlen lapokat vagy ablakokat nyit meg", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "A weboldal megjelölése felnőtt tartalomként", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Elrejtés", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Megjelenítés", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Adatvédelmi szabályzat", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Változások listája", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Támogatás", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Bugok és problémák", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Forráskód (GPLv3)", "description": "English: Source code (GPLv3)" @@ -908,7 +1048,7 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Biztonsági mentés visszaállítása fájlból...", + "message": "Visszaállítás fájlból...", "description": "English: Restore from file..." }, "aboutResetDataButton": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1075,13 +1215,17 @@ "message": "Másolás a vágólapra", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Profil blokkolás váltása", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Mindent kijelöl", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Relaxáló blokkolási mód", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Használt tárolás: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/hy/messages.json ublock-origin-1.42.0+dfsg/src/_locales/hy/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/hy/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/hy/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Ընդլայնման մասին", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Աջակցություն", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Ակտիվների դիտակ", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Բացել մատյանը", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Հաղորդել կայքում առաջացած խնդրի մասին", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Միաց./Անջ. այս կայքի բոլոր ելնող լուսամուտների արգելափակումը", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Բարեհաճ գույներ գունակուրություն ունեցողների համար", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Միացնել ամպային պահեստի աջակցոմը", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Ես հմուտ օգտվող եմ ( կարդալը պարտադիր է)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "ընդլայնված կարգավորումներ", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Ես հմուտ օգտվող եմ (կարդալը պարտադիր է)", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Անջատել նախաբեռնումը՝ արգելափակված ցանցային հայտերի համար միացումները կանխելու", @@ -383,6 +399,18 @@ "message": "Բանալ կանոնական անունները", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "ընդլայնված կարգավորումներ", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Վերջին վերականգնումը՝", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Ընդհանուր կոսմետիկ զտիչներն այն կոսմետիկ զտիչներն են, որոնք նախատեսված են կիրառվել բոլոր կայքերում։ Այս ընտրանքը միացնելը կվերացնի հիշողության և մշակիչի բեռնվածությունը, որը կայքեջերի մոտ ավելանում է ընդհանուր կոսմետիկ զտիչների մշակման արդյունքում։\n\nԽորհուրդ է տրվում միացնել այս ընտրանքը ոչ բավականաչափ հզոր սարքերում։", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Վստահված կայքերի ցուցակը սահմանում է, թե որ կայքերում uBlock Origin-ը պիտի անջատված լինի։ Մեկ տողում մեկ գրառում։ Անճիշտ կանոններն առանց նախազգուշացման անտեսվելու և մեկնաբանվելու են։", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Ներմուծել և հավելել", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Բացել", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Նոր զեկույց ստեղծել", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Գտնել նման զեկույցներ", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Փաստաթղթեր", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Կարդացեք փաստաթղթերը uBlock/wiki-ում՝ uBlock Origin-ի բոլոր հնարավորությունների մասին իմանալու։", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Հարցեր և աջակցություն", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Հարցերի պատասխանները և օգնության այլ տեսակները մատչելի են Reddit-ի /r/uBlockOrigin բաժնում։", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Զտիչի խնդիրներ/կայքը կոտրված է", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Հաղորդեք որոշակի կայքերի հետ կապված զտիչի խնդիրների մասին uBlockOrigin/uAssets-ի խնդիրների հետագծիչի բաժնում։ Պահանջվում է GitHub հաշիվ։", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Կարևոր է. Խուսափեք uBlock Origin-ի հետ մեկտեղ նման այլ արգելափակիչներ օգտագործելուց, քանի որ դա կարող է որոշակի կայքերում զտիչի հետ կապված խնդիրներ առաջացնել:", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Խորհուրդներ.Համոզվեք, որ Ձեր զտիչների ցուցակները թարմացված են: Մատյանը զտիչների հետ կապված խնդիրների ախտորոշման հիմնական գործիքն է։", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Զեկույց սխալի մասին", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Հաղորդեք uBlock Origin-ի սեփական սխալների մասին uBlockOrigin/uBlock-issue խնդիրների հետագծիչի բաժնում։ Պահանջվում է GitHub հաշիվ։", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Ախտորոշիչ տեղեկություն", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Ցածում տեխնիկական տեղեկություն է, որը կարող է օգտակար լինել, երբ կամավորները փորձում են օգնել Ձեզ լուծել խնդիրը։", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Կարևոր է. Հնարավոր անձնական կամ զգայուն տեղեկությունները խմբագրվում է լռելյայնորեն։ Վերամշակված տեղեկություները կարող է ավելի բարդացնել խնդրի լուծումը:", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Հաղորդել զտիչի խնդրի մասին", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Կամավորներին կրկնօրինակ զեկույցներով չծանրաբեռնելու համար խնդրում ենք ստուգել, որ խնդիրն արդեն հաղորդված չէ։", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Վեբ էջի հասցեն՝", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Վեբ էջը...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Ընտրեք կատեգորիա --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Գովազդ է ցուցադրվում կամ դրա մնացորդներ", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Վրածածկումներ կամ այլ խանգարումներ", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Հայտնաբերվում է uBlock Origin-ը", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Գաղտնիության հետ կապված խնդիրներ", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Անսարքություններ, երբ uBlock Origin-ը միացված է", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Բացում է անցանկալի ներդիրները կամ լուսամուտները", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Նշել վեբ էջը որպես «NSFW» («Աշխատանքի համար անվտանգ չէ»)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Խմբագրել", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Չեղարկել խմբագրումը", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Գաղտնիության քաղաքականություն", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Փոփոխությունների մատյան", "description": "" }, - "aboutWiki": { - "message": "Վիքի", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Աջակցում", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Խնդիրների հետագծում", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Աղբյուրի կոդ (GPLv3)", "description": "English: Source code (GPLv3)" @@ -892,11 +1032,11 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBO's own filter lists are freely hosted on the following CDNs:", + "message": "uBO-ի սեփական զտիչների ցանկերն ազատորեն տեղաբաշխված են հետևյալ CDN-երում.", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "A randomly picked CDN is used when a filter list needs to be updated", + "message": "Զտիչների ցանկը թարմացնելիս օգտագործվում է պատահականորեն ընտրված CDN", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1075,13 +1215,17 @@ "message": "Պատճենել առ սեղմատախտակ", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Արգելափակման պրոֆիլի փոխանջատում", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Ընտրել բոլորը", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Արգելափակման թուլացված ռեժիմ", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Պահեստի չափը՝ {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/id/messages.json ublock-origin-1.42.0+dfsg/src/_locales/id/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/id/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/id/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Tentang", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Dukungan", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Penampil aset", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Buka pencatat log", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Laporkan masalah situs web ini", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Alihkan pemblokiran semua popup untuk situs ini", "description": "Tooltip for the no-popups per-site switch" @@ -304,7 +312,7 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "Blok elemen...", + "message": "Blokir elemen...", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { @@ -327,17 +335,25 @@ "message": "Ramah buta warna", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Tampilan", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Tema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Warna aksen khusus", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Aktifkan dukungan penyimpanan awan", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "Saya pengguna tingkat lanjut (bacaan wajib)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "pengaturan lanjutan", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "Saya pengguna tingkat lanjut", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Nonaktifkan pra-ambil (untuk mencegah sambungan apapun untuk permintaan jaringan yang diblokir)", @@ -383,6 +399,18 @@ "message": "Ungkap nama kanonis", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Tingkat lanjut", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Fitur ditujukan untuk pengguna tingkat lanjut.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "pengaturan lanjutan", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Pemulihan terakhir:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Filter tampilan generik adalah filter tampilan yang dibuat untuk diterapkan pada semua situs web. Mengaktifkan opsi ini akan menghilangkan peningkatan overhead memori ram dan CPU pada halaman web akibat diterapkannya filter tampilan generik.\n\nDirekomendasikan untuk mengaktifkan opsi ini pada perangkat dengan performa rendah.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Tunda aktivitas jaringan sampai semua daftar filter dimuat", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Daftar host yang diblokir", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Berisi domain atau halaman situs terpercaya, uBlock Origin akan dinonaktifkan. Satu entri per baris. Entri yang tidak valid akan diabaikan dan dijadikan komentar.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Impor dan tambahkan", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Buka", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Buat laporan baru", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Temukan laporan serupa", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentasi", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Baca dokumentasi di uBlock/wiki untuk mempelajari semua fitur uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Pertanyaan dan dukungan", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Jawaban pertanyaan dan dukungan bantuan lainnya tersedia di subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Masalah filter/situs web rusak", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Laporkan masalah filter pada situs web ke pelacak masalah uBlockOrigin/uAssets. Membutuhkan akun GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Penting: Hindari menggunakan pemblokir sejenis bersamaan dengan uBlock Origin, karena mungkin akan mengakibatkan terjadinya masalah filter pada situs web tertentu.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Pastikan filter Anda selalu yang terbaru. Pencatat log adalah utilitas utama untuk mendiagnosis masalah yang terkait dengan filter.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Laporan bug", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Laporkan masalah ekstensi uBlock Origin ke pelacak masalah uBlockOrigin/uBlock-issue. Membutuhkan akun GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informasi penyelesaian masalah", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Di bawah ini adalah informasi teknis yang mungkin berguna saat sukarelawan berusaha membantu memecahkan masalah Anda.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Penting: Informasi yang sifatnya privat dan sensitif disensor secara bawaan. Informasi yang disensor mungkin akan membuat proses memecahkan masalah semakin sulit.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Laporkan masalah filter", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Untuk mengurangi beban relawan dengan laporan sama berulang, harap verifikasi bahwa masalah tersebut belum dilaporkan.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Alamat laman web:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Laman web...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pilih entri --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Menampilkan iklan atau sejenisnya", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Memiliki overlay atau gangguan lainnya", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Mendeteksi uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Memiliki masalah terkait privasi", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Rusak saat uBlock Origin aktif", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Membuka tab atau jendela yang tidak diinginkan", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Beri label halaman web sebagai “TAUSB” (“Tidak Aman Untuk Saat Bekerja”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Sensor", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Batal sensor", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Kebijakan privasi", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Catatan perubahan", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Dukungan", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Pelacak masalah", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Kode sumber (GPLv3)", "description": "English: Source code (GPLv3)" @@ -892,11 +1032,11 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBO's own filter lists are freely hosted on the following CDNs:", + "message": "Daftar filter milik uBO dihosting secara bebas pada CDN berikut:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "A randomly picked CDN is used when a filter list needs to be updated", + "message": "CDN yang dipilih secara acak digunakan saat daftar filter perlu diperbarui", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -1075,13 +1215,17 @@ "message": "Salin ke papan klip", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Aktif/Nonaktifkan pemblokiran profil", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Pilih semua", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Aktif/Nonaktifkan filter tampilan", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Perlonggar mode pemblokiran", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Penyimpanan terpakai: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/it/messages.json ublock-origin-1.42.0+dfsg/src/_locales/it/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/it/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/it/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Info", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Supporto", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Visualizzatore di risorse", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Vai al registro delle richieste", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Segnala un problema su questo sito", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Disabilita/abilita il blocco di tutti i popup per questo sito", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Adatto ai daltonici", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Aspetto", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Tema", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Colore di risalto personalizzato", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Abilita supporto salvataggio nel cloud", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Sono un utente avanzato (Lettura obbligatoria)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "impostazioni avanzate", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Disattiva pre-fetching (per evitare qualsiasi connessione per le richieste di rete bloccate)", @@ -383,6 +399,18 @@ "message": "Rivela i nomi canonici", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Avanzate", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Caratteristiche adatte solo ad utenti tecnici.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "impostazioni avanzate", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Ultimo ripristino:", "description": "English: Last restore:" @@ -412,7 +440,7 @@ "description": "A button in the in the _3rd-party filters_ pane" }, "3pParseAllABPHideFiltersPrompt1": { - "message": "Utilizza Adblock+ element hiding filters.", + "message": "Analizza e applica filtri cosmetici", "description": "English: Parse and enforce Adblock+ element hiding filters." }, "3pParseAllABPHideFiltersInfo": { @@ -427,6 +455,10 @@ "message": "

I filtri cosmetici generici sono i filtri cosmetici intesi per essere applicati a tutti i siti Web.

Benché questi siano gestiti in modo efficiente da uBlock₀, i filtri cosmetici generici potrebbero contribuire a un carico elevato in termini di memoria e CPU su alcune pagine Web, in particolare quelle di notevoli dimensioni e a lunga scadenza.

L'attivazione di quest'opzione eliminerà il carico elevato in termini di memoria e CPU aggiunto alle pagine Web in conseguenza della gestione dei filtri cosmetici generici, e inoltre ridurrà l'impatto sulla memoria di uBlock₀ stesso.

È raccomandato abilitare quest'opzione sui dispositivi meno potenti.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Sospendi l'attività di rete finché non vengono caricate tutte le liste filtri", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lista degli hosts bloccati", "description": "English: Lists of blocked hosts" @@ -496,7 +528,7 @@ "description": "used as a tooltip for error icon beside a list" }, "1pFormatHint": { - "message": "Un filtro per ogni riga. Un filtro può essere un hostname, o un filtro compatibile con Adblock Plus. Ogni riga che comincia con ! verrà ignorata.", + "message": "Un filtro per riga. Un filtro può essere un semplice hostname, o un filtro compatibile con EasyList. Ogni riga che comincia con ! verrà ignorata.", "description": "Short information about how to create custom filters" }, "1pImport": { @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Lista dei siti dove uBlock è disattivato. Un sito per ogni riga. Le voci non valide verranno silenziosamente ignorate.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importa e aggiungi", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Apri", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Crea una nuova segnalazione", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Trova segnalazioni simili", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentazione", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Leggi la documentazione su uBlock/wiki per conoscere tutte le funzionalità di uBlock Origin.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Domande e supporto", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Le risposte alle domande e ad altri tipi di supporto sono fornite sul subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Problemi dei filtri/siti malfunzionanti", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Segnala problemi dei filtri con siti specifici al tracciatore di bug uBlockOrigin/uAssets. Richiede un account GitHub.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Importante: Evita di utilizzare altre estensioni simili insieme a uBlock Origin, poiché ciò potrebbe causare problemi di filtro su specifici siti.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Suggerimenti: Assicurati che le tue liste di filtri siano aggiornate. Il registro è lo strumento principale per diagnosticare i problemi relativi ai filtri.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Segnalazione di errori", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Segnala problemi di uBlock Origin stesso al tracciatore di bug uBlockOrigin/uBlock-issue. Richiede un account GitHub.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Informazioni sulla risoluzione dei problemi", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Di seguito sono riportate le informazioni tecniche che potrebbero essere utili quando i volontari stanno cercando di aiutarti a risolvere un problema.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Importante: Le informazioni potenzialmente private o sensibili vengono oscurate automaticamente. Le informazioni oscurate possono rendere più difficile risolvere un problema.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Segnala un problema con un filtro", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Per evitare di appesantire i volontari con segnalazioni doppie, verifica che il problema non sia già stato segnalato.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Indirizzo della pagina web:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "La pagina web...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "Scegli una voce", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Mostra pubblicità o avanzi di pubblicità", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Ha sovrapposizioni o altri fastidi", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Rileva uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Ha problemi relativi alla privacy", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Si rompe quando uBlock Origin è attivato", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Apre schede o finestre indesiderate", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Etichetta la pagina web come “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Oscura", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Non oscurare", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Codice di condotta sulla privacy", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Changelog", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Supporto", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Problemi segnalati", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Codice sorgente (GPLv3)", "description": "English: Source code (GPLv3)" @@ -892,7 +1032,7 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "Gli elenchi di filtri di uBO sono liberamente ospitati sul seguente CDN:", + "message": "Gli elenchi di filtri di uBO sono liberamente ospitati sui seguenti CDN:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { @@ -912,7 +1052,7 @@ "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Riparti da zero...", + "message": "Ripristina le impostazioni predefinite…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1075,13 +1215,17 @@ "message": "Copia negli appunti", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Attiva / disattiva il profilo di blocco", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Seleziona tutto", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Attiva/Disattiva filtri cosmetici", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Rilassa la modalità di blocco", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Spazio utilizzato: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/ja/messages.json ublock-origin-1.42.0+dfsg/src/_locales/ja/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/ja/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/ja/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -4,7 +4,7 @@ "description": "extension name." }, "extShortDesc": { - "message": "高効率ブロッカーが遂に登場。CPUとメモリーの負担を抑えます。", + "message": "高効率ブロッカーついに登場。CPU とメモリーに負担をかけません。", "description": "this will be in the Chrome web store: must be 132 characters or less" }, "dashboardName": { @@ -12,7 +12,7 @@ "description": "English: uBlock₀ — Dashboard" }, "dashboardUnsavedWarning": { - "message": "注意! 保存していない変更があります", + "message": "警告! 保存していない変更があります", "description": "A warning in the dashboard when navigating away from unsaved changes" }, "dashboardUnsavedWarningStay": { @@ -20,27 +20,27 @@ "description": "Label for button to prevent navigating away from unsaved changes" }, "dashboardUnsavedWarningIgnore": { - "message": "無視する", + "message": "無視", "description": "Label for button to ignore unsaved changes" }, "settingsPageName": { - "message": " 設定", + "message": "設定", "description": "appears as tab name in dashboard" }, "3pPageName": { - "message": "フィルター一覧", + "message": "フィルターリスト", "description": "appears as tab name in dashboard" }, "1pPageName": { - "message": "Myフィルター", + "message": "マイフィルター", "description": "appears as tab name in dashboard" }, "rulesPageName": { - "message": "Myルール", + "message": "マイルール", "description": "appears as tab name in dashboard" }, "whitelistPageName": { - "message": "信頼されたサイト", + "message": "信頼するサイト", "description": "appears as tab name in dashboard" }, "shortcutsPageName": { @@ -48,11 +48,15 @@ "description": "appears as tab name in dashboard" }, "statsPageName": { - "message": "uBlock₀ — ネットワークリクエストログ", + "message": "uBlock₀ — ログ", "description": "Title for the logger window" }, "aboutPageName": { - "message": "このプロジェクトについて", + "message": "uBlock₀ について", + "description": "appears as tab name in dashboard" + }, + "supportPageName": { + "message": "サポート", "description": "appears as tab name in dashboard" }, "assetViewerPageName": { @@ -60,23 +64,23 @@ "description": "Title for the asset viewer page" }, "advancedSettingsPageName": { - "message": "上級者向け設定", + "message": "高度な設定", "description": "Title for the advanced settings page" }, "popupPowerSwitchInfo": { - "message": "uBlock₀ の有効 / 無効を切り替えます。\n\nクリック: サイト全体 \nCtrl+クリック: このページのみ", + "message": "クリック: このサイトで uBlock₀ を無効または有効にします。\n\nCtrl+クリック: このページだけで uBlock₀ を無効にします。", "description": "English: Click: disable/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page." }, "popupPowerSwitchInfo1": { - "message": "クリックで、このサイト全体において uBlock₀ を無効化します。\n\nCtrl+クリックで、このページでのみ uBlock₀ を無効化します。", + "message": "クリックするとこのサイトで uBlock₀ を無効にします。\n\nCtrl+クリックでこのページだけで uBlock₀ を無効にします。", "description": "Message to be read by screen readers" }, "popupPowerSwitchInfo2": { - "message": "クリックで、このサイトにおいて uBlock₀ を有効化します。", + "message": "クリックするとこのサイトで uBlock₀ を有効にします。", "description": "Message to be read by screen readers" }, "popupBlockedRequestPrompt": { - "message": "ブロックされたリクエスト", + "message": "ブロックしたリクエスト数", "description": "English: requests blocked" }, "popupBlockedOnThisPagePrompt": { @@ -84,7 +88,7 @@ "description": "English: on this page" }, "popupBlockedStats": { - "message": "{{count}}件 / {{percent}}%", + "message": "{{count}} 件 ({{percent}} %)", "description": "Example: 15 (13%)" }, "popupBlockedSinceInstallPrompt": { @@ -92,19 +96,19 @@ "description": "English: since install" }, "popupOr": { - "message": "or", + "message": "/", "description": "English: or" }, "popupBlockedOnThisPage_v2": { - "message": "このページでブロックした数", + "message": "このページでのブロック数", "description": "For the new mobile-friendly popup design" }, "popupBlockedSinceInstall_v2": { - "message": "これまでにブロックした総数", + "message": "インストールからのブロック数", "description": "For the new mobile-friendly popup design" }, "popupDomainsConnected_v2": { - "message": "接続したドメイン", + "message": "接続したドメイン数", "description": "For the new mobile-friendly popup design" }, "popupTipDashboard": { @@ -112,71 +116,75 @@ "description": "English: Click to open the dashboard" }, "popupTipZapper": { - "message": "要素隠蔽モードに移行", + "message": "要素抹消モードに入る", "description": "Tooltip for the element-zapper icon in the popup panel" }, "popupTipPicker": { - "message": "要素選択モードに移行", + "message": "要素選択モードに入る", "description": "English: Enter element picker mode" }, "popupTipLog": { - "message": "リクエストログを開く", + "message": "ログを開く", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "このサイト上での問題を報告", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { - "message": "このサイトのすべてのポップアップのブロックを切り替えます", + "message": "このサイトに対するポップアップブロックの有効/無効をすべて切り替えます", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups1": { - "message": "クリックで、このサイトでのすべてのポップアップをブロックします", + "message": "クリックするとこのサイトのポップアップをすべてブロックします", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoPopups2": { - "message": "クリックで、このサイトでのすべてのポップアップがブロックされないようにします", + "message": "クリックするとこのサイトのポップアップをすべてブロックしなくなります", "description": "Tooltip for the no-popups per-site switch" }, "popupTipNoLargeMedia": { - "message": "このサイトでの大きなメディア要素のブロックを切り替えます", + "message": "このサイトに対する大きなメディア要素のブロックの有効/無効を切り替えます", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia1": { - "message": "クリックで、このサイトでの大きなメディア要素をブロックします", + "message": "クリックするとこのサイトの大きなメディア要素をブロックします", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoLargeMedia2": { - "message": "クリックで、このサイトでの大きなメディア要素がブロックされないようにします", + "message": "クリックするとこのサイトの大きなメディア要素をブロックしなくなります", "description": "Tooltip for the no-large-media per-site switch" }, "popupTipNoCosmeticFiltering": { - "message": "このサイトの要素隠蔽フィルターを切り替えます", + "message": "このサイトに対する整形フィルタリングの有効/無効を切り替えます", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering1": { - "message": "クリックで、このサイトでの要素隠蔽フィルターを無効化します", + "message": "クリックするとこのサイトでの整形フィルタリングを無効にします", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoCosmeticFiltering2": { - "message": "クリックで、このサイトでの要素隠蔽フィルターを有効化します", + "message": "クリックするとこのサイトでの整形フィルタリングを有効にします", "description": "Tooltip for the no-cosmetic-filtering per-site switch" }, "popupTipNoRemoteFonts": { - "message": "このサイトでのリモートフォントのブロックを切り替えます", + "message": "このサイトに対するリモートフォントのブロックの有効/無効を切り替えます", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts1": { - "message": "クリックで、このサイトでのリモートフォントをブロックします", + "message": "クリックするとこのサイトのリモートフォントをブロックします", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoRemoteFonts2": { - "message": "クリックで、このサイトでのリモートフォントがブロックされないようにします", + "message": "クリックするとこのサイトのリモートフォントをブロックしなくなります", "description": "Tooltip for the no-remote-fonts per-site switch" }, "popupTipNoScripting1": { - "message": "クリックすると、このサイトの JavaScript をブロックします", + "message": "クリックするとこのサイトの JavaScript を無効にします", "description": "Tooltip for the no-scripting per-site switch" }, "popupTipNoScripting2": { - "message": "クリックすると、このサイトの JavaScript のブロックを解除します", + "message": "クリックするとこのサイトの JavaScript は無効にならなくなります", "description": "Tooltip for the no-scripting per-site switch" }, "popupNoPopups_v2": { @@ -188,7 +196,7 @@ "description": "Caption for the no-large-media per-site switch" }, "popupNoCosmeticFiltering_v2": { - "message": "要素隠蔽フィルタリング", + "message": "整形フィルタリング", "description": "Caption for the no-cosmetic-filtering per-site switch" }, "popupNoRemoteFonts_v2": { @@ -200,27 +208,27 @@ "description": "Caption for the no-scripting per-site switch" }, "popupMoreButton_v2": { - "message": "表示量を増やす", + "message": "さらに表示", "description": "Label to be used to show popup panel sections" }, "popupLessButton_v2": { - "message": "表示量を減らす", + "message": "折りたたむ", "description": "Label to be used to hide popup panel sections" }, "popupTipGlobalRules": { - "message": "グローバルルール: この列にあるルールは、すべてのサイトに適用されます。", + "message": "グローバルルール: この列のルールはすべてのサイトに適用されます。", "description": "Tooltip when hovering the top-most cell of the global-rules column." }, "popupTipLocalRules": { - "message": "ローカルルール: この列にあるルールは、現在のサイトにのみ適用されます。\nローカルルールはグローバルルールを上書きします。", + "message": "ローカルルール: この列のルールは現在のサイトだけに適用されます。\nローカルルールはグローバルルールを上書きします。", "description": "Tooltip when hovering the top-most cell of the local-rules column." }, "popupTipSaveRules": { - "message": "クリックで変更を保存します。", + "message": "クリックすると変更を確定します。", "description": "Tooltip when hovering over the padlock in the dynamic filtering pane." }, "popupTipRevertRules": { - "message": "クリックで変更を元に戻します。", + "message": "クリックすると変更を元に戻します。", "description": "Tooltip when hovering over the eraser in the dynamic filtering pane." }, "popupAnyRulePrompt": { @@ -232,11 +240,11 @@ "description": "" }, "popup3pAnyRulePrompt": { - "message": "サードパーティー", + "message": "サードパーティ", "description": "" }, "popup3pPassiveRulePrompt": { - "message": "サードパーティー CSS/画像", + "message": "サードパーティ CSS/画像", "description": "" }, "popupInlineScriptRulePrompt": { @@ -244,23 +252,23 @@ "description": "" }, "popup1pScriptRulePrompt": { - "message": "ファーストパーティースクリプト", + "message": "ファーストパーティスクリプト", "description": "" }, "popup3pScriptRulePrompt": { - "message": "サードパーティースクリプト", + "message": "サードパーティスクリプト", "description": "" }, "popup3pFrameRulePrompt": { - "message": "サードパーティーフレーム", + "message": "サードパーティフレーム", "description": "" }, "popupHitDomainCountPrompt": { - "message": "接続したドメイン", + "message": "接続したドメイン数", "description": "appears in popup" }, "popupHitDomainCount": { - "message": "{{count}} / {{total}}", + "message": "{{count}} 件 ({{total}} 件中)", "description": "appears in popup" }, "popupVersion": { @@ -268,11 +276,11 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: サードパーティのスクリプトを含む行を強調する", + "message": "↑: サードパーティスクリプトを含む行を強調表示します", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: サードパーティフレームがある行を強調します", + "message": "↑: サードパーティフレームを含む行を強調表示します", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { @@ -292,11 +300,11 @@ "description": "Element picker preview mode: will cause the elements matching the current filter to be removed from the page" }, "pickerNetFilters": { - "message": "ネットフィルター", + "message": "ネットワークフィルター", "description": "English: header for a type of filter in the element picker dialog" }, "pickerCosmeticFilters": { - "message": "要素隠蔽フィルター", + "message": "整形フィルター", "description": "English: Cosmetic filters" }, "pickerCosmeticFiltersHint": { @@ -304,15 +312,15 @@ "description": "English: Click, Ctrl-click" }, "pickerContextMenuEntry": { - "message": "要素をブロック", + "message": "要素をブロック...", "description": "An entry in the browser's contextual menu" }, "settingsCollapseBlockedPrompt": { - "message": "ブロックされた要素の設置場所全てを非表示にする", + "message": "ブロックした要素のプレースホルダーを非表示にする", "description": "English: Hide placeholders of blocked elements" }, "settingsIconBadgePrompt": { - "message": "ブロックされたリクエスト数をアイコンに表示する", + "message": "ブロックしたリクエストの数をアイコンに表示する", "description": "English: Show the number of blocked requests on the icon" }, "settingsTooltipsPrompt": { @@ -320,27 +328,35 @@ "description": "A checkbox in the Settings pane" }, "settingsContextMenuPrompt": { - "message": "コンテキストメニューを適切な場合に使用する", + "message": "状況に合わせてコンテキストメニューを活用する", "description": "English: Make use of context menu where appropriate" }, "settingsColorBlindPrompt": { - "message": "色覚障害の人に見やすい色で表示する", + "message": "色覚多様性に配慮した色を使用する", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "外観", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "テーマ", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "カスタムアクセントカラー", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "クラウドストレージのサポートを有効にする", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "私は上級者です (※必ずお読みください)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "詳細設定", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "私は上級者です", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { - "message": "先読みを無効にする (ブロックされたネットワークへの接続を防止するため)", + "message": "先読み機能を無効にする (ブロックしているネットワークリクエストへの接続を完全に防ぐため)", "description": "English: " }, "settingsHyperlinkAuditingDisabledPrompt": { @@ -348,23 +364,23 @@ "description": "English: " }, "settingsWebRTCIPAddressHiddenPrompt": { - "message": "ローカルIPアドレスの漏洩をもたらすWebRTCを防止する", + "message": "WebRTC によるローカル IP アドレスの漏洩を防ぐ", "description": "English: " }, "settingPerSiteSwitchGroup": { - "message": "デフォルトの動作", + "message": "既定の動作", "description": "" }, "settingPerSiteSwitchGroupSynopsis": { - "message": "以下の設定による動作は、サイトごとに上書きできます", + "message": "以下の既定の動作はサイトごとに上書きできます", "description": "" }, "settingsNoCosmeticFilteringPrompt": { - "message": "要素隠蔽フィルターを無効にする", + "message": "整形フィルタリングを無効にする", "description": "" }, "settingsNoLargeMediaPrompt": { - "message": "{{input}} kB より大きいメディア要素をブロックする", + "message": "{{input}} KB より大きいメディア要素をブロックする", "description": "" }, "settingsNoRemoteFontsPrompt": { @@ -372,31 +388,43 @@ "description": "" }, "settingsNoScriptingPrompt": { - "message": "JavaScript をブロックする", + "message": "JavaScript を無効にする", "description": "The default state for the per-site no-scripting switch" }, "settingsNoCSPReportsPrompt": { - "message": "CSPレポートをブロックする", + "message": "CSP レポートをブロックする", "description": "background information: https://github.com/gorhill/uBlock/issues/3150" }, "settingsUncloakCnamePrompt": { - "message": "CNAMEクローキングを制限", + "message": "CNAME クローキングを解除する", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "高度な設定", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "技術に詳しいユーザーのみを対象にした機能です", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "高度な設定", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { - "message": "最後の復元:", + "message": "前回の復元:", "description": "English: Last restore:" }, "settingsLastBackupPrompt": { - "message": "最後のバックアップ:", + "message": "前回のバックアップ:", "description": "English: Last backup:" }, "3pListsOfBlockedHostsPrompt": { - "message": "{{netFilterCount}}個のネットワークフィルター+{{cosmeticFilterCount}}個の要素隠蔽フィルター:", + "message": "{{netFilterCount}} 行のネットワークフィルター + {{cosmeticFilterCount}} 行の整形フィルター:", "description": "Appears at the top of the _3rd-party filters_ pane" }, "3pListsOfBlockedHostsPerListStats": { - "message": "{{total}}個中{{used}}使用", + "message": "{{total}} 行中 {{used}} 行使用", "description": "Appears aside each filter list in the _3rd-party filters_ pane" }, "3pAutoUpdatePrompt1": { @@ -408,35 +436,39 @@ "description": "A button in the in the _3rd-party filters_ pane" }, "3pPurgeAll": { - "message": "全キャッシュを削除", + "message": "キャッシュをすべて削除", "description": "A button in the in the _3rd-party filters_ pane" }, "3pParseAllABPHideFiltersPrompt1": { - "message": "要素隠蔽フィルターを解析、施行する", + "message": "整形フィルターを解析して適用する", "description": "English: Parse and enforce Adblock+ element hiding filters." }, "3pParseAllABPHideFiltersInfo": { - "message": "

このオプションはAdblock Plus適合の“要素隠蔽”フィルターの解析と施行を有効にします。これらのフィルターは表面的で、ネットリクエストベースのフィルタリングエンジンでブロックできない視覚的に迷惑な要素をウェブページ上で隠す物です。

この機能を有効にするとuBlock₀の使用メモリーを増やします。

", + "message": "整形フィルターは、ネットワークリクエストに基づいたフィルタリングエンジンではブロックできない、邪魔とみなされる視覚的要素をウェブページ上から隠すという機能を果たします。", "description": "Describes the purpose of the 'Parse and enforce cosmetic filters' feature." }, "3pIgnoreGenericCosmeticFilters": { - "message": "汎用的な要素隠蔽フィルターを無視する", + "message": "汎用整形フィルターを無視する", "description": "This will cause uBO to ignore all generic cosmetic filters." }, "3pIgnoreGenericCosmeticFiltersInfo": { - "message": "

汎用的な要素隠蔽フィルターとは、すべてのウェブサイトに適用される要素隠蔽フィルターのことです。

これはuBlock₀によって効率的に処理されますが、特に大規模で長期運営されている一部のウェブページ上では、メモリ使用量や処理時間に目に見える影響を与えることがあります。

このオプションを有効にすると、汎用的な要素隠蔽フィルターを処理するためにウェブページごとに追加されるメモリ使用量や処理時間を減らし、さらにuBlock₀自体のメモリ使用量を軽減できます。

低スペックの環境では、このオプションを有効にすることを推奨します。", + "message": "汎用整形フィルターとは、すべてのウェブサイトに適用することを目的とした非表示フィルターです。このオプションを有効にすると、汎用非表示フィルターを処理する結果としてウェブページに加わる、メモリーと CPU のオーバーヘッドが削減されます。\n\n性能の低い端末ではこのオプションを有効にすることをお勧めします。", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "フィルターリストをすべて読み込むまで、ネットワークアクティビティを停止する", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { - "message": "ブロックされたホストの一覧表示", + "message": "ブロックしたホストの一覧", "description": "English: Lists of blocked hosts" }, "3pApplyChanges": { - "message": "適用", + "message": "変更を適用", "description": "English: Apply changes" }, "3pGroupDefault": { - "message": "内製フィルター", + "message": "内製", "description": "Header for the uBlock filters section in 'Filter lists pane'" }, "3pGroupAds": { @@ -448,7 +480,7 @@ "description": "English: Privacy" }, "3pGroupMalware": { - "message": "マルウェア ドメイン", + "message": "マルウェアドメイン", "description": "English: Malware domains" }, "3pGroupAnnoyances": { @@ -460,7 +492,7 @@ "description": "English: Multipurpose" }, "3pGroupRegions": { - "message": "地域、言語", + "message": "地域・言語", "description": "English: Regions, languages" }, "3pGroupCustom": { @@ -472,19 +504,19 @@ "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { - "message": "1行に1つのURLを記入します。無効なURLは無視されます。", + "message": "1 行につき 1 つの URL です。無効な URL はそのまま無視されます。", "description": "Short information about how to use the textarea to import external filter lists by URL" }, "3pExternalListObsolete": { - "message": "古いバージョンです", + "message": "期限切れです。", "description": "used as a tooltip for the out-of-date icon beside a list" }, "3pViewContent": { - "message": "内容を表示する", + "message": "中身を表示します", "description": "used as a tooltip for eye icon beside a list" }, "3pLastUpdate": { - "message": "最終更新: {{ago}}\nクリックすると強制的に更新します", + "message": "最終更新: {{ago}}。\nクリックすると強制的に更新できます。", "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { @@ -496,11 +528,11 @@ "description": "used as a tooltip for error icon beside a list" }, "1pFormatHint": { - "message": "1行につき1つのフィルターです。フィルターはただのホストネームでもAdblock Plus書式のフィルターでも構いません。! が先頭にある行は無視されます。", + "message": "1 行につき 1 つのフィルターです。フィルターはただのホスト名でも EasyList と同じ形式でも構いません。! を先頭に付けた行は無視されます。", "description": "Short information about how to create custom filters" }, "1pImport": { - "message": "インポートと追加", + "message": "インポートして追加", "description": "English: Import and append" }, "1pExport": { @@ -516,11 +548,11 @@ "description": "English: Apply changes" }, "rulesPermanentHeader": { - "message": "恒久的なルール", + "message": "永続ルール", "description": "header" }, "rulesTemporaryHeader": { - "message": "一時的なルール", + "message": "一時ルール", "description": "header" }, "rulesRevert": { @@ -528,7 +560,7 @@ "description": "This will remove all temporary rules" }, "rulesCommit": { - "message": "確定する", + "message": "確定", "description": "This will persist temporary rules" }, "rulesEdit": { @@ -548,7 +580,7 @@ "description": "" }, "rulesExport": { - "message": "ファイルへエクスポート", + "message": "ファイルにエクスポート", "description": "" }, "rulesDefaultFileName": { @@ -556,19 +588,19 @@ "description": "default file name to use" }, "rulesHint": { - "message": "ダイナミックフィルタリングルールの一覧", + "message": "動的フィルタリングルールの一覧です。", "description": "English: List of your dynamic filtering rules." }, "rulesFormatHint": { - "message": "ルールの書き方: source destination type action (詳しい説明)", + "message": "ルールの構文: 発信源 通信先 タイプ アクション (詳しい解説)", "description": "English: dynamic rule syntax and full documentation." }, "rulesSort": { - "message": "並べ替え", + "message": "並べ替え:", "description": "English: label for sort option." }, "rulesSortByType": { - "message": "種類", + "message": "ルールの種類", "description": "English: a sort option for list of rules." }, "rulesSortBySource": { @@ -580,11 +612,11 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "uBlock₀が無効になるホスト名の一覧です。1行につき1つのエントリで、無効なホスト名は無視されます。", - "description": "The name of the trusted sites pane." + "message": "[信頼するサイト] では uBlock Origin を無効にするウェブページを指定します。1 行につき 1 つのエントリーです。", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { - "message": "インポートと追加", + "message": "インポートして追加", "description": "English: Import and append" }, "whitelistExport": { @@ -616,7 +648,7 @@ "description": "English: Filter" }, "logAll": { - "message": "全て", + "message": "すべて", "description": "Appears in the logger's tab selector" }, "logBehindTheScene": { @@ -628,43 +660,43 @@ "description": "Appears in the logger's tab selector" }, "loggerReloadTip": { - "message": "タブを再読込する", + "message": "タブを再読み込みします", "description": "Tooltip for the reload button in the logger page" }, "loggerDomInspectorTip": { - "message": "DOMインスペクタを表示・非表示", + "message": "DOM インスペクターの表示/非表示を切り替えます", "description": "Tooltip for the DOM inspector button in the logger page" }, "loggerPopupPanelTip": { - "message": "ポップアップパネルを表示・非表示", + "message": "ポップアップパネルの表示/非表示を切り替えます", "description": "Tooltip for the popup panel button in the logger page" }, "loggerInfoTip": { - "message": "リクエストログ機能の wiki ページを開く", + "message": "uBlock Origin wiki: ログ", "description": "Tooltip for the top-right info label in the logger page" }, "loggerClearTip": { - "message": "ログを消去する", + "message": "ログを消去します", "description": "Tooltip for the eraser in the logger page; used to blank the content of the logger" }, "loggerPauseTip": { - "message": "ログの取得を一時停止する(以後のログは破棄)", + "message": "ログの出力を中断します (以後のデータはすべて破棄)", "description": "Tooltip for the pause button in the logger page" }, "loggerUnpauseTip": { - "message": "ログの取得を再開する", + "message": "ログの出力を再開します", "description": "Tooltip for the play button in the logger page" }, "loggerRowFiltererButtonTip": { - "message": "絞り込みのオン・オフ", + "message": "ログの絞り込みの有効/無効を切り替えます", "description": "Tooltip for the row filterer button in the logger page" }, "logFilterPrompt": { - "message": "絞り込み", + "message": "出力するログを絞り込む", "description": "Placeholder string for logger output filtering input field" }, "loggerRowFiltererBuiltinTip": { - "message": "絞り込みオプションを表示", + "message": "ログ絞り込みオプション", "description": "Tooltip for the button to bring up logger output filtering options" }, "loggerRowFiltererBuiltinNot": { @@ -672,7 +704,7 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltinEventful": { - "message": "フィルター処理あり", + "message": "フィルタリングした", "description": "A keyword in the built-in row filtering expression: all items corresponding to uBO doing something (blocked, allowed, redirected, etc.)" }, "loggerRowFiltererBuiltinBlocked": { @@ -688,11 +720,11 @@ "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltin1p": { - "message": "ファーストパーティー", + "message": "ファーストパーティ", "description": "A keyword in the built-in row filtering expression" }, "loggerRowFiltererBuiltin3p": { - "message": "サードパーティー", + "message": "サードパーティ", "description": "A keyword in the built-in row filtering expression" }, "loggerEntryDetailsHeader": { @@ -712,19 +744,19 @@ "description": "Label to identify a rule field" }, "loggerEntryDetailsContext": { - "message": "リクエストが発生した場所", + "message": "コンテキスト", "description": "Label to identify a context field (typically a hostname)" }, "loggerEntryDetailsRootContext": { - "message": "最初にリクエストが発生した場所", + "message": "ルートコンテキスト", "description": "Label to identify a root context field (typically a hostname)" }, "loggerEntryDetailsPartyness": { - "message": "ファースト/サードパーティー種別", + "message": "パーティ種別", "description": "Label to identify a field providing partyness information" }, "loggerEntryDetailsType": { - "message": "種類", + "message": "タイプ", "description": "Label to identify the type of an entry" }, "loggerEntryDetailsURL": { @@ -736,7 +768,7 @@ "description": "Small header to identify the dynamic URL filtering section" }, "loggerURLFilteringContextLabel": { - "message": "リクエストが発生した場所: ", + "message": "コンテキスト:", "description": "Label for the context selector" }, "loggerURLFilteringTypeLabel": { @@ -748,7 +780,7 @@ "description": "Small header to identify the static filtering section" }, "loggerStaticFilteringSentence": { - "message": "URLアドレスが {{url}} と一致し{{br}}発信源が {{origin}} であり{{br}}リクエストの種類が {{type}} のとき、要素を {{action}} する。{{br}}例外フィルターと一致する場合、{{importance}} を優先する。", + "message": "一致する例外フィルター {{importance}}{{br}}{{url}} に URL アドレスが一致し{{br}}{{origin}} 発信された{{br}}{{type}} のネットワークリクエストを {{action}} する。", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartBlock": { @@ -760,59 +792,59 @@ "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartType": { - "message": "{{type}}", + "message": "タイプ “{{type}}”", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartAnyType": { - "message": "任意", + "message": "任意のタイプ", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartOrigin": { - "message": "{{origin}}", + "message": "“{{origin}}” から", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartAnyOrigin": { - "message": "任意", + "message": "任意のサイトから", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartNotImportant": { - "message": "例外フィルター", + "message": "がない場合", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringSentencePartImportant": { - "message": "このフィルター", + "message": "に関係なく", "description": "Used in the static filtering wizard" }, "loggerStaticFilteringFinderSentence1": { - "message": "静的フィルター {{filter}} が見つかりました:", + "message": "この静的フィルター {{filter}} を含むフィルターリスト:", "description": "Below this sentence, the filter list(s) in which the filter was found" }, "loggerStaticFilteringFinderSentence2": { - "message": "現在 有効にしているフィルターの中には、静的フィルターが見つかりませんでした", + "message": "この静的フィルターは現在有効なフィルターリストのどれにも含まれていません", "description": "Message to show when a filter cannot be found in any filter lists" }, "loggerSettingDiscardPrompt": { - "message": "以下の条件をひとつでも満たさないログは自動的に削除されます。", + "message": "以下の 3 つの条件から 1 つでも外れたログは自動的に破棄されます:", "description": "Logger setting: A sentence to describe the purpose of the settings below" }, "loggerSettingPerEntryMaxAge": { - "message": "直近の {{input}} 分間のログを保持する", + "message": "過去 {{input}} 分間のログを保持する", "description": "A logger setting" }, "loggerSettingPerTabMaxLoads": { - "message": "タブあたり最大 {{input}} ページ分の読み込みを保持する", + "message": "1 つのタブにつき最大 {{input}} ページの読み込みを保持する", "description": "A logger setting" }, "loggerSettingPerTabMaxEntries": { - "message": "タブあたり最大 {{input}} 行のログを保持する", + "message": "1 つのタブにつき最大 {{input}} 件のログを保持する", "description": "A logger setting" }, "loggerSettingPerEntryLineCount": { - "message": "拡張表示の時はログ1項目を {{input}} 行で表示する", + "message": "展開表示モードではログ 1 件につき {{input}} 行で表示する", "description": "A logger setting" }, "loggerSettingHideColumnsPrompt": { - "message": "非表示にする列:", + "message": "非表示にする列:", "description": "Logger settings: a sentence to describe the purpose of the checkboxes below" }, "loggerSettingHideColumnTime": { @@ -820,33 +852,153 @@ "description": "A label for the time column" }, "loggerSettingHideColumnFilter": { - "message": "{{input}} フィルター/ルール", + "message": "{{input}} フィルター/ルール", "description": "A label for the filter or rule column" }, "loggerSettingHideColumnContext": { - "message": "{{input}} リクエストが発生した場所", + "message": "{{input}} コンテキスト", "description": "A label for the context column" }, "loggerSettingHideColumnPartyness": { - "message": "{{input}} ファースト/サードパーティー種別", + "message": "{{input}} パーティ種別", "description": "A label for the partyness column" }, "loggerExportFormatList": { - "message": "リスト表示", + "message": "リスト形式", "description": "Label for radio-button to pick export format" }, "loggerExportFormatTable": { - "message": "表で表示", + "message": "表形式", "description": "Label for radio-button to pick export format" }, "loggerExportEncodePlain": { - "message": "通常表示", + "message": "テキスト形式", "description": "Label for radio-button to pick export text format" }, "loggerExportEncodeMarkdown": { "message": "Markdown 形式", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "開く", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "新しい報告を作成", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "似た報告を探す", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "ドキュメント", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "uBlock Origin のすべての機能については uBlock/wiki のドキュメントをお読みください。", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "質問とサポート", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "質問への回答などのヘルプやサポートは /r/uBlockOrigin の subreddit で提供しています。", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "フィルターの問題 / ウェブサイトが正しく動作しない", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "特定のウェブサイトで起きるフィルターの問題は uBlockOrigin/uAssets の Issue トラッカーに報告してください。GitHub のアカウントが必要です。", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "重要: 似た機能を持つブロッカーを uBlock Origin と併用することは控えてください。特定のウェブサイトでフィルターの問題を引き起こすことがあります。", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "ヒント: フィルターリストが最新か確認しましょう。ログはフィルターに関連する問題の原因を調査するための第一のツールです。", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "バグ報告", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "uBlock Origin 自体の問題は uBlockOrigin/uBlock-issue の Issue トラッカーに報告してください。GitHub のアカウントが必要です。", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "トラブルシューティング情報", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "以下の技術情報はボランティアが問題解決の手助けをするときに役立つことがあります。", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "重要: 個人情報や機密情報の可能性のある情報は既定で削除されます。情報が削除されたことによって問題解決が困難になることがあります。", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "フィルターの問題を報告する", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "重複した報告によってボランティアに負担をかけないように、問題がすでに報告されていないか確認してください。", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "ウェブページのアドレス:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "ウェブページは...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- エントリーを選択する --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "広告またはその消し残りを表示します", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "オーバーレイなど邪魔なものがあります", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "uBlock Origin を検出します", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "プライバシーに関連する問題があります", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "uBlock Origin を有効にすると誤動作します", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "勝手にタブやウィンドウを開きます", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "ウェブページに“NSFW” (閲覧注意、“Not Safe For Work”) とラベルをつける", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "編集済にする", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "無編集にする", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "プライバシーポリシー", "description": "Link to privacy policy on GitHub (English)" @@ -855,24 +1007,12 @@ "message": "更新履歴", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "サポート", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "問題追跡システム", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { - "message": "ソースコード (GPLバージョン3)", + "message": "ソースコード (GPLv3)", "description": "English: Source code (GPLv3)" }, "aboutContributors": { - "message": "貢献者達", + "message": "貢献者", "description": "English: Contributors" }, "aboutSourceCode": { @@ -884,23 +1024,23 @@ "description": "Link text to translations repo" }, "aboutFilterLists": { - "message": "内製フィルター", + "message": "フィルターリスト", "description": "Link text to uBO's own filter lists repo" }, "aboutDependencies": { - "message": "外部依存関係(GPLv3 互換)", + "message": "外部依存関係 (GPLv3 と両立):", "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBlock Origin のフィルターリストは以下の CDN を使って無料でホストされています:", + "message": "uBO の内製フィルターリストは以下の CDN に無料でホストしています:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "ランダムに選択された CDN がフィルターリストの更新に使用されます", + "message": "フィルターリストの更新が必要なときにはランダムに選択した CDN を使用します", "description": "Shown in the About pane" }, "aboutBackupDataButton": { - "message": "ファイルにバックアップ...", + "message": "ファイルにバックアップ", "description": "Text for button to create a backup of all settings" }, "aboutBackupFilename": { @@ -912,11 +1052,11 @@ "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "初期設定にリセット", + "message": "初期設定にリセット...", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { - "message": "{{time}}のバックアップデータを使用してすべての設定を上書きした後、uBlock₀が再起動します。\n\nバックアップデータを使用して既存のすべての設定の上書きしますか?", + "message": "すべての設定を {{time}} にバックアップしたデータを使用して上書きした後、uBlock₀ が再起動します。\n\nバックアップデータを使用して既存の設定をすべて上書きしますか?", "description": "Message asking user to confirm restore" }, "aboutRestoreDataError": { @@ -924,7 +1064,7 @@ "description": "Message to display when an error occurred during restore" }, "aboutResetDataConfirm": { - "message": "すべての設定が消去された後、uBlock₀が再起動します。\n\n初期設定にリセットしますか?", + "message": "すべての設定を削除した後、uBlock₀ が再起動します。\n\nuBlock₀ を初期設定にリセットしますか?", "description": "Message asking user to confirm reset" }, "errorCantConnectTo": { @@ -932,15 +1072,15 @@ "description": "English: Network error: {{msg}}" }, "subscriberConfirm": { - "message": "以下のURLをカスタムフィルターに追加しますか?\n\nタイトル: \"{{title}}\"\nURL: {{url}}", + "message": "以下の URL をカスタムフィルターリストに追加しますか?\n\nフィルター名: \"{{title}}\"\nURL: {{url}}", "description": "No longer used" }, "subscribeButton": { - "message": "登録する", + "message": "購読", "description": "For the button used to subscribe to a filter list" }, "elapsedOneMinuteAgo": { - "message": "1分前", + "message": "1 分前", "description": "English: a minute ago" }, "elapsedManyMinutesAgo": { @@ -948,7 +1088,7 @@ "description": "English: {{value}} minutes ago" }, "elapsedOneHourAgo": { - "message": "1時間前", + "message": "1 時間前", "description": "English: an hour ago" }, "elapsedManyHoursAgo": { @@ -956,7 +1096,7 @@ "description": "English: {{value}} hours ago" }, "elapsedOneDayAgo": { - "message": "1日前", + "message": "1 日前", "description": "English: a day ago" }, "elapsedManyDaysAgo": { @@ -968,7 +1108,7 @@ "description": "Firefox/Fennec-specific: Show Dashboard" }, "showNetworkLogButton": { - "message": "ネットワークリクエストログを表示", + "message": "ログを表示", "description": "Firefox/Fennec-specific: Show Logger" }, "fennecMenuItemBlockingOff": { @@ -976,19 +1116,19 @@ "description": "Firefox-specific: appears as 'uBlock₀ (off)'" }, "docblockedPrompt1": { - "message": "uBlock Origin は、このページの読み込みをブロックしました", + "message": "uBlock Origin は以下のページの読み込みを防ぎました:", "description": "Used in the strict-blocking page" }, "docblockedPrompt2": { - "message": "該当するフィルター", + "message": "以下のフィルターと一致したためです:", "description": "Used in the strict-blocking page" }, "docblockedNoParamsPrompt": { - "message": "パラメータを除いたURL", + "message": "パラメーターなし", "description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png" }, "docblockedFoundIn": { - "message": "このフィルターを含むリストの名前:", + "message": "このフィルターを含むフィルターリスト:", "description": "English: List of filter list names follows" }, "docblockedBack": { @@ -1000,7 +1140,7 @@ "description": "English: Close this window" }, "docblockedProceed": { - "message": "{{hostname}}の厳格なブロックを無効にする", + "message": "{{hostname}} への厳格なブロッキングを無効にする", "description": "English: Disable strict blocking for {{hostname}} ..." }, "docblockedDisableTemporary": { @@ -1008,19 +1148,19 @@ "description": "English: Temporarily" }, "docblockedDisablePermanent": { - "message": "恒久的", + "message": "永続的", "description": "English: Permanently" }, "cloudPush": { - "message": "クラウドストレージにエクスポート", + "message": "クラウドストレージにエクスポートします", "description": "tooltip" }, "cloudPull": { - "message": "クラウドストレージからインポート", + "message": "クラウドストレージからインポートします", "description": "tooltip" }, "cloudPullAndMerge": { - "message": "クラウドストレージからインポートし、現在の設定と統合します", + "message": "クラウドストレージからインポートして現在の設定に統合します", "description": "tooltip" }, "cloudNoData": { @@ -1028,15 +1168,15 @@ "description": "" }, "cloudDeviceNamePrompt": { - "message": "このデバイスの名前:", + "message": "この端末の名前:", "description": "used as a prompt for the user to provide a custom device name" }, "advancedSettingsWarning": { - "message": "警告! これらの上級者向け設定はご自身の責任により変更すること。", + "message": "警告! 以下の高度な設定の変更は自己責任で行ってください。", "description": "A warning to users at the top of 'Advanced settings' page" }, "genericSubmit": { - "message": "適用", + "message": "送信", "description": "for generic 'Submit' buttons" }, "genericApplyChanges": { @@ -1056,39 +1196,43 @@ "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "フィルターリストを登録...", + "message": "フィルターリストを購読...", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { - "message": "一時的に大きなメディア要素を許可", + "message": "大きなメディア要素を一時的に許可", "description": "A context menu entry, present when large media elements have been blocked on the current site" }, "shortcutCapturePlaceholder": { - "message": "ショートカットを入力", + "message": "ショートカットキーを入力", "description": "Placeholder string for input field used to capture a keyboard shortcut" }, "genericMergeViewScrollLock": { - "message": "スクロールを同期する・しない", + "message": "スクロールの同期/非同期を切り替えます", "description": "Tooltip for the button used to lock scrolling between the views in the 'My rules' pane" }, "genericCopyToClipboard": { - "message": "クリップボードへコピー", + "message": "クリップボードにコピー", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "ブロック・プロファイルを切り替え", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "すべて選択", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "整形フィルタリングの有効/無効を切り替える", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { - "message": "ブロックモードを緩める", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "message": "ブロッキングモードを緩和する", + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { - "message": "使用中のストレージ: {{value}} {{unit}}", + "message": "ストレージ使用量: {{value}} {{unit}}", "description": " In Setting pane, renders as (example): Storage used: 13.2 MB" }, "KB": { - "message": "kB", + "message": "KB", "description": "short for 'kilobytes'" }, "MB": { @@ -1100,11 +1244,11 @@ "description": "short for 'gigabytes'" }, "clickToLoad": { - "message": "クリックで、ロードする", + "message": "クリックして読み込む", "description": "Message used in frame placeholders" }, "dummy": { - "message": "これは最後のエントリである必要があります", + "message": "This entry must be the last one", "description": "so we dont need to deal with comma for last entry" } } diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/ka/messages.json ublock-origin-1.42.0+dfsg/src/_locales/ka/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/ka/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/ka/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "შესახებ", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "მხარდაჭერა", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — რესურსები", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "აღმრიცხავის გახსნა", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "ამ საიტზე ხარვეზის მოხსენება", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "ამ საიტზე ყველა ამომხტომი ფანჯრის შეზღუდვის ჩართვა/გამორთვა", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "ფერთა კორექცია დალტონიკებისთვის", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "იერსახე", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "თემა", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "სასურველი შეფერილობა", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "ღრუბლოვანი მეხსიერების მხარდაჭერის ჩართვა", "description": "" }, "settingsAdvancedUserPrompt": { "message": "მე ვარ გამოცდილი მომხმარებელი (აუცილებლად წასაკითხი)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "გაფართოებული პარამეტრები", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "წინასწარი ჩატვირთვის გათიშვა (ქსელის შეზღუდული მოთხოვნებისათვის კავშირების თავიდან ასაცილებლად)", @@ -383,6 +399,18 @@ "message": "დადგენილი სახელების გამოაშკარავება", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "გაფართოებული", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "შესაძლებლობები, მხოლოდ ტექნიკური მომხმარებლებისთვის", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "გაფართოებული პარამეტრები", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "ბოლო აღდგენა:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "გარეგნული საერთო ფილტრები ისეთი ფილტრებია, რომლებიც ყველა ვებსაიტზე მოქმედებს. ამ პარამეტრის ჩართვით კი თავიდან აიცილებთ გარეგნული ელემენტების საერთო ფილტრების შედეგად მეხსიერებისა და პროცესორის ზედმეტ დატვირთვას.\n\nამ პარამეტრის ჩართვა სასურველია სუსტ მოწყობილობებზე.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "ქსელის მოქმედებების გადავადება, ყველა ფილტრის ჩატვირთვამდე", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "მითითებული გამონაკლისები განსაზღვრავს, თუ რომელ ვებგვერდზე უნდა გამოირთოს uBlock Origin. თითოეული ჩანაწერი ცალკეულ ხაზზე უნდა იყოს. არასწორი მითითებები უგულებელყოფილი იქნება გაფრთხილების გარეშე და აღინიშნება კომენტარად.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "შემოტანა და დამატება", @@ -847,6 +879,126 @@ "message": "გაფორმებული", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "გახსნა", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "შექმენით ახალი მოსხენება", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "იპოვეთ მსგავსი მოხსენებები", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "მასალები", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "დამატებითი მასალებისთვის, იხილეთ uBlock/wiki, რომ უკეთ გაეცნოთ uBlock Origin-ის შესაძლებლობებს.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "შეკითხვები და დახმარება", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "კითხვებზე პასუხისა და სხვა სახის მხარდაჭერის მისაღებად, ეწვიეთ Reddit-განყოფილებას /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "ფილტრის ხარვეზი/საიტი დაზიანდა", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "ცალკეულ საიტებზე ფილტრების ხარვეზების მოსახსენებლად, გამოიყენეთ uBlockOrigin/uAssets ხარვეზების აღსარიცხავი. საჭიროებს GitHub-ანგარიშს.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "ყურადღება: ეცადეთ, არ გამოიყენოთ სხვა მსგავსი დანიშნულების შემზღუდავები uBlock Origin-თან ერთად, ვინაიდან წარმოშობს ფილტრების ხარვეზებს, ცალკეულ საიტებზე.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "რჩევა: გადაამოწმეთ, რომ ფილტრები განახლებულია. აღმრიცხავი ხელსაწყო მთავარი საშუალებაა, ფილტრების ხარვეზების გამოსავლენად.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "ხარვეზის მოხსენება", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "თავად uBlock Origin-ის ხარვეზების მოსახსენებლად, გამოიყენეთ uBlockOrigin/uBlock-issue ხარვეზების აღსარიცხავი. საჭიროებს GitHub-ანგარიშს.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "მონაცემები ხარვეზის მოსაგვარებლად", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "ქვემოთ მოცემულია ტექნიკური ინფორმაცია, რომელიც გამოადგებათ მოხალისეებს, უკეთ დაგეხმარონ ხარვეზის აღმოფხვრაში.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "გაითვალისწინეთ: მონაცემები, რომლებიც შესაძლოა პირადი და მნიშვნელოვანი იყოს, ნაგულისხმევად იკვეცება. ამასთან, შეკვეცილი ინფორმაციით, სავარაუდოდ გართულდება ხარვეზის გამოსწორება.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "ფილტრის ხარვეზის მოხსენება", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "მოხალისეები რომ არ მოცდნენ ერთნაირი მოსხენებების ნახვით, გთოხვთ გადაამოწმოთ, უკვე ხომ არაა გაგზავნილი საჩივარი ამ ხარვეზზე.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "ვებგვერდის მისამართი", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "ვებგვერდი...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- შეარჩიეთ --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "აჩვენებს რეკლამებს ან მის ნარჩენებს", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "ადებს შემაწუხებელ შრეებსა და მისთანებს", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "ამჩნევს, რომ uBlock Origin ჩართულია", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": " პირადულობის დაცვის ხარვეზებითაა", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "ფუჭდება, როცა uBlock Origin ჩართულია", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "ხსნის არასასურველ ჩანართებს ან ფანჯრებს", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "გვერდი მოინიშნოს, როგორც „NSFW“ („შეუსაბამო“)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "შეკვეცილი", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "შეუკვეცელი", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "პირადულობის დებულება", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "ცვლილებათა ჟურნალი", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "მხარდაჭერა", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "ხარვეზების აღმრიცხავი", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "წყაროს კოდი (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1075,13 +1215,17 @@ "message": "ასლის აღება", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "შეზღუდვის პროფილის გადართვა", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "ყველას მონიშვნა", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "ხილული ელემენტების გაფილტვრის გადამრთველი", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "მსუბუქი შეზღუდვის რეჟიმი", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "გამოყენებული მოცულობა: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/kk/messages.json ublock-origin-1.42.0+dfsg/src/_locales/kk/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/kk/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/kk/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Осы туралы", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Активтерді қарау", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Open the logger", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Toggle the blocking of all popups for this site", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Color-blind friendly", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Enable cloud storage support", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "I am an advanced user (required reading)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "advanced settings", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "I am an advanced user", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Disable pre-fetching (to prevent any connection for blocked network requests)", @@ -383,6 +399,18 @@ "message": "Uncloak canonical names", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "advanced settings", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Last restore:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generic cosmetic filters are those cosmetic filters which are meant to apply on all web sites. Enabling this option will eliminate the memory and CPU overhead added to web pages as a result of handling generic cosmetic filters.\n\nIt is recommended to enable this option on less powerful devices.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Import...", + "message": "Import…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Updating...", + "message": "Updating…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line. Invalid directives will be silently ignored and commented out.", - "description": "The name of the trusted sites pane." + "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Import and append", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Create new report", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find similar reports", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privacy policy", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Changelog", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Support", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Шығарылым трекері", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Бастапқы код (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Block element in frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Subscribe to filter list…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Аралық сақтағышқа көшіру", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Профильді бұғаттауды қосу", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Select all", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Бөгеу режимі", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "{{value}} {{unit}} қолданылды.", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/kn/messages.json ublock-origin-1.42.0+dfsg/src/_locales/kn/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/kn/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/kn/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "ಕುರಿತು", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Asset viewer", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "ಲಾಗರ್ ತೆರೆಯಿರಿ", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "ಈ ಜಾಲತಾಣದ ಎಲ್ಲಾ ಪಾಪ್ಅಪ್ ಗಳ ನಿರ್ಬಂಧವನ್ನು ಟಾಗಲ್ ಮಾಡಿ", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "ಬಣ್ಣ ಅಂಧತೆ ಉಪಯುಕ್ತ", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Enable cloud storage support", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "I am an advanced user (required reading)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "advanced settings", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "I am an advanced user", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Disable pre-fetching (to prevent any connection for blocked network requests)", @@ -383,6 +399,18 @@ "message": "Uncloak canonical names", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "advanced settings", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Last restore:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "Generic cosmetic filters are those cosmetic filters which are meant to apply on all web sites. Enabling this option will eliminate the memory and CPU overhead added to web pages as a result of handling generic cosmetic filters.\n\nIt is recommended to enable this option on less powerful devices.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -468,7 +500,7 @@ "description": "English: Custom" }, "3pImport": { - "message": "Import...", + "message": "Import…", "description": "The label for the checkbox used to import external filter lists" }, "3pExternalListsHint": { @@ -488,7 +520,7 @@ "description": "used as a tooltip for the clock icon beside a list" }, "3pUpdating": { - "message": "Updating...", + "message": "Updating…", "description": "used as a tooltip for the spinner icon beside a list" }, "3pNetworkError": { @@ -544,7 +576,7 @@ "description": "Will discard manually-edited content and exit manual-edit mode" }, "rulesImport": { - "message": "Import from file...", + "message": "Import from file…", "description": "" }, "rulesExport": { @@ -580,8 +612,8 @@ "description": "English: a sort option for list of rules." }, "whitelistPrompt": { - "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line. Invalid directives will be silently ignored and commented out.", - "description": "The name of the trusted sites pane." + "message": "The trusted site directives dictate on which web pages uBlock Origin should be disabled. One entry per line.", + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Import and append", @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Create new report", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find similar reports", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privacy policy", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Changelog", "description": "" }, - "aboutWiki": { - "message": "ವಿಕಿ", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Support", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Issue tracker", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Source code (GPLv3)", "description": "English: Source code (GPLv3)" @@ -908,11 +1048,11 @@ "description": "English: my-ublock-backup_{{datetime}}.txt" }, "aboutRestoreDataButton": { - "message": "Restore from file...", + "message": "Restore from file…", "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Reset to default settings...", + "message": "Reset to default settings…", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Block element in frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Subscribe to filter list…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Copy to clipboard", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Toggle blocking profile", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Select all", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Storage used: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/ko/messages.json ublock-origin-1.42.0+dfsg/src/_locales/ko/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/ko/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/ko/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "정보", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "지원", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — Asset 뷰어", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "로그로 이동", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "이 사이트의 이슈 신고", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "이 사이트에서 팝업 차단 토글", "description": "Tooltip for the no-popups per-site switch" @@ -192,7 +200,7 @@ "description": "Caption for the no-cosmetic-filtering per-site switch" }, "popupNoRemoteFonts_v2": { - "message": "원격 폰트", + "message": "외부 폰트", "description": "Caption for the no-remote-fonts per-site switch" }, "popupNoScripting_v2": { @@ -327,17 +335,25 @@ "message": "색맹 최적화", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "표시", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "테마", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "사용자 지정 강조 색상", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "클라우드 저장소 활성화", "description": "" }, "settingsAdvancedUserPrompt": { - "message": "고급 사용자 모드 (필수로 읽어야 할 내용)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "고급 설정", - "description": "For the tooltip of a link which gives access to advanced settings" + "message": "고급 사용자 모드 (필수로 읽어보세요.)", + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "프리-페칭 비활성화 (차단된 네트워크 요청에 대해 모든 접속요청 방지)", @@ -383,6 +399,18 @@ "message": "표준 이름 잠금 해제", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "고급", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "전문적인 사용자에게만 권장되는 설정입니다.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "고급 설정", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "최근 복원:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

전체적 표면 필터들은 방문하는 모든 사이트에 적용하는 표면 필터입니다.

uBlock₀는 이를 효율적으로 적용하지만, 전체적 표면 필터들은 사이트의 크기와 유지시간에 따라 확연할 정도의 메모리 및 CPU 오버헤드를 줄 수 있습니다.

이 옵션을 활성화하면 전체적 표면 필터 적용으로 메모리 및 CPU 오버헤드를 제거하고, uBlock₀ 자체의 메모리 사용량도 줄입니다.

저전력 기기에 사용하는 것을 권장합니다.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "모든 필터 목록을 불러올 때까지 네트워크 일시 중단", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "차단된 호스트 목록", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "목록에 있는 호스트들은 uBlock₀에서 비활성화됩니다. 한 줄에 한 개씩 입력하세요. 존재하지 않는 호스트는 자동으로 무시됩니다.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "가져오기 및 추가하기", @@ -847,6 +879,126 @@ "message": "마크다운", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "열기", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "새 신고 생성", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "유사한 신고 탐색", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "문서", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "uBlock/wiki의 문서를 읽고 uBlock Origin의 모든 기능에 대해 알아보세요.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "질문 및 지원", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "질문에 대한 답변 및 기타 도움 지원은 /r/uBlockOrigin 서브레딧에서 제공됩니다.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "필터 문제/웹사이트가 망가짐", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "특정 웹사이트에서 발생하는 필터 이슈는 uBlockOrigin/uAssets 이슈 트래커에 보고해주세요. GitHub 계정이 필요합니다.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "중요: uBlock Origin과 유사한 목적의 다른 차단기를 함께 사용하지 마세요. 특정 웹사이트에서 필터 문제가 발생할 수 있습니다.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "팁: 필터 목록이 최신 버전인지 확인하세요. 로거는 필터 관련 문제를 진단하는 데에 사용되는 기본적인 도구입니다.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "오류 신고", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "uBlock Origin 자체에 대한 이슈는 uBlockOrigin/uBlock-issue 이슈 트래커에 보고해주세요. GitHub 계정이 필요합니다.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "문제 해결 정보", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "다음은 자원 봉사자들이 문제를 해결하는 데에 도움을 줄 때 유용할 수 있는 기술적인 정보입니다.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "중요: 잠재적으로 개인 정보이거나 민감한 정보는 기본적으로 지워집니다. 정보가 지워지면 문제 해결이 더 어려워질 수도 있습니다.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "필터 이슈 신고", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "봉사자들이 중복 신고로 인해 부담을 겪지 않도록, 해당 이슈가 이미 신고되지는 않았는지 확인해주시기 바랍니다.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "웹 페이지의 주소:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "웹 페이지가...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- 주제 선택 --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "광고나 광고 흔적을 보여줍니다", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "오버레이나 기타 성가신 요소를 보여줍니다", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "uBlock Origin 사용을 감지합니다", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "개인정보 보호 관련 이슈가 있습니다", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "uBlock Origin을 켜면 깨집니다", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "원치 않는 탭이나 창을 엽니다", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "웹페이지를 \"NSFW\" (“Not Safe For Work”)로 분류", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "지우기", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "지우지 않기", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "개인정보취급방침", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "변경사항", "description": "" }, - "aboutWiki": { - "message": "위키", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "지원", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "이슈 트래커", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "소스 코드 (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1075,13 +1215,17 @@ "message": "클립보드에 복사", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "차단 프로필 전환", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "모두 선택", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "표면 필터 토글", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "차단 모드 완화", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "스토리지 사용량: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/lt/messages.json ublock-origin-1.42.0+dfsg/src/_locales/lt/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/lt/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/lt/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Apie", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — resursų žiūryklė", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Atverti žurnalą", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Perjungti visų iškylančiųjų langų blokavimą šiame puslapyje", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Draugiškas neskiriantiems spalvų", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Įjungti nuotolinės saugyklos palaikymą", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Aš esu patyręs naudotojas (privaloma perskaityti)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "sudėtingesni nustatymai", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Išjungti išankstinį gavimą (visiems blokuotų tinklo užklausų prisijungimams išvengti)", @@ -383,6 +399,18 @@ "message": "Uncloak canonical names", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "sudėtingesni nustatymai", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Paskutinis atkūrimas:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

Daugybiniai kosmetiniai filtrai yra tokie kosmetiniai filtrai, kurie taikomi visoms svetainėms.

Nors uBlock₀ juos apdoroja efektyviai, daugybiniai kosmetiniai filtrai vis tiek gali prisidėti prie pamatuojamo atminties ir procesoriaus panaudojimo kai kuriose svetainėse, ypač didelėse ir ilgai gyvuojančiose.

Šio nustatymo įjungimas sumažins atminties ir procesoriaus naudojimą, kurį sukelia svetainės dėl daugybinių kosmetinių filtrų apdorojimo, bei sumažins bendrą uBlock₀ atminties naudojimą.

Rekomenduojama įjungti šį nustatymą mažiau galinguose įrenginiuose.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Blokuotų serverių sąrašas", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Baltojo sąrašo direktyvos nurodo, kurioms svetainėms uBlock Origin turėtų būti išjungtas. Vienas įrašas eilutėje. Neteisingos direktyvos bus tyliai ignoruotos ir užkomentuotos.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importuoti ir papildyti", @@ -640,7 +672,7 @@ "description": "Tooltip for the popup panel button in the logger page" }, "loggerInfoTip": { - "message": "„uBlock Origin“ vikis: žurnalas", + "message": "„uBlock Origin“ viki: žurnalas", "description": "Tooltip for the top-right info label in the logger page" }, "loggerClearTip": { @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Create new report", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Find similar reports", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Documentation", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privacy policy", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Pakeitimų žurnalas", "description": "" }, - "aboutWiki": { - "message": "Viki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Palaikymas", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Klaidų sekimo sistema", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Pirminis tekstas (GPLv3)", "description": "English: Source code (GPLv3)" @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1052,11 +1192,11 @@ "description": "" }, "contextMenuBlockElementInFrame": { - "message": "Block element in frame...", + "message": "Block element in frame…", "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "Subscribe to filter list…", "description": "An entry in the browser's contextual menu" }, "contextMenuTemporarilyAllowLargeMediaElements": { @@ -1075,13 +1215,17 @@ "message": "Kopijuoti į iškarpinę", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Toggle blocking profile", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Select all", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Toggle cosmetic filtering", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Storage used: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/lv/messages.json ublock-origin-1.42.0+dfsg/src/_locales/lv/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/lv/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/lv/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "Par", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Atbalsts", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ — līdzekļu skatītājs", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "Atvērt pieprasījumu žurnālu", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Ziņot par nepilnību šajā vietnē", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "Pārslēgt uznirstošo logu bloķēšanu šajā vietnē", "description": "Tooltip for the no-popups per-site switch" @@ -327,17 +335,25 @@ "message": "Daltoniķiem draudzīgs", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Izskats", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Izskats", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Pielāgota izcēluma krāsa", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "Aktivizēt mākoņdatu glabāšanas atbalstu", "description": "" }, "settingsAdvancedUserPrompt": { "message": "Es esmu pieredzējis lietotājs (Vēlams izlasīt)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "papildu iestatījumi", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "Atslēgt pirmsielādi (lai novērstu bloķētus tīkla pieprasījumus)", @@ -380,9 +396,21 @@ "description": "background information: https://github.com/gorhill/uBlock/issues/3150" }, "settingsUncloakCnamePrompt": { - "message": "Uncloak canonical names", + "message": "Atslēpt kanoniskos nosaukumus", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Paplašināti", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Iespējas, kas piemērotas tikai tehniskiem lietotājiem.", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "papildu iestatījumi", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "Pēdējā atjaunošana veikta:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "

Vispārīgie kosmētikas filtri ir kosmētikas filtri, kurus paredzēts piemērot visās tīmekļvietnēs.

Lai gan uBlock ₀ darbojas efektīvi, vispārīgie kosmētikas filtri dažās tīmekļa lapās var ievērojami noslogot atmiņu un centrālo procesoru.

Šīs opcijas izmantošana samazinās vispārīgo kosmētikas filtru izmantotās atmiņas un procesora noslodzi kā arī samazinās paša uBlock₀ izmantoto atmiņu.

Ieteicams izmantot zemas veiktspējas ierīcēm.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Atlikt tīkla darbības, līdz visi aizturēšanas saraksti ir ielādēti.", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Bloķēto hostu saraksti", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "Saraksts ar interneta resursiem, kuriem tiks atslēgts uBlock Origin. Viens ieraksts katrā rindiņā. Nederīgi interneta resursu nosaukumi tiks ignorēti bez brīdinājuma.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "Importēt un pievienot", @@ -648,7 +680,7 @@ "description": "Tooltip for the eraser in the logger page; used to blank the content of the logger" }, "loggerPauseTip": { - "message": "Pause logger (discard all incoming data)", + "message": "Apturēt žurnalēšanu (atmest visus ienākošos datus)", "description": "Tooltip for the pause button in the logger page" }, "loggerUnpauseTip": { @@ -716,11 +748,11 @@ "description": "Label to identify a context field (typically a hostname)" }, "loggerEntryDetailsRootContext": { - "message": "Root context", + "message": "Saknes konteksts", "description": "Label to identify a root context field (typically a hostname)" }, "loggerEntryDetailsPartyness": { - "message": "Partyness", + "message": "Ballīte", "description": "Label to identify a field providing partyness information" }, "loggerEntryDetailsType": { @@ -788,11 +820,11 @@ "description": "Below this sentence, the filter list(s) in which the filter was found" }, "loggerStaticFilteringFinderSentence2": { - "message": "Static filter could not be found in any of the currently enabled filter lists", + "message": "Nemainīgs aizturētājs netika atrasts nevienā no pašreiz iespējotajiem aizturēšanas sarakstiem", "description": "Message to show when a filter cannot be found in any filter lists" }, "loggerSettingDiscardPrompt": { - "message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:", + "message": "Žurnāla ieraksti, kas neatbilsts visiem trim zemāk esošajiem nosacījumiem, tiks atmesti:", "description": "Logger setting: A sentence to describe the purpose of the settings below" }, "loggerSettingPerEntryMaxAge": { @@ -808,7 +840,7 @@ "description": "A logger setting" }, "loggerSettingPerEntryLineCount": { - "message": "Use {{input}} lines per entry in vertically expanded mode", + "message": "Izmantot {{input}} rindas ierakstam stateniski izvērstā skatā", "description": "A logger setting" }, "loggerSettingHideColumnsPrompt": { @@ -820,7 +852,7 @@ "description": "A label for the time column" }, "loggerSettingHideColumnFilter": { - "message": "{{input}} Filter/rule", + "message": "{{input}} aizturētājs/nosacījums", "description": "A label for the filter or rule column" }, "loggerSettingHideColumnContext": { @@ -828,7 +860,7 @@ "description": "A label for the context column" }, "loggerSettingHideColumnPartyness": { - "message": "{{input}} Partyness", + "message": "{{input}} Ballīte", "description": "A label for the partyness column" }, "loggerExportFormatList": { @@ -847,6 +879,126 @@ "message": "Markdown", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Atvērt", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "Izveidot jaunu ziņojumu", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "Meklēt līdzīgus ziņojumus", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "Dokumentācija", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Dokumentāciju var lasīt uBlock/wiki, lai uzzinātu par visām uBlock Origin iespējām.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Jautājumi un atbalsts", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Atbildes uz jautājumiem un cita veida atbalsts tiek sniegts /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Aizturēšanas nepilnības/nedarbojas vietne", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Par aizturēšanas nepilnībām noteiktās vietnēs var ziņot nepilnību uzskaitē uBlockOrigin/uAssets.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Svarīgi: ir jāizvairas no līdzīgu aizturētāju izmantošanas vienlaicīgi ar uBlock Origin, jo tas var radīt aizturēšanas kļūmes noteiktās vietnēs.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Ieteikums: jāpārliecinās, ka aizturēšanas saraksti ir atjaunināti. Žurnāls ir galvenais rīks, lai noteiktu ar aizturēšanu saistītas kļūmes.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Nepilnību ziņojums", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Par uBlock Origin nepilnībām jāziņo uBlockOrigin/uBlock-issue.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Kļūmju noteikšanas informācija", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Zemāk ir tehniskā informācija, kas var būt noderīga, kad brīvprātīgie mēģinās palīdzēt atrisināt sarežģījumus.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Svarīgi: iespējami privāta vai sensitīva informācija pēc noklusējuma tiek izņemta. Aizvākta informācija var apgrūtināt sarežģījuma atrisināšanu.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Ziņot par aizturētāja nepilnībām", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "Lai izvairītos no brīvprātīgo noslogošanas ar ziņojumiem, kas atkārtojas, lūgums pārbaudīt, vai par šādu nepilnību jau ir ziņots.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Tīmekļa lapas adrese:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "Tīmekļa lapa...", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Atlasīt ierakstu --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Rāda reklāmas vai to paliekas", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Ir pārklājumi vai citas neērtības", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Nosaka uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Ir ar privātumu saistītas nebūšanas", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Salūzt, kad uBlock Origin ir iespējots", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Atver nevēlamas cilnes vai logus", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Iezīmēt tīmekļa lapu kā \"NSFW\" (\"Not Safe for Work (nav droša darbam))", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Izņemt", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Atdarīt izņemšanu", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { "message": "Privātuma nosacījumi", "description": "Link to privacy policy on GitHub (English)" @@ -855,18 +1007,6 @@ "message": "Izmaiņu žurnāls", "description": "" }, - "aboutWiki": { - "message": "Wiki", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "Atbalsts", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "Zināmās kļūdas", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "Pirmkods (GPLv3)", "description": "English: Source code (GPLv3)" @@ -888,7 +1028,7 @@ "description": "Link text to uBO's own filter lists repo" }, "aboutDependencies": { - "message": "External dependencies (GPLv3-compatible):", + "message": "Ārējās atkarības (GPLv3 saderīgas):", "description": "Shown in the About pane" }, "aboutCDNs": { @@ -912,7 +1052,7 @@ "description": "English: Restore from file..." }, "aboutResetDataButton": { - "message": "Iestatīt noklusējuma iestatījumus...", + "message": "Atgriezt noklusējuma iestatījumus...", "description": "English: Reset to default settings..." }, "aboutRestoreDataConfirm": { @@ -1075,13 +1215,17 @@ "message": "Kopēt starpliktuvē", "description": "Label for buttons used to copy something to the clipboard" }, - "toggleBlockingProfile": { - "message": "Pārslēgt aizturēšanas profilu", - "description": "Label for keyboard shortcut used to toggle blocking profile" + "genericSelectAll": { + "message": "Atlasīt visu", + "description": "Label for buttons used to select all text in editor" + }, + "toggleCosmeticFiltering": { + "message": "Pārslēgt kosmētisko atlasi", + "description": "Label for keyboard shortcut used to toggle cosmetic filtering" }, "relaxBlockingMode": { - "message": "Relax blocking mode", - "description": "Label for keyboard shortcut used to relax blocking mode (meant to replace 'Toggle blocking profile')" + "message": "Atslābināt aizturēšanas stāvokli", + "description": "Label for keyboard shortcut used to relax blocking mode" }, "storageUsed": { "message": "Izmantotais krātuves lielums: {{value}} {{unit}}", diff -Nru ublock-origin-1.37.0+dfsg/src/_locales/ml/messages.json ublock-origin-1.42.0+dfsg/src/_locales/ml/messages.json --- ublock-origin-1.37.0+dfsg/src/_locales/ml/messages.json 2021-08-18 18:52:39.000000000 +0000 +++ ublock-origin-1.42.0+dfsg/src/_locales/ml/messages.json 2022-05-06 01:15:22.000000000 +0000 @@ -55,6 +55,10 @@ "message": "ഇതിനെ കുറിച്ച്", "description": "appears as tab name in dashboard" }, + "supportPageName": { + "message": "Support", + "description": "appears as tab name in dashboard" + }, "assetViewerPageName": { "message": "uBlock₀ - അസറ്റ് വ്യൂവർ", "description": "Title for the asset viewer page" @@ -123,6 +127,10 @@ "message": "അപേക്ഷാ ലോഗിലേക്ക് പോകുക", "description": "Tooltip used for the logger icon in the panel" }, + "popupTipReport": { + "message": "Report an issue on this website", + "description": "Tooltip used for the 'chat' icon in the panel" + }, "popupTipNoPopups": { "message": "ഈ സൈറ്റിലെ എല്ലാ പോപ്‌അപ്പുകളും ബ്ലോക്ക്‌ ചെയ്യുന്നത് ടോഗ്ഗിള്‍ ചെയ്യുക", "description": "Tooltip for the no-popups per-site switch" @@ -268,11 +276,11 @@ "description": "Example of use: Version 1.26.4" }, "popup3pScriptFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party scripts", + "message": "↑: മൂന്നാം കക്ഷി സ്ക്രിപ്റ്റുകൾ ഉള്ള വരികൾ izeന്നിപ്പറയുക", "description": "Tooltip shown when hovering small filtering widget in '3rd-party scripts' cell" }, "popup3pFrameFilterTip": { - "message": "↑: Emphasize rows which have 3rd-party frames", + "message": "↑: മൂന്നാം കക്ഷി ഫ്രെയിമുകളുള്ള വരികൾക്ക് പ്രാധാന്യം നൽകുക", "description": "Tooltip shown when hovering small filtering widget in '3rd-party frames' cell" }, "pickerCreate": { @@ -327,17 +335,25 @@ "message": "വർണ്ണാന്ധതാ സൗഹാര്‍ദ്ദപരമായത്", "description": "English: Color-blind friendly" }, + "settingsAppearance": { + "message": "Appearance", + "description": "Section for controlling user interface appearance" + }, + "settingsThemeLabel": { + "message": "Theme", + "description": "Label for checkbox to enable a custom dark theme" + }, + "settingsThemeAccent0Label": { + "message": "Custom accent color", + "description": "Label for checkbox to pick an accent color" + }, "settingsCloudStorageEnabledPrompt": { "message": "ക്ലൌഡ് സ്റ്റോറെജ് സപ്പോര്‍ട്ട് എനേബിള്‍ ചെയ്യുക", "description": "" }, "settingsAdvancedUserPrompt": { "message": "ഞാന്‍ ഒരു അഡ്വാന്‍സ്ഡ് യൂസര്‍ ആണ് ( വായിക്കേണ്ടത്)", - "description": "" - }, - "settingsAdvancedUserSettings": { - "message": "വിപുലമായ ക്രമീകരണങ്ങൾ", - "description": "For the tooltip of a link which gives access to advanced settings" + "description": "Checkbox to let user access advanced, technical features" }, "settingsPrefetchingDisabledPrompt": { "message": "പ്രീ-ഫെച്ചിംഗ് ഡിസേബിള്‍ ചെയ്യുക (ബ്ലോക്ക് ചെയ്ത നെറ്റ്‌വര്‍ക്ക് അപേക്ഷകള്‍ക്ക് കണക്ഷന്‍ ലഭിക്കുന്നത് തടയുന്നതിന്)", @@ -383,6 +399,18 @@ "message": "കാനോനിക്കൽ പേരുകൾ അൺലോക്ക് ചെയ്യുക", "description": "background information: https://github.com/uBlockOrigin/uBlock-issues/issues/1513" }, + "settingsAdvanced": { + "message": "Advanced", + "description": "Section for controlling advanced-user settings" + }, + "settingsAdvancedSynopsis": { + "message": "Features suitable only for technical users", + "description": "Description of section controlling advanced-user settings" + }, + "settingsAdvancedUserSettings": { + "message": "വിപുലമായ ക്രമീകരണങ്ങൾ", + "description": "For the tooltip of a link which gives access to advanced settings" + }, "settingsLastRestorePrompt": { "message": "അവസാന റീസ്റ്റോര്‍:", "description": "English: Last restore:" @@ -427,6 +455,10 @@ "message": "എല്ലാ വെബ് സൈറ്റുകളിലും പ്രയോഗിക്കാൻ ഉദ്ദേശിക്കുന്ന കോസ്മെറ്റിക് ഫിൽട്ടറുകളാണ് ജനറിക് കോസ്മെറ്റിക് ഫിൽട്ടറുകൾ. ഈ ഓപ്ഷൻ പ്രവർത്തനക്ഷമമാക്കുന്നത് ജനറിക് കോസ്മെറ്റിക് ഫിൽട്ടറുകൾ കൈകാര്യം ചെയ്യുന്നതിന്റെ ഫലമായി വെബ് പേജുകളിൽ ചേർത്ത മെമ്മറിയും സിപിയു ഓവർഹെഡും ഇല്ലാതാക്കും.\n\nശക്തി കുറഞ്ഞ ഉപകരണങ്ങളിൽ ഈ ഓപ്‌ഷൻ പ്രവർത്തനക്ഷമമാക്കാൻ ശുപാർശ ചെയ്യുന്നു.", "description": "Describes the purpose of the 'Ignore generic cosmetic filters' feature." }, + "3pSuspendUntilListsAreLoaded": { + "message": "Suspend network activity until all filter lists are loaded", + "description": "A checkbox in the 'Filter lists' pane" + }, "3pListsOfBlockedHostsHeader": { "message": "Lists of blocked hosts", "description": "English: Lists of blocked hosts" @@ -581,7 +613,7 @@ }, "whitelistPrompt": { "message": "യുബ്ലോക്ക്ഒ ഡിസേബിള്‍ ചെയ്യപ്പെടേണ്ട ഹോസ്റ്റ് നെയിമുകള്‍. ഒരു വരിയില്‍ ഒരു എന്‍ട്രി എന്ന രീതിയില്‍ ചേര്‍ക്കുക. ഇന്‍വാലിഡ്‌ ഹോസ്റ്റ് നെയിമുകള്‍ നിശബ്ദമായി ഇഗ്നോര്‍ ചെയ്യപെടും.", - "description": "The name of the trusted sites pane." + "description": "A concise description of the 'Trusted sites' pane." }, "whitelistImport": { "message": "ഇമ്പോര്‍ട്ടും കൂട്ടിചേര്‍ക്കലും ചെയ്യുക", @@ -847,26 +879,134 @@ "message": "മാർക്ക്ഡ .ൺ", "description": "Label for radio-button to pick export text format" }, + "supportOpenButton": { + "message": "Open", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportReportSpecificButton": { + "message": "പുതിയ റിപ്പോർട്ട് നിർമ്മിക്കുക", + "description": "Text for button which open an external webpage in Support pane" + }, + "supportFindSpecificButton": { + "message": "സമാനമായ റിപോർട്ടുകൾ കാണുക", + "description": "A clickable link in the filter issue reporter section" + }, + "supportS1H": { + "message": "പ്രമാണീകരണം", + "description": "Header of 'Documentation' section in Support pane" + }, + "supportS1P1": { + "message": "Read the documentation at uBlock/wiki to learn about all of uBlock Origin's features.", + "description": "First paragraph of 'Documentation' section in Support pane" + }, + "supportS2H": { + "message": "Questions and support", + "description": "Header of 'Questions and support' section in Support pane" + }, + "supportS2P1": { + "message": "Answers to questions and other kinds of help support is provided on the subreddit /r/uBlockOrigin.", + "description": "First paragraph of 'Questions and support' section in Support pane" + }, + "supportS3H": { + "message": "Filter issues/website is broken", + "description": "Header of 'Filter issues' section in Support pane" + }, + "supportS3P1": { + "message": "Report filter issues with specific websites to the uBlockOrigin/uAssets issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P2": { + "message": "Important: Avoid using other similarly-purposed blockers along with uBlock Origin, as this may cause filter issues on specific websites.", + "description": "Second paragraph of 'Filter issues' section in Support pane" + }, + "supportS3P3": { + "message": "Tips: Be sure your filter lists are up to date. The logger is the primary tool to diagnose filter-related issues.", + "description": "Third paragraph of 'Filter issues' section in Support pane" + }, + "supportS4H": { + "message": "Bug report", + "description": "Header of 'Bug report' section in Support pane" + }, + "supportS4P1": { + "message": "Report issues with uBlock Origin itself to the uBlockOrigin/uBlock-issue issue tracker. Requires a GitHub account.", + "description": "First paragraph of 'Bug report' section in Support pane" + }, + "supportS5H": { + "message": "Troubleshooting Information", + "description": "Header of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P1": { + "message": "Below is technical information that might be useful when volunteers are trying to help you solve a problem.", + "description": "First paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS5P2": { + "message": "Important: Potentially private or sensitive information is redacted by default. Redacted information may make it more difficult to solve a problem.", + "description": "Second paragraph of 'Troubleshooting Information' section in Support pane" + }, + "supportS6H": { + "message": "Report a filter issue", + "description": "Header of 'Report a filter issue' section in Support pane" + }, + "supportS6P1S1": { + "message": "To avoid burdening volunteers with duplicate reports, please verify that the issue has not already been reported.", + "description": "A paragraph in the filter issue reporter section" + }, + "supportS6URL": { + "message": "Address of the web page:", + "description": "Label for the URL of the page" + }, + "supportS6Select1": { + "message": "The web page…", + "description": "Label for widget to select type of issue" + }, + "supportS6Select1Option0": { + "message": "-- Pick an entry --", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option1": { + "message": "Shows ads or ad leftovers", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option2": { + "message": "Has overlays or other nuisances", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option3": { + "message": "Detects uBlock Origin", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option4": { + "message": "Has privacy-related issues", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option5": { + "message": "Malfunctions when uBlock Origin is enabled", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Select1Option6": { + "message": "Opens unwanted tabs or windows", + "description": "An entry in the widget used to select the type of issue" + }, + "supportS6Checkbox1": { + "message": "Label the web page as “NSFW” (“Not Safe For Work”)", + "description": "A checkbox to use for NSFW sites" + }, + "supportRedact": { + "message": "Redact", + "description": "Text for 'Redact' button" + }, + "supportUnredact": { + "message": "Unredact", + "description": "Text for 'Unredact' button" + }, "aboutPrivacyPolicy": { - "message": "Privacy policy", + "message": "സ്വകാര്യതാ നയം", "description": "Link to privacy policy on GitHub (English)" }, "aboutChangelog": { "message": "മാറ്റങ്ങളുടെ ലോഗ്", "description": "" }, - "aboutWiki": { - "message": "വിക്കി", - "description": "English: project' wiki on GitHub" - }, - "aboutSupport": { - "message": "പിന്തുണ", - "description": "A link for where to get support" - }, - "aboutIssues": { - "message": "ഇഷ്യു ട്രാക്കർ", - "description": "Text for a link to official issue tracker" - }, "aboutCode": { "message": "സോര്‍സ് കോഡ് (ജിപിഎല്‍വി3)", "description": "English: Source code (GPLv3)" @@ -892,11 +1032,11 @@ "description": "Shown in the About pane" }, "aboutCDNs": { - "message": "uBO's own filter lists are freely hosted on the following CDNs:", + "message": "uBO- യുടെ സ്വന്തം ഫിൽട്ടർ ലിസ്റ്റുകൾ ഇനിപ്പറയുന്നവയിൽ സ്വതന്ത്രമായി ഹോസ്റ്റുചെയ്യുന്നു CDNs:", "description": "Shown in the About pane" }, "aboutCDNsInfo": { - "message": "A randomly picked CDN is used when a filter list needs to be updated", + "message": "ഒരു ഫിൽട്ടർ ലിസ്റ്റ് അപ്ഡേറ്റ് ചെയ്യേണ്ടിവരുമ്പോൾ ക്രമരഹിതമായി തിരഞ്ഞെടുത്ത CDN ഉപയോഗിക്കുന്നു", "description": "Shown in the About pane" }, "aboutBackupDataButton": { @@ -1024,7 +1164,7 @@ "description": "tooltip" }, "cloudNoData": { - "message": "...\n...", + "message": "…\n…", "description": "" }, "cloudDeviceNamePrompt": { @@ -1056,7 +1196,7 @@ "description": "An entry in the browser's contextual menu" }, "contextMenuSubscribeToList": { - "message": "Subscribe to filter list...", + "message": "ഫിൽട്ടർ ലിസ്റ്റിലേക്ക് സബ്സ്ക്രൈബ് ചെയ്യുക ...", "description": "An entry in the