Compare commits

...

61 Commits

Author SHA1 Message Date
Ian Parker 9a57758425 Add building instructions (#5) 5 years ago
Ian Parker 64a911333f
Merge pull request #6 from AaronDewes/patch-1
Update German translation
5 years ago
Ian Parker 300c482314
Merge pull request #4 from AaronDewes/master
A few improvements
5 years ago
Aaron Dewes ad456600ed
Update German translation 5 years ago
AaronDewes a5a9104e77 A few improvements 5 years ago
Ian Parker 9140e3392d Update English description 5 years ago
Ian Parker 06b6ca01f1 Update user-rules.html title 5 years ago
Ian Parker 1c45aa35a3 Fix Firefox extension validation by increasing min version 5 years ago
Ian Parker c3fd99a692 Bump version 5 years ago
Ian Parker 122e5ca082 Rebrand Firefox distribution 5 years ago
Ian Parker 088eea918b
Merge pull request #3 from geekprojects/xofe-minor-fixes-3
Xofe minor fixes 3
5 years ago
Ian Parker e4fd3a0e93 Merge branch 'minor-fixes-3' of https://github.com/xofe/uMatrix into xofe-minor-fixes-3 5 years ago
Ian Parker af770ebeb8 Update to nuTensor in locales 5 years ago
Ian Parker 1cc436b779 Add initial issue templates 5 years ago
Ian Parker b2f09f89b5 Rebranding: Initial work on renaming to nuTensor 5 years ago
Ian Parker e9274d6e30 Update tools to nuTensor and use nuAssets 5 years ago
Ian Parker eca5ca3f32 Update README.md with nuTensor 5 years ago
xofe bda7383bc8 Fix tooltip for "obsolete" icon in dashboard assets page 5 years ago
xofe 7562a3d697 Add missing styling for `fa-icon-vflipped` class
Fixes the search widget down arrow's direction in asset viewer.
5 years ago
xofe 954d827934 Allow line breaking for long domains in popup panel 5 years ago
xofe e7899435fe Open logger/dashboard links adjacent to current tab
This regressed in https://github.com/gorhill/uMatrix/commit/9b29230.
5 years ago
xofe 93edb4aca0 Call `python3` rather than `python` in build scripts
This prevents the build scripts failing when Python 2 isn't installed.
5 years ago
xofe c9ddc9d5d0 Only consider hostname blocklisted if it's a full match
Fixes https://github.com/uBlockOrigin/uMatrix-issues/issues/284
5 years ago
Raymond Hill 0bcb7669e7
Fix exception thrown when a stock asset is removed
Related feedback:
- https://www.reddit.com/r/uMatrix/comments/ftebgz/
6 years ago
Raymond Hill 89b7e026c3
Revert "Remove hpHosts from stock hosts files"
This reverts commit ba0dfe5d9b.

Related feedback:
- https://www.reddit.com/r/uMatrix/comments/ftebgz/
6 years ago
Raymond Hill ba0dfe5d9b
Remove hpHosts from stock hosts files
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/971
6 years ago
Raymond Hill 57eb9fc150
Expect that IntersectionObserver API may not be available
Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/235

The popup-resize functionality won't be available if the
IntersectionObserver API is not available. The purpose
of the popup-resize code is to adjust the matrix visuals
on small display -- i.e. on mobile or when the popup panel
is used in the overflow menu in Firefox.
6 years ago
Raymond Hill e0800f89df
Make Firefox dev build auto-update 6 years ago
Raymond Hill b26b3bb960
New revision for dev build 6 years ago
Raymond Hill 2d8e32c61b
Minor style changes 6 years ago
Raymond Hill 41133dffd2
Fix remnants of uBO code in cache storage manager
Related feedback:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/227#issuecomment-590543891
6 years ago
Saitama a1ec20423c
mvps host list secure protocol http => https (#1014) 6 years ago
Raymond Hill e3ebfdfba4
Fix improper initial value for `suspendTabsUntilReady` 6 years ago
Raymond Hill 43cd137fff
Make Firefox dev build auto-update 6 years ago
Raymond Hill a697ce0be9
New revision for dev build 6 years ago
Raymond Hill b75500eff4
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill 3f4425d9db
Fix broken handling of blocked document parameters
Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/214

Regression from:
- https://github.com/gorhill/uMatrix/commit/9b292304d33a#diff-67a98e071667dfff264d50da29bb3a5cL38-R39
6 years ago
Raymond Hill f8c82add03
Fix python scripts used for pusblishing dev builds 6 years ago
Raymond Hill a78a6465b0
Make Firefox dev build auto-update 6 years ago
Raymond Hill ae7d450827
New revision for dev build 6 years ago
Raymond Hill c908ae5210
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill ea688f3942
Fix network error message in logger
Related feedback:
- https://github.com/gorhill/uMatrix/issues/945#issuecomment-569792402

Regression from:
- https://github.com/gorhill/uMatrix/commit/9b292304d33a
6 years ago
Raymond Hill 8a39b0e171
New revision for dev build 6 years ago
Raymond Hill 5c06fed370
Make 1st and 3rd columns in logger clickable
These columns are unlikely to be used for text
selection, so there is no harm to make them
clickable.
6 years ago
Raymond Hill 035f3f53a2
Fix packaging/publishing scripts 6 years ago
Raymond Hill 17430ded93
Make Firefox dev build auto-update 6 years ago
Raymond Hill b8e62f0c55
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill e800756163
New revision for dev build 6 years ago
Raymond Hill 0190fdaf3d
Add back missing tab context properties
These properties, used to detect/act on/report
unencrypted connection, were erroneously removed
when importing uBO's code en-bloc.

Related issue:
- https://github.com/uBlockOrigin/uMatrix-issues/issues/212
6 years ago
Raymond Hill 0db579da97
Make Firefox dev build auto-update 6 years ago
Raymond Hill e5cf0d4684
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill a2f213492e
New revision for dev build 6 years ago
Raymond Hill a9f32a475f
Fix broken content scripts in Firefox
Related commit:
- https://github.com/gorhill/uMatrix/commit/9b292304d33a

Forgot to declare `/js/vapi.js` as first content script
to inject.
6 years ago
Raymond Hill cb9934f67a
Fix publish scripts for dev build versions 6 years ago
Raymond Hill e7140262f2
Use correct manifest key (instead of the alias) 6 years ago
Raymond Hill a9bcc70a2b
Minor code review of WASM-loading code 6 years ago
Raymond Hill 2936d73911
Fix odds and ends from mega commit 9b292304d3
Related commit:
- https://github.com/gorhill/uMatrix/commit/9b292304d33a
6 years ago
Raymond Hill df4a403473
Make use of css flex in matrix UI 6 years ago
Raymond Hill d993b8442a
Import translation work from https://crowdin.com/project/umatrix 6 years ago
Raymond Hill 5aab1fb00b
Import publish script fixes from uBO 6 years ago
Raymond Hill 9b292304d3
Bring uMatrix up to date
Notably:
- Import logger improvements from uBO
- Import CNAME uncloaking from uBO
- Import more improvements from uBO
- Make use of modern JS features

This should un-stall further development of uMatrix.
6 years ago

@ -1,9 +0,0 @@
<--
Do not open issue here.
The official issue tracker for uMatrix is at:
https://github.com/uBlockOrigin/uMatrix-issues/issues
-->

@ -0,0 +1,29 @@
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Browser (please complete the following information):**
- OS: [e.g. MacOS, Linux]
- Browser [e.g. Firefox]
- Version [e.g. 80.0.1]
**Additional context**
Add any other context about the problem here.

@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

@ -2,11 +2,13 @@
"browser": true, "browser": true,
"devel": true, "devel": true,
"eqeqeq": true, "eqeqeq": true,
"esnext": true, "esversion": 8,
"globals": { "globals": {
"browser": false, // global variable in Firefox, Edge "browser": false,
"self": false, "self": false,
"chrome": false, "chrome": false,
"log": false,
"webext": false,
"vAPI": false, "vAPI": false,
"µMatrix": false "µMatrix": false
}, },

@ -3,13 +3,13 @@ env:
matrix: matrix:
- BROWSER=chromium EXT=zip - BROWSER=chromium EXT=zip
- BROWSER=firefox EXT=xpi - BROWSER=firefox EXT=xpi
script: ./tools/make-${BROWSER}.sh all script: "./tools/make-${BROWSER}.sh ${TRAVIS_TAG}"
deploy: deploy:
provider: releases provider: releases
prerelease: true prerelease: true
api_key: api_key:
secure: eQgPAHH6PKu2dLK+NafxwLl66t0cyW5x5NZFquOwsNMal5nsfof7lyXj2F0Q0vUpGeI21MOipBI8UGv5oXPoiXnr0fhEbEBz65C9vypK61WkDCQVGVeZVNGQwSXUm6gD2EzpPgTCIs52+7dKCDJ3stXzdimOiOTYs4WMNKKarFM= secure: eQgPAHH6PKu2dLK+NafxwLl66t0cyW5x5NZFquOwsNMal5nsfof7lyXj2F0Q0vUpGeI21MOipBI8UGv5oXPoiXnr0fhEbEBz65C9vypK61WkDCQVGVeZVNGQwSXUm6gD2EzpPgTCIs52+7dKCDJ3stXzdimOiOTYs4WMNKKarFM=
file: dist/build/uMatrix.${BROWSER}.${EXT} file: dist/build/uMatrix_${TRAVIS_TAG}.${BROWSER}.${EXT}
skip_cleanup: true skip_cleanup: true
on: on:
repo: gorhill/uMatrix repo: gorhill/uMatrix

@ -1,5 +1,4 @@
### Submitting issues ### Submitting issues
Submit on <https://github.com/uBlockOrigin/uMatrix-issues/issues>. Submit on <https://github.com/geekprojects/nuTensor/issues>.
Issue tracker here is read-only for non-[prior contributors](https://github.com/gorhill/uMatrix/graphs/contributors).

@ -1,42 +1,23 @@
## uMatrix<br>[<img src="https://travis-ci.org/gorhill/uMatrix.svg?branch=master" height="16">](https://travis-ci.org/gorhill/uMatrix) ## nuTensor
Definitely for advanced users. Definitely for advanced users.
*** This is a fork of the now-discontinued [uMatrix](https://github.com/gorhill/uMatrix).
My focus will be on keeping it working on Firefox for now. I'll do my best to keep it working, but sadly no guarantees. Help will always be welcome!
Keep Github issues for actual bugs. User support is [/r/uMatrix](https://www.reddit.com/r/uMatrix/).
Forked and refactored from [HTTP Switchboard](https://github.com/gorhill/httpswitchboard).
Install [manually](https://github.com/gorhill/uMatrix/blob/master/doc/README.md) the [latest release](https://github.com/gorhill/uMatrix/releases), or install from:
- [Firefox AMO](https://addons.mozilla.org/firefox/addon/umatrix/)
- To help find issues with ongoing development: [uMatrix dev build in _Releases_](https://github.com/gorhill/uMatrix/releases) (click the latest `uMatrix.webext.signed.xpi` link of the last pre-resease.)
- [Chrome store](https://chrome.google.com/webstore/detail/µmatrix/ogfcmafjalglgifnmanfmnieipoejdcf)
- To help find issues with ongoing development: [uMatrix dev build in Chrome store](https://chrome.google.com/webstore/detail/umatrix-dev-build/eckgcipdkhcfghnmincccnhpdmnbefki)
- [Opera store](https://addons.opera.com/en-gb/extensions/details/umatrix/)
You may contribute with translation work:
- For in-app strings, on Crowdin: [uMatrix on Crowdin](https://crowdin.com/project/umatrix).
- For [description](https://github.com/gorhill/uMatrix/tree/master/doc/description) (to be used in AMO, Chrome store, etc.), submit a pull request. [Reference description is here](https://github.com/gorhill/uMatrix/blob/master/doc/description/description.txt) (feel free to improve as you wish, I am not a writer).
[HTTP Switchboard's documentation](https://github.com/gorhill/httpswitchboard/wiki) is still relevant, except for [uMatrix's differences with HTTP Switchboard](https://github.com/gorhill/uMatrix/wiki/Changes-from-HTTP-Switchboard). ***
You may contribute with documentation: [uMatrix's wiki](https://github.com/gorhill/uMatrix/wiki). Forked and refactored from [uMatrix](https://github.com/gorhill/uMatrix).
## Warnings ## Warnings
#### Regarding broken sites #### Regarding broken sites
uMatrix does not guarantee that sites will work fine: it is for advanced users who can figure how to un-break sites, because essentially uMatrix is a firewall which works in relaxed block-all/allow-exceptionally mode out of the box: it is not unexpected that sites will break. nuTensor does not guarantee that sites will work fine: it is for advanced users who can figure how to un-break sites, because essentially nuTensor is a firewall which works in relaxed block-all/allow-exceptionally mode out of the box: it is not unexpected that sites will break.
**So this means do not file issues to report broken sites when the sites are broken because uMatrix does its job as expected.** I will close any such issue without further comment.
**Using uMatrix logger is key to un-break sites:** the logger will show you all that uMatrix does internally.
I expect there will be community driven efforts for users to help each others. If uMatrix had a home, I would probably set up a forum, but I do not plan for such thing, I really just want to code, not manage web sites. If you need help to un-break a site when using uMatrix, you can try [Wilders Security](http://www.wilderssecurity.com/threads/umatrix-the-http-switchboard-successor.369601/), where you are likely to receive help if needed, whether by me or other users.
uMatrix can be set to work in [allow-all/block-exceptionally](https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views#the-allow-allblock-exceptionally-approach) mode with a single click on the `all` cell in the global scope `*`, if you prefer to work this way. This will of course break less sites, but you would then lose all the benefits which comes with block-all/allow-exceptionally mode -- though you will still benefit from the 62,000+ blacklisted hostnames by default. **So this means do not file issues to report broken sites when the sites are broken because nuTensor does its job as expected.** I will close any such issue without further comment.
**Using nuTensor logger is key to un-break sites:** the logger will show you all that nuTensor does internally.
## License ## License

@ -3,7 +3,7 @@
"content": "internal", "content": "internal",
"updateAfter": 13, "updateAfter": 13,
"contentURL": [ "contentURL": [
"https://raw.githubusercontent.com/gorhill/uMatrix/master/assets/assets.json", "https://raw.githubusercontent.com/geekprojects/nuTensor/master/assets/assets.json",
"assets/assets.json" "assets/assets.json"
] ]
}, },
@ -60,10 +60,10 @@
"updateAfter": 11, "updateAfter": 11,
"title": "MVPS HOSTS", "title": "MVPS HOSTS",
"contentURL": [ "contentURL": [
"http://winhelp2002.mvps.org/hosts.txt", "https://winhelp2002.mvps.org/hosts.txt",
"assets/thirdparties/winhelp2002.mvps.org/hosts.txt" "assets/thirdparties/winhelp2002.mvps.org/hosts.txt"
], ],
"supportURL": "http://winhelp2002.mvps.org/" "supportURL": "https://winhelp2002.mvps.org/"
}, },
"plowe-0": { "plowe-0": {
"content": "filters", "content": "filters",

@ -27,13 +27,6 @@ projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')): while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..')) projdir = os.path.normpath(os.path.join(projdir, '..'))
cs_extension_id = 'eckgcipdkhcfghnmincccnhpdmnbefki'
tmpdir = tempfile.TemporaryDirectory()
raw_zip_filename = 'uMatrix.chromium.zip'
raw_zip_filepath = os.path.join(tmpdir.name, raw_zip_filename)
github_owner = 'gorhill'
github_repo = 'uMatrix'
# We need a version string to work with # We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]: if len(sys.argv) >= 2 and sys.argv[1]:
version = sys.argv[1] version = sys.argv[1]
@ -44,6 +37,13 @@ if not re.search('^\d+\.\d+\.\d+(b|rc)\d+$', version):
print('Error: Invalid version string.') print('Error: Invalid version string.')
exit(1) exit(1)
cs_extension_id = 'eckgcipdkhcfghnmincccnhpdmnbefki'
tmpdir = tempfile.TemporaryDirectory()
raw_zip_filename = 'uMatrix_'+ version + '.chromium.zip'
raw_zip_filepath = os.path.join(tmpdir.name, raw_zip_filename)
github_owner = 'gorhill'
github_repo = 'uMatrix'
# Load/save auth secrets # Load/save auth secrets
# The build directory is excluded from git # The build directory is excluded from git
ubo_secrets = dict() ubo_secrets = dict()

@ -16,19 +16,19 @@ import zipfile
from distutils.version import LooseVersion from distutils.version import LooseVersion
from string import Template from string import Template
# - Download target (raw) uMatrix.firefox.xpi from GitHub # - Download target (raw) nuTensor.firefox.xpi from GitHub
# - This is referred to as "raw" package # - This is referred to as "raw" package
# - This will fail if not a dev build # - This will fail if not a dev build
# - Modify raw package to make it self-hosted # - Modify raw package to make it self-hosted
# - This is referred to as "unsigned" package # - This is referred to as "unsigned" package
# - Ask AMO to sign uMatrix.firefox.xpi # - Ask AMO to sign nuTensor.firefox.xpi
# - Generate JWT to be used for communication with server # - Generate JWT to be used for communication with server
# - Upload unsigned package to AMO # - Upload unsigned package to AMO
# - Wait for a valid download URL for signed package # - Wait for a valid download URL for signed package
# - Download signed package as uMatrix.firefox.signed.xpi # - Download signed package as nuTensor.firefox.signed.xpi
# - This is referred to as "signed" package # - This is referred to as "signed" package
# - Upload uMatrix.firefox.signed.xpi to GitHub # - Upload nuTensor.firefox.signed.xpi to GitHub
# - Remove uMatrix.firefox.xpi from GitHub # - Remove nuTensor.firefox.xpi from GitHub
# - Modify updates.json to point to new version # - Modify updates.json to point to new version
# - Commit changes to repo # - Commit changes to repo
@ -42,25 +42,32 @@ if not os.path.isfile(version_filepath):
print('Version file not found.') print('Version file not found.')
exit(1) exit(1)
extension_id = 'uMatrix@raymondhill.net'
tmpdir = tempfile.TemporaryDirectory()
raw_xpi_filename = 'uMatrix.firefox.xpi'
raw_xpi_filepath = os.path.join(tmpdir.name, raw_xpi_filename)
unsigned_xpi_filepath = os.path.join(tmpdir.name, 'uMatrix.firefox.unsigned.xpi')
signed_xpi_filename = 'uMatrix.firefox.signed.xpi'
signed_xpi_filepath = os.path.join(tmpdir.name, signed_xpi_filename)
github_owner = 'gorhill'
github_repo = 'uMatrix'
# We need a version string to work with # We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]: if len(sys.argv) >= 2 and sys.argv[1]:
version = sys.argv[1] tag_version = sys.argv[1]
else: else:
version = input('Github release version: ') tag_version = input('Github release version: ')
version.strip() tag_version.strip()
if not re.search('^\d+\.\d+\.\d+(b|rc)\d+$', version): match = re.search('^(\d+\.\d+\.\d+)(?:(b|rc)(\d+))?$', tag_version)
if not match:
print('Error: Invalid version string.') print('Error: Invalid version string.')
exit(1) exit(1)
ext_version = match.group(1);
if match.group(2):
revision = int(match.group(3))
if match.group(2) == 'rc':
revision += 100;
ext_version += '.' + str(revision)
extension_id = 'nuTensor@geekprojects.com'
tmpdir = tempfile.TemporaryDirectory()
raw_xpi_filename = 'nuTensor_' + tag_version + '.firefox.xpi'
raw_xpi_filepath = os.path.join(tmpdir.name, raw_xpi_filename)
unsigned_xpi_filepath = os.path.join(tmpdir.name, 'nuTensor.firefox.unsigned.xpi')
signed_xpi_filename = 'nuTensor_' + tag_version + '.firefox.signed.xpi'
signed_xpi_filepath = os.path.join(tmpdir.name, signed_xpi_filename)
github_owner = 'geekprojects'
github_repo = 'nuTensor'
# Load/save auth secrets # Load/save auth secrets
# The build directory is excluded from git # The build directory is excluded from git
@ -99,7 +106,7 @@ github_auth = 'token ' + github_token
# https://developer.github.com/v3/repos/releases/#get-a-single-release # https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...') print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, version) release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, tag_version)
headers = { 'Authorization': github_auth, } headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers) response = requests.get(release_info_url, headers=headers)
if response.status_code != 200: if response.status_code != 200:
@ -111,7 +118,7 @@ release_info = response.json()
# Extract URL to raw package from metadata # Extract URL to raw package from metadata
# #
# Find url for uMatrix.firefox.xpi # Find url for nuTensor.firefox.xpi
raw_xpi_url = '' raw_xpi_url = ''
for asset in release_info['assets']: for asset in release_info['assets']:
if asset['name'] == signed_xpi_filename: if asset['name'] == signed_xpi_filename:
@ -154,7 +161,7 @@ with zipfile.ZipFile(raw_xpi_filepath, 'r') as zipin:
data = zipin.read(item.filename) data = zipin.read(item.filename)
if item.filename == 'manifest.json': if item.filename == 'manifest.json':
manifest = json.loads(bytes.decode(data)) manifest = json.loads(bytes.decode(data))
manifest['applications']['gecko']['update_url'] = 'https://raw.githubusercontent.com/{0}/{1}/master/dist/firefox/updates.json'.format(github_owner, github_repo) manifest['browser_specific_settings']['gecko']['update_url'] = 'https://raw.githubusercontent.com/{0}/{1}/master/dist/firefox/updates.json'.format(github_owner, github_repo)
data = json.dumps(manifest, indent=2, separators=(',', ': '), sort_keys=True).encode() data = json.dumps(manifest, indent=2, separators=(',', ': '), sort_keys=True).encode()
zipout.writestr(item, data) zipout.writestr(item, data)
@ -166,22 +173,35 @@ with zipfile.ZipFile(raw_xpi_filepath, 'r') as zipin:
# - https://addons-server.readthedocs.io/en/latest/topics/api/signing.html # - https://addons-server.readthedocs.io/en/latest/topics/api/signing.html
# #
print('Ask AMO to sign self-hosted xpi package...') amo_api_key = ''
with open(unsigned_xpi_filepath, 'rb') as f: amo_secret = ''
amo_api_key = input_secret('AMO API key', 'amo_api_key')
amo_secret = input_secret('AMO API secret', 'amo_secret') def get_jwt_auth():
global amo_api_key
if amo_api_key == '':
amo_api_key = input_secret('AMO API key', 'amo_api_key')
global amo_secret
if amo_secret == '':
amo_secret = input_secret('AMO API secret', 'amo_secret')
amo_nonce = os.urandom(8).hex() amo_nonce = os.urandom(8).hex()
jwt_payload = { jwt_payload = {
'iss': amo_api_key, 'iss': amo_api_key,
'jti': amo_nonce, 'jti': amo_nonce,
'iat': datetime.datetime.utcnow(), 'iat': datetime.datetime.utcnow(),
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=180), 'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=15),
} }
jwt_auth = 'JWT ' + jwt.encode(jwt_payload, amo_secret).decode() return 'JWT ' + jwt.encode(jwt_payload, amo_secret).decode()
headers = { 'Authorization': jwt_auth, }
print('Ask AMO to sign self-hosted xpi package...')
with open(unsigned_xpi_filepath, 'rb') as f:
# https://blog.mozilla.org/addons/2019/11/11/security-improvements-in-amo-upload-tools/
# "We recommend allowing up to 15 minutes."
interval = 60 # check every 60 seconds
countdown = 15 * 60 / interval # for at most 15 minutes
headers = { 'Authorization': get_jwt_auth(), }
data = { 'channel': 'unlisted' } data = { 'channel': 'unlisted' }
files = { 'upload': f, } files = { 'upload': f, }
signing_url = 'https://addons.mozilla.org/api/v3/addons/{0}/versions/{1}/'.format(extension_id, version) signing_url = 'https://addons.mozilla.org/api/v3/addons/{0}/versions/{1}/'.format(extension_id, ext_version)
print('Submitting package to be signed...') print('Submitting package to be signed...')
response = requests.put(signing_url, headers=headers, data=data, files=files) response = requests.put(signing_url, headers=headers, data=data, files=files)
if response.status_code != 202: if response.status_code != 202:
@ -194,30 +214,34 @@ with open(unsigned_xpi_filepath, 'rb') as f:
print('Waiting for AMO to process the request to sign the self-hosted xpi package...') print('Waiting for AMO to process the request to sign the self-hosted xpi package...')
# Wait for signed package to be ready # Wait for signed package to be ready
signing_check_url = signing_request_response['url'] signing_check_url = signing_request_response['url']
# TODO: use real time instead
countdown = 180 / 5
while True: while True:
sys.stdout.write('.') sys.stdout.write('.')
sys.stdout.flush() sys.stdout.flush()
time.sleep(5) time.sleep(interval)
countdown -= 1 countdown -= 1
if countdown <= 0: if countdown <= 0:
print('Error: AMO signing timed out') print('Error: AMO signing timed out')
exit(1) exit(1)
headers = { 'Authorization': get_jwt_auth(), }
response = requests.get(signing_check_url, headers=headers) response = requests.get(signing_check_url, headers=headers)
if response.status_code != 200: if response.status_code != 200:
print('Error: AMO signing failed -- server error {0}'.format(response.status_code)) print('Error: AMO signing failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1) exit(1)
signing_check_response = response.json() signing_check_response = response.json()
if not signing_check_response['processed']: if not signing_check_response['processed']:
continue continue
if not signing_check_response['valid']: if not signing_check_response['valid']:
print('Error: AMO validation failed') print('Error: AMO validation failed')
print(response.text)
exit(1) exit(1)
if not signing_check_response['files'] or len(signing_check_response['files']) == 0: if not signing_check_response['files'] or len(signing_check_response['files']) == 0:
continue continue
if not signing_check_response['files'][0]['signed']: if not signing_check_response['files'][0]['signed']:
continue
if not signing_check_response['files'][0]['download_url']:
print('Error: AMO signing failed') print('Error: AMO signing failed')
print(response.text)
exit(1) exit(1)
print('\r') print('\r')
print('Self-hosted xpi package successfully signed.') print('Self-hosted xpi package successfully signed.')
@ -226,6 +250,7 @@ with open(unsigned_xpi_filepath, 'rb') as f:
response = requests.get(download_url, headers=headers) response = requests.get(download_url, headers=headers)
if response.status_code != 200: if response.status_code != 200:
print('Error: Download signed package failed -- server error {0}'.format(response.status_code)) print('Error: Download signed package failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1) exit(1)
with open(signed_xpi_filepath, 'wb') as f: with open(signed_xpi_filepath, 'wb') as f:
f.write(response.content) f.write(response.content)
@ -272,11 +297,11 @@ with open(updates_json_filepath) as f:
updates_json = json.load(f) updates_json = json.load(f)
f.close() f.close()
previous_version = updates_json['addons'][extension_id]['updates'][0]['version'] previous_version = updates_json['addons'][extension_id]['updates'][0]['version']
if LooseVersion(version) > LooseVersion(previous_version): if LooseVersion(ext_version) > LooseVersion(previous_version):
with open(os.path.join(projdir, 'dist', 'firefox', 'updates.template.json')) as f: with open(os.path.join(projdir, 'dist', 'firefox', 'updates.template.json')) as f:
template_json = Template(f.read()) template_json = Template(f.read())
f.close() f.close()
updates_json = template_json.substitute(version=version) updates_json = template_json.substitute(ext_version=ext_version, tag_version=tag_version)
with open(updates_json_filepath, 'w') as f: with open(updates_json_filepath, 'w') as f:
f.write(updates_json) f.write(updates_json)
f.close() f.close()
@ -290,7 +315,7 @@ with open(updates_json_filepath) as f:
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE) r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip() rout = bytes.decode(r.stdout).strip()
if len(rout) >= 2 and rout[0] == 'M': if len(rout) >= 2 and rout[0] == 'M':
subprocess.run(['git', 'commit', '-m', 'make Firefox dev build auto-update', updates_json_filepath]) subprocess.run(['git', 'commit', '-m', 'Make Firefox dev build auto-update', updates_json_filepath])
subprocess.run(['git', 'push', 'origin', 'master']) subprocess.run(['git', 'push', 'origin', 'HEAD'])
print('All done.') print('All done.')

@ -1,12 +1,12 @@
{ {
"addons": { "addons": {
"uMatrix@raymondhill.net": { "nuTensor@geekprojects.com": {
"updates": [ "updates": [
{ {
"version": "1.3.17rc4", "version": "1.4.1.6",
"applications": { "gecko": { "strict_min_version": "56" } }, "browser_specific_settings": { "gecko": { "strict_min_version": "56" } },
"update_info_url": "https://github.com/gorhill/uMatrix/releases/tag/1.3.17rc4", "update_info_url": "https://github.com/geekprojects/nuTensor/releases/tag/1.4.1b6",
"update_link": "https://github.com/gorhill/uMatrix/releases/download/1.3.17rc4/uMatrix.firefox.signed.xpi" "update_link": "https://github.com/geekprojects/nuTensor/releases/download/1.4.1b6/nuTensor_1.4.1b6.firefox.signed.xpi"
} }
] ]
} }

@ -1,12 +1,12 @@
{ {
"addons": { "addons": {
"uMatrix@raymondhill.net": { "nuTensor@geekprojects.com": {
"updates": [ "updates": [
{ {
"version": "$version", "version": "$ext_version",
"applications": { "gecko": { "strict_min_version": "56" } }, "browser_specific_settings": { "gecko": { "strict_min_version": "56" } },
"update_info_url": "https://github.com/gorhill/uMatrix/releases/tag/$version", "update_info_url": "https://github.com/geekprojects/nuTensor/releases/tag/$tag_version",
"update_link": "https://github.com/gorhill/uMatrix/releases/download/$version/uMatrix.firefox.signed.xpi" "update_link": "https://github.com/geekprojects/nuTensor/releases/download/$tag_version/nuTensor_$tag_version.firefox.signed.xpi"
} }
] ]
} }

2
dist/version vendored

@ -1 +1 @@
1.4.0 1.5.0.0

@ -0,0 +1,39 @@
## Building nuTensor
### Requirements
Tools:
* bash
* python 3
You will need both this nuTensor and the nuAssets repositories. These should both be placed in the same directory:
```
git clone https://github.com/geekprojects/nuAssets.git
git clone https://github.com/geekprojects/nuTensor.git
cd nuTensor
```
### Packaging
You can now run the scripts that package everything up.
These are bash scripts. They have only been tested on Linux and MacOS.
#### For Firefox
```
tools/make-firefox.sh all
```
#### For Chrome/Chromium (Not yet tested)
```
tools/make-chromium.sh all
```
#### For Opera (Not yet tested)
```
tools/make-opera.sh
```
The installation package should now be found in dist/build/
### Installing
Follow the instructions in [README.md](README.md) to install it.

@ -2,16 +2,16 @@
#### Chromium #### Chromium
- Download and unzip `uMatrix.chromium.zip` ([latest release desirable](https://github.com/gorhill/uMatrix/releases)). - Download and unzip `nuTensor.chromium.zip` ([latest release desirable](https://github.com/geekprojects/nuTensor/releases)).
- Rename the unzipped directory to `umatrix` - Rename the unzipped directory to `nuTensor`
- When you later update manually, replace the **content** of the `umatrix` folder with the **content** of the latest zipped version. - When you later update manually, replace the **content** of the `nuTensor` folder with the **content** of the latest zipped version.
- This will ensure that all the extension settings will be preserved - This will ensure that all the extension settings will be preserved
- As long as the extension loads **from same folder path from which it was originally installed**, all your settings will be preserved. - As long as the extension loads **from same folder path from which it was originally installed**, all your settings will be preserved.
- Go to chromium/chrome *Extensions*. - Go to chromium/chrome *Extensions*.
- Click to check *Developer mode*. - Click to check *Developer mode*.
- Click *Load unpacked extension...*. - Click *Load unpacked extension...*.
- In the file selector dialog: - In the file selector dialog:
- Select the directory `umatrix` which was created above. - Select the directory `nuTensor` which was created above.
- Click *Open*. - Click *Open*.
The extension will now be available in your chromium/chromium-based browser. The extension will now be available in your chromium/chromium-based browser.
@ -22,16 +22,16 @@ Remember that you have to update manually also. For some users, updating manuall
#### Firefox #### Firefox
Although uMatrix is a restartless addon, I found that **installing** a newer version over an older one often will glitch the installation. These steps always worked fine: Although nuTensor is a restartless addon, I found that **installing** a newer version over an older one often will glitch the installation. These steps always worked fine:
- Download `uMatrix.firefox.xpi` ([latest release desirable](https://github.com/gorhill/uMatrix/releases)). - Download `nuTensor.firefox.xpi` ([latest release desirable](https://github.com/geekprojects/nuTensor/releases)).
- Uninstall current uMatrix if already installed - Uninstall current nuTensor if already installed
- Quit Firefox completely - Quit Firefox completely
- Launch Firefox - Launch Firefox
- Drag and drop the previously downloaded `uMatrix.firefox.xpi` into Firefox - Drag and drop the previously downloaded `nuTensor.firefox.xpi` into Firefox
uMatrix settings are kept intact even after you uninstall the addon. nuTensor settings are kept intact even after you uninstall the addon.
On Linux, the settings are saved in a SQlite file located at `~/.mozilla/firefox/[profile name]/extension-data/umatrix.sqlite`. On Linux, the settings are saved in a SQlite file located at `~/.mozilla/firefox/[profile name]/extension-data/nuTensor.sqlite`.
On Windows, the settings are saved in a SQlite file located at `%APPDATA%\Mozilla\Firefox\Profiles\[profile name]\extension-data\umatrix.sqlite`. On Windows, the settings are saved in a SQlite file located at `%APPDATA%\Mozilla\Firefox\Profiles\[profile name]\extension-data\nuTensor.sqlite`.

@ -1,7 +1,7 @@
{ {
"manifest_version": 2, "manifest_version": 2,
"name": "uMatrix", "name": "nuTensor",
"short_name": "uMatrix", "short_name": "nuTensor",
"version": "1.3.3.8", "version": "1.3.3.8",
"description": "__MSG_extShortDesc__", "description": "__MSG_extShortDesc__",
"icons": { "icons": {
@ -12,7 +12,7 @@
"default_icon": { "default_icon": {
"19": "img/browsericons/icon19-19.png" "19": "img/browsericons/icon19-19.png"
}, },
"default_title": "uMatrix", "default_title": "nuTensor",
"default_popup": "popup.html" "default_popup": "popup.html"
}, },
"author": "Raymond Hill", "author": "Raymond Hill",
@ -22,7 +22,7 @@
"content_scripts": [ "content_scripts": [
{ {
"matches": ["http://*/*", "https://*/*"], "matches": ["http://*/*", "https://*/*"],
"js": ["/js/vapi-client.js", "/js/contentscript-start.js"], "js": ["/js/vapi.js", "/js/vapi-client.js", "/js/contentscript-start.js"],
"run_at": "document_start", "run_at": "document_start",
"all_frames": true "all_frames": true
}, },
@ -34,7 +34,7 @@
} }
], ],
"default_locale": "en", "default_locale": "en",
"homepage_url": "https://github.com/gorhill/uMatrix/wiki", "homepage_url": "https://github.com/geekprojects/nuTensor",
"minimum_chrome_version": "45.0", "minimum_chrome_version": "45.0",
"options_ui": { "options_ui": {
"page": "dashboard.html", "page": "dashboard.html",

File diff suppressed because it is too large Load Diff

@ -0,0 +1,308 @@
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
Copyright (C) 2019-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
*/
// For non-background page
'use strict';
/******************************************************************************/
// Direct messaging connection ability
(( ) => {
// >>>>>>>> start of private namespace
if (
typeof vAPI !== 'object' ||
vAPI.messaging instanceof Object === false ||
vAPI.MessagingConnection instanceof Function
) {
return;
}
const listeners = new Set();
const connections = new Map();
vAPI.MessagingConnection = class {
constructor(handler, details) {
this.messaging = vAPI.messaging;
this.handler = handler;
this.id = details.id;
this.to = details.to;
this.toToken = details.toToken;
this.from = details.from;
this.fromToken = details.fromToken;
this.checkTimer = undefined;
// On Firefox it appears ports are not automatically disconnected
// when navigating to another page.
const ctor = vAPI.MessagingConnection;
if ( ctor.pagehide !== undefined ) { return; }
ctor.pagehide = ( ) => {
for ( const connection of connections.values() ) {
connection.disconnect();
connection.handler(
connection.toDetails('connectionBroken')
);
}
};
window.addEventListener('pagehide', ctor.pagehide);
}
toDetails(what, payload) {
return {
what: what,
id: this.id,
from: this.from,
fromToken: this.fromToken,
to: this.to,
toToken: this.toToken,
payload: payload
};
}
disconnect() {
if ( this.checkTimer !== undefined ) {
clearTimeout(this.checkTimer);
this.checkTimer = undefined;
}
connections.delete(this.id);
const port = this.messaging.getPort();
if ( port === null ) { return; }
port.postMessage({
channel: 'vapi',
msg: this.toDetails('connectionBroken'),
});
}
checkAsync() {
if ( this.checkTimer !== undefined ) {
clearTimeout(this.checkTimer);
}
this.checkTimer = vAPI.setTimeout(
( ) => { this.check(); },
499
);
}
check() {
this.checkTimer = undefined;
if ( connections.has(this.id) === false ) { return; }
const port = this.messaging.getPort();
if ( port === null ) { return; }
port.postMessage({
channel: 'vapi',
msg: this.toDetails('connectionCheck'),
});
this.checkAsync();
}
receive(details) {
switch ( details.what ) {
case 'connectionAccepted':
this.toToken = details.toToken;
this.handler(details);
this.checkAsync();
break;
case 'connectionBroken':
connections.delete(this.id);
this.handler(details);
break;
case 'connectionMessage':
this.handler(details);
this.checkAsync();
break;
case 'connectionCheck':
const port = this.messaging.getPort();
if ( port === null ) { return; }
if ( connections.has(this.id) ) {
this.checkAsync();
} else {
details.what = 'connectionBroken';
port.postMessage({ channel: 'vapi', msg: details });
}
break;
case 'connectionRefused':
connections.delete(this.id);
this.handler(details);
break;
}
}
send(payload) {
const port = this.messaging.getPort();
if ( port === null ) { return; }
port.postMessage({
channel: 'vapi',
msg: this.toDetails('connectionMessage', payload),
});
}
static addListener(listener) {
listeners.add(listener);
}
static async connectTo(from, to, handler) {
const port = vAPI.messaging.getPort();
if ( port === null ) { return; }
const connection = new vAPI.MessagingConnection(handler, {
id: `${from}-${to}-${vAPI.sessionId}`,
to: to,
from: from,
fromToken: port.name
});
connections.set(connection.id, connection);
port.postMessage({
channel: 'vapi',
msg: {
what: 'connectionRequested',
id: connection.id,
from: from,
fromToken: port.name,
to: to,
}
});
return connection.id;
}
static disconnectFrom(connectionId) {
const connection = connections.get(connectionId);
if ( connection === undefined ) { return; }
connection.disconnect();
}
static sendTo(connectionId, payload) {
const connection = connections.get(connectionId);
if ( connection === undefined ) { return; }
connection.send(payload);
}
static canDestroyPort() {
return listeners.length === 0 && connections.size === 0;
}
static mustDestroyPort() {
if ( connections.size === 0 ) { return; }
for ( const connection of connections.values() ) {
connection.receive({ what: 'connectionBroken' });
}
connections.clear();
}
static canProcessMessage(details) {
if ( details.channel !== 'vapi' ) { return; }
switch ( details.msg.what ) {
case 'connectionAccepted':
case 'connectionBroken':
case 'connectionCheck':
case 'connectionMessage':
case 'connectionRefused': {
const connection = connections.get(details.msg.id);
if ( connection === undefined ) { break; }
connection.receive(details.msg);
return true;
}
case 'connectionRequested':
if ( listeners.length === 0 ) { return; }
const port = vAPI.messaging.getPort();
if ( port === null ) { break; }
let listener, result;
for ( listener of listeners ) {
result = listener(details.msg);
if ( result !== undefined ) { break; }
}
if ( result === undefined ) { break; }
if ( result === true ) {
details.msg.what = 'connectionAccepted';
details.msg.toToken = port.name;
const connection = new vAPI.MessagingConnection(
listener,
details.msg
);
connections.set(connection.id, connection);
} else {
details.msg.what = 'connectionRefused';
}
port.postMessage(details);
return true;
default:
break;
}
}
};
vAPI.messaging.extensions.push(vAPI.MessagingConnection);
// <<<<<<<< end of private namespace
})();
/******************************************************************************/
// Broadcast listening ability
(( ) => {
// >>>>>>>> start of private namespace
if (
typeof vAPI !== 'object' ||
vAPI.messaging instanceof Object === false ||
vAPI.broadcastListener instanceof Object
) {
return;
}
const listeners = new Set();
vAPI.broadcastListener = {
add: function(listener) {
listeners.add(listener);
vAPI.messaging.getPort();
},
remove: function(listener) {
listeners.delete(listener);
},
canDestroyPort() {
return listeners.size === 0;
},
mustDestroyPort() {
listeners.clear();
},
canProcessMessage(details) {
if ( details.broadcast === false ) { return; }
for ( const listener of listeners ) {
listener(details.msg);
}
},
};
vAPI.messaging.extensions.push(vAPI.broadcastListener);
// <<<<<<<< end of private namespace
})();
/******************************************************************************/
/*******************************************************************************
DO NOT:
- Remove the following code
- Add code beyond the following code
Reason:
- https://github.com/gorhill/uBlock/pull/3721
- uBO never uses the return value from injected content scripts
**/
void 0;

@ -1,7 +1,8 @@
/******************************************************************************* /*******************************************************************************
uMatrix - a browser extension to block requests. uBlock Origin - a browser extension to block requests.
Copyright (C) 2014-2018 The uMatrix/uBlock Origin authors Copyright (C) 2014-2015 The uBlock Origin authors
Copyright (C) 2014-present Raymond Hill
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -16,60 +17,61 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}. along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uMatrix Home: https://github.com/gorhill/uBlock
*/ */
// For non background pages // For non-background page
'use strict'; 'use strict';
/******************************************************************************/ /******************************************************************************/
(function(self) {
/******************************************************************************/
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10
if ( self.vAPI === undefined || self.vAPI.uMatrix !== true ) {
self.vAPI = { uMatrix: true };
}
var vAPI = self.vAPI;
var chrome = self.chrome;
// https://github.com/chrisaljoudi/uBlock/issues/456 // https://github.com/chrisaljoudi/uBlock/issues/456
// Already injected? // Skip if already injected.
if ( vAPI.vapiClientInjected ) {
//console.debug('vapi-client.js already injected: skipping.');
return;
}
vAPI.vapiClientInjected = true;
vAPI.sessionId = String.fromCharCode(Date.now() % 26 + 97) + // >>>>>>>> start of HUGE-IF-BLOCK
Math.random().toString(36).slice(2); if (
typeof vAPI === 'object' &&
vAPI.randomToken instanceof Function === false
) {
/******************************************************************************/
/******************************************************************************/ /******************************************************************************/
vAPI.shutdown = (function() { vAPI.randomToken = function() {
var jobs = []; const now = Date.now();
return String.fromCharCode(now % 26 + 97) +
Math.floor((1 + Math.random()) * now).toString(36);
};
var add = function(job) { vAPI.sessionId = vAPI.randomToken();
jobs.push(job); vAPI.setTimeout = vAPI.setTimeout || self.setTimeout.bind(self);
};
var exec = function() { /******************************************************************************/
//console.debug('Shutting down...');
var job;
while ( (job = jobs.pop()) ) {
job();
}
};
return { vAPI.shutdown = {
add: add, jobs: [],
exec: exec add: function(job) {
}; this.jobs.push(job);
})(); },
exec: function() {
// Shutdown asynchronously, to ensure shutdown jobs are called from
// the top context.
self.requestIdleCallback(( ) => {
const jobs = this.jobs.slice();
this.jobs.length = 0;
while ( jobs.length !== 0 ) {
(jobs.pop())();
}
});
},
remove: function(job) {
let pos;
while ( (pos = this.jobs.indexOf(job)) !== -1 ) {
this.jobs.splice(pos, 1);
}
}
};
/******************************************************************************/ /******************************************************************************/
@ -77,9 +79,10 @@ vAPI.messaging = {
port: null, port: null,
portTimer: null, portTimer: null,
portTimerDelay: 10000, portTimerDelay: 10000,
listeners: new Set(), extended: undefined,
extensions: [],
msgIdGenerator: 1,
pending: new Map(), pending: new Map(),
auxProcessId: 1,
shuttingDown: false, shuttingDown: false,
shutdown: function() { shutdown: function() {
@ -87,41 +90,53 @@ vAPI.messaging = {
this.destroyPort(); this.destroyPort();
}, },
// https://github.com/uBlockOrigin/uBlock-issues/issues/403
// Spurious disconnection can happen, so do not consider such events
// as world-ending, i.e. stay around. Except for embedded frames.
disconnectListener: function() { disconnectListener: function() {
this.port = null; this.port = null;
vAPI.shutdown.exec(); if ( window !== window.top ) {
vAPI.shutdown.exec();
}
}, },
disconnectListenerBound: null, disconnectListenerBound: null,
messageListener: function(details) { messageListener: function(details) {
if ( !details ) { return; } if ( details instanceof Object === false ) { return; }
// Sent to all listeners
if ( details.broadcast ) {
this.sendToListeners(details.msg);
return;
}
// Response to specific message previously sent // Response to specific message previously sent
var listener; if ( details.msgId !== undefined ) {
if ( details.auxProcessId ) { const resolver = this.pending.get(details.msgId);
listener = this.pending.get(details.auxProcessId); if ( resolver !== undefined ) {
if ( listener !== undefined ) { this.pending.delete(details.msgId);
this.pending.delete(details.auxProcessId); resolver(details.msg);
listener(details.msg);
return; return;
} }
} }
// Unhandled messages
this.extensions.every(ext => ext.canProcessMessage(details) !== true);
},
messageListenerBound: null,
canDestroyPort: function() {
return this.pending.size === 0 &&
(
this.extensions.length === 0 ||
this.extensions.every(e => e.canDestroyPort())
);
},
mustDestroyPort: function() {
if ( this.extensions.length === 0 ) { return; }
this.extensions.forEach(e => e.mustDestroyPort());
this.extensions.length = 0;
}, },
messageListenerCallback: null,
portPoller: function() { portPoller: function() {
this.portTimer = null; this.portTimer = null;
if ( if ( this.port !== null && this.canDestroyPort() ) {
this.port !== null &&
this.listeners.size === 0 &&
this.pending.size === 0
) {
return this.destroyPort(); return this.destroyPort();
} }
this.portTimer = vAPI.setTimeout(this.portPollerBound, this.portTimerDelay); this.portTimer = vAPI.setTimeout(this.portPollerBound, this.portTimerDelay);
@ -134,48 +149,50 @@ vAPI.messaging = {
clearTimeout(this.portTimer); clearTimeout(this.portTimer);
this.portTimer = null; this.portTimer = null;
} }
var port = this.port; const port = this.port;
if ( port !== null ) { if ( port !== null ) {
port.disconnect(); port.disconnect();
port.onMessage.removeListener(this.messageListenerCallback); port.onMessage.removeListener(this.messageListenerBound);
port.onDisconnect.removeListener(this.disconnectListenerBound); port.onDisconnect.removeListener(this.disconnectListenerBound);
this.port = null; this.port = null;
} }
this.listeners.clear(); this.mustDestroyPort();
// service pending callbacks // service pending callbacks
if ( this.pending.size !== 0 ) { if ( this.pending.size !== 0 ) {
var pending = this.pending; const pending = this.pending;
this.pending = new Map(); this.pending = new Map();
for ( var callback of pending.values() ) { for ( const resolver of pending.values() ) {
if ( typeof callback === 'function' ) { resolver();
callback(null);
}
} }
} }
}, },
createPort: function() { createPort: function() {
if ( this.shuttingDown ) { return null; } if ( this.shuttingDown ) { return null; }
if ( this.messageListenerCallback === null ) { if ( this.messageListenerBound === null ) {
this.messageListenerCallback = this.messageListener.bind(this); this.messageListenerBound = this.messageListener.bind(this);
this.disconnectListenerBound = this.disconnectListener.bind(this); this.disconnectListenerBound = this.disconnectListener.bind(this);
this.portPollerBound = this.portPoller.bind(this); this.portPollerBound = this.portPoller.bind(this);
} }
try { try {
this.port = chrome.runtime.connect({name: vAPI.sessionId}) || null; this.port = browser.runtime.connect({name: vAPI.sessionId}) || null;
} catch (ex) { } catch (ex) {
this.port = null; this.port = null;
} }
if ( this.port !== null ) { // Not having a valid port at this point means the main process is
this.port.onMessage.addListener(this.messageListenerCallback); // not available: no point keeping the content scripts alive.
this.port.onDisconnect.addListener(this.disconnectListenerBound); if ( this.port === null ) {
this.portTimerDelay = 10000; vAPI.shutdown.exec();
if ( this.portTimer === null ) { return null;
this.portTimer = vAPI.setTimeout( }
this.portPollerBound, this.port.onMessage.addListener(this.messageListenerBound);
this.portTimerDelay this.port.onDisconnect.addListener(this.disconnectListenerBound);
); this.portTimerDelay = 10000;
} if ( this.portTimer === null ) {
this.portTimer = vAPI.setTimeout(
this.portPollerBound,
this.portTimerDelay
);
} }
return this.port; return this.port;
}, },
@ -184,70 +201,68 @@ vAPI.messaging = {
return this.port !== null ? this.port : this.createPort(); return this.port !== null ? this.port : this.createPort();
}, },
send: function(channelName, message, callback) { send: function(channel, msg) {
// Too large a gap between the last request and the last response means // Too large a gap between the last request and the last response means
// the main process is no longer reachable: memory leaks and bad // the main process is no longer reachable: memory leaks and bad
// performance become a risk -- especially for long-lived, dynamic // performance become a risk -- especially for long-lived, dynamic
// pages. Guard against this. // pages. Guard against this.
if ( this.pending.size > 25 ) { if ( this.pending.size > 50 ) {
vAPI.shutdown.exec(); vAPI.shutdown.exec();
} }
var port = this.getPort(); const port = this.getPort();
if ( port === null ) { if ( port === null ) {
if ( typeof callback === 'function' ) { callback(); } return Promise.resolve();
return;
} }
var auxProcessId; const msgId = this.msgIdGenerator++;
if ( callback ) { const promise = new Promise(resolve => {
auxProcessId = this.auxProcessId++; this.pending.set(msgId, resolve);
this.pending.set(auxProcessId, callback);
}
port.postMessage({
channelName: channelName,
auxProcessId: auxProcessId,
msg: message
}); });
port.postMessage({ channel, msgId, msg });
return promise;
}, },
addListener: function(listener) { // Dynamically extend capabilities.
this.listeners.add(listener); extend: function() {
this.getPort(); if ( this.extended === undefined ) {
}, this.extended = vAPI.messaging.send('vapi', {
what: 'extendClient'
removeListener: function(listener) { }).then(( ) => {
this.listeners.delete(listener); return self.vAPI instanceof Object &&
}, this.extensions.length !== 0;
}).catch(( ) => {
removeAllListeners: function() { });
this.listeners.clear();
},
sendToListeners: function(msg) {
for ( var listener of this.listeners ) {
listener(msg);
} }
} return this.extended;
},
}; };
vAPI.shutdown.add(( ) => {
vAPI.messaging.shutdown();
window.vAPI = undefined;
});
/******************************************************************************/
/******************************************************************************/ /******************************************************************************/
// No need to have vAPI client linger around after shutdown if
// we are not a top window (because element picker can still
// be injected in top window).
if ( window !== window.top ) {
vAPI.shutdown.add(function() {
vAPI = null;
});
} }
// <<<<<<<< end of HUGE-IF-BLOCK
/******************************************************************************/
vAPI.setTimeout = vAPI.setTimeout || function(callback, delay) {
setTimeout(function() { callback(); }, delay);
};
/******************************************************************************/
})(this); // jshint ignore: line
/******************************************************************************/
/*******************************************************************************
DO NOT:
- Remove the following code
- Add code beyond the following code
Reason:
- https://github.com/gorhill/uBlock/pull/3721
- uBO never uses the return value from injected content scripts
**/
void 0;

@ -23,32 +23,14 @@
'use strict'; 'use strict';
/******************************************************************************/
if ( self.browser instanceof Object ) {
self.chrome = self.browser;
} else {
self.browser = self.chrome;
}
/******************************************************************************/ /******************************************************************************/
/******************************************************************************/ /******************************************************************************/
(function(self) { vAPI.T0 = Date.now();
/******************************************************************************/ /******************************************************************************/
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10 vAPI.setTimeout = vAPI.setTimeout || self.setTimeout.bind(self);
if ( self.vAPI === undefined || self.vAPI.uMatrix !== true ) {
self.vAPI = { uMatrix: true };
}
var vAPI = self.vAPI;
var chrome = self.chrome;
/******************************************************************************/
vAPI.setTimeout = vAPI.setTimeout || window.setTimeout.bind(window);
/******************************************************************************/ /******************************************************************************/
@ -57,113 +39,182 @@ vAPI.webextFlavor = {
soup: new Set() soup: new Set()
}; };
(function() { (( ) => {
var ua = navigator.userAgent, const ua = navigator.userAgent;
flavor = vAPI.webextFlavor, const flavor = vAPI.webextFlavor;
soup = flavor.soup; const soup = flavor.soup;
var dispatch = function() { const dispatch = function() {
window.dispatchEvent(new CustomEvent('webextFlavor')); window.dispatchEvent(new CustomEvent('webextFlavor'));
}; };
// This is always true. // This is always true.
soup.add('ublock'); soup.add('ublock').add('webext');
// Whether this is a dev build.
if ( /^\d+\.\d+\.\d+\D/.test(browser.runtime.getManifest().version) ) {
soup.add('devbuild');
}
if ( /\bMobile\b/.test(ua) ) { if ( /\bMobile\b/.test(ua) ) {
soup.add('mobile'); soup.add('mobile');
} }
// Asynchronous // Asynchronous
var async = self.browser instanceof Object && if (
typeof self.browser.runtime.getBrowserInfo === 'function'; browser instanceof Object &&
if ( async ) { typeof browser.runtime.getBrowserInfo === 'function'
self.browser.runtime.getBrowserInfo().then(function(info) { ) {
flavor.major = parseInt(info.version, 10) || 0; browser.runtime.getBrowserInfo().then(info => {
flavor.major = parseInt(info.version, 10) || 60;
soup.add(info.vendor.toLowerCase()) soup.add(info.vendor.toLowerCase())
.add(info.name.toLowerCase()); .add(info.name.toLowerCase());
if ( flavor.major >= 53 ) { soup.add('user_stylesheet'); } if ( soup.has('firefox') && flavor.major < 57 ) {
if ( flavor.major >= 57 ) { soup.add('html_filtering'); } soup.delete('html_filtering');
}
dispatch(); dispatch();
}); });
if ( browser.runtime.getURL('').startsWith('moz-extension://') ) {
soup.add('mozilla')
.add('firefox')
.add('user_stylesheet')
.add('html_filtering');
flavor.major = 60;
}
return;
} }
// Synchronous // Synchronous -- order of tests is important
var match = /Firefox\/([\d.]+)/.exec(ua); let match;
if ( match !== null ) { if ( (match = /\bEdge\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0; flavor.major = parseInt(match[1], 10) || 0;
soup.add('mozilla') soup.add('microsoft').add('edge');
.add('firefox'); } else if ( (match = /\bOPR\/(\d+)/.exec(ua)) !== null ) {
if ( flavor.major >= 53 ) { soup.add('user_stylesheet'); } const reEx = /\bChrom(?:e|ium)\/([\d.]+)/;
if ( flavor.major >= 57 ) { soup.add('html_filtering'); } if ( reEx.test(ua) ) { match = reEx.exec(ua); }
} else { flavor.major = parseInt(match[1], 10) || 0;
match = /OPR\/([\d.]+)/.exec(ua); soup.add('opera').add('chromium');
if ( match !== null ) { } else if ( (match = /\bChromium\/(\d+)/.exec(ua)) !== null ) {
var reEx = /Chrom(?:e|ium)\/([\d.]+)/; flavor.major = parseInt(match[1], 10) || 0;
if ( reEx.test(ua) ) { match = reEx.exec(ua); } soup.add('chromium');
flavor.major = parseInt(match[1], 10) || 0; } else if ( (match = /\bChrome\/(\d+)/.exec(ua)) !== null ) {
soup.add('opera').add('chromium'); flavor.major = parseInt(match[1], 10) || 0;
} else { soup.add('google').add('chromium');
match = /Chromium\/([\d.]+)/.exec(ua); } else if ( (match = /\bSafari\/(\d+)/.exec(ua)) !== null ) {
if ( match !== null ) { flavor.major = parseInt(match[1], 10) || 0;
flavor.major = parseInt(match[1], 10) || 0; soup.add('apple').add('safari');
soup.add('chromium');
} else {
match = /Chrome\/([\d.]+)/.exec(ua);
if ( match !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('google').add('chromium');
}
}
}
// https://github.com/gorhill/uBlock/issues/3588
if ( soup.has('chromium') && flavor.major >= 67 ) {
soup.add('user_stylesheet');
}
} }
// Don't starve potential listeners // https://github.com/gorhill/uBlock/issues/3588
if ( !async ) { if ( soup.has('chromium') && flavor.major >= 66 ) {
vAPI.setTimeout(dispatch, 97); soup.add('user_stylesheet');
} }
// Don't starve potential listeners
vAPI.setTimeout(dispatch, 97);
})(); })();
/******************************************************************************/ /******************************************************************************/
// http://www.w3.org/International/questions/qa-scripts#directions {
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;
};
var setScriptDirection = function(language) { const reHostnameFromNetworkURL =
document.body.setAttribute( /^(?:http|ws|ftp)s?:\/\/([0-9a-z_][0-9a-z._-]*[0-9a-z])\//;
'dir',
['ar', 'he', 'fa', 'ps', 'ur'].indexOf(language) !== -1 ? 'rtl' : 'ltr' 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.domainFromURI = function(uri) {
return uri !== ''
? vAPI.domainFromHostname(vAPI.hostnameFromURI(uri))
: '';
};
}
/******************************************************************************/ /******************************************************************************/
vAPI.download = function(details) { vAPI.download = function(details) {
if ( !details.url ) { if ( !details.url ) { return; }
return; const a = document.createElement('a');
}
var a = document.createElement('a');
a.href = details.url; a.href = details.url;
a.setAttribute('download', details.filename || ''); a.setAttribute('download', details.filename || '');
a.setAttribute('type', 'text/plain');
a.dispatchEvent(new MouseEvent('click')); a.dispatchEvent(new MouseEvent('click'));
}; };
/******************************************************************************/ /******************************************************************************/
vAPI.getURL = chrome.runtime.getURL; vAPI.getURL = browser.runtime.getURL;
/******************************************************************************/ /******************************************************************************/
vAPI.i18n = chrome.i18n.getMessage; vAPI.i18n = browser.i18n.getMessage;
setScriptDirection(vAPI.i18n('@@ui_locale')); // http://www.w3.org/International/questions/qa-scripts#directions
document.body.setAttribute(
'dir',
['ar', 'he', 'fa', 'ps', 'ur'].indexOf(vAPI.i18n('@@ui_locale')) !== -1
? 'rtl'
: 'ltr'
);
/******************************************************************************/ /******************************************************************************/
// https://github.com/gorhill/uBlock/issues/3057
// - webNavigation.onCreatedNavigationTarget become broken on Firefox when we
// try to make the popup panel close itself using the original
// `window.open('', '_self').close()`.
vAPI.closePopup = function() { vAPI.closePopup = function() {
window.close(); if ( vAPI.webextFlavor.soup.has('firefox') ) {
window.close();
return;
}
// TODO: try to figure why this was used instead of a plain window.close().
// https://github.com/gorhill/uBlock/commit/b301ac031e0c2e9a99cb6f8953319d44e22f33d2#diff-bc664f26b9c453e0d43a9379e8135c6a
window.open('', '_self').close();
}; };
/******************************************************************************/ /******************************************************************************/
@ -207,8 +258,22 @@ vAPI.localStorage = {
} }
}; };
/******************************************************************************/
})(this);
/******************************************************************************/
/*******************************************************************************
DO NOT:
- Remove the following code
- Add code beyond the following code
Reason:
- https://github.com/gorhill/uBlock/pull/3721
- uBO never uses the return value from injected content scripts
**/
void 0;

@ -25,40 +25,17 @@
/******************************************************************************/ /******************************************************************************/
(function() { (( ) => {
// https://github.com/uBlockOrigin/uBlock-issues/issues/407
if ( vAPI.webextFlavor.soup.has('chromium') === false ) { return; }
const extToTypeMap = new Map([ const extToTypeMap = new Map([
['eot','font'],['otf','font'],['svg','font'],['ttf','font'],['woff','font'],['woff2','font'], ['eot','font'],['otf','font'],['svg','font'],['ttf','font'],['woff','font'],['woff2','font'],
['mp3','media'],['mp4','media'],['webm','media'], ['mp3','media'],['mp4','media'],['webm','media'],
['gif','image'],['ico','image'],['jpeg','image'],['jpg','image'],['png','image'],['webp','image'] ['gif','image'],['ico','image'],['jpeg','image'],['jpg','image'],['png','image'],['webp','image']
]); ]);
// https://www.reddit.com/r/uBlockOrigin/comments/9vcrk3/bug_in_ubo_1173_betas_when_saving_files_hosted_on/ const headerValue = (headers, name) => {
// Some types can be mapped from 'other', thus include 'other' if and
// only if the caller is interested in at least one of those types.
const denormalizeTypes = function(aa) {
if ( aa.length === 0 ) {
return Array.from(vAPI.net.validTypes);
}
const out = new Set();
let i = aa.length;
while ( i-- ) {
const type = aa[i];
if ( vAPI.net.validTypes.has(type) ) {
out.add(type);
}
}
if ( out.has('other') === false ) {
for ( const type of extToTypeMap.values() ) {
if ( out.has(type) ) {
out.add('other');
break;
}
}
}
return Array.from(out);
};
const headerValue = function(headers, name) {
let i = headers.length; let i = headers.length;
while ( i-- ) { while ( i-- ) {
if ( headers[i].name.toLowerCase() === name ) { if ( headers[i].name.toLowerCase() === name ) {
@ -70,128 +47,131 @@
const parsedURL = new URL('https://www.example.org/'); const parsedURL = new URL('https://www.example.org/');
vAPI.net.normalizeDetails = function(details) { // Extend base class to normalize as per platform.
let type = details.type;
// https://github.com/uBlockOrigin/uMatrix-issues/issues/156#issuecomment-494427094 vAPI.Net = class extends vAPI.Net {
if ( type === 'main_frame' ) { constructor() {
details.documentUrl = details.url; super();
this.suspendedTabIds = new Set();
} }
// Chromium 63+ supports the `initiator` property, which contains normalizeDetails(details) {
// the URL of the origin from which the network request was made. // Chromium 63+ supports the `initiator` property, which contains
else if ( // the URL of the origin from which the network request was made.
typeof details.initiator === 'string' && if (
details.initiator !== 'null' typeof details.initiator === 'string' &&
) { details.initiator !== 'null'
details.documentUrl = details.initiator; ) {
} details.documentUrl = details.initiator;
}
// https://github.com/gorhill/uBlock/issues/1493
// Chromium 49+/WebExtensions support a new request type: `ping`,
// which is fired as a result of using `navigator.sendBeacon`.
if ( type === 'ping' ) {
details.type = 'beacon';
return;
}
if ( type === 'imageset' ) {
details.type = 'image';
return;
}
// The rest of the function code is to normalize type
if ( type !== 'other' ) { return; }
// Try to map known "extension" part of URL to request type. let type = details.type;
parsedURL.href = details.url;
const path = parsedURL.pathname,
pos = path.indexOf('.', path.length - 6);
if ( pos !== -1 && (type = extToTypeMap.get(path.slice(pos + 1))) ) {
details.type = type;
return;
}
// Try to extract type from response headers if present. if ( type === 'imageset' ) {
if ( details.responseHeaders ) {
type = headerValue(details.responseHeaders, 'content-type');
if ( type.startsWith('font/') ) {
details.type = 'font';
return;
}
if ( type.startsWith('image/') ) {
details.type = 'image'; details.type = 'image';
return; return;
} }
if ( type.startsWith('audio/') || type.startsWith('video/') ) {
details.type = 'media'; // The rest of the function code is to normalize type
if ( type !== 'other' ) { return; }
// Try to map known "extension" part of URL to request type.
parsedURL.href = details.url;
const path = parsedURL.pathname,
pos = path.indexOf('.', path.length - 6);
if ( pos !== -1 && (type = extToTypeMap.get(path.slice(pos + 1))) ) {
details.type = type;
return; return;
} }
}
};
vAPI.net.denormalizeFilters = function(filters) { // Try to extract type from response headers if present.
const urls = filters.urls || [ '<all_urls>' ]; if ( details.responseHeaders ) {
let types = filters.types; type = headerValue(details.responseHeaders, 'content-type');
if ( Array.isArray(types) ) { if ( type.startsWith('font/') ) {
types = denormalizeTypes(types); details.type = 'font';
return;
}
if ( type.startsWith('image/') ) {
details.type = 'image';
return;
}
if ( type.startsWith('audio/') || type.startsWith('video/') ) {
details.type = 'media';
return;
}
}
} }
if ( // https://www.reddit.com/r/uBlockOrigin/comments/9vcrk3/
(vAPI.net.validTypes.has('websocket')) && // Some types can be mapped from 'other', thus include 'other' if and
(types === undefined || types.indexOf('websocket') !== -1) && // only if the caller is interested in at least one of those types.
(urls.indexOf('<all_urls>') === -1) denormalizeTypes(types) {
) { if ( types.length === 0 ) {
if ( urls.indexOf('ws://*/*') === -1 ) { return Array.from(this.validTypes);
urls.push('ws://*/*'); }
const out = new Set();
for ( const type of types ) {
if ( this.validTypes.has(type) ) {
out.add(type);
}
} }
if ( urls.indexOf('wss://*/*') === -1 ) { if ( out.has('other') === false ) {
urls.push('wss://*/*'); for ( const type of extToTypeMap.values() ) {
if ( out.has(type) ) {
out.add('other');
break;
}
}
}
return Array.from(out);
}
suspendOneRequest(details) {
this.suspendedTabIds.add(details.tabId);
return { cancel: true };
}
unsuspendAllRequests() {
for ( const tabId of this.suspendedTabIds ) {
vAPI.tabs.reload(tabId);
} }
this.suspendedTabIds.clear();
} }
return { types, urls };
}; };
})(); })();
/******************************************************************************/ /******************************************************************************/
// https://github.com/gorhill/uBlock/issues/2067 // https://github.com/uBlockOrigin/uBlock-issues/issues/548
// Experimental: Block everything until uBO is fully ready. // Use `X-DNS-Prefetch-Control` to workaround Chromium's disregard of the
// setting "Predict network actions to improve page load performance".
vAPI.net.onBeforeReady = (function() { vAPI.prefetching = (( ) => {
let pendings; // https://github.com/uBlockOrigin/uBlock-issues/issues/407
if ( vAPI.webextFlavor.soup.has('chromium') === false ) { return; }
const handler = function(details) { let listening = false;
if ( pendings === undefined ) { return; }
if ( details.tabId < 0 ) { return; }
pendings.add(details.tabId); const onHeadersReceived = function(details) {
details.responseHeaders.push({
//console.log(`Aborting tab ${details.tabId}: ${details.type} ${details.url}`); name: 'X-DNS-Prefetch-Control',
value: 'off'
return { cancel: true }; });
return { responseHeaders: details.responseHeaders };
}; };
return { return state => {
experimental: true, const wr = chrome.webRequest;
start: function() { if ( state && listening ) {
pendings = new Set(); wr.onHeadersReceived.removeListener(onHeadersReceived);
browser.webRequest.onBeforeRequest.addListener( listening = false;
handler, } else if ( !state && !listening ) {
{ urls: [ 'http://*/*', 'https://*/*' ] }, wr.onHeadersReceived.addListener(
[ 'blocking' ] onHeadersReceived,
{
urls: [ 'http://*/*', 'https://*/*' ],
types: [ 'main_frame', 'sub_frame' ]
},
[ 'blocking', 'responseHeaders' ]
); );
}, listening = true;
// https://github.com/gorhill/uBlock/issues/2067 }
// Force-reload tabs for which network requests were blocked
// during launch. This can happen only if tabs were "suspended".
stop: function() {
if ( pendings === undefined ) { return; }
browser.webRequest.onBeforeRequest.removeListener(handler);
for ( const tabId of pendings ) {
//console.log(`Reloading tab ${tabId}`);
vAPI.tabs.reload(tabId);
}
pendings = undefined;
},
}; };
})(); })();

@ -0,0 +1,86 @@
/*******************************************************************************
uMatrix - a browser extension to block requests.
Copyright (C) 2017-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';
/* global HTMLDocument, XMLDocument */
// For background page, auxiliary pages, and content scripts.
/******************************************************************************/
if ( self.browser instanceof Object ) {
self.chrome = self.browser;
} else {
self.browser = self.chrome;
}
/******************************************************************************/
// https://bugzilla.mozilla.org/show_bug.cgi?id=1408996#c9
var vAPI = self.vAPI; // jshint ignore:line
// https://github.com/chrisaljoudi/uBlock/issues/464
// https://github.com/chrisaljoudi/uBlock/issues/1528
// A XMLDocument can be a valid HTML document.
// https://github.com/gorhill/uBlock/issues/1124
// Looks like `contentType` is on track to be standardized:
// https://dom.spec.whatwg.org/#concept-document-content-type
// https://forums.lanik.us/viewtopic.php?f=64&t=31522
// Skip text/plain documents.
if (
(
document instanceof HTMLDocument ||
document instanceof XMLDocument &&
document.createElement('div') instanceof HTMLDivElement
) &&
(
/^image\/|^text\/plain/.test(document.contentType || '') === false
) &&
(
self.vAPI instanceof Object === false || vAPI.nuTensor !== true
)
) {
vAPI = self.vAPI = { nuTensor: true };
}
/*******************************************************************************
DO NOT:
- Remove the following code
- Add code beyond the following code
Reason:
- https://github.com/gorhill/uBlock/pull/3721
- uMatrix never uses the return value from injected content scripts
**/
void 0;

@ -0,0 +1,176 @@
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
Copyright (C) 2019-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';
// `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 noopFunc = ( ) => { };
const promisifyNoFail = function(thisArg, fnName, outFn = r => r) {
const fn = thisArg[fnName];
return function() {
return new Promise(resolve => {
fn.call(thisArg, ...arguments, function() {
if ( chrome.runtime.lastError instanceof Object ) {
void chrome.runtime.lastError.message;
}
resolve(outFn(...arguments));
});
});
};
};
const promisify = function(thisArg, fnName) {
const fn = thisArg[fnName];
return function() {
return new Promise((resolve, reject) => {
fn.call(thisArg, ...arguments, function() {
const lastError = chrome.runtime.lastError;
if ( lastError instanceof Object ) {
return reject(lastError.message);
}
resolve(...arguments);
});
});
};
};
const webext = {
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction
browserAction: {
setBadgeBackgroundColor: promisifyNoFail(chrome.browserAction, 'setBadgeBackgroundColor'),
setBadgeText: promisifyNoFail(chrome.browserAction, 'setBadgeText'),
setBadgeTextColor: noopFunc,
setIcon: promisifyNoFail(chrome.browserAction, 'setIcon'),
setTitle: promisifyNoFail(chrome.browserAction, 'setTitle'),
},
cookies: {
getAll: promisifyNoFail(chrome.cookies, 'getAll'),
remove: promisifyNoFail(chrome.cookies, 'remove'),
},
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus
/*
menus: {
create: function() {
return chrome.contextMenus.create(...arguments, ( ) => {
void chrome.runtime.lastError;
});
},
onClicked: chrome.contextMenus.onClicked,
remove: promisifyNoFail(chrome.contextMenus, 'remove'),
},
*/
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy
privacy: {
},
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage
storage: {
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/local
local: {
clear: promisify(chrome.storage.local, 'clear'),
get: promisify(chrome.storage.local, 'get'),
getBytesInUse: promisify(chrome.storage.local, 'getBytesInUse'),
remove: promisify(chrome.storage.local, 'remove'),
set: promisify(chrome.storage.local, 'set'),
},
},
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs
tabs: {
get: promisifyNoFail(chrome.tabs, 'get', tab => tab instanceof Object ? tab : null),
executeScript: promisifyNoFail(chrome.tabs, 'executeScript'),
insertCSS: promisifyNoFail(chrome.tabs, 'insertCSS'),
query: promisifyNoFail(chrome.tabs, 'query', tabs => Array.isArray(tabs) ? tabs : []),
reload: promisifyNoFail(chrome.tabs, 'reload'),
remove: promisifyNoFail(chrome.tabs, 'remove'),
update: promisifyNoFail(chrome.tabs, 'update', tab => tab instanceof Object ? tab : null),
},
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webNavigation
webNavigation: {
getFrame: promisify(chrome.webNavigation, 'getFrame'),
},
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/windows
windows: {
get: promisifyNoFail(chrome.windows, 'get', win => win instanceof Object ? win : null),
create: promisifyNoFail(chrome.windows, 'create', win => win instanceof Object ? win : null),
update: promisifyNoFail(chrome.windows, 'update', win => win instanceof Object ? win : null),
},
};
// browser.privacy entries
{
const settings = [
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy/network
[ 'network', 'networkPredictionEnabled' ],
[ 'network', 'webRTCIPHandlingPolicy' ],
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy/websites
[ 'websites', 'hyperlinkAuditingEnabled' ],
];
for ( const [ category, setting ] of settings ) {
let categoryEntry = webext.privacy[category];
if ( categoryEntry instanceof Object === false ) {
categoryEntry = webext.privacy[category] = {};
}
const settingEntry = categoryEntry[setting] = {};
const thisArg = chrome.privacy[category][setting];
settingEntry.clear = promisifyNoFail(thisArg, 'clear');
settingEntry.get = promisifyNoFail(thisArg, 'get');
settingEntry.set = promisifyNoFail(thisArg, 'set');
}
}
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/managed
if ( chrome.storage.managed instanceof Object ) {
webext.storage.managed = {
get: promisify(chrome.storage.managed, 'get'),
};
}
// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/sync
if ( chrome.storage.sync instanceof Object ) {
webext.storage.sync = {
QUOTA_BYTES: chrome.storage.sync.QUOTA_BYTES,
QUOTA_BYTES_PER_ITEM: chrome.storage.sync.QUOTA_BYTES_PER_ITEM,
MAX_ITEMS: chrome.storage.sync.MAX_ITEMS,
MAX_WRITE_OPERATIONS_PER_HOUR: chrome.storage.sync.MAX_WRITE_OPERATIONS_PER_HOUR,
MAX_WRITE_OPERATIONS_PER_MINUTE: chrome.storage.sync.MAX_WRITE_OPERATIONS_PER_MINUTE,
clear: promisify(chrome.storage.sync, 'clear'),
get: promisify(chrome.storage.sync, 'get'),
getBytesInUse: promisify(chrome.storage.sync, 'getBytesInUse'),
remove: promisify(chrome.storage.sync, 'remove'),
set: promisify(chrome.storage.sync, 'set'),
};
}
// https://bugs.chromium.org/p/chromium/issues/detail?id=608854
if ( chrome.tabs.removeCSS instanceof Function ) {
webext.tabs.removeCSS = promisifyNoFail(chrome.tabs, 'removeCSS');
}
return webext;
// <<<<< end of private scope
})();

@ -1,8 +1,8 @@
{ {
"applications": { "browser_specific_settings": {
"gecko": { "gecko": {
"id": "uMatrix@raymondhill.net", "id": "nuTensor@geekprojects.com",
"strict_min_version": "56.0a1" "strict_min_version": "60.0"
} }
}, },
"author": "Raymond Hill", "author": "Raymond Hill",
@ -14,13 +14,13 @@
"default_icon": { "default_icon": {
"19": "img/browsericons/icon19-off.png" "19": "img/browsericons/icon19-off.png"
}, },
"default_title": "uMatrix", "default_title": "nuTensor",
"default_popup": "popup.html" "default_popup": "popup.html"
}, },
"content_scripts": [ "content_scripts": [
{ {
"matches": ["http://*/*", "https://*/*"], "matches": ["http://*/*", "https://*/*"],
"js": ["/js/vapi-client.js", "/js/contentscript-start.js"], "js": ["/js/vapi.js", "/js/vapi-client.js", "/js/contentscript-start.js"],
"run_at": "document_start", "run_at": "document_start",
"all_frames": true "all_frames": true
}, },
@ -38,7 +38,7 @@
"128": "img/icon_128.png" "128": "img/icon_128.png"
}, },
"manifest_version": 2, "manifest_version": 2,
"name": "uMatrix", "name": "nuTensor",
"options_ui": { "options_ui": {
"page":"dashboard.html", "page":"dashboard.html",
"open_in_tab": true "open_in_tab": true
@ -46,6 +46,7 @@
"permissions": [ "permissions": [
"browsingData", "browsingData",
"cookies", "cookies",
"dns",
"privacy", "privacy",
"storage", "storage",
"tabs", "tabs",
@ -54,7 +55,7 @@
"webRequestBlocking", "webRequestBlocking",
"<all_urls>" "<all_urls>"
], ],
"short_name": "uMatrix", "short_name": "nuTensor",
"sidebar_action": { "sidebar_action": {
"default_title": "__MSG_loggerPageName__", "default_title": "__MSG_loggerPageName__",
"default_panel": "logger-ui.html", "default_panel": "logger-ui.html",

@ -1,263 +0,0 @@
/*******************************************************************************
uMatrix - a browser extension to block requests.
Copyright (C) 2016-2017 The uBlock Origin authors
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
*/
/* global indexedDB, IDBDatabase */
'use strict';
/******************************************************************************/
// The code below has been originally manually imported from:
// Commit: https://github.com/nikrolls/uBlock-Edge/commit/d1538ea9bea89d507219d3219592382eee306134
// Commit date: 29 October 2016
// Commit author: https://github.com/nikrolls
// Commit message: "Implement cacheStorage using IndexedDB"
// The original imported code has been subsequently modified as it was not
// compatible with Firefox.
// (a Promise thing, see https://github.com/dfahlander/Dexie.js/issues/317)
// Furthermore, code to migrate from browser.storage.local to vAPI.cacheStorage
// has been added, for seamless migration of cache-related entries into
// indexedDB.
// Imported from uBlock Origin project.
vAPI.cacheStorage = (function() {
const STORAGE_NAME = 'uMatrixCacheStorage';
var db;
var pending = [];
// prime the db so that it's ready asap for next access.
getDb(noopfn);
return { get, set, remove, clear, getBytesInUse };
function get(input, callback) {
if ( typeof callback !== 'function' ) { return; }
if ( input === null ) {
return getAllFromDb(callback);
}
var toRead, output = {};
if ( typeof input === 'string' ) {
toRead = [ input ];
} else if ( Array.isArray(input) ) {
toRead = input;
} else /* if ( typeof input === 'object' ) */ {
toRead = Object.keys(input);
output = input;
}
return getFromDb(toRead, output, callback);
}
function set(input, callback) {
putToDb(input, callback);
}
function remove(key, callback) {
deleteFromDb(key, callback);
}
function clear(callback) {
clearDb(callback);
}
function getBytesInUse(keys, callback) {
// TODO: implement this
callback(0);
}
function genericErrorHandler(error) {
console.error('[%s]', STORAGE_NAME, error);
}
function noopfn() {
}
function processPendings() {
var cb;
while ( (cb = pending.shift()) ) {
cb(db);
}
}
function getDb(callback) {
if ( pending === undefined ) {
return callback();
}
if ( pending.length !== 0 ) {
return pending.push(callback);
}
if ( db instanceof IDBDatabase ) {
return callback(db);
}
pending.push(callback);
if ( pending.length !== 1 ) { return; }
// https://github.com/gorhill/uBlock/issues/3156
// I have observed that no event was fired in Tor Browser 7.0.7 +
// medium security level after the request to open the database was
// created. When this occurs, I have also observed that the `error`
// property was already set, so this means uBO can detect here whether
// the database can be opened successfully. A try-catch block is
// necessary when reading the `error` property because we are not
// allowed to read this propery outside of event handlers in newer
// implementation of IDBRequest (my understanding).
var req;
try {
req = indexedDB.open(STORAGE_NAME, 1);
if ( req.error ) {
console.log(req.error);
req = undefined;
}
} catch(ex) {
}
if ( req === undefined ) {
processPendings();
pending = undefined;
return;
}
req.onupgradeneeded = function(ev) {
req = undefined;
db = ev.target.result;
db.onerror = db.onabort = genericErrorHandler;
var table = db.createObjectStore(STORAGE_NAME, { keyPath: 'key' });
table.createIndex('value', 'value', { unique: false });
};
req.onsuccess = function(ev) {
req = undefined;
db = ev.target.result;
db.onerror = db.onabort = genericErrorHandler;
processPendings();
};
req.onerror = req.onblocked = function() {
req = undefined;
console.log(this.error);
processPendings();
pending = undefined;
};
}
function getFromDb(keys, store, callback) {
if ( typeof callback !== 'function' ) { return; }
if ( keys.length === 0 ) { return callback(store); }
var gotOne = function() {
if ( typeof this.result === 'object' ) {
store[this.result.key] = this.result.value;
}
};
getDb(function(db) {
if ( !db ) { return callback(); }
var transaction = db.transaction(STORAGE_NAME);
transaction.oncomplete =
transaction.onerror =
transaction.onabort = function() {
return callback(store);
};
var table = transaction.objectStore(STORAGE_NAME);
for ( var key of keys ) {
var req = table.get(key);
req.onsuccess = gotOne;
req.onerror = noopfn;
req = undefined;
}
});
}
function getAllFromDb(callback) {
if ( typeof callback !== 'function' ) {
callback = noopfn;
}
getDb(function(db) {
if ( !db ) { return callback(); }
var output = {};
var transaction = db.transaction(STORAGE_NAME);
transaction.oncomplete =
transaction.onerror =
transaction.onabort = function() {
callback(output);
};
var table = transaction.objectStore(STORAGE_NAME),
req = table.openCursor();
req.onsuccess = function(ev) {
var cursor = ev.target.result;
if ( !cursor ) { return; }
output[cursor.key] = cursor.value;
cursor.continue();
};
});
}
function putToDb(input, callback) {
if ( typeof callback !== 'function' ) {
callback = noopfn;
}
var keys = Object.keys(input);
if ( keys.length === 0 ) { return callback(); }
getDb(function(db) {
if ( !db ) { return callback(); }
var transaction = db.transaction(STORAGE_NAME, 'readwrite');
transaction.oncomplete =
transaction.onerror =
transaction.onabort = callback;
var table = transaction.objectStore(STORAGE_NAME);
for ( var key of keys ) {
var entry = {};
entry.key = key;
entry.value = input[key];
table.put(entry);
entry = undefined;
}
});
}
function deleteFromDb(input, callback) {
if ( typeof callback !== 'function' ) {
callback = noopfn;
}
var keys = Array.isArray(input) ? input.slice() : [ input ];
if ( keys.length === 0 ) { return callback(); }
getDb(function(db) {
if ( !db ) { return callback(); }
var transaction = db.transaction(STORAGE_NAME, 'readwrite');
transaction.oncomplete =
transaction.onerror =
transaction.onabort = callback;
var table = transaction.objectStore(STORAGE_NAME);
for ( var key of keys ) {
table.delete(key);
}
});
}
function clearDb(callback) {
if ( typeof callback !== 'function' ) {
callback = noopfn;
}
getDb(function(db) {
if ( !db ) { return callback(); }
var req = db.transaction(STORAGE_NAME, 'readwrite')
.objectStore(STORAGE_NAME)
.clear();
req.onsuccess = req.onerror = callback;
});
}
}());
/******************************************************************************/

@ -25,12 +25,14 @@
/******************************************************************************/ /******************************************************************************/
(function() { (( ) => {
// https://github.com/uBlockOrigin/uBlock-issues/issues/407
if ( vAPI.webextFlavor.soup.has('firefox') === false ) { return; }
// https://github.com/gorhill/uBlock/issues/2950 // https://github.com/gorhill/uBlock/issues/2950
// Firefox 56 does not normalize URLs to ASCII, uBO must do this itself. // Firefox 56 does not normalize URLs to ASCII, uBO must do this itself.
// https://bugzilla.mozilla.org/show_bug.cgi?id=945240 // https://bugzilla.mozilla.org/show_bug.cgi?id=945240
const evalMustPunycode = function() { const evalMustPunycode = ( ) => {
return vAPI.webextFlavor.soup.has('firefox') && return vAPI.webextFlavor.soup.has('firefox') &&
vAPI.webextFlavor.major < 57; vAPI.webextFlavor.major < 57;
}; };
@ -43,142 +45,218 @@
mustPunycode = evalMustPunycode(); mustPunycode = evalMustPunycode();
}, { once: true }); }, { once: true });
const denormalizeTypes = function(aa) {
if ( aa.length === 0 ) {
return Array.from(vAPI.net.validTypes);
}
const out = new Set();
let i = aa.length;
while ( i-- ) {
let type = aa[i];
if ( vAPI.net.validTypes.has(type) ) {
out.add(type);
}
if ( type === 'image' && vAPI.net.validTypes.has('imageset') ) {
out.add('imageset');
}
if ( type === 'sub_frame' ) {
out.add('object');
}
}
return Array.from(out);
};
const punycode = self.punycode; const punycode = self.punycode;
const reAsciiHostname = /^https?:\/\/[0-9a-z_.:@-]+[/?#]/; const reAsciiHostname = /^https?:\/\/[0-9a-z_.:@-]+[/?#]/;
const parsedURL = new URL('about:blank'); const parsedURL = new URL('about:blank');
vAPI.net.normalizeDetails = function(details) { // Related issues:
if ( mustPunycode && !reAsciiHostname.test(details.url) ) { // - https://github.com/gorhill/uBlock/issues/1327
parsedURL.href = details.url; // - https://github.com/uBlockOrigin/uBlock-issues/issues/128
details.url = details.url.replace( // - https://bugzilla.mozilla.org/show_bug.cgi?id=1503721
parsedURL.hostname,
punycode.toASCII(parsedURL.hostname)
);
}
const type = details.type; // Extend base class to normalize as per platform.
// https://github.com/gorhill/uBlock/issues/1493 vAPI.Net = class extends vAPI.Net {
// Chromium 49+/WebExtensions support a new request type: `ping`, constructor() {
// which is fired as a result of using `navigator.sendBeacon`. super();
if ( type === 'ping' ) { this.pendingRequests = [];
details.type = 'beacon'; this.cnames = new Map([ [ '', '' ] ]);
return; this.cnameIgnoreList = null;
this.cnameIgnore1stParty = true;
this.cnameIgnoreExceptions = true;
this.cnameIgnoreRootDocument = true;
this.cnameMaxTTL = 60;
this.cnameReplayFullURL = false;
this.cnameTimer = undefined;
this.canRevealCNAME = browser.dns instanceof Object;
} }
setOptions(options) {
if ( type === 'imageset' ) { super.setOptions(options);
details.type = 'image'; this.cnameIgnoreList = this.regexFromStrList(options.cnameIgnoreList);
return; this.cnameIgnore1stParty = options.cnameIgnore1stParty !== false;
this.cnameIgnoreExceptions = options.cnameIgnoreExceptions !== false;
this.cnameIgnoreRootDocument = options.cnameIgnoreRootDocument !== false;
this.cnameMaxTTL = options.cnameMaxTTL || 120;
this.cnameReplayFullURL = options.cnameReplayFullURL === true;
this.cnames.clear(); this.cnames.set('', '');
} }
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' ) {
details.type = 'image';
return;
}
// https://github.com/uBlockOrigin/uBlock-issues/issues/345 // https://github.com/uBlockOrigin/uBlock-issues/issues/345
// Re-categorize an embedded object as a `sub_frame` if its // Re-categorize an embedded object as a `sub_frame` if its
// content type is that of a HTML document. // content type is that of a HTML document.
if ( type === 'object' && Array.isArray(details.responseHeaders) ) { if ( type === 'object' && Array.isArray(details.responseHeaders) ) {
for ( const header of details.responseHeaders ) { for ( const header of details.responseHeaders ) {
if ( header.name.toLowerCase() === 'content-type' ) { if ( header.name.toLowerCase() === 'content-type' ) {
if ( header.value.startsWith('text/html') ) { if ( header.value.startsWith('text/html') ) {
details.type = 'sub_frame'; details.type = 'sub_frame';
}
break;
} }
break;
} }
} }
} }
}; denormalizeTypes(types) {
if ( types.length === 0 ) {
vAPI.net.denormalizeFilters = function(filters) { return Array.from(this.validTypes);
const urls = filters.urls || [ '<all_urls>' ]; }
let types = filters.types; const out = new Set();
if ( Array.isArray(types) ) { for ( const type of types ) {
types = denormalizeTypes(types); if ( this.validTypes.has(type) ) {
out.add(type);
}
if ( type === 'image' && this.validTypes.has('imageset') ) {
out.add('imageset');
}
if ( type === 'sub_frame' ) {
out.add('object');
}
}
return Array.from(out);
}
processCanonicalName(hn, cn, details) {
const hnBeg = details.url.indexOf(hn);
if ( hnBeg === -1 ) { return; }
const oldURL = details.url;
let newURL = oldURL.slice(0, hnBeg) + cn;
const hnEnd = hnBeg + hn.length;
if ( this.cnameReplayFullURL ) {
newURL += oldURL.slice(hnEnd);
} else {
const pathBeg = oldURL.indexOf('/', hnEnd);
if ( pathBeg !== -1 ) {
newURL += oldURL.slice(hnEnd, pathBeg + 1);
}
}
details.url = newURL;
details.aliasURL = oldURL;
return super.onBeforeSuspendableRequest(details);
} }
if ( recordCanonicalName(hn, record) {
(vAPI.net.validTypes.has('websocket')) && let cname =
(types === undefined || types.indexOf('websocket') !== -1) && typeof record.canonicalName === 'string' &&
(urls.indexOf('<all_urls>') === -1) record.canonicalName !== hn
) { ? record.canonicalName
if ( urls.indexOf('ws://*/*') === -1 ) { : '';
urls.push('ws://*/*'); if (
cname !== '' &&
this.cnameIgnore1stParty &&
vAPI.domainFromHostname(cname) === vAPI.domainFromHostname(hn)
) {
cname = '';
}
if (
cname !== '' &&
this.cnameIgnoreList !== null &&
this.cnameIgnoreList.test(cname)
) {
cname = '';
} }
if ( urls.indexOf('wss://*/*') === -1 ) { this.cnames.set(hn, cname);
urls.push('wss://*/*'); if ( this.cnameTimer === undefined ) {
this.cnameTimer = self.setTimeout(
( ) => {
this.cnameTimer = undefined;
this.cnames.clear(); this.cnames.set('', '');
},
this.cnameMaxTTL * 60000
);
} }
return cname;
} }
return { types, urls }; regexFromStrList(list) {
}; if (
})(); typeof list !== 'string' ||
list.length === 0 ||
/******************************************************************************/ list === 'unset' ||
browser.dns instanceof Object === false
// Related issues: ) {
// - https://github.com/gorhill/uBlock/issues/1327 return null;
// - https://github.com/uBlockOrigin/uBlock-issues/issues/128 }
// - https://bugzilla.mozilla.org/show_bug.cgi?id=1503721 if ( list === '*' ) {
return /^./;
vAPI.net.onBeforeReady = (function() { }
let pendings; return new RegExp(
'(?:^|\.)(?:' +
const handler = function(details) { list.trim()
if ( pendings === undefined ) { return; } .split(/\s+/)
if ( details.tabId < 0 ) { return; } .map(a => a.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
.join('|') +
//console.log(`Deferring tab ${details.tabId}: ${details.type} ${details.url}`); ')$'
const pending = {
details: Object.assign({}, details),
resolve: undefined,
promise: undefined
};
pending.promise = new Promise(function(resolve) {
pending.resolve = resolve;
});
pendings.push(pending);
return pending.promise;
};
return {
start: function() {
pendings = [];
browser.webRequest.onBeforeRequest.addListener(
handler,
{ urls: [ 'http://*/*', 'https://*/*' ] },
[ 'blocking' ]
); );
}, }
stop: function(resolver) { onBeforeSuspendableRequest(details) {
if ( pendings === undefined ) { return; } const r = super.onBeforeSuspendableRequest(details);
for ( const pending of pendings ) { if ( this.canRevealCNAME === false ) { return r; }
const details = pending.details; if ( r !== undefined ) {
vAPI.net.normalizeDetails(details); if ( r.cancel === false ) { return; }
//console.log(`Processing tab ${details.tabId}: ${details.type} ${details.url}`); if (
pending.resolve(resolver(details)); r.cancel === true ||
r.redirectUrl !== undefined ||
this.cnameIgnoreExceptions
) {
return r;
}
} }
pendings = undefined; if (
}, details.type === 'main_frame' &&
this.cnameIgnoreRootDocument
) {
return;
}
const hn = vAPI.hostnameFromNetworkURL(details.url);
const cname = this.cnames.get(hn);
if ( cname === '' ) { return; }
if ( cname !== undefined ) {
return this.processCanonicalName(hn, cname, details);
}
return browser.dns.resolve(hn, [ 'canonical_name' ]).then(
rec => {
const cname = this.recordCanonicalName(hn, rec);
if ( cname === '' ) { return; }
return this.processCanonicalName(hn, cname, details);
},
( ) => {
this.cnames.set(hn, '');
}
);
}
suspendOneRequest(details) {
const pending = {
details: Object.assign({}, details),
resolve: undefined,
promise: undefined
};
pending.promise = new Promise(resolve => {
pending.resolve = resolve;
});
this.pendingRequests.push(pending);
return pending.promise;
}
unsuspendAllRequests() {
const pendingRequests = this.pendingRequests;
this.pendingRequests = [];
for ( const entry of pendingRequests ) {
entry.resolve(this.onBeforeSuspendableRequest(entry.details));
}
}
canSuspend() {
return true;
}
}; };
})(); })();

@ -0,0 +1,24 @@
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
Copyright (C) 2019-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';
const webext = browser; // jshint ignore:line

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — لوحة التحكم", "message": "nuTensor — لوحة التحكم",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — المسجل", "message": "nuTensor — المسجل",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "سكربت", "message": "سكربت",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "محاكات وسمات <code><noscript></code>", "message": "محاكات وسمات <code><noscript></code>",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "إعادة كافة التغييرات المؤقتة", "message": "إعادة كافة التغييرات المؤقتة",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; إحصائيات", "message": "nuTensor &ndash; إحصائيات",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "تحديث الصفحة", "message": "تحديث الصفحة",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "فلتر مرشح",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "حذف الارتباط: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "فشل في حذف الارتباط: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "مخبأ المتصفح مسح",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "الأصول تحديث: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; إعدادات", "message": "nuTensor &ndash; إعدادات",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "انهيار نائبا من عناصر المحظورة", "message": "انهيار نائبا من عناصر المحظورة",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "تقليص مكان العناصر المدرجة في القائمة السوداء", "message": "تقليص مكان العناصر المدرجة في القائمة السوداء",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; الخصوصية", "message": "nuTensor &ndash; الخصوصية",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup style='font-size:smaller'>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p style='font-size:smaller'>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup style='font-size:smaller'>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p style='font-size:smaller'>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "<p>From Wikipedia:</p><blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote><p>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "<p>From Wikipedia:</p><blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote><p>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>تغيير log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>تغيير log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>توثيق</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>توثيق</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "سيتم الكتابة فوق كل ما تبذلونه من إعدادات استخدام البيانات احتياطيا على {{time}}، \n\nوسوف uMatrix إعادة تشغيل. الكتابة عن الإعدادات الموجودة باستخدام البيانات احتياطيا؟?", "message": "سيتم الكتابة فوق كل ما تبذلونه من إعدادات استخدام البيانات احتياطيا على {{time}}، \n\nوسوف nuTensor إعادة تشغيل. الكتابة عن الإعدادات الموجودة باستخدام البيانات احتياطيا؟?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "الحذر! سيؤدي هذا إلى إزالة كافة الإعدادات المخصصة الخاصة بك. هل أنت متأكد أنك تريد المتابعة؟?", "message": "الحذر! سيؤدي هذا إلى إزالة كافة الإعدادات المخصصة الخاصة بك. هل أنت متأكد أنك تريد المتابعة؟?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "فلتر مرشح",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "الحد الأقصى لعدد المحاولات",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "حذف الارتباط: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "فشل في حذف الارتباط: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "مخبأ المتصفح مسح",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "الأصول تحديث: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "منعت uMatrix على الصفحة التالية من التحميل:", "message": "منعت nuTensor على الصفحة التالية من التحميل:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "بسبب القاعدة التالية", "message": "بسبب القاعدة التالية",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "تطبيق التغييرات", "message": "تطبيق التغييرات",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Tабло", "message": "nuTensor — Tабло",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Журнал", "message": "nuTensor — Журнал",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -28,7 +28,7 @@
"description": "a tab in dashboard" "description": "a tab in dashboard"
}, },
"userRulesPageName": { "userRulesPageName": {
"message": "Мои правила", "message": "Мой правила",
"description": "a tab in dashboard" "description": "a tab in dashboard"
}, },
"ubiquitousRulesPageName": { "ubiquitousRulesPageName": {
@ -71,8 +71,8 @@
"message": "скрипт", "message": "скрипт",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -108,7 +108,7 @@
"description": "Tool tip for the revert local permission button" "description": "Tool tip for the revert local permission button"
}, },
"matrixReloadButton": { "matrixReloadButton": {
"message": "Презарежда страницата.\nС натискане на Shift прескача буфера на четеца.", "message": "Презареждане на страницата.\nС натискане на Shift прескача буфера на четеца.",
"description": "Tool tip for the reload button" "description": "Tool tip for the reload button"
}, },
"matrix1stPartyLabel": { "matrix1stPartyLabel": {
@ -120,11 +120,11 @@
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**" "description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
}, },
"matrixSwitchNoMixedContent": { "matrixSwitchNoMixedContent": {
"message": "Без смесено съдържание", "message": "Забрана на смесено съдържание",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchNoWorker": { "matrixSwitchNoWorker": {
"message": "Забрани web workers", "message": "Забрана на web workers",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchReferrerSpoof": { "matrixSwitchReferrerSpoof": {
@ -135,20 +135,24 @@
"message": "Фалшифицирайте <code><noscript></code> таговете", "message": "Фалшифицирайте <code><noscript></code> таговете",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Отхвърля всички временни промени", "message": "Отмяна на всички временни промени",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixLoggerMenuEntry": { "matrixLoggerMenuEntry": {
"message": "Отваря журнала", "message": "Отваряне на журнала",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixDashboardMenuEntry": { "matrixDashboardMenuEntry": {
"message": "Към таблото", "message": "Към контролното табло",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixNoTabFound": { "matrixNoTabFound": {
"message": "Не е намерена уеб страница", "message": "Няма намерена уеб страница",
"description": "Displays in place of matrix when no data is found for the current page" "description": "Displays in place of matrix when no data is found for the current page"
}, },
"matrixRecipeImportTip": { "matrixRecipeImportTip": {
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Статистика", "message": "nuTensor &ndash; Статистика",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Опресняване", "message": "Опресняване",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "филтърен израз(и)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "изтрити бисквитки: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "грешка при изтриване на бисквитки: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "кешът в браузъра е изчистен",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "ресурс обновен: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Настройки", "message": "nuTensor &ndash; Настройки",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Поверителност", "message": "nuTensor &ndash; Поверителност",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -476,7 +628,7 @@
"description": "" "description": ""
}, },
"hostsFilesAutoUpdatePrompt": { "hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets", "message": "Автоматично обновяване на ресурси",
"description": "" "description": ""
}, },
"hostsFilesUpdateNow": { "hostsFilesUpdateNow": {
@ -488,7 +640,7 @@
"description": "" "description": ""
}, },
"hostsFilesExternalListsHint": { "hostsFilesExternalListsHint": {
"message": "Import external assets here: \nOne URL per line; invalid URLs will be silently ignored.", "message": "Въведете външни ресурси тук:\nЕдин URL адрес по ред; невалидни URL адреси ще бъдат игнорирани без уведомяване.",
"description": "" "description": ""
}, },
"hostsFilesExternalListsParse": { "hostsFilesExternalListsParse": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Регистър на промените</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Регистър на промените</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Документация</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Документация</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Всичките Ви настройки ще бъдат презаписани с данните бекъпнати на {{time}} и uMatrix ще се рестартира.\n\nИскате ли да презапишете всички настройки използвайки бекъпнатите данни?", "message": "Всичките Ви настройки ще бъдат презаписани с данните бекъпнати на {{time}} и nuTensor ще се рестартира.\n\nИскате ли да презапишете всички настройки използвайки бекъпнатите данни?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Внимание! Така ще бъдат заличени всички ръчни настройки. Наистина ли искате да продължите?", "message": "Внимание! Така ще бъдат заличени всички ръчни настройки. Наистина ли искате да продължите?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "филтърен израз(и)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Максимален брой записи",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "изтрити бисквитки: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "грешка при изтриване на бисквитки: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "кешът в браузъра е изчистен",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix попречи на зареждането на следната страница:", "message": "nuTensor попречи на зареждането на следната страница:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Заради следното правило", "message": "Заради следното правило",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Прилагане на промените", "message": "Прилагане на промените",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -12,7 +12,7 @@
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — লগার", "message": "nuTensor — লগার",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "স্ক্রিপ্ট", "message": "স্ক্রিপ্ট",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "সব অস্থায়ী পরিবর্তন প্রত্যাবর্তন করুন", "message": "সব অস্থায়ী পরিবর্তন প্রত্যাবর্তন করুন",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -279,6 +283,154 @@
"message": "পুন:সতেজ", "message": "পুন:সতেজ",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "পরিশোধকের অভিব্যক্তি",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "কুকি অপসারিত: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "কুকি অপসারণ করতে ব্যর্থ: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "ব্রাউজারের ক্যাশে পরিষ্কার হয়েছে",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "অ্যাসেট হালনাগাদকৃত: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uম্যাট্রিক্স &ndash; সেটিংস", "message": "uম্যাট্রিক্স &ndash; সেটিংস",
"description": "" "description": ""
@ -321,10 +473,10 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "অবরুদ্ধ উপাদান সংকোচনের স্থানধারক", "message": "অবরুদ্ধ উপাদান সংকোচনের স্থানধারক",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>পরিবর্তন লগ</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>পরিবর্তন লগ</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>নথিপত্র</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>নথিপত্র</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -607,33 +759,9 @@
"message": "সতর্কতা! এটি আপনার সব স্বনির্ধারিত সেটিংস সরিয়ে দেবে? আপনি কি অগ্রসর হতে চান?", "message": "সতর্কতা! এটি আপনার সব স্বনির্ধারিত সেটিংস সরিয়ে দেবে? আপনি কি অগ্রসর হতে চান?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "পরিশোধকের অভিব্যক্তি",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "ভুক্তির সর্বাধিক সংখ্যা",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "কুকি অপসারিত: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "কুকি অপসারণ করতে ব্যর্থ: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "ব্রাউজারের ক্যাশে পরিষ্কার হয়েছে",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "অ্যাসেট হালনাগাদকৃত: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uম্যাট্রিক্স নিচের পৃষ্ঠা লোড করাকে প্রতিহত করেছে:", "message": "uম্যাট্রিক্স নিচের পৃষ্ঠা লোড করাকে প্রতিহত করেছে:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "নিম্নলিখিত নিয়মের কারণে", "message": "নিম্নলিখিত নিয়মের কারণে",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "পরিবর্তনগুলি প্রয়োগ করুন", "message": "পরিবর্তনগুলি প্রয়োগ করুন",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -12,7 +12,7 @@
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix - logování", "message": "nuTensor - logování",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -32,7 +32,7 @@
"description": "a tab in dashboard" "description": "a tab in dashboard"
}, },
"ubiquitousRulesPageName": { "ubiquitousRulesPageName": {
"message": "Assets", "message": "Assety",
"description": "a tab in dashboard" "description": "a tab in dashboard"
}, },
"rawSettingsPageName": { "rawSettingsPageName": {
@ -71,8 +71,8 @@
"message": "skript", "message": "skript",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Falšovat <code><noscript></code> tagy", "message": "Falšovat <code><noscript></code> tagy",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Vrátit všechny dočasné změny", "message": "Vrátit všechny dočasné změny",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -272,13 +276,161 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Obnovit", "message": "Obnovit",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "výraz(y) filtru",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie odstraněno: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "smazání cookie se nepodařilo: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "cache prohlížeče vymazána",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset aktualizován: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "µMatrix Nastavení", "message": "µMatrix Nastavení",
"description": "" "description": ""
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Skrýt zástupné objekty zablokovaných prvků", "message": "Skrýt zástupné objekty zablokovaných prvků",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Skrýt blokované prvky", "message": "Skrýt blokované prvky",
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -452,7 +604,7 @@
"description": "default file name to use" "description": "default file name to use"
}, },
"assetsHostsSection": { "assetsHostsSection": {
"message": "Hosts files", "message": "Soubory hostů",
"description": "header to identify the hosts files section" "description": "header to identify the hosts files section"
}, },
"hostsFilesPrompt": { "hostsFilesPrompt": {
@ -476,7 +628,7 @@
"description": "" "description": ""
}, },
"hostsFilesAutoUpdatePrompt": { "hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets", "message": "Automatické aktualizace assetů",
"description": "" "description": ""
}, },
"hostsFilesUpdateNow": { "hostsFilesUpdateNow": {
@ -524,7 +676,7 @@
"description": "" "description": ""
}, },
"assetsInlineRecipesLabel": { "assetsInlineRecipesLabel": {
"message": "My recipes", "message": "Moje recepty",
"description": "" "description": ""
}, },
"rawSettingsWarning": { "rawSettingsWarning": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Přehled změn</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Přehled změn</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentace</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentace</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -607,33 +759,9 @@
"message": "Varování: Tento příkaz odstraní všechna vaše nastavení. Jste si jisti, že chcete pokračovat?", "message": "Varování: Tento příkaz odstraní všechna vaše nastavení. Jste si jisti, že chcete pokračovat?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "výraz(y) filtru",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximální počet záznamů",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie odstraněno: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "smazání cookie se nepodařilo: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "cache prohlížeče vymazána",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset aktualizován: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "µMatrix zabránil následující stránce v načítání:", "message": "µMatrix zabránil následující stránce v načítání:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Kvůli tomuto pravidlu", "message": "Kvůli tomuto pravidlu",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Použít změny", "message": "Použít změny",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Kontrolpanel", "message": "nuTensor — Kontrolpanel",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Tilbagestil alle midlertidige ændringer", "message": "Tilbagestil alle midlertidige ændringer",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistik", "message": "nuTensor &ndash; Statistik",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Du kan inspicerer detaljerne for de seneste \"rå\" HTTP-forespørgsler, der er blevet foretaget af en webside (se nedenfor).</p><p>Dette er mest nyttigt for erfarne brugere, der ønsker at undersøge præcis hvad en webside har lavet. Men logningen af disse HTTP-forespørgsler kræver hukommelse, så hvis du er ligeglad med denne tekniske information, er det øgede forbrug af hukommelse spildt.</p><p>Derfor dette felt, som lader dig justere det maskimale antal nyeste HTTP-forespørgsler, som skal logges til yderligere inspektion.</p><p>Skriv &ldquo;<code>0</code>&rdquo; for at slå detaljeret logning fra (og dermed reducere hukommelsesforbruget for <i>uMatrix</i>).</p>", "message": "<p>Du kan inspicerer detaljerne for de seneste \"rå\" HTTP-forespørgsler, der er blevet foretaget af en webside (se nedenfor).</p><p>Dette er mest nyttigt for erfarne brugere, der ønsker at undersøge præcis hvad en webside har lavet. Men logningen af disse HTTP-forespørgsler kræver hukommelse, så hvis du er ligeglad med denne tekniske information, er det øgede forbrug af hukommelse spildt.</p><p>Derfor dette felt, som lader dig justere det maskimale antal nyeste HTTP-forespørgsler, som skal logges til yderligere inspektion.</p><p>Skriv &ldquo;<code>0</code>&rdquo; for at slå detaljeret logning fra (og dermed reducere hukommelsesforbruget for <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Genindlæs", "message": "Genindlæs",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie slettet: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Mislykkedes med at slette cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache slettet",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "Komponenter opdateret: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Indstillinger", "message": "nuTensor &ndash; Indstillinger",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,10 +473,10 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Sammenfold pladsholder for blokerede elementer", "message": "Sammenfold pladsholder for blokerede elementer",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privatliv", "message": "nuTensor &ndash; Privatliv",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Sortlistede cookies bliver ikke forhindret af <i>uMatrix</i> i at trænge ind i din browser. Derimod bliver de forhindret i at forlade din browser igen, hvilket faktisk er det vigtige. Ved ikke at blokere cookies inden de trænger ind i din browser, gøres det muligt for brugeren at undersøge indholdet og antallet af de cookies diverse websteder placerer i din browser.</p><p>Når disse sortlistede cookies er blevet undersøgt af <i>uMatrix</i>, kan de blive slettet, hvis brugeren ønsker det.</p><p><b>Vigtig bemærkning:</b> Udvidelser kan benytte sig af cookies i deres helt legale webkommunikation. Hvis det værtsnavn, som en cookie kommer fra, ikke er hvidlistet, vil denne cookie blive fjernet fra browseren af <i>uMatrix</i>, hvis denne indstilling er slået til. Du skal derfor sikre dig, at de værtsnavne, som en udvidelse kommunikerer med, er hvidlistede.</p>", "message": "<p>Sortlistede cookies bliver ikke forhindret af <i>nuTensor</i> i at trænge ind i din browser. Derimod bliver de forhindret i at forlade din browser igen, hvilket faktisk er det vigtige. Ved ikke at blokere cookies inden de trænger ind i din browser, gøres det muligt for brugeren at undersøge indholdet og antallet af de cookies diverse websteder placerer i din browser.</p><p>Når disse sortlistede cookies er blevet undersøgt af <i>nuTensor</i>, kan de blive slettet, hvis brugeren ønsker det.</p><p><b>Vigtig bemærkning:</b> Udvidelser kan benytte sig af cookies i deres helt legale webkommunikation. Hvis det værtsnavn, som en cookie kommer fra, ikke er hvidlistet, vil denne cookie blive fjernet fra browseren af <i>nuTensor</i>, hvis denne indstilling er slået til. Du skal derfor sikre dig, at de værtsnavne, som en udvidelse kommunikerer med, er hvidlistede.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Nogle hjemmesider er meget opsatte på at tracke din færden på internettet, faktisk så meget at de er villige til at benytte sig af ikke-så-flinke metoder til at omgå de tiltag du tager for at beskytte dig selv mod tracking.</p><p>Nogle af disse metoder benytter sig af<sup style='font-size:smaller'>[1, 2]</sup> af din <a href='https://en.wikipedia.org/wiki/Web_cache'>browsers cache</a>, hvis indhold ofte bliver gemt meget længe, og ydermere er der nogle brugere der ikke sletter deres browers cache ofte.</p><p>Der er ikke rigtigt nogen negative effekter ved at slette din browers cache ofte (højst sandsynligt vil du ikke opdage det), men derimod er gevinsten stor ift. at stoppe trackers fra at invadere dit privatliv.</p><p>Vælg denne indstilling, hvis du vil have <i>uMatrix</i> til at slette din browsers cache for dig, så ofte du ønsker det.</p><p style='font-size:smaller'>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Nogle hjemmesider er meget opsatte på at tracke din færden på internettet, faktisk så meget at de er villige til at benytte sig af ikke-så-flinke metoder til at omgå de tiltag du tager for at beskytte dig selv mod tracking.</p><p>Nogle af disse metoder benytter sig af<sup style='font-size:smaller'>[1, 2]</sup> af din <a href='https://en.wikipedia.org/wiki/Web_cache'>browsers cache</a>, hvis indhold ofte bliver gemt meget længe, og ydermere er der nogle brugere der ikke sletter deres browers cache ofte.</p><p>Der er ikke rigtigt nogen negative effekter ved at slette din browers cache ofte (højst sandsynligt vil du ikke opdage det), men derimod er gevinsten stor ift. at stoppe trackers fra at invadere dit privatliv.</p><p>Vælg denne indstilling, hvis du vil have <i>nuTensor</i> til at slette din browsers cache for dig, så ofte du ønsker det.</p><p style='font-size:smaller'>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "<p>Fra Wikipedia:</p><blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote><p>Hvis denne indstilling vælges, <i>vil uMatrix</i> forfalske den information som HTTP referreren indeholder, hvis netanmodningen om HTTP referreren kommer fra en tredjepart.", "message": "<p>Fra Wikipedia:</p><blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote><p>Hvis denne indstilling vælges, <i>vil nuTensor</i> forfalske den information som HTTP referreren indeholder, hvis netanmodningen om HTTP referreren kommer fra en tredjepart.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Alle dine indstillinger vil blive overskrevet med data fra backupfilen fra {{time}}, herefter vil uMatrix genstarte.\n\nGendan fra backupfilen?", "message": "Alle dine indstillinger vil blive overskrevet med data fra backupfilen fra {{time}}, herefter vil nuTensor genstarte.\n\nGendan fra backupfilen?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Forsigtig! Dette slette alle brugerdefinerede indstillinger. Er du sikker på, at du vil fortsætte?", "message": "Forsigtig! Dette slette alle brugerdefinerede indstillinger. Er du sikker på, at du vil fortsætte?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Det maksimale antal af linjer",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie slettet: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Mislykkedes med at slette cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache slettet",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "Komponenter opdateret: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix har blokeret den følgende webside:", "message": "nuTensor har blokeret den følgende webside:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "På grund af den følgende regel", "message": "På grund af den følgende regel",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,18 +1,18 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
"message": "Kontrolliere alle Anfragen deines Browsers durch einfaches Point&Click. Blockiere damit Skripte, IFrames, Werbung, Facebook usw.", "message": "Kontrolliere alle Anfragen deines Browsers durch einfaches Point&Click. Ein Fork von Raymond Hills uMatrix.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "Skript", "message": "Skript",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "<code><noscript></code> Tags verschleiern", "message": "<code><noscript></code> Tags verschleiern",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Mache alle temporären Änderungen rückgängig", "message": "Mache alle temporären Änderungen rückgängig",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Die Details der letzten HTTP Anfragen einer Webseite kannst du dir unten anschauen.</p><p>Das ist besonders nützlich für neugierige bzw. erfahrene Benutzer, die genau wissen wollen, was eine Webseite gemacht hat. Allerdings benötigt das Logging dieser HTTP Anfragen Arbeitsspeicher, und wenn du an diesen detaillierten Informationen nicht interessiert bist, belegst du diesen Speicher unnötigerweise.</p><p>Daher lässt sich mit diesem Feld die maximale Zahl der letzten HTTP Anfragen, die aufgezeichnet werden sollen, festlegen.<p><p>Gib &ldquo;<code>0</code>&rdquo; ein, um dieses detaillierte Logging ganz abzuschalten (und entsprechend die Speicherbelegung von <i>uMatrix</i> zu reduzieren).</p>", "message": "<p>Die Details der letzten HTTP Anfragen einer Webseite kannst du dir unten anschauen.</p><p>Das ist besonders nützlich für neugierige bzw. erfahrene Benutzer, die genau wissen wollen, was eine Webseite gemacht hat. Allerdings benötigt das Logging dieser HTTP Anfragen Arbeitsspeicher, und wenn du an diesen detaillierten Informationen nicht interessiert bist, belegst du diesen Speicher unnötigerweise.</p><p>Daher lässt sich mit diesem Feld die maximale Zahl der letzten HTTP Anfragen, die aufgezeichnet werden sollen, festlegen.<p><p>Gib &ldquo;<code>0</code>&rdquo; ein, um dieses detaillierte Logging ganz abzuschalten (und entsprechend die Speicherbelegung von <i>nuTensor</i> zu reduzieren).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Neu laden", "message": "Neu laden",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "Filter-Ausdrücke",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "Cookie gelöscht: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Löschen des Cookies fehlgeschlagen: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "Browser-Cache geleert",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "Hosts-Dateien aktualisiert: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Einstellungen", "message": "nuTensor &ndash; Einstellungen",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Verstecke die Platzhalter für blockierte Elemente", "message": "Verstecke die Platzhalter für blockierte Elemente",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Verstecke die Platzhalter für Elemente auf der Blacklist", "message": "Verstecke die Platzhalter für Elemente auf der Blacklist",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privatsphäre", "message": "nuTensor &ndash; Privatsphäre",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Cookies auf der Blacklist werden von <i>uMatrix</i> nicht daran gehindert, vom Browser empfangen zu werden. Vielmehr werden sie daran gehindert, den Browser wieder zu verlassen - das ist es, worauf es wirklich ankommt. Dass Cookies nicht blockiert werden, bevor sie vom Browser empfangen werden, gibt dir die Gelegenheit, dich zu informieren, welche Seiten Cookies zu verwenden versuchen, und dir den Inhalt der Cookies anzuschauen, wenn du möchtest.</p><p>Sobald diese sich auf der Blacklist befindlichen Cookies von <i>uMatrix</i> erfasst sind, können sie aus deinem Browser gelöscht werden, falls du möchtest.</p><p><b>Wichtiger Hinweis:</b> Erweiterungen können während ihrer Benutzung Webanfragen tätigen. Diese Anfragen können dazu führen, dass Cookies im Browser erzeugt werden. Falls der Hostname, von dem das Cookie stammt, nicht auf der Whitelist ist, wird das Cookie von <i>uMatrix</i> aus dem Browser entfernt, sofern dieser Schalter aktiviert ist. Stelle daher sicher, dass Hostnamen, mit denen eine Erweiterung kommuniziert, auf der Whitelist stehen.</p>", "message": "<p>Cookies auf der Blacklist werden von <i>nuTensor</i> nicht daran gehindert, vom Browser empfangen zu werden. Vielmehr werden sie daran gehindert, den Browser wieder zu verlassen - das ist es, worauf es wirklich ankommt. Dass Cookies nicht blockiert werden, bevor sie vom Browser empfangen werden, gibt dir die Gelegenheit, dich zu informieren, welche Seiten Cookies zu verwenden versuchen, und dir den Inhalt der Cookies anzuschauen, wenn du möchtest.</p><p>Sobald diese sich auf der Blacklist befindlichen Cookies von <i>nuTensor</i> erfasst sind, können sie aus deinem Browser gelöscht werden, falls du möchtest.</p><p><b>Wichtiger Hinweis:</b> Erweiterungen können während ihrer Benutzung Webanfragen tätigen. Diese Anfragen können dazu führen, dass Cookies im Browser erzeugt werden. Falls der Hostname, von dem das Cookie stammt, nicht auf der Whitelist ist, wird das Cookie von <i>nuTensor</i> aus dem Browser entfernt, sofern dieser Schalter aktiviert ist. Stelle daher sicher, dass Hostnamen, mit denen eine Erweiterung kommuniziert, auf der Whitelist stehen.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Einige Webseiten sind wirklich darauf aus, dich zu verfolgen bzw. zu tracken, und scheuen nicht davor zurück, unfeine Tricks zu verwenden, um Maßnahmen, die dieses Tracking verhindern sollen, zu unterlaufen.</p><p>Einige dieser Tricks benutzen dazu den <sup style='font-size:smaller'>[1, 2]</sup> on the <a href='https://de.wikipedia.org/wiki/Browser-Cache'>Browser Cache</a>, dessen Inhalt häufig für lange Zeit auslesbar ist, da viele Benutzer ihn nicht regelmäßig löschen.</p><p>Das regelmäßige Löschen des Browser Caches bringt kaum Nachteile mit sich (wahrscheinlich wirst du gar keine bemerken), während die Vorteile darin bestehen, dass diese fiesen Tracker davon abgehalten werden, in deine Privatsphäre einzudringen.</p><p>Aktiviere diesen Schalter, damit <i>uMatrix</i> diese Aufgabe in dem von dir gewünschten Intervall übernimmt.</p><p >[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Einige Webseiten sind wirklich darauf aus, dich zu verfolgen bzw. zu tracken, und scheuen nicht davor zurück, unfeine Tricks zu verwenden, um Maßnahmen, die dieses Tracking verhindern sollen, zu unterlaufen.</p><p>Einige dieser Tricks benutzen dazu den <sup style='font-size:smaller'>[1, 2]</sup> on the <a href='https://de.wikipedia.org/wiki/Browser-Cache'>Browser Cache</a>, dessen Inhalt häufig für lange Zeit auslesbar ist, da viele Benutzer ihn nicht regelmäßig löschen.</p><p>Das regelmäßige Löschen des Browser Caches bringt kaum Nachteile mit sich (wahrscheinlich wirst du gar keine bemerken), während die Vorteile darin bestehen, dass diese fiesen Tracker davon abgehalten werden, in deine Privatsphäre einzudringen.</p><p>Aktiviere diesen Schalter, damit <i>nuTensor</i> diese Aufgabe in dem von dir gewünschten Intervall übernimmt.</p><p >[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "<p>Aus Wikipedia:</p><blockquote>Ein Referrer ist die Internetadresse der Webseite, von der der Benutzer durch Anklicken eines Links zu der aktuellen Seite gekommen ist. ... <b>(Die Übertragung eines Referrers zu verhindern) ...ist unter anderem aus Datenschutzerwägungen interessant, da andernfalls die Möglichkeit besteht, die Referrer mit den Nutzer-IP-Adressen in Verbindung zu bringen.</b></blockquote><p>Wenn dieser Schalter aktiviert ist, wird <i>uMatrix</i> den HTTP Referrer verschleiern bzw. manipulieren, wenn der Domänenname des HTTP Referrer nicht mit dem Domänenname der anfragenden URL überein stimmt (das heißt, der Referrer stammt von einer Drittseite).", "message": "<p>Aus Wikipedia:</p><blockquote>Ein Referrer ist die Internetadresse der Webseite, von der der Benutzer durch Anklicken eines Links zu der aktuellen Seite gekommen ist. ... <b>(Die Übertragung eines Referrers zu verhindern) ...ist unter anderem aus Datenschutzerwägungen interessant, da andernfalls die Möglichkeit besteht, die Referrer mit den Nutzer-IP-Adressen in Verbindung zu bringen.</b></blockquote><p>Wenn dieser Schalter aktiviert ist, wird <i>nuTensor</i> den HTTP Referrer verschleiern bzw. manipulieren, wenn der Domänenname des HTTP Referrer nicht mit dem Domänenname der anfragenden URL überein stimmt (das heißt, der Referrer stammt von einer Drittseite).",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Änderungsprotokoll</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Änderungsprotokoll</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Berechtigungen</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Berechtigungen</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Alle deine Einstellungen werden überschrieben mit Sicherungs-Daten vom {{time}}, und uMatrix wird neu gestartet.\n\nSollen alle existierenden Einstellungen mit Sicherungs-Daten überschrieben werden?", "message": "Alle deine Einstellungen werden überschrieben mit Sicherungs-Daten vom {{time}}, und nuTensor wird neu gestartet.\n\nSollen alle existierenden Einstellungen mit Sicherungs-Daten überschrieben werden?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Vorsicht! Dies wird alle deine individuellen Einstellungen entfernen. Bist du sicher, dass du fortfahren willst?", "message": "Vorsicht! Dies wird alle deine individuellen Einstellungen entfernen. Bist du sicher, dass du fortfahren willst?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "Filter-Ausdrücke",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximale Zahl an Einträgen",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "Cookie gelöscht: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Löschen des Cookies fehlgeschlagen: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "Browser-Cache geleert",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "Hosts-Dateien aktualisiert: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix hat das Laden der folgenden Seite verhindert:", "message": "nuTensor hat das Laden der folgenden Seite verhindert:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Aufgrund der folgenden Regel", "message": "Aufgrund der folgenden Regel",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Änderungen anwenden", "message": "Änderungen anwenden",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "In die Zwischenablage kopieren",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Πίνακας", "message": "nuTensor — Πίνακας",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "Δέσμη ενεργειών", "message": "Δέσμη ενεργειών",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Επαναφορά όλων των προσωρινών αλλαγών", "message": "Επαναφορά όλων των προσωρινών αλλαγών",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Στατιστικά", "message": "nuTensor &ndash; Στατιστικά",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Ανανέωση", "message": "Ανανέωση",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,18 +1,18 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
"message": "Point & click to forbid/allow any class of requests made by your browser. Use it to block scripts, iframes, ads, facebook, etc.", "message": "Point & click to forbid/allow any class of requests made by your browser. A fork of Raymond Hill's uMatrix.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -73,8 +73,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -139,6 +139,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname" : {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry" : { "matrixRevertAllEntry" : {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -165,7 +169,7 @@
}, },
"statsPageTitle" : { "statsPageTitle" : {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats" : { "statsPageGenericStats" : {
@ -277,17 +281,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp" : { "statsPageLogSizeHelp" : {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh" : { "statsPageRefresh" : {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll":{
"message":"All",
"description":"Appears in the logger's tab selector"
},
"logBehindTheScene":{
"message":"Tabless",
"description":"Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab":{
"message":"Current tab",
"description":"Appears in the logger's tab selector"
},
"loggerReloadTip":{
"message":"Reload the tab content",
"description":"Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder" : {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted" : {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError" : {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared" : {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated" : {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip":{
"message":"Toggle logger filtering",
"description":"Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt":{
"message":"filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip":{
"message":"Toggle the popup panel",
"description":"Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip":{
"message":"uBlock Origin wiki: The logger",
"description":"Tooltip for the top-right info label in the logger page"
},
"loggerClearTip":{
"message":"Clear logger",
"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)",
"description":"Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip":{
"message":"Unpause logger",
"description":"Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip":{
"message":"Logger filtering options",
"description":"Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot":{
"message":"Not",
"description":"A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked":{
"message":"blocked",
"description":"A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo":{
"message":"info",
"description":"A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p":{
"message":"1st-party",
"description":"A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p":{
"message":"3rd-party",
"description":"A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader":{
"message":"Details",
"description":"Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext":{
"message":"Context",
"description":"Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness":{
"message":"Partyness",
"description":"Label to identify a field providing partyness information"
},
"loggerEntryDetailsType":{
"message":"Type",
"description":"Label to identify the type of an entry"
},
"loggerEntryDetailsURL":{
"message":"URL",
"description":"Label to identify the URL of an entry"
},
"loggerEntryRuleHeader":{
"message":"Rule",
"description":"Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt":{
"message":"Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description":"Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge":{
"message":"Preserve entries from the last {{input}} minutes",
"description":"A logger setting"
},
"loggerSettingPerTabMaxLoads":{
"message":"Preserve at most {{input}} page loads per tab",
"description":"A logger setting"
},
"loggerSettingPerTabMaxEntries":{
"message":"Preserve at most {{input}} entries per tab",
"description":"A logger setting"
},
"loggerSettingPerEntryLineCount":{
"message":"Use {{input}} lines per entry in vertically expanded mode",
"description":"A logger setting"
},
"loggerExportFormatList":{
"message":"List",
"description":"Label for radio-button to pick export format"
},
"loggerExportFormatTable":{
"message":"Table",
"description":"Label for radio-button to pick export format"
},
"loggerExportEncodePlain":{
"message":"Plain",
"description":"Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown":{
"message":"Markdown",
"description":"Label for radio-button to pick export text format"
},
"settingsPageTitle" : { "settingsPageTitle" : {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader" : { "settingsMatrixDisplayHeader" : {
@ -348,7 +498,7 @@
}, },
"privacyPageTitle" : { "privacyPageTitle" : {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt" : { "privacyDeleteBlockedCookiesPrompt" : {
@ -356,7 +506,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp" : { "privacyDeleteBlockedCookiesHelp" : {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1" : { "privacyDeleteNonBlockedSessionCookiesPrompt1" : {
@ -388,7 +538,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp" : { "privacyClearCacheHelp" : {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt" : { "privacyProcessRefererPrompt" : {
@ -396,7 +546,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp" : { "privacyProcessRefererHelp" : {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt" : { "privacyNoMixedContentPrompt" : {
@ -546,7 +696,7 @@
}, },
"aboutChangelog" : { "aboutChangelog" : {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed" : { "aboutStorageUsed" : {
@ -554,11 +704,11 @@
"description": "" "description": ""
}, },
"aboutDoc" : { "aboutDoc" : {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions" : { "aboutPermissions" : {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode" : { "aboutCode" : {
@ -602,7 +752,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm" : { "aboutRestoreConfirm" : {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError" : { "aboutRestoreError" : {
@ -622,34 +772,9 @@
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder" : {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip" : {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted" : {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError" : {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared" : {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated" : {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -752,5 +877,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard":{
"message":"Copy to clipboard",
"description":"Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Panelo", "message": "nuTensor — Panelo",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "skripto", "message": "skripto",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Aktualigi", "message": "Aktualigi",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "kuketo forigita: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Agordoj", "message": "nuTensor &ndash; Agordoj",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privateco", "message": "nuTensor &ndash; Privateco",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Ŝanĝoprotokolo</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Ŝanĝoprotokolo</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "kuketo forigita: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Panel de control", "message": "nuTensor — Panel de control",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Registro de peticiones", "message": "nuTensor — Registro de peticiones",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Falsificar etiquetas <code><noscript></code>", "message": "Falsificar etiquetas <code><noscript></code>",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Revelar nombres canónicos",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revertir todos los cambios temporales", "message": "Revertir todos los cambios temporales",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Estadísticas", "message": "nuTensor &ndash; Estadísticas",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Permite inspeccionar los detalles de las peticiones HTTP directas más recientes hechas por una página web (ver debajo).</p><p>Útil sobre todo para usuarios avanzados que deseen investigar qué, exactamente, ha estado haciendo una página. Sin embargo, registrar tales peticiones HTTP requiere memoria, que puede terminar siendo malgastada si dicha información técnica no es de su interés.</p><p>Por ello este campo le permite ajustar el número máximo de peticiones HTTP recientes que se van a registrar para una inspección ulterior.</p><p>Introduzca &ldquo;<code>0</code>&rdquo; para desactivar el registro detallado (con el consecuente ahorro de memoria de <i>uMatrix</i>).</p>", "message": "<p>Permite inspeccionar los detalles de las peticiones HTTP directas más recientes hechas por una página web (ver debajo).</p><p>Útil sobre todo para usuarios avanzados que deseen investigar qué, exactamente, ha estado haciendo una página. Sin embargo, registrar tales peticiones HTTP requiere memoria, que puede terminar siendo malgastada si dicha información técnica no es de su interés.</p><p>Por ello este campo le permite ajustar el número máximo de peticiones HTTP recientes que se van a registrar para una inspección ulterior.</p><p>Introduzca &ldquo;<code>0</code>&rdquo; para desactivar el registro detallado (con el consecuente ahorro de memoria de <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Actualizar", "message": "Actualizar",
"description": "" "description": ""
}, },
"logAll": {
"message": "Todo",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Sin pestaña",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Pestaña actual",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Recargar contenido de la pestaña",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "expresiones de filtros",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie eliminada: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "error al eliminar cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "caché del navegador vaciado",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "recurso actualizado: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Alternar el filtrado del registro de peticiones",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filtrar contenido",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Alternar el panel emergente",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: Registro de peticiones",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Borrar el registro de peticiones",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "Pausar registro de peticiones (descarta todos los datos entrantes)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Continuar con el registro de peticiones",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Opciones de filtrado del registro de peticiones",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "No",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "bloqueado",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "petición del dominio",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "petición de tercero",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Detalles",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Contexto",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Tipo de petición",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Tipo",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Regla",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Las entradas del registro de peticiones que no cumplan las tres condiciones a continuación se descartarán automáticamente:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Conservar entradas de los últimos {{input}} minutos",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Conservar como máximo {{input}} cargas de página por pestaña",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Conservar como máximo {{input}} entradas por pestaña",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Usar {{input}} líneas por entrada en modo expandido verticalmente",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "Lista",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Tabla",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Sin formato",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Configuración", "message": "nuTensor &ndash; Configuración",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Ocultar marcadores de posición de los elementos bloqueados", "message": "Ocultar marcadores de posición de los elementos bloqueados",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Ocultar marcadores de posición de los elementos en la lista negra", "message": "Ocultar marcadores de posición de los elementos en la lista negra",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacidad", "message": "nuTensor &ndash; Privacidad",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i> no previene la entrada al navegador de cookies en la lista negra, pero sí su salida, que es lo que realmente importa. El hecho de no bloquear las cookies antes de su entrada, da la oportunidad de saber si un sitio intenta usar cookies, e inspeccionar su contenido si se desea.</p><p>Una vez que tales cookies han sido detectadas por <i>uMatrix</i>, las mismas pueden ser eliminadas del navegador si lo decide.</p><p><b>Nota importante:</b> Las extensiones pueden hacer peticiones web como parte de su normal operación. Estas peticiones pueden resultar en la creación de cookies dentro del navegador. Si el nombre de dominio del cual se generó la cookie no está en la lista de permitidos, la cookie será eliminada por <i>uMatrix</i> mientras esta opción esté activa. Así que asegúrese de permitir los nombres de dominio con los cuales se comunica una extensión determinada.</p>", "message": "<p><i>nuTensor</i> no previene la entrada al navegador de cookies en la lista negra, pero sí su salida, que es lo que realmente importa. El hecho de no bloquear las cookies antes de su entrada, da la oportunidad de saber si un sitio intenta usar cookies, e inspeccionar su contenido si se desea.</p><p>Una vez que tales cookies han sido detectadas por <i>nuTensor</i>, las mismas pueden ser eliminadas del navegador si lo decide.</p><p><b>Nota importante:</b> Las extensiones pueden hacer peticiones web como parte de su normal operación. Estas peticiones pueden resultar en la creación de cookies dentro del navegador. Si el nombre de dominio del cual se generó la cookie no está en la lista de permitidos, la cookie será eliminada por <i>nuTensor</i> mientras esta opción esté activa. Así que asegúrese de permitir los nombres de dominio con los cuales se comunica una extensión determinada.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Algunos sitios web están tan enfocados en rastrearle, que usarán ciertos trucos bastantes sucios para burlar cualquier medida que se tome para evitar ser rastreado.</p><p>Unos cuantos de estos trucos se basan<sup style='font-size:smaller'>[1, 2]</sup> en la <a href='https://es.wikipedia.org/wiki/Cach%C3%A9_web'>caché del navegador</a>, cuyo contenido como norma es perdurable, ya que raramente los usuarios se toman el trabajo de limpiarlo de forma regular.</p><p>Limpiar la caché de manera regular es bastante fácil (probablemente ni siquiera lo perciba cuando ocurra), con el beneficio de impedir a estos molestos rastreadores invadir su privacidad.</p><p>Active esta opción para que <i>uMatrix</i> lo haga por usted, en el intervalo deseado.</p><p style='font-size:smaller'>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Algunos sitios web están tan enfocados en rastrearle, que usarán ciertos trucos bastantes sucios para burlar cualquier medida que se tome para evitar ser rastreado.</p><p>Unos cuantos de estos trucos se basan<sup style='font-size:smaller'>[1, 2]</sup> en la <a href='https://es.wikipedia.org/wiki/Cach%C3%A9_web'>caché del navegador</a>, cuyo contenido como norma es perdurable, ya que raramente los usuarios se toman el trabajo de limpiarlo de forma regular.</p><p>Limpiar la caché de manera regular es bastante fácil (probablemente ni siquiera lo perciba cuando ocurra), con el beneficio de impedir a estos molestos rastreadores invadir tu privacidad.</p><p>Active esta opción para que <i>nuTensor</i> lo haga por usted, en el intervalo deseado.</p><p style='font-size:smaller'>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Según Wikipedia:<blockquote>Un HTTP referer identifica la dirección de la página web (es decir, la URI o IRI) que creó el vínculo con el recurso que está siendo solicitado. ... <b>Esto desata preocupaciones en cuanto a la privacidad, y como resultado, se han desarrollado un cierto número de sistemas para prevenir que los servidores web envíen la URL real.</b></blockquote>Si se selecciona esta opción, <i>uMatrix</i> falsificará la información del HTTP referer si el nombre de dominio del HTTP referer no concuerda con el nombre de dominio de la URL pedida (o sea, el creador del vínculo es un tercero respecto a la página web).", "message": "Según Wikipedia:<blockquote>Un HTTP referer identifica la dirección de la página web (es decir, la URI o IRI) que creó el vínculo con el recurso que está siendo solicitado. ... <b>Esto desata preocupaciones en cuanto a la privacidad, y como resultado, se han desarrollado un cierto número de sistemas para prevenir que los servidores web envíen la URL real.</b></blockquote>Si se selecciona esta opción, <i>nuTensor</i> falsificará la información del HTTP referer si el nombre de dominio del HTTP referer no concuerda con el nombre de dominio de la URL pedida (o sea, el creador del vínculo es un tercero respecto a la página web).",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -528,11 +680,11 @@
"description": "" "description": ""
}, },
"rawSettingsWarning": { "rawSettingsWarning": {
"message": "¡Atención! Cambie estas configuraciones bajo su propio riesgo.", "message": "¡Atención! Cambie estas configuraciones bajo tu propio riesgo.",
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Registro de cambios</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Registro de cambios</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentación</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentación</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permisos</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permisos</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -572,7 +724,7 @@
"description": "" "description": ""
}, },
"aboutUserDataHeader": { "aboutUserDataHeader": {
"message": "Sus datos", "message": "Tus datos",
"description": "" "description": ""
}, },
"aboutBackupButton": { "aboutBackupButton": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Toda la configuración se sobrescribirá utilizando datos respaldados en {{time}} y uMatrix se reiniciará.\n\n¿Sobrescribir toda la configuración existente utilizando los datos de respaldo?", "message": "Toda la configuración se sobrescribirá utilizando datos respaldados en {{time}} y nuTensor se reiniciará.\n\n¿Sobrescribir toda la configuración existente utilizando los datos de respaldo?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -604,36 +756,12 @@
"description": "English: Reset to default settings" "description": "English: Reset to default settings"
}, },
"aboutResetConfirm": { "aboutResetConfirm": {
"message": "¡Atención! Esto borrará todas sus configuraciones personalizadas. ¿Seguro desea continuar?", "message": "¡Atención! Esto borrará todas tus configuraciones personalizadas. ¿Seguro desea continuar?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "expresiones de filtros",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Número máximo de registros",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie eliminada: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "fallo intentando eliminar cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "caché del navegador vaciado",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "recurso actualizado: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix impidió la carga de la página:", "message": "nuTensor impidió la carga de la página:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Como resultado de la siguiente regla:", "message": "Como resultado de la siguiente regla:",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Aplicar cambios", "message": "Aplicar cambios",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copiar al portapapeles",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Töölaud", "message": "nuTensor — Töölaud",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logija", "message": "nuTensor — Logija",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "skript", "message": "skript",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Narrita <code><noscript></code> märksõnu", "message": "Narrita <code><noscript></code> märksõnu",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Taasta kõik ajutised muudatused", "message": "Taasta kõik ajutised muudatused",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix&#x27;i &ndash; statistika", "message": "nuTensor&#x27;i &ndash; statistika",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Värskenda", "message": "Värskenda",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix&#x27;i &ndash; seaded", "message": "nuTensor&#x27;i &ndash; seaded",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix&#x27;i &ndash; privaatsus", "message": "nuTensor&#x27;i &ndash; privaatsus",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Muudatuste logi</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Muudatuste logi</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentatsioon</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentatsioon</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Rakenda muudatused", "message": "Rakenda muudatused",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — داشبورد", "message": "nuTensor — داشبورد",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "اسکریپت", "message": "اسکریپت",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "بازگرداندن همه‌ی تغییرات موقتی", "message": "بازگرداندن همه‌ی تغییرات موقتی",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; آمارها", "message": "nuTensor &ndash; آمارها",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "تازه‌سازی", "message": "تازه‌سازی",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "کوکی پاک‌شده: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "کش مروگر پاک شد",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "هشدار! این عمل تمام تنظیمات سفارشی شما را از بین می‌برد. آیا از انجام آن مطمئن هستید؟", "message": "هشدار! این عمل تمام تنظیمات سفارشی شما را از بین می‌برد. آیا از انجام آن مطمئن هستید؟",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "بیشترین تعداد ورودی‌ها",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "کوکی پاک‌شده: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "کش مروگر پاک شد",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "به خاطر قانون زیر", "message": "به خاطر قانون زیر",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Hallintapaneeli", "message": "nuTensor — Hallintapaneeli",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -36,7 +36,7 @@
"description": "a tab in dashboard" "description": "a tab in dashboard"
}, },
"rawSettingsPageName": { "rawSettingsPageName": {
"message": "More", "message": "Lisää",
"description": "a tab in dashboard" "description": "a tab in dashboard"
}, },
"aboutPageName": { "aboutPageName": {
@ -71,8 +71,8 @@
"message": "komentosarja", "message": "komentosarja",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Kumoa kaikki väliaikaiset muutokset", "message": "Kumoa kaikki väliaikaiset muutokset",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -156,11 +160,11 @@
"description": "Used as a tooltip for the recipe import button" "description": "Used as a tooltip for the recipe import button"
}, },
"matrixRecipeSaveTip": { "matrixRecipeSaveTip": {
"message": "Save rules", "message": "Tallenna säännöt",
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Tilastot", "message": "nuTensor &ndash; Tilastot",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Päivitä", "message": "Päivitä",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -312,7 +464,7 @@
"description": "Scope will be global" "description": "Scope will be global"
}, },
"settingsDefaultScopeLevel1": { "settingsDefaultScopeLevel1": {
"message": "Domain", "message": "Verkkotunnus",
"description": "Scope will be base domain" "description": "Scope will be base domain"
}, },
"settingsDefaultScopeLevel2": { "settingsDefaultScopeLevel2": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -408,11 +560,11 @@
"description": "" "description": ""
}, },
"userRulesPermanentHeader": { "userRulesPermanentHeader": {
"message": "Permanent rules", "message": "Pysyvät säännöt",
"description": "" "description": ""
}, },
"userRulesTemporaryHeader": { "userRulesTemporaryHeader": {
"message": "Temporary rules", "message": "Väliaikaiset säännöt",
"description": "" "description": ""
}, },
"userRulesRevert": { "userRulesRevert": {
@ -516,7 +668,7 @@
"description": "" "description": ""
}, },
"assetsImportLabel": { "assetsImportLabel": {
"message": "Import...", "message": "Tuo...",
"description": "" "description": ""
}, },
"assetsInlineHostsLabel": { "assetsInlineHostsLabel": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Muutosloki</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Käyttöoikeudet</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -596,7 +748,7 @@
"description": "" "description": ""
}, },
"aboutOr": { "aboutOr": {
"message": "... or ...", "message": "... tai ...",
"description": "English: ... or ..." "description": "English: ... or ..."
}, },
"aboutResetButton": { "aboutResetButton": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -648,11 +776,11 @@
"description": "English: Go back" "description": "English: Go back"
}, },
"mainBlockedClose": { "mainBlockedClose": {
"message": "Close", "message": "Sulje",
"description": "English: Close" "description": "English: Close"
}, },
"commandRevertAll": { "commandRevertAll": {
"message": "Revert all temporary changes", "message": "Kumoa kaikki väliaikaiset muutokset",
"description": "" "description": ""
}, },
"commandWhitelistPageDomain": { "commandWhitelistPageDomain": {
@ -668,27 +796,27 @@
"description": "" "description": ""
}, },
"elapsedOneMinuteAgo": { "elapsedOneMinuteAgo": {
"message": "a minute ago", "message": "minuutti sitten",
"description": "English: a minute ago" "description": "English: a minute ago"
}, },
"elapsedManyMinutesAgo": { "elapsedManyMinutesAgo": {
"message": "{{value}} minutes ago", "message": "{{value}} minuuttia sitten",
"description": "English: {{value}} minutes ago" "description": "English: {{value}} minutes ago"
}, },
"elapsedOneHourAgo": { "elapsedOneHourAgo": {
"message": "an hour ago", "message": "tunti sitten",
"description": "English: an hour ago" "description": "English: an hour ago"
}, },
"elapsedManyHoursAgo": { "elapsedManyHoursAgo": {
"message": "{{value}} hours ago", "message": "{{value}} tuntia sitten",
"description": "English: {{value}} hours ago" "description": "English: {{value}} hours ago"
}, },
"elapsedOneDayAgo": { "elapsedOneDayAgo": {
"message": "a day ago", "message": "päivä sitten",
"description": "English: a day ago" "description": "English: a day ago"
}, },
"elapsedManyDaysAgo": { "elapsedManyDaysAgo": {
"message": "{{value}} days ago", "message": "{{value}} päivää sitten",
"description": "English: {{value}} days ago" "description": "English: {{value}} days ago"
}, },
"showDashboardButton": { "showDashboardButton": {
@ -728,7 +856,11 @@
"description": "" "description": ""
}, },
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Vahvista muutokset",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Ibalik ang lahat ng mga pansamantalang pagbabago", "message": "Ibalik ang lahat ng mga pansamantalang pagbabago",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Istatistika", "message": "nuTensor &ndash; Istatistika",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p> Maaari mong siyasatin ang mga detalye ng pinakahuling mga kahilingan sa HTTP na ginawa ng isang web page (tingnan sa ibaba). </p> <p> Ito ay kapaki-pakinabang sa mga advanced na user na nais mag-imbestiga nang eksakto kung ano ang ginagawa ng isang web page. Ngunit ang pag-log ng mga kahilingan sa HTTP ay nangangailangan ng memorya, at kung hindi mo pinapahalagahan ang tungkol sa teknikal na impormasyon, pagkatapos ay ang memory ay nasayang. </p> <p> Samakatuwid ang patlang na ito na nagpapahintulot sa iyo na ayusin ang maximum na bilang ng mga pinakahuling mga kahilingan sa HTTP ay dapat ma-log para sa karagdagang inspeksyon. </p> <p> Ipasok ang &ldquo; <code> 0 </code> &rdquo; upang patayin ang detalyadong pag-log (at dahil dito ay bawasan ang memory footprint ng <i> uMatrix </i>). </p>", "message": "<p> Maaari mong siyasatin ang mga detalye ng pinakahuling mga kahilingan sa HTTP na ginawa ng isang web page (tingnan sa ibaba). </p> <p> Ito ay kapaki-pakinabang sa mga advanced na user na nais mag-imbestiga nang eksakto kung ano ang ginagawa ng isang web page. Ngunit ang pag-log ng mga kahilingan sa HTTP ay nangangailangan ng memorya, at kung hindi mo pinapahalagahan ang tungkol sa teknikal na impormasyon, pagkatapos ay ang memory ay nasayang. </p> <p> Samakatuwid ang patlang na ito na nagpapahintulot sa iyo na ayusin ang maximum na bilang ng mga pinakahuling mga kahilingan sa HTTP ay dapat ma-log para sa karagdagang inspeksyon. </p> <p> Ipasok ang &ldquo; <code> 0 </code> &rdquo; upang patayin ang detalyadong pag-log (at dahil dito ay bawasan ang memory footprint ng <i> nuTensor </i>). </p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "(mga) expression ng filter",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "tinanggal ang cookie: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "bigo na tanggalin ang cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "naka-clear ang cache ng browser",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "na-update ang asset: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "I-collapse ang mga placeholder ng mga naka-block na elemento", "message": "I-collapse ang mga placeholder ng mga naka-block na elemento",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "I-collapse ang mga placeholder ng mga naka-blacklist na elemento", "message": "I-collapse ang mga placeholder ng mga naka-blacklist na elemento",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p> Ang mga blacklist na cookies ay hindi napigilan ng <i>uMatrix</i> mula sa pagpasok ng iyong browser. Gayunpaman, pinigilan sila sa pag-alis ng iyong browser, na kung saan ay talagang mahalaga. Ang hindi pagharang ng mga cookies bago sila ipasok ang iyong browser ay nagbibigay sa iyo ng pagkakataong maabisuhan na sinubukan ng isang site na gumamit ng mga cookies, at higit pa upang siyasatin ang mga nilalaman nito kung nais mo. </p><p> Kapag ang mga naka-blacklist na cookies ay na-accounted sa pamamagitan ng <i>uMatrix</i>, maaari silang alisin mula sa iyong browser kung nais mo. </p><p><b>Mahalagang paalala: </b> Maaaring gawing mga extension ang mga kahilingan sa web sa panahon ng kanilang normal na operasyon. Ang mga kahilingan na ito ay maaaring magresulta sa mga cookies na nilikha sa browser. Kung ang hostname mula sa kung saan ang isang cookie na nagmula ay hindi whitelisted, ang cookie ay aalisin mula sa browser sa pamamagitan ng <i> uMatrix </i> kung naka-check ang opsyong ito. Kaya siguraduhin na ang (mga) host na kung saan ang isang extension na nakikipag-ugnay ay whitelisted. </p>", "message": "<p> Ang mga blacklist na cookies ay hindi napigilan ng <i>nuTensor</i> mula sa pagpasok ng iyong browser. Gayunpaman, pinigilan sila sa pag-alis ng iyong browser, na kung saan ay talagang mahalaga. Ang hindi pagharang ng mga cookies bago sila ipasok ang iyong browser ay nagbibigay sa iyo ng pagkakataong maabisuhan na sinubukan ng isang site na gumamit ng mga cookies, at higit pa upang siyasatin ang mga nilalaman nito kung nais mo. </p><p> Kapag ang mga naka-blacklist na cookies ay na-accounted sa pamamagitan ng <i>nuTensor</i>, maaari silang alisin mula sa iyong browser kung nais mo. </p><p><b>Mahalagang paalala: </b> Maaaring gawing mga extension ang mga kahilingan sa web sa panahon ng kanilang normal na operasyon. Ang mga kahilingan na ito ay maaaring magresulta sa mga cookies na nilikha sa browser. Kung ang hostname mula sa kung saan ang isang cookie na nagmula ay hindi whitelisted, ang cookie ay aalisin mula sa browser sa pamamagitan ng <i> nuTensor </i> kung naka-check ang opsyong ito. Kaya siguraduhin na ang (mga) host na kung saan ang isang extension na nakikipag-ugnay ay whitelisted. </p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Ang ilang mga web site ay tunay na baluktot sa pagsubaybay sa iyo, kaya magkano na sila ay gumamit ng hindi-magandang-trick upang gumana sa paligid ng anumang mga panukala mong gawin upang hindi masubaybayan.</p><p>Ang ilan sa mga trick na ito ay umaasa<sup>[1, 2]</sup> sa <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, kung aling nilalaman ay madalas na matagal na dahil hindi gaanong magagawa ng mga gumagamit ang oras upang regular na i-clear ang cache ng kanilang browser.</p><p>May kaunting abala na regular na i-clear ang cache ng browser (posibilidad na hindi mo mapansin kapag nangyari ito), at ang benepisyo ay upang maiwasan ang mga kasuklam-suklam na tagasubaybay mula sa pagsalakay sa iyong privacy.</p><p>Suriin ang opsyong ito upang magkaroon ng <i> uMatrix </i> gawin ito para sa iyo, sa pagitan na nais mo.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Ppag-iwas sa Pagsubaybay sa Web sa pamamagitan ng Cache Browser&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Ang ilang mga web site ay tunay na baluktot sa pagsubaybay sa iyo, kaya magkano na sila ay gumamit ng hindi-magandang-trick upang gumana sa paligid ng anumang mga panukala mong gawin upang hindi masubaybayan.</p><p>Ang ilan sa mga trick na ito ay umaasa<sup>[1, 2]</sup> sa <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, kung aling nilalaman ay madalas na matagal na dahil hindi gaanong magagawa ng mga gumagamit ang oras upang regular na i-clear ang cache ng kanilang browser.</p><p>May kaunting abala na regular na i-clear ang cache ng browser (posibilidad na hindi mo mapansin kapag nangyari ito), at ang benepisyo ay upang maiwasan ang mga kasuklam-suklam na tagasubaybay mula sa pagsalakay sa iyong privacy.</p><p>Suriin ang opsyong ito upang magkaroon ng <i> nuTensor </i> gawin ito para sa iyo, sa pagitan na nais mo.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Ppag-iwas sa Pagsubaybay sa Web sa pamamagitan ng Cache Browser&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Mula sa Wikipedia:<blockquote> Ang HTTP referer ay isang header ng HTTP na nagpapakilala sa address ng webpage na naka-link sa mapagkukunan na hiniling. ...<b>Dahil ang impormasyon ng referer ay maaaring lumalabag sa privacy, pinapayagan ng ilang mga browser ng web ang gumagamit na huwag paganahin ang pagpapadala ng impormasyon ng referer.</b></blockquote>Kung naka-check ang setting na ito,<i>uMatrix</i>ay i-spoof ang impormasyon ng HTTP referrer kung ang pangalan ng domain ng HTTP referrer ay third-party sa pangalan ng domain na net request.", "message": "Mula sa Wikipedia:<blockquote> Ang HTTP referer ay isang header ng HTTP na nagpapakilala sa address ng webpage na naka-link sa mapagkukunan na hiniling. ...<b>Dahil ang impormasyon ng referer ay maaaring lumalabag sa privacy, pinapayagan ng ilang mga browser ng web ang gumagamit na huwag paganahin ang pagpapadala ng impormasyon ng referer.</b></blockquote>Kung naka-check ang setting na ito,<i>nuTensor</i>ay i-spoof ang impormasyon ng HTTP referrer kung ang pangalan ng domain ng HTTP referrer ay third-party sa pangalan ng domain na net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentasyon</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentasyon</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Ang lahat ng iyong mga setting ay mapapatungan gamit ang data na naka-back up sa {{time}}, at uMatrix ay muling simulan.\n\nI-overwrite ang lahat ng umiiral na mga setting gamit ang naka-back up na data?", "message": "Ang lahat ng iyong mga setting ay mapapatungan gamit ang data na naka-back up sa {{time}}, at nuTensor ay muling simulan.\n\nI-overwrite ang lahat ng umiiral na mga setting gamit ang naka-back up na data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Mag-ingat! aalisin nito ang lahat ng iyong mga pasadyang setting. Sigurado ka bang gusto mong magpatuloy?", "message": "Mag-ingat! aalisin nito ang lahat ng iyong mga pasadyang setting. Sigurado ka bang gusto mong magpatuloy?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "(mga) expression ng filter",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Pinakamataas na bilang ng mga entry",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "tinanggal ang cookie: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "bigo na tanggalin ang cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "naka-clear ang cache ng browser",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "na-update ang asset: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "Pinigilan ng uMatrix ang sumusunod na pahina mula sa paglo-load:", "message": "Pinigilan ng nuTensor ang sumusunod na pahina mula sa paglo-load:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Dahil sa sumusunod na tuntunin", "message": "Dahil sa sumusunod na tuntunin",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Tableau de bord", "message": "nuTensor — Tableau de bord",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Journal", "message": "nuTensor — Journal",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "Script", "message": "Script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "Chercher",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Modifier les balises <code><noscript></code>", "message": "Modifier les balises <code><noscript></code>",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Révéler les noms canoniques",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Annuler tous les changements temporaires", "message": "Annuler tous les changements temporaires",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistiques", "message": "nuTensor &ndash; Statistiques",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Cette option vous permet de saisir le nombre de plus récentes requêtes HTTP à journaliser pour une inspection ultérieure.</p><p>Ceci est particulièrement utile pour les utilisateurs expérimentés qui veulent déterminer ce que fait précisément une page Web. Mais le processus de journalisation nécessite de la mémoire vive, et si vous ne vous souciez guère de ces informations, la mémoire utilisée dans ce but est gaspillée.</p><p>Pour désactiver cette fonctionnalité et ainsi réduire l'empreinte mémoire de <i>uMatrix</i>, saisissez &ldquo;<code>0</code>&rdquo;.</p>", "message": "<p>Cette option vous permet de saisir le nombre de plus récentes requêtes HTTP à journaliser pour une inspection ultérieure.</p><p>Ceci est particulièrement utile pour les utilisateurs expérimentés qui veulent déterminer ce que fait précisément une page Web. Mais le processus de journalisation nécessite de la mémoire vive, et si vous ne vous souciez guère de ces informations, la mémoire utilisée dans ce but est gaspillée.</p><p>Pour désactiver cette fonctionnalité et ainsi réduire l'empreinte mémoire de <i>nuTensor</i>, saisissez &ldquo;<code>0</code>&rdquo;.</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Actualiser", "message": "Actualiser",
"description": "" "description": ""
}, },
"logAll": {
"message": "Tout",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "En coulisses",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Onglet courant",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Recharger le contenu de l'onglet",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "Expression(s) de filtre",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "Cookie supprimé : {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Échec lors de la suppression du cookie : {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "Cache du navigateur nettoyé",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "Élément mis à jour : {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Commuter le filtrage du journal",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "Filtrer le contenu du journal",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Commuter le panneau pop-up",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "Wiki uBlock Origin : Le journal",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Vider le journal",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "Mettre en pause le journal (ignorer les données entrantes)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Reprendre la journalisation",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Options de filtrage du journal",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Non",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "Bloquée",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "Information",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "Première partie",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "Tierce-partie",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Détails",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Contexte",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Niveau de partie",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "Lien",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Règle",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Les entrées de journal ne remplissant aucune de ces trois conditions seront automatiquement rejetées :",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Conserver les entrées des {{input}} dernières minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Conserver au maximum {{input}} chargements de page par onglet",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Conserver au maximum {{input}} entrées par onglet",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Utiliser {{input}} lignes par entrée dans le mode verticalement étendu",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "Liste",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Tableau",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Simple",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Réglages", "message": "nuTensor &ndash; Réglages",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Cacher les espaces réservés aux éléments bloqués", "message": "Cacher les espaces réservés aux éléments bloqués",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Cacher les espaces réservés aux éléments de la liste noire", "message": "Cacher les espaces réservés aux éléments de la liste noire",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Confidentialité", "message": "nuTensor &ndash; Confidentialité",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i> n'empêche pas les cookies bloqués 'd'entrer' dans votre navigateur, mais les empêche d'en 'repartir', et c'est cela qui importe. 'Laisser venir' les cookies vous permet de savoir lorsqu'un site essaye d'en utiliser, ou même d'en inspecter le contenu si vous le désirez.</p><p>Une fois que les cookies bloqués ont été pris en compte par <i>uMatrix</i>, ils peuvent être supprimés de votre navigateur si vous le souhaitez.</p><p><b>Note importante</b> : Les extensions peuvent faire des requêtes Web au cours de leurs opérations ordinaires. Ces requêtes peuvent entraîner la création de cookies dans le navigateur. Si cette fonctionnalité est activée et que le nom d'hôte originel du cookie n'est pas sur liste blanche, le cookie sera supprimé du navigateur par <i>uMatrix</i>, alors assurez-vous que le(s) nom(s) d'hôte(s) avec le(s)quel(s) l'extension interagit soit/soient sur liste blanche.</p>", "message": "<p><i>nuTensor</i> n'empêche pas les cookies bloqués 'd'entrer' dans votre navigateur, mais les empêche d'en 'repartir', et c'est cela qui importe. 'Laisser venir' les cookies vous permet de savoir lorsqu'un site essaye d'en utiliser, ou même d'en inspecter le contenu si vous le désirez.</p><p>Une fois que les cookies bloqués ont été pris en compte par <i>nuTensor</i>, ils peuvent être supprimés de votre navigateur si vous le souhaitez.</p><p><b>Note importante</b> : Les extensions peuvent faire des requêtes Web au cours de leurs opérations ordinaires. Ces requêtes peuvent entraîner la création de cookies dans le navigateur. Si cette fonctionnalité est activée et que le nom d'hôte originel du cookie n'est pas sur liste blanche, le cookie sera supprimé du navigateur par <i>nuTensor</i>, alors assurez-vous que le(s) nom(s) d'hôte(s) avec le(s)quel(s) l'extension interagit soit/soient sur liste blanche.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Certains sites Web sont déterminés à connaître votre vie privée en ligne, quitte à employer des méthodes peu orthodoxes pour contrer les dispositions que vous avez prises pour ne pas être victime de pistage.</p><p>Certaines de ces techniques exploitent<sup>[1, 2]</sup> le <a href='https://fr.wikipedia.org/wiki/Cache_web'>cache du navigateur</a> dont le contenu perdure souvent un bon bout de temps, puisque les utilisateurs prennent rarement le temps de fréquemment vider leur cache de navigation.</p><p>Nettoyer régulièrement le cache du navigateur est un dérangement aux yeux de certaines personnes, même si cela empêche ces envahissants pisteurs de bafouer votre confidentialité.</p><p>Cochez cette option pour que <i>uMatrix</i> s'en occupe à votre place, suivant la fréquence de votre choix.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies”&rdquo;</a></p>", "message": "<p>Certains sites Web sont déterminés à connaître votre vie privée en ligne, quitte à employer des méthodes peu orthodoxes pour contrer les dispositions que vous avez prises pour ne pas être victime de pistage.</p><p>Certaines de ces techniques exploitent<sup>[1, 2]</sup> le <a href='https://fr.wikipedia.org/wiki/Cache_web'>cache du navigateur</a> dont le contenu perdure souvent un bon bout de temps, puisque les utilisateurs prennent rarement le temps de fréquemment vider leur cache de navigation.</p><p>Nettoyer régulièrement le cache du navigateur est un dérangement aux yeux de certaines personnes, même si cela empêche ces envahissants pisteurs de bafouer votre confidentialité.</p><p>Cochez cette option pour que <i>nuTensor</i> s'en occupe à votre place, suivant la fréquence de votre choix.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies”&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "<p>D'après Wikipédia :</p> <blockquote>Un référant HTTP est un champ dans l'entête HTTP, qui indique l'adresse de la page Web depuis laquelle on se connecte vers la ressource demandée[...] <b>Puisque les informations comprises dans un référant peuvent compromettre la vie privée, certains navigateurs Web permettent aux utilisateurs de désactiver l'envoi de ces données.</b></blockquote><p>Si ce paramètre est coché, <i>uMatrix</i> supprimera le référant HTTP si le nom de domaine du référant HTTP est différent du nom de domaine de la requête réseau (autrement dit, si vous venez d'un site différent de celui que vous visitez)</p>", "message": "<p>D'après Wikipédia :</p> <blockquote>Un référant HTTP est un champ dans l'entête HTTP, qui indique l'adresse de la page Web depuis laquelle on se connecte vers la ressource demandée[...] <b>Puisque les informations comprises dans un référant peuvent compromettre la vie privée, certains navigateurs Web permettent aux utilisateurs de désactiver l'envoi de ces données.</b></blockquote><p>Si ce paramètre est coché, <i>nuTensor</i> supprimera le référant HTTP si le nom de domaine du référant HTTP est différent du nom de domaine de la requête réseau (autrement dit, si vous venez d'un site différent de celui que vous visitez)</p>",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Journal des changements</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Journal des changements</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Toutes vos données seront remplacées par celles enregistrées le {{time}}, puis uMatrix redémarrera.\n\nDésirez-vous vraiment effectuer l'opération ?", "message": "Toutes vos données seront remplacées par celles enregistrées le {{time}}, puis nuTensor redémarrera.\n\nDésirez-vous vraiment effectuer l'opération ?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Attention ! Cela supprimera tous vos paramétrages personnels. Désirez-vous vraiment réinitialiser ?", "message": "Attention ! Cela supprimera tous vos paramétrages personnels. Désirez-vous vraiment réinitialiser ?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "Expression(s) de filtre",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Nombre maximum d'entrées",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "Cookie supprimé : {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Échec lors de la suppression du cookie : {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "Cache du navigateur nettoyé",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "Élément mis à jour : {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix a empêché le chargement de cette page :", "message": "nuTensor a empêché le chargement de cette page :",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "À cause de la règle suivante", "message": "À cause de la règle suivante",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Appliquer", "message": "Appliquer",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copier dans le presse-papier",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — פאנל הקונפיגורציות", "message": "nuTensor — פאנל הקונפיגורציות",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — מתעד הבקשות", "message": "nuTensor — מתעד הבקשות",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "סקריפט", "message": "סקריפט",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "זיוף תגיות <code><noscript></code>", "message": "זיוף תגיות <code><noscript></code>",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "מחק את כל השינויים הזמניים", "message": "מחק את כל השינויים הזמניים",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; סטטיסטיקות", "message": "nuTensor &ndash; סטטיסטיקות",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>אתה יכול לבדוק את הפרטים של רוב בקשות HTTP הגולמיות האחרונות אשר יצאו מדף אינטרנט (ראה להלן).</p><p>זה שימושי בעיקר למשתמשים מתקדמים שרוצים לחקור בדיוק מה דף האינטרנט עשה. אבל רישום בקשות ה HTTP הללו דורש זיכרון, ואם לא אכפת לך מהמידע הטכני הזה, אז הזיכרון מתבזבז.</p><p>לכן קיימת אפשרות זו המאפשרת לך להתאים את המספר המרבי של בקשות ה HTTP הכי האחרונות שמיועדות להירשם לבדיקה נוספת.</p><p>הזן &ldquo;<code>0</code>&rdquo; כדי לכבות את הרישום המפורט (וכתוצאה מכך להפחית את השימוש בזיכרון של <i>uMatrix</i>).</p>", "message": "<p>אתה יכול לבדוק את הפרטים של רוב בקשות HTTP הגולמיות האחרונות אשר יצאו מדף אינטרנט (ראה להלן).</p><p>זה שימושי בעיקר למשתמשים מתקדמים שרוצים לחקור בדיוק מה דף האינטרנט עשה. אבל רישום בקשות ה HTTP הללו דורש זיכרון, ואם לא אכפת לך מהמידע הטכני הזה, אז הזיכרון מתבזבז.</p><p>לכן קיימת אפשרות זו המאפשרת לך להתאים את המספר המרבי של בקשות ה HTTP הכי האחרונות שמיועדות להירשם לבדיקה נוספת.</p><p>הזן &ldquo;<code>0</code>&rdquo; כדי לכבות את הרישום המפורט (וכתוצאה מכך להפחית את השימוש בזיכרון של <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "רענן", "message": "רענן",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "ביטוי(י) פילטור",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "עוגייה נמחקה: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "נכשל במחיקת העוגייה: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "זיכרון מטמון נמחק",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "הנכס עודכן: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; הגדרות", "message": "nuTensor &ndash; הגדרות",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "הסתר את המקום שנשאר מחסימה של אלמנטים", "message": "הסתר את המקום שנשאר מחסימה של אלמנטים",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "הסתר את המקום שנשאר מחסימה של אלמנטים", "message": "הסתר את המקום שנשאר מחסימה של אלמנטים",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; פרטיות", "message": "nuTensor &ndash; פרטיות",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>עוגיות ברשימה השחורה לא נמנעות על ידי <i>uMatrix</i> מלהיכנס לדפדפן שלך. אולם הן כן מנועות מלצאת מהדפדפן שלך, וזה מה שחשוב באמת. לא לחסום עוגיות לפני שהן נכנסות לדפדפן שלך נותן לך את ההזדמנות להיות מודע לכך שאתר ניסה להשתמש בעוגיות, ויתר על כן כדי לבדוק את תוכנם, אם תרצה.</p><p>כאשר <i>uMatrix</i> נתקל בעוגייה שברשימה השחורה, הן יכולות להיות מוסרות מהדפדפן שלך אם תרצה בכך.</p><p><b>הערה חשובה:</b> תוספים יכולים לבצע בקשות רשת במהלך פעולתם הרגילה. בקשות אלה יכולות לגרום לכך שעוגיות יווצרו בדפדפן. אם הדומיין שממנה העוגייה הגיעה לא ברשימה הלבנה, העוגייה תמחק מהדפדפן על ידי <i>µMatrix</i> אם אפשרות זו מאופשרת. אז תהיה בטוח לגבי זה שהדומיין(ים) אשר איתם התוסף יכול לתקשר נמצא(ים) ברשימה הלבנה.</p>", "message": "<p>עוגיות ברשימה השחורה לא נמנעות על ידי <i>nuTensor</i> מלהיכנס לדפדפן שלך. אולם הן כן מנועות מלצאת מהדפדפן שלך, וזה מה שחשוב באמת. לא לחסום עוגיות לפני שהן נכנסות לדפדפן שלך נותן לך את ההזדמנות להיות מודע לכך שאתר ניסה להשתמש בעוגיות, ויתר על כן כדי לבדוק את תוכנם, אם תרצה.</p><p>כאשר <i>nuTensor</i> נתקל בעוגייה שברשימה השחורה, הן יכולות להיות מוסרות מהדפדפן שלך אם תרצה בכך.</p><p><b>הערה חשובה:</b> תוספים יכולים לבצע בקשות רשת במהלך פעולתם הרגילה. בקשות אלה יכולות לגרום לכך שעוגיות יווצרו בדפדפן. אם הדומיין שממנה העוגייה הגיעה לא ברשימה הלבנה, העוגייה תמחק מהדפדפן על ידי <i>µMatrix</i> אם אפשרות זו מאופשרת. אז תהיה בטוח לגבי זה שהדומיין(ים) אשר איתם התוסף יכול לתקשר נמצא(ים) ברשימה הלבנה.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>יש אתרי אינטרנט שממש רוצים לעקוב אחרייך, כל כך שהם ישתמשו בטריקים לא כל כך יפים על מנת לעקוף את כל הדברים שאתה עושה כדי לא להיות במעקב.</p><p>כמה מהטריקים האלה מתבססים<sup>[1, 2]</sup> על <a href='https://en.wikipedia.org/wiki/Web_cache'>הזיכרון מטמון של הדפדפן</a>, אשר תוכנו לרוב נמצא הרבה זמן על המחשב מכיוון שלעיתים רחוקות משתמשים ישקיעו מזמנם לנקות באופן קבוע את הזיכרון מטמון של הדפדפן שלהם.</p><p>יש אי נעימות קלה לנקות את הזיכרון מטמון של הדפדפן באופן קבוע (רוב הסיכויים שלא תשים לב כשזה קורה), והתועלת היא במניעה של העוקבים הנתעבים האלה מחדירה לפרטיות שלך.</p><p>סמן אפשרות זו בשביל ש <i>uMatrix</i> יעשה זאת בשבילך, כל כמה זמן שתרצה.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;מניעה מעקב אינטרנטי על ידי שימוש בזיכרון מטמון של הדפדפן&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;עוגיות חסרי העוגיות&rdquo;</a></p>", "message": "<p>יש אתרי אינטרנט שממש רוצים לעקוב אחרייך, כל כך שהם ישתמשו בטריקים לא כל כך יפים על מנת לעקוף את כל הדברים שאתה עושה כדי לא להיות במעקב.</p><p>כמה מהטריקים האלה מתבססים<sup>[1, 2]</sup> על <a href='https://en.wikipedia.org/wiki/Web_cache'>הזיכרון מטמון של הדפדפן</a>, אשר תוכנו לרוב נמצא הרבה זמן על המחשב מכיוון שלעיתים רחוקות משתמשים ישקיעו מזמנם לנקות באופן קבוע את הזיכרון מטמון של הדפדפן שלהם.</p><p>יש אי נעימות קלה לנקות את הזיכרון מטמון של הדפדפן באופן קבוע (רוב הסיכויים שלא תשים לב כשזה קורה), והתועלת היא במניעה של העוקבים הנתעבים האלה מחדירה לפרטיות שלך.</p><p>סמן אפשרות זו בשביל ש <i>nuTensor</i> יעשה זאת בשבילך, כל כמה זמן שתרצה.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;מניעה מעקב אינטרנטי על ידי שימוש בזיכרון מטמון של הדפדפן&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;עוגיות חסרי העוגיות&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "מתוך ויקיפדיה:<blockquote>HTTP referer זוהי כותרת (header) של בקשת HTTP אשר מזהה את הכתובת של דף האינטרנט שמקושר למשאב שמבוקש. ... <b>משום שהמידע על המפנה (referer) יכול לפגוע בפרטיות, מספר דפדפנים מאפשרים למשתמש לבטל את השליחה של המידע של המפנה.</b></blockquote>אם אפשרות זו מאופשרת, <i>uMatrix</i> יזייף את המידע של ה HTTP referrer אם שם הדומיין של ה HTTP referrer הוא צד שלישי לשם הדומיין של בקשת הרשת.", "message": "מתוך ויקיפדיה:<blockquote>HTTP referer זוהי כותרת (header) של בקשת HTTP אשר מזהה את הכתובת של דף האינטרנט שמקושר למשאב שמבוקש. ... <b>משום שהמידע על המפנה (referer) יכול לפגוע בפרטיות, מספר דפדפנים מאפשרים למשתמש לבטל את השליחה של המידע של המפנה.</b></blockquote>אם אפשרות זו מאופשרת, <i>nuTensor</i> יזייף את המידע של ה HTTP referrer אם שם הדומיין של ה HTTP referrer הוא צד שלישי לשם הדומיין של בקשת הרשת.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>רשימת שינויים</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>רשימת שינויים</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>דוקומנטציה</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>דוקומנטציה</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "כל ההגדרות שלך יוחלפו בנתונים שגובו ב {{time}}, ו uMatrix יופעל מחדש.\n\nהאם להחליף את כל ההגדרות הקיימות בנתונים המגובים?", "message": "כל ההגדרות שלך יוחלפו בנתונים שגובו ב {{time}}, ו nuTensor יופעל מחדש.\n\nהאם להחליף את כל ההגדרות הקיימות בנתונים המגובים?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "אזהרה! פעולה זו תוביל למחיקה של כל ההגדרות המותאמות אישית שלך. האם אתה בטוח שאתה רוצה להמשיך?", "message": "אזהרה! פעולה זו תוביל למחיקה של כל ההגדרות המותאמות אישית שלך. האם אתה בטוח שאתה רוצה להמשיך?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "ביטוי(י) פילטור",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "מספר רשומות מקסימליות",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "עוגייה נמחקה: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "נכשל במחיקת העוגייה: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "זיכרון מטמון נמחק",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "הנכס עודכן: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix מנע מהעמוד הבא מלהיטען:", "message": "nuTensor מנע מהעמוד הבא מלהיטען:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "בגלל החוק הבא", "message": "בגלל החוק הבא",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "החל שינויים", "message": "החל שינויים",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -12,7 +12,7 @@
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "लिपि", "message": "लिपि",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,13 +276,161 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "रिफ्रेश", "message": "रिफ्रेश",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "µMatrix &ndash; सेटिंग्स", "message": "µMatrix &ndash; सेटिंग्स",
"description": "" "description": ""
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Vezérlőpult", "message": "nuTensor — Vezérlőpult",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Napló", "message": "nuTensor — Napló",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "szkript", "message": "szkript",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "<code><noscript></code> tagek felülírása", "message": "<code><noscript></code> tagek felülírása",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Minden ideiglenes változtatás visszavonása", "message": "Minden ideiglenes változtatás visszavonása",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statisztika", "message": "nuTensor &ndash; Statisztika",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>A <i>uMatrix</i> lehetőséget ad a weboldalak által generált legutóbbi nyers HTTP lekérések részleteinek megtekintésére.</p><p>Ez leginkább haladó felhasználók számára hasznos, akik szeretnének képben lenni a weboldal tényleges működésével.</p><p>Természetesen a HTTP lekérések naplózása memóriát foglal, ezért amennyiben ilyen részletes technikai információkra nincs szükség, abban az esetben érdemes ezt a funkciót kikapcsolni memóriamegtakarítás céljából.</p><p>Ebben a mezőben megadható a maximálisan eltárolt HTTP lekérések száma; &ldquo;<code>0</code>&rdquo;-ra állítva ez a funkció kikapcsolásra kerül.</p>", "message": "<p>A <i>nuTensor</i> lehetőséget ad a weboldalak által generált legutóbbi nyers HTTP lekérések részleteinek megtekintésére.</p><p>Ez leginkább haladó felhasználók számára hasznos, akik szeretnének képben lenni a weboldal tényleges működésével.</p><p>Természetesen a HTTP lekérések naplózása memóriát foglal, ezért amennyiben ilyen részletes technikai információkra nincs szükség, abban az esetben érdemes ezt a funkciót kikapcsolni memóriamegtakarítás céljából.</p><p>Ebben a mezőben megadható a maximálisan eltárolt HTTP lekérések száma; &ldquo;<code>0</code>&rdquo;-ra állítva ez a funkció kikapcsolásra kerül.</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Frissítés", "message": "Frissítés",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "szűrő kifejezés(ek)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "süti törölve: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "süti törlése sikertelen: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "böngésző gyorsítótára kiürítve",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "host adatok frissítve: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Beállítások", "message": "nuTensor &ndash; Beállítások",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Blokkolt elemek helyőrzőinek elrejtése", "message": "Blokkolt elemek helyőrzőinek elrejtése",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Tiltott elemek helyőrzőinek elrejtése", "message": "Tiltott elemek helyőrzőinek elrejtése",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Adatvédelem", "message": "nuTensor &ndash; Adatvédelem",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>A <i>uMatrix</i> a tiltólistás sütik böngészőből való távozását tiltja csak meg, a böngészőbe érkezésüket nem akadályozza meg. Ezúton tudomás szerezhető arról, ha egy oldal sütiket akar tárolni, valamint azok tartalma is megtekinthetővé válik.</p><p>Ezen opció bejelölésével a <i>uMatrix</i> automatikusan eltávolítja a beérkezett tiltott sütiket.</p><p><b>Fontos:</b> Nemcsak oldalak, hanem kiegészítők is indíthatnak lekérdezéseket működésük során, amelyek sütik létrehozásához vezethetnek. Amennyiben ez az opció engedélyezve van, továbbá a lekérésekhez tartozó hostneveken a sütik blokkolva vannak, akkor azok el lesznek távolítva a <i>uMatrix</i> által. Ez egyes kiegészítőknél hibás működést eredményezhet, amíg az általuk használt hostnevekről kapott sütik nincsenek engedélyezve.</p>", "message": "<p>A <i>nuTensor</i> a tiltólistás sütik böngészőből való távozását tiltja csak meg, a böngészőbe érkezésüket nem akadályozza meg. Ezúton tudomás szerezhető arról, ha egy oldal sütiket akar tárolni, valamint azok tartalma is megtekinthetővé válik.</p><p>Ezen opció bejelölésével a <i>nuTensor</i> automatikusan eltávolítja a beérkezett tiltott sütiket.</p><p><b>Fontos:</b> Nemcsak oldalak, hanem kiegészítők is indíthatnak lekérdezéseket működésük során, amelyek sütik létrehozásához vezethetnek. Amennyiben ez az opció engedélyezve van, továbbá a lekérésekhez tartozó hostneveken a sütik blokkolva vannak, akkor azok el lesznek távolítva a <i>nuTensor</i> által. Ez egyes kiegészítőknél hibás működést eredményezhet, amíg az általuk használt hostnevekről kapott sütik nincsenek engedélyezve.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Egyes weboldalak annyira elszántan követni szeretnék a felhasználóikat, hogy képesek nem kifejezetten szép trükköket is bevetni a követés ellen tett lépéseik kikerülése érdekében.</p><p>Pár ilyen trükk<sup>[1, 2]</sup> a <a href='https://en.wikipedia.org/wiki/Web_cache'>böngésző gyorsítótárát</a> használja fel, tekintve, hogy a felhasználók ritkán ürítik ki azt, így gyakran sokáig eltárolásra kerülnek ezek a követők.</p><p>A böngésző gyorsítótárának gyakori ürítése kevés hátránnyal jár, (legtöbbször fel sem tűnik,) ráadásul megállítja ezeket az ellenszenves követéseket a személyes adatok védelme érdekében.</p><p>Ezen opció engedélyezésekor a <i>uMatrix</i> kiüríti a böngészó gyorsítótárát a megadott időközönként.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Egyes weboldalak annyira elszántan követni szeretnék a felhasználóikat, hogy képesek nem kifejezetten szép trükköket is bevetni a követés ellen tett lépéseik kikerülése érdekében.</p><p>Pár ilyen trükk<sup>[1, 2]</sup> a <a href='https://en.wikipedia.org/wiki/Web_cache'>böngésző gyorsítótárát</a> használja fel, tekintve, hogy a felhasználók ritkán ürítik ki azt, így gyakran sokáig eltárolásra kerülnek ezek a követők.</p><p>A böngésző gyorsítótárának gyakori ürítése kevés hátránnyal jár, (legtöbbször fel sem tűnik,) ráadásul megállítja ezeket az ellenszenves követéseket a személyes adatok védelme érdekében.</p><p>Ezen opció engedélyezésekor a <i>nuTensor</i> kiüríti a böngészó gyorsítótárát a megadott időközönként.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Wikipediából:<blockquote>A Referer egy olyan HTTP header, ami meghatározza annak a weboldalnak címét, ami a lekért oldalra mutatott. ... <b>Mivel ez az információ a személyes adatok védelmét sértheti, néhány böngésző megengedi a felhasználóknak, hogy kikapcsolják ennek az információnak az elküldését.</b></blockquote>Ezen beállítás engedélyezésekor a <i>uMatrix</i> meg fogja hamisítani a referer információt abban az esetben, ha a referer domain neve harmadik félnek számít a lekérés domain nevéhez képest.", "message": "Wikipediából:<blockquote>A Referer egy olyan HTTP header, ami meghatározza annak a weboldalnak címét, ami a lekért oldalra mutatott. ... <b>Mivel ez az információ a személyes adatok védelmét sértheti, néhány böngésző megengedi a felhasználóknak, hogy kikapcsolják ennek az információnak az elküldését.</b></blockquote>Ezen beállítás engedélyezésekor a <i>nuTensor</i> meg fogja hamisítani a referer információt abban az esetben, ha a referer domain neve harmadik félnek számít a lekérés domain nevéhez képest.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Változási napló</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Változási napló</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentáció</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentáció</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/About-the-required-permissions'>Engedélyek</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/About-the-required-permissions'>Engedélyek</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Minden jelenlegi beállítás felülírásra kerül a {{time}} dátumú biztonsági mentésben található beállítással, majd ezt követően a uMatrix újraindul.\n\nBiztosan felülírjam a jelenlegi beállításokat a megadott biztonsági mentéssel?", "message": "Minden jelenlegi beállítás felülírásra kerül a {{time}} dátumú biztonsági mentésben található beállítással, majd ezt követően a nuTensor újraindul.\n\nBiztosan felülírjam a jelenlegi beállításokat a megadott biztonsági mentéssel?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Vigyázat! A kiegészítő minden egyéni beállítása eltávolításra fog kerülni. Biztosan ezt tegyem?", "message": "Vigyázat! A kiegészítő minden egyéni beállítása eltávolításra fog kerülni. Biztosan ezt tegyem?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "szűrő kifejezés(ek)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximális bejegyzések száma",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "süti törölve: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "süti törlése sikertelen: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "böngésző gyorsítótára kiürítve",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "host adatok frissítve: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "A uMatrix megakadályozta a következő oldal betöltését:", "message": "A nuTensor megakadályozta a következő oldal betöltését:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "A következő szabály miatt", "message": "A következő szabály miatt",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Módosítások alkalmazása", "message": "Módosítások alkalmazása",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dasbor", "message": "nuTensor — Dasbor",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Pencatat Log", "message": "nuTensor — Pencatat Log",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "skrip", "message": "skrip",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Palsukan tag <code><noscript></code>", "message": "Palsukan tag <code><noscript></code>",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Kembalikan semua ubahan sementara", "message": "Kembalikan semua ubahan sementara",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistik", "message": "nuTensor &ndash; Statistik",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Anda dapat memeriksa rincian terkini permintaan mentah HTTP yang telah dibuat oleh halaman web (lihat di bawah).</p><p>Hal ini sangat berguna bagi para pengguna tingkat lanjut yang ingin menyelidiki secara pasti apa yang halaman web telah lakukan. Akan tetapi, mencatat permintaan HTTP ini memerlukan tambahan memori, dan jika anda tidak peduli tentang informasi teknis ini, maka memori terbuang dengan percuma.</p><p>Oleh karena itu, ruas ini memungkinkan anda mengatur jumlah maksimum permintaan HTTP terkini yang akan dicatat untuk pemeriksaan lebih lanjut.</p><p>Masukkan &ldquo;<code>0</code>&rdquo; untuk mematikan pencatatan terperinci (dan berarti berkurangnya penggunaan memori <i>uMatrix</i>).</p>", "message": "<p>Anda dapat memeriksa rincian terkini permintaan mentah HTTP yang telah dibuat oleh halaman web (lihat di bawah).</p><p>Hal ini sangat berguna bagi para pengguna tingkat lanjut yang ingin menyelidiki secara pasti apa yang halaman web telah lakukan. Akan tetapi, mencatat permintaan HTTP ini memerlukan tambahan memori, dan jika anda tidak peduli tentang informasi teknis ini, maka memori terbuang dengan percuma.</p><p>Oleh karena itu, ruas ini memungkinkan anda mengatur jumlah maksimum permintaan HTTP terkini yang akan dicatat untuk pemeriksaan lebih lanjut.</p><p>Masukkan &ldquo;<code>0</code>&rdquo; untuk mematikan pencatatan terperinci (dan berarti berkurangnya penggunaan memori <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Segarkan", "message": "Segarkan",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "ekspresi penyaring",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "kuki dihapus: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "gagal menghapus kuki: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "tembolok peramban dibersihkan",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "aset diperbarui: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Pengaturan", "message": "nuTensor &ndash; Pengaturan",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Sembunyikan wadah elemen yang diblokir", "message": "Sembunyikan wadah elemen yang diblokir",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Sembunyikan wadah elemen terdaftar hitam", "message": "Sembunyikan wadah elemen terdaftar hitam",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privasi", "message": "nuTensor &ndash; Privasi",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Kuki dalam daftar hitam tidak dicegah oleh <i>uMatrix</i> untuk masuk ke peramban anda. Namun mereka dicegah untuk meninggalkan peramban anda, dan itulah yang terpenting. Tidak memblokir kuki sebelum mereka masuk ke peramban anda memberikan anda kesempatan mendapatkan informasi bahwa situs tersebut mencoba untuk menggunakan kuki, dan lebih lanjut memeriksa isi kuki tersebut jika anda inginkan.</p><p>Setelah kuki dalam daftar hitam ini dicatat oleh <i>uMatrix</i>, mereka dapat dibuang dari peramban anda jika anda menginginkannya.</p><p><b>Catatan penting:</b> Ekstensi dapat membuat permintaan web selama operasi normal ekstensi berjalan. Permintaan ini dapat mengakibatkan beberapa kuki dibuat dalam peramban. Jika nama host dari mana kuki berasal tidak dalam daftar putih, kuki akan dibuang dari peramban oleh <i>uMatrix</i> jika opsi berikut dicentang. Jadi, pastikan nama host dengan yang ekstensi berkomunikasi masuk dalam daftar putih.</p>", "message": "<p>Kuki dalam daftar hitam tidak dicegah oleh <i>nuTensor</i> untuk masuk ke peramban anda. Namun mereka dicegah untuk meninggalkan peramban anda, dan itulah yang terpenting. Tidak memblokir kuki sebelum mereka masuk ke peramban anda memberikan anda kesempatan mendapatkan informasi bahwa situs tersebut mencoba untuk menggunakan kuki, dan lebih lanjut memeriksa isi kuki tersebut jika anda inginkan.</p><p>Setelah kuki dalam daftar hitam ini dicatat oleh <i>nuTensor</i>, mereka dapat dibuang dari peramban anda jika anda menginginkannya.</p><p><b>Catatan penting:</b> Ekstensi dapat membuat permintaan web selama operasi normal ekstensi berjalan. Permintaan ini dapat mengakibatkan beberapa kuki dibuat dalam peramban. Jika nama host dari mana kuki berasal tidak dalam daftar putih, kuki akan dibuang dari peramban oleh <i>nuTensor</i> jika opsi berikut dicentang. Jadi, pastikan nama host dengan yang ekstensi berkomunikasi masuk dalam daftar putih.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Beberapa situs sangat lihai dalam melacak anda, amat sangat lihai sampai-sampai mereka akan gunakan cara-cara yang tidak baik untuk menghindari apapun tindakan yang anda lakukan agar tidak dilacak.</p><p>Beberapa cara-cara ini mengandalkan<sup>[1, 2]</sup> <a href='https://en.wikipedia.org/wiki/Web_cache'>tembolok peramban</a>, yang muatannya terkadang bertahan lama karena jarang pengguna menyempatkan waktu secara berkala membersihkan tembolok peramban mereka.</p><p>Ada sedikit ketidaknyamanan untuk membersihkan tembolok peramban secara berkala (kemungkinan adalah anda tidak akan tahu ketika hal tersebut terjadi), dan keuntungannya adalah untuk mencegah pelacak yang menjengkelkan ini melanggar privasi anda.</p><p>Centang opsi berikut untuk membuat <i>uMatrix</i> melakukannya untuk anda, pada selang waktu yang anda inginkan.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Mencegah Pelacakan Web melalui Tembolok Web&rdquo;</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Kuki tanpa kuki&rdquo;</a></p>", "message": "<p>Beberapa situs sangat lihai dalam melacak anda, amat sangat lihai sampai-sampai mereka akan gunakan cara-cara yang tidak baik untuk menghindari apapun tindakan yang anda lakukan agar tidak dilacak.</p><p>Beberapa cara-cara ini mengandalkan<sup>[1, 2]</sup> <a href='https://en.wikipedia.org/wiki/Web_cache'>tembolok peramban</a>, yang muatannya terkadang bertahan lama karena jarang pengguna menyempatkan waktu secara berkala membersihkan tembolok peramban mereka.</p><p>Ada sedikit ketidaknyamanan untuk membersihkan tembolok peramban secara berkala (kemungkinan adalah anda tidak akan tahu ketika hal tersebut terjadi), dan keuntungannya adalah untuk mencegah pelacak yang menjengkelkan ini melanggar privasi anda.</p><p>Centang opsi berikut untuk membuat <i>nuTensor</i> melakukannya untuk anda, pada selang waktu yang anda inginkan.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Mencegah Pelacakan Web melalui Tembolok Web&rdquo;</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Kuki tanpa kuki&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Dari Wikipedia:<blockquote>Perujuk HTTP adalah sebuah ruas tajuk HTTP yang mengidentifikasi alamat dari halaman web yang bertautan dengan sumber daya yang sedang diminta. ... <b>Karena informasi perujuk dapat melanggar privasi, beberapa peramban memperbolehkan pengguna untuk menonaktifkan pengiriman informasi perujuk.</b></blockquote>Jika aturan ini dicentang, <i>uMatrix</i> akan memalsukan informasi perujuk HTTP jika nama domain perujuk HTTP adalah pihak ketiga dari nama domain jaringan yang diminta.", "message": "Dari Wikipedia:<blockquote>Perujuk HTTP adalah sebuah ruas tajuk HTTP yang mengidentifikasi alamat dari halaman web yang bertautan dengan sumber daya yang sedang diminta. ... <b>Karena informasi perujuk dapat melanggar privasi, beberapa peramban memperbolehkan pengguna untuk menonaktifkan pengiriman informasi perujuk.</b></blockquote>Jika aturan ini dicentang, <i>nuTensor</i> akan memalsukan informasi perujuk HTTP jika nama domain perujuk HTTP adalah pihak ketiga dari nama domain jaringan yang diminta.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Catatan perubahan</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Catatan perubahan</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentasi</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentasi</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Perizinan</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Perizinan</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Semua pengaturan anda akan ditimpa menggunakan data yang dicadangkan pada {{time}}, dan uMatrix akan memulai ulang.\n\nTimpa semua aturan yang ada menggunakan data yang dicadangkan?", "message": "Semua pengaturan anda akan ditimpa menggunakan data yang dicadangkan pada {{time}}, dan nuTensor akan memulai ulang.\n\nTimpa semua aturan yang ada menggunakan data yang dicadangkan?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Peringatan! ini akan membuang semua pengaturan tersesuai anda. Apakah anda yakin ingin melanjutkan?", "message": "Peringatan! ini akan membuang semua pengaturan tersesuai anda. Apakah anda yakin ingin melanjutkan?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "ekspresi penyaring",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Jumlah maksimum entri",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "kuki dihapus: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "gagal menghapus kuki: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "tembolok peramban dibersihkan",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "aset diperbarui: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix telah mencegah laman berikut dimuat:", "message": "nuTensor telah mencegah laman berikut dimuat:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Disebabkan oleh aturan berikut", "message": "Disebabkan oleh aturan berikut",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Terapkan perubahan", "message": "Terapkan perubahan",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Pannello di controllo", "message": "nuTensor — Pannello di controllo",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Registro", "message": "nuTensor — Registro",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof dei tag <code><noscript></code>", "message": "Spoof dei tag <code><noscript></code>",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Rivela i nomi canonici",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Ripristina tutte le modifiche temporanee", "message": "Ripristina tutte le modifiche temporanee",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistiche", "message": "nuTensor &ndash; Statistiche",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Puoi ispezionare i dettagli della richiesta HTTP raw più recente fatta da una pagina web (vedi sotto).</p><p>Questo è utile soprattutto per gli utenti avanzati che vogliono investigare su cosa fa esattamente una pagina web. Tuttavia registrare queste richieste HTTP richiede memoria, e se non ti interessano le informazioni tecniche, allora è uno spreco di memoria.</p><p>Ecco questo campo per regolare il massimo numero di richieste HTTP recenti da registrare per ulteriori ispezioni.</p><p>Inserisci &ldquo;<code>0</code>&rdquo; per disattivare la registrazione (e di conseguenza ridurre l'ingombro di memoria di <i>uMatrix</i>).</p>", "message": "<p>Puoi ispezionare i dettagli della richiesta HTTP raw più recente fatta da una pagina web (vedi sotto).</p><p>Questo è utile soprattutto per gli utenti avanzati che vogliono investigare su cosa fa esattamente una pagina web. Tuttavia registrare queste richieste HTTP richiede memoria, e se non ti interessano le informazioni tecniche, allora è uno spreco di memoria.</p><p>Ecco questo campo per regolare il massimo numero di richieste HTTP recenti da registrare per ulteriori ispezioni.</p><p>Inserisci &ldquo;<code>0</code>&rdquo; per disattivare la registrazione (e di conseguenza ridurre l'ingombro di memoria di <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Aggiorna", "message": "Aggiorna",
"description": "" "description": ""
}, },
"logAll": {
"message": "Tutti",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Senza scheda",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Scheda attuale",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Ricarica il contenuto della scheda",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filtra espressione/i",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie eliminato: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "impossibile eliminare il cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "cache del browser svuotata",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset aggiornato: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "contenuto filtro registro",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "Wiki di uBlock Origin: Il registro",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Svuota registro",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "Metti in pausa il registro (scarta tutti i dati in ingresso)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Fai ripartire il registro",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Opzioni di filtraggio del registro",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Non",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "bloccato",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "Dominio attuale",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "Terze parti",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Dettagli",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Contesto",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Tipo",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Regola",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Le voci del registro che non soddisfano tutte e tre le condizioni sottostanti saranno automaticamente scartate:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Mantieni le voci degli ultimi {{input}} minuti",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Mantieni al massimo {{input}} voci per scheda",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Usa {{input}} righe per voce in modalità espansa verticalmente",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "Elenco",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Tabella",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Testo semplice",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Impostazioni", "message": "nuTensor &ndash; Impostazioni",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Nascondi lo spazio riservato agli elementi bloccati", "message": "Nascondi lo spazio riservato agli elementi bloccati",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Nascondi lo spazio riservato agli elementi in lista nera", "message": "Nascondi lo spazio riservato agli elementi in lista nera",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i> non può impedire ai cookie bloccati di entrare nel tuo browser. Tuttavia impedisce che lascino il tuo browser, che è la cosa che conta. Non bloccare i cookie prima che entrino nel tuo browser ti dà la possibilità di sapere che un sito ha provato ad utilizzare cookie, e anche di ispezionarne il contenuto se lo desideri.</p><p>Quando questi cookie bloccati vengono presi in gestione da <i>uMatrix</i>, possono essere rimossi dal browser se lo desideri.</p><p><b>Nota importante:</b> Le estensioni possono fare richieste web durante il loro normale funzionamento. Queste richieste possono portare alla creazione di cookie nel browser. Se il nome dell'host da cui proviene un cookie non è presente nella lista bianca, il cookie verrà rimosso dal browser da <i>uMatrix</i> se l'opzione è selezionata. Assicurati quindi che il/i nome/i dell'host con cui un'estensione comunica sia in lista bianca.</p>", "message": "<p><i>nuTensor</i> non può impedire ai cookie bloccati di entrare nel tuo browser. Tuttavia impedisce che lascino il tuo browser, che è la cosa che conta. Non bloccare i cookie prima che entrino nel tuo browser ti dà la possibilità di sapere che un sito ha provato ad utilizzare cookie, e anche di ispezionarne il contenuto se lo desideri.</p><p>Quando questi cookie bloccati vengono presi in gestione da <i>nuTensor</i>, possono essere rimossi dal browser se lo desideri.</p><p><b>Nota importante:</b> Le estensioni possono fare richieste web durante il loro normale funzionamento. Queste richieste possono portare alla creazione di cookie nel browser. Se il nome dell'host da cui proviene un cookie non è presente nella lista bianca, il cookie verrà rimosso dal browser da <i>nuTensor</i> se l'opzione è selezionata. Assicurati quindi che il/i nome/i dell'host con cui un'estensione comunica sia in lista bianca.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Alcuni siti sono davvero inclini a tracciarti, tanto che utilizzeranno trucchi non molto carini per sorpassare qualsiasi misura prendi per non essere monitorato.</p><p>Alcuni di questi trucchi si basano<sup>[1, 2]</sup> sulla <a href='https://it.wikipedia.org/wiki/Web_cache'>cache del browser</a>, il quale contenuto è spesso di lunga durata, dato che raramente gli utenti si prendono il tempo di cancellare regolarmente la cache del loro browser.</p><p>C'è poco disagio nel cancellare la cache del browser regolarmente (probabilmente non te ne renderai conto), e il vantaggio è quello di evitare che questi infelici tracker invadano la tua privacy.</p><p>Seleziona questa opzione se vuoi che <i>uMatrix</i> lo faccia per te, a intervalli scelti.</p><p>[1]<a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a> [2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Alcuni siti sono davvero inclini a tracciarti, tanto che utilizzeranno trucchi non molto carini per sorpassare qualsiasi misura prendi per non essere monitorato.</p><p>Alcuni di questi trucchi si basano<sup>[1, 2]</sup> sulla <a href='https://it.wikipedia.org/wiki/Web_cache'>cache del browser</a>, il quale contenuto è spesso di lunga durata, dato che raramente gli utenti si prendono il tempo di cancellare regolarmente la cache del loro browser.</p><p>C'è poco disagio nel cancellare la cache del browser regolarmente (probabilmente non te ne renderai conto), e il vantaggio è quello di evitare che questi infelici tracker invadano la tua privacy.</p><p>Seleziona questa opzione se vuoi che <i>nuTensor</i> lo faccia per te, a intervalli scelti.</p><p>[1]<a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a> [2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Da Wikipedia (en):<blockquote>Un referer HTTP è un campo di intestazione HTTP che identifica l'indirizzo della pagina web di provenienza verso la risorsa richiesta. ... <b>Poiché le informazioni del referer possono violare la privacy, alcuni browser consentono all'utente di disabilitare l'invio delle informazioni del referer.</b></blockquote>Se questa opzione è selezionata, <i>uMatrix</i> falsificherà (spoof) le informazioni del referrer HTTP se il nome di dominio del referrer HTTP è di terze parti.", "message": "Da Wikipedia (en):<blockquote>Un referer HTTP è un campo di intestazione HTTP che identifica l'indirizzo della pagina web di provenienza verso la risorsa richiesta. ... <b>Poiché le informazioni del referer possono violare la privacy, alcuni browser consentono all'utente di disabilitare l'invio delle informazioni del referer.</b></blockquote>Se questa opzione è selezionata, <i>nuTensor</i> falsificherà (spoof) le informazioni del referrer HTTP se il nome di dominio del referrer HTTP è di terze parti.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentazione</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentazione</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Tutte le impostazioni verranno sovrascritte utilizzando i dati di backup del {{time}}, e uMatrix sarà riavviato. \n\nSovrascrivere tutte le impostazioni esistenti con quelle del backup?", "message": "Tutte le impostazioni verranno sovrascritte utilizzando i dati di backup del {{time}}, e nuTensor sarà riavviato. \n\nSovrascrivere tutte le impostazioni esistenti con quelle del backup?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Attenzione! Questo rimuoverà tutte le impostazioni personalizzate. Sei sicuro di voler procedere?", "message": "Attenzione! Questo rimuoverà tutte le impostazioni personalizzate. Sei sicuro di voler procedere?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "espressione/i filtro",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Numero massimo di voci",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie eliminato: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "impossibile eliminare il cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "cache del browser svuotata",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset aggiornato: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix ha impedito alla seguente pagina di caricarsi:", "message": "nuTensor ha impedito alla seguente pagina di caricarsi:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "A causa della regola seguente", "message": "A causa della regola seguente",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Applica modifiche", "message": "Applica modifiche",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copia negli appunti",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — ダッシュボード", "message": "nuTensor — ダッシュボード",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — ログ表示", "message": "nuTensor — ログ表示",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -40,7 +40,7 @@
"description": "a tab in dashboard" "description": "a tab in dashboard"
}, },
"aboutPageName": { "aboutPageName": {
"message": "uMatrix について", "message": "nuTensor について",
"description": "a tab in dashboard" "description": "a tab in dashboard"
}, },
"allPrettyName": { "allPrettyName": {
@ -71,8 +71,8 @@
"message": "Script", "message": "Script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "<code><noscript></code> タグの偽装", "message": "<code><noscript></code> タグの偽装",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "すべての一時的な変更を元に戻す", "message": "すべての一時的な変更を元に戻す",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; 統計", "message": "nuTensor &ndash; 統計",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Web ページ(下記参照)による直近の HTTP リクエストの詳細を調べることができます。</p><p>これは、Web ページが何をしていたかを正確に調べたい上級ユーザーにとってとても便利です。しかし、これらの HTTP リクエストをログに記録するのは多くのメモリーを必要とします。もしあなたがこの技術情報を必要としない場合、メモリーが浪費されています。</p><p>このフィールドではログに記録される直近の HTTP リクエストの上限を調整することができます。</p><p>ログ記録を無効化したい(そして <i>uMatrix</i> のメモリー消費量を削減したい)場合は &ldquo;<code>0</code>&rdquo; を入力してください。</p>", "message": "<p>Web ページ(下記参照)による直近の HTTP リクエストの詳細を調べることができます。</p><p>これは、Web ページが何をしていたかを正確に調べたい上級ユーザーにとってとても便利です。しかし、これらの HTTP リクエストをログに記録するのは多くのメモリーを必要とします。もしあなたがこの技術情報を必要としない場合、メモリーが浪費されています。</p><p>このフィールドではログに記録される直近の HTTP リクエストの上限を調整することができます。</p><p>ログ記録を無効化したい(そして <i>nuTensor</i> のメモリー消費量を削減したい)場合は &ldquo;<code>0</code>&rdquo; を入力してください。</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "再読み込み", "message": "再読み込み",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "フィルタする",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "削除した Cookie{{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Cookie の削除に失敗しました:{{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "ブラウザのキャッシュを削除しました",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "リソースを更新しました:{{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; 設定", "message": "nuTensor &ndash; 設定",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "ブロックした要素のプレースホルダを表示しない", "message": "ブロックした要素のプレースホルダを表示しない",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "明示的に拒否した要素のプレースホルダを表示しない", "message": "明示的に拒否した要素のプレースホルダを表示しない",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; プライバシー", "message": "nuTensor &ndash; プライバシー",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i> は、ブロックされる設定の Cookie であってもブラウザに入ってくることは許可し、出て行くことをブロックします(後者が本当に必要なことです)。ブラウザに入ってくるのを許可することで、そのサイトが Cookie を使おうとしていることをユーザが確認でき、さらにその内容を調べることもできます。</p><p><i>uMatrix</i> でこれらの Cookie について確認したあと、必要であればそれらをブラウザから削除しても構いません。</p><p><b>重要な注意点:</b> ブラウザの拡張機能はその機能の一部として Web リクエストをおこなうことがあり、場合によってはブラウザ内に Cookie が保存されます。このオプションをオンにした場合、該当のホストを許可しておかないと <i>uMatrix</i> によって Cookie が削除されます。拡張機能が通信するホストを許可しておくことを忘れないでください。</p>", "message": "<p><i>nuTensor</i> は、ブロックされる設定の Cookie であってもブラウザに入ってくることは許可し、出て行くことをブロックします(後者が本当に必要なことです)。ブラウザに入ってくるのを許可することで、そのサイトが Cookie を使おうとしていることをユーザが確認でき、さらにその内容を調べることもできます。</p><p><i>nuTensor</i> でこれらの Cookie について確認したあと、必要であればそれらをブラウザから削除しても構いません。</p><p><b>重要な注意点:</b> ブラウザの拡張機能はその機能の一部として Web リクエストをおこなうことがあり、場合によってはブラウザ内に Cookie が保存されます。このオプションをオンにした場合、該当のホストを許可しておかないと <i>nuTensor</i> によって Cookie が削除されます。拡張機能が通信するホストを許可しておくことを忘れないでください。</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>ユーザの行動を追跡するのに必死な Web サイトもあります。こうした Web サイトは行儀の悪い方法を使って、追跡されないようにするための対策を回避しようとします。</p><p>こうした手法の一部は、<a href='https://en.wikipedia.org/wiki/Web_cache'>ブラウザのキャッシュ</a>に依存 <sup>[1, 2]</sup> しています。なぜなら、ブラウザのキャッシュを消去する人はまれで、多くの場合に長期間にわたって残り続けるためです。</p><p>定期的にブラウザのキャッシュを消去することによる不都合はほとんどありません(あるとすれば、消去されるときユーザが気づかないということです)。メリットは、こうした不愉快なトラッカーによってあなたのプライバシーが侵害されるのを防げるという点です。</p><p>このオプションを設定することで、任意の間隔で <i>uMatrix</i> がブラウザのキャッシュを消去するようになります。</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>ユーザの行動を追跡するのに必死な Web サイトもあります。こうした Web サイトは行儀の悪い方法を使って、追跡されないようにするための対策を回避しようとします。</p><p>こうした手法の一部は、<a href='https://en.wikipedia.org/wiki/Web_cache'>ブラウザのキャッシュ</a>に依存 <sup>[1, 2]</sup> しています。なぜなら、ブラウザのキャッシュを消去する人はまれで、多くの場合に長期間にわたって残り続けるためです。</p><p>定期的にブラウザのキャッシュを消去することによる不都合はほとんどありません(あるとすれば、消去されるときユーザが気づかないということです)。メリットは、こうした不愉快なトラッカーによってあなたのプライバシーが侵害されるのを防げるという点です。</p><p>このオプションを設定することで、任意の間隔で <i>nuTensor</i> がブラウザのキャッシュを消去するようになります。</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Wikipedia から引用:<blockquote>HTTP リファラは、要求しているリソースにリンクしたウェブページのアドレスを識別する HTTP ヘッダのフィールドです。<b>リファラはプライバシーを侵害するおそれがあるため、一部の Web ブラウザでは、ユーザーがリファラの送信を無効にすることができます</b>。</blockquote>この設定をオンにすると、HTTP リファラのドメイン名がアクセスしている Web サイトのドメイン名と異なる場合(サードパーティリクエストである場合)、<i>uMatrix</i> は HTTP リファラを偽装します。", "message": "Wikipedia から引用:<blockquote>HTTP リファラは、要求しているリソースにリンクしたウェブページのアドレスを識別する HTTP ヘッダのフィールドです。<b>リファラはプライバシーを侵害するおそれがあるため、一部の Web ブラウザでは、ユーザーがリファラの送信を無効にすることができます</b>。</blockquote>この設定をオンにすると、HTTP リファラのドメイン名がアクセスしている Web サイトのドメイン名と異なる場合(サードパーティリクエストである場合)、<i>nuTensor</i> は HTTP リファラを偽装します。",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>変更履歴</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>変更履歴</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>ドキュメント</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>ドキュメント</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>パーミッションについて</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>パーミッションについて</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "すべての設定は {{time}} のバックアップデータで上書きされ、uMatrix が再起動します。\n\nバックアップデータで上書きしますか", "message": "すべての設定は {{time}} のバックアップデータで上書きされ、nuTensor が再起動します。\n\nバックアップデータで上書きしますか",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "注意! 設定はすべて削除されます。続行してもよろしいですか?", "message": "注意! 設定はすべて削除されます。続行してもよろしいですか?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "フィルタする",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "エントリの最大数",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "削除した Cookie{{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Cookie の削除に失敗しました:{{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "ブラウザのキャッシュを削除しました",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "リソースを更新しました:{{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix はこのページの読み込みをブロックしています:", "message": "nuTensor はこのページの読み込みをブロックしています:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "以下のルールに従う", "message": "以下のルールに従う",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "変更を適用", "message": "変更を適用",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -12,7 +12,7 @@
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — 로그", "message": "nuTensor — 로그",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "<code><noscript></code> 태그 위조", "message": "<code><noscript></code> 태그 위조",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "모든 임시 변경 사항 초기화", "message": "모든 임시 변경 사항 초기화",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; 통계", "message": "nuTensor &ndash; 통계",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,13 +276,161 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "새로고침", "message": "새로고침",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "필터링",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "쿠키 삭제: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "삭제 못 한 쿠키: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "브라우저 케시 삭제 완료",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "자원 업데이트 완료:{{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "µMatrix &ndash; 설정", "message": "µMatrix &ndash; 설정",
"description": "" "description": ""
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "차단 된 요청과 관련된 페이지 콘텐츠를 숨깁니다.", "message": "차단 된 요청과 관련된 페이지 콘텐츠를 숨깁니다.",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "블랙리스트와 관련된 페이지 콘텐츠 숨김", "message": "블랙리스트와 관련된 페이지 콘텐츠 숨김",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -512,7 +664,7 @@
"description": "header to identify the ruleset files section" "description": "header to identify the ruleset files section"
}, },
"assetsRecipesSummary": { "assetsRecipesSummary": {
"message": "허용 규칙 프리셋은 <b>사용자</b>가 uMatrix 팝업 화면에서 퍼즐 조각 아이콘을 클릭 후 규칙 프리셋을<em>선택 시</em> 적용 됩니다.", "message": "허용 규칙 프리셋은 <b>사용자</b>가 nuTensor 팝업 화면에서 퍼즐 조각 아이콘을 클릭 후 규칙 프리셋을<em>선택 시</em> 적용 됩니다.",
"description": "" "description": ""
}, },
"assetsImportLabel": { "assetsImportLabel": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>변경사항</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>변경사항</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>문서</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>문서</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "{{time}} 에 백업된 데이터가 모든 설정을 덮어쓰기한 뒤, uMatrix이 재시작합니다.\n\n존재하는 모든 설정을 백업 데이터로 덮어쓰시겠습니까?", "message": "{{time}} 에 백업된 데이터가 모든 설정을 덮어쓰기한 뒤, nuTensor이 재시작합니다.\n\n존재하는 모든 설정을 백업 데이터로 덮어쓰시겠습니까?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "주의! 모든 개인설정이 제거됩니다. 정말로 계속하시겠습니까?", "message": "주의! 모든 개인설정이 제거됩니다. 정말로 계속하시겠습니까?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "필터링",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "최대 항목 수",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "쿠키 삭제: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "삭제 못 한 쿠키: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "브라우저 케시 삭제 완료",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "자원 업데이트 완료:{{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix가 다음 페이지를 불러오지 못하게했습니다.", "message": "nuTensor가 다음 페이지를 불러오지 못하게했습니다.",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "다음 규칙에 따라", "message": "다음 규칙에 따라",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "변경사항 적용", "message": "변경사항 적용",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -12,7 +12,7 @@
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "skripts", "message": "skripts",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,13 +276,161 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Atjaunot", "message": "Atjaunot",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "µMatrix &ndash; Iestatījumi", "message": "µMatrix &ndash; Iestatījumi",
"description": "" "description": ""
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Izmaiņu žurnāls</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Izmaiņu žurnāls</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentācija</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentācija</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -607,33 +759,9 @@
"message": "Uzmanību! tiks atcelti visi jūsu izveidotie iestatījumi. Vai vēlaties turpināt?", "message": "Uzmanību! tiks atcelti visi jūsu izveidotie iestatījumi. Vai vēlaties turpināt?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -12,7 +12,7 @@
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "സ്ക്രിപ്റ്റ്", "message": "സ്ക്രിപ്റ്റ്",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "എക്സ്‌എച്ച്ആര്‍", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "എല്ലാ താത്കാലിക മാറ്റങ്ങളും ഉപേക്ഷിക്കുക", "message": "എല്ലാ താത്കാലിക മാറ്റങ്ങളും ഉപേക്ഷിക്കുക",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>മാറ്റത്തിന്റെ കുറിപ്പുകള്‍</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>മാറ്റത്തിന്റെ കുറിപ്പുകള്‍</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix - Instrumentpanel", "message": "nuTensor - Instrumentpanel",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Loggfører", "message": "nuTensor — Loggfører",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "skript", "message": "skript",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Etterlign <code><noscript></code>-merkene", "message": "Etterlign <code><noscript></code>-merkene",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Tilbakestill alle midlertidige endringer", "message": "Tilbakestill alle midlertidige endringer",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistikk", "message": "nuTensor &ndash; Statistikk",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Gjenoppfrisk", "message": "Gjenoppfrisk",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter-uttrykk",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "kake slettet: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "kunne ikke slette kake: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "nettlesermellomlager tømt",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "verdigjenstand oppdatert: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; innstillinger", "message": "nuTensor &ndash; innstillinger",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Fold sammen plassholderen tilhørende blokkerte elementer", "message": "Fold sammen plassholderen tilhørende blokkerte elementer",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Klapp sammen stumtjeneren for svartelistede elementer", "message": "Klapp sammen stumtjeneren for svartelistede elementer",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; personvern", "message": "nuTensor &ndash; personvern",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Endringslogg</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Endringslogg</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentasjon</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentasjon</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Alle dine innstillinger vil bli overskrevet ved bruk av data sikkerhetskopiert {{time}}, og uMatrix vil starte på ny.\n\nOverskriv alle eksisterende innstillinger med sikkerhetskopiert data?", "message": "Alle dine innstillinger vil bli overskrevet ved bruk av data sikkerhetskopiert {{time}}, og nuTensor vil starte på ny.\n\nOverskriv alle eksisterende innstillinger med sikkerhetskopiert data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Advarsel! Dette vil fjerne alle dine egenkomponerte innstillinger. Bekreft at du vil fortsette.", "message": "Advarsel! Dette vil fjerne alle dine egenkomponerte innstillinger. Bekreft at du vil fortsette.",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter-uttrykk",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maksimalt antall oppføringer",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "kake slettet: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "kunne ikke slette kake: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "nettlesermellomlager tømt",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "verdigjenstand oppdatert: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix har forhindret innlasting av følgende side:", "message": "nuTensor har forhindret innlasting av følgende side:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "I kraft av følgende regel", "message": "I kraft av følgende regel",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Bruk endringer", "message": "Bruk endringer",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix Dashboard", "message": "nuTensor Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix Logger", "message": "nuTensor Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "ophalen",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "<code><noscript></code>-tags vervalsen", "message": "<code><noscript></code>-tags vervalsen",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Canonieke namen onthullen",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Alle tijdelijke wijzigingen ongedaan maken", "message": "Alle tijdelijke wijzigingen ongedaan maken",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistieken", "message": "nuTensor &ndash; Statistieken",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Van de meest recente HTTP-aanvragen die door een website zijn gedaan, kunt u de details inspecteren.</p><p>Dit is vooral nuttig voor nieuwsgierige (ook ervaren) gebruikers die willen onderzoeken wat een webpagina precies heeft gedaan. Het registreren van deze HTTP-aanvragen vereist echter geheugen, en als u niets om deze technische informatie geeft, wordt geheugen verspild.</p><p>Vandaar dit veld, waarmee u het maximale aantal meest recente HTTP-aanvragen kunt instellen dat voor nader onderzoek wordt geregistreerd.</p><p>Vul &lsquo;<code>0</code>&rsquo; in om gedetailleerde registratie uit te zetten (en daardoor de geheugenfootprint van <i>uMatrix</i> te verlagen).</p>", "message": "<p>Van de meest recente HTTP-aanvragen die door een website zijn gedaan, kunt u de details inspecteren.</p><p>Dit is vooral nuttig voor nieuwsgierige (ook ervaren) gebruikers die willen onderzoeken wat een webpagina precies heeft gedaan. Het registreren van deze HTTP-aanvragen vereist echter geheugen, en als u niets om deze technische informatie geeft, wordt geheugen verspild.</p><p>Vandaar dit veld, waarmee u het maximale aantal meest recente HTTP-aanvragen kunt instellen dat voor nader onderzoek wordt geregistreerd.</p><p>Vul &lsquo;<code>0</code>&rsquo; in om gedetailleerde registratie uit te zetten (en daardoor de geheugenfootprint van <i>nuTensor</i> te verlagen).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Vernieuwen", "message": "Vernieuwen",
"description": "" "description": ""
}, },
"logAll": {
"message": "Alles",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Achter de schermen",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Huidige tabblad",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "De tabbladinhoud vernieuwen",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filterexpressie(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie verwijderd: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "cookie verwijderen mislukt: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browsercache gewist",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "hosts-bestand bijgewerkt: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Loggerfiltering in-/uitschakelen",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "loggerinhoud filteren",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Het pop-uppaneel in-/uitschakelen",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin-wiki: de logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Logger wissen",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "Logger pauzeren (alle inkomende gegevens negeren)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Logger hervatten",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Opties voor loggerfiltering",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Niet",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "geblokkeerd",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "huidige domein",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "van derden",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "1e/3e partij",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Regel",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Loggervermeldingen die niet aan alle drie de onderstaande voorwaarden voldoen, worden automatisch genegeerd:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Vermeldingen van de laatste {{input}} minuten behouden",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Maximaal {{input}} paginaladingen per tabblad behouden",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Maximaal {{input}} vermeldingen per tabblad behouden",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "{{input}} regels per vermelding in verticaal uitgevouwen modus gebruiken",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "Lijst",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Tabel",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plat",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Instellingen", "message": "nuTensor &ndash; Instellingen",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Tijdelijke aanduiding van geblokkeerde elementen samenvouwen", "message": "Tijdelijke aanduiding van geblokkeerde elementen verbergen",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Tijdelijke aanduiding van geblackliste elementen samenvouwen", "message": "Tijdelijke aanduiding van geblackliste elementen verbergen",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i> voorkomt niet dat geblackliste cookies door uw browser worden ontvangen. Er wordt echter wel voorkomen dat ze uw browser verlaten, wat het belangrijkste is. Het niet blokkeren van cookies voordat ze door uw browser worden ontvangen biedt de mogelijkheid te worden geïnformeerd wanneer een website cookies probeerde te gebruiken, en daarnaast eventueel de inhoud ervan te inspecteren.</p><p>Als deze geblackliste cookies eenmaal door <i>uMatrix</i> zijn verwerkt, kunnen ze desgewenst uit uw browser worden verwijderd.</p><p><b>Belangrijke opmerking:</b> extensies kunnen tijdens hun normale werking webaanvragen doen. Door deze aanvragen kunnen cookies in de browser worden aangemaakt. Als de hostnaam waarvan een cookie afkomstig is zich niet op de whitelist bevindt, zal het cookie als deze optie is aangevinkt door <i>uMatrix</i> uit de browser worden verwijderd. Zorg er daarom voor dat de namen van de hosts waarmee een extensie communiceert zich op de whitelist bevinden.</p>", "message": "<p><i>nuTensor</i> voorkomt niet dat geblackliste cookies door uw browser worden ontvangen. Er wordt echter wel voorkomen dat ze uw browser verlaten, wat het belangrijkste is. Het niet blokkeren van cookies voordat ze door uw browser worden ontvangen biedt de mogelijkheid te worden geïnformeerd wanneer een website cookies probeerde te gebruiken, en daarnaast eventueel de inhoud ervan te inspecteren.</p><p>Als deze geblackliste cookies eenmaal door <i>nuTensor</i> zijn verwerkt, kunnen ze desgewenst uit uw browser worden verwijderd.</p><p><b>Belangrijke opmerking:</b> extensies kunnen tijdens hun normale werking webaanvragen doen. Door deze aanvragen kunnen cookies in de browser worden aangemaakt. Als de hostnaam waarvan een cookie afkomstig is zich niet op de whitelist bevindt, zal het cookie als deze optie is aangevinkt door <i>nuTensor</i> uit de browser worden verwijderd. Zorg er daarom voor dat de namen van de hosts waarmee een extensie communiceert zich op de whitelist bevinden.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Sommige websites zijn er zo op gericht om u te traceren dat ze onvriendelijke trucs gebruiken om maatregelen die u neemt om niet te worden gevolgd te omzeilen.</p><p>Sommige van deze trucs gebruiken<sup>[1, 2]</sup> de <a href='https://en.wikipedia.org/wiki/Web_cache'>browsercache</a>, waarvan de inhoud vaak lang aanwezig is, aangezien gebruikers zelden de tijd nemen om hun browsercache regelmatig te wissen.</p><p>Het regelmatig wissen van de browsercache biedt weinig ongemakken (waarschijnlijk merkt u het niet als dit gebeurt), en het voordeel is dat wordt voorkomen dat deze onaangename trackers inbreuk op uw privacy maken.</p><p>Vink deze optie aan om dit met een gewenst interval door <i>uMatrix</i> te laten doen.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&lsquo;Preventing Web Tracking via the Browser Cache&rsquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&lsquo;Cookieless cookies&rsquo;</a></p>", "message": "<p>Sommige websites zijn er zo op gericht om u te traceren dat ze onvriendelijke trucs gebruiken om maatregelen die u neemt om niet te worden gevolgd te omzeilen.</p><p>Sommige van deze trucs gebruiken<sup>[1, 2]</sup> de <a href='https://en.wikipedia.org/wiki/Web_cache'>browsercache</a>, waarvan de inhoud vaak lang aanwezig is, aangezien gebruikers zelden de tijd nemen om hun browsercache regelmatig te wissen.</p><p>Het regelmatig wissen van de browsercache biedt weinig ongemakken (waarschijnlijk merkt u het niet als dit gebeurt), en het voordeel is dat wordt voorkomen dat deze onaangename trackers inbreuk op uw privacy maken.</p><p>Vink deze optie aan om dit met een gewenst interval door <i>nuTensor</i> te laten doen.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&lsquo;Preventing Web Tracking via the Browser Cache&rsquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&lsquo;Cookieless cookies&rsquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Van Wikipedia:<blockquote>Een HTTP-referer is een HTTP-headerveld dat het adres aanduidt van de webpagina die naar de opgevraagde bron verwijst. ... <b>Omdat referer-informatie de privacy kan schenden, kunnen gebruikers in sommige webbrowsers het verzenden van de referer-informatie uitschakelen.</b></blockquote>Als deze optie is aangevinkt, zal <i>uMatrix</i> de HTTP-referer vervalsen (lees: manipuleren) als de domeinnaam van de HTTP-referer een derde partij is voor de domeinnaam van de netwerkaanvraag.", "message": "Van Wikipedia:<blockquote>Een HTTP-referer is een HTTP-headerveld dat het adres aanduidt van de webpagina die naar de opgevraagde bron verwijst. ... <b>Omdat referer-informatie de privacy kan schenden, kunnen gebruikers in sommige webbrowsers het verzenden van de referer-informatie uitschakelen.</b></blockquote>Als deze optie is aangevinkt, zal <i>nuTensor</i> de HTTP-referer vervalsen (lees: manipuleren) als de domeinnaam van de HTTP-referer een derde partij is voor de domeinnaam van de netwerkaanvraag.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Wijzigingenlogboek</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Wijzigingenlogboek</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentatie</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentatie</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Toestemmingen</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Toestemmingen</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Al uw instellingen zullen met back-upgegevens van {{time}} worden overschreven, en uMatrix zal worden herstart.\n\nWilt u alle bestaande instellingen met back-upgegevens overschrijven?", "message": "Al uw instellingen zullen met back-upgegevens van {{time}} worden overschreven, en nuTensor zal worden herstart.\n\nWilt u alle bestaande instellingen met back-upgegevens overschrijven?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Waarschuwing! Hierdoor worden alle aangepaste instellingen verwijderd. Weet u zeker dat u wilt doorgaan?", "message": "Waarschuwing! Hierdoor worden alle aangepaste instellingen verwijderd. Weet u zeker dat u wilt doorgaan?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filterexpressie(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximale aantal vermeldingen",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie verwijderd: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "cookie verwijderen mislukt: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browsercache gewist",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "hosts-bestand bijgewerkt: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix heeft voorkomen dat de volgende pagina werd geladen:", "message": "nuTensor heeft voorkomen dat de volgende pagina werd geladen:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "vanwege de volgende regel", "message": "vanwege de volgende regel",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Wijzigingen toepassen", "message": "Wijzigingen toepassen",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Kopiëren naar klembord",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix Panel sterowania", "message": "nuTensor Panel sterowania",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Dziennik", "message": "nuTensor — Dziennik",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "skrypt", "message": "skrypt",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Podrabianie tagów <code><noscript></code>", "message": "Podrabianie tagów <code><noscript></code>",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Ujawnij nazwy kanoniczne",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Cofnij wszystkie tymczasowe zmiany", "message": "Cofnij wszystkie tymczasowe zmiany",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statystyki", "message": "nuTensor &ndash; Statystyki",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Możesz kontrolować szczegóły ostatnich żądań HTTP, które zostały wykonane przez daną stronę (zobacz niżej).</p><p>Jest to przydatne dla zaawansowanych użytkowników, którzy chcieliby zobaczyć co dokładnie jest pobierane. Jednakże rejestrowanie żądań HTTP wymaga pamięci RAM, więc jeśli nie zależy Ci na tej technicznej informacji, pamięć jest po prostu marnowana.</p><p>Stąd to pole, które pozwoli Ci dostosować ilość ostatnich żądań HTTP które zostaną zarejestrowane.</p><p>Wpisz &ldquo;<code>0</code>&rdquo;, aby wyłączyć szczegółowe rejestrowanie (dzięki temu zmniejszysz użycie pamięci RAM przez <i>uMatrix</i>).</p>", "message": "<p>Możesz kontrolować szczegóły ostatnich żądań HTTP, które zostały wykonane przez daną stronę (zobacz niżej).</p><p>Jest to przydatne dla zaawansowanych użytkowników, którzy chcieliby zobaczyć co dokładnie jest pobierane. Jednakże rejestrowanie żądań HTTP wymaga pamięci RAM, więc jeśli nie zależy Ci na tej technicznej informacji, pamięć jest po prostu marnowana.</p><p>Stąd to pole, które pozwoli Ci dostosować ilość ostatnich żądań HTTP które zostaną zarejestrowane.</p><p>Wpisz &ldquo;<code>0</code>&rdquo;, aby wyłączyć szczegółowe rejestrowanie (dzięki temu zmniejszysz użycie pamięci RAM przez <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Odśwież", "message": "Odśwież",
"description": "" "description": ""
}, },
"logAll": {
"message": "Wszystkie",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Bez kart",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Aktywna karta",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Przeładuj zawartość karty",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filtruj wpisy dziennika",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "ciastko usunięte: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Nie udało się usunąć ciasteczka: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "pamięć podręczna przeglądarki wyczyszczona",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "zaktualizowano: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Przełącz filtrowanie rejestru",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filtruj zawartość rejestru",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Przełącz panel popup",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: Rejestrator",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Wyczyść rejestr",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "Pauzuj rejestrowanie (porzuć wszystkie przychodzące dane)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Wznów rejestrowanie",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Opcje filtrowania rejestru",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Nie",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "zablokowane",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "własna domena",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "domeny trzecie",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Szczegóły",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Kontekst",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Lokalność",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Typ",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "Adres URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Reguła",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Wpisy rejestru nie spełniające wszystkich trzech warunków będą automatycznie porzucane:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Zachowuj wpisy z ostatnich {{input}} minut",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Zachowuj nie więcej niż {{input}} przeładowań strony na kartę",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Zachowuj nie więcej niż {{input}} wpisów na kartę",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Użyj {{input}} linie na wpis w widoku poszerzonym",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "Lista",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Tabela",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Bez formatowania",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Ustawienia", "message": "nuTensor &ndash; Ustawienia",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Ukryj symbole zastępcze zablokowanych elementów", "message": "Ukryj pozostałości po zablokowanych elementach",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Ukryj symbole zastępcze czarno-listowanych elementów", "message": "Ukryj pozostałości po elementach na czarnej liście",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Prywatność", "message": "nuTensor &ndash; Prywatność",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i>nie zapobiega dostawaniu się ciasteczek z czarnej listy do twojej przeglądarki. Jednakże zapobiega opuszczaniu jej przez nie, co ostatecznie się liczy. Nieblokowanie ciasteczek zanim dotrą do twojej przeglądarki, daje możliwość poinformowania cię gdy strona próbuje używać ciastek, a nawet pozwala przejrzeć ich zawartość gdy tego chcesz.</p><p>Kiedy te czarnolistowane ciasteczka zostaną sklasyfikowane przez <i>uMatrix</i>, mogą, jeśli sobie tego życzysz, zostać usunięte z przeglądarki.</p><p><b>Ważna informacja:</b> Rozszerzenia mogą wykonywać żądania sieciowe podczas ich normalnej pracy. Te żądania mogą spowodować zapisanie ciasteczek w przeglądarce. Jeśli nazwa hosta z której pochodzi ciasteczko nie jest na białej liście, ciasteczko zostanie usunięte z przeglądarki przez <i>uMatrix</i> jeśli ta opcja jest zaznaczona. Upewnij się, że nazwy hostów z którymi komunikuje się rozszerzenie są na białej liście.</p>", "message": "<p><i>nuTensor</i>nie zapobiega dostawaniu się ciasteczek z czarnej listy do twojej przeglądarki. Jednakże zapobiega opuszczaniu jej przez nie, co ostatecznie się liczy. Nieblokowanie ciasteczek zanim dotrą do twojej przeglądarki, daje możliwość poinformowania cię gdy strona próbuje używać ciastek, a nawet pozwala przejrzeć ich zawartość gdy tego chcesz.</p><p>Kiedy te czarnolistowane ciasteczka zostaną sklasyfikowane przez <i>nuTensor</i>, mogą, jeśli sobie tego życzysz, zostać usunięte z przeglądarki.</p><p><b>Ważna informacja:</b> Rozszerzenia mogą wykonywać żądania sieciowe podczas ich normalnej pracy. Te żądania mogą spowodować zapisanie ciasteczek w przeglądarce. Jeśli nazwa hosta z której pochodzi ciasteczko nie jest na białej liście, ciasteczko zostanie usunięte z przeglądarki przez <i>nuTensor</i> jeśli ta opcja jest zaznaczona. Upewnij się, że nazwy hostów z którymi komunikuje się rozszerzenie są na białej liście.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Niektóre witryny internetowe są tak zdecydowane by cię śledzić, że używają niezbyt ładnych trików aby obejść jakiekolwiek zabezpieczenia zastosujesz, by nie być śledzonym.</p><p>Kilka z tych trików<sup>[1, 2]</sup> opiera się na wykorzystaniu <a href='https://en.wikipedia.org/wiki/Web_cache'>pamięci podręcznej przeglądarki [ang.]</a>, której zawartość jest często dostępna bardzo długo, ponieważ użytkownicy rzadko ją usuwają.</p><p>Wady regularnego czyszczenia pamięci podręcznej są niewielkie (prawdopodobnie nie zauważysz, gdy to się stanie), a zaletą jest zapobieganie tym nieznośnym szpiegom naruszania twojej prywatności.</p><p>Zaznacz tą opcję by <i>uMatrix</i> robił to za ciebie, z częstotliwością jaką sobie życzysz.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Zapobieganie śledzeniu z wykorzystaniem pamięci podręcznej przeglądarki&rdquo; [ang.]</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Bezciasteczkowe ciasteczka&rdquo;[ang.]</a></p>", "message": "<p>Niektóre witryny internetowe są tak zdecydowane by cię śledzić, że używają niezbyt ładnych trików aby obejść jakiekolwiek zabezpieczenia zastosujesz, by nie być śledzonym.</p><p>Kilka z tych trików<sup>[1, 2]</sup> opiera się na wykorzystaniu <a href='https://en.wikipedia.org/wiki/Web_cache'>pamięci podręcznej przeglądarki [ang.]</a>, której zawartość jest często dostępna bardzo długo, ponieważ użytkownicy rzadko ją usuwają.</p><p>Wady regularnego czyszczenia pamięci podręcznej są niewielkie (prawdopodobnie nie zauważysz, gdy to się stanie), a zaletą jest zapobieganie tym nieznośnym szpiegom naruszania twojej prywatności.</p><p>Zaznacz tą opcję by <i>nuTensor</i> robił to za ciebie, z częstotliwością jaką sobie życzysz.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Zapobieganie śledzeniu z wykorzystaniem pamięci podręcznej przeglądarki&rdquo; [ang.]</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Bezciasteczkowe ciasteczka&rdquo;[ang.]</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Z Wikipedii [ang.]:<blockquote>HTTP referer jest nagłówkiem HTTP który identyfikuje adres strony która linkuje do zasobu będącego wywoływanym. ... <b>Ponieważ informacje o stronie odsyłającej mogą zagrażać prywatności, niektóre przeglądarki pozwalają na wyłączenie wysyłania tej informacji.</b></blockquote>Jeśli ta opcja jest zaznaczona, <i>uMatrix</i> będzie fałszował informację o refererze jeśli domena referera jest inna niż domena żądania sieciowego.", "message": "Z Wikipedii [ang.]:<blockquote>HTTP referer jest nagłówkiem HTTP który identyfikuje adres strony która linkuje do zasobu będącego wywoływanym. ... <b>Ponieważ informacje o stronie odsyłającej mogą zagrażać prywatności, niektóre przeglądarki pozwalają na wyłączenie wysyłania tej informacji.</b></blockquote>Jeśli ta opcja jest zaznaczona, <i>nuTensor</i> będzie fałszował informację o refererze jeśli domena referera jest inna niż domena żądania sieciowego.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Historia zmian</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Historia zmian</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentacja</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentacja</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Uprawnienia</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Uprawnienia</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Wszystkie ustawienia zostaną nadpisane danymi z kopii z {{time}}, a następnie uMatrix zostanie zrestartowany.\n\nNadpisać aktualne ustawienia używając danych z kopii?", "message": "Wszystkie ustawienia zostaną nadpisane danymi z kopii z {{time}}, a następnie nuTensor zostanie zrestartowany.\n\nNadpisać aktualne ustawienia używając danych z kopii?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Uwaga! Twoje ustawienia zostaną usunięte. Czy na pewno chcesz kontynuować?", "message": "Uwaga! Twoje ustawienia zostaną usunięte. Czy na pewno chcesz kontynuować?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filtruj wpisy dziennika",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maksymalna ilość wpisów",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "ciastko usunięte: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "Nie udało się usunąć ciasteczka: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "pamięć podręczna przeglądarki wyczyszczona",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "zaktualizowano: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix nie pozwolił załadować się następującej stronie:", "message": "nuTensor nie pozwolił załadować się następującej stronie:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Z powodu tej reguły", "message": "Z powodu tej reguły",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Zastosuj zmiany", "message": "Zastosuj zmiany",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Kopiuj do schowka",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Painel de controle", "message": "nuTensor — Painel de controle",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Registro", "message": "nuTensor — Registro",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Disfarçar <code><noscript></code> tags", "message": "Disfarçar <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Revelar nomes canônicos",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Reverter todas as mudanças temporárias", "message": "Reverter todas as mudanças temporárias",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Estatísticas", "message": "nuTensor &ndash; Estatísticas",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p> Você pode inspecionar os detalhes das mais recentes solicitações HTTP matérias que têm sido feitas por uma página web (veja abaixo). </p><p> Isto é útil para usuários avançados que querem investigar exatamente o que uma página da web tem vindo a fazer. Mas registrando essas solicitações HTTP requer memória, e se você não se preocupa com esta informação técnica, a memória está sendo desperdiçado. </p><p> Por isso, neste domínio, que permite ajustar o número máximo das mais recentes solicitações HTTP que deve ser registada para inspeção adicional </p><p> Digite &ldquo;.<code>0</code>&rdquo; para desativar o log detalhado (e, consequentemente, reduzir o consumo de memória de <i>uMatrix</i>).</p>", "message": "<p> Você pode inspecionar os detalhes das mais recentes solicitações HTTP matérias que têm sido feitas por uma página web (veja abaixo). </p><p> Isto é útil para usuários avançados que querem investigar exatamente o que uma página da web tem vindo a fazer. Mas registrando essas solicitações HTTP requer memória, e se você não se preocupa com esta informação técnica, a memória está sendo desperdiçado. </p><p> Por isso, neste domínio, que permite ajustar o número máximo das mais recentes solicitações HTTP que deve ser registada para inspeção adicional </p><p> Digite &ldquo;.<code>0</code>&rdquo; para desativar o log detalhado (e, consequentemente, reduzir o consumo de memória de <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Atualizar", "message": "Atualizar",
"description": "" "description": ""
}, },
"logAll": {
"message": "Tudo",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Sem aba",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Aba atual",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Recarregar o conteúdo da aba",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filtrar expressão(ões)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie apagado: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "falha ao apagar cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "cache do navegador limpo",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "recurso atualizado: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Alternar filtragem no registro",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filtrar conteúdo do registro",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Alternar o painel do pop-up",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: Registros",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Limpar registro",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "Pausar registro (descartar todos dados de entrada)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Despausar registro",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Opções de filtragem do registro",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Não",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "bloqueado",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1º nível",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3º nível",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Detalhes",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Contexto",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Sem nível",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Tipo",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Regra",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Entradas no registro que não preenchem todas três condições abaixo irão ser automaticamente descartadas:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preservar entradas dos últimos {{input}} minutos",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preservar, no máximo, {{input}} páginas carregadas por aba",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preservar, no máximo, {{input}} entradas por aba",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Usar {{input}} linhas por entrada no modo expandido verticalmente",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "Lista",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Tabela",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plano",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Configurações", "message": "nuTensor &ndash; Configurações",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Agrupar espaços reservados a elementos bloqueados", "message": "Ocultar espaços de elementos bloqueados",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Agrupar espaços reservados a elementos da lista negra", "message": "Ocultar espaços de elementos da lista negra",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacidade", "message": "nuTensor &ndash; Privacidade",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Cookies na lista negra não são impedidos pelo <i>uMatrix</i> de entrar em seu navegador. No entanto, eles estão impedidos de ficar no seu navegador, que é o que realmente importa. Não bloquear os cookies antes de introduzir o seu navegador lhe dá a oportunidade de ser informado de que um site tentou usar cookies, e, além disso, para inspecionar o seu conteúdo, se desejar.</p><p>Uma vez que esses cookies lista negra foram contabilizados por <i>uMatrix</i>, eles podem ser removidos do seu navegador, se assim o desejar.</p><p><b>Nota importante:</b> As extensões podem fazer solicitações da web durante o curso de sua operação normal. Estes pedidos podem resultar em cookies que está sendo criado no navegador. Se o nome da máquina a partir de onde se originam um biscoito não está na lista branca, o cookie será removido a partir do navegador pelo <i>uMatrix</i> se esta opção estiver marcada. Então não se esqueça que o nome da máquina (s) com que uma extensão comunicar está na lista branca.</p>", "message": "<p>Cookies na lista negra não são impedidos pelo <i>nuTensor</i> de entrar em seu navegador. No entanto, eles estão impedidos de ficar no seu navegador, que é o que realmente importa. Não bloquear os cookies antes de introduzir o seu navegador lhe dá a oportunidade de ser informado de que um site tentou usar cookies, e, além disso, para inspecionar o seu conteúdo, se desejar.</p><p>Uma vez que esses cookies lista negra foram contabilizados por <i>nuTensor</i>, eles podem ser removidos do seu navegador, se assim o desejar.</p><p><b>Nota importante:</b> As extensões podem fazer solicitações da web durante o curso de sua operação normal. Estes pedidos podem resultar em cookies que está sendo criado no navegador. Se o nome da máquina a partir de onde se originam um biscoito não está na lista branca, o cookie será removido a partir do navegador pelo <i>nuTensor</i> se esta opção estiver marcada. Então não se esqueça que o nome da máquina (s) com que uma extensão comunicar está na lista branca.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Alguns sites são realmente empenhados no seu rastreamento, tanto que eles vão usar truques não tão agradáveis para contornar as medidas de tomar, de modo a não ser rastreado.</p><p>Alguns desses truques é usar<sup>[1, 2]</sup> no <a href='https://en.wikipedia.org/wiki/Web_cache'>cache do navegador</a>, que o conteúdo é muitas vezes de longa duração já que raramente os usuários irão perder seu tempo para limpar regularmente o cache de seu navegador.</p><p>Há pouco inconveniente em limpar o cache do navegador regularmente (mais provável é que você não vai notar quando isso acontece), e o benefício é para evitar que esses rastreadores detestáveis de invadir a sua privacidade.</p><p>Marque esta opção para o <i>uMatrix</i> fazer isso por você, no intervalo que você desejar.</p><p>[1]<a\nhref='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Alguns sites são realmente empenhados no seu rastreamento, tanto que eles vão usar truques não tão agradáveis para contornar as medidas de tomar, de modo a não ser rastreado.</p><p>Alguns desses truques é usar<sup>[1, 2]</sup> no <a href='https://en.wikipedia.org/wiki/Web_cache'>cache do navegador</a>, que o conteúdo é muitas vezes de longa duração já que raramente os usuários irão perder seu tempo para limpar regularmente o cache de seu navegador.</p><p>Há pouco inconveniente em limpar o cache do navegador regularmente (mais provável é que você não vai notar quando isso acontece), e o benefício é para evitar que esses rastreadores detestáveis de invadir a sua privacidade.</p><p>Marque esta opção para o <i>nuTensor</i> fazer isso por você, no intervalo que você desejar.</p><p>[1]<a\nhref='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Do Wikipedia:<blockquote>HTTP referer é um campo de cabeçalho HTTP que identifica o endereço da página que ligado ao recurso que está sendo solicitado. ... <b>Porque a informação do referer pode violar a privacidade, alguns navegadores da Web permitem que o usuário desativar o envio de informações do referer.</b></blockquote>Se essa configuração for selecionada, <i>uMatrix</i> irá remover as informações HTTP referer se o nome do domínio do HTTP referrer é de terceiros para o nome de domínio da solicitação.", "message": "Do Wikipedia:<blockquote>HTTP referer é um campo de cabeçalho HTTP que identifica o endereço da página que ligado ao recurso que está sendo solicitado. ... <b>Porque a informação do referer pode violar a privacidade, alguns navegadores da Web permitem que o usuário desativar o envio de informações do referer.</b></blockquote>Se essa configuração for selecionada, <i>nuTensor</i> irá remover as informações HTTP referer se o nome do domínio do HTTP referrer é de terceiros para o nome de domínio da solicitação.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -476,7 +628,7 @@
"description": "" "description": ""
}, },
"hostsFilesAutoUpdatePrompt": { "hostsFilesAutoUpdatePrompt": {
"message": "Autoatualizar recursos", "message": "Auto-atualizar recursos",
"description": "" "description": ""
}, },
"hostsFilesUpdateNow": { "hostsFilesUpdateNow": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Registro de alterações</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Registro de alterações</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentação</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentação</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissões</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissões</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Todas as suas definições irão ser sobrescritas pelos dados salvos em {{time}}, e o uMatrix irá reiniciar.\n\nSubstituir todas a configuração atual usando dados de backup?", "message": "Todas as suas definições irão ser sobrescritas pelos dados salvos em {{time}}, e o nuTensor irá reiniciar.\n\nSubstituir todas a configuração atual usando dados de backup?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Aviso! Isso irá remover todas as suas configurações personalizadas. Você está certo de que deseja continuar?", "message": "Aviso! Isso irá remover todas as suas configurações personalizadas. Você está certo de que deseja continuar?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filtrar expressão(ões)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Número máximo de entradas",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie apagado: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "falha ao apagar cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "cache do navegador limpo",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "recurso atualizado: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix impediu que a seguinte página fosse carregada:", "message": "nuTensor impediu que a seguinte página fosse carregada:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Devido à seguinte regra", "message": "Devido à seguinte regra",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Aplicar mudanças", "message": "Aplicar mudanças",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copiar para área de transferência",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Painel", "message": "nuTensor — Painel",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Registos", "message": "nuTensor — Registos",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Reverter todas as modificações temporárias", "message": "Reverter todas as modificações temporárias",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Estatísticas", "message": "nuTensor &ndash; Estatísticas",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Pode inspecionar os detalhes brutos dos mais recentes pedidos HTTP que foram feitos pela página web (ver em baixo).</p><p>Isto é útil principalmente para utilizadores avançados que querem investigar precisamente o que cada página web tem feito. No entanto, registar esses pedidos HTTP requere memória, e se não se interessa por esta especificação técnica, então memória está a ser consumida.</p><p>Daí este campo, que deixa ajustar o número máximo de pedidos HTTP recentes que são registados para inspecção futura.</p><p>Escreve &ldquo;<code>0</code>&rdquo; para desactivar o registo detalhado (e consequentemente reduzir a pegada da memória do <i>uMatrix</i>).</p>", "message": "<p>Pode inspecionar os detalhes brutos dos mais recentes pedidos HTTP que foram feitos pela página web (ver em baixo).</p><p>Isto é útil principalmente para utilizadores avançados que querem investigar precisamente o que cada página web tem feito. No entanto, registar esses pedidos HTTP requere memória, e se não se interessa por esta especificação técnica, então memória está a ser consumida.</p><p>Daí este campo, que deixa ajustar o número máximo de pedidos HTTP recentes que são registados para inspecção futura.</p><p>Escreve &ldquo;<code>0</code>&rdquo; para desactivar o registo detalhado (e consequentemente reduzir a pegada da memória do <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Atualizar", "message": "Atualizar",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filtrar expressão(ões)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie apagado: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "falha ao eliminar cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "cache do browser apagada",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "recurso actualizado: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Definições", "message": "nuTensor &ndash; Definições",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,10 +473,10 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Colapsar espaço reservado dos elementos bloqueados ", "message": "Colapsar espaço reservado dos elementos bloqueados ",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacidade", "message": "nuTensor &ndash; Privacidade",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Cookies na lista negra não são proibídos pelo <i>uMatrix</i> de entrar no seu browser. No entanto, são proibídos de sair do seu browser, que é o que realmente importa. Não proibir cookies de entrarem no seu browser dá-lhe a oportunidade de ser informado que um site tentou usá-los, e poderá inspeccionar os seus conteúdos, se assim o quiser.</p><p>Uma vez que estes cookies da lista negra tenham sido registados pelo <i>uMatrix</i>, podem ser removidos do seu browser, se assim o desejar.</p><p><b>Nota importante:</b> Extensões podem fazer pedidos web durante o seu decurso normal de operação. Estes pedidos podem resultar na criação de cookies no seu browser. Se o domínio de onde o cookie provém estiver na lista negra, este será removido do browser pelo <i>uMatrix</i>, se esta opção estiver seleccionada. Portanto confirme que o nome do(s) site(s) com o(s) quais a extensão comunica não está(ão) na lista negra.</p>", "message": "<p>Cookies na lista negra não são proibídos pelo <i>nuTensor</i> de entrar no seu browser. No entanto, são proibídos de sair do seu browser, que é o que realmente importa. Não proibir cookies de entrarem no seu browser dá-lhe a oportunidade de ser informado que um site tentou usá-los, e poderá inspeccionar os seus conteúdos, se assim o quiser.</p><p>Uma vez que estes cookies da lista negra tenham sido registados pelo <i>nuTensor</i>, podem ser removidos do seu browser, se assim o desejar.</p><p><b>Nota importante:</b> Extensões podem fazer pedidos web durante o seu decurso normal de operação. Estes pedidos podem resultar na criação de cookies no seu browser. Se o domínio de onde o cookie provém estiver na lista negra, este será removido do browser pelo <i>nuTensor</i>, se esta opção estiver seleccionada. Portanto confirme que o nome do(s) site(s) com o(s) quais a extensão comunica não está(ão) na lista negra.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Alguns sites estão realmente empenhados em o monitorizar. Tanto, que por vezes usam truques sujos para contornar as medidas que pôs em prática para não o ser.</p><p>Alguns desses truques dependem<sup>[1, 2]</sup> da <a href='https://pt.wikipedia.org/wiki/Web_cache'>cache do navegador</a>, cujo conteúdo costuma durar, pois a maioria dos utilizadores raramente perde tempo para a limpar.</p><p>Há pouca inconveniência em limpar a cache do navegador (a probabilidade é de nem reparar quando acontece) e o benefício é impedir esses trackers desagradáveis de invadirem a sua privacidade.</p><p>Selecione esta opção para que o <i>uMatrix</i> o faça por si, num intervalo de tempo regular.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Impedir monitorização na web através da cache do navegador&rdquo;</a> [2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Alguns sites estão realmente empenhados em o monitorizar. Tanto, que por vezes usam truques sujos para contornar as medidas que pôs em prática para não o ser.</p><p>Alguns desses truques dependem<sup>[1, 2]</sup> da <a href='https://pt.wikipedia.org/wiki/Web_cache'>cache do navegador</a>, cujo conteúdo costuma durar, pois a maioria dos utilizadores raramente perde tempo para a limpar.</p><p>Há pouca inconveniência em limpar a cache do navegador (a probabilidade é de nem reparar quando acontece) e o benefício é impedir esses trackers desagradáveis de invadirem a sua privacidade.</p><p>Selecione esta opção para que o <i>nuTensor</i> o faça por si, num intervalo de tempo regular.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Impedir monitorização na web através da cache do navegador&rdquo;</a> [2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Da Wikipédia: <blockquote>HTTP referrer é um campo de cabeçalho HTTP que identifica o endereço da página web que liga ao recurso solicitado. Pela verificação do referer, a nova página web pode ver de onde a requisição se originou. <b>Pelo facto desta informação poder violar a privacidade, alguns navegadores deixam que o utilizador desative o envio da informação do referrer. </b></blockquote>Se esta opção estiver selecionada, o <i>uMatrix</i> irá falsificar a informação do HTTP referrer, se o nome do domínio do mesmo for parte de um domínio de terceiros, relativamente ao nome do domínio do pedido original.", "message": "Da Wikipédia: <blockquote>HTTP referrer é um campo de cabeçalho HTTP que identifica o endereço da página web que liga ao recurso solicitado. Pela verificação do referer, a nova página web pode ver de onde a requisição se originou. <b>Pelo facto desta informação poder violar a privacidade, alguns navegadores deixam que o utilizador desative o envio da informação do referrer. </b></blockquote>Se esta opção estiver selecionada, o <i>nuTensor</i> irá falsificar a informação do HTTP referrer, se o nome do domínio do mesmo for parte de um domínio de terceiros, relativamente ao nome do domínio do pedido original.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentação</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentação</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Todas as suas definições irão ser substituídas usando a cópia de segurança guardada em {{time}}, e o uMatrix irá-se reiniciar.\n\nSubstituir configuração existente usando dados da cópia de segurança?", "message": "Todas as suas definições irão ser substituídas usando a cópia de segurança guardada em {{time}}, e o nuTensor irá-se reiniciar.\n\nSubstituir configuração existente usando dados da cópia de segurança?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Aviso! isto irá remover todas as sua definições. Tem a certeza que pretende proceder?", "message": "Aviso! isto irá remover todas as sua definições. Tem a certeza que pretende proceder?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filtrar expressão(ões)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Número máximo de entradas",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie apagado: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "falha ao eliminar cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "cache do browser apagada",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "recurso actualizado: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix impediu a seguinte página de ser carregada:", "message": "nuTensor impediu a seguinte página de ser carregada:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Devido à seguinte regra", "message": "Devido à seguinte regra",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Aplicar alterações", "message": "Aplicar alterações",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Panou de control", "message": "nuTensor — Panou de control",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Elimină toate modificările temporare", "message": "Elimină toate modificările temporare",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistici", "message": "nuTensor &ndash; Statistici",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Reîncarcă", "message": "Reîncarcă",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie șters: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Jurnalul de modificări</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Jurnalul de modificări</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentație</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentație</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie șters: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Панель управления", "message": "nuTensor — Панель управления",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Журнал сетевых запросов", "message": "nuTensor — Журнал сетевых запросов",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Подмена <code><noscript></code> тегов", "message": "Подмена <code><noscript></code> тегов",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Показать каноничные имена",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Отменить все временные изменения", "message": "Отменить все временные изменения",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Статистика", "message": "nuTensor &ndash; Статистика",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Вы можете детально изучить последние необработанные HTTP запросы, которые были сделаны веб-страницей (см. ниже).</p><p>Это особенно полезно для продвинутых пользователей, которые хотят узнать, что конкретно делала веб-страница. Однако журналирование этих HTTP запросов увеличивает потребление памяти, и если вас не интересует эта техническая информация, то это - трата памяти.</p><p>Это поле позволяет вам настроить максимальное число последних HTTP запросов, которые будут храниться в журнале для последующего изучения.</p><p>Введите &ldquo;<code>0</code>&rdquo; чтобы отключить журналирование (и соответственно уменьшить потребление памяти <i>uMatrix</i>).</p>", "message": "<p>Вы можете детально изучить последние необработанные HTTP запросы, которые были сделаны веб-страницей (см. ниже).</p><p>Это особенно полезно для продвинутых пользователей, которые хотят узнать, что конкретно делала веб-страница. Однако журналирование этих HTTP запросов увеличивает потребление памяти, и если вас не интересует эта техническая информация, то это - трата памяти.</p><p>Это поле позволяет вам настроить максимальное число последних HTTP запросов, которые будут храниться в журнале для последующего изучения.</p><p>Введите &ldquo;<code>0</code>&rdquo; чтобы отключить журналирование (и соответственно уменьшить потребление памяти <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Обновить", "message": "Обновить",
"description": "" "description": ""
}, },
"logAll": {
"message": "Все",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Без вкладки",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Текущая вкладка",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Перезагрузить содержимое вкладки",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "фильтровать выражение(я)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie удалено: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "не удалось удалить куки: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "кэш браузера очищен",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "актив обновлен: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Вкл/Выкл фильтрацию логгера",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "фильтровать содержимое логгера",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Вкл/Выкл всплывающую панель",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: Логгер",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Очистить логгер",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "Поставить логгер на паузу (отбрасывать все входящие данные)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Снять логгер с паузы",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Настройки фильтрации логгера",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Детали",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Контекст",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Источник",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Тип",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Правило",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Записи логгера, которые не удовлетворяют всем трем нижестоящим условиям будут автоматически отброшены:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Сохранять записи за последние {{input}} минут",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Сохранять не больше {{input}} загрузок страницы для каждой вкладки",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Сохранять не больше {{input}} записей для каждой вкладки",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Использовать {{input}} строк для каждой записи при режиме вертикального расширения",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "Список",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Таблица",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Без форматирования",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Настройки", "message": "nuTensor &ndash; Настройки",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Скрывать заполнитель заблокированных элементов", "message": "Скрывать оставшееся от заблокированных элементов место",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Скрывать заполнитель элементов из чёрного списка", "message": "Скрывать оставшееся место от элементов из черного списка",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Приватность", "message": "nuTensor &ndash; Приватность",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Запрещенные куки не блокируются <i>uMatrix</i> при входе в ваш браузер. Однако их передача из браузера предотвращается - вот что действительно важно. Неблокировка куки файлов до того, как они сохраняются браузером дает вам возможность узнать, что сайт пытался использовать куки, и потом изучить их содержимое, если вы хотите.</p><p>Как только эти запрещенные куки составлены <i>uMatrix</i>, они могут быть удалены из браузера, по вашему желанию.</p><p><b>Важное замечание:</b> Расширения могут осуществлять веб-запросы во время своей обычной работы. Эти запросы могут порождать создание куки файлов в браузере. Если имя хоста (сайта), от которого создается куки не в белом списке, то <i>uMatrix</i> удалит эти куки из браузера, если эта опция включена. Поэтому убедитесь, что имена хостов (сайтов) с которыми соединяется расширение добавлено в белый список.</p>", "message": "<p>Запрещенные куки не блокируются <i>nuTensor</i> при входе в ваш браузер. Однако их передача из браузера предотвращается - вот что действительно важно. Неблокировка куки файлов до того, как они сохраняются браузером дает вам возможность узнать, что сайт пытался использовать куки, и потом изучить их содержимое, если вы хотите.</p><p>Как только эти запрещенные куки составлены <i>nuTensor</i>, они могут быть удалены из браузера, по вашему желанию.</p><p><b>Важное замечание:</b> Расширения могут осуществлять веб-запросы во время своей обычной работы. Эти запросы могут порождать создание куки файлов в браузере. Если имя хоста (сайта), от которого создается куки не в белом списке, то <i>nuTensor</i> удалит эти куки из браузера, если эта опция включена. Поэтому убедитесь, что имена хостов (сайтов) с которыми соединяется расширение добавлено в белый список.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Некоторые сайты идут на всевозможные ухищрения для того, чтобы обойти любые меры, предпринятые для защиты от отслеживания.</p><p>Некоторые ухищрения основаны<sup>[1, 2]</sup> на использовании <a href='https://en.wikipedia.org/wiki/Web_cache'>кэша браузера</a>, содержимое которого зачастую хранится длительное время, потому что пользователи нерегулярно его очищают.</p><p>Регулярная очистка кэша предотвращает отслеживание, однако делать это вручную не всегда удобно.</p><p>Включение данной опции позволит <i>uMatrix</i> делать это за вас с заданным интервалом времени.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Некоторые сайты идут на всевозможные ухищрения для того, чтобы обойти любые меры, предпринятые для защиты от отслеживания.</p><p>Некоторые ухищрения основаны<sup>[1, 2]</sup> на использовании <a href='https://en.wikipedia.org/wiki/Web_cache'>кэша браузера</a>, содержимое которого зачастую хранится длительное время, потому что пользователи нерегулярно его очищают.</p><p>Регулярная очистка кэша предотвращает отслеживание, однако делать это вручную не всегда удобно.</p><p>Включение данной опции позволит <i>nuTensor</i> делать это за вас с заданным интервалом времени.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Материал из Википедии:<blockquote>HTTP referer — это HTTP заголовок, который указывает адрес страницы, содержащей ссылку на запрошенный ресурс. ... <b>Поскольку эта информация может нарушать конфиденциальность, некоторые браузеры позволяют запретить её передачу.</b></blockquote>Если эта опция включена, <i>uMatrix</i> будет подменять HTTP referer, если сайт, указанный в HTTP referer, является сторонним по отношению к запрашиваемому ресурсу.", "message": "Материал из Википедии:<blockquote>HTTP referer — это HTTP заголовок, который указывает адрес страницы, содержащей ссылку на запрошенный ресурс. ... <b>Поскольку эта информация может нарушать конфиденциальность, некоторые браузеры позволяют запретить её передачу.</b></blockquote>Если эта опция включена, <i>nuTensor</i> будет подменять HTTP referer, если сайт, указанный в HTTP referer, является сторонним по отношению к запрашиваемому ресурсу.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Список изменений</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Список изменений</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Документация</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Документация</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Разрешения</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Разрешения</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Все ваши настройки будут перезаписаны резервными данными от {{time}}, и uMatrix перезагрузится.\n\nИзменить все настройки, используя эту резервную копию?", "message": "Все ваши настройки будут перезаписаны резервными данными от {{time}}, и nuTensor перезагрузится.\n\nИзменить все настройки, используя эту резервную копию?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Внимание! Это сбросит все ваши ручные настройки. Вы уверены, что хотите продолжить?", "message": "Внимание! Это сбросит все ваши ручные настройки. Вы уверены, что хотите продолжить?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "фильтровать выражение(я)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Максимальное число записей",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie удалено: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "не удалось удалить куки: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "кэш браузера очищен",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "актив обновлен: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix предотвратил загрузку следующей страницы:", "message": "nuTensor предотвратил загрузку следующей страницы:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Из-за следующего правила", "message": "Из-за следующего правила",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Применить изменения", "message": "Применить изменения",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Скопировать в буфер обмена",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Nadzorna plošča", "message": "nuTensor — Nadzorna plošča",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "skript", "message": "skript",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Контролна табла", "message": "nuTensor — Контролна табла",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Евиденција", "message": "nuTensor — Евиденција",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "скрипта", "message": "скрипта",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Лажирање <code><noscript></code> тагова", "message": "Лажирање <code><noscript></code> тагова",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Врати све привремене измене", "message": "Врати све привремене измене",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Статистика", "message": "nuTensor &ndash; Статистика",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Можете прегледати детаље најновијих HTTP захтева креираних од стране веб странице (видети испод).</p><p>Ово је нарочито корисно напредним корисницима који желе да сазнају шта је тачно страница радила. Али за евидентирање ових HTTP захтева потребна је меморија, па ако вам није битна ова техничка информација, то значи повећање заузећа меморије.</p><p>Дакле, ово поље вам омогућава да подесите максимални број најновијих HTTP захтева које треба да се евидентирају ради даљег испитивања.</p><p>Унесите &ldquo;<code>0</code>&rdquo; за искључивање детаљног евидентирања (и смањења заузећа меморије од стране додатка <i>uMatrix</i>).</p>", "message": "<p>Можете прегледати детаље најновијих HTTP захтева креираних од стране веб странице (видети испод).</p><p>Ово је нарочито корисно напредним корисницима који желе да сазнају шта је тачно страница радила. Али за евидентирање ових HTTP захтева потребна је меморија, па ако вам није битна ова техничка информација, то значи повећање заузећа меморије.</p><p>Дакле, ово поље вам омогућава да подесите максимални број најновијих HTTP захтева које треба да се евидентирају ради даљег испитивања.</p><p>Унесите &ldquo;<code>0</code>&rdquo; за искључивање детаљног евидентирања (и смањења заузећа меморије од стране додатка <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Освежи", "message": "Освежи",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "филтрирање израза",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "колачића избрисано: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "неуспелих брисања колачића: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "кеш прегледача очишћен",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "ажурираних средстава: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Подешавања", "message": "nuTensor &ndash; Подешавања",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Скупи држач блокираних елемената", "message": "Скупи држач блокираних елемената",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Скупи држач елемената на црној листи", "message": "Скупи држач елемената на црној листи",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Приватност", "message": "nuTensor &ndash; Приватност",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i> не спречава улазак блокираних колачића у ваш прегледач али их спречава да га напусте и то је оно што је у ствари важно. Неблокирање колачића пре него што уђу у прегледач вам даје могућност да будете упознати са тим да сајт покушава да користи колачиће, као и да испитујете њихов садржај, уколико то желите.</p><p>Чим <i>uMatrix</i> обрачуна ове колачиће, можете их уклонити ако то желите.</p><p><b>Важна напомена</b>Проширења могу креирати веб захтеве током свог нормалног рада. Ови захтеви могу довести до креирања колачића у прегледачу. Ако сајт одакле потиче колачић није на белој листи, онда ће <i>uMatrix</i> уклонити колачић из прегледача ако је ова опција омогућена. Зато будите сигурни да сајт са којим проширење комуницира буде на белој листи.</p>", "message": "<p><i>nuTensor</i> не спречава улазак блокираних колачића у ваш прегледач али их спречава да га напусте и то је оно што је у ствари важно. Неблокирање колачића пре него што уђу у прегледач вам даје могућност да будете упознати са тим да сајт покушава да користи колачиће, као и да испитујете њихов садржај, уколико то желите.</p><p>Чим <i>nuTensor</i> обрачуна ове колачиће, можете их уклонити ако то желите.</p><p><b>Важна напомена</b>Проширења могу креирати веб захтеве током свог нормалног рада. Ови захтеви могу довести до креирања колачића у прегледачу. Ако сајт одакле потиче колачић није на белој листи, онда ће <i>nuTensor</i> уклонити колачић из прегледача ако је ова опција омогућена. Зато будите сигурни да сајт са којим проширење комуницира буде на белој листи.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Неки веб сајтови су стварно решени да вас прате, толико да ће користити не баш лепе трикове да би заобишли све мере које предузимате да бисте избегли праћење.</p><p>Неко од ових трикова се заснивају<sup style='font-size:smaller'>[1, 2]</sup>на<a href='https://en.wikipedia.org/wiki/Web_cache'>кешу прегледача</a>,чији је садржај често дуготрајан, пошто корисници ретко одвајају мало времена да редовно чисте кеш прегледача.</p><p>Мало је непријатно редовно чистити кеш прегледача, а корист се огледа у томе да се спрече ови одвратни трагачи да упадају у вашу приватност.</p><p>Омогућите ову опцију да <i>uMatrix</i> то ради уместо вас, у временском интервалу који желите.</p><p style='font-size:smaller'>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Спречавање веб праћења преко кеша прегледача&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Неки веб сајтови су стварно решени да вас прате, толико да ће користити не баш лепе трикове да би заобишли све мере које предузимате да бисте избегли праћење.</p><p>Неко од ових трикова се заснивају<sup style='font-size:smaller'>[1, 2]</sup>на<a href='https://en.wikipedia.org/wiki/Web_cache'>кешу прегледача</a>,чији је садржај често дуготрајан, пошто корисници ретко одвајају мало времена да редовно чисте кеш прегледача.</p><p>Мало је непријатно редовно чистити кеш прегледача, а корист се огледа у томе да се спрече ови одвратни трагачи да упадају у вашу приватност.</p><p>Омогућите ову опцију да <i>nuTensor</i> то ради уместо вас, у временском интервалу који желите.</p><p style='font-size:smaller'>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Спречавање веб праћења преко кеша прегледача&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "<p>Са Википедије</p><blockquote>HTTP referer је HTTP заглавље које идентификује адресу веб странице који је повезан са извором који се тражи. ... <b>Пошто ове информације могу нарушити приватност, неки прегледачи дозвољавају корисницима да онемогуће слање ових информација.</b></blockquote><p>Ако је ова опција омогућена, <i>uMatrix</i> ће лажирати информацију ако је сајт, наведен у HTTP referrer, трећа страна у односу на захтевани.", "message": "<p>Са Википедије</p><blockquote>HTTP referer је HTTP заглавље које идентификује адресу веб странице који је повезан са извором који се тражи. ... <b>Пошто ове информације могу нарушити приватност, неки прегледачи дозвољавају корисницима да онемогуће слање ових информација.</b></blockquote><p>Ако је ова опција омогућена, <i>nuTensor</i> ће лажирати информацију ако је сајт, наведен у HTTP referrer, трећа страна у односу на захтевани.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Списак измена</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Списак измена</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Документација</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Документација</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Сва ваша подешавања ће бити замењена резервном копијом од {{time}}, и uMatrix ће бити поново покренут.\n\nЗаменити сва постојећа подешавања резервном копијом?", "message": "Сва ваша подешавања ће бити замењена резервном копијом од {{time}}, и nuTensor ће бити поново покренут.\n\nЗаменити сва постојећа подешавања резервном копијом?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Пажња! Ово ће уклонити ваша прилагођена подешавања. Да ли сте сигурни да желите да наставите?", "message": "Пажња! Ово ће уклонити ваша прилагођена подешавања. Да ли сте сигурни да желите да наставите?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "филтрирање израза",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Највећи број уноса",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "колачића избрисано: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "неуспелих брисања колачића: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "кеш прегледача очишћен",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "ажурираних средстава: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix је спречио учитавање следеће странице:", "message": "nuTensor је спречио учитавање следеће странице:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Због следећег правила", "message": "Због следећег правила",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Примени промене", "message": "Примени промене",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Översiktspanel", "message": "nuTensor — Översiktspanel",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Loggare", "message": "nuTensor — Loggare",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "skript", "message": "skript",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Förvanska <code><noscript></code>-taggar", "message": "Förvanska <code><noscript></code>-taggar",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Återställ alla tillfälliga ändringar", "message": "Återställ alla tillfälliga ändringar",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistik", "message": "nuTensor &ndash; Statistik",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Du kan inspektera de senaste råa HTTP-frågningarna gjorda från en sida (se nedan).</p><p>Det är mest till för erfarna användare som vill undersöka exakt vad webbsidan har gjort. Loggningen kräver dock plats och om du inte bryr dig om tekniska detaljer så kommer det slösa på minnet.</p><p>Därför finns detta fält som låter dig justera hur många av de senaste HTTP-förfrågningarna som som loggas.</p><p>Ange &ldquo;<code>0</code>&rdquo; för att stänga av detaljerad loggning (och således minska minneskravet från <i>uMatrix</i>).</p>", "message": "<p>Du kan inspektera de senaste råa HTTP-frågningarna gjorda från en sida (se nedan).</p><p>Det är mest till för erfarna användare som vill undersöka exakt vad webbsidan har gjort. Loggningen kräver dock plats och om du inte bryr dig om tekniska detaljer så kommer det slösa på minnet.</p><p>Därför finns detta fält som låter dig justera hur många av de senaste HTTP-förfrågningarna som som loggas.</p><p>Ange &ldquo;<code>0</code>&rdquo; för att stänga av detaljerad loggning (och således minska minneskravet från <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Uppdatera", "message": "Uppdatera",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filteruttryck",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "borttagna kakor: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "misslyckades med att ta bort kaka: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "webbläsarens cache rensades",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "komponent uppdaterad: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Inställningar", "message": "nuTensor &ndash; Inställningar",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,7 +473,7 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Kollapsa blockerade objekt", "message": "Kollapsa blockerade objekt",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Dölj platshållare för svartlistade element", "message": "Dölj platshållare för svartlistade element",
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Integritet", "message": "nuTensor &ndash; Integritet",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Svartlistade kakor hindras inte från att hamna i din webbläsare av <i>uMatrix</i>. De är dock skyddade från att lämna webbläsaren, vilket är det som räknas. Genom att inte blockera kakor från att hamna i din webbläsare får du möjligheten att se om en sida försökt att använda sig av kakor och du kan undersöka kakornas innehåll.</p><p>När kakorna har passerat <i>uMatrix</i>, kan de raderas om du så önskar.</p><p><b>Viktigt:</b> Webbläsartillägg kan göra förfrågningar till webben medan de arbetar. Dessa förfrågningar kan resultera i att kakor skapas i webbläsaren. Om värdnamnet för vilken en kaka kommer ifrån inte är vitlistat kommer kakan att tas bort av <i>uMatrix</i> om det är så inställt. Därför är det viktigt att kontrollera att värdnamnen som tillägg använder för att kommunicera är vitlistade.</p>", "message": "<p>Svartlistade kakor hindras inte från att hamna i din webbläsare av <i>nuTensor</i>. De är dock skyddade från att lämna webbläsaren, vilket är det som räknas. Genom att inte blockera kakor från att hamna i din webbläsare får du möjligheten att se om en sida försökt att använda sig av kakor och du kan undersöka kakornas innehåll.</p><p>När kakorna har passerat <i>nuTensor</i>, kan de raderas om du så önskar.</p><p><b>Viktigt:</b> Webbläsartillägg kan göra förfrågningar till webben medan de arbetar. Dessa förfrågningar kan resultera i att kakor skapas i webbläsaren. Om värdnamnet för vilken en kaka kommer ifrån inte är vitlistat kommer kakan att tas bort av <i>nuTensor</i> om det är så inställt. Därför är det viktigt att kontrollera att värdnamnen som tillägg använder för att kommunicera är vitlistade.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Vissa webbplatser är fast beslutna att spåra dig, till den grad att de använda osjysta metoder för att ta sig runt dina försök att inte bli spårad.</p><p>Några av dessa metoder<sup style='font-size:smaller'>[1, 2]</sup> förlitar sig på <a href='https://en.wikipedia.org/wiki/Web_cache'>webbläsarcachen</a>, vars innehåll ofta är långvarigt eftersom användare sällar tar sig tiden att regelbundet rensa deras cache.</p><p>Det finns knappt några nackdelar med att rensa cachet i webbläsar regelbundet (troligen märker du inte ens när det sker) och fördelen är att du förhindrar att dessa irriterande förföljare kränker din integritet.</p><p>Kryssa i detta alternativ för att låta <i>uMatrix</i> göra detta åt dig, i det intervall du ställer in.</p><p style='font-size:smaller'>[1]<a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Vissa webbplatser är fast beslutna att spåra dig, till den grad att de använda osjysta metoder för att ta sig runt dina försök att inte bli spårad.</p><p>Några av dessa metoder<sup style='font-size:smaller'>[1, 2]</sup> förlitar sig på <a href='https://en.wikipedia.org/wiki/Web_cache'>webbläsarcachen</a>, vars innehåll ofta är långvarigt eftersom användare sällar tar sig tiden att regelbundet rensa deras cache.</p><p>Det finns knappt några nackdelar med att rensa cachet i webbläsar regelbundet (troligen märker du inte ens när det sker) och fördelen är att du förhindrar att dessa irriterande förföljare kränker din integritet.</p><p>Kryssa i detta alternativ för att låta <i>nuTensor</i> göra detta åt dig, i det intervall du ställer in.</p><p style='font-size:smaller'>[1]<a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a><br>[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "<p>Översatt från Wikipedia:</p><blockquote>En HTTP-hänvisning (s.k. referer) är den delen i ett HTTP-sidhuvud som identifierar adressen på den sida som länkade till den nuvarande sidan som begärs. ... <b>Eftersom hänvisningen kan inskränka på integriteten tillåter vissa webbläsare användare att låta bli att skicka hänvisningsinformationen.</b></blockquote><p>Om inställningen är påslagen kommer <i>uMatrix</i> att lura domänen med en annan HTTP-hänvisningnsinformation i sidhuvudet, om det gäller en tredje partsdomän till domänen som gjort nätförfrågan.", "message": "<p>Översatt från Wikipedia:</p><blockquote>En HTTP-hänvisning (s.k. referer) är den delen i ett HTTP-sidhuvud som identifierar adressen på den sida som länkade till den nuvarande sidan som begärs. ... <b>Eftersom hänvisningen kan inskränka på integriteten tillåter vissa webbläsare användare att låta bli att skicka hänvisningsinformationen.</b></blockquote><p>Om inställningen är påslagen kommer <i>nuTensor</i> att lura domänen med en annan HTTP-hänvisningnsinformation i sidhuvudet, om det gäller en tredje partsdomän till domänen som gjort nätförfrågan.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Ändringslogg</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Ändringslogg</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Dokumentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Alla dina inställningar kommer att skrivas över med data från {{time}} och uMatrix kommer att startas om.\n\nVill du skriva över de existerande inställningarna med data från säkerhetskopian?", "message": "Alla dina inställningar kommer att skrivas över med data från {{time}} och nuTensor kommer att startas om.\n\nVill du skriva över de existerande inställningarna med data från säkerhetskopian?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Obs! Detta kommer att ta bort alla dina egna inställningar. Är du säkert på att du vill fortsätta?", "message": "Obs! Detta kommer att ta bort alla dina egna inställningar. Är du säkert på att du vill fortsätta?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filteruttryck",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Högst antal inlägg",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "borttagna kakor: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "misslyckades med att ta bort kaka: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "webbläsarens cache rensades",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "komponent uppdaterad: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix har förhindrat denna sida från att laddas:", "message": "nuTensor har förhindrat denna sida från att laddas:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "På grund av den här regeln", "message": "På grund av den här regeln",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Tillämpa ändringar", "message": "Tillämpa ändringar",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "స్క్రిప్ట్", "message": "స్క్రిప్ట్",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,10 +473,10 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "నిరోధించబడిన అంశాలయోక్క సంగ్రాహకాలను దాచుము", "message": "నిరోధించబడిన అంశాలయోక్క సంగ్రాహకాలను దాచుము",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Dashboard", "message": "nuTensor — Dashboard",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Revert all temporary changes", "message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Statistics", "message": "nuTensor &ndash; Statistics",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Refresh", "message": "Refresh",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Settings", "message": "nuTensor &ndash; Settings",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Privacy", "message": "nuTensor &ndash; Privacy",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Change log</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Documentation</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>Permissions</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "All your settings will be overwritten using data backed up on {{time}}, and uMatrix will restart.\n\nOverwrite all existing settings using backed up data?", "message": "All your settings will be overwritten using data backed up on {{time}}, and nuTensor will restart.\n\nOverwrite all existing settings using backed up data?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?", "message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "filter expression(s)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maximum number of entries",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "cookie deleted: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "failed to delete cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "browser cache cleared",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "asset updated: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix has prevented the following page from loading:", "message": "nuTensor has prevented the following page from loading:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Because of the following rule", "message": "Because of the following rule",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Kontrol Paneli", "message": "nuTensor — Kontrol Paneli",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Günlükçü", "message": "nuTensor — Günlükçü",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "betik", "message": "betik",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "getir",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "<code><noscript></code> etiketlerini aldat", "message": "<code><noscript></code> etiketlerini aldat",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Kanonik isimleri ortaya çıkar",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Geçici değişikliklerin tümünü geri al", "message": "Geçici değişikliklerin tümünü geri al",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; İstatistikleri", "message": "nuTensor &ndash; İstatistikleri",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Bir web sayfası tarafından en son yapılan işlenmemiş HTTP isteklerinin ayrıntılarını denetleyebilirsiniz (aşağıya bakın).</p><p>Bu en çok ileri düzey kullanıcıların bir web sayfasının tam olarak ne yaptığını incelemerinde kullanışlı olur. Fakat bu HTTP istek günlüklüklerinin tutulması bellek kullanımı arttırır ve bu teknik bilgiye ihtiyacınız yoksa bellek boşa kullanılmış olur.</p><p>Bundan dolayı en fazla günlüğü tutulacak HTTP istek sayısını bu alandan ayarlayabilirsiniz.</p><p>&ldquo;<code>0</code>&rdquo; girerek ayrıntılı günlük tutulmasını kapatabilirsiniz (ve netice olarak <i>uMatrix'in</i> bellek kullanımını düşürürsünüz).</p>", "message": "<p>Bir web sayfası tarafından en son yapılan işlenmemiş HTTP isteklerinin ayrıntılarını denetleyebilirsiniz (aşağıya bakın).</p><p>Bu en çok ileri düzey kullanıcıların bir web sayfasının tam olarak ne yaptığını incelemerinde kullanışlı olur. Fakat bu HTTP istek günlüklüklerinin tutulması bellek kullanımı arttırır ve bu teknik bilgiye ihtiyacınız yoksa bellek boşa kullanılmış olur.</p><p>Bundan dolayı en fazla günlüğü tutulacak HTTP istek sayısını bu alandan ayarlayabilirsiniz.</p><p>&ldquo;<code>0</code>&rdquo; girerek ayrıntılı günlük tutulmasını kapatabilirsiniz (ve netice olarak <i>nuTensor'in</i> bellek kullanımını düşürürsünüz).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Yenile", "message": "Yenile",
"description": "" "description": ""
}, },
"logAll": {
"message": "Tümü",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Sekmesiz",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Mevcut sekme",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Sekme içeriğini yeniden yükle",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "süzgeç ifadeleri",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "çerez silindi: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "çerez silme başarısız: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "tarayıcı önbelleği temizlendi",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "liste güncellendi: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Kaydedici filtrelemesini aç/kapat",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "kaydedici içeriğini filtrele",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Açılır pencere panelini aç/kapat",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin viki: Kaydedici",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Kaydediciyi temizle",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "Kaydediciyi duraklat (gelen tüm verileri sil)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Kaydediciyi devam ettir",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Kaydedici filtreleme seçenekleri",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Değil",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "engellendi",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "bilgi",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1. taraf",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3. taraf",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Ayrıntılar",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "İçerik",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Taraf",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Tür",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Kural",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Aşağıdaki üç koşulu da karşılamayan kaydedici girdileri otomatik olarak atılacaktır:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Son {{input}} dakikadaki girdileri muhafaza et",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Sekme başına en fazla {{input}} sayfa yüklenmesini muhafaza et",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Sekme başına en fazla {{input}} girdiyi muhafaza et",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Dikey olarak genişletildiğinde girdi başına {{input}} satır kullan",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "Liste",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Tablo",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Düz",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Ayarları", "message": "nuTensor &ndash; Ayarları",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -321,10 +473,10 @@
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Engellenmiş elementlerin yertutucularını daralt", "message": "Engellenmiş elementlerin yertutucularını daralt",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Kara listelenmiş ögelerin yertutucularını daralt", "message": "Kara listeye alınan elemanların yer tutucusunu gizle",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Gizlilik", "message": "nuTensor &ndash; Gizlilik",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Kara listelenmiş çerezlerin tarayıcınıza girmesi <i>uMatrix</i> tarafından önlenmez. Ancak tarayıcınızdan çıkışları önlenir, önemli olan da budur. Çerezlerin tarayıcınıza girişi önlenmeyerek sitenin çerez kullanımı hakkında bilgi sahibi olma fırsatını elde edersiniz ve üstelik dilerseniz içeriklerini de denetleyebilirsiniz.</p><p>Bu engellenmiş çerezler bir kere <i>uMatrix</i> tarafından raporlandıktan sonra eğer isterseniz tabi tarayıcınızdan kaldırılabilir.</p><p><b>Önemli not:</b> Eklentiler normal işleyişleri sırasında web isteği yapabilir. Bu istekler tarayıcınızda çerez oluşumuna neden olur. Bu seçenek işaretli ve çerezin geldiği alan adı beyaz listede değilse bu çerez <i>uMatrix</i> tarafından tarayıcınızdan kaldırılacaktır. Bu yüzden eklentilerin iletişim kurduğu alan ad(lar)ının beyaz listede bulunduğundan emin olunuz.</p>", "message": "<p>Kara listelenmiş çerezlerin tarayıcınıza girmesi <i>nuTensor</i> tarafından önlenmez. Ancak tarayıcınızdan çıkışları önlenir, önemli olan da budur. Çerezlerin tarayıcınıza girişi önlenmeyerek sitenin çerez kullanımı hakkında bilgi sahibi olma fırsatını elde edersiniz ve üstelik dilerseniz içeriklerini de denetleyebilirsiniz.</p><p>Bu engellenmiş çerezler bir kere <i>nuTensor</i> tarafından raporlandıktan sonra eğer isterseniz tabi tarayıcınızdan kaldırılabilir.</p><p><b>Önemli not:</b> Eklentiler normal işleyişleri sırasında web isteği yapabilir. Bu istekler tarayıcınızda çerez oluşumuna neden olur. Bu seçenek işaretli ve çerezin geldiği alan adı beyaz listede değilse bu çerez <i>nuTensor</i> tarafından tarayıcınızdan kaldırılacaktır. Bu yüzden eklentilerin iletişim kurduğu alan ad(lar)ının beyaz listede bulunduğundan emin olunuz.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Bazı web siteleri sizi izlemekte çok kararlıdır, izlenmemek için aldığınız her ne önlem varsa bunları aşmak için hoş olmayan hileli yöntemler kullanacaklardır.</p><p>Bu hilelerden bazıları <a href='https://en.wikipedia.org/wiki/Web_cache'>tarayıcı önbelleği</a> <sup>[1, 2]</sup>'ye dayalıdır, kullanıcı düzenli olarak tarayıcısının geçmişini temizlemediği için içerik çok uzun süre tarayıcıda kalır.</p><p>Tarayıcı önbelleğini düzenli olarak temizlemek biraz zahmetlidir (temizlendiğinde ise muhtemelen farkına varmazsınız) ve faydası ise kötü izleyicilerin gizliliğinizi ihlal etmesinin önüne geçmiş olursunuz.</p><p>Bu seçeneği işaretleyerek belirli aralıklarla bu işlemi sizin yerinize <i>uMatrix</i> yapabilir.</p><p>[1]<a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Tarayıcı Önbelleği ile Web İzlemesini Önlemek&rdquo;</a>\n[2]<a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Çerezsiz çerezler&rdquo;</a></p>", "message": "<p>Bazı web siteleri sizi izlemekte çok kararlıdır, izlenmemek için aldığınız her ne önlem varsa bunları aşmak için hoş olmayan hileli yöntemler kullanacaklardır.</p><p>Bu hilelerden bazıları <a href='https://en.wikipedia.org/wiki/Web_cache'>tarayıcı önbelleği</a> <sup>[1, 2]</sup>'ye dayalıdır, kullanıcı düzenli olarak tarayıcısının geçmişini temizlemediği için içerik çok uzun süre tarayıcıda kalır.</p><p>Tarayıcı önbelleğini düzenli olarak temizlemek biraz zahmetlidir (temizlendiğinde ise muhtemelen farkına varmazsınız) ve faydası ise kötü izleyicilerin gizliliğinizi ihlal etmesinin önüne geçmiş olursunuz.</p><p>Bu seçeneği işaretleyerek belirli aralıklarla bu işlemi sizin yerinize <i>nuTensor</i> yapabilir.</p><p>[1]<a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Tarayıcı Önbelleği ile Web İzlemesini Önlemek&rdquo;</a>\n[2]<a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Çerezsiz çerezler&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "Wikipedia'dan:<blockquote>HTTP başvuran bilgisi bir web sayfasına hangi bağlantıdan geldiğinizi içeren HTTP başlığıdır. ... <b>Çünkü başvuran bilgisi gizliliğinizi ihlal edebilir, bazı web tarayıcıları bu bilginin gönderimini devre dışı bırakmanıza izin verebilir.</b></blockquote>Bu ayar işaretliyse, <i>uMatrix</i> HTTP başvuran bilgisinin alan adı, istek yapılan alan adına göre üçüncü taraf ise bu bilgiyi aldatacaktır.", "message": "Wikipedia'dan:<blockquote>HTTP başvuran bilgisi bir web sayfasına hangi bağlantıdan geldiğinizi içeren HTTP başlığıdır. ... <b>Çünkü başvuran bilgisi gizliliğinizi ihlal edebilir, bazı web tarayıcıları bu bilginin gönderimini devre dışı bırakmanıza izin verebilir.</b></blockquote>Bu ayar işaretliyse, <i>nuTensor</i> HTTP başvuran bilgisinin alan adı, istek yapılan alan adına göre üçüncü taraf ise bu bilgiyi aldatacaktır.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Değişim günlüğü</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Değişim günlüğü</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Belgeler</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Belgeler</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>İzinler</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>İzinler</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "{{time}} zamanında yedeklenmiş veri kullanılarak tüm ayarlarınızın üzerine yazılacak ve uMatrix yeniden başlayacak.\n\nYedeklenmiş veri kullanılarak ayarlarınızın üzerine yazılsın mı?", "message": "{{time}} zamanında yedeklenmiş veri kullanılarak tüm ayarlarınızın üzerine yazılacak ve nuTensor yeniden başlayacak.\n\nYedeklenmiş veri kullanılarak ayarlarınızın üzerine yazılsın mı?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Uyarı! Bu işlem tüm kişisel ayarlarınızı kaldıracaktır. Devam etmek istediğinizden emin misiniz?", "message": "Uyarı! Bu işlem tüm kişisel ayarlarınızı kaldıracaktır. Devam etmek istediğinizden emin misiniz?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "süzgeç ifadeleri",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Maksimum giriş sayısı",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "çerez silindi: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "çerez silme başarısız: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "tarayıcı önbelleği temizlendi",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "liste güncellendi: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix aşağıdaki sayfaların yüklenmesini engelledi:", "message": "nuTensor aşağıdaki sayfaların yüklenmesini engelledi:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Bu kural nedeniyle", "message": "Bu kural nedeniyle",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Değişiklikleri uygula", "message": "Değişiklikleri uygula",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Panoya kopyala",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — Налаштування", "message": "nuTensor — Налаштування",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "скрипт", "message": "скрипт",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Відмінити усі тимчасові зміни", "message": "Відмінити усі тимчасові зміни",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; Статистика", "message": "nuTensor &ndash; Статистика",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>Ви можете переглянути деталі про останні необроблені запити HTTP, що були зроблені сторінкою (див. нижче).</p><p>Це набільш корисно для просунутих користувачів, які хочуть перевірити, що конкретно робила дана веб-сторінка. Однак, збереження цих запитів HTTP потребує додаткової пам'яті, тож якщо вам не потрібна технічна інформація, пам'ять буде витрачатись намарно. </p><p>Отож, це поле, що дозволяє вам змінити максимальну кількість останніх запитів HTTP, що будуть збережені для подальшої перевірки.</p><p>Введіть &ldquo;<code>0</code>&rdquo; щоб вимкнути детальне логування (і, як наслідок, зменшити витрати пам'яті <i>uMatrix</i>'ом).</p>", "message": "<p>Ви можете переглянути деталі про останні необроблені запити HTTP, що були зроблені сторінкою (див. нижче).</p><p>Це набільш корисно для просунутих користувачів, які хочуть перевірити, що конкретно робила дана веб-сторінка. Однак, збереження цих запитів HTTP потребує додаткової пам'яті, тож якщо вам не потрібна технічна інформація, пам'ять буде витрачатись намарно. </p><p>Отож, це поле, що дозволяє вам змінити максимальну кількість останніх запитів HTTP, що будуть збережені для подальшої перевірки.</p><p>Введіть &ldquo;<code>0</code>&rdquo; щоб вимкнути детальне логування (і, як наслідок, зменшити витрати пам'яті <i>nuTensor</i>'ом).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Оновити", "message": "Оновити",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "фільтр(и)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "кукі видалено: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "не вдалося видалити кукі: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "кеш браузера очищено",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "компонент оновлено: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; Налаштування", "message": "nuTensor &ndash; Налаштування",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; Приватність", "message": "nuTensor &ndash; Приватність",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Перелік змін</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Перелік змін</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Документація</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Документація</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "Усі налаштування будуть замінені даними з резервної копії від {{time}}, і uMatrix буде перезавантажено.\n\nЗамінити усі існуючі дані?", "message": "Усі налаштування будуть замінені даними з резервної копії від {{time}}, і nuTensor буде перезавантажено.\n\nЗамінити усі існуючі дані?",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "Увага! Ваші ручні налаштування буде видалено. Продовжити?", "message": "Увага! Ваші ручні налаштування буде видалено. Продовжити?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "фільтр(и)",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Максимальна кількість записів",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "кукі видалено: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "не вдалося видалити кукі: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "кеш браузера очищено",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "компонент оновлено: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix заблокував завантаження сторінки:", "message": "nuTensor заблокував завантаження сторінки:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Через наступне правило", "message": "Через наступне правило",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -12,7 +12,7 @@
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — Logger", "message": "nuTensor — Logger",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "script", "message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "Spoof <code><noscript></code> tags", "message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "Hủy các thay đổi tạm thời", "message": "Hủy các thay đổi tạm thời",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -272,13 +276,161 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>uMatrix</i>).</p>", "message": "<p>You can inspect details of the most recent raw HTTP requests which have been made by a web page (see below).</p><p>This is mostly useful to advanced users who want to investigate exactly what a web page has been doing. But logging these HTTP requests requires memory, and if you don't care about this technical information, then memory is being wasted.</p><p>Hence this field which lets you adjust the maximum number of the most recent HTTP requests which are to be logged for further inspection.</p><p>Enter &ldquo;<code>0</code>&rdquo; to turn off detailed logging (and consequently reduce the memory footprint of <i>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "Tải lại", "message": "Tải lại",
"description": "" "description": ""
}, },
"logAll": {
"message": "All",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "Tabless",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "Current tab",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "Reload the tab content",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "diễn tả bộ lọc",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "đã xoá cookie: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "không thể xoá cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "đã xoá bộ đệm trình duyệt",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "đã cập nhật tài nguyên: {{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "Toggle logger filtering",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "filter logger content",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "Toggle the popup panel",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki: The logger",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "Clear logger",
"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)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "Unpause logger",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "Logger filtering options",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "Not",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "blocked",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "info",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "1st-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "3rd-party",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "Details",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "Context",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "Partyness",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "Type",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "Rule",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "Logger entries which do not fulfill all three conditions below will be automatically discarded:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "Preserve entries from the last {{input}} minutes",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "Preserve at most {{input}} page loads per tab",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "Preserve at most {{input}} entries per tab",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "Use {{input}} lines per entry in vertically expanded mode",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "List",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "Table",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "Plain",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "Cài đặt µMatrix", "message": "Cài đặt µMatrix",
"description": "" "description": ""
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "Collapse placeholder of blocked elements", "message": "Hide placeholder of blocked elements",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "Collapse placeholder of blacklisted elements", "message": "Hide placeholder of blacklisted elements",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p>Blacklisted cookies are not prevented by <i>uMatrix</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>uMatrix</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>uMatrix</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>", "message": "<p>Blacklisted cookies are not prevented by <i>nuTensor</i> from entering your browser. However they are prevented from leaving your browser, which is what really matters. Not blocking cookies before they enter your browser gives you the opportunity to be informed that a site tried to use cookies, and furthermore to inspect their contents if you wish.</p><p>Once these blacklisted cookies have been accounted for by <i>nuTensor</i>, they can be removed from your browser if you wish so.</p><p><b>Important note:</b> Extensions can make web requests during the course of their normal operation. These requests can result in cookies being created in the browser. If the hostname from where a cookie originate is not whitelisted, the cookie will be removed from the browser by <i>nuTensor</i> if this option is checked. So be sure that the hostname(s) with which an extension communicate is whitelisted.</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>uMatrix</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>", "message": "<p>Some web sites are really bent on tracking you, so much that they will use not-so-nice tricks to work around whatever measures you take in order to not be tracked.</p><p>A few of these tricks rely<sup>[1, 2]</sup> on the <a href='https://en.wikipedia.org/wiki/Web_cache'>browser cache</a>, which content is often long lasting since rarely will users take the time to regularly clear their browser cache.</p><p>There is little inconvenience to clear the browser cache regularly (likelihood is that you won't notice when it happens), and the benefit is to prevent these obnoxious trackers from invading your privacy.</p><p>Check this option to have <i>nuTensor</i> do it for you, at the interval you wish.</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>&ldquo;Preventing Web Tracking via the Browser Cache&rdquo;</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>&ldquo;Cookieless cookies&rdquo;</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>uMatrix</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.", "message": "From Wikipedia:<blockquote>HTTP referer is an HTTP header field that identifies the address of the webpage that linked to the resource being requested. ... <b>Because referer information can violate privacy, some web browsers allow the user to disable the sending of referer information.</b></blockquote>If this setting is checked, <i>nuTensor</i> will spoof the HTTP referrer information if the domain name of the HTTP referrer is third-party to the domain name of net request.",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>Thay đổi</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Thay đổi</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,7 +692,7 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>Tài liệu</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Tài liệu</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
@ -607,33 +759,9 @@
"message": "Cẩn trọng! Điều này sẽ xoá tất cả cấu hình tuỳ chỉnh của bạn. Bạn chắc muốn tiến hành?", "message": "Cẩn trọng! Điều này sẽ xoá tất cả cấu hình tuỳ chỉnh của bạn. Bạn chắc muốn tiến hành?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "diễn tả bộ lọc",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "Số mục tối đa",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "đã xoá cookie: {{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "không thể xoá cookie: {{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "đã xoá bộ đệm trình duyệt",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "đã cập nhật tài nguyên: {{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix đã chặn truy cập trang này:", "message": "nuTensor đã chặn truy cập trang này:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "Bởi vì các luật sau", "message": "Bởi vì các luật sau",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "Apply changes", "message": "Apply changes",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — 控制面板", "message": "nuTensor — 控制面板",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — 日志记录", "message": "nuTensor — 日志记录",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "脚本", "message": "脚本",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "模拟 <code><noscript></code> 元素", "message": "模拟 <code><noscript></code> 元素",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "显示真实域名",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "撤销所有临时变更", "message": "撤销所有临时变更",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; 统计", "message": "nuTensor &ndash; 统计",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>您可以查看最近网页所发出的原始 HTTP 请求的细节(见下)。</p><p>这对于想要检测网页确切行为的高级用户尤为实用。但记录 HTTP 请求会消耗内存,如果您并不在意这些技术细节,内存便等同于被浪费。</p><p>此区域将允许您调整最多保留多少最近的 HTTP 请求,以便您进一步审查。</p><p>输入 &ldquo;<code>0</code>&rdquo; 将关闭详细日志(从而减少 <i>uMatrix</i> 的内存占用)。</p>", "message": "<p>您可以查看最近网页所发出的原始 HTTP 请求的细节(见下)。</p><p>这对于想要检测网页确切行为的高级用户尤为实用。但记录 HTTP 请求会消耗内存,如果您并不在意这些技术细节,内存便等同于被浪费。</p><p>此区域将允许您调整最多保留多少最近的 HTTP 请求,以便您进一步审查。</p><p>输入 &ldquo;<code>0</code>&rdquo; 将关闭详细日志(从而减少 <i>nuTensor</i> 的内存占用)。</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "刷新", "message": "刷新",
"description": "" "description": ""
}, },
"logAll": {
"message": "全部",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "后台网络请求",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "当前标签页",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "重新加载该标签页的内容",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "日志过滤表达式",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "已删除 Cookie{{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "无法删除 Cookie{{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "浏览器缓存清除完毕",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "辅助规则已更新:{{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "开闭记录筛选",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "筛选记录条目",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "开闭弹出面板",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki记录器",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "清空记录",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "暂停记录(放弃所有传入数据)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "取消暂停记录",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "记录器筛选设定",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "非",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "已屏蔽",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "提示信息",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "第一方",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "第三方",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "详细资料",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "上下文",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "第一方/第三方",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "类型",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "规则",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "不符合以下任一状况的记录将会被自动清除:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "最多保留 {{input}} 分钟以内的记录",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "每个分页最多保留 {{input}} 次内容加载产生的记录",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "每个分页最多保留 {{input}} 条记录",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "垂直扩展模式下每项使用 {{input}} 行",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "列表",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "表格",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "纯文本",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; 设置", "message": "nuTensor &ndash; 设置",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "隐藏已拦截请求所关联的页面内容", "message": "隐藏已屏蔽元素的占位符",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "隐藏因域名黑名单而被屏蔽的內容", "message": "隐藏被加入黑名单的元素的占位符",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; 隐私", "message": "nuTensor &ndash; 隐私",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i> 默认不阻止黑名单中的 Cookie 进入您的浏览器,而是阻止它们离开您的浏览器,是因后者更具有意义。不在 Cookie 进入浏览器之前阻止它们将使您有机会得知网站正尝试使用 Cookie以便您有需要时进一步查看。</p><p>若黑名单中的 Cookie 被 <i>uMatrix</i> 所计入则可如愿将其移除。</p><p><b>重要提示:</b>浏览器扩展在其运作期间发出网络请求时可能会产生 Cookie。如果 Cookie 所在域名尚未被列入白名单,则 <i>uMatrix</i> 会于该选项开启之时移除这些 Cookie。请确保用于扩展通信的域名处于白名单内。</p>", "message": "<p><i>nuTensor</i> 默认不阻止黑名单中的 Cookie 进入您的浏览器,而是阻止它们离开您的浏览器,是因后者更具有意义。不在 Cookie 进入浏览器之前阻止它们将使您有机会得知网站正尝试使用 Cookie以便您有需要时进一步查看。</p><p>若黑名单中的 Cookie 被 <i>nuTensor</i> 所计入则可如愿将其移除。</p><p><b>重要提示:</b>浏览器扩展在其运作期间发出网络请求时可能会产生 Cookie。如果 Cookie 所在域名尚未被列入白名单,则 <i>nuTensor</i> 会于该选项开启之时移除这些 Cookie。请确保用于扩展通信的域名处于白名单内。</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>某些网站特别热衷于跟踪,以至于为规避您的反跟踪举措,会使用一些不太光彩的手段。</p><p>一部分诡计利用了<a href='https://zh.wikipedia.org/wiki/%E7%BD%91%E9%A1%B5%E5%BF%AB%E7%85%A7'>浏览器缓存</a><sup>[1, 2]</sup>,因为缓存内容通常会长期储留,用户也基本不会去亲自清理。</p><p>定期清理浏览器缓存其实并不怎么麻烦(甚至很可能不会被注意到),且贵在可以保护您的隐私免受跟踪者侵犯。</p><p>启用该设置将容许 <i>uMatrix</i> 依您指定的时间定期为您完成该项工作。</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>“阻止利用浏览器缓存进行网络追踪”</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>“Cookieless Cookies”</a></p>", "message": "<p>某些网站特别热衷于跟踪,以至于为规避您的反跟踪举措,会使用一些不太光彩的手段。</p><p>一部分诡计利用了<a href='https://zh.wikipedia.org/wiki/%E7%BD%91%E9%A1%B5%E5%BF%AB%E7%85%A7'>浏览器缓存</a><sup>[1, 2]</sup>,因为缓存内容通常会长期储留,用户也基本不会去亲自清理。</p><p>定期清理浏览器缓存其实并不怎么麻烦(甚至很可能不会被注意到),且贵在可以保护您的隐私免受跟踪者侵犯。</p><p>启用该设置将容许 <i>nuTensor</i> 依您指定的时间定期为您完成该项工作。</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>“阻止利用浏览器缓存进行网络追踪”</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>“Cookieless Cookies”</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "维基百科:<blockquote>HTTP 来源地址是一个用于辨识请求来源网址的内容标识。……<b>由于来源地址可能会泄漏隐私,某些浏览器允许用户禁止发送来源地址。</b></blockquote>若启用该设置,<i>uMatrix</i> 则会在来源网页请求的 HTTP 来源地址中包含的域名与请求资源所在域名有差别时伪造来源地址。", "message": "维基百科:<blockquote>HTTP 来源地址是一个用于辨识请求来源网址的内容标识。……<b>由于来源地址可能会泄漏隐私,某些浏览器允许用户禁止发送来源地址。</b></blockquote>若启用该设置,<i>nuTensor</i> 则会在来源网页请求的 HTTP 来源地址中包含的域名与请求资源所在域名有差别时伪造来源地址。",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>更新日志</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>更新日志</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>帮助文档</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>帮助文档</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>权限说明</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>权限说明</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "您的所有设置将被 {{time}} 的备份数据所覆盖,接着 uMatrix 将会重启。\n\n是否要用备份数据覆盖现有设置", "message": "您的所有设置将被 {{time}} 的备份数据所覆盖,接着 nuTensor 将会重启。\n\n是否要用备份数据覆盖现有设置",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "注意!这将移除您的所有个人设置。您确定要继续吗?", "message": "注意!这将移除您的所有个人设置。您确定要继续吗?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "规则过滤表达式",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "日志条数限制",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "已删除 Cookie{{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "无法删除 Cookie{{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "浏览器缓存清除完毕",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "辅助规则已更新:{{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix 已阻止载入以下页面:", "message": "nuTensor 已阻止载入以下页面:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "因以下规则", "message": "因以下规则",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "应用变更", "message": "应用变更",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "复制到剪贴板",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -1,6 +1,6 @@
{ {
"extName": { "extName": {
"message": "uMatrix", "message": "nuTensor",
"description": "" "description": ""
}, },
"extShortDesc": { "extShortDesc": {
@ -8,11 +8,11 @@
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS" "description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
}, },
"dashboardPageName": { "dashboardPageName": {
"message": "uMatrix — 控制台", "message": "nuTensor — 控制台",
"description": "" "description": ""
}, },
"loggerPageName": { "loggerPageName": {
"message": "uMatrix — 日誌記錄", "message": "nuTensor — 日誌記錄",
"description": "Title for the logger window" "description": "Title for the logger window"
}, },
"settingsPageName": { "settingsPageName": {
@ -71,8 +71,8 @@
"message": "指令", "message": "指令",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"xhrPrettyName": { "fetchPrettyName": {
"message": "XHR", "message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!" "description": "HAS TO FIT IN MATRIX HEADER!"
}, },
"framePrettyName": { "framePrettyName": {
@ -135,6 +135,10 @@
"message": "模擬 <code><noscript></code> 元素", "message": "模擬 <code><noscript></code> 元素",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
}, },
"matrixSwitchRevealCname": {
"message": "顯示真實域名",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": { "matrixRevertAllEntry": {
"message": "撤銷所有臨時變更", "message": "撤銷所有臨時變更",
"description": "A menu entry in the matrix popup" "description": "A menu entry in the matrix popup"
@ -160,7 +164,7 @@
"description": "Used as a tooltip for the recipe padlock button" "description": "Used as a tooltip for the recipe padlock button"
}, },
"statsPageTitle": { "statsPageTitle": {
"message": "uMatrix &ndash; 統計", "message": "nuTensor &ndash; 統計",
"description": "" "description": ""
}, },
"statsPageGenericStats": { "statsPageGenericStats": {
@ -272,15 +276,163 @@
"description": "Second part of Remember the last [n] HTTP requests per page" "description": "Second part of Remember the last [n] HTTP requests per page"
}, },
"statsPageLogSizeHelp": { "statsPageLogSizeHelp": {
"message": "<p>您可以查看最近期網絡頁面所發出的請求之詳情(見下)。</p><p>這對於想了解網絡頁面的確切行為的進階使用者較為實用惟記錄HTTP請求將耗用記憶體如您並不在意技術細節則等同浪費記憶體。</p><p>故此欄將容許閣下調整用作進一歲檢查的近期HTTP請求之記錄數字。</p><p>輸入「<code>0</code>」將禁用詳細日誌(從而減少<i>uMatrix</i>所佔用之記憶體)。</p>", "message": "<p>您可以查看最近期網絡頁面所發出的請求之詳情(見下)。</p><p>這對於想了解網絡頁面的確切行為的進階使用者較為實用惟記錄HTTP請求將耗用記憶體如您並不在意技術細節則等同浪費記憶體。</p><p>故此欄將容許閣下調整用作進一歲檢查的近期HTTP請求之記錄數字。</p><p>輸入「<code>0</code>」將禁用詳細日誌(從而減少<i>nuTensor</i>所佔用之記憶體)。</p>",
"description": "To help user understand the purpose of the log size value" "description": "To help user understand the purpose of the log size value"
}, },
"statsPageRefresh": { "statsPageRefresh": {
"message": "重新整理", "message": "重新整理",
"description": "" "description": ""
}, },
"logAll": {
"message": "全部",
"description": "Appears in the logger's tab selector"
},
"logBehindTheScene": {
"message": "背景網路連線請求",
"description": "Pretty name for behind-the-scene network requests"
},
"loggerCurrentTab": {
"message": "目前分頁",
"description": "Appears in the logger's tab selector"
},
"loggerReloadTip": {
"message": "重新載入分頁內容",
"description": "Tooltip for the reload button in the logger page"
},
"loggerFilterInputPlaceholder": {
"message": "日誌過濾表達式",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerEntryCookieDeleted": {
"message": "已刪除 Cookie{{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "無法刪除 Cookie{{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "瀏覽器快取清除完畢",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "已更新資料:{{value}}",
"description": "An entry for when an asset was updated"
},
"loggerRowFiltererButtonTip": {
"message": "開閉記錄篩選",
"description": "Tooltip for the row filterer button in the logger page"
},
"logFilterPrompt": {
"message": "篩選記錄條目",
"description": "Placeholder string for logger output filtering input field"
},
"loggerPopupPanelTip": {
"message": "開閉彈出式面板",
"description": "Tooltip for the popup panel button in the logger page"
},
"loggerInfoTip": {
"message": "uBlock Origin wiki記錄器",
"description": "Tooltip for the top-right info label in the logger page"
},
"loggerClearTip": {
"message": "清除記錄",
"description": "Tooltip for the eraser in the logger page; used to blank the content of the logger"
},
"loggerPauseTip": {
"message": "暫停記錄(丟棄所有傳入資料)",
"description": "Tooltip for the pause button in the logger page"
},
"loggerUnpauseTip": {
"message": "取消暫停記錄",
"description": "Tooltip for the play button in the logger page"
},
"loggerRowFiltererBuiltinTip": {
"message": "記錄器篩選設定",
"description": "Tooltip for the button to bring up logger output filtering options"
},
"loggerRowFiltererBuiltinNot": {
"message": "非",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinBlocked": {
"message": "已封鎖",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltinInfo": {
"message": "提示信息",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin1p": {
"message": "第一方",
"description": "A keyword in the built-in row filtering expression"
},
"loggerRowFiltererBuiltin3p": {
"message": "第三方",
"description": "A keyword in the built-in row filtering expression"
},
"loggerEntryDetailsHeader": {
"message": "詳細資料",
"description": "Small header to identify the 'Details' pane for a specific logger entry"
},
"loggerEntryDetailsContext": {
"message": "上下文",
"description": "Label to identify a context field (typically a hostname)"
},
"loggerEntryDetailsPartyness": {
"message": "第一方/第三方",
"description": "Label to identify a field providing partyness information"
},
"loggerEntryDetailsType": {
"message": "類型",
"description": "Label to identify the type of an entry"
},
"loggerEntryDetailsURL": {
"message": "URL",
"description": "Label to identify the URL of an entry"
},
"loggerEntryRuleHeader": {
"message": "規則",
"description": "Small header to identify the 'Rule' pane for a specific logger entry"
},
"loggerSettingDiscardPrompt": {
"message": "不符合以下任一狀況的記錄將會被自動清除:",
"description": "Logger setting: A sentence to describe the purpose of the settings below"
},
"loggerSettingPerEntryMaxAge": {
"message": "最多保留 {{input}} 分鐘以內的記錄",
"description": "A logger setting"
},
"loggerSettingPerTabMaxLoads": {
"message": "每個分頁最多保留 {{input}} 次內容加載產生的記錄",
"description": "A logger setting"
},
"loggerSettingPerTabMaxEntries": {
"message": "每個分頁最多保留 {{input}} 條記錄",
"description": "A logger setting"
},
"loggerSettingPerEntryLineCount": {
"message": "在垂直延展模式中每條記錄顯示 {{input}} 行",
"description": "A logger setting"
},
"loggerExportFormatList": {
"message": "列表",
"description": "Label for radio-button to pick export format"
},
"loggerExportFormatTable": {
"message": "表格",
"description": "Label for radio-button to pick export format"
},
"loggerExportEncodePlain": {
"message": "純文字",
"description": "Label for radio-button to pick export text format"
},
"loggerExportEncodeMarkdown": {
"message": "Markdown",
"description": "Label for radio-button to pick export text format"
},
"settingsPageTitle": { "settingsPageTitle": {
"message": "uMatrix &ndash; 設定", "message": "nuTensor &ndash; 設定",
"description": "" "description": ""
}, },
"settingsMatrixDisplayHeader": { "settingsMatrixDisplayHeader": {
@ -320,11 +472,11 @@
"description": "Scope will be full hostname of site" "description": "Scope will be full hostname of site"
}, },
"settingsCollapseBlocked": { "settingsCollapseBlocked": {
"message": "隱藏已阻擋請求所關聯的頁面內容", "message": "隱藏已封鎖元素的佔位符",
"description": "English: Collapse placeholder of blocked elements" "description": "A setting in the dashboard's Settings pane"
}, },
"settingsCollapseBlacklisted": { "settingsCollapseBlacklisted": {
"message": "隱藏因域名黑名單而遭遮蔽的內容", "message": "隱藏被加入黑名單的元素的佔位符",
"description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'" "description": "A setting in the dashboard's Settings pane: 'blacklisted' means 'for which there is a specific block rule', 'specific' means 'a rule for which the destination hostname is not `*`'"
}, },
"settingsNoscriptTagsSpoofed": { "settingsNoscriptTagsSpoofed": {
@ -340,7 +492,7 @@
"description": "" "description": ""
}, },
"privacyPageTitle": { "privacyPageTitle": {
"message": "uMatrix &ndash; 隱私", "message": "nuTensor &ndash; 隱私",
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesPrompt": { "privacyDeleteBlockedCookiesPrompt": {
@ -348,7 +500,7 @@
"description": "" "description": ""
}, },
"privacyDeleteBlockedCookiesHelp": { "privacyDeleteBlockedCookiesHelp": {
"message": "<p><i>uMatrix</i> 預設不會阻止黑名單中的 Cookie 進入您的瀏覽器,而是阻止它们離開开您的瀏覽器,因後者更具有意義。不於 Cookie 進入瀏覽器之前阻止它們將使您有機會得知網站正嘗試使用 Cookie以便您有需要時進一步查看。</p><p>若黑名單中的 Cookie 被 <i>uMatrix</i> 所計入則可按閱下意願將其移除。</p><p><b>重要提示:</b>附加元件於其運作期間作出網絡請求之時將可能產生 Cookie。如果 Cookie 所在域名並未被列入白名單,則 <i>uMatrix</i> 會於該選項開啟之時移除這些 Cookie。請確保用於附加元件通訊的域名處於白名單內。</p>", "message": "<p><i>nuTensor</i> 預設不會阻止黑名單中的 Cookie 進入您的瀏覽器,而是阻止它们離開开您的瀏覽器,因後者更具有意義。不於 Cookie 進入瀏覽器之前阻止它們將使您有機會得知網站正嘗試使用 Cookie以便您有需要時進一步查看。</p><p>若黑名單中的 Cookie 被 <i>nuTensor</i> 所計入則可按閱下意願將其移除。</p><p><b>重要提示:</b>附加元件於其運作期間作出網絡請求之時將可能產生 Cookie。如果 Cookie 所在域名並未被列入白名單,則 <i>nuTensor</i> 會於該選項開啟之時移除這些 Cookie。請確保用於附加元件通訊的域名處於白名單內。</p>",
"description": "" "description": ""
}, },
"privacyDeleteNonBlockedSessionCookiesPrompt1": { "privacyDeleteNonBlockedSessionCookiesPrompt1": {
@ -380,7 +532,7 @@
"description": "Second part of 'Clear browser cache every [n] minutes'" "description": "Second part of 'Clear browser cache every [n] minutes'"
}, },
"privacyClearCacheHelp": { "privacyClearCacheHelp": {
"message": "<p>某些網站特别熱衷於追蹤,以至於為規避您的反跟蹤舉措,會使用一些不太光彩的手段。</p><p>一部分詭計利用了<a href='https://zh.wikipedia.org/wiki/%E7%BD%91%E9%A1%B5%E5%BF%AB%E7%85%A7'>瀏覽器快取</a><sup>[1, 2]</sup>,因為快取內容通常會長期儲留,用戶也基本不會去親自清理。</p><p>定期清理瀏覽器快取其實並不怎麼麻煩(甚至很可能不會被注意到),且貴在可以保護您的隱私免受追蹤者侵犯。</p><p>啟用該設定將容許 <i>uMatrix</i> 依您指定的時間定期為您完成此項工作。</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>「阻止利用瀏覽器快取進行網絡追蹤」</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>「Cookieless Cookies」</a></p>", "message": "<p>某些網站特别熱衷於追蹤,以至於為規避您的反跟蹤舉措,會使用一些不太光彩的手段。</p><p>一部分詭計利用了<a href='https://zh.wikipedia.org/wiki/%E7%BD%91%E9%A1%B5%E5%BF%AB%E7%85%A7'>瀏覽器快取</a><sup>[1, 2]</sup>,因為快取內容通常會長期儲留,用戶也基本不會去親自清理。</p><p>定期清理瀏覽器快取其實並不怎麼麻煩(甚至很可能不會被注意到),且貴在可以保護您的隱私免受追蹤者侵犯。</p><p>啟用該設定將容許 <i>nuTensor</i> 依您指定的時間定期為您完成此項工作。</p><p>[1] <a href='https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache'>「阻止利用瀏覽器快取進行網絡追蹤」</a>\n[2] <a href='http://lucb1e.com/rp/cookielesscookies/'>「Cookieless Cookies」</a></p>",
"description": "" "description": ""
}, },
"privacyProcessRefererPrompt": { "privacyProcessRefererPrompt": {
@ -388,7 +540,7 @@
"description": "" "description": ""
}, },
"privacyProcessRefererHelp": { "privacyProcessRefererHelp": {
"message": "維基百科:<blockquote>HTTP 位址參照是一個用於辨識請求來源網頁網址的內容標識。……<b>由於位址參照可能會洩漏隱私,某些瀏覽器容許使用者禁止傳送位址參照。</b></blockquote>若啟用該設定,<i>uMatrix</i> 則會於來源網頁請求的 HTTP 位址參照中包含的域名與請求資源所在域名有差別時偽造位址參照。", "message": "維基百科:<blockquote>HTTP 位址參照是一個用於辨識請求來源網頁網址的內容標識。……<b>由於位址參照可能會洩漏隱私,某些瀏覽器容許使用者禁止傳送位址參照。</b></blockquote>若啟用該設定,<i>nuTensor</i> 則會於來源網頁請求的 HTTP 位址參照中包含的域名與請求資源所在域名有差別時偽造位址參照。",
"description": "" "description": ""
}, },
"privacyNoMixedContentPrompt": { "privacyNoMixedContentPrompt": {
@ -532,7 +684,7 @@
"description": "" "description": ""
}, },
"aboutChangelog": { "aboutChangelog": {
"message": "<a href='https://github.com/gorhill/uMatrix/releases'>更新日誌</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/releases'>更新日誌</a>",
"description": "" "description": ""
}, },
"aboutStorageUsed": { "aboutStorageUsed": {
@ -540,11 +692,11 @@
"description": "" "description": ""
}, },
"aboutDoc": { "aboutDoc": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki'>幫助文檔</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>幫助文檔</a>",
"description": "" "description": ""
}, },
"aboutPermissions": { "aboutPermissions": {
"message": "<a href='https://github.com/gorhill/uMatrix/wiki/Permissions'>權限說明</a>", "message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>權限說明</a>",
"description": "" "description": ""
}, },
"aboutCode": { "aboutCode": {
@ -588,7 +740,7 @@
"description": "" "description": ""
}, },
"aboutRestoreConfirm": { "aboutRestoreConfirm": {
"message": "您的所有設定將由 {{time}} 的備份數據所覆蓋,接著 uMatrix 將會重新啟動。\n\n是否要用備份數據覆蓋現有設定", "message": "您的所有設定將由 {{time}} 的備份數據所覆蓋,接著 nuTensor 將會重新啟動。\n\n是否要用備份數據覆蓋現有設定",
"description": "Message asking user to confirm restore" "description": "Message asking user to confirm restore"
}, },
"aboutRestoreError": { "aboutRestoreError": {
@ -607,33 +759,9 @@
"message": "小心!這將移除您的所有設定。確定要繼續?", "message": "小心!這將移除您的所有設定。確定要繼續?",
"description": "Message asking user to confirm reset" "description": "Message asking user to confirm reset"
}, },
"loggerFilterInputPlaceholder": {
"message": "規則過濾表達式",
"description": "Appears in the input filed where filter expressions are entered"
},
"loggerMaxEntriesTip": {
"message": "日誌條數限制",
"description": "Appears as a tooltip when hovering the input field"
},
"loggerEntryCookieDeleted": {
"message": "已刪除 Cookie{{value}}",
"description": "An entry for when a cookie is deleted"
},
"loggerEntryDeleteCookieError": {
"message": "無法刪除 Cookie{{value}}",
"description": "An entry for when the browser cache is cleared"
},
"loggerEntryBrowserCacheCleared": {
"message": "瀏覽器快取清除完畢",
"description": "An entry for when a cookie can't be deleted"
},
"loggerEntryAssetUpdated": {
"message": "已更新資料:{{value}}",
"description": "An entry for when an asset was updated"
},
"mainBlockedPrompt1": { "mainBlockedPrompt1": {
"message": "uMatrix 已阻止載入以下頁面:", "message": "nuTensor 已阻止載入以下頁面:",
"description": "English: uMatrix has prevented the following page from loading:" "description": "English: nuTensor has prevented the following page from loading:"
}, },
"mainBlockedPrompt2": { "mainBlockedPrompt2": {
"message": "因以下規則", "message": "因以下規則",
@ -730,5 +858,9 @@
"genericApplyChanges": { "genericApplyChanges": {
"message": "應用變更", "message": "應用變更",
"description": "for generic 'Apply changes' buttons" "description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "複製到剪貼簿",
"description": "Label for buttons used to copy something to the clipboard"
} }
} }

@ -2,10 +2,14 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>uMatrix — About</title> <title>nuTensor — About</title>
<link rel="stylesheet" type="text/css" href="css/common.css"> <link rel="stylesheet" type="text/css" href="css/common.css">
<link rel="stylesheet" type="text/css" href="css/dashboard-common.css"> <link rel="stylesheet" type="text/css" href="css/dashboard-common.css">
<style> <style>
div.body > ul {
padding-left: 0;
padding-right: 0;
}
ul { ul {
list-style-type: none; list-style-type: none;
} }
@ -15,20 +19,23 @@ ul {
<body> <body>
<div class="body"> <div class="body">
<h3>uMatrix <span id="aboutVersion"></span></h3> <h3>nuTensor <span id="aboutVersion"></span></h3>
<ul> <ul>
<li>Copyright (c) Raymond Hill 2013-2020<br>
<li>Copyright (c) Ian Parker 2020<br>
<li>&nbsp;
<li><span id="aboutStorageUsed"></span><br> <li><span id="aboutStorageUsed"></span><br>
<li>&nbsp; <li>&nbsp;
<li><span data-i18n="aboutChangelog"></span><br> <li><span data-i18n="aboutChangelog"></span><br>
<li><a href="https://github.com/gorhill/uMatrix/wiki"><span data-i18n="aboutDoc"></span></a><br> <li><a href="https://github.com/geekprojects/nuTensor/wiki"><span data-i18n="aboutDoc"></span></a><br>
<li><span data-i18n="aboutPermissions"></span><br> <li><span data-i18n="aboutPermissions"></span><br>
<li><a href="https://github.com/gorhill/uMatrix" data-i18n="aboutCode"></a><br> <li><a href="https://github.com/geekprojects/nuTensor" data-i18n="aboutCode"></a><br>
<li><a href="https://github.com/uBlockOrigin/uMatrix-issues/issues" data-i18n="aboutIssues"></a><br> <li><a href="https://github.com/geekprojects/nuTensor/issues" data-i18n="aboutIssues"></a><br>
<li><span data-i18n="aboutContributors"></span> <li><span data-i18n="aboutContributors"></span>
<ul> <ul>
<li><span data-i18n="aboutCodeContributors"></span> <a href="https://github.com/gorhill/uMatrix/graphs/contributors">uMatrix, <a href="https://github.com/gorhill/httpswitchboard/graphs/contributors">HTTP Switchboard</a> <li><span data-i18n="aboutCodeContributors"></span> <a href="https://github.com/geekprojects/nuTensor/graphs/contributors">nuTensor, <a href="https://github.com/gorhill/httpswitchboard/graphs/contributors">HTTP Switchboard</a>
<li><span data-i18n="aboutIssueContributors"></span> <a href="https://github.com/gorhill/uMatrix/issues?q=is%3Aissue">uMatrix</a>, <a href="https://github.com/gorhill/httpswitchboard/issues?q=is%3Aissue">HTTP Switchboard</a> <li><span data-i18n="aboutIssueContributors"></span> <a href="https://github.com/geekprojects/nuTensor/issues?q=is%3Aissue">nuTensor</a>, <a href="https://github.com/gorhill/httpswitchboard/issues?q=is%3Aissue">HTTP Switchboard</a>
<li><span data-i18n="aboutTranslationContributors"></span> <a href="https://github.com/gorhill/uMatrix/wiki/Translation-work-contributors">Crowdin</a> <li><span data-i18n="aboutTranslationContributors"></span> <a href="https://github.com/geekprojects/nuTensor/wiki/Translation-work-contributors">Crowdin</a>
</ul> </ul>
<li><a href="https://github.com/bestiejs/punycode.js" target="_blank">Punycode.js</a> by <a href="https://github.com/mathiasbynens">Mathias Bynens</a> <li><a href="https://github.com/bestiejs/punycode.js" target="_blank">Punycode.js</a> by <a href="https://github.com/mathiasbynens">Mathias Bynens</a>
<li><a href="https://fontawesome.com/" target="_blank">Font Awesome</a> by <a href="https://github.com/davegandy">Dave Gandy</a> <li><a href="https://fontawesome.com/" target="_blank">Font Awesome</a> by <a href="https://github.com/davegandy">Dave Gandy</a>
@ -55,6 +62,7 @@ ul {
<span data-i18n="aboutResetConfirm"></span> <span data-i18n="aboutResetConfirm"></span>
</div> </div>
<script src="js/vapi.js"></script>
<script src="js/vapi-common.js"></script> <script src="js/vapi-common.js"></script>
<script src="js/vapi-client.js"></script> <script src="js/vapi-client.js"></script>
<script src="js/udom.js"></script> <script src="js/udom.js"></script>

@ -4,18 +4,45 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>uMatrix — Asset viewer</title> <title>uMatrix — Asset viewer</title>
<link rel="stylesheet" href="lib/codemirror/lib/codemirror.css">
<link rel="stylesheet" href="lib/codemirror/addon/search/matchesonscrollbar.css">
<link rel="stylesheet" href="css/fa-icons.css">
<link rel="stylesheet" href="css/codemirror.css">
<style> <style>
body {
border: 0;
margin: 0;
padding: 0;
}
#content { #content {
font: 12px monospace; height: 100vh;
white-space: pre; width: 100vw;
}
/* https://github.com/uBlockOrigin/uBlock-issues/issues/292 */
.CodeMirror-wrap pre {
word-break: break-all;
} }
</style> </style>
</head> </head>
<body> <body>
<div id="content"></div> <div id="content" class="codeMirrorContainer"></div>
<script src="lib/codemirror/lib/codemirror.js"></script>
<script src="lib/codemirror/addon/display/panel.js"></script>
<script src="lib/codemirror/addon/scroll/annotatescrollbar.js"></script>
<script src="lib/codemirror/addon/search/matchesonscrollbar.js"></script>
<script src="lib/codemirror/addon/search/searchcursor.js"></script>
<script src="lib/codemirror/addon/selection/active-line.js"></script>
<script src="js/codemirror/search.js"></script>
<script src="js/fa-icons.js"></script>
<script src="js/vapi.js"></script>
<script src="js/vapi-common.js"></script> <script src="js/vapi-common.js"></script>
<script src="js/vapi-client.js"></script> <script src="js/vapi-client.js"></script>
<script src="js/udom.js"></script> <script src="js/udom.js"></script>
<script src="js/dashboard-common.js"></script>
<script src="js/asset-viewer.js"></script> <script src="js/asset-viewer.js"></script>
</body> </body>
</html> </html>

@ -2,36 +2,37 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>uMatrix</title> <title>nuTensor</title>
</head> </head>
<body> <body>
<script src="js/console.js"></script>
<script src="lib/lz4/lz4-block-codec-any.js"></script>
<script src="lib/punycode.js"></script> <script src="lib/punycode.js"></script>
<script src="lib/publicsuffixlist.js"></script> <script src="lib/publicsuffixlist/publicsuffixlist.js"></script>
<script src="js/webext.js"></script>
<script src="js/vapi.js"></script>
<script src="js/vapi-common.js"></script> <script src="js/vapi-common.js"></script>
<script src="js/vapi-background.js"></script> <script src="js/vapi-background.js"></script>
<!-- Forks can pick the chromium, firefox, or their own implementation -->
<script src="js/vapi-webrequest.js"></script> <script src="js/vapi-webrequest.js"></script>
<!-- Optional -->
<script src="js/vapi-cachestorage.js"></script>
<script src="js/background.js"></script> <script src="js/background.js"></script>
<script src="js/traffic.js"></script>
<script src="js/hntrie.js"></script>
<script src="js/utils.js"></script>
<script src="js/uritools.js"></script>
<script src="js/lz4.js"></script>
<script src="js/usersettings.js"></script> <script src="js/usersettings.js"></script>
<script src="js/liquid-dict.js"></script>
<script src="js/matrix.js"></script> <script src="js/matrix.js"></script>
<script src="js/recipe-manager.js"></script> <script src="js/recipe-manager.js"></script>
<script src="js/utils.js"></script> <script src="js/cachestorage.js"></script>
<script src="js/assets.js"></script> <script src="js/assets.js"></script>
<script src="js/filtering-context.js"></script>
<script src="js/httpsb.js"></script> <script src="js/httpsb.js"></script>
<script src="js/uritools.js"></script>
<script src="js/cookies.js"></script> <script src="js/cookies.js"></script>
<script src="js/logger.js"></script> <script src="js/logger.js"></script>
<script src="js/messaging.js"></script> <script src="js/messaging.js"></script>
<script src="js/storage.js"></script> <script src="js/storage.js"></script>
<script src="js/pagestats.js"></script> <script src="js/pagestats.js"></script>
<script src="js/tab.js"></script> <script src="js/tab.js"></script>
<script src="js/traffic.js"></script>
<script src="js/browsercache.js"></script> <script src="js/browsercache.js"></script>
<script src="js/start.js"></script> <script src="js/start.js"></script>
</body> </body>

@ -1,6 +1,5 @@
.codeMirrorContainer { .codeMirrorContainer {
font-size: 12px; font-size: 12px;
line-height: 1.25;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
} }
@ -18,6 +17,73 @@
height: 100%; height: 100%;
} }
.cm-s-default .cm-comment { color: #777; }
.cm-directive { color: #333; font-weight: bold; }
.cm-staticext { color: #008; }
.cm-staticnetBlock { color: #800; }
.cm-staticnetAllow { color: #004f00; }
.cm-staticOpt { background-color: #ddd; font-weight: bold; }
.cm-search-widget {
align-items: center;
background-color: #eee;
cursor: default;
direction: ltr;
display: flex;
flex-shrink: 0;
font-size: 110%;
justify-content: center;
padding: 4px 8px;
/* position: absolute; */
right: 2em;
top: 0;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
z-index: 1000;
}
.cm-search-widget .fa-icon {
fill: #888;
font-size: 140%;
}
.cm-search-widget .fa-icon:not(.fa-icon-ro):hover {
fill: #000;
}
.cm-search-widget-input {
border: 1px solid gray;
border-radius: 3px;
display: inline-flex;
min-width: 16em;
}
.cm-search-widget-input > input {
border: 0;
flex-grow: 1;
}
.cm-search-widget-input > .cm-search-widget-count {
align-items: center;
color: #888;
display: none;
flex-grow: 0;
font-size: 80%;
padding: 0 0.4em;
pointer-events: none;
}
.cm-search-widget[data-query] .cm-search-widget-count {
display: inline-flex;
}
.cm-search-widget .cm-search-widget-button:hover {
color: #000;
}
.cm-search-widget .sourceURL {
padding-left: 0.5em;
padding-right: 0.5em;
position: absolute;
left: 0;
}
.cm-search-widget .sourceURL[href=""] {
display: none;
}
.CodeMirror-merge-l-deleted { .CodeMirror-merge-l-deleted {
background-image: none; background-image: none;
font-weight: bold; font-weight: bold;

@ -12,7 +12,7 @@
} }
body { body {
font-size: 14px; font: 14px sans-serif;
} }
body[dir="ltr"] { body[dir="ltr"] {
direction: ltr; direction: ltr;
@ -111,3 +111,35 @@ button.custom[disabled] {
code { code {
font-size: 90%; font-size: 90%;
} }
.px-icon {
align-items: center;
background-color: transparent;
border: 0;
display: inline-flex;
filter: grayscale(100%);
justify-content: center;
margin: 0;
padding: 0.1em;
position: relative;
}
.px-icon > * {
pointer-events: none;
}
.px-icon.disabled,
.disabled > .px-icon,
.px-icon[disabled],
[disabled] > .px-icon {
color: #000;
fill: #000;
opacity: 0.25;
stroke: #888;
pointer-events: none;
}
.px-icon > img {
height: 1em;
width: 1em;
}
.px-icon.active {
filter: none;
}

@ -23,9 +23,13 @@ body {
white-space: nowrap; white-space: nowrap;
background-color: white; background-color: white;
} }
#dashboard-nav-widgets span { #dashboard-nav-widgets > span {
padding: 0 0.5em; padding: 0 0.5em;
font-size: larger; font-size: larger;
vertical-align: bottom;
}
#dashboard-nav-widgets > span > img {
width: 1em;
} }
.tabButton { .tabButton {
margin: 0; margin: 0;

@ -40,6 +40,9 @@
.fa-icon.disabled > .fa-icon-badge { .fa-icon.disabled > .fa-icon-badge {
display: none; display: none;
} }
.fa-icon.fa-icon-vflipped {
transform: scale(1, -1);
}
.fa-icon > svg { .fa-icon > svg {
height: 1em; height: 1em;

@ -1,425 +1,623 @@
body { body {
background-color: white; background-color: white;
border: 0; border: 0;
box-sizing: border-box;
-moz-box-sizing: border-box;
color: black; color: black;
display: flex;
flex-direction: column;
height: 100vh;
margin: 0; margin: 0;
overflow-x: hidden; overflow: hidden;
padding: 0; padding: 0;
width: 100%; width: 100vw;
}
.fa-icon {
cursor: pointer;
font-size: 150%;
padding: 0.4em 0.6em;
} }
.fa-icon:hover { textarea {
background-color: #eee; box-sizing: border-box;
direction: ltr;
resize: none;
width: 100%;
} }
#toolbar { .permatoolbar {
background-color: white; background-color: white;
border: 0; border: 0;
border-bottom: 1px solid #ccc;
box-sizing: border-box; box-sizing: border-box;
-moz-box-sizing: border-box; display: flex;
left: 0; flex-shrink: 0;
font-size: 120%;
justify-content: space-between;
margin: 0; margin: 0;
padding: 0.5em 1em; padding: 0.25em;
position: fixed;
top: 0;
width: 100%;
z-index: 10;
} }
#toolbar > div { .permatoolbar > div {
display: flex; display: flex;
padding: 0.5em; }
white-space: nowrap; .permatoolbar .button {
cursor: pointer;
font-size: 150%;
padding: 0.25em;
}
.permatoolbar .button.active {
fill: #5F9EA0;
}
.permatoolbar .button:hover {
background-color: #eee;
} }
#pageSelector { #pageSelector {
padding: 0.25em 0;
width: 28em; width: 28em;
margin-right: 0.5em; }
padding: 0.2em 0; body[dir="ltr"] #pageSelector {
margin-right: 1em;
}
body[dir="rtl"] #pageSelector {
margin-left: 1em;
}
#showpopup {
display: inline-flex;
align-items: center;
}
#info {
fill: #ccc;
}
#info:hover {
fill: #000;
}
/*
https://github.com/gorhill/uBlock/issues/3293
=> https://devhints.io/css-system-font-stack
*/
#inspectors {
flex-grow: 1;
font-family: "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}
.inspector {
border-top: 1px solid #ccc;
display: flex;
flex-direction: column;
}
.vscrollable {
direction: ltr;
flex-grow: 1;
font-size: small;
overflow-x: hidden;
overflow-y: auto;
}
.inspector:not(.vExpanded) .vCompactToggler.button {
transform: scaleY(-1)
}
.hCompact .hCompactToggler.button {
transform: scaleX(-1)
} }
@keyframes popupPanelShow { #inspectors.dom #netInspector {
from { opacity: 0; } display: none;
to { opacity: 1; } }
#netInspector #pause > span:last-of-type {
display: none;
} }
#popupPanelContainer { #netInspector.paused #pause > span:first-of-type {
background: white;
border: 1px solid gray;
display: none; display: none;
overflow: hidden; }
position: fixed; #netInspector.paused #pause > span:last-of-type {
right: 0; display: inline-flex;
z-index: 2000; fill: #5F9EA0;
}
#netInspector #filterExprGroup {
display: flex;
margin: 0 1em;
position: relative;
} }
body.popupPanelOn #popupPanelContainer { #netInspector #filterButton {
animation-duration: 0.25s; opacity: 0.25;
animation-name: popupPanelShow;
display: block;
} }
#popupPanelContainer.hide { #netInspector.f #filterButton {
width: 6em !important; opacity: 1;
} }
#popupPanelContainer > iframe { #netInspector #filterInput {
border: 1px solid gray;
display: inline-flex;
}
#netInspector #filterInput > input {
border: 0; border: 0;
padding: 0; min-width: 16em;
margin: 0; }
overflow: hidden; #netInspector #filterExprButton {
width: 100%; transform: scaleY(-1);
}
#netInspector #filterExprButton:hover {
background-color: transparent;
}
#netInspector #filterExprButton.expanded {
transform: scaleY(1);
} }
#popupPanelContainer.hide > iframe { #netInspector #filterExprPicker {
background-color: white;
border: 1px solid gray;
display: none; display: none;
position: absolute;
flex-direction: column;
font-size: small;
top: 100%;
z-index: 100;
}
body[dir="ltr"] #netInspector #filterExprPicker {
right: 0;
}
body[dir="rtl"] #netInspector #filterExprPicker {
left: 0;
} }
#popupPanelButton use { #netInspector #filterExprGroup:hover #filterExprButton.expanded ~ #filterExprPicker {
transform: scale(1, 0.4); display: flex;
} }
body.popupPanelOn #popupPanelButton use { #netInspector #filterExprPicker > div {
transform: scale(1, 1); border: 1px dotted #ddd;
border-left: 0;
border-right: 0;
display: flex;
padding: 0.5em;
} }
body.compactView #compactViewToggler use { #netInspector #filterExprPicker > div:first-of-type {
transform: scale(1, -1); border-top: 0;
transform-origin: center;
} }
#filterButton { #netInspector #filterExprPicker > div:last-of-type {
opacity: 0.25; border-bottom: 0;
} }
body.f #filterButton { #netInspector #filterExprPicker div {
opacity: 1; display: flex;
} }
#filterInput.bad { #netInspector #filterExprPicker span[data-filtex] {
background-color: #fee; align-items: center;
border: 1px solid transparent;
cursor: pointer;
display: inline-flex;
margin: 0 0.5em 0 0;
padding: 0.5em;
white-space: nowrap;
} }
#maxEntries { #netInspector #filterExprPicker span[data-filtex]:last-of-type {
margin: 0 2em; margin: 0;
} }
input:focus { #netInspector #filterExprPicker span[data-filtex]:hover {
background-color: #ffe; background-color: aliceblue;
border: 1px solid lightblue;
} }
#content { #netInspector #filterExprPicker span.on[data-filtex] {
font-family: "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; background-color: lightblue;
font-size: 13px; border: 1px solid lightblue;
width: 100%;
} }
#content table { #netInspector .vscrollable {
border: 0; overflow: hidden;
border-collapse: collapse; }
direction: ltr; #vwRenderer {
table-layout: fixed; box-sizing: border-box;
height: 100%;
overflow: hidden;
position: relative;
width: 100%; width: 100%;
} }
#content table > colgroup > col:nth-of-type(1) { #vwRenderer #vwScroller {
width: 4.6em; height: 100%;
overflow-x: hidden;
overflow-y: auto;
position: absolute;
width: 100%;
} }
#content table > colgroup > col:nth-of-type(2) { #vwRenderer #vwScroller #vwVirtualContent {
width: 25%; overflow: hidden;
} }
#content table > colgroup > col:nth-of-type(3) { #vwRenderer #vwContent {
width: 2.2em; left: 0;
overflow: hidden;
position: absolute;
width: 100%;
} }
#content table > colgroup > col:nth-of-type(4) { #vwRenderer .logEntry {
width: 5.4em; display: block;
left: 0;
overflow: hidden;
position: absolute;
width: 100%;
} }
#content table > colgroup > col:nth-of-type(5) { #vwRenderer .logEntry:empty {
width: calc(100% - 4.6em - 25% - 2.2em - 5.4em - 1.8em); display: none;
} }
#content table > colgroup > col:nth-of-type(6) { #vwRenderer .logEntry > div {
width: 1.8em; height: 100%;
white-space: nowrap;
} }
#content table tr { #vwRenderer .logEntry > div[data-status="--"] {
background-color: #fafafa; background-color: rgba(192, 0, 0, 0.1);
} }
body.f table tr.f { body.colorBlind #vwRenderer .logEntry > div[data-status="--"] {
display: none; background-color: rgba(0, 19, 110, 0.1);
} }
#content table tr:nth-of-type(2n+1) { #vwRenderer .logEntry > div[data-status="3"] {
background-color: #eee; background-color: rgba(108, 108, 108, 0.1);
} }
body.colorBlind #vwRenderer .logEntry > div[data-status="3"] {
#content table tr.cat_info { background-color: rgba(96, 96, 96, 0.1);
color: #00f; }
#vwRenderer .logEntry > div[data-status="++"] {
background-color: rgba(0, 160, 0, 0.1);
}
body.colorBlind #vwRenderer .logEntry > div[data-status="++"] {
background-color: rgba(255, 194, 57, 0.1)
}
#vwRenderer .logEntry > div[data-tabid="-1"] {
text-shadow: 0 0.2em 0.4em #aaa;
} }
#content table tr.blocked { #vwRenderer .logEntry > div[data-aliasid] {
color: #f00; color: mediumblue;
} }
#content table tr.doc { #vwRenderer .logEntry > div[data-type="tabLoad"] {
background-color: #666; background-color: #666;
color: white; color: white;
text-align: center; }
#vwRenderer .logEntry > div[data-type="error"] {
color: #800;
}
#vwRenderer .logEntry > div[data-type="info"] {
color: #008;
}
#vwRenderer .logEntry > div.voided {
opacity: 0.3;
}
#vwRenderer .logEntry > div.voided:hover {
opacity: 0.7;
} }
body #content td { #vwRenderer .logEntry > div > span {
border: 1px solid #ccc; border: 1px solid #ccc;
min-width: 0.5em; border-top: 0;
padding: 3px; border-right: 0;
vertical-align: top; box-sizing: border-box;
white-space: normal; display: inline-block;
height: 100%;
overflow: hidden;
padding: 0.2em;
text-align: left;
vertical-align: middle;
white-space: nowrap;
word-break: break-all; word-break: break-all;
word-wrap: break-word;
} }
#content table tr td:first-of-type { #vwRenderer .logEntry > div.canDetails:hover > span {
border-left: none; background-color: rgba(0,0,0,0.04);
} }
#content table tr td:last-of-type { body[dir="ltr"] #vwRenderer .logEntry > div > span:first-child {
border-right: none; border-left: 0;
} }
body.compactView #content tr:not(.vExpanded) td { body[dir="rtl"] #vwRenderer .logEntry > div > span:first-child {
overflow: hidden; border-right: 0;
text-overflow: ellipsis;
white-space: nowrap;
} }
#vwRenderer .logEntry > div > span:nth-of-type(1) {
#content table tr td:nth-of-type(1) { text-align: center;
cursor: default;
text-align: right;
white-space: nowrap;
} }
#content table tr td:nth-of-type(2):not([colspan]) { #vwRenderer .logEntry > div > span:nth-of-type(2) {
direction: rtl;
text-align: right; text-align: right;
text-overflow: ellipsis;
}
.vExpanded #vwRenderer .logEntry > div > span:nth-of-type(2) {
overflow-y: auto;
white-space: pre-line;
}
#netInspector.vExpanded #vwRenderer .logEntry > div > span:nth-of-type(2) {
text-align: left;
unicode-bidi: plaintext; unicode-bidi: plaintext;
} }
#content table tr[data-tabid="-1"] td:nth-of-type(2):not([colspan]) { #vwRenderer .logEntry > div:not(.messageRealm) > span:nth-of-type(2) {
position: relative; direction: rtl;
}
#vwRenderer .logEntry > div.messageRealm > span:nth-of-type(2) {
color: blue;
text-align: left;
}
#vwRenderer .logEntry > div.messageRealm[data-type="tabLoad"] > span:nth-of-type(2) {
color: white;
text-align: center;
}
#vwRenderer .logEntry > div.messageRealm > span:nth-of-type(2) ~ span {
display: none;
} }
#content table tr td:nth-of-type(3) { #vwRenderer .logEntry > div > span:nth-of-type(3) {
text-align: center;
}
#vwRenderer #vwContent .logEntry > div > span:nth-of-type(4) {
color: #888;
position: relative; position: relative;
text-overflow: ellipsis;
} }
/* visual for tabless network requests */ #vwRenderer #vwContent .logEntry > div[data-header] > span:nth-of-type(4) {
#content table tr[data-tabid="-1"] td:nth-of-type(3)::before { color: black;
border: 5px solid #bbb; }
border-bottom: 0; .vExpanded #vwRenderer #vwContent .logEntry > div > span:nth-of-type(4) {
border-top: 0; overflow-y: auto;
bottom: 0; text-overflow: clip;
content: '\00a0'; white-space: pre-line;
left: 0; }
#vwRenderer .logEntry > div > span:nth-of-type(4) b {
color: black;
font-weight: normal;
}
#vwRenderer .logEntry > div[data-aliasid] > span:nth-of-type(4) b {
color: mediumblue;
}
#vwRenderer .logEntry > div > span:nth-of-type(4) a {
background-color: dimgray;
color: white;
display: none;
height: 100%;
padding: 0 0.25em;
opacity: 0.4;
position: absolute; position: absolute;
right: 0; right: 0;
text-decoration: none;
top: 0; top: 0;
width: calc(100% - 10px);
} }
#content table tr.tab:not(.canMtx) { #netInspector.vExpanded #vwRenderer .logEntry > div > span:nth-of-type(4) a {
opacity: 0.3; bottom: 0px;
height: unset;
padding: 0.25em;
top: unset;
} }
#content table tr.tab:not(.canMtx):hover { #vwRenderer .logEntry > div > span:nth-of-type(4) a::after {
opacity: 0.7; content: '\2197';
} }
#content table tr.cat_net td:nth-of-type(3) { #vwRenderer .logEntry > div.networkRealm > span:nth-of-type(4):hover a {
cursor: pointer; align-items: center;
display: inline-flex;
}
#vwRenderer .logEntry > div > span:nth-of-type(4) a:hover {
opacity: 1;
}
#vwRenderer .logEntry > div > span:nth-of-type(5) {
text-align: right;
}
/* visual for tabless network requests */
#vwRenderer .logEntry > div > span:nth-of-type(5) {
}
#vwRenderer .logEntry > div > span:nth-of-type(6) {
font: 12px monospace; font: 12px monospace;
text-align: center; text-align: center;
white-space: nowrap;
} }
#content table tr.cat_net td:nth-of-type(5) { #vwRenderer .logEntry > div.canDetails:hover > span:nth-of-type(1),
#vwRenderer .logEntry > div.canDetails:hover > span:nth-of-type(3),
#vwRenderer .logEntry > div.canDetails:hover > span:nth-of-type(6) {
background: rgba(0, 0, 255, 0.1);
cursor: zoom-in;
} }
#content table tr.cat_net td:nth-of-type(5) > span > * {
opacity: 0.6; #vwRenderer #vwBottom {
background-color: #00F;
height: 0;
overflow: hidden;
width: 100%;
} }
#content table tr.cat_net td:nth-of-type(5) > span > b:first-of-type { #vwRenderer #vwLineSizer {
opacity: 1; left: 0;
pointer-events: none;
position: absolute;
top: 0;
visibility: hidden;
width: 100%;
}
#popupContainer {
background: white;
border: 1px solid gray;
bottom: 0;
box-sizing: content-box;
display: none;
max-height: 75vh;
overflow: hidden;
position: fixed;
right: 0;
z-index: 200;
}
#inspectors.popupOn #popupContainer {
display: block;
} }
.modalDialog { #modalOverlay {
align-items: center; align-items: center;
background-color: rgba(0, 0, 0, 0.5); background-color: rgba(0, 0, 0, 0.5);
display: flex; border: 0;
height: 100vh; bottom: 0;
display: none;
justify-content: center; justify-content: center;
left: 0; left: 0;
margin: 0;
position: fixed; position: fixed;
right: 0;
top: 0; top: 0;
width: 100vw; z-index: 400;
z-index: 5000;
} }
.modalDialog > .dialog { #modalOverlay.on {
background-color: white;
font: 15px httpsb,sans-serif;
min-width: fit-content;
padding: 0.5em;
width: 90%;
}
#ruleEditor section {
display: flex; display: flex;
} }
.scopeWidget { #modalOverlay > div {
line-height: 2.5em; position: relative;
margin-bottom: 0.5em;
} }
#specificScope, .ruleCell:nth-of-type(1) { #modalOverlay > div > div:nth-of-type(1) {
flex-grow: 1; background-color: white;
border: 0;
box-sizing: border-box;
padding: 1em;
max-height: 90vh;
overflow-y: auto;
width: 90vw;
}
#modalOverlay > div > div:nth-of-type(2) {
stroke: #000;
stroke-width: 3px;
position: absolute;
width: 1.6em;
height: 1.6em;
bottom: calc(100% + 2px);
background-color: white;
} }
#globalScope, .ruleCell:nth-of-type(2) { body[dir="ltr"] #modalOverlay > div > div:nth-of-type(2) {
width: 4em; right: 0;
} }
.ruleEditorToolbar { body[dir="rtl"] #modalOverlay > div > div:nth-of-type(2) {
display: flex; left: 0;
flex-direction: column;
justify-content: space-around;
margin-left: 0.5em;
padding: 0.2em;
} }
.ruleEditorToolbar .fa-icon { #modalOverlay > div > div:nth-of-type(2):hover {
padding: 0.4em; background-color: #eee;
} }
#modalOverlay > div > div:nth-of-type(2) > * {
.fa-icon.scopeRel { pointer-events: none;
color: #24c;
fill: #24c;
} }
body[data-scope="*"] .fa-icon.scopeRel {
color: #000; #netFilteringDialog {
fill: #000; font-size: 95%;
} }
.ruleWidgets { #netFilteringDialog a {
display: flex; text-decoration: none;
flex-direction: column;
flex-grow: 1;
} }
.ruleRow { #netFilteringDialog > .headers {
display: flex; border-bottom: 1px solid #888;
line-height: 2em; line-height: 2;
margin-top: 1px; position: relative;
} }
.ruleCell { #netFilteringDialog > .headers > .header {
background-color: #eee; background-color: #eee;
border: 1px dotted rgba(0,0,0,0.2); border: 1px solid #aaa;
border-bottom: 1px solid #888;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
color: #888;
cursor: pointer; cursor: pointer;
display: inline-block; display: inline-block;
margin-left: 1px; padding: 0 1em;
padding: 1px;
position: relative; position: relative;
}
.ruleCell:hover {
border-style: solid;
}
.ruleCell:nth-of-type(1) {
margin-left: 0;
text-align: right;
}
.ruleCell:nth-of-type(2) {
text-align: center; text-align: center;
top: 1px;
} }
.ruleCell[data-tcolor="1"] { #netFilteringDialog[data-pane="details"] > .headers > [data-pane="details"],
border-color: #debaba; #netFilteringDialog[data-pane="rule"] > .headers > [data-pane="rule"] {
color: black; background-color: white;
background-color: #f8d0d0; border-color: #888;
} border-bottom: 1px solid white;
#ruleEditor.colorblind .ruleCell[data-tcolor="1"] {
border-color: rgba(0, 19, 110, 0.3);
color: black; color: black;
background-color: rgba(0, 19, 110, 0.2);
} }
.ruleCell[data-tcolor="2"] { #netFilteringDialog > div.panes {
border-color: #bad6ba; height: 50vh;
color: black; overflow: hidden;
background-color: #d0f0d0; overflow-y: auto;
padding-top: 1em;
} }
#ruleEditor.colorblind .ruleCell[data-tcolor="2"] { #netFilteringDialog > div.panes > div {
border-color: rgba(255, 194, 57, 0.3); display: none;
color: black; height: 100%;
background-color: rgba(255, 194, 57, 0.2);
} }
.ruleCell[data-tcolor="129"] { #netFilteringDialog[data-pane="details"] > .panes > [data-pane="details"],
color: white; #netFilteringDialog[data-pane="rule"] > .panes > [data-pane="rule"] {
background-color: #c00; display: flex;
flex-direction: column;
} }
#ruleEditor.colorblind .ruleCell[data-tcolor="129"] { #netFilteringDialog > .panes > [data-pane="details"] > div {
color: white; align-items: stretch;
background-color: rgb(0, 19, 110); background-color: #e6e6e6;
border: 0;
border-bottom: 1px solid white;
display: flex;
} }
.ruleCell[data-tcolor="130"] { #netFilteringDialog > .panes > [data-pane="details"] > div > span {
color: white; padding: 0.5em;
background-color: #080;
} }
#ruleEditor.colorblind .ruleCell[data-tcolor="130"] { #netFilteringDialog > .panes > [data-pane="details"] > div > span:nth-of-type(1) {
border-color: rgb(255, 194, 57); border: 0;
color: black; flex-grow: 0;
background-color: rgb(255, 194, 57); flex-shrink: 0;
text-align: right;
width: 8em;
} }
.ruleCell[data-pcolor="129"] { body[dir="ltr"] #netFilteringDialog > .panes > [data-pane="details"] > div > span:nth-of-type(1) {
background-image: url('../img/permanent-black-small.png'); border-right: 1px solid white;
background-repeat: no-repeat;
background-position: -1px -1px;
} }
#ruleEditor.colorblind .ruleCell[data-pcolor="129"] { body[dir="rtl"] #netFilteringDialog > .panes > [data-pane="details"] > div > span:nth-of-type(1) {
background-image: url('../img/permanent-black-small-cb.png'); border-left: 1px solid white;
} }
.ruleCell[data-pcolor="130"] { #netFilteringDialog > .panes > [data-pane="details"] > div > span:nth-of-type(2) {
background-image: url('../img/permanent-white-small.png'); flex-grow: 1;
background-repeat: no-repeat; max-height: 20vh;
background-position: -1px -1px; overflow: hidden auto;
white-space: pre-line
} }
#ruleEditor.colorblind .ruleCell[data-pcolor="130"] { #netFilteringDialog > .panes > [data-pane="details"] > div > span:nth-of-type(2):not(.prose) {
background-image: url('../img/permanent-white-small-cb.png'); word-break: break-all;
} }
#netFilteringDialog > .panes > [data-pane="rule"] iframe {
#ruleActionPicker {
border: 0; border: 0;
height: 100%; height: 100%;
left: 0;
margin: 0;
padding: 0;
position: absolute;
top: 0;
width: 100%;
z-index: 10;
} }
.allowRule, .blockRule {
#loggerExportDialog {
display: flex;
flex-direction: column;
}
#loggerExportDialog .options {
display: flex;
justify-content: space-between;
margin-bottom: 1em;
}
#loggerExportDialog .options > div {
display: inline-flex;
}
#loggerExportDialog .options span[data-i18n] {
border: 1px solid lightblue;
cursor: pointer;
font-size: 90%;
margin: 0; margin: 0;
border: 0; padding: 0.5em;
padding: 0; white-space: nowrap;
position: absolute;
left: 0;
width: 100%;
height: 50%;
background: transparent;
} }
.allowRule { #loggerExportDialog .options span[data-i18n]:hover {
top: 0; background-color: aliceblue;
} }
.blockRule { #loggerExportDialog .options span.on[data-i18n],
top: 50%; #loggerExportDialog .options span.pushbutton:active {
background-color: lightblue;
} }
.ruleCell[data-tcolor="1"] .allowRule:hover { #loggerExportDialog .output {
background-color: #080; font: smaller mono;
opacity: 0.25; height: 60vh;
padding: 0.5em;
white-space: pre;
} }
.ruleCell[data-tcolor="1"] .blockRule:hover {
background-color: #c00; #loggerSettingsDialog {
opacity: 0.25; display: flex;
flex-direction: column;
} }
.ruleCell[data-tcolor="2"] .allowRule:hover { #loggerSettingsDialog > div {
background-color: #080; padding-bottom: 1em;
opacity: 0.25;
} }
.ruleCell[data-tcolor="2"] .blockRule:hover { #loggerSettingsDialog > div:last-of-type {
background-color: #c00; padding-bottom: 0;
opacity: 0.25;
} }
.ruleCell[data-tcolor="129"] .allowRule:hover { #loggerSettingsDialog ul {
background-color: transparent; padding: 0;
} }
.ruleCell[data-tcolor="129"] .blockRule:hover { body[dir="ltr"] #loggerSettingsDialog ul {
background-color: transparent; padding-left: 2em;
} }
.ruleCell[data-pcolor="130"] .allowRule:hover { body[dir="rtl"] #loggerSettingsDialog ul {
background-color: transparent; padding-right: 2em;
} }
.ruleCell[data-pcolor="130"] .blockRule:hover { #loggerSettingsDialog li {
background-color: transparent; list-style-type: none;
margin: 0.5em 0 0 0;
} }
#ruleEditor.colorblind .ruleCell[data-tcolor="1"] .allowRule:hover, #loggerSettingsDialog input {
#ruleEditor.colorblind .ruleCell[data-tcolor="2"] .allowRule:hover { max-width: 6em;
background-color: rgb(255, 194, 57);
opacity: 0.6;
} }
#ruleEditor.colorblind .ruleCell[data-tcolor="1"] .blockRule:hover,
#ruleEditor.colorblind .ruleCell[data-tcolor="2"] .blockRule:hover { .hide {
background-color: rgb(0, 19, 110); display: none !important;
opacity: 0.4;
} }

@ -54,9 +54,7 @@ a {
border: 0; border: 0;
color: #bbb; color: #bbb;
cursor: pointer; cursor: pointer;
display: block; font: 12px/1 sans-serif;
font-size: 12px;
line-height: 12px;
margin: 0; margin: 0;
padding: 3px 0; padding: 3px 0;
position: relative; position: relative;
@ -65,17 +63,11 @@ a {
.paneHead { .paneHead {
background-color: white; background-color: white;
left: 0;
padding: 0; padding: 0;
position: fixed; position: sticky;
right: 0;
top: 0; top: 0;
z-index: 100; z-index: 100;
} }
.paneContent {
padding-top: 5.5em;
}
.paneHead > a:first-child { .paneHead > a:first-child {
background-color: #444; background-color: #444;
@ -152,6 +144,9 @@ body .toolbar button.disabled {
opacity: 1; opacity: 1;
stroke: none; stroke: none;
} }
#mtxSwitches > li > svg > * {
fill: #bbb;
}
#mtxSwitches > li.relevant > svg .dot { #mtxSwitches > li.relevant > svg .dot {
fill: #aaa; fill: #aaa;
} }
@ -181,6 +176,13 @@ body .toolbar button.disabled {
#mtxSwitches > li > a:hover { #mtxSwitches > li > a:hover {
opacity: 0.8; opacity: 0.8;
} }
#mtxSwitches > li.unsupported {
cursor: default;
}
#mtxSwitches > li.unsupported > svg .on,
#mtxSwitches > li.unsupported > svg .off {
display: none;
}
.dropdown-menu-capture { .dropdown-menu-capture {
background-color: rgba(0,0,0,0.2); background-color: rgba(0,0,0,0.2);
@ -336,30 +338,33 @@ body[data-scope="*"] .toolbar .scopeRel.disabled {
color: #ccc; color: #ccc;
} }
body.embedded [data-extension-url],
body.tabless .needtab {
display: none;
}
.matrix { .matrix {
text-align: left; text-align: left;
} }
.matRow { .matRow {
white-space: nowrap; display: flex;
} }
.matCell { .matCell {
margin: 1px 1px 0 0; align-items: center;
border: 1px dotted rgba(0,0,0,0.2);
padding: 6px 1px 3px 1px;
display: inline-block;
box-sizing: content-box; box-sizing: content-box;
-moz-box-sizing: content-box; display: inline-flex;
width: 2.6em; flex-shrink: 0;
white-space: nowrap; justify-content: center;
text-align: center;
line-height: 110%; line-height: 110%;
margin: 1px 1px 0 0;
padding: 6px 2px;
position: relative; position: relative;
width: 2.6em;
} }
#matHead { #matHead {
border-top: 1px dotted #ccc; padding-bottom: 1px;
padding-top: 1px; padding-top: 1px;
margin: 1px 0 0 0;
} }
.paneHead .matCell:nth-child(2) { .paneHead .matCell:nth-child(2) {
letter-spacing: -0.3px; letter-spacing: -0.3px;
@ -369,31 +374,33 @@ body[data-scope="*"] .toolbar .scopeRel.disabled {
font-weight: 100; font-weight: 100;
} }
.paneContent .matrix .matRow > .matCell:first-child > b { .paneContent .matrix .matRow > .matCell:first-child > b {
display: contents;
font-weight: normal; font-weight: normal;
} }
/* RFC 3987 Internationalized Resource Identifiers (IRIs) -- 4.4 */ /* RFC 3987 Internationalized Resource Identifiers (IRIs) -- 4.4 */
.matrix .matRow > .matCell:first-child { .matrix .matRow > .matCell:first-child {
direction: ltr; direction: ltr;
flex-grow: 1;
flex-shrink: 1;
justify-content: flex-end;
text-align: right; text-align: right;
unicode-bidi: embed; unicode-bidi: embed;
width: 16em; width: 16em;
word-break: break-all;
} }
.matrix .matGroup.g4 .matRow.ro > .matCell:first-child { .matrix .matGroup.g4 .matRow.ro > .matCell:first-child {
direction: inherit; direction: inherit;
} }
.matrix .matRow.l2 > .matCell:first-child { .matrix .matRow.l2 > .matCell:first-child {
margin-left: 1px;
width: calc(16em - 1px);
} }
.matrix .matRow > .matCell:hover { .matrix .matRow > .matCell:hover {
border-style: solid;
} }
.matrix .matGroup .matSection { .matrix .matGroup .matSection {
margin: 2px 0 0 0;
border: 0; border: 0;
padding: 0; padding: 0;
/* background-color: rgba(0,0,0,0.05); */ }
.matrix .matGroup .matSection:hover {
} }
.matrix .matGroup.g0 .matSection:first-child { .matrix .matGroup.g0 .matSection:first-child {
margin-top: 0; margin-top: 0;
@ -406,7 +413,7 @@ body[data-scope="*"] .toolbar .scopeRel.disabled {
display: none; display: none;
} }
.matrix .matSection.collapsible.collapsed .matRow.meta { .matrix .matSection.collapsible.collapsed .matRow.meta {
display: block; display: flex;
} }
.matrix .matSection.collapsible.collapsed .matRow.l1:not(.meta) { .matrix .matSection.collapsible.collapsed .matRow.l1:not(.meta) {
display: none; display: none;
@ -416,6 +423,9 @@ body[data-scope="*"] .toolbar .scopeRel.disabled {
} }
/* Collapsing of blacklisted */ /* Collapsing of blacklisted */
.matrix .matGroup.g4 {
margin-bottom: 1px;
}
.matrix .g4Meta { .matrix .g4Meta {
margin: 0; margin: 0;
padding: 0; padding: 0;
@ -443,7 +453,7 @@ body.powerOff .matrix .g4Meta.g4Collapsed ~ .matSection {
display: none; display: none;
} }
.matrix .g4Meta.g4Collapsed ~ .matRow.ro { .matrix .g4Meta.g4Collapsed ~ .matRow.ro {
display: block; display: flex;
} }
body.powerOff .matrix .g4Meta.g4Collapsed ~ .matRow.ro { body.powerOff .matrix .g4Meta.g4Collapsed ~ .matRow.ro {
display: none; display: none;
@ -463,12 +473,10 @@ body.powerOff .matrix .g4Meta.g4Collapsed ~ .matRow.ro {
background-color: #080; background-color: #080;
} }
.t1 { .t1 {
border-color: #debaba;
color: black; color: black;
background-color: #f8d0d0; background-color: #f8d0d0;
} }
.t2 { .t2 {
border-color: #bad6ba;
color: black; color: black;
background-color: #d0f0d0; background-color: #d0f0d0;
} }
@ -489,17 +497,14 @@ body.colorblind .t81 {
background-color: rgb(0, 19, 110); background-color: rgb(0, 19, 110);
} }
body.colorblind .t82 { body.colorblind .t82 {
border-color: rgb(255, 194, 57);
color: black; color: black;
background-color: rgb(255, 194, 57); background-color: rgb(255, 194, 57);
} }
body.colorblind .t1 { body.colorblind .t1 {
border-color: rgba(0, 19, 110, 0.3);
color: black; color: black;
background-color: rgba(0, 19, 110, 0.2); background-color: rgba(0, 19, 110, 0.2);
} }
body.colorblind .t2 { body.colorblind .t2 {
border-color: rgba(255, 194, 57, 0.3);
color: black; color: black;
background-color: rgba(255, 194, 57, 0.2); background-color: rgba(255, 194, 57, 0.2);
} }
@ -612,7 +617,7 @@ body.colorblind .rw .matCell.t2 #blacklist:hover {
} }
.matSection.collapsible .matRow.l1 .matCell:nth-of-type(1):hover #domainOnly, .matSection.collapsible .matRow.l1 .matCell:nth-of-type(1):hover #domainOnly,
#matHead.collapsible .matRow .matCell:nth-of-type(1):hover #domainOnly { #matHead.collapsible .matRow .matCell:nth-of-type(1):hover #domainOnly {
display: inline-flex; display: inline-block;
} }
#domainOnly:hover { #domainOnly:hover {
opacity: 1; opacity: 1;
@ -638,12 +643,6 @@ body.noTabFound #noTabFound {
body.hConstrained { body.hConstrained {
overflow-x: auto; overflow-x: auto;
} }
body.hConstrained .paneHead {
left: auto;
position: absolute;
right: auto;
width: 100%;
}
body[data-touch="true"] .matCell { body[data-touch="true"] .matCell {
line-height: 200%; line-height: 200%;
} }

@ -1,20 +1,16 @@
div.body { html {
box-sizing: border-box;
display: flex;
flex-direction: column;
height: 100vh; height: 100vh;
justify-content: space-between;
overflow: hidden; overflow: hidden;
} }
p { body {
margin: 0.5em 0; overflow: hidden;
} }
textarea { #rawSettings {
box-sizing: border-box; border-top: 1px solid #ddd;
flex-grow: 1; height: 75vh;
resize: none;
text-align: left; text-align: left;
white-space: pre;
width: 100%; width: 100%;
word-wrap: normal; }
.CodeMirror-wrap pre {
word-break: break-all;
} }

@ -5,15 +5,15 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" type="image/png" href="img/icon_16.png"> <link rel="shortcut icon" type="image/png" href="img/icon_16.png">
<title data-i18n="dashboardPageName"></title> <title data-i18n="dashboardPageName"></title>
<link href='css/dashboard.css' rel='stylesheet' type='text/css'> <link href="css/dashboard.css" rel="stylesheet" type="text/css">
<link href='css/common.css' rel='stylesheet' type='text/css'> <link href="css/common.css" rel="stylesheet" type="text/css">
</head> </head>
<body> <body>
<div id="dashboard-nav"> <div id="dashboard-nav">
<div id="dashboard-nav-widgets"> <div id="dashboard-nav-widgets">
<span>uMatrix</span> <span data-i18n-title="extName"><img src="img/icon_64.png"></span><!--
<a class="tabButton" id="settings" href="#settings" data-dashboard-panel-url="settings.html" data-i18n="settingsPageName"></a> --><a class="tabButton" id="settings" href="#settings" data-dashboard-panel-url="settings.html" data-i18n="settingsPageName"></a>
<a class="tabButton" id="user-rules" href="#user-rules" data-dashboard-panel-url="user-rules.html" data-i18n="userRulesPageName"></a> <a class="tabButton" id="user-rules" href="#user-rules" data-dashboard-panel-url="user-rules.html" data-i18n="userRulesPageName"></a>
<a class="tabButton" id="hosts-files" href="#hosts-files" data-dashboard-panel-url="hosts-files.html" data-i18n="ubiquitousRulesPageName"></a> <a class="tabButton" id="hosts-files" href="#hosts-files" data-dashboard-panel-url="hosts-files.html" data-i18n="ubiquitousRulesPageName"></a>
<a class="tabButton" id="raw-settings" href="#raw-settings" data-dashboard-panel-url="raw-settings.html" data-i18n="rawSettingsPageName"></a> <a class="tabButton" id="raw-settings" href="#raw-settings" data-dashboard-panel-url="raw-settings.html" data-i18n="rawSettingsPageName"></a>
@ -23,6 +23,7 @@
<iframe src=""></iframe> <iframe src=""></iframe>
<script src="js/vapi.js"></script>
<script src="js/vapi-common.js"></script> <script src="js/vapi-common.js"></script>
<script src="js/vapi-client.js"></script> <script src="js/vapi-client.js"></script>
<script src="js/udom.js"></script> <script src="js/udom.js"></script>

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>uMatrix — Hosts files</title> <title>nuTensor — Hosts files</title>
<link rel="stylesheet" href="css/fa-icons.css"> <link rel="stylesheet" href="css/fa-icons.css">
<link rel="stylesheet" href="css/common.css"> <link rel="stylesheet" href="css/common.css">
<link rel="stylesheet" href="css/dashboard-common.css"> <link rel="stylesheet" href="css/dashboard-common.css">
@ -55,7 +55,7 @@
--><a class="fa-icon mustread" href="" target="_blank">info-circle</a>&#8203;<!-- --><a class="fa-icon mustread" href="" target="_blank">info-circle</a>&#8203;<!--
--><span class="fa-icon status unsecure" title="http">unlock</span>&#8203;<!-- --><span class="fa-icon status unsecure" title="http">unlock</span>&#8203;<!--
--><span class="counts dim status"></span>&#8203;<!-- --><span class="counts dim status"></span>&#8203;<!--
--><span class="fa-icon status obsolete" title="hostsFilesExternalListObsolete">exclamation-triangle</span>&#8203;<!-- --><span class="fa-icon status obsolete" data-i18n-title="hostsFilesExternalListObsolete">exclamation-triangle</span>&#8203;<!--
--><span class="fa-icon status cache">clock</span>&#8203;<!-- --><span class="fa-icon status cache">clock</span>&#8203;<!--
--><span class="fa-icon status updating">spinner</span>&#8203;<!-- --><span class="fa-icon status updating">spinner</span>&#8203;<!--
--><span class="fa-icon status failed">unlink</span> --><span class="fa-icon status failed">unlink</span>
@ -66,8 +66,10 @@
</div><!-- end of div.body --> </div><!-- end of div.body -->
<script src="js/fa-icons.js"></script> <script src="js/fa-icons.js"></script>
<script src="js/vapi.js"></script>
<script src="js/vapi-common.js"></script> <script src="js/vapi-common.js"></script>
<script src="js/vapi-client.js"></script> <script src="js/vapi-client.js"></script>
<script src="js/vapi-client-extra.js"></script>
<script src="js/udom.js"></script> <script src="js/udom.js"></script>
<script src="js/i18n.js"></script> <script src="js/i18n.js"></script>
<script src="js/dashboard-common.js"></script> <script src="js/dashboard-common.js"></script>

@ -28,6 +28,7 @@ License - https://github.com/FortAwesome/Font-Awesome/tree/a8386aae19e200ddb0f68
<defs> <defs>
<symbol id="angle-up" viewBox="0 0 998 582"><path d="m 998,499 q 0,13 -10,23 l -50,50 q -10,10 -23,10 -13,0 -23,-10 L 499,179 106,572 Q 96,582 83,582 70,582 60,572 L 10,522 Q 0,512 0,499 0,486 10,476 L 476,10 q 10,-10 23,-10 13,0 23,10 l 466,466 q 10,10 10,23 z"/></symbol> <symbol id="angle-up" viewBox="0 0 998 582"><path d="m 998,499 q 0,13 -10,23 l -50,50 q -10,10 -23,10 -13,0 -23,-10 L 499,179 106,572 Q 96,582 83,582 70,582 60,572 L 10,522 Q 0,512 0,499 0,486 10,476 L 476,10 q 10,-10 23,-10 13,0 23,10 l 466,466 q 10,10 10,23 z"/></symbol>
<symbol id="arrow-left" viewBox="0 0 1472 1558"><path d="m 1472,715 0,128 q 0,53 -32.5,90.5 Q 1407,971 1355,971 l -704,0 293,294 q 38,36 38,90 0,54 -38,90 l -75,76 q -37,37 -90,37 -52,0 -91,-37 L 37,869 Q 0,832 0,779 0,727 37,688 L 688,38 q 38,-38 91,-38 52,0 90,38 l 75,74 q 38,38 38,91 0,53 -38,91 l -293,293 704,0 q 52,0 84.5,37.5 32.5,37.5 32.5,90.5 z"/></symbol> <symbol id="arrow-left" viewBox="0 0 1472 1558"><path d="m 1472,715 0,128 q 0,53 -32.5,90.5 Q 1407,971 1355,971 l -704,0 293,294 q 38,36 38,90 0,54 -38,90 l -75,76 q -37,37 -90,37 -52,0 -91,-37 L 37,869 Q 0,832 0,779 0,727 37,688 L 688,38 q 38,-38 91,-38 52,0 90,38 l 75,74 q 38,38 38,91 0,53 -38,91 l -293,293 704,0 q 52,0 84.5,37.5 32.5,37.5 32.5,90.5 z"/></symbol>
<symbol id="clipboard" viewBox="0 0 1792 1792"><path d="m 768,1664 896,0 0,-640 -416,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-416 -384,0 0,1152 z m 256,-1440 0,-64 q 0,-13 -9.5,-22.5 Q 1005,128 992,128 l -704,0 q -13,0 -22.5,9.5 Q 256,147 256,160 l 0,64 q 0,13 9.5,22.5 9.5,9.5 22.5,9.5 l 704,0 q 13,0 22.5,-9.5 9.5,-9.5 9.5,-22.5 z m 256,672 299,0 -299,-299 0,299 z m 512,128 0,672 q 0,40 -28,68 -28,28 -68,28 l -960,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-160 -544,0 Q 56,1536 28,1508 0,1480 0,1440 L 0,96 Q 0,56 28,28 56,0 96,0 l 1088,0 q 40,0 68,28 28,28 28,68 l 0,328 q 21,13 36,28 l 408,408 q 28,28 48,76 20,48 20,88 z"/></symbol>
<symbol id="clock" viewBox="0 0 1536 1536"><path d="m 896,416 0,448 q 0,14 -9,23 -9,9 -23,9 l -320,0 q -14,0 -23,-9 -9,-9 -9,-23 l 0,-64 q 0,-14 9,-23 9,-9 23,-9 l 224,0 0,-352 q 0,-14 9,-23 9,-9 23,-9 l 64,0 q 14,0 23,9 9,9 9,23 z m 416,352 q 0,-148 -73,-273 -73,-125 -198,-198 -125,-73 -273,-73 -148,0 -273,73 -125,73 -198,198 -73,125 -73,273 0,148 73,273 73,125 198,198 125,73 273,73 148,0 273,-73 125,-73 198,-198 73,-125 73,-273 z m 224,0 q 0,209 -103,385.5 Q 1330,1330 1153.5,1433 977,1536 768,1536 559,1536 382.5,1433 206,1330 103,1153.5 0,977 0,768 0,559 103,382.5 206,206 382.5,103 559,0 768,0 977,0 1153.5,103 1330,206 1433,382.5 1536,559 1536,768 Z"/></symbol> <symbol id="clock" viewBox="0 0 1536 1536"><path d="m 896,416 0,448 q 0,14 -9,23 -9,9 -23,9 l -320,0 q -14,0 -23,-9 -9,-9 -9,-23 l 0,-64 q 0,-14 9,-23 9,-9 23,-9 l 224,0 0,-352 q 0,-14 9,-23 9,-9 23,-9 l 64,0 q 14,0 23,9 9,9 9,23 z m 416,352 q 0,-148 -73,-273 -73,-125 -198,-198 -125,-73 -273,-73 -148,0 -273,73 -125,73 -198,198 -73,125 -73,273 0,148 73,273 73,125 198,198 125,73 273,73 148,0 273,-73 125,-73 198,-198 73,-125 73,-273 z m 224,0 q 0,209 -103,385.5 Q 1330,1330 1153.5,1433 977,1536 768,1536 559,1536 382.5,1433 206,1330 103,1153.5 0,977 0,768 0,559 103,382.5 206,206 382.5,103 559,0 768,0 977,0 1153.5,103 1330,206 1433,382.5 1536,559 1536,768 Z"/></symbol>
<symbol id="cloud-download" viewBox="0 0 1920 1408"><path d="m 1280,800 q 0,-14 -9,-23 -9,-9 -23,-9 l -224,0 0,-352 q 0,-13 -9.5,-22.5 Q 1005,384 992,384 l -192,0 q -13,0 -22.5,9.5 Q 768,403 768,416 l 0,352 -224,0 q -13,0 -22.5,9.5 -9.5,9.5 -9.5,22.5 0,14 9,23 l 352,352 q 9,9 23,9 14,0 23,-9 l 351,-351 q 10,-12 10,-24 z m 640,224 q 0,159 -112.5,271.5 Q 1695,1408 1536,1408 l -1088,0 Q 263,1408 131.5,1276.5 0,1145 0,960 0,830 70,720 140,610 258,555 256,525 256,512 256,300 406,150 556,0 768,0 q 156,0 285.5,87 129.5,87 188.5,231 71,-62 166,-62 106,0 181,75 75,75 75,181 0,76 -41,138 130,31 213.5,135.5 Q 1920,890 1920,1024 Z"/></symbol> <symbol id="cloud-download" viewBox="0 0 1920 1408"><path d="m 1280,800 q 0,-14 -9,-23 -9,-9 -23,-9 l -224,0 0,-352 q 0,-13 -9.5,-22.5 Q 1005,384 992,384 l -192,0 q -13,0 -22.5,9.5 Q 768,403 768,416 l 0,352 -224,0 q -13,0 -22.5,9.5 -9.5,9.5 -9.5,22.5 0,14 9,23 l 352,352 q 9,9 23,9 14,0 23,-9 l 351,-351 q 10,-12 10,-24 z m 640,224 q 0,159 -112.5,271.5 Q 1695,1408 1536,1408 l -1088,0 Q 263,1408 131.5,1276.5 0,1145 0,960 0,830 70,720 140,610 258,555 256,525 256,512 256,300 406,150 556,0 768,0 q 156,0 285.5,87 129.5,87 188.5,231 71,-62 166,-62 106,0 181,75 75,75 75,181 0,76 -41,138 130,31 213.5,135.5 Q 1920,890 1920,1024 Z"/></symbol>
<symbol id="cloud-upload" viewBox="0 0 1920 1408"><path d="m 1280,736 q 0,-14 -9,-23 L 919,361 q -9,-9 -23,-9 -14,0 -23,9 L 522,712 q -10,12 -10,24 0,14 9,23 9,9 23,9 l 224,0 0,352 q 0,13 9.5,22.5 9.5,9.5 22.5,9.5 l 192,0 q 13,0 22.5,-9.5 9.5,-9.5 9.5,-22.5 l 0,-352 224,0 q 13,0 22.5,-9.5 9.5,-9.5 9.5,-22.5 z m 640,288 q 0,159 -112.5,271.5 Q 1695,1408 1536,1408 l -1088,0 Q 263,1408 131.5,1276.5 0,1145 0,960 0,830 70,720 140,610 258,555 256,525 256,512 256,300 406,150 556,0 768,0 q 156,0 285.5,87 129.5,87 188.5,231 71,-62 166,-62 106,0 181,75 75,75 75,181 0,76 -41,138 130,31 213.5,135.5 Q 1920,890 1920,1024 Z"/></symbol> <symbol id="cloud-upload" viewBox="0 0 1920 1408"><path d="m 1280,736 q 0,-14 -9,-23 L 919,361 q -9,-9 -23,-9 -14,0 -23,9 L 522,712 q -10,12 -10,24 0,14 9,23 9,9 23,9 l 224,0 0,352 q 0,13 9.5,22.5 9.5,9.5 22.5,9.5 l 192,0 q 13,0 22.5,-9.5 9.5,-9.5 9.5,-22.5 l 0,-352 224,0 q 13,0 22.5,-9.5 9.5,-9.5 9.5,-22.5 z m 640,288 q 0,159 -112.5,271.5 Q 1695,1408 1536,1408 l -1088,0 Q 263,1408 131.5,1276.5 0,1145 0,960 0,830 70,720 140,610 258,555 256,525 256,512 256,300 406,150 556,0 768,0 q 156,0 285.5,87 129.5,87 188.5,231 71,-62 166,-62 106,0 181,75 75,75 75,181 0,76 -41,138 130,31 213.5,135.5 Q 1920,890 1920,1024 Z"/></symbol>
@ -42,6 +43,8 @@ License - https://github.com/FortAwesome/Font-Awesome/tree/a8386aae19e200ddb0f68
<symbol id="info-circle" viewBox="0 0 1536 1536"><path d="m 1024,1248 0,-160 q 0,-14 -9,-23 -9,-9 -23,-9 l -96,0 0,-512 q 0,-14 -9,-23 -9,-9 -23,-9 l -320,0 q -14,0 -23,9 -9,9 -9,23 l 0,160 q 0,14 9,23 9,9 23,9 l 96,0 0,320 -96,0 q -14,0 -23,9 -9,9 -9,23 l 0,160 q 0,14 9,23 9,9 23,9 l 448,0 q 14,0 23,-9 9,-9 9,-23 z M 896,352 896,192 q 0,-14 -9,-23 -9,-9 -23,-9 l -192,0 q -14,0 -23,9 -9,9 -9,23 l 0,160 q 0,14 9,23 9,9 23,9 l 192,0 q 14,0 23,-9 9,-9 9,-23 z m 640,416 q 0,209 -103,385.5 Q 1330,1330 1153.5,1433 977,1536 768,1536 559,1536 382.5,1433 206,1330 103,1153.5 0,977 0,768 0,559 103,382.5 206,206 382.5,103 559,0 768,0 977,0 1153.5,103 1330,206 1433,382.5 1536,559 1536,768 Z"/></symbol> <symbol id="info-circle" viewBox="0 0 1536 1536"><path d="m 1024,1248 0,-160 q 0,-14 -9,-23 -9,-9 -23,-9 l -96,0 0,-512 q 0,-14 -9,-23 -9,-9 -23,-9 l -320,0 q -14,0 -23,9 -9,9 -9,23 l 0,160 q 0,14 9,23 9,9 23,9 l 96,0 0,320 -96,0 q -14,0 -23,9 -9,9 -9,23 l 0,160 q 0,14 9,23 9,9 23,9 l 448,0 q 14,0 23,-9 9,-9 9,-23 z M 896,352 896,192 q 0,-14 -9,-23 -9,-9 -23,-9 l -192,0 q -14,0 -23,9 -9,9 -9,23 l 0,160 q 0,14 9,23 9,9 23,9 l 192,0 q 14,0 23,-9 9,-9 9,-23 z m 640,416 q 0,209 -103,385.5 Q 1330,1330 1153.5,1433 977,1536 768,1536 559,1536 382.5,1433 206,1330 103,1153.5 0,977 0,768 0,559 103,382.5 206,206 382.5,103 559,0 768,0 977,0 1153.5,103 1330,206 1433,382.5 1536,559 1536,768 Z"/></symbol>
<symbol id="list-alt" viewBox="0 0 1792 1408"><path d="m 384,1056 0,64 q 0,13 -9.5,22.5 -9.5,9.5 -22.5,9.5 l -64,0 q -13,0 -22.5,-9.5 Q 256,1133 256,1120 l 0,-64 q 0,-13 9.5,-22.5 9.5,-9.5 22.5,-9.5 l 64,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 0,-256 0,64 q 0,13 -9.5,22.5 Q 365,896 352,896 l -64,0 q -13,0 -22.5,-9.5 Q 256,877 256,864 l 0,-64 q 0,-13 9.5,-22.5 Q 275,768 288,768 l 64,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 0,-256 0,64 q 0,13 -9.5,22.5 Q 365,640 352,640 l -64,0 q -13,0 -22.5,-9.5 Q 256,621 256,608 l 0,-64 q 0,-13 9.5,-22.5 Q 275,512 288,512 l 64,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 1152,512 0,64 q 0,13 -9.5,22.5 -9.5,9.5 -22.5,9.5 l -960,0 q -13,0 -22.5,-9.5 Q 512,1133 512,1120 l 0,-64 q 0,-13 9.5,-22.5 9.5,-9.5 22.5,-9.5 l 960,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 0,-256 0,64 q 0,13 -9.5,22.5 -9.5,9.5 -22.5,9.5 l -960,0 q -13,0 -22.5,-9.5 Q 512,877 512,864 l 0,-64 q 0,-13 9.5,-22.5 Q 531,768 544,768 l 960,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 0,-256 0,64 q 0,13 -9.5,22.5 -9.5,9.5 -22.5,9.5 l -960,0 q -13,0 -22.5,-9.5 Q 512,621 512,608 l 0,-64 q 0,-13 9.5,-22.5 Q 531,512 544,512 l 960,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 128,704 0,-832 q 0,-13 -9.5,-22.5 Q 1645,384 1632,384 l -1472,0 q -13,0 -22.5,9.5 Q 128,403 128,416 l 0,832 q 0,13 9.5,22.5 9.5,9.5 22.5,9.5 l 1472,0 q 13,0 22.5,-9.5 9.5,-9.5 9.5,-22.5 z m 128,-1088 0,1088 q 0,66 -47,113 -47,47 -113,47 l -1472,0 Q 94,1408 47,1361 0,1314 0,1248 L 0,160 Q 0,94 47,47 94,0 160,0 l 1472,0 q 66,0 113,47 47,47 47,113 z"/></symbol> <symbol id="list-alt" viewBox="0 0 1792 1408"><path d="m 384,1056 0,64 q 0,13 -9.5,22.5 -9.5,9.5 -22.5,9.5 l -64,0 q -13,0 -22.5,-9.5 Q 256,1133 256,1120 l 0,-64 q 0,-13 9.5,-22.5 9.5,-9.5 22.5,-9.5 l 64,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 0,-256 0,64 q 0,13 -9.5,22.5 Q 365,896 352,896 l -64,0 q -13,0 -22.5,-9.5 Q 256,877 256,864 l 0,-64 q 0,-13 9.5,-22.5 Q 275,768 288,768 l 64,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 0,-256 0,64 q 0,13 -9.5,22.5 Q 365,640 352,640 l -64,0 q -13,0 -22.5,-9.5 Q 256,621 256,608 l 0,-64 q 0,-13 9.5,-22.5 Q 275,512 288,512 l 64,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 1152,512 0,64 q 0,13 -9.5,22.5 -9.5,9.5 -22.5,9.5 l -960,0 q -13,0 -22.5,-9.5 Q 512,1133 512,1120 l 0,-64 q 0,-13 9.5,-22.5 9.5,-9.5 22.5,-9.5 l 960,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 0,-256 0,64 q 0,13 -9.5,22.5 -9.5,9.5 -22.5,9.5 l -960,0 q -13,0 -22.5,-9.5 Q 512,877 512,864 l 0,-64 q 0,-13 9.5,-22.5 Q 531,768 544,768 l 960,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 0,-256 0,64 q 0,13 -9.5,22.5 -9.5,9.5 -22.5,9.5 l -960,0 q -13,0 -22.5,-9.5 Q 512,621 512,608 l 0,-64 q 0,-13 9.5,-22.5 Q 531,512 544,512 l 960,0 q 13,0 22.5,9.5 9.5,9.5 9.5,22.5 z m 128,704 0,-832 q 0,-13 -9.5,-22.5 Q 1645,384 1632,384 l -1472,0 q -13,0 -22.5,9.5 Q 128,403 128,416 l 0,832 q 0,13 9.5,22.5 9.5,9.5 22.5,9.5 l 1472,0 q 13,0 22.5,-9.5 9.5,-9.5 9.5,-22.5 z m 128,-1088 0,1088 q 0,66 -47,113 -47,47 -113,47 l -1472,0 Q 94,1408 47,1361 0,1314 0,1248 L 0,160 Q 0,94 47,47 94,0 160,0 l 1472,0 q 66,0 113,47 47,47 47,113 z"/></symbol>
<symbol id="lock" viewBox="0 0 1152 1408"><path d="m 320,640 512,0 0,-192 q 0,-106 -75,-181 -75,-75 -181,-75 -106,0 -181,75 -75,75 -75,181 l 0,192 z m 832,96 0,576 q 0,40 -28,68 -28,28 -68,28 l -960,0 Q 56,1408 28,1380 0,1352 0,1312 L 0,736 q 0,-40 28,-68 28,-28 68,-28 l 32,0 0,-192 Q 128,264 260,132 392,0 576,0 q 184,0 316,132 132,132 132,316 l 0,192 32,0 q 40,0 68,28 28,28 28,68 z"/></symbol> <symbol id="lock" viewBox="0 0 1152 1408"><path d="m 320,640 512,0 0,-192 q 0,-106 -75,-181 -75,-75 -181,-75 -106,0 -181,75 -75,75 -75,181 l 0,192 z m 832,96 0,576 q 0,40 -28,68 -28,28 -68,28 l -960,0 Q 56,1408 28,1380 0,1352 0,1312 L 0,736 q 0,-40 28,-68 28,-28 68,-28 l 32,0 0,-192 Q 128,264 260,132 392,0 576,0 q 184,0 316,132 132,132 132,316 l 0,192 32,0 q 40,0 68,28 28,28 28,68 z"/></symbol>
<symbol id="pause-circle-o" viewBox="0 0 1536 1536"><path d="M 768,0 Q 977,0 1153.5,103 1330,206 1433,382.5 1536,559 1536,768 1536,977 1433,1153.5 1330,1330 1153.5,1433 977,1536 768,1536 559,1536 382.5,1433 206,1330 103,1153.5 0,977 0,768 0,559 103,382.5 206,206 382.5,103 559,0 768,0 Z m 0,1312 q 148,0 273,-73 125,-73 198,-198 73,-125 73,-273 0,-148 -73,-273 -73,-125 -198,-198 -125,-73 -273,-73 -148,0 -273,73 -125,73 -198,198 -73,125 -73,273 0,148 73,273 73,125 198,198 125,73 273,73 z m 96,-224 q -14,0 -23,-9 -9,-9 -9,-23 l 0,-576 q 0,-14 9,-23 9,-9 23,-9 l 192,0 q 14,0 23,9 9,9 9,23 l 0,576 q 0,14 -9,23 -9,9 -23,9 l -192,0 z m -384,0 q -14,0 -23,-9 -9,-9 -9,-23 l 0,-576 q 0,-14 9,-23 9,-9 23,-9 l 192,0 q 14,0 23,9 9,9 9,23 l 0,576 q 0,14 -9,23 -9,9 -23,9 l -192,0 z"/></symbol>
<symbol id="play-circle-o" viewBox="0 0 1536 1536"><path d="m 1184,768 q 0,37 -32,55 l -544,320 q -15,9 -32,9 -16,0 -32,-8 -32,-19 -32,-56 l 0,-640 q 0,-37 32,-56 33,-18 64,1 l 544,320 q 32,18 32,55 z m 128,0 q 0,-148 -73,-273 -73,-125 -198,-198 -125,-73 -273,-73 -148,0 -273,73 -125,73 -198,198 -73,125 -73,273 0,148 73,273 73,125 198,198 125,73 273,73 148,0 273,-73 125,-73 198,-198 73,-125 73,-273 z m 224,0 q 0,209 -103,385.5 Q 1330,1330 1153.5,1433 977,1536 768,1536 559,1536 382.5,1433 206,1330 103,1153.5 0,977 0,768 0,559 103,382.5 206,206 382.5,103 559,0 768,0 977,0 1153.5,103 1330,206 1433,382.5 1536,559 1536,768 Z"/></symbol>
<symbol id="plus" viewBox="0 0 1408 1408"><path d="m 1408,608 0,192 q 0,40 -28,68 -28,28 -68,28 l -416,0 0,416 q 0,40 -28,68 -28,28 -68,28 l -192,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-416 -416,0 Q 56,896 28,868 0,840 0,800 L 0,608 q 0,-40 28,-68 28,-28 68,-28 l 416,0 0,-416 Q 512,56 540,28 568,0 608,0 l 192,0 q 40,0 68,28 28,28 28,68 l 0,416 416,0 q 40,0 68,28 28,28 28,68 z"/></symbol> <symbol id="plus" viewBox="0 0 1408 1408"><path d="m 1408,608 0,192 q 0,40 -28,68 -28,28 -68,28 l -416,0 0,416 q 0,40 -28,68 -28,28 -68,28 l -192,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-416 -416,0 Q 56,896 28,868 0,840 0,800 L 0,608 q 0,-40 28,-68 28,-28 68,-28 l 416,0 0,-416 Q 512,56 540,28 568,0 608,0 l 192,0 q 40,0 68,28 28,28 28,68 l 0,416 416,0 q 40,0 68,28 28,28 28,68 z"/></symbol>
<symbol id="power-off" viewBox="0 0 1536 1664"><path d="m 1536,896 q 0,156 -61,298 -61,142 -164,245 -103,103 -245,164 -142,61 -298,61 -156,0 -298,-61 Q 328,1542 225,1439 122,1336 61,1194 0,1052 0,896 0,714 80.5,553 161,392 307,283 q 43,-32 95.5,-25 52.5,7 83.5,50 32,42 24.5,94.5 Q 503,455 461,487 363,561 309.5,668 256,775 256,896 q 0,104 40.5,198.5 40.5,94.5 109.5,163.5 69,69 163.5,109.5 94.5,40.5 198.5,40.5 104,0 198.5,-40.5 Q 1061,1327 1130,1258 1199,1189 1239.5,1094.5 1280,1000 1280,896 1280,775 1226.5,668 1173,561 1075,487 1033,455 1025.5,402.5 1018,350 1050,308 q 31,-43 84,-50 53,-7 95,25 146,109 226.5,270 80.5,161 80.5,343 z m -640,-768 0,640 q 0,52 -38,90 -38,38 -90,38 -52,0 -90,-38 -38,-38 -38,-90 l 0,-640 q 0,-52 38,-90 38,-38 90,-38 52,0 90,38 38,38 38,90 z"/></symbol> <symbol id="power-off" viewBox="0 0 1536 1664"><path d="m 1536,896 q 0,156 -61,298 -61,142 -164,245 -103,103 -245,164 -142,61 -298,61 -156,0 -298,-61 Q 328,1542 225,1439 122,1336 61,1194 0,1052 0,896 0,714 80.5,553 161,392 307,283 q 43,-32 95.5,-25 52.5,7 83.5,50 32,42 24.5,94.5 Q 503,455 461,487 363,561 309.5,668 256,775 256,896 q 0,104 40.5,198.5 40.5,94.5 109.5,163.5 69,69 163.5,109.5 94.5,40.5 198.5,40.5 104,0 198.5,-40.5 Q 1061,1327 1130,1258 1199,1189 1239.5,1094.5 1280,1000 1280,896 1280,775 1226.5,668 1173,561 1075,487 1033,455 1025.5,402.5 1018,350 1050,308 q 31,-43 84,-50 53,-7 95,25 146,109 226.5,270 80.5,161 80.5,343 z m -640,-768 0,640 q 0,52 -38,90 -38,38 -90,38 -52,0 -90,-38 -38,-38 -38,-90 l 0,-640 q 0,-52 38,-90 38,-38 90,-38 52,0 90,38 38,38 38,90 z"/></symbol>
<symbol id="puzzle-piece" viewBox="0 0 1664 1572"><path d="m 1664,1098 q 0,81 -44.5,135 -44.5,54 -123.5,54 -41,0 -77.5,-17.5 -36.5,-17.5 -59,-38 -22.5,-20.5 -56.5,-38 -34,-17.5 -71,-17.5 -110,0 -110,124 0,39 16,115 16,76 15,115 l 0,5 q -22,0 -33,1 -34,3 -97.5,11.5 -63.5,8.5 -115.5,13.5 -52,5 -98,5 -61,0 -103,-26.5 -42,-26.5 -42,-83.5 0,-37 17.5,-71 17.5,-34 38,-56.5 20.5,-22.5 38,-59 17.5,-36.5 17.5,-77.5 0,-79 -54,-123.5 -54,-44.5 -135,-44.5 -84,0 -143,45.5 -59,45.5 -59,127.5 0,43 15,83 15,40 33.5,64.5 18.5,24.5 33.5,53 15,28.5 15,50.5 0,45 -46,89 -37,35 -117,35 -95,0 -245,-24 -9,-2 -27.5,-4 -18.5,-2 -27.5,-4 l -13,-2 q -1,0 -3,-1 -2,0 -2,-1 L 0,512 q 2,1 17.5,3.5 15.5,2.5 34,5 18.5,2.5 21.5,3.5 150,24 245,24 80,0 117,-35 46,-44 46,-89 0,-22 -15,-50.5 Q 451,345 432.5,320.5 414,296 399,256 384,216 384,173 384,91 443,45.5 502,0 587,0 667,0 721,44.5 775,89 775,168 q 0,41 -17.5,77.5 -17.5,36.5 -38,59 -20.5,22.5 -38,56.5 -17.5,34 -17.5,71 0,57 42,83.5 42,26.5 103,26.5 64,0 180,-15 116,-15 163,-17 l 0,2 q -1,2 -3.5,17.5 -2.5,15.5 -5,34 -2.5,18.5 -3.5,21.5 -24,150 -24,245 0,80 35,117 44,46 89,46 22,0 50.5,-15 28.5,-15 53,-33.5 24.5,-18.5 64.5,-33.5 40,-15 83,-15 82,0 127.5,59 45.5,59 45.5,143 z"/></symbol> <symbol id="puzzle-piece" viewBox="0 0 1664 1572"><path d="m 1664,1098 q 0,81 -44.5,135 -44.5,54 -123.5,54 -41,0 -77.5,-17.5 -36.5,-17.5 -59,-38 -22.5,-20.5 -56.5,-38 -34,-17.5 -71,-17.5 -110,0 -110,124 0,39 16,115 16,76 15,115 l 0,5 q -22,0 -33,1 -34,3 -97.5,11.5 -63.5,8.5 -115.5,13.5 -52,5 -98,5 -61,0 -103,-26.5 -42,-26.5 -42,-83.5 0,-37 17.5,-71 17.5,-34 38,-56.5 20.5,-22.5 38,-59 17.5,-36.5 17.5,-77.5 0,-79 -54,-123.5 -54,-44.5 -135,-44.5 -84,0 -143,45.5 -59,45.5 -59,127.5 0,43 15,83 15,40 33.5,64.5 18.5,24.5 33.5,53 15,28.5 15,50.5 0,45 -46,89 -37,35 -117,35 -95,0 -245,-24 -9,-2 -27.5,-4 -18.5,-2 -27.5,-4 l -13,-2 q -1,0 -3,-1 -2,0 -2,-1 L 0,512 q 2,1 17.5,3.5 15.5,2.5 34,5 18.5,2.5 21.5,3.5 150,24 245,24 80,0 117,-35 46,-44 46,-89 0,-22 -15,-50.5 Q 451,345 432.5,320.5 414,296 399,256 384,216 384,173 384,91 443,45.5 502,0 587,0 667,0 721,44.5 775,89 775,168 q 0,41 -17.5,77.5 -17.5,36.5 -38,59 -20.5,22.5 -38,56.5 -17.5,34 -17.5,71 0,57 42,83.5 42,26.5 103,26.5 64,0 180,-15 116,-15 163,-17 l 0,2 q -1,2 -3.5,17.5 -2.5,15.5 -5,34 -2.5,18.5 -3.5,21.5 -24,150 -24,245 0,80 35,117 44,46 89,46 22,0 50.5,-15 28.5,-15 53,-33.5 24.5,-18.5 64.5,-33.5 40,-15 83,-15 82,0 127.5,59 45.5,59 45.5,143 z"/></symbol>

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 26 KiB

@ -1,7 +1,7 @@
/******************************************************************************* /*******************************************************************************
uMatrix - a Chromium browser extension to black/white list requests. uMatrix - a Chromium browser extension to black/white list requests.
Copyright (C) 2014-2018 Raymond Hill Copyright (C) 2014-present Raymond Hill
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -25,83 +25,82 @@
/******************************************************************************/ /******************************************************************************/
uDom.onLoad(function() { {
// >>>>> start of local scope
/******************************************************************************/ /******************************************************************************/
var backupUserDataToFile = function() { const backupUserDataToFile = function() {
var userDataReady = function(userData) { vAPI.messaging.send('dashboard', {
what: 'getAllUserData',
}).then(userData => {
vAPI.download({ vAPI.download({
'url': 'data:text/plain,' + encodeURIComponent(JSON.stringify(userData, null, 2)), url: 'data:text/plain,' + encodeURIComponent(
'filename': uDom('[data-i18n="aboutBackupFilename"]').text() JSON.stringify(userData, null, 2)
),
filename:
uDom.nodeFromSelector('[data-i18n="aboutBackupFilename"]')
.textContent
}); });
}; });
vAPI.messaging.send('about.js', { what: 'getAllUserData' }, userDataReady);
}; };
/******************************************************************************/ /******************************************************************************/
function restoreUserDataFromFile() { const restoreUserDataFromFile = function() {
var validateBackup = function(s) { const validateBackup = function(s) {
var userData = null; let userData;
try { try {
userData = JSON.parse(s); userData = JSON.parse(s);
} }
catch (e) { catch (ex) {
userData = null;
}
if ( userData === null ) {
return null;
} }
if ( userData === undefined ) { return; }
if ( if (
typeof userData !== 'object' || typeof userData !== 'object' ||
typeof userData.app !== 'string' || typeof userData.app !== 'string' ||
typeof userData.version !== 'string' || typeof userData.version !== 'string' ||
typeof userData.when !== 'number' || typeof userData.when !== 'number' ||
typeof userData.settings !== 'object' || typeof userData.settings !== 'object' ||
(typeof userData.rules !== 'string' && typeof userData.rules !== 'string' &&
Array.isArray(userData.rules) === false) Array.isArray(userData.rules) === false
) { ) {
return null; return;
} }
return userData; return userData;
}; };
var fileReaderOnLoadHandler = function() { const fileReaderOnLoadHandler = function() {
var userData = validateBackup(this.result); const userData = validateBackup(this.result);
if ( !userData ) { if ( userData instanceof Object === false ) {
window.alert(uDom('[data-i18n="aboutRestoreError"]').text()); window.alert(uDom('[data-i18n="aboutRestoreError"]').text());
return; return;
} }
var time = new Date(userData.when); const time = new Date(userData.when);
var msg = uDom('[data-i18n="aboutRestoreConfirm"]').text() const msg = uDom.nodeFromSelector('[data-i18n="aboutRestoreConfirm"]')
.replace('{{time}}', time.toLocaleString()); .textContent
var proceed = window.confirm(msg); .replace('{{time}}', time.toLocaleString());
const proceed = window.confirm(msg);
if ( proceed ) { if ( proceed ) {
vAPI.messaging.send( vAPI.messaging.send('dashboard', {
'about.js', what: 'restoreAllUserData',
{ what: 'restoreAllUserData', userData: userData } userData
); });
} }
}; };
var file = this.files[0]; const file = this.files[0];
if ( file === undefined || file.name === '' ) { if ( file === undefined || file.name === '' ) { return; }
return; if ( file.type.indexOf('text') !== 0 ) { return; }
} const fr = new FileReader();
if ( file.type.indexOf('text') !== 0 ) {
return;
}
var fr = new FileReader();
fr.onload = fileReaderOnLoadHandler; fr.onload = fileReaderOnLoadHandler;
fr.readAsText(file); fr.readAsText(file);
} };
/******************************************************************************/ /******************************************************************************/
var startRestoreFilePicker = function() { const startRestoreFilePicker = function() {
var input = document.getElementById('restoreFilePicker'); const input = document.getElementById('restoreFilePicker');
// Reset to empty string, this will ensure an change event is properly // Reset to empty string, this will ensure an change event is properly
// triggered if the user pick a file, even if it is the same as the last // triggered if the user pick a file, even if it is the same as the last
// one picked. // one picked.
@ -111,28 +110,30 @@ var startRestoreFilePicker = function() {
/******************************************************************************/ /******************************************************************************/
var resetUserData = function() { const resetUserData = function() {
var proceed = window.confirm(uDom('[data-i18n="aboutResetConfirm"]').text()); const msg = uDom.nodeFromSelector('[data-i18n="aboutResetConfirm"]')
if ( proceed ) { .textContent;
vAPI.messaging.send('about.js', { what: 'resetAllUserData' }); const proceed = window.confirm(msg);
} if ( proceed !== true ) { return; }
vAPI.messaging.send('dashboard', {
what: 'resetAllUserData',
});
}; };
/******************************************************************************/ /******************************************************************************/
(function() { vAPI.messaging.send('dashboard', {
var renderStats = function(details) { what: 'getSomeStats',
document.getElementById('aboutVersion').textContent = details.version; }).then(details => {
var template = uDom('[data-i18n="aboutStorageUsed"]').text(); document.getElementById('aboutVersion').textContent = details.version;
var storageUsed = '?'; const template = uDom('[data-i18n="aboutStorageUsed"]').text();
if ( typeof details.storageUsed === 'number' ) { let storageUsed = '?';
storageUsed = details.storageUsed.toLocaleString(); if ( typeof details.storageUsed === 'number' ) {
} storageUsed = details.storageUsed.toLocaleString();
document.getElementById('aboutStorageUsed').textContent = }
template.replace('{{storageUsed}}', storageUsed); document.getElementById('aboutStorageUsed').textContent =
}; template.replace('{{storageUsed}}', storageUsed);
vAPI.messaging.send('about.js', { what: 'getSomeStats' }, renderStats); });
})();
/******************************************************************************/ /******************************************************************************/
@ -143,4 +144,5 @@ uDom('#resetUserDataButton').on('click', resetUserData);
/******************************************************************************/ /******************************************************************************/
}); // <<<<< end of local scope
}

@ -1,7 +1,7 @@
/******************************************************************************* /*******************************************************************************
uMatrix - a Chromium browser extension to block requests. uBlock Origin - a browser extension to block requests.
Copyright (C) 2014-2017 Raymond Hill Copyright (C) 2014-present Raymond Hill
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -16,30 +16,41 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}. along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uMatrix Home: https://github.com/gorhill/uBlock
*/ */
/* global CodeMirror, uBlockDashboard */
'use strict'; 'use strict';
/******************************************************************************/ /******************************************************************************/
(function() { (async ( ) => {
const params = new URL(document.location).searchParams;
var onAssetContentReceived = function(details) { const assetKey = params.get('url');
document.getElementById('content').textContent = if ( assetKey === null ) { return; }
details && (details.content || '');
}; const cmEditor = new CodeMirror(
document.getElementById('content'),
var q = window.location.search; {
var matches = q.match(/^\?url=([^&]+)/); autofocus: true,
if ( !matches || matches.length !== 2 ) { lineNumbers: true,
return; lineWrapping: true,
} readOnly: true,
styleActiveLine: true,
vAPI.messaging.send( }
'asset-viewer.js',
{ what : 'getAssetContent', url: matches[1] },
onAssetContentReceived
); );
uBlockDashboard.patchCodeMirrorEditor(cmEditor);
const details = await vAPI.messaging.send('default', {
what : 'getAssetContent',
url: assetKey,
});
cmEditor.setValue(details && details.content || '');
if ( details.sourceURL ) {
const a = document.querySelector('.cm-search-widget .sourceURL');
a.setAttribute('href', details.sourceURL);
a.setAttribute('title', details.sourceURL);
}
})(); })();

File diff suppressed because it is too large Load Diff

@ -23,7 +23,7 @@
/******************************************************************************/ /******************************************************************************/
const µMatrix = (function() { // jshint ignore:line const µMatrix = (( ) => { // jshint ignore:line
/******************************************************************************/ /******************************************************************************/
@ -54,9 +54,24 @@ const oneDay = 24 * oneHour;
*/ */
const rawSettingsDefault = { const rawSettingsDefault = {
assetFetchBypassBrowserCache: false,
assetFetchTimeout: 30,
autoUpdateAssetFetchPeriod: 120,
cacheStorageAPI: 'unset',
cacheStorageCompression: true,
cnameIgnoreList: 'unset',
cnameIgnore1stParty: true,
cnameIgnoreExceptions: true,
cnameIgnoreRootDocument: true,
cnameMaxTTL: 60,
cnameReplayFullURL: false,
consoleLogLevel: 'unset',
contributorMode: false, contributorMode: false,
disableCSPReportInjection: false, disableCSPReportInjection: false,
disableWebAssembly: false,
enforceEscapedFragment: true, enforceEscapedFragment: true,
loggerPopupType: 'popup',
manualUpdateAssetFetchPeriod: 500,
placeholderBackground: placeholderBackground:
[ [
'url("data:image/png;base64,', 'url("data:image/png;base64,',
@ -111,7 +126,7 @@ const rawSettingsDefault = {
'</body></html>' '</body></html>'
].join(''), ].join(''),
framePlaceholderBackground: 'default', framePlaceholderBackground: 'default',
suspendTabsUntilReady: false suspendTabsUntilReady: 'unset'
}; };
/******************************************************************************/ /******************************************************************************/
@ -136,7 +151,6 @@ return {
externalHostsFiles: [], externalHostsFiles: [],
externalRecipeFiles: [], externalRecipeFiles: [],
iconBadgeEnabled: true, iconBadgeEnabled: true,
maxLoggedRequests: 1000,
noTooltips: false, noTooltips: false,
popupCollapseAllDomains: false, popupCollapseAllDomains: false,
popupCollapseBlacklistedDomains: false, popupCollapseBlacklistedDomains: false,
@ -154,23 +168,26 @@ return {
} }
}, },
rawSettingsDefault: rawSettingsDefault, rawSettingsDefault,
rawSettings: (function() { rawSettings: (( ) => {
let out = Object.assign({}, rawSettingsDefault), const out = Object.assign({}, rawSettingsDefault);
json = vAPI.localStorage.getItem('immediateRawSettings'); const json = vAPI.localStorage.getItem('immediateRawSettings');
if ( typeof json === 'string' ) { if ( typeof json !== 'string' ) { return out; }
try { try {
let o = JSON.parse(json); const o = JSON.parse(json);
if ( o instanceof Object ) { if ( o instanceof Object ) {
for ( const k in o ) { for ( const k in o ) {
if ( out.hasOwnProperty(k) ) { if ( out.hasOwnProperty(k) ) { out[k] = o[k]; }
out[k] = o[k]; }
} self.log.verbosity = out.consoleLogLevel;
} if ( typeof out.suspendTabsUntilReady === 'boolean' ) {
out.suspendTabsUntilReady = out.suspendTabsUntilReady
? 'yes'
: 'unset';
} }
} }
catch(ex) { }
} catch(ex) {
} }
return out; return out;
})(), })(),
@ -201,6 +218,7 @@ return {
pMatrix: null, pMatrix: null,
ubiquitousBlacklist: null, ubiquitousBlacklist: null,
ubiquitousBlacklistRef: null,
// various stats // various stats
cookieRemovedCounter: 0, cookieRemovedCounter: 0,
@ -208,7 +226,6 @@ return {
cookieHeaderFoiledCounter: 0, cookieHeaderFoiledCounter: 0,
hyperlinkAuditingFoiledCounter: 0, hyperlinkAuditingFoiledCounter: 0,
browserCacheClearedCounter: 0, browserCacheClearedCounter: 0,
storageUsed: 0,
// record what the browser is doing behind the scene // record what the browser is doing behind the scene
behindTheSceneScope: 'behind-the-scene', behindTheSceneScope: 'behind-the-scene',

@ -23,24 +23,21 @@
/******************************************************************************/ /******************************************************************************/
(function() { {
// >>>>> start of local scope
/******************************************************************************/ /******************************************************************************/
// Browser data jobs // Browser data jobs
var clearCache = function() { const clearCache = function() {
vAPI.setTimeout(clearCache, 15 * 60 * 1000); vAPI.setTimeout(clearCache, 15 * 60 * 1000);
var µm = µMatrix; const µm = µMatrix;
if ( !µm.userSettings.clearBrowserCache ) { if ( µm.userSettings.clearBrowserCache !== true ) { return; }
return;
}
µm.clearBrowserCacheCycle -= 15; µm.clearBrowserCacheCycle -= 15;
if ( µm.clearBrowserCacheCycle > 0 ) { if ( µm.clearBrowserCacheCycle > 0 ) { return; }
return;
}
vAPI.browserData.clearCache(); vAPI.browserData.clearCache();
@ -48,15 +45,17 @@ var clearCache = function() {
µm.browserCacheClearedCounter++; µm.browserCacheClearedCounter++;
// TODO: i18n // TODO: i18n
µm.logger.writeOne({ info: vAPI.i18n('loggerEntryBrowserCacheCleared') }); µm.logger.writeOne({
realm: 'message',
//console.debug('clearBrowserCacheCallback()> vAPI.browserData.clearCache() called'); text: vAPI.i18n('loggerEntryBrowserCacheCleared'),
});
}; };
vAPI.setTimeout(clearCache, 15 * 60 * 1000); vAPI.setTimeout(clearCache, 15 * 60 * 1000);
/******************************************************************************/ /******************************************************************************/
})(); // <<<<< end of local scope
}
/******************************************************************************/ /******************************************************************************/

@ -0,0 +1,465 @@
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
Copyright (C) 2016-present The uBlock Origin authors
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
*/
/* global IDBDatabase, indexedDB */
'use strict';
/******************************************************************************/
// The code below has been originally manually imported from:
// Commit: https://github.com/nikrolls/uBlock-Edge/commit/d1538ea9bea89d507219d3219592382eee306134
// Commit date: 29 October 2016
// Commit author: https://github.com/nikrolls
// Commit message: "Implement cacheStorage using IndexedDB"
// The original imported code has been subsequently modified as it was not
// compatible with Firefox.
// (a Promise thing, see https://github.com/dfahlander/Dexie.js/issues/317)
// Furthermore, code to migrate from browser.storage.local to vAPI.storage
// has been added, for seamless migration of cache-related entries into
// indexedDB.
// https://bugzilla.mozilla.org/show_bug.cgi?id=1371255
// Firefox-specific: we use indexedDB because browser.storage.local() has
// poor performance in Firefox.
// https://github.com/uBlockOrigin/uBlock-issues/issues/328
// Use IndexedDB for Chromium as well, to take advantage of LZ4
// compression.
// https://github.com/uBlockOrigin/uBlock-issues/issues/399
// Revert Chromium support of IndexedDB, use advanced setting to force
// IndexedDB.
// https://github.com/uBlockOrigin/uBlock-issues/issues/409
// Allow forcing the use of webext storage on Firefox.
µMatrix.cacheStorage = (function() {
const STORAGE_NAME = 'uMatrixCacheStorage';
// Default to webext storage.
const localStorage = webext.storage.local;
const api = {
name: 'browser.storage.local',
get: localStorage.get,
set: localStorage.set,
remove: localStorage.remove,
clear: localStorage.clear,
getBytesInUse: localStorage.getBytesInUse,
select: function(selectedBackend) {
let actualBackend = selectedBackend;
if ( actualBackend === undefined || actualBackend === 'unset' ) {
actualBackend = vAPI.webextFlavor.soup.has('firefox')
? 'indexedDB'
: 'browser.storage.local';
}
if ( actualBackend === 'indexedDB' ) {
return selectIDB().then(success => {
if ( success || selectedBackend === 'indexedDB' ) {
clearWebext();
return 'indexedDB';
}
clearIDB();
return 'browser.storage.local';
});
}
if ( actualBackend === 'browser.storage.local' ) {
clearIDB();
}
return Promise.resolve('browser.storage.local');
},
error: undefined
};
// Reassign API entries to that of indexedDB-based ones
const selectIDB = async function() {
let db;
let dbPromise;
let dbTimer;
const noopfn = function () {
};
const disconnect = function() {
if ( dbTimer !== undefined ) {
clearTimeout(dbTimer);
dbTimer = undefined;
}
if ( db instanceof IDBDatabase ) {
db.close();
db = undefined;
}
};
const keepAlive = function() {
if ( dbTimer !== undefined ) {
clearTimeout(dbTimer);
}
dbTimer = vAPI.setTimeout(
( ) => {
dbTimer = undefined;
disconnect();
},
Math.max(
µMatrix.rawSettings.autoUpdateAssetFetchPeriod * 2 * 1000,
180000
)
);
};
// https://github.com/gorhill/uBlock/issues/3156
// I have observed that no event was fired in Tor Browser 7.0.7 +
// medium security level after the request to open the database was
// created. When this occurs, I have also observed that the `error`
// property was already set, so this means uBO can detect here whether
// the database can be opened successfully. A try-catch block is
// necessary when reading the `error` property because we are not
// allowed to read this propery outside of event handlers in newer
// implementation of IDBRequest (my understanding).
const getDb = function() {
keepAlive();
if ( db !== undefined ) {
return Promise.resolve(db);
}
if ( dbPromise !== undefined ) {
return dbPromise;
}
dbPromise = new Promise(resolve => {
let req;
try {
req = indexedDB.open(STORAGE_NAME, 1);
if ( req.error ) {
console.log(req.error);
req = undefined;
}
} catch(ex) {
}
if ( req === undefined ) {
db = null;
dbPromise = undefined;
return resolve(null);
}
req.onupgradeneeded = function(ev) {
if ( ev.oldVersion === 1 ) { return; }
try {
const db = ev.target.result;
db.createObjectStore(STORAGE_NAME, { keyPath: 'key' });
} catch(ex) {
req.onerror();
}
};
req.onsuccess = function(ev) {
if ( resolve === undefined ) { return; }
req = undefined;
db = ev.target.result;
dbPromise = undefined;
resolve(db);
resolve = undefined;
};
req.onerror = req.onblocked = function() {
if ( resolve === undefined ) { return; }
req = undefined;
console.log(this.error);
db = null;
dbPromise = undefined;
resolve(null);
resolve = undefined;
};
setTimeout(( ) => {
if ( resolve === undefined ) { return; }
db = null;
dbPromise = undefined;
resolve(null);
resolve = undefined;
}, 5000);
});
return dbPromise;
};
const getFromDb = async function(keys, keyvalStore, callback) {
if ( typeof callback !== 'function' ) { return; }
if ( keys.length === 0 ) { return callback(keyvalStore); }
const promises = [];
const gotOne = function() {
if ( typeof this.result !== 'object' ) { return; }
keyvalStore[this.result.key] = this.result.value;
if ( this.result.value instanceof Blob === false ) { return; }
promises.push(
µMatrix.lz4Codec.decode(
this.result.key,
this.result.value
).then(result => {
keyvalStore[result.key] = result.data;
})
);
};
try {
const db = await getDb();
if ( !db ) { return callback(); }
const transaction = db.transaction(STORAGE_NAME, 'readonly');
transaction.oncomplete =
transaction.onerror =
transaction.onabort = ( ) => {
Promise.all(promises).then(( ) => {
callback(keyvalStore);
});
};
const table = transaction.objectStore(STORAGE_NAME);
for ( const key of keys ) {
const req = table.get(key);
req.onsuccess = gotOne;
req.onerror = noopfn;
}
}
catch(reason) {
console.info(`cacheStorage.getFromDb() failed: ${reason}`);
callback();
}
};
const visitAllFromDb = async function(visitFn) {
const db = await getDb();
if ( !db ) { return visitFn(); }
const transaction = db.transaction(STORAGE_NAME, 'readonly');
transaction.oncomplete =
transaction.onerror =
transaction.onabort = ( ) => visitFn();
const table = transaction.objectStore(STORAGE_NAME);
const req = table.openCursor();
req.onsuccess = function(ev) {
let cursor = ev.target && ev.target.result;
if ( !cursor ) { return; }
let entry = cursor.value;
visitFn(entry);
cursor.continue();
};
};
const getAllFromDb = function(callback) {
if ( typeof callback !== 'function' ) { return; }
const promises = [];
const keyvalStore = {};
visitAllFromDb(entry => {
if ( entry === undefined ) {
Promise.all(promises).then(( ) => {
callback(keyvalStore);
});
return;
}
keyvalStore[entry.key] = entry.value;
if ( entry.value instanceof Blob === false ) { return; }
promises.push(
µMatrix.lz4Codec.decode(
entry.key,
entry.value
).then(result => {
keyvalStore[result.key] = result.value;
})
);
}).catch(reason => {
console.info(`cacheStorage.getAllFromDb() failed: ${reason}`);
callback();
});
};
// https://github.com/uBlockOrigin/uBlock-issues/issues/141
// Mind that IDBDatabase.transaction() and IDBObjectStore.put()
// can throw:
// https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase/transaction
// https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/put
const putToDb = async function(keyvalStore, callback) {
if ( typeof callback !== 'function' ) {
callback = noopfn;
}
const keys = Object.keys(keyvalStore);
if ( keys.length === 0 ) { return callback(); }
const promises = [ getDb() ];
const entries = [];
const dontCompress =
µMatrix.rawSettings.cacheStorageCompression !== true;
const handleEncodingResult = result => {
entries.push({ key: result.key, value: result.data });
};
for ( const key of keys ) {
const data = keyvalStore[key];
const isString = typeof data === 'string';
if ( isString === false || dontCompress ) {
entries.push({ key, value: data });
continue;
}
promises.push(
µMatrix.lz4Codec.encode(key, data).then(handleEncodingResult)
);
}
const finish = ( ) => {
if ( callback === undefined ) { return; }
let cb = callback;
callback = undefined;
cb();
};
try {
const results = await Promise.all(promises);
const db = results[0];
if ( !db ) { return callback(); }
const transaction = db.transaction(
STORAGE_NAME,
'readwrite'
);
transaction.oncomplete =
transaction.onerror =
transaction.onabort = finish;
const table = transaction.objectStore(STORAGE_NAME);
for ( const entry of entries ) {
table.put(entry);
}
} catch (ex) {
finish();
}
};
const deleteFromDb = async function(input, callback) {
if ( typeof callback !== 'function' ) {
callback = noopfn;
}
const keys = Array.isArray(input) ? input.slice() : [ input ];
if ( keys.length === 0 ) { return callback(); }
const finish = ( ) => {
if ( callback === undefined ) { return; }
let cb = callback;
callback = undefined;
cb();
};
try {
const db = await getDb();
if ( !db ) { return callback(); }
const transaction = db.transaction(STORAGE_NAME, 'readwrite');
transaction.oncomplete =
transaction.onerror =
transaction.onabort = finish;
const table = transaction.objectStore(STORAGE_NAME);
for ( const key of keys ) {
table.delete(key);
}
} catch (ex) {
finish();
}
};
const clearDb = async function(callback) {
if ( typeof callback !== 'function' ) {
callback = noopfn;
}
try {
const db = await getDb();
if ( !db ) { return callback(); }
const transaction = db.transaction(STORAGE_NAME, 'readwrite');
transaction.oncomplete =
transaction.onerror =
transaction.onabort = ( ) => {
callback();
};
transaction.objectStore(STORAGE_NAME).clear();
}
catch(reason) {
console.info(`cacheStorage.clearDb() failed: ${reason}`);
callback();
}
};
await getDb();
if ( !db ) { return false; }
api.name = 'indexedDB';
api.get = function get(keys) {
return new Promise(resolve => {
if ( keys === null ) {
return getAllFromDb(bin => resolve(bin));
}
let toRead, output = {};
if ( typeof keys === 'string' ) {
toRead = [ keys ];
} else if ( Array.isArray(keys) ) {
toRead = keys;
} else /* if ( typeof keys === 'object' ) */ {
toRead = Object.keys(keys);
output = keys;
}
getFromDb(toRead, output, bin => resolve(bin));
});
};
api.set = function set(keys) {
return new Promise(resolve => {
putToDb(keys, details => resolve(details));
});
};
api.remove = function remove(keys) {
return new Promise(resolve => {
deleteFromDb(keys, ( ) => resolve());
});
};
api.clear = function clear() {
return new Promise(resolve => {
clearDb(( ) => resolve());
});
};
api.getBytesInUse = function getBytesInUse() {
return Promise.resolve(0);
};
return true;
};
// https://github.com/uBlockOrigin/uBlock-issues/issues/328
// Delete cache-related entries from webext storage.
const clearWebext = async function() {
const bin = await webext.storage.local.get('assetCacheRegistry');
if (
bin instanceof Object === false ||
bin.assetCacheRegistry instanceof Object === false
) {
return;
}
const toRemove = [
'assetCacheRegistry',
'assetSourceRegistry',
'resourcesSelfie',
'selfie'
];
for ( const key in bin.assetCacheRegistry ) {
if ( bin.assetCacheRegistry.hasOwnProperty(key) ) {
toRemove.push('cache/' + key);
}
}
webext.storage.local.remove(toRemove);
};
const clearIDB = function() {
try {
indexedDB.deleteDatabase(STORAGE_NAME);
} catch(ex) {
}
};
return api;
}());
/******************************************************************************/

@ -25,7 +25,7 @@
/******************************************************************************/ /******************************************************************************/
(function() { (( ) => {
/******************************************************************************/ /******************************************************************************/
@ -39,19 +39,15 @@ self.cloud = {
/******************************************************************************/ /******************************************************************************/
var widget = uDom.nodeFromId('cloudWidget'); const widget = uDom.nodeFromId('cloudWidget');
if ( widget === null ) { if ( widget === null ) { return; }
return;
}
self.cloud.datakey = widget.getAttribute('data-cloud-entry') || ''; self.cloud.datakey = widget.getAttribute('data-cloud-entry') || '';
if ( self.cloud.datakey === '' ) { if ( self.cloud.datakey === '' ) { return; }
return;
}
/******************************************************************************/ /******************************************************************************/
var onCloudDataReceived = function(entry) { const onCloudDataReceived = function(entry) {
if ( entry instanceof Object === false ) { return; } if ( entry instanceof Object === false ) { return; }
self.cloud.data = entry.data; self.cloud.data = entry.data;
@ -59,7 +55,7 @@ var onCloudDataReceived = function(entry) {
uDom.nodeFromId('cloudPull').removeAttribute('disabled'); uDom.nodeFromId('cloudPull').removeAttribute('disabled');
uDom.nodeFromId('cloudPullAndMerge').removeAttribute('disabled'); uDom.nodeFromId('cloudPullAndMerge').removeAttribute('disabled');
let timeOptions = { const timeOptions = {
weekday: 'short', weekday: 'short',
year: 'numeric', year: 'numeric',
month: 'short', month: 'short',
@ -70,7 +66,7 @@ var onCloudDataReceived = function(entry) {
timeZoneName: 'short' timeZoneName: 'short'
}; };
let time = new Date(entry.tstamp); const time = new Date(entry.tstamp);
widget.querySelector('[data-i18n="cloudNoData"]').textContent = widget.querySelector('[data-i18n="cloudNoData"]').textContent =
entry.source + '\n' + entry.source + '\n' +
time.toLocaleString('fullwide', timeOptions); time.toLocaleString('fullwide', timeOptions);
@ -78,37 +74,31 @@ var onCloudDataReceived = function(entry) {
/******************************************************************************/ /******************************************************************************/
var fetchCloudData = function() { const fetchCloudData = function() {
vAPI.messaging.send( vAPI.messaging.send('cloud-ui.js', {
'cloud-ui.js', what: 'cloudPull',
{ datakey: self.cloud.datakey
what: 'cloudPull', }).then(response => {
datakey: self.cloud.datakey onCloudDataReceived(response);
}, });
onCloudDataReceived
);
}; };
/******************************************************************************/ /******************************************************************************/
var pushData = function() { const pushData = function() {
if ( typeof self.cloud.onPush !== 'function' ) { if ( typeof self.cloud.onPush !== 'function' ) { return; }
return; vAPI.messaging.send('cloud-ui.js', {
} what: 'cloudPush',
vAPI.messaging.send( datakey: self.cloud.datakey,
'cloud-ui.js', data: self.cloud.onPush()
{ }).then(( ) => {
what: 'cloudPush', fetchCloudData();
datakey: self.cloud.datakey, });
data: self.cloud.onPush()
},
fetchCloudData
);
}; };
/******************************************************************************/ /******************************************************************************/
var pullData = function(ev) { const pullData = function(ev) {
if ( typeof self.cloud.onPull === 'function' ) { if ( typeof self.cloud.onPull === 'function' ) {
self.cloud.onPull(self.cloud.data, ev.shiftKey); self.cloud.onPull(self.cloud.data, ev.shiftKey);
} }
@ -116,7 +106,7 @@ var pullData = function(ev) {
/******************************************************************************/ /******************************************************************************/
var pullAndMergeData = function() { const pullAndMergeData = function() {
if ( typeof self.cloud.onPull === 'function' ) { if ( typeof self.cloud.onPull === 'function' ) {
self.cloud.onPull(self.cloud.data, true); self.cloud.onPull(self.cloud.data, true);
} }
@ -124,8 +114,8 @@ var pullAndMergeData = function() {
/******************************************************************************/ /******************************************************************************/
var openOptions = function() { const openOptions = function() {
let input = uDom.nodeFromId('cloudDeviceName'); const input = uDom.nodeFromId('cloudDeviceName');
input.value = self.cloud.options.deviceName; input.value = self.cloud.options.deviceName;
input.setAttribute('placeholder', self.cloud.options.defaultDeviceName); input.setAttribute('placeholder', self.cloud.options.defaultDeviceName);
uDom.nodeFromId('cloudOptions').classList.add('show'); uDom.nodeFromId('cloudOptions').classList.add('show');
@ -133,50 +123,46 @@ var openOptions = function() {
/******************************************************************************/ /******************************************************************************/
var closeOptions = function(ev) { const closeOptions = function(ev) {
let root = uDom.nodeFromId('cloudOptions'); const root = uDom.nodeFromId('cloudOptions');
if ( ev.target !== root ) { if ( ev.target !== root ) { return; }
return;
}
root.classList.remove('show'); root.classList.remove('show');
}; };
/******************************************************************************/ /******************************************************************************/
var submitOptions = function() { const submitOptions = function() {
let onOptions = function(options) {
if ( typeof options !== 'object' || options === null ) {
return;
}
self.cloud.options = options;
};
vAPI.messaging.send('cloud-ui.js', { vAPI.messaging.send('cloud-ui.js', {
what: 'cloudSetOptions', what: 'cloudSetOptions',
options: { options: {
deviceName: uDom.nodeFromId('cloudDeviceName').value deviceName: uDom.nodeFromId('cloudDeviceName').value
} }
}, onOptions); }).then(options => {
if ( typeof options !== 'object' || options === null ) { return; }
self.cloud.options = options;
});
uDom.nodeFromId('cloudOptions').classList.remove('show'); uDom.nodeFromId('cloudOptions').classList.remove('show');
}; };
/******************************************************************************/ /******************************************************************************/
var onInitialize = function(options) { vAPI.messaging.send('cloud-ui.js', {
what: 'cloudGetOptions'
}).then(options => {
if ( typeof options !== 'object' || options === null ) { return; } if ( typeof options !== 'object' || options === null ) { return; }
if ( !options.enabled ) { return; } if ( !options.enabled ) { return; }
self.cloud.options = options; self.cloud.options = options;
let xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
xhr.open('GET', 'cloud-ui.html', true); xhr.open('GET', 'cloud-ui.html', true);
xhr.overrideMimeType('text/html;charset=utf-8'); xhr.overrideMimeType('text/html;charset=utf-8');
xhr.responseType = 'text'; xhr.responseType = 'text';
xhr.onload = function() { xhr.onload = function() {
this.onload = null; this.onload = null;
let parser = new DOMParser(), const parser = new DOMParser();
parsed = parser.parseFromString(this.responseText, 'text/html'), const parsed = parser.parseFromString(this.responseText, 'text/html');
fromParent = parsed.body; const fromParent = parsed.body;
while ( fromParent.firstElementChild !== null ) { while ( fromParent.firstElementChild !== null ) {
widget.appendChild( widget.appendChild(
document.adoptNode(fromParent.firstElementChild) document.adoptNode(fromParent.firstElementChild)
@ -198,12 +184,8 @@ var onInitialize = function(options) {
fetchCloudData(); fetchCloudData();
}; };
xhr.send(); xhr.send();
}; });
vAPI.messaging.send('cloud-ui.js', { what: 'cloudGetOptions' }, onInitialize);
/******************************************************************************/ /******************************************************************************/
// https://www.youtube.com/watch?v=aQFp67VoiDA
})(); })();

@ -0,0 +1,37 @@
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
Copyright (C) 2019-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
*/
/* global CodeMirror */
'use strict';
CodeMirror.defineMode('raw-settings', function() {
return {
token: function(stream) {
if ( stream.sol() ) {
stream.match(/\s*\S+/);
return 'keyword';
}
stream.skipToEnd();
return null;
}
};
});

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

Loading…
Cancel
Save