Compare commits

..

No commits in common. 'master' and '0.8.0.0' have entirely different histories.

@ -1,29 +0,0 @@
---
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.

@ -1,17 +0,0 @@
---
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
.gitignore vendored

@ -1 +1 @@
dist/build/ dist/

@ -1,20 +0,0 @@
{
"browser": true,
"devel": true,
"eqeqeq": true,
"esversion": 8,
"globals": {
"browser": false,
"self": false,
"chrome": false,
"log": false,
"webext": false,
"vAPI": false,
"µMatrix": false
},
"laxbreak": true,
"strict": "global",
"undef": true,
"unused": true,
"validthis": true
}

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

@ -1,4 +0,0 @@
### Submitting issues
Submit on <https://github.com/geekprojects/nuTensor/issues>.

@ -1,23 +1,27 @@
## nuTensor # µMatrix for Chromium
Definitely for advanced users. Forked and refactored from [HTTP Switchboard](https://github.com/gorhill/httpswitchboard).
This is a fork of the now-discontinued [uMatrix](https://github.com/gorhill/uMatrix). Under development: [usable](https://github.com/gorhill/uMatrix/releases)
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!
*** You may contribute with translation work on Crowdin: [µMatrix on Crowdin](https://crowdin.com/project/umatrix).
Forked and refactored from [uMatrix](https://github.com/gorhill/uMatrix). [HTTP Switchboard's documentation](https://github.com/gorhill/httpswitchboard/wiki) is still relevant, except for [µMatrix's differences with HTTP Switchboard](https://github.com/gorhill/uMatrix/wiki/Changes-from-HTTP-Switchboard).
You may contribute with documentation: [µMatrix's wiki](https://github.com/gorhill/uMatrix/wiki).
## Warnings ## Warnings
#### Regarding broken sites #### Regarding broken sites
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. µMatrix does not guarantee that sites will work fine: it is for advanced users who can figure how to un-break sites, because essentially µMatrix is a firewall which works in 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 µMatrix does its job as expected.** I will close any such issue without further comment.
I expect there will be community driven efforts for users to help each others. If µMatrix 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 µMatrix, 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.
**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. µMatrix 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.
**Using nuTensor logger is key to un-break sites:** the logger will show you all that nuTensor does internally.
## License ## License

@ -1,88 +0,0 @@
{
"assets.json": {
"content": "internal",
"updateAfter": 13,
"contentURL": [
"https://raw.githubusercontent.com/geekprojects/nuTensor/master/assets/assets.json",
"assets/assets.json"
]
},
"public_suffix_list.dat": {
"content": "internal",
"updateAfter": 19,
"contentURL": [
"https://publicsuffix.org/list/public_suffix_list.dat",
"assets/thirdparties/publicsuffix.org/list/public_suffix_list.dat",
"assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat"
]
},
"malware-0": {
"content": "filters",
"title": "Malware Domain List",
"contentURL": [
"https://www.malwaredomainlist.com/hostslist/hosts.txt",
"assets/thirdparties/www.malwaredomainlist.com/hostslist/hosts.txt"
]
},
"malware-1": {
"content": "filters",
"title": "Malware domains",
"contentURL": [
"https://mirror.cedia.org.ec/malwaredomains/justdomains",
"https://mirror1.malwaredomains.com/files/justdomains",
"assets/thirdparties/mirror1.malwaredomains.com/files/justdomains",
"assets/thirdparties/mirror1.malwaredomains.com/files/justdomains.txt"
],
"supportURL": "http://www.malwaredomains.com/"
},
"dpollock-0": {
"content": "filters",
"updateAfter": 11,
"title": "Dan Pollocks hosts file",
"contentURL": [
"https://someonewhocares.org/hosts/hosts",
"assets/thirdparties/someonewhocares.org/hosts/hosts.txt"
],
"supportURL": "https://someonewhocares.org/hosts/"
},
"hphosts": {
"content": "filters",
"updateAfter": 11,
"title": "hpHosts Ad and tracking servers",
"contentURL": [
"https://hosts-file.net/.%5Cad_servers.txt",
"assets/thirdparties/hosts-file.net/ad_servers.txt"
],
"supportURL": "https://hosts-file.net/"
},
"mvps-0": {
"content": "filters",
"updateAfter": 11,
"title": "MVPS HOSTS",
"contentURL": [
"https://winhelp2002.mvps.org/hosts.txt",
"assets/thirdparties/winhelp2002.mvps.org/hosts.txt"
],
"supportURL": "https://winhelp2002.mvps.org/"
},
"plowe-0": {
"content": "filters",
"updateAfter": 13,
"title": "Peter Lowes Ad and tracking server list",
"contentURL": [
"https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext",
"assets/thirdparties/pgl.yoyo.org/as/serverlist",
"assets/thirdparties/pgl.yoyo.org/as/serverlist.txt"
],
"supportURL": "https://pgl.yoyo.org/adservers/"
},
"recipes_en-0": {
"content": "recipes",
"title": "Ruleset recipes for English websites",
"contentURL": [
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/recipes/recipes_en.txt",
"assets/umatrix/recipes_en.txt"
],
"lang": "en"
}
}

@ -0,0 +1,13 @@
7cfcd2a79bd510bd9944fb2601fcd701 assets/umatrix/hosts-files.json
188ce926323d816ae9d7d5ebbb567862 assets/umatrix/blacklist.txt
672d5a95be662327692ff16bde2b8452 assets/thirdparties/mirror1.malwaredomains.com/files/immortal_domains.txt
7f0443f3dcc9abfd47cfbc95ce824ddb assets/thirdparties/mirror1.malwaredomains.com/files/README.md
d6ceced54f3f997a5b1839ceaaa98cef assets/thirdparties/mirror1.malwaredomains.com/files/justdomains
067470524601341099c78a847f3726aa assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat
1da7664601ca18f3806ca0af3d9cf123 assets/thirdparties/someonewhocares.org/hosts/hosts
70b2d63b4c632d5bc4c8ce910fc05d79 assets/thirdparties/winhelp2002.mvps.org/hosts.txt
042419405031f0fcfac3735bf4f05e21 assets/thirdparties/www.malwaredomainlist.com/hostslist/README.md
883ed5daa447f23a1132c8a099382054 assets/thirdparties/www.malwaredomainlist.com/hostslist/hosts.txt
95687a05b77dea3be8bdb975fbb0f61f assets/thirdparties/hosts-file.net/ad-servers
10dca881b4d883df0755cb06896650f2 assets/thirdparties/pgl.yoyo.org/as/serverlist
5b8e13b618c68293430913029118781a assets/thirdparties/pgl.yoyo.org/as/README.md

File diff suppressed because it is too large Load Diff

@ -0,0 +1,3 @@
<http://www.malwaredomains.com/?page_id=1508>:
"This malware block lists provided here are for free for noncommercial use as part of the fight against malware."

@ -0,0 +1,4 @@
<http://pgl.yoyo.org/as/index.php>:
Site does encourage use of the list, and nowhere could I find terms and
conditions to use the list. Assuming it can be used freely.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,3 @@
<http://www.malwaredomainlist.com/>:
"Our list can be used for free by anyone. Feel free to use it."

@ -0,0 +1,61 @@
# Blacklist maintained by HTTP Switchboard
# For those domain names which are not found in other blacklists
2mdn.net # "2mdn.net is a domain used by Doubleclick which is an advertising company..."
aad73c550c.se # Related to adrotator.se which is itself blacklisted
acxiom-online.com # Wikipedia: "Acxiom Corporation is a marketing technology and services company".
adextent.com # "We are an advertising technology company - we build technologies that improve ads performance"
adgear.com # "AdGear is an online advertising technologies company based in Montreal, Canada"
adnxs.com # "Adnxs.com is run by AppNexus, a company that provides technology, data and analytics to help companies buy and sell online display advertising" (Ref.: http://www.theguardian.com/technology/2012/apr/23/adnxs-tracking-trackers-cookies-web-monitoring)
adobetag.com # "Adobe Announces Adobe Tag Manager for the Online Marketing Suite"
aimatch.com # "Ad Server, SAS® Intelligent Advertising for Publishers"
analytics.edgesuite.net
atedra.com # "Atedra est un réseau de publicité Internet francophone au Canada"
axf8.net # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
betrad.com # "Evidon: Home | Online Marketing Intelligence, Web Analytics, Privacy" (which also publishes "Ghostery" add-on..)
bizographics.com # "Business Audience Marketing"
bkrtx.com
# "Imagine Having The Power To Turn Abandoning Visitors Into Customers"
# "The BounceX software is tracking all the cursor movements of every visitor in real-time" (yikes!)
bounceexchange.com
clicktale.com # "See absolutely everything your visitors do on your webpage ... See their every mouse move, click and keystroke"
clicktale.net # Redirect to `clicktale.com`
crosspixel.net # (cookies, localStorage) "leading provider of high performance audience data and information for the real-time advertising industry"
crsspxl.com # Related to crosspixel.net
datarating.com # see https://github.com/gorhill/httpswitchboard/issues/343
displaymarketplace.com
erovinmo.com # No info whatsoever from site itself can be found = naughty corner. Ironically spotted at "http://www.technologyreview.com/news/519336/bruce-schneier-nsa-spying-is-making-us-less-safe/" (also: http://www.mywot.com/en/scorecard/erovinmo.com)
exelator.com # "domain used by eXelate Media which is an advertising company that is part of a network of sites, cookies, and other technologies used to track you" (Ref.: http://www.donottrackplus.com/trackers/exelator.com.php)
everestjs.net # related to `everesttech.net`
everesttech.net # "search engine marketing (SEM) solutions", pixel image on the page, looks like tracking to me. Spotted @ `http://www.homedepot.ca/` (search worked fine when blocking this hostname)
eyereturn.com # "eyeReturn Marketing is the only end-to-end digital advertising platform in the market"
gigya.com # "The tools you need to connect with consumers, harness rich data, and make marketing relevant"
inmuiads.info #
janrainbackplane.com # "Easily visualize, segment and update customer profiles to enable true personalized marketing"
krxd.net # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
lijit.com # "We provide online advertising services, audience analytics"
llnwd.net # http://en.wikipedia.org/wiki/Limelight_Networks
lduhtrp.net
mathtag.com # "domain used by MediaMath to place cookies, on behalf of its customers, on the computers of visitors to our selected customer's websites and who may view our customer's display advertisements"
mxpnl.com #
moatads.com # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
mookie1.com # "Specializing in online digital advertising, search marketing"
msads.net # Sounds like ads, and no home web page...
omtrdc.net # Redirect to Omniture
outbrain.com # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
panoramtech.net # As seen in a screenshot at http://arstechnica.com/security/2014/01/malware-vendors-buy-chrome-extensions-to-send-adware-filled-updates/
parsely.com # http://en.wikipedia.org/wiki/Parse.ly
peer39.net # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
pub2srv.com # "This url is used by ad network Propeller Ads Media for ad serving"
servebom.com # no home page, seen as 'tracking.servebom.com': good enough for this list
# These have "tracking" in domain name...
tracking.tomsguide.com
tracking.tomshardware.com
tracking.tomshardware.co.uk
wunderloop.net # https://www.eff.org/deeplinks/2013/06/third-party-resources-nsa-leaks
yceml.net

@ -0,0 +1,30 @@
{
"mirror1.malwaredomains.com/files/immortal_domains.txt": {
"title": "Long-lived malware domains",
"homeURL": "http://mirror1.malwaredomains.com/files/immortal_domains.txt"
},
"mirror1.malwaredomains.com/files/justdomains": {
"title": "Malware domains",
"homeURL": "http://mirror1.malwaredomains.com/files/justdomains"
},
"pgl.yoyo.org/as/serverlist": {
"title": "Peter Lowes Ad server list",
"homeURL": "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext"
},
"www.malwaredomainlist.com/hostslist/hosts.txt": {
"title": "Malware Domain List",
"homeURL": "http://www.malwaredomainlist.com/hostslist/hosts.txt"
},
"hosts-file.net/ad-servers": {
"title": "hpHostss Ad and tracking servers",
"homeURL": "http://hosts-file.net/.%5Cad_servers.txt"
},
"someonewhocares.org/hosts/hosts": {
"title": "Dan Pollocks hosts file",
"homeURL": "http://someonewhocares.org/hosts/hosts"
},
"winhelp2002.mvps.org/hosts.txt": {
"title": "MVPS HOSTS",
"homeURL": "http://winhelp2002.mvps.org/hosts.txt"
}
}

@ -1,192 +0,0 @@
#!/usr/bin/env python3
import datetime
import json
import jwt
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from distutils.version import StrictVersion
from string import Template
# - Download target (raw) uMatrix.chromium.zip from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Upload uMatrix.chromium.zip to Chrome store
# - Publish uMatrix.chromium.zip to Chrome store
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
version = sys.argv[1]
else:
version = input('Github release version: ')
version.strip()
if not re.search('^\d+\.\d+\.\d+(b|rc)\d+$', version):
print('Error: Invalid version string.')
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
# The build directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'dist', 'build', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
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)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for uMatrix.chromium.zip
raw_zip_url = ''
for asset in release_info['assets']:
if asset['name'] == raw_zip_filename:
raw_zip_url = asset['url']
if len(raw_zip_url) == 0:
print('Error: Release asset URL not found')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw zip package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_zip_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_zip_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_zip_filepath))
#
# Upload to Chrome store
#
# Auth tokens
cs_id = input_secret('Chrome store id', 'cs_id')
cs_secret = input_secret('Chrome store secret', 'cs_secret')
cs_refresh = input_secret('Chrome store refresh token', 'cs_refresh')
print('Uploading to Chrome store...')
with open(raw_zip_filepath, 'rb') as f:
print('Generating access token...')
auth_url = 'https://accounts.google.com/o/oauth2/token'
auth_payload = {
'client_id': cs_id,
'client_secret': cs_secret,
'grant_type': 'refresh_token',
'refresh_token': cs_refresh,
}
auth_response = requests.post(auth_url, data=auth_payload)
if auth_response.status_code != 200:
print('Error: Auth failed -- server error {0}'.format(auth_response.status_code))
print(auth_response.text)
exit(1)
response_dict = auth_response.json()
if 'access_token' not in response_dict:
print('Error: Auth failed -- no access token')
exit(1)
# Prepare access token
cs_auth = 'Bearer ' + response_dict['access_token']
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
}
# Upload
print('Uploading package...')
upload_url = 'https://www.googleapis.com/upload/chromewebstore/v1.1/items/{0}'.format(cs_extension_id)
upload_response = requests.put(upload_url, headers=headers, data=f)
f.close()
if upload_response.status_code != 200:
print('Upload failed -- server error {0}'.format(upload_response.status_code))
print(upload_response.text)
exit(1)
response_dict = upload_response.json();
if 'uploadState' not in response_dict or response_dict['uploadState'] != 'SUCCESS':
print('Upload failed -- server error {0}'.format(response_dict['uploadState']))
exit(1)
print('Upload succeeded.')
# Publish
print('Publishing package...')
publish_url = 'https://www.googleapis.com/chromewebstore/v1.1/items/{0}/publish'.format(cs_extension_id)
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
'Content-Length': '0',
}
publish_response = requests.post(publish_url, headers=headers)
if publish_response.status_code != 200:
print('Error: Chrome store publishing failed -- server error {0}'.format(publish_response.status_code))
exit(1)
response_dict = publish_response.json();
if 'status' not in response_dict or response_dict['status'][0] != 'OK':
print('Publishing failed -- server error {0}'.format(response_dict['status']))
exit(1)
print('Publishing succeeded.')
print('All done.')

@ -1,321 +0,0 @@
#!/usr/bin/env python3
import datetime
import json
import jwt
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from distutils.version import LooseVersion
from string import Template
# - Download target (raw) nuTensor.firefox.xpi from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Modify raw package to make it self-hosted
# - This is referred to as "unsigned" package
# - Ask AMO to sign nuTensor.firefox.xpi
# - Generate JWT to be used for communication with server
# - Upload unsigned package to AMO
# - Wait for a valid download URL for signed package
# - Download signed package as nuTensor.firefox.signed.xpi
# - This is referred to as "signed" package
# - Upload nuTensor.firefox.signed.xpi to GitHub
# - Remove nuTensor.firefox.xpi from GitHub
# - Modify updates.json to point to new version
# - Commit changes to repo
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# Check that found project root is valid
version_filepath = os.path.join(projdir, 'dist', 'version')
if not os.path.isfile(version_filepath):
print('Version file not found.')
exit(1)
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
tag_version = sys.argv[1]
else:
tag_version = input('Github release version: ')
tag_version.strip()
match = re.search('^(\d+\.\d+\.\d+)(?:(b|rc)(\d+))?$', tag_version)
if not match:
print('Error: Invalid version string.')
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
# The build directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'dist', 'build', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, tag_version)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for nuTensor.firefox.xpi
raw_xpi_url = ''
for asset in release_info['assets']:
if asset['name'] == signed_xpi_filename:
print('Error: Found existing signed self-hosted package.')
exit(1)
if asset['name'] == raw_xpi_filename:
raw_xpi_url = asset['url']
if len(raw_xpi_url) == 0:
print('Error: Release asset URL not found')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw xpi package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_xpi_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_xpi_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_xpi_filepath))
#
# Convert the package to a self-hosted one: add `update_url` to the manifest
#
print('Converting raw xpi package into self-hosted xpi package...')
with zipfile.ZipFile(raw_xpi_filepath, 'r') as zipin:
with zipfile.ZipFile(unsigned_xpi_filepath, 'w') as zipout:
for item in zipin.infolist():
data = zipin.read(item.filename)
if item.filename == 'manifest.json':
manifest = json.loads(bytes.decode(data))
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()
zipout.writestr(item, data)
#
# Ask AMO to sign the self-hosted package
# - https://developer.mozilla.org/en-US/Add-ons/Distribution#Distributing_your_add-on
# - https://pyjwt.readthedocs.io/en/latest/usage.html
# - https://addons-server.readthedocs.io/en/latest/topics/api/auth.html
# - https://addons-server.readthedocs.io/en/latest/topics/api/signing.html
#
amo_api_key = ''
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()
jwt_payload = {
'iss': amo_api_key,
'jti': amo_nonce,
'iat': datetime.datetime.utcnow(),
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=15),
}
return 'JWT ' + jwt.encode(jwt_payload, amo_secret).decode()
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' }
files = { 'upload': f, }
signing_url = 'https://addons.mozilla.org/api/v3/addons/{0}/versions/{1}/'.format(extension_id, ext_version)
print('Submitting package to be signed...')
response = requests.put(signing_url, headers=headers, data=data, files=files)
if response.status_code != 202:
print('Error: Creating new version failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
print('Request for signing self-hosted xpi package succeeded.')
signing_request_response = response.json();
f.close()
print('Waiting for AMO to process the request to sign the self-hosted xpi package...')
# Wait for signed package to be ready
signing_check_url = signing_request_response['url']
while True:
sys.stdout.write('.')
sys.stdout.flush()
time.sleep(interval)
countdown -= 1
if countdown <= 0:
print('Error: AMO signing timed out')
exit(1)
headers = { 'Authorization': get_jwt_auth(), }
response = requests.get(signing_check_url, headers=headers)
if response.status_code != 200:
print('Error: AMO signing failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
signing_check_response = response.json()
if not signing_check_response['processed']:
continue
if not signing_check_response['valid']:
print('Error: AMO validation failed')
print(response.text)
exit(1)
if not signing_check_response['files'] or len(signing_check_response['files']) == 0:
continue
if not signing_check_response['files'][0]['signed']:
continue
if not signing_check_response['files'][0]['download_url']:
print('Error: AMO signing failed')
print(response.text)
exit(1)
print('\r')
print('Self-hosted xpi package successfully signed.')
download_url = signing_check_response['files'][0]['download_url']
print('Downloading signed self-hosted xpi package from {0}...'.format(download_url))
response = requests.get(download_url, headers=headers)
if response.status_code != 200:
print('Error: Download signed package failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
with open(signed_xpi_filepath, 'wb') as f:
f.write(response.content)
f.close()
print('Signed self-hosted xpi package downloaded.')
break
#
# Upload signed package to GitHub
#
# https://developer.github.com/v3/repos/releases/#upload-a-release-asset
print('Uploading signed self-hosted xpi package to GitHub...')
with open(signed_xpi_filepath, 'rb') as f:
url = release_info['upload_url'].replace('{?name,label}', '?name=' + signed_xpi_filename)
headers = {
'Authorization': github_auth,
'Content-Type': 'application/zip',
}
response = requests.post(url, headers=headers, data=f.read())
if response.status_code != 201:
print('Error: Upload signed package failed -- server error: {0}'.format(response.status_code))
exit(1)
#
# Remove raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#delete-a-release-asset
print('Remove raw xpi package from GitHub...')
headers = { 'Authorization': github_auth, }
response = requests.delete(raw_xpi_url, headers=headers)
if response.status_code != 204:
print('Error: Deletion of raw package failed -- server error: {0}'.format(response.status_code))
#
# Update updates.json to point to new package -- but only if just-signed
# package is higher version than current one.
#
print('Update GitHub to point to newly signed self-hosted xpi package...')
updates_json_filepath = os.path.join(projdir, 'dist', 'firefox', 'updates.json')
with open(updates_json_filepath) as f:
updates_json = json.load(f)
f.close()
previous_version = updates_json['addons'][extension_id]['updates'][0]['version']
if LooseVersion(ext_version) > LooseVersion(previous_version):
with open(os.path.join(projdir, 'dist', 'firefox', 'updates.template.json')) as f:
template_json = Template(f.read())
f.close()
updates_json = template_json.substitute(ext_version=ext_version, tag_version=tag_version)
with open(updates_json_filepath, 'w') as f:
f.write(updates_json)
f.close()
# Automatically git add/commit if needed.
# - Stage the changed file
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
if len(rout) >= 2 and rout[1] == 'M':
subprocess.run(['git', 'add', updates_json_filepath])
# - Commit the staged file
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
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', 'push', 'origin', 'HEAD'])
print('All done.')

@ -1,14 +0,0 @@
{
"addons": {
"nuTensor@geekprojects.com": {
"updates": [
{
"version": "1.4.1.6",
"browser_specific_settings": { "gecko": { "strict_min_version": "56" } },
"update_info_url": "https://github.com/geekprojects/nuTensor/releases/tag/1.4.1b6",
"update_link": "https://github.com/geekprojects/nuTensor/releases/download/1.4.1b6/nuTensor_1.4.1b6.firefox.signed.xpi"
}
]
}
}
}

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

1
dist/version vendored

@ -1 +0,0 @@
1.5.0.0

@ -1,39 +0,0 @@
## 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.

@ -0,0 +1,26 @@
## INSTALL
### Manual installation
- Download and unzip `uMatrix.chromium-{version}.zip` ([latest release desirable](https://github.com/gorhill/uMatrix/releases)).
- Rename the unzipped directory to `uMatrix` (if it is different)
- When you later update manually, replace the **content** of the `uMatrix` folder with the **content** of the latest zipped version.
- 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.
- Go to chromium/chrome *Extensions*.
- Click to check *Developer mode*.
- Click *Load unpacked extension...*.
- In the file selector dialog:
- Select the directory `uMatrix` which was created above.
- Click *Open*.
The extension will now be available in your chromium/chromium-based browser.
Remember that you have to update manually also. For some users, updating manually is actually an advantage because:
- You can update when **you** want
- If ever a new version sucks, you can easily just re-installed the previous one
### Vendor stores
- Opera store (coming)
- Chrome store (coming)

@ -1,8 +1,8 @@
### This is uMatrix's manifesto ### This is µMatrix's manifesto
1. The **user decides** what web content is acceptable or not in their browser. 1. The **user decides** what web content is acceptable or not in their browser.
That is all. That is all.
The purpose of _uMatrix_ is to give the user the means for informed The purpose of _µMatrix_ is to give the user the means for informed
consent and informed dissent. consent and informed dissent.

@ -1,37 +0,0 @@
## INSTALL
#### Chromium
- Download and unzip `nuTensor.chromium.zip` ([latest release desirable](https://github.com/geekprojects/nuTensor/releases)).
- Rename the unzipped directory to `nuTensor`
- 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
- 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*.
- Click to check *Developer mode*.
- Click *Load unpacked extension...*.
- In the file selector dialog:
- Select the directory `nuTensor` which was created above.
- Click *Open*.
The extension will now be available in your chromium/chromium-based browser.
Remember that you have to update manually also. For some users, updating manually is actually an advantage because:
- You can update when **you** want
- If ever a new version sucks, you can easily just re-install the previous one
#### Firefox
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 `nuTensor.firefox.xpi` ([latest release desirable](https://github.com/geekprojects/nuTensor/releases)).
- Uninstall current nuTensor if already installed
- Quit Firefox completely
- Launch Firefox
- Drag and drop the previously downloaded `nuTensor.firefox.xpi` into Firefox
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/nuTensor.sqlite`.
On Windows, the settings are saved in a SQlite file located at `%APPDATA%\Mozilla\Firefox\Profiles\[profile name]\extension-data\nuTensor.sqlite`.

@ -1,10 +1,12 @@
uMatrix: Eine Matrix-basierte Firewall, einfach per Mausklick zu bedienen - und mit vielen Extras, um deine Privatsphäre zu schützen. Für fortgeschrittene Benutzer. µMatrix: Eine Matrix-basierte Firewall, einfach per Mausklick zu bedienen - und mit vielen Extras, um deine Privatsphäre zu schützen. Für fortgeschrittene Benutzer.
uMatrix gibt dir volle Kontrolle darüber, womit sich dein Browser verbindet, welche Art von Daten erlaubt sind und was ausgeführt werden darf. Du lässt niemand anderen für dich entscheiden: Du entscheidest. Du hast die volle Kontrolle über deine Privatsphäre. µMatrix gibt dir volle Kontrolle darüber, womit sich dein Browser verbindet, welche Art von Daten erlaubt sind und was ausgeführt werden darf. Du lässt niemand anderen für dich entscheiden: Du entscheidest. Du hast die volle Kontrolle über deine Privatsphäre.
Voreingestellt arbeitet uMatrix in einem gelockerten "blockiere alles/erlaube ausnahmsweise"-Modus, was dazu führt, dass viele Webseiten, die Skripte von Drittseiten benötigen, "kaputt" sein werden. Mit zwei Klicks kannst du aber dafür sorgen, dass uMatrix in einem "erlaube alles/blockiere ausnahmsweise"-Modus arbeitet, der normalerweise Webseiten nicht kaputt macht. Details dazu auf https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic. Voreingestellt arbeitet µMatrix in einem gelockerten "blockiere alles/erlaube ausnahmsweise"-Modus, was dazu führt, dass viele Webseiten, die Skripte von Drittseiten benötigen, "kaputt" sein werden. Mit zwei Klicks kannst du aber dafür sorgen, dass µMatrix in einem "erlaube alles/blockiere ausnahmsweise"-Modus arbeitet, der normalerweise Webseiten nicht kaputt macht. Details dazu auf https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
* Sieh ALLE Verbindungen, ob fehlgeschlagen oder erfolgreich, je nachdem ob du sie blockiert oder erlaubt hast (deine Entscheidung). Die Behauptung: "Chromium-basierte Browser können nicht zuverlässig Javascript blockieren" ist ein reiner Mythos, siehe dazu: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Kurz: Doch, Javascript kann sehr wohl zuverlässig in Chromium blockiert werden.
* Sehe ALLE Verbindungen, ob fehlgeschlagen oder erfolgreich, je nachdem ob du sie blockiert oder erlaubt hast (deine Entscheidung).
* Erlaube/blockiere mit einem Klick eine oder mehrere Arten von Verbindungsanfragen deines Browsers je nach Ziel und Datentyp (eine blockierte Anfrage wird NIE deinen Browser verlassen). * Erlaube/blockiere mit einem Klick eine oder mehrere Arten von Verbindungsanfragen deines Browsers je nach Ziel und Datentyp (eine blockierte Anfrage wird NIE deinen Browser verlassen).
@ -12,7 +14,7 @@ Voreingestellt arbeitet uMatrix in einem gelockerten "blockiere alles/erlaube au
* Du musst dich nicht ausschließlich auf irgendeine externe Blacklist (vermutlich mit vielen fehlenden Einträgen) verlassen, die nur unvollständig blockiert: Du selbst hast die volle Kontrolle. * Du musst dich nicht ausschließlich auf irgendeine externe Blacklist (vermutlich mit vielen fehlenden Einträgen) verlassen, die nur unvollständig blockiert: Du selbst hast die volle Kontrolle.
* Bedienungsfreundlich: uMatrix erlaubt es dir auf einfache Art, Netzanfragen einer Webseite in einer klickbaren Matrix zu erlauben (whitelist)/blockieren (blacklist): * Bedienungsfreundlich: µMatrix erlaubt es dir auf einfache Art, Netzanfragen einer Webseite in einer klickbaren Matrix zu erlauben (whitelist)/blockieren (blacklist):
- Domain-Namen (linke Spalte) - Domain-Namen (linke Spalte)
* sehr spezifische * sehr spezifische
@ -30,7 +32,7 @@ Voreingestellt arbeitet uMatrix in einem gelockerten "blockiere alles/erlaube au
Du kannst eine einzelne Zelle erlauben/blockieren, eine ganze Zeile, eine Gruppe von Zeilen, eine ganze Spalte, oder sogar die komplette Matrix mit gerade mal einem Klick. Du kannst eine einzelne Zelle erlauben/blockieren, eine ganze Zeile, eine Gruppe von Zeilen, eine ganze Spalte, oder sogar die komplette Matrix mit gerade mal einem Klick.
Das Filtermodul von uMatrix arbeitet nach einer logischen Rangordnung, um zu beurteilen, was blockiert/erlaubt werden soll, je nachdem, welche Zellen blockiert/erlaubt sind. Zum Beispiel erlaubt dir dies, eine komplette Seite zu erlauben, ohne dass du wiederholt neue Daten separat erlauben musst. Das Filtermodul von µMatrix arbeitet nach einer logischen Rangordnung, um zu beurteilen, was blockiert/erlaubt werden soll, je nachdem, welche Zellen blockiert/erlaubt sind. Zum Beispiel erlaubt dir dies, eine komplette Seite zu erlauben, ohne dass du wiederholt neue Daten separat erlauben musst.
Alle Regeln beziehen sich auf einen bestimmten Geltungsbereich. Zum Beispiel kannst du `facebook.com` und `facebook.net` überall blockieren, außer wenn du eine Seite auf `www.facebook.com` besuchst. Dadurch wird Facebook nicht in der Lage sein, eine Profil deiner Surfgewohnheiten anzulegen. Alle Regeln beziehen sich auf einen bestimmten Geltungsbereich. Zum Beispiel kannst du `facebook.com` und `facebook.net` überall blockieren, außer wenn du eine Seite auf `www.facebook.com` besuchst. Dadurch wird Facebook nicht in der Lage sein, eine Profil deiner Surfgewohnheiten anzulegen.
@ -52,6 +54,20 @@ Noch unvollständige Dokumentation: https://github.com/gorhill/uMatrix/wiki
===== =====
FEEDBACK:
Bei allen Fragen und Problemen bitte auf "Feedback geben" klicken, um mir die Gelegenheit zu einer Antwort zu geben. Ich kann auf Bewertungen nicht direkt antworten, aber ich werde dir sehr gern direkt im Feedback-Bereich Antwort geben.
=====
FEHLER, PROBLEME, VORSCHLÄGE:
https://github.com/gorhill/uMatrix/issues
Du bist sehr willkommen, deine Ansichten zu offenen Problemen, Vorschlägen und Argumenten zu präsentieren, um mir bei der Entscheidung zu helfen, wie ich diese Erweiterung noch besser machen kann.
Leichte Bedienbarkeit ist das vorrangige Ziel. Ich habe Benutzer erlebt, die bei der Firefox-Erweiterung NoScript aufgegeben haben, weil es ihnen zu viele Steine in den Weg legte. Anstatt diese Benutzer wegen ihrer verbesserungswürdigen Sicherheitsgewohnheiten zu kritisieren, kritisiere ich stattdessen die Entwickler. Dieses Projekt ist ein zaghafter Versuch, die Gründe anzugehen, die dazu führen, dass Benutzer bezüglich grundlegender Sicherheitsmaßnahmen aufgeben.
Diese Erweiterung ist auch nützlich, um zu verstehen, was eine Webseite in deinem Browser macht, oft ohne dein Wissen. Du bist voll in der Lage zu sehen und darüber zu entscheiden, mit wem eine Webseite kommuniziert, und diese Kommunikation auf bestimmte Klassen von Objekten zu beschränken. Diese Erweiterung ist auch nützlich, um zu verstehen, was eine Webseite in deinem Browser macht, oft ohne dein Wissen. Du bist voll in der Lage zu sehen und darüber zu entscheiden, mit wem eine Webseite kommuniziert, und diese Kommunikation auf bestimmte Klassen von Objekten zu beschränken.
Die Zahl, die im Symbol der Erweiterung auftaucht, entspricht der Gesamtzahl der einzelnen versuchten Anfragen der Webseite (ob erfolgreich oder nicht, ist abhängig davon, ob du sie erlaubt oder verboten hast). Die Zahl, die im Symbol der Erweiterung auftaucht, entspricht der Gesamtzahl der einzelnen versuchten Anfragen der Webseite (ob erfolgreich oder nicht, ist abhängig davon, ob du sie erlaubt oder verboten hast).
@ -72,8 +88,6 @@ Diese Erweiterung ist auch nützlich, um das Surfen zu beschleunigen, indem z.B.
===== =====
FEHLER, PROBLEME: https://github.com/gorhill/uMatrix/issues
QUELLCODE: https://github.com/gorhill/uMatrix (GPLv3) QUELLCODE: https://github.com/gorhill/uMatrix (GPLv3)
ÄNDERUNGSPROTOKOLL: https://github.com/gorhill/uMatrix/releases ÄNDERUNGSPROTOKOLL: https://github.com/gorhill/uMatrix/releases

@ -0,0 +1,93 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domain names (left column)
* from very specific
* to very generic
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Ultimately, you can choose however you browse the net:
* Blacklist all by default, and whitelist as needed (default mode).
* Whitelist all by default, and blacklist as needed.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Your choice.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
=====
BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -0,0 +1,93 @@
µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domain names (left column)
* from very specific
* to very generic
- type of requests (top row)
* cookies
* CSS-related resources (stylesheets and web fonts)
* images
* plugins
* scripts
* XHR (requests made by scripts)
* frames
* others
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Ultimately, you can choose however you browse the net:
* Blacklist all by default, and whitelist as needed (default mode).
* Whitelist all by default, and blacklist as needed.
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Your choice.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
=====
FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
=====
BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
=====
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,20 +1,20 @@
uMatrix: Un cortafuegos matricial ajustable mediante clics, con varias herramientas para mejorar su privacidad. µMatrix: Un cortafuegos matricial ajustable mediante clics, con varias herramientas para mejorar su privacidad. Para usuarios avanzados.
*Para usuarios avanzados* µMatrix le proporciona control total sobre su navegador, permitiendo decidir que conexiones se establecen, que tipo de datos se descargan y que códigos se ejecutan. Nadie más decide por usted: Usted escoge. Usted está en control total de su privacidad.
uMatrix le proporciona control total sobre su navegador, permitiéndole decidir que conexiones se establecen, que tipo de datos se descargan y que códigos se ejecutan. Nadie más decide: usted escoge. Usted está en control total de su privacidad. Por defecto, µMatrix funciona en modo relajado "bloquear todo/permitir excepcionalmente". Esto significa que los sitios que requieren <i>scripts</i> de terceros, posiblemente se muestren con problemas. Con solo dos clics, puede configurar µMatrix para funcionar en modo "permitir todo/bloquear excepcionalmente", lo que hará que usualmente los sitios web se muestren sin problema. Para más detalles sobre el tema consulte https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views (en inglés).
Por defecto, uMatrix funciona en modo relajado "bloquear todo/permitir excepcionalmente". Esto significa que los sitios que requieren scripts de terceros, posiblemente se muestren con problemas. Con solo dos clics, puede configurar uMatrix para funcionar en modo "permitir todo/bloquear excepcionalmente", lo que hará que usualmente los sitios web se muestren sin problema. Para más detalles sobre el tema, consulte https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views (en inglés). En cuanto al mito de que los navegadores basados en Chromium no pueden bloquear JavaScript de manera adecuada, vea: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers (en inglés). En resumen: Si, JavaScript puede ser bloqueado de forma segura en Chromium.
* Examine TODAS las conexiones remotas, fallidas o intentadas, según fueron bloqueadas o permitidas (usted decide). * Examine todas las conexiones remotas, fallidas o intentadas, según fueron bloqueadas o permitidas (usted decide).
* Con un solo clic añada a su lista de permitidos o a su lista negra, uno o varios tipos de peticiones, según el destino y el tipo de datos (una petición bloqueada NUNCA saldrá del navegador). * Con un solo clic añada a su lista de permitidos o a su lista negra, uno o varios tipos de peticiones, según el destino y el tipo de datos (una petición bloqueada NUNCA saldrá del navegador).
* Filtrado eficiente: las cookies no saldrán de su navegador, JavaScript no se ejecutará, las extensiones no funcionarán, no se descargarán píxeles de rastreo, etc. * Filtrado eficiente: las <i>cookies</i> no saldrán de su navegador, JavaScript no se ejecutará, las extensiones no funcionarán, no se descargarán píxeles de rastreo, etc.
* No tiene que depender de una sola lista de filtros (probablemente con muchas omisiones) fuera de la cual nada pueda ser bloqueado: usted controla todo. * No tiene que depender de una sola lista de filtros (probablemente con muchas omisiones) fuera de la cual nada pueda ser bloqueado: usted controla todo.
* Facilidad de uso: uMatrix le permite agregar fácilmente las peticiones de red que se originen desde una página web a una lista de permitidos/lista negra, mediante clics en la matriz: * Facilidad de uso: µMatrix le permite agregar fácilmente las peticiones de red que se originen desde una página web a una lista de permitidos/lista negra, mediante clics en la matriz:
- nombres de dominio (columna izquierda) - nombres de dominio (columna izquierda)
* de muy específico * de muy específico
@ -32,13 +32,13 @@ Por defecto, uMatrix funciona en modo relajado "bloquear todo/permitir excepcion
Puede agregar a la lista negra/lista de permitidos una única celda, una fila completa, un grupo de filas, una columna o toda la matriz, todo con solo un clic. Puede agregar a la lista negra/lista de permitidos una única celda, una fila completa, un grupo de filas, una columna o toda la matriz, todo con solo un clic.
El motor de filtrado de uMatrix usa lógica de precedencia para evaluar que bloquea o permite, en dependencia de las celdas en lista de permitidos o lista negra. Por ejemplo, puede agregar toda una página a la lista de permitidos con un clic, sin que sea necesario agregar nuevos elementos que puedan aparecer luego en dicha página uno a uno. El motor de filtrado de µMatrix usa lógica de precedencia para evaluar que bloquea o permite, en dependencia de las celdas en lista de permitidos o lista negra. Por ejemplo, puede agregar toda una página a la lista de permitidos con un clic, sin que sea necesario agregar nuevos elementos que puedan aparecer luego en dicha página uno a uno.
Todas las reglas se definen para un ámbito. Puede, por ejemplo, bloquear elementos de `facebook.com` y `facebook.net` dondequiera, excepto cuando esté navegando en una página en el sitio`www.facebook.com`. De esta forma, Facebook se verá imposibilitado de crear o reunir un perfil sobre sus hábitos de navegación web. Todas las reglas se definen para un ámbito. Puede, por ejemplo, bloquear elementos de `facebook.com` y `facebook.net` dondequiera, excepto cuando esté navegando en una página en el sitio`www.facebook.com`. De esta forma, Facebook se verá imposibilitado de crear o reunir un perfil sobre sus hábitos de navegación web.
El objetivo de esta extensión es hacer todo el proceso de permitir o bloquear sitios web tan simple como sea posible, de manera tal que los usuarios se sientan alentados a preocuparse por su privacidad. El objetivo de esta extensión es hacer todo el proceso de permitir o bloquear sitios web tan simple como sea posible, de manera tal que los usuarios se sientan alentados a preocuparse por su privacidad.
La extensión hace uso de ficheros hosts mantenidos por terceros, con más de 62,000 nombres de dominios diferentes (las listas pueden ser habilitadas/deshabilitadas según su deseo). La extensión hace uso de ficheros <i>hosts</i> mantenidos por terceros, con más de 58 000 nombres de dominios diferentes (las listas pueden ser habilitadas/deshabilitadas según su deseo).
Al final, usted decide de que manera navegar por la red: Al final, usted decide de que manera navegar por la red:
@ -46,14 +46,28 @@ Al final, usted decide de que manera navegar por la red:
* Poner todo en la lista de permitidos y agregar a la lista negra según sea necesario. * Poner todo en la lista de permitidos y agregar a la lista negra según sea necesario.
En cualquier modo, siempre se beneficiará de los filtros ya configurados, que le brindarán una protección básica contra rastreadores, sitios de malware, etc. O puede también deshabilitar todos los filtros pre-configurados. En cualquier modo, siempre se beneficiará de los filtros ya configurados, que le brindarán una protección básica contra rastreadores, sitios de <i>malware</i>, etc. O puede también deshabilitar todos los filtros pre-configurados.
Usted elige. Usted elige.
Documentación miscelánea reunida: https://github.com/gorhill/uMatrix/wiki (incompleta) Documentación miscelánea reunida: https://github.com/gorhill/uMatrix/wiki
===== =====
COMENTARIOS:
Para una una pronta respuesta sobre preguntas o problemas que puedan surgir, use el botón "Enviar comentarios" a la derecha. No me es posible responder directamente a los comentarios y revisiones en foros, pero estaré más que feliz de darle una respuesta directa en la sección de Comentarios.
=====
ERRORES, PROBLEMAS, SUGERENCIAS:
https://github.com/gorhill/uMatrix/issues
Es bienvenido a contribuir con sus puntos de vista, sugerencias y argumentos a favor o en contra sobre cualquier tema abierto, que me ayuden a decidir que se necesita para hacer esta extensión mejor.
La facilidad de uso es el objetivo primario. He visto a usuarios desistir en el uso de la extensión NoScript para Firefox porque, según ellos, interfiere demasiado. Así que en vez de culpar a los usuarios acerca de sus pobres hábitos en temas relativos a su privacidad, he preferido culpar a los programadores, intentando resolver mediante este proyecto los problemas que hacen que los usuarios cesen de preocuparse sobre aspectos básicos de su seguridad.
Esta extensión también es útil para entender que hace una página web abierta por el navegador, muchas veces sin su conocimiento. Usted será totalmente capaz de decidir con quien se comunica una página web, y restringir dicha comunicación a determinados tipos de objetos dentro de la página. Esta extensión también es útil para entender que hace una página web abierta por el navegador, muchas veces sin su conocimiento. Usted será totalmente capaz de decidir con quien se comunica una página web, y restringir dicha comunicación a determinados tipos de objetos dentro de la página.
El número que aparece en el ícono de la extensión se corresponde con el número total de peticiones diferentes hechas por la página web (ya sea que tuvieron éxito o no, de acuerdo a si fueron bloqueadas o permitidas). El número que aparece en el ícono de la extensión se corresponde con el número total de peticiones diferentes hechas por la página web (ya sea que tuvieron éxito o no, de acuerdo a si fueron bloqueadas o permitidas).
@ -74,8 +88,6 @@ Esta extensión también puede ser útil si desea aumentar la velocidad de naveg
===== =====
ERRORES, PROBLEMAS: https://github.com/gorhill/uMatrix/issues
CÓDIGO FUENTE: https://github.com/gorhill/uMatrix (GPLv3) CÓDIGO FUENTE: https://github.com/gorhill/uMatrix (GPLv3)
REGISTRO DE CAMBIOS: https://github.com/gorhill/uMatrix/releases REGISTRO DE CAMBIOS: https://github.com/gorhill/uMatrix/releases

@ -1,12 +1,12 @@
µMatrix: Maatriksil põhinev tulemüür, kus hiirekursoriga sihitakse ja vajutatakse ebameeldiva sisu eemaldamiseks. Sellele kaasneb ka mitmeid turvalisust lisavad võimalused. Mõeldud kogenud kasutajaile. µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix laseb Teil kontrollida kõiki veebilehitseja ühendusi, sealhulgas allalaaditavaid andmeid ja rakenduste käivitusi. Keegi teine ei otsusta Teie eest: Ainult Teie olete ohjas. Te kontrollite täielikult oma privaatsust. µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Üldistades töötab µMatrix segamatus kõike-blokeerivas/erandeid-lubades olekus, mis võib kolmanda osapooli sisaldavaid portaale "katkistena" kuvada. µMatrixit on võimalik kahe klõpsuga tööle panna kõike-lubavasse/erandeid-blokeerivasse olekusse, mis tavaliselt ei tekita portaalide kuvamises probleeme. Rohkem teavet selle teema kohta leiate leheküljelt https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Müüdi "Chromiumil põhinevad veebilehitsejad ei saa tegelikkuses blokeerida Javaskripte" kohta leidub infot siit: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Kokkuvõte: Jah, Chromiumis saab küll tegelikult blokeerida Javaskripti. Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* Kuvab KÕIK väljastpoolt tulevad, ebaõnnestunud või üritatavad ühendused blokeerimis- või lubamisreeglite alusel (see on Teie otsustada). * See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser). * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).

@ -1,20 +1,20 @@
uMatrix : Un parefeu matriciel configurable à la volée, avec de nombreux outils d'amélioration de la vie privée en ligne. Pour utilisateurs avancés. µMatrix : Un parefeu matriciel configurable à la volée, avec de nombreux outils d'amélioration de la vie privée en ligne. Pour utilisateurs avancés.
*Pour utilisateurs avancés* µMatrix vous donne les pleins pouvoirs sur votre navigateur. Vous contrôlez où il se connecte, ce qu'il télécharge, et ce qu'il exécute. Personne d'autre que vous ne prendra de décisions. Vous avez toutes les cartes en main pour protéger votre confidentialité.
uMatrix vous donne les pleins pouvoirs sur votre navigateur. Vous contrôlez où il se connecte, ce qu'il télécharge, et ce qu'il exécute. Personne d'autre ne décidera pour vous. Vous avez toutes les cartes en main pour protéger votre confidentialité. Après installation, µMatrix fonctionne en mode "Blocage total/Permissions exceptionnelles", ce qui veut dire que les sites Web ayant besoin de contenus tiers sont susceptibles de ne pas fonctionner correctement. En deux clics, µMatrix peut fonctionner en mode "Autorisation totale/Blocage exceptionnel", qui en principe n'empêchera pas les sites Web de fonctionner. Pour plus d'informations sur ce sujet, consultez cette page en Anglais : https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views .
Après installation, uMatrix fonctionne en mode "Blocage total/Permissions exceptionnelles", ce qui veut dire que les sites Web ayant besoin de contenus tiers sont susceptibles de ne pas fonctionner correctement. En deux clics, uMatrix peut fonctionner en mode "Autorisation totale/Blocage exceptionnel", ce qui en principe n'empêchera pas les sites Web de fonctionner. Pour plus d'informations sur ce sujet, consultez cette page en Anglais : https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views . En ce qui concerne le mythe disant que "les navigateurs basés sur Chromium ne peuvent bloquer du Javascript en toute fiabilité", consultez cette page en Anglais : https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers . Pour résumer ce qui y est dit : Si, le Javascript peut être bloqué en toute confiance au sein d'un navigateur basé sur Chromium.
* Consultez TOUTES les tentatives de connexions distantes, échouées ou réussies, selon qu'elles soient bloquées ou autorisées (c'est vous qui décidez). * Consultez TOUTES les tentatives de connexions distantes, échouées ou réussies, selon qu'elles soient bloquées ou autorisées (c'est vous qui le décidez).
* En un clic, vous pouvez mettre en liste blanche/noire une ou plusieurs sorte(s) de requête(s) d'après la destination et le type des données (sachant qu'une requête bloquée ne "partira" JAMAIS de votre navigateur). * En un clic, vous pouvez mettre en liste blanche/noire une ou plusieurs sorte(s) de requête(s) d'après la destination et le type des données (sachant qu'une requête bloquée ne "s'en ira" JAMAIS de votre navigateur).
* Blocage efficace : Les cookies ne partiront pas de votre navigateur, le code JavaScript ne sera pas exécuté, les plugins ne démarreront pas, les pixels de pistage ne seront pas téléchargés, etc. * Blocage efficace : Les cookies ne partiront pas de votre navigateur, le code JavaScript ne sera pas exécuté, les plugins ne démarreront pas, les pixels de pistage ne seront pas téléchargés, etc.
* Vous n'avez pas à vous reposer sur une unique liste prédéfinie de blocage (dans laquelle il manquerait beaucoup d'éléments), avec la possibilité de cumuler l'emploi de plusieurs listes de ce genre, vous avez entièrement le contrôle. * Vous n'avez pas à vous reposer que sur une seule liste prédéfinie de blocage (dans laquelle il manquerait beaucoup d'éléments), en ayant la possibilité de cumuler l'emploi de plusieurs listes de ce genre, vous avez entièrement le contrôle.
* Facilité d'utilisation : uMatrix vous laisse aisément mettre en liste blanche/noire des requêtes réseau provenant d'une page Web, d'après une matrice qui vous permet de manipuler en quelques clics de souris : * Facilité d'utilisation : µMatrix vous laisse aisément mettre en liste blanche/noire des requêtes réseau provenant d'une page Web, d'après une matrice qui vous permet de manipuler en quelques clics de souris :
- Les noms de domaine (colonne de gauche) - Les noms de domaine (colonne de gauche)
* de très spécifique * de très spécifique
@ -32,28 +32,42 @@ Après installation, uMatrix fonctionne en mode "Blocage total/Permissions excep
En un clic, vous pouvez mettre en liste noire/blanche une simple cellule, une ligne entière, un ensemble de lignes, une colonne entière, ou toute la matrice. En un clic, vous pouvez mettre en liste noire/blanche une simple cellule, une ligne entière, un ensemble de lignes, une colonne entière, ou toute la matrice.
Le moteur de filtrage de uMatrix utilise une logique de priorité pour évaluer ce qui doit être bloqué/autorisé d'après l'état des cellules (liste noire/blanche). Par exemple, cela vous permet de mettre en liste blanche toute une page Web en un clic, sans avoir à mettre en liste blanche de manière répétitive toute nouvelle donnée apparaissant sur la page. Le moteur de filtrage de µMatrix utilise une logique de priorité pour évaluer ce qui doit être bloqué/autorisé d'après l'état des cellules (liste noire/blanche). Par exemple, cela vous permet de mettre en liste blanche toute une page Web en un clic, sans avoir à mettre en liste blanche de manière répétitive toute nouvelle donnée apparaissant sur la page.
Toutes les règles sont contextualisées. Par exemple, vous pouvez bloquer "facebook.com" et "facebook.net" partout sauf lorsque vous visitez une page sur "www.facebook.com". Ainsi Facebook ne pourrait pas définir un profil de vous en se basant sur vos habitudes de navigation. Toutes les règles sont contextualisées. Par exemple, vous pouvez bloquer "facebook.com" et "facebook.net" partout sauf lorsque vous visitez une page sur "www.facebook.com". Ainsi Facebook ne pourrait pas définir un profil de vous en se basant sur vos habitudes de navigation.
Le but de cette extension est de rendre l'autorisation/le refus de sites Web, en totalité ou partiellement, aussi direct(e) que possible, pour encourager les utilisateurs à se préoccuper de leur confidentialité. Le but de cette extension est de rendre l'autorisation/le refus de sites Web, en totalité ou partiellement, aussi direct(e) que possible, pour encourager les utilisateurs à se préoccuper de leur confidentialité.
L'extension fournit des listes prédéfinies de blocage totalisant plus de 62 000 noms de domaine différents, sachant que chacune de ces listes peut être désactivée/activé selon votre choix. L'extension fournit des listes prédéfinies de blocage totalisant plus de 58 000 noms de domaine différents, sachant que chacune de ces listes peut être désactivée/activé selon votre choix.
Enfin, vous pouvez choisir comment surfer sur le Net : Enfin, vous pouvez choisir comment surfer sur le Net :
* Tout mettre en liste noire, et accorder des permissions exceptionnelles si besoin est (il s'agit du mode par défaut). * Tout mettre en liste noire, et accorder des permissions exceptionnelles si besoin est (il s'agit du mode par défaut).
* Tout mettre en liste blanche, et bloquer si nécessaire. * Tout mettre en liste blanche, et bloquer exceptionnellement si nécessaire.
De toute manière, vous bénéficierez toujours des listes de règles prédéfinis pour avoir une protection décente contre les pisteurs, les sites Web malveillants, etc. Ou vous pouvez désactiver tout cela. De toute manière, vous bénéficierez toujours des listes de règles prédéfinis pour avoir une protection décente contre les pisteurs, les sites Web malveillants, etc. Ou vous pouvez désactiver tout cela.
Encore une fois, c'est votre choix. Encore une fois, c'est votre choix.
Retrouvez ici en langue anglaise de la documentation rassemblée aléatoirement sur l'extension : https://github.com/gorhill/uMatrix/wiki (page en construction). Retrouvez ici en langue anglaise de la documentation rassemblée aléatoirement sur l'extension : https://github.com/gorhill/uMatrix/wiki .
===== =====
RETOURS :
Quelque soit le doute/problème rencontré, n'hésitez pas à me contacter. Je ne peux pas répondre directement aux avis des utilisateurs sur Chrome/Opera Web Store, mais je serais ravi de vous répondre directement dans la section adéquate.
=====
PROBLÈMES & SUGGESTIONS :
https://github.com/gorhill/uMatrix/issues .
Vous êtes plus que bienvenus pour rapporter des soucis et des suggestions, divers arguments de type pour ou contre m'aideront à décider ce qu'il faut améliorer dans l'extension.
Le but premier c'est la facilité d'utilisation. J'ai déjà vu des utilisateurs jeter l'éponge au sujet de l'extension NoScript parce qu'elle leur a paru trop contraignante, alors plutôt que de les blâmer pour de piètres habitudes de sécurité, je préfère en vouloir aux développeurs et ce projet est une tentative de rectifier ces erreurs qui ont entrainé l'abandon des bonnes habitudes de sécurité chez certaines personnes.
Cette extension est également utile pour comprendre ce qu'effectue en coulisses une page Web dans votre navigateur. Vous pouvez parfaitement voir et décider avec quoi une page Web communique, et restreindre ces différentes communications. Cette extension est également utile pour comprendre ce qu'effectue en coulisses une page Web dans votre navigateur. Vous pouvez parfaitement voir et décider avec quoi une page Web communique, et restreindre ces différentes communications.
Le nombre qui apparait sur l'icône de l'extension correspond au nombre total de requêtes distinctes tentées (et réussies ou non selon qu'elles ont été autorisées/refusées) par la page Web. Le nombre qui apparait sur l'icône de l'extension correspond au nombre total de requêtes distinctes tentées (et réussies ou non selon qu'elles ont été autorisées/refusées) par la page Web.
@ -74,8 +88,6 @@ Cette extension est aussi utile si vous souhaitez accélérer votre navigation,
===== =====
PROBLÈMES (Page en Anglais) : https://github.com/gorhill/uMatrix/issues
CODE SOURCE (Licence GPLv3, page en Anglais) : https://github.com/gorhill/uMatrix . CODE SOURCE (Licence GPLv3, page en Anglais) : https://github.com/gorhill/uMatrix .
JOURNAL DES CHANGEMENTS (Page en Anglais) : https://github.com/gorhill/umatrix/releases . JOURNAL DES CHANGEMENTS (Page en Anglais) : https://github.com/gorhill/umatrix/releases .

@ -28,7 +28,7 @@
* סקריפטים * סקריפטים
* XHR (בקשות הנעשות על ידי סקריפטים) * XHR (בקשות הנעשות על ידי סקריפטים)
* מסגרות * מסגרות
* אחרות * אחרים
אתה יכול להכניס לרשימה השחורה/הלבנה תא בודד, שורה שלמה, אוסף של שורות, עמודה שלמה, או את כל המטריצה בלחיצה אחת בלבד. אתה יכול להכניס לרשימה השחורה/הלבנה תא בודד, שורה שלמה, אוסף של שורות, עמודה שלמה, או את כל המטריצה בלחיצה אחת בלבד.
@ -36,17 +36,17 @@
כח החוקים מטווחים (מתוחמים). לדוגמה, אתה יכולה לחסום את `facebook.com` ואת `facebook.net` בכל מקום חוץ מכאשר אתה מבקר בדף ב `www.facebook.com`. בדרך זו פייסבוק לא יוכל לבנות פרופיל של הרגלי הגלישה שלך. כח החוקים מטווחים (מתוחמים). לדוגמה, אתה יכולה לחסום את `facebook.com` ואת `facebook.net` בכל מקום חוץ מכאשר אתה מבקר בדף ב `www.facebook.com`. בדרך זו פייסבוק לא יוכל לבנות פרופיל של הרגלי הגלישה שלך.
המטרה של תוסף זה היא להפוך את האיפשור או החסימה של אתרי אינטרנט, במלואם או בחלקם, פשוט ככל האפשר, על מנת לעודד את המשתמשים לדאוג לפרטיות שלהם. The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
התוסך מגיע עם קבצי Hosts צד שלישי שמהווים יותר מ 58,000 דומיינים שונים (רשימות יכולות להיות מבוטלות/מאופשרות באופן סלקטיבי בהתאם לבחירה שלך). The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
בסופו של דבר, אתה יכול לבחור בכל צורה שתרצה איך אתה גולש ברשת: Ultimately, you can choose however you browse the net:
* חסום הכל בברירת מחדל, ואפשר לפי הצורך (מצב ברירת מחדל). * Blacklist all by default, and whitelist as needed (default mode).
* אפשר הכל בברירת מחדל, וחסום לפי הצורך. * Whitelist all by default, and blacklist as needed.
כך או כך, אתה עדיין מרוויח מהרשימות השחורות הקיימות מראש, כך שלפחות אתה מקבל הגנה בסיסית מאלה שמנסים לעקוב אחרייך, אתרים זדוניים, וכו'. או שאתה יכול לכבות את כל הרשימות הקיימות מראש. Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
בחירה שלך. בחירה שלך.
@ -56,7 +56,7 @@
פידבק: פידבק:
לכל שאלה/בעיה שיש לך, השתמש בכפתור "שלח משוב" בצד שמאל, על מנת שאהיה מסוגל לענות בקלות. אני לא יכול לענות ישירות לביקורות, אבל אני יותר מאשמח לענות לך ישירות במשוב. For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
===== =====
@ -66,25 +66,25 @@ https://github.com/gorhill/uMatrix/issues
בחירה שלך. בחירה שלך.
קלות השימוש היא המטרה העיקרית. ראיתי משתמשים שמוותרים על התוסף NoScript ל FireFox משום שהוא מפריע להם יותר מדי בזמן השימוש, אז במקום להאשים את המשתמשים האלה בהרגלי אבטחה דלים, אני מעדיף להאשים את המפתחים והפרויקט הזה בא לנסות לטפל בבעיות שגורמות לחלק מהמשתמשים לוותר על אבטחה בסיסית. Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
תוסף זה גם שימושי כדי להבין מה דף האינטרנט בדפדפן שלך עושה, לעתים קרובות ללא ידיעתך. יש לך יכולת מלאה לראות ולהחליט עם מי דף אינטרנט מתקשר, ולהגביל את התקשורות הללו לסוגים ספציפיים של אובייקטים בתוך דף האינטרנט. This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
המספר שמופיע לאייקון של התוסף מתייחס למספר הכולל של בקשות שונות שנוסו (בהצלחה או לא, תלוי אם אלה הורשו או היו חסומות) על ידי דף האינטרנט. The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
פשוט לחץ על המקום המתאים במטריצה על מנת להלבין-, להשחיר- או להאפיר מרכיב. האפרה משמעותה שסטאטוס החסימה או האיפשור יעבור בירושה מתא אחר עם עדיפות גבוהה יותר במטריצה. Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
ריבוע אדום = חסומים ביעילות, לדוגמא. בקשות מנועות מלהגיע אל היעד שלהן: Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* ריבוע אדום כהה: הדומיין ו/או סוג הבקשה חסומה מפורשות. * Dark red square: the domain name and/or type of request is specifically blacklisted.
ריבוע אדום דהוי: מצב החסימה עובר בירושה, כי התא מאופר. * Faded red square: the blacklist status is inherited because the entry is graylisted.
ריבוע ירוק = מאופשרים ביעילות, לדוגמא. בקשות מאופשרות להגיע אל היעד שלהן: Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* ריבוע ירוק כהה: הדומיין ו/או סוג הבקשה מאופשרת מפורשות. * Dark green square: the domain name and/or type of request is specifically whitelisted.
ריבוע ירוק דהוי: מצב האיפשור עובר בירושה, כי התא מאופר. * Faded green square: the whitelist status is inherited because the entry is graylisted.
התא הימני העליון במטריצה, תא ה-"הכל", מייצג את הטווח הגלובלי הדיפולטיבי, אשר נותן לך לבחור האם אפשור או חסימה של הכל יהיה ברירת המחדל. חלק מעדיפים לאפשר הכל תןך חסימה של יוצאים מן הכלל. ההעדפה האישית שלי כמובן הפוכה, חסימה של הכל ואפשור יוצאים מן הכלל. The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
תוסף זה גם שימושי אם אתה רוצה להאיץ את הגלישה שלך, על ידי חסימה גלובלית של כל הבקשות לתמונות כדוגמא. This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
===== =====

@ -1,93 +1,93 @@
µMatrix: Firewall tunjuk-dan-klik berbasis matriks, dengan banyak perkakas privasi yang ditingkatkan. Untuk pengguna tingkat lanjut. µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix memberi anda kontrol penuh ke mana peramban anda diizinkan terhubung, tipe data apa yang diizinkan untuk diunduh, dan apa yang diizinkan untuk dieksekusi. Tidak seorangpun memutuskan untuk anda: Anda yang memilih. Anda mengontrol penuh privasi anda sendiri. µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Secara bawaan, µMatrix bekerja dalam mode blokir-semua/izinkan-sebagian yang agak ketat, artinya situs web yang membutuhkan skrip pihak ketiga besar kemungkinan menjadi "rusak". Dengan dua klik, µMatrix dapat diatur untuk bekerja dalam mode izinkan-semua/blokir-sebagian, yang pada umumnya tidak akan membuat rusak situs web. Lihat https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views untuk penjelasan lebih rinci perihal topik ini. Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Mengenai mitos "Peramban barbasis Chromium tidak dapat dengan handal memblokir JavaScript", lihat: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Ringkasnya: Ya, JavaScript dapat diblokir dengan handal di Chromium. Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* Lihat SEMUA koneksi asing, yang gagal atau mencoba, tergantung dari apakah mereka diblokir atau diizinkan (anda putuskan). * See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* Sekali klik untuk mendaftar-putih/hitamkan satu atau banyak kelas permintaan menurut destinasi dan jenis data (permintaan yang diblokir TIDAK AKAN PERNAH meninggalkan peramban anda). * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Pendaftar-hitaman yang efisien: kuki tidak akan meninggalkan peramban anda, JavaScript tidak akan dieksekusi, plugin tidak akan berjalan, piksel pelacakan tidak akan diunduh, dll. * Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* Anda tidak harus bergantung hanya pada daftar-hitam tertentu saja (dengan alasan banyak entri yang hilang) selain tidak ada lagi yang dapat diblokir: Anda dalam kontrol penuh. * You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Mudah dalam penggunaan: µMatrix memungkinkan anda dengan mudah mendaftar-putih/hitamkan permintaan jaringan yang berasal dari halaman web menurut matriks tunjuk-dan-klik: * Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- nama ranah (kolom kiri) - domain names (left column)
* dari sangat spesifik * from very specific
* ke sangat umum * to very generic
- jenis permintaan (baris atas) - type of requests (top row)
* kuki * cookies
* sumber daya terkait CSS (stylesheet dan fon web) * CSS-related resources (stylesheets and web fonts)
* gambar * images
* plugin * plugins
* skrip * scripts
* XHR (permintaan yang dibuat oleh skrip) * XHR (requests made by scripts)
* frame * frames
* lainnya * others
Anda dapat mendaftar-hitam/putihkan satu sel, seluruh baris, satu grup dari baris, seluruh kolom, atau seluruh matriks hanya dengan satu klik. You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
Mesin penyaringan µMatrix menggunakan logika tinggi untuk mengevaluasi apa yang diblokir/diizinkan sesuai dengan sel mana yang di daftar-hitam/putih. Sebagai contoh, hal ini memungkinkan anda mendaftar-putihkan seluruh halaman dengan satu klik, tanpa perlu berulang-ulang mendaftar-putihkan setiap data baru yang muncul di halaman. µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
Mencakup semua aturan. Sebagai contoh, anda dapat memblokir `facebook.com` dan `facebook.net` di manapun kecuali ketika mengunjungi sebuah halaman di `www.facebook.com`. Dengan cara ini Facebook tidak akan bisa membangun profil mengenai kebiasaan penjelajahan anda. All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
Tujuan dari ekstensi ini adalah untuk mengizinkan atau memblokir situs web, sepenuhnya atau sebagian, sesederhana mungkin, sehingga mendorong para pengguna untuk lebih peduli tentang privasi mereka. The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
Ekstensi ini hadir bersama berkas hos pihak ketiga dengan total lebih dari 58,000 nama hos yang berbeda (daftar dapat secara selektif dinonaktif/aktifkan sesuai dengan pilihan anda). The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Pada akhirnya, Anda dapat memilih bagaimana anda ingin menjelajah internet: Ultimately, you can choose however you browse the net:
* Daftar-hitamkan semua secara baku, dan daftar-putihkan sesuai kebutuhan (mode bawaan). * Blacklist all by default, and whitelist as needed (default mode).
* Daftar-putihkan semua secara baku, dan daftar-hitamkan sesuai kebutuhan. * Whitelist all by default, and blacklist as needed.
Dengan cara manapun, anda masih diuntungkan dari aturan bawaan daftar-hitam sehingga paling tidak anda tetap mendapatkan perlindungan mendasar dari pelacak, situs malware, dll. Atau anda dapat menonaktifkan semua aturan bawaan daftar-hitam ini. Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Terserah anda. Your choice.
Himpunan acak dokumentasi: https://github.com/gorhill/uMatrix/wiki Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
UMPAN BALIK: FEEDBACK:
Jika ada pertanyaan/masalah yang mungkin ingin anda sampaikan, gunakan tombol "Kirim Umpan Balik" di sebelah kanan, agar saya dapat menjawab dengan mudah. Saya tidak dapat menjawab secara langsung untuk ulasan, tapi saya akan lebih dari senang untuk menjawab anda secara langsung di bagian umpan balik. For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
===== =====
KUTU, MASALAH, SARAN: BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues https://github.com/gorhill/uMatrix/issues
Anda sangat diharapkan untuk berkontribusi mengenai pandangan anda mengenai masalah yang ada dan saran/masukan, argumen apapun baik membangun/kontra membantu saya memutuskan apa yang diperlukan untuk memperbaiki ekstensi ini. You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Mudah dalam penggunaan adalah tujuan utama. Saya melihat banyak pengguna menyerah menggunakan NoScript pada Firefox karena menurut mereka semakin banyak gangguan yang terjadi, jadi dari pada menyalahkan para pengguna atas kebiasaan keamanan yang buruk, saya memilih menyalahkan pengembang dan proyek ini adalah eksperimen untuk mengatasi masalah yang menyebabkan beberapa pengguna menyerah pada keamanan dasar. Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
Ekstensi ini juga bermanfaat untuk memahami apa yang halaman web lakukan di dalam peramban anda, yang seringkali tanpa sepengetahuan anda. Anda memiliki kewenangan penuh untuk melihat dan memutuskan dengan siapa sebuah halaman web berkomunikasi, dan membatasi komunikasi tersebut hanya untuk kelas obyek spesifik di dalam halaman web. This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
Angka yang muncul pada ikon ekstensi berhubungan dengan jumlah total percobaan permintaan yang berbeda (sukses atau tidak tergantung pada apakah permintaan tersebut diizinkan atau diblokir) oleh halaman web. The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Cukup klik pada entri yang sesuai dalam matriks untuk memutihkan, menghitamkan, mengabu-abukan sebuah komponen. Mendaftar-abukan berarti status diblokir atau diizinkan akan diturunkan dari sel lainnya dengan urutan prioritas yang lebih tinggi dalam matriks. Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Persegi merah = didaftar-hitamkan secara efektif, contoh. permintaan dicegah untuk mencapai destinasi yang dinginkan: Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Persegi merah gelap: nama ranah dan/atau jenis permintaan secara spesifik didaftar-hitamkan. * Dark red square: the domain name and/or type of request is specifically blacklisted.
* Persegi merah pudar: status daftar-hitam adalah turunan karena entri berada di daftar abu-abu. * Faded red square: the blacklist status is inherited because the entry is graylisted.
Persegi hijau = didaftar-putihkan secara efektif, contoh. permintaan diizinkan untuk mencapai destinasi yang diinginkan: Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Persegi hijau gelap: nama ranah dan/atau jenis permintaan secara spesifik didaftar-putihkan. * Dark green square: the domain name and/or type of request is specifically whitelisted.
* Persegi hijau pudar: status daftar-putih adalah turunan karena entri berada di daftar abu-abu. * Faded green square: the whitelist status is inherited because the entry is graylisted.
Sel kiri atas dalam matriks, sel "semua", mewakili pengaturan baku secara global, yang memungkinkan anda memilih apakah mengizinkan atau memblokir semuanya sebagai perilaku/tindakan baku. Beberapa memilih mengizinkan semuanya sambil memblokir sebagian. Preferensi personal saya adalah tentu saja kebalikannya, memblokir semuanya dan mengizinkan sebagian. The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
Ekstensi ini juga berguna jika anda ingin mempercepat penjelajahan anda, sebagai contoh dengan secara global memblokir semua permintaan untuk gambar. This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
===== =====
KODE SUMBER: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CATATAN PERUBAHAN: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,93 +1,93 @@
uMatrix: un firewall a matrice del tipo punta e clicca, con molte funzionalità a salvaguardia della privacy. Per utenti avanzati. µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
uMatrix permette il pieno controllo delle connessioni del browser, del tipo di dati che può scaricare e di cosa può eseguire. Nessun'altro decide per te: Tu scegli. Solo tu hai il controllo completo della tua privacy. µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
In configurazione standard, uMatrix funziona in modalità blocca-tutto/permetti-eccezionalmente, vale a dire che i siti che richiedono script di terze parti, facilmente risulteranno incompleti o con errori. Con solo un paio di click, uMatrix può essere configurato in modalità permetti-tutto/blocca-eccezionalmente, che generalmente non causa problemi nel caricamento dei siti. Vedere https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views per ulteriori dettagli. Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Riguardo il mito che i browser basati su Chromium non possano bloccare efficacemente javascript, vedere: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. In sostanza: Si, javascript può essere efficacemente bloccato in Chromium. Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
*Vedi TUTTE le connessioni remote, se fallite o tentate, dipendendo se siano bloccate o permesse (tu decidi). * See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* Un singolo click per permettere/bloccare una o più categorie di richieste, in funzione della destinazione e del tipo di dati (una richiesta bloccata non lascerà MAI il tuo browser). * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Controllo efficiente: i cookies non lasceranno il tuo browser, javascript non verrà eseguito, i plug-in non verranno attivati, pixel di tracking non saranno scaricati, ecc. * Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* Tu non devi unicamente affidarti ad una singola lista nera (presumibilmente con molte voci mancanti) al di fuori della quale niente altro può essere bloccato: Tu hai il pieno controllo. * You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Semplicità d'uso: uMatrix consente di permettere/bloccare le richieste originate da una pagina web secondo uno schema a matrice, punta e clicca: * Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- nome del dominio (colonna di sinistra) - domain names (left column)
* dal molto specifico * from very specific
* al molto generico * to very generic
- tipo di richiesta (riga in alto) - type of requests (top row)
* cookies * cookies
* risorse tipo CSS (stili e caratteri) * CSS-related resources (stylesheets and web fonts)
* immagini * images
* plugins * plugins
* scripts * scripts
* XHR (richieste fatte dagli script) * XHR (requests made by scripts)
* riquadri * frames
* altro * others
Tu puoi permettere/bloccare una singola cella, una intera riga, un gruppo di righe, una intera colonna o l'intera matrice, con solo un click. You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
Il sistema di filtri di uMatrix utilizza una logica di priorità per valutare cosa viene bloccato/permesso, secondo le celle che sono in black o white list. Per esempio, questo permette di mettere in white list una pagina intera con un click, senza alcun bisogno di consentire qualunque nuovo elemento che appare sulla pagina. µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
Tutte le regole hanno un loro specifico campo di applicazione. Per esempio, si può bloccare 'facebook.com' e 'facebook.net' ovunque eccetto quando si visita una pagina su 'www.facebook.com'. in questo modo Facebook non è in grado di costruire un profilo delle abitudini di navigazione. All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
Lo scopo di questa estensione è rendere il più immediato possibile il blocco o meno, parziale o totale di siti web, incoraggiando gli utenti a tutelare la propria privacy. The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
L'estensione contiene host file di terze parti, per un totale di oltre 58.000 distinti hostname (le liste possono essere disabilitate/abilitate secondo le proprie preferenze). The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
In conclusione, ognuno può decidere come navigare su Internet: Ultimately, you can choose however you browse the net:
*Mettere tutto in blacklist e consentire elementi secondo necessità (modalità di default). * Blacklist all by default, and whitelist as needed (default mode).
*Consentire tutto di default e bloccare elementi secondo necessità. * Whitelist all by default, and blacklist as needed.
In entrambe le modalità, rimane il beneficio della protezione delle blacklist standard, che forniscono una difesa di base nei confronti di tracker, siti di malware, ecc. Oppure si possono disabilitare tutte queste blacklist standard. Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
La scelta è tua. Your choice.
Documentazione disponibile: https://github.com/gorhill/uMatrix/wiki Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
Feedback: FEEDBACK:
Per qualunque dubbio o domanda, usare il pulsante sulla destra "Invia Feedback". Risponderò prontamente. Non posso rispondere direttamente ai pareri, ma sarò lieto di rispondere direttamente nella sezione dei feedback. For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
===== =====
Bachi, problemi, consigli: BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues https://github.com/gorhill/uMatrix/issues
Chiunque può contribuire al lavoro, con suggerimenti, segnalazione di problemi, argomentazioni pro/contro, per aiutarmi a decidere quali migliorie fare nell'estensione. You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
La facilità di utilizzo è il primo obiettivo. Ho visto utilizzatori rinunciare ad usare NoScript per Firefox perché complesso, quindi invece di accusare questi utilizzatori di avere abitudini non sicure, preferisco accusare gli sviluppatori e questo progetto vuole essere un tentativo di risolvere quei problemi che hanno determinato la rinuncia ad impiegare una sicurezza di base. Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
Questa estensione è anche utile per capire cosa una pagina web fa effettivamente nel browser, spesso senza la vostra conoscenza. Voi avete la piena abilità di vedere e decidere con chi la pagina web comunica e restringere queste comunicazioni a specifiche classi di oggetti all'interno della pagina. This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
Il numero che appare nella nell'icona dell'estensione corrisponde al numero complessivo di distinte richieste tentate (con successo o meno, dipendendo se queste siano permesse o bloccate) dalla pagina web. The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Semplicente fare click nella appropriata cella della matrice per permettere mettere un elemento in white-, black- o grey list. La lista grigia (Graylisting) significa che lo stato di bloccato o permesso viene ereditato da un'altra cella con più alta priorità nella matrice. Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Cella rossa = effettivamente bloccata, cioè alle richieste viene impedito di raggiungere la loro destinazione. Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Cella rosso scuro: il dominio o il tipo di richiesta è specificamente bloccata. * Dark red square: the domain name and/or type of request is specifically blacklisted.
* Cella rossa opaca: lo stato di blocco (blacklist) è ereditato perchè l'elemento è in grey list. * Faded red square: the blacklist status is inherited because the entry is graylisted.
Cella verde = effettivamente permesso, cioè alle richieste è permesso raggiungere la loro destinazione: Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Cella verde scuro: il dominio e/o il tipo di richiesta è specificamente permessa (whitelist). * Dark green square: the domain name and/or type of request is specifically whitelisted.
* Cella vedre opaca: lo stato di permesso è ereditato perchè l'elemento è in grey list. * Faded green square: the whitelist status is inherited because the entry is graylisted.
La cella in alto a sinistra nella matrice, la cella "tutto", rappresenta il setting globale di default, che permette di scegliere se permettere o bloccare tutto. Alcuni preferiscono permettere tutto e bloccare in casi specifici. La mia preferenza personale è naturalmente il contrario, bloccare tutto e permettere in casi specifici. The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
Questa estensione è inoltre utile se volete accelerare la vostra navigazione, bloccando tutte le richieste delle immagini, per esempio. This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
===== =====
CODICE SORGENTE: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,81 +1,93 @@
uMatrix格子状のマトリクスで管理するファイヤウォール。様々なプライバシー強化ツールを兼ね備えます。 µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
* 上級ユーザー向けです * µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
uMatrix を使うと、ブラウザーがどこと通信して良いのか、どの種類のデータをダウンロードするのか、何を実行して良いのかを決定することができます。誰か他の人があなたの代わりに決めてくれることはありません。自分のプライバシーを自分で制御するのです。 Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
初期設定では、uMatrix は安心できる「すべてブロック・必要なら許可」の設定になっています。つまり、サードパーティーのスクリプトを必要とするウェブサイトは“壊れる”ことが多いでしょう。2クリックで、「すべて許可・必要ならブロック」の設定に変えることもでき、この場合、ウェブサイトを壊すことはほとんどありません。より詳しくは https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views を見て下さい。 Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* あなたが選んだブロック/許可の結果による“すべての”リクエストの失敗/実施の状況を確認できます。 * See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* ワンクリックで、接続先やデータの種類に応じてリクエストを許可/ブロックすることができます。ブロックされたリクエストがブラウザーから外に出ることは決してありません。 * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* 効率的なブラックリストCookie はブラウザーの外には出ず、JavaScript もプラグインも実行されず、追跡ピクセルがダウンロードされることもありません。 * Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* リストにないとブロックしてくれない(そして多くの漏れがあるであろう)ブラックリストだけに頼る必要はありません。自分で制御できるのです。 * You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* 使い勝手の良さuMatrix では、ウェブページが発したリクエストを、マトリクスをクリックすることで簡単に許可/ブロックすることができます。 * Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- ドメイン名(左の列) - domain names (left column)
* 具体的なドメインから * from very specific
* 汎用的なドメインまで 選ぶことができます * to very generic
- リクエストの種類(先頭の行) - type of requests (top row)
* Cookie * cookies
* CSS 関連のリソース(スタイルシートと Web フォント) * CSS-related resources (stylesheets and web fonts)
* 画像 * images
* メディア * plugins
* スクリプト * scripts
* XHR(スクリプトにより生成されるリクエスト) * XHR (requests made by scripts)
* フレーム * frames
* その他 * others
ワンクリックで、特定のセル、特定のドメイン、グループ化されたドメイン、特定のリクエストの種類、そしてマトリクス全体を許可/ブロックできます。 You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
uMatrix のフィルタリングエンジンは、どのセルが許可/ブロックされているかによって、優先順位に基づくロジックでリクエストを処理します。これにより、例えば、あるページ全体をワンクリックで許可しておけば、このページに新しいリクエストが見つかるたびに許可を追加する必要がなくなります。 µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
それぞれのルールには有効範囲があります。例えば、www.facebook.com にアクセスしていない時だけ facebook.com と facebook.net をブロックすることができます。これにより、Facebook が、あなたのブラウジング習慣からあなたの人物像を作成することを防ぎます。 All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
この拡張機能の最終目標は、ユーザーが自身のプライバシーに気を配れるよう、可能な限り簡潔に、ウェブサイトを包括的あるいは部分的に許可/ブロックできるようにすることです。 The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
この拡張機能には、合計 62,000 件以上のホスト名からなるサードパーティーのホストファイルが含まれます。これらのファイルは好みに応じてオンオフすることができます。 The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
まとめると、あなたはネットをブラウジングする方法を次のように選ぶことができます。 Ultimately, you can choose however you browse the net:
* はじめはすべてブロック、必要に応じて許可していく(初期設定) * Blacklist all by default, and whitelist as needed (default mode).
* はじめはすべて許可、必要に応じてブロックしていく * Whitelist all by default, and blacklist as needed.
どちらの方法でも、組み込みのホストファイルのおかげで、トラッカーやマルウェアサイトなどに対する基礎的な保護を得ることができます。もしくはこれらをすべて無効にすることもできます。 Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
決めるのはあなたです。 Your choice.
ドキュメント: https://github.com/gorhill/uMatrix/wiki Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
この拡張機能のもう一つの使い道は、知識なしでも、ブラウザーの中でウェブページが何をしているか理解することです。あなたはウェブページがどこと通信するのかをすべて見た上で決断し、ウェブページ中の特定の種類の通信を制限できます。 FEEDBACK:
拡張機能アイコンに表示される数値は、ウェブページによっていくつのリクエストが試みられたかの総数(許可/ブロック合わせて)を示します。 For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
マトリクスの適切なセルをクリックして、許可/ブロック/グレーのいずれにするかを決めます。“グレー”では、マトリクス内のより優先度の高いセルからブロック/許可の状態を引き継ぎます。 =====
赤いセル は事実上ブロックされている状態であり、リクエストは接続先に届きません。 BUGS, ISSUES, SUGEGSTIONS:
* 濃い赤:そのドメイン名とリクエスト種類の組み合わせは、明示的にブロックされています。
* 淡い赤:セルが“グレー”状態のため、ブロック状態が引き継がれました。
緑のセル は事実上許可されている状態であり、リクエストは接続先に届きます。 https://github.com/gorhill/uMatrix/issues
* 濃い緑:そのドメイン名とリクエスト種類の組み合わせは、明示的に許可されています。
* 淡い緑:セルが“グレー”状態のため、許可が引き継がれました。
マトリクスの一番左上にある「すべて」のセルはデフォルトのグローバル設定を示し、「すべてを許可」と「すべてをブロック」のどちらをデフォルトにするかを選ぶことができます。人によっては、すべてを許可した上で必要に応じてブロックすることを好むでしょう。私の個人的な設定はもちろんその逆、すべてをブロックした上で必要なものを許可します。 You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
この拡張機能は、例えば画像の読み込みをすべてブロックすることで、ブラウジングスピードを上げるのにも役立ちます。 Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
===== This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
バグ・問題報告: https://github.com/gorhill/uMatrix/issues Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
=====
ソースコード: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
更新履歴: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -88,6 +88,6 @@ This extension is also useful if you wish to speed up your browsing, by globally
===== =====
소스 코드: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
변경사항: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -10,27 +10,27 @@ Regarding the myth that "Chromium-based browsers can't reliably block javascript
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser). * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efektīgs melnais saraksts: "cepumiņi" nepametīs jūsu pārlūku, javascripts netiks izpildīts, spraudņi netiks palaisti, sekošanas pikseļi netiks novilkti, u.t.t. * Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control. * You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix: * Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domēnu vārdi (kreisajā kolonnā) - domain names (left column)
* sākot ar ļoti specifiskiem * from very specific
* beidzot ar ļoti vispārējiem * to very generic
- Pieprasījumu veidi (augšējā rinda) - type of requests (top row)
* "cepumiņi" * cookies
* CSS-related resources (stylesheets and web fonts) * CSS-related resources (stylesheets and web fonts)
* attēli * images
* spraudņi * plugins
* "skriptus" * scripts
* XHR ("skriptu" pieprasījumus) * XHR (requests made by scripts)
* rāmji * frames
* citi * others
Jūs variet iekļaut atsevišķas šūnas, veselu vai vairākas rindas, veselu kolonnu vai visu matriksu melnajā/baltajā sarakstā tikai are vienu peles klikšķi. You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page. µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
@ -48,19 +48,19 @@ Ultimately, you can choose however you browse the net:
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists. Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Jūsu izvēle. Your choice.
Nejauši apkopota dokumentācija: https://github.com/gorhill/uMatrix/wiki Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
ATSAUKSMES: FEEDBACK:
Jebkuriem jautājumiem/problēmām izmantojot "Nosūtīt Atsauksmes" pogu labajā malā, lai man būtu vieglāk jums atbildēt. Es nevaru tieši atbildēt uz jūsu recenzijām, taču būšu vairāk kā priecīgs atbildēt jums tieši atsauksmju sadaļā. For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
===== =====
KĻŪDAS, PROBLĒMAS, IETEIKUMI: BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues https://github.com/gorhill/uMatrix/issues
@ -84,10 +84,10 @@ Green square = effectively whitelisted, i.e. requests are allowed to reach their
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally. The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
Šis paplašinājums ir arī noderīgs, ja vēlaties paātrināt savu "sērfošanas" ātrumu, piemēram, bloķējot globāli visus pieprasījumus pēc attēliem. This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
===== =====
Pirmkods: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
Izmaiņu žurnāls: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,81 +1,93 @@
uMatrix: een contextafhankelijke en matrix-gebaseerde firewall, met vele functies ter verbetering van uw privacy. µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
*Voor gevorderde gebruikers.* µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
uMatrix geeft volledige controle over welke verbindingen uw browser mag maken, welk type gegevens de browser mag downloaden, en wat erin mag worden uitgevoerd. Niemand anders beslist het: het is uw keuze. U hebt de volledige controle over uw privacy. Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Direct na installatie werkt uMatrix in de modus alles-blokkeren/bij-uitzondering-blokkeren, wat inhoudt dat websites die scripts van derden nodig hebben waarschijnlijk niet goed worden weergegeven. Met twee muisklikken kan uMatrix worden ingesteld om in de modus alles-toestaan/bij-uitzondering-blokkeren te werken, waarmee websites doorgaans wel goed worden weergegeven. Zie https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views voor meer details over dit onderwerp. Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* Bekijk ALLE externe verbindingen, mislukte of gepoogde, afhankelijk van of deze werden geblokkeerd of toegestaan (u beslist). * See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* Eén muisklik voor het whitelisten/blacklisten van een of meer aanvraagklassen volgens de bestemming en het type gegevens (een geblokkeerde aanvraag zal uw browser NOOIT verlaten). * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efficiënt blacklisten: cookies verlaten uw browser niet, JavaScript wordt niet uitgevoerd, plug-ins worden niet afgespeeld, trackingpixels worden niet gedownload, etc. * Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* U hoeft niet slechts op één bepaalde beheerde blacklist (betwistbaar met veel ontbrekende vermeldingen) te vertrouwen waarbuiten niets anders kan worden geblokkeerd: u hebt de volledige controle. * You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Gebruikersgemak: met uMatrix kunt u eenvoudig netwerkaanvragen die van een webpagina afkomstig zijn whitelisten/blacklisten, volgens een matrix via aanwijzen en klikken: * Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domeinnamen (linkerkolom) - domain names (left column)
* van zeer specifieke * from very specific
* tot zeer algemene * to very generic
- type aanvragen (bovenste rij) - type of requests (top row)
* cookies * cookies
* CSS-gerelateerde bronnen (stijlbladen en weblettertypen) * CSS-related resources (stylesheets and web fonts)
* afbeeldingen * images
* plug-ins * plugins
* scripts * scripts
* XHR (aanvragen door scripts) * XHR (requests made by scripts)
* frames * frames
* overig * others
Met slechts één klik kunt u een enkele cel, een hele rij, een groep rijen, een hele kolom, of de hele matrix blacklisten/whitelisten. You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
De filterengine van uMatrix gebruikt voorrangslogica voor het evalueren van wat er volgens de cellen die zijn geblacklist/gewhitelist is geblokkeerd/toegestaan. Hierdoor kunt u bijvoorbeeld met één klik een hele pagina whitelisten, zonder dat u dat herhaaldelijk moet doen bij nieuwe gegevens die op de pagina verschijnen. µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
Alle regels worden aan een bereik gerelateerd. U kunt bijvoorbeeld facebook.com en facebook.net overal blokkeren, behalve wanneer u een pagina op www.facebook.com bezoekt. Op deze manier zal Facebook geen profiel van uw surfgedrag kunnen opbouwen. All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
Het doel van deze extensie is om het toestaan of blokkeren van websites, geheel of gedeeltelijk, zo overzichtelijk mogelijk te maken en daarmee gebruikers aan te moedigen om op hun privacy te letten. The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
Standaard bevat de extensie hosts-bestanden van derden met meer dan 62.000 afzonderlijke hostnamen (lijsten kunnen naar keuze selectief worden in- en uitgeschakeld). The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Uiteindelijk kunt u kiezen hoe u op het internet wilt surfen: Ultimately, you can choose however you browse the net:
* Alles standaard blacklisten, en whitelisten wanneer nodig (standaardmodus). * Blacklist all by default, and whitelist as needed (default mode).
* Alles standaard whitelisten, en blacklisten wanneer nodig. * Whitelist all by default, and blacklist as needed.
In beide gevallen heb u voordeel van de vooraf geleverde blacklists, zodat u op zijn minst basisbescherming krijgt tegen trackers, malwaresites, etc. U kunt al deze vooraf geleverde blacklists ook uitschakelen. Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Uw keuze. Your choice.
Willekeurig samengestelde documentatie: https://github.com/gorhill/uMatrix/wiki Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
Deze extensie is ook bruikbaar om te begrijpen wat de webpagina in uw browser doet, vaak zonder uw medeweten. U hebt de volledige mogelijkheid om te zien en te beslissen waarmee een webpagina communiceert, en deze communicatie tot bepaalde objectklassen binnen dezelfde pagina te beperken. FEEDBACK:
Het getal dat in het pictogram van de extensie verschijnt, komt overeen met het totale aantal afzonderlijke geprobeerde aanvragen (geslaagd of niet, afhankelijk van of deze werden toegestaan of geblokkeerd) door de webpagina. For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
Klik eenvoudig op de juiste vermelding in de matrix om een onderdeel te white-, black- of graylisten. Graylisten houdt in dat de status geblokkeerd of toegestaan van een andere cel met hogere voorrang in de matrix wordt overgenomen. =====
Rood vierkant = effectief geblacklist, m.a.w. aanvragen richting hun bedoelde eindbestemming worden voorkomen: BUGS, ISSUES, SUGEGSTIONS:
* Donkerrood vierkant: de domeinnaam en/of het type aanvraag is specifiek geblacklist.
* Vaalrood vierkant: de blacklist-status is overgenomen, omdat de vermelding is gegraylist.
Groen vierkant = effectief gewhitelist, m.a.w. aanvragen mogen hun bedoelde eindbestemming bereiken: https://github.com/gorhill/uMatrix/issues
* Donkergroen vierkant: de domeinnaam en/of het type aanvraag is specifiek gewhitelist.
* Vaalgroen vierkant: de whitelist-status is overgenomen, omdat de vermelding is gegraylist.
De cel in de linkerbovenhoek van de matrix, de cel alle, vertegenwoordigt de algemene standaardinstelling waarmee u kunt kiezen of alles toestaan of blokkeren het standaardgedrag is. Sommige gebruikers geven de voorkeur aan alles toestaan en bij uitzondering blokkeren. Mijn persoonlijke voorkeur is natuurlijk het omgekeerde, alles blokkeren en bij uitzondering toestaan. You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Deze extensie is ook nuttig als u het browsen wilt versnellen, bijvoorbeeld door alle aanvragen voor afbeeldingen overal te blokkeren. Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
===== This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Dark red square: the domain name and/or type of request is specifically blacklisted.
* Faded red square: the blacklist status is inherited because the entry is graylisted.
BUGS, PROBLEMEN: https://github.com/gorhill/uMatrix/issues Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
=====
BRONCODE: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,6 +1,6 @@
µMatrix er et pek-og-klikk matrise basert brannmur, med mange fler personverns verktøy. For avanserte brukere. µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix gir deg full kontroll over din nettlesers tilkoblinger og hvilke typer data den får lov til å laste ned eller kjøre. Ingen bestemmer for deg. Og du vil være i full kontroll over ditt eget privatliv. µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic. Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.

@ -74,13 +74,13 @@ O número que aparece no ícone da extensão corresponde ao número total de ped
Simples clique para apropriar uma entrada na matrix nas cores branca-,preta- ou cinza de um componente. Cinza significa que o status de permitido ou bloqueado irá ser herdado de uma outra célula de maior precedência na matrix. Simples clique para apropriar uma entrada na matrix nas cores branca-,preta- ou cinza de um componente. Cinza significa que o status de permitido ou bloqueado irá ser herdado de uma outra célula de maior precedência na matrix.
Quadrado vermelho = efetivamente na lista negra, exemplo: pedidos são prevenidos de alcançar o destino pretendido: Quadrado vermelho = efetivamente na lista negra, i.e. pedidos são prevenidos de alcançar o destino pretendido:
* Quadrado vermelho escuro: o nome do domínio e/ou tipo de pedido está especificamente na lista negra. * Quadrado vermelho escuro: o nome do domínio e/ou tipo de pedido está especificamente na lista negra.
* Quadrado vermelho claro: o status de lista negra é herdada porque a entrada é cinza. * Quadrado vermelho claro: o status de lista negra é herdada porque a entrada é cinza.
Quadrado verde = efetivamente na lista branca, i.e. os pedidos são permitidos de alcançar o destino pretendido: Quadrado verde = efetivamente na lista branca, i.e. os pedidos são permitidos de alcançar o destino pretendido:
* Quadrado verde escuro: o nome do domínio e/ou tipos de pedido são especificamente da lista branca. * Quadrado verde escuro: o nome do domínio e/ou tipos de pedido são especificamente da lista branca.
* Quadrado verde claro: o status da lista branca é herdada por causa de uma entrada cinza. * Quadrado verde claro: o status da lista branca é herdade por causa de uma entrada cinza.
A célula superior esquerda na matrix, a célula "tudo/todos", representa a configuração padrão global, que permite que você escolha entre permitir ou bloquear tudo como comportamento padrão. Alguns preferem permitir tudo e bloquear excepcionalmente. Minha preferência pessoa é claro que é o oposto, bloquear tudo e permitir excepcionalmente. A célula superior esquerda na matrix, a célula "tudo/todos", representa a configuração padrão global, que permite que você escolha entre permitir ou bloquear tudo como comportamento padrão. Alguns preferem permitir tudo e bloquear excepcionalmente. Minha preferência pessoa é claro que é o oposto, bloquear tudo e permitir excepcionalmente.

@ -1,93 +1,93 @@
Uma firewall point & click baseada numa matriz, com funcionalidade para reforçar a privacidade de cada um. Para utilizadores avançados. µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
uMatrix coloca-o no controlo de onde o seu browser se pode conectar, que tipo de dados podem ser transferidos, e o que pode ser executado. Ninguém decide por si: Você escolhe. Você tem controlo total sob a sua privacidade. µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Fora da caixa, uMatrix funciona numa configuração relaxada "bloqueia-tudo/permite-excepcionalmente", o que quer dizer que web sites que necessitem scripts de terceiros poderão não estar funcionais. Com dois clicks, o uMatrix pode ser configurado para funcionar em modo "permite-tudo/bloqueia-excepcionalmente", o que geralmente não cria problemas em nenhuma página web. Ver https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views para mais detalhes sobre este tópico. Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Sobre do mito que "browser baseados em Chromium não conseguem bloquear JavaScript fielmente", ver: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Sumário: Sim, JavaScript pode ser bloqueado com seguração no Chromium. Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* Ver TODAS as conexões remotas, falhadas ou tentadas, dependendo se foram bloqueadas ou permitidas (você decide). * See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* Um único-clique para meter múltiplas classes de pedidos na lista branca/negra, de acordo com o destino e tipo dos dados (um pedido bloqueado NUNCA vai sair do seu browser). * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Lista negra eficiente: cookies não iram sair do seu browser, JavaScript não será executado, plugins não irão correr, pixels de monitorização não serão transferidos, etc. * Efficient blacklisting: cookies won't leave your browser, javascript won't execute, plugins won't play, tracking pixels won't download, etc.
* Você não tem de depender unicamente numa lista negra em particular (possivelmente a faltar entradas) fora do qual mais nada pode ser bloqueado: Você está em controlo total. * You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Facilidade de utilização: uMatrix deixa-o adicionar pedidos net que originam de uma página web a uma lista negra/branca, recorrendo a uma matriz point & click: * Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- nomes de domínio (coluna esquerda) - domain names (left column)
* de muito específico * from very specific
* a muito genérico * to very generic
- tipo de pedidos (linha de topo) - type of requests (top row)
* cookies * cookies
* Recursos relacionados com CSS (stylesheets e web fonts) * CSS-related resources (stylesheets and web fonts)
* imagens * images
* plug-ins * plugins
* scripts * scripts
* XHR (pedidos efectuados pelos scripts) * XHR (requests made by scripts)
* frames * frames
* outros * others
Pode adicionar uma única célula à lista negra/branca, um grupo de linhas, uma coluna inteira, ou toda a matriz, com apenas um clique. You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
O mecanismo de filtragem do uMatrix usa lógica de precedência para avaliar o que é permitido/está bloqueado, de acordo com as células que estão na lista negra/branca. Por exemplo, isto permite que adicione uma página inteira à lista branca com um só clique, sem ter que adicionar elementos à mesma, à medida que vão aparecendo. µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
Todas as regras têm escopos. Por exemplo, pode bloquear 'facebook.com' e 'facebook.net' em todo o lado, excepto quando visita a página em 'www.facebook.com'. Desta maneira, o Facebook não será capaz de criar um perfil com os seus hábitos de navegação pessoais. All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
O objectivo desta extensão é tornar o acto de permitir ou proibir web sites, total ou parcialmente, o mais directo possível, para encorajar os utilizadores a se preocuparem com a sua privacidade. The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
Esta extensão vem com ficheiros hosts de terceiros, totalizando mais de 58,000 hostnames (as listas podem ser activadas e desactivadas selectivamente, de acordo com a sua escolha). The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Fundamentalmente, pode escolher como navegar na internet: Ultimately, you can choose however you browse the net:
* Adicionar tudo à lista negra, e ir adicionando o que precisa à branca (modo normal). * Blacklist all by default, and whitelist as needed (default mode).
* Adicionar tudo à lista branca, e ir adicionando o que não precisa à negra. * Whitelist all by default, and blacklist as needed.
De qualquer modo, vai sempre beneficiar das listas negras presentes, para que tenha sempre protecção básica contra trackers, sites de malware, etc. Ou pode desactivar todas as listas negras. Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
A escolha é sua. Your choice.
Documentação aleatória: https://github.com/gorhill/uMatrix/wiki Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
FEEDBACK: FEEDBACK:
Qualquer questão ou problema que possa ter, use o botão "Send Feedback" à direita, para que possa responder rapidamente. Não posso responder directamente a comentários, mas não poderia estar mais contente por lhe responder directamente na secção de feedback. For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
===== =====
ERROS, PROBLEMAS, SUGESTÕES: BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues https://github.com/gorhill/uMatrix/issues
É muito bem vindo a contribuir com a sua opinião em questões em aberto, e a dar sugestões, argumentos para me ajudar a decidir o que é preciso para melhorar a extensão. You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Facilidade de uso é o objectivo principal. Já vi utilizadores desistir de usar o NoScript do Firefox porque requer configuração excessiva, portanto, em vez de os culpar por hábitos de segurança pobres, prefiro culpar os developers, e este projecto é uma tentativa a adereçar problemas que causam alguns a desistir de segurança básica. Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
Esta extensão é também útil para entender o que a página web no seu browser está a fazer, por vezes sem o seu conhecimento. Tem o poder de ver e decidir com quem é que a página web comunica, e restringir essas comunicações a uma classe específica de objectos na mesma página. This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
O número que aparece no ícone da extensão corresponde ao número total de pedidos distintos tentados (com sucesso ou não, dependendo das lista branca/negra) pela página web. The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Simplesmente clique na célula apropriada na matriz para adicionar um componente à lista branca, negra, ou cinzenta. A lista cinzenta representa os objectos cujo estatuto (permitido ou bloqueado) é herdado de uma célula que precede a presente, na matriz. Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
Quadrado vermelho = completamente na lista negra, i.e. pedidos são impedidos de chegar ao seu destino: Red square = effectively blacklisted, i.e. requests are prevented from reaching their intended destination:
* Quadrado vermelho escuro: o nome do domínio e/ou tipo de pedido está especificamente na lista negra. * Dark red square: the domain name and/or type of request is specifically blacklisted.
* Quadrado vermelho esbranquiçado: o estatuto de lista negra foi herdado, porque a entrada está na lista cinzenta. * Faded red square: the blacklist status is inherited because the entry is graylisted.
Quadrado verde = completamente na lista branca, i.e. pedidos são permitidos e chegam ao seu destino: Green square = effectively whitelisted, i.e. requests are allowed to reach their intended destination:
* Quadrado verde escuro: o nome do domínio e/ou tipo de pedido está especificamente na lista branca. * Dark green square: the domain name and/or type of request is specifically whitelisted.
* Quadrado verde esbranquiçado: o estatuto de lista branca foi herdado, porque a entrada está na lista cinzenta. * Faded green square: the whitelist status is inherited because the entry is graylisted.
A célula de topo à esquerda na matriz, a célula "all", representa a definição global, que permite escolher se quer permitir ou bloquear tudo, como o comportamento normal. Alguns preferem permitir tudo e bloquear excepcionalmente. A minha preferência pessoal é o oposto -- bloquear tudo e permitir excepcionalmente. The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
Esta extensão é também útil caso queira acelerar a velocidade do carregamento das páginas, bloqueando todos os pedidos para imagens, por exemplo. This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
===== =====
CÓDIGO FONTE: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
REGISTO DE ALTERAÇÕES: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,6 +1,6 @@
µMatrix: интерактивный файрвол на основе таблиц со множеством инструментов, повышающих уровень конфиденциальности. Для продвинутых пользователей. µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix даст вам полный контроль над тем, где вашему браузеру разрешено соединяться, какие типы данных дозволено загружать и что выполнять. Никто другой не выбирает: выбор только за вами. Вы полностью контролируете свою приватность. µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic. Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
@ -20,17 +20,17 @@ Regarding the myth that "Chromium-based browsers can't reliably block javascript
* from very specific * from very specific
* to very generic * to very generic
- тип запросов (верхний ряд) - type of requests (top row)
* куки * cookies
* ресурсы CSS (таблицы стилей и веб-шрифты) * CSS-related resources (stylesheets and web fonts)
* изображения * images
* плагины * plugins
* скрипты * scripts
* XHR (запросы от скриптов) * XHR (requests made by scripts)
* фреймы * frames
* и другое * others
Вы можете добавлять в белый/чёрный список отдельную ячейку, одну или несколько строк, колонку или всю матрицу за один щелчок мыши. You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page. µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
@ -48,13 +48,13 @@ Ultimately, you can choose however you browse the net:
Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists. Either way, you still benefit from the preset blacklists so that at least you get basic protection from trackers, malware sites, etc. Or you can disable all of these preset blacklists.
Ваш выбор. Your choice.
Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
ОБРАТНАЯ СВЯЗЬ: FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section. For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
@ -88,6 +88,6 @@ This extension is also useful if you wish to speed up your browsing, by globally
===== =====
ИСХОДНИКИ: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
ЛОГ ИЗМЕНЕНИЙ: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,10 +1,10 @@
uMatrix: Matris tabanlı işaret et ve tıkla güvenlik duvarıdır, birçok gizlilik arttırıcı aracıyla birlikte gelir. µMatrix: Matris tabanlı işaret et ve tıkla güvenlik duvarıdır, birçok gizlilik arttırıcı aracıyla birlikte gelir. İleri düzey kullanıcılar için.
*İleri düzey kullanıcılar için.* µMatrix tarayıcınızın nereye bağlanabileceği, ne tür veri indirebileceği ve yürütebileceği konusunda tam denetimi size verir. Kimse sizin yerinize karar vermez: Siz seçersiniz. Gizliliğinizin tam denetimi sizdedir.
uMatrix tarayıcınızın nereye bağlanabileceği, ne tür veri indirebileceği ve yürütebileceği konusunda tam denetimi size verir. Kimse sizin yerinize karar vermez: Siz seçersiniz. Gizliliğinizin tam denetimi sizdedir. µMatrix tümünü engelle/istisnalara izin ver modunda çalışır, bunun anlamı 3. taraf betiklere ihtiyaç duyan web sitelerinin muhtemelen "bozuk" olabileceğidir. µMatrix İki tıklama ile genelde siteleri bozmayacak tümüne izin ver/istisnaları engelle moduna ayarlanabilir. Bu konu hakkında daha ayrıntılı bilgi almak için https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views bağlantısına bakın.
uMatrix tümünü engelle/istisnalara izin ver modunda çalışır, bunun anlamı 3. taraf betiklere ihtiyaç duyan web sitelerinin muhtemelen "bozuk" olabileceğidir. İki tıklama ile uMatrix genelde siteleri bozmayacak tümüne izin ver/istisnaları engelle moduna ayarlanabilir. Bu konu hakkında daha ayrıntılı bilgi almak için https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views bağlantısına bakın. "Chromium-tabanlı tarayıcılarda güvenilir biçimde JavaScript'ler engellenemez" efsanesiyle ilgili olarak, bakınız: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Sonuç: Evet, JavaScript güvenilir biçimde Chromium'da engellenebilir.
* Engellendiğine veya izin verildiğine (sizin seçiminiz) bağlı olarak başarısız veya denenmiş TÜM uzak bağlantıları görün. * Engellendiğine veya izin verildiğine (sizin seçiminiz) bağlı olarak başarısız veya denenmiş TÜM uzak bağlantıları görün.
@ -14,7 +14,7 @@ uMatrix tümünü engelle/istisnalara izin ver modunda çalışır, bunun anlam
* Belirli kara listelere bağlı (birçok eksiği bulunan) kalmak zorunda değilsiniz: Tüm denetim sizde. * Belirli kara listelere bağlı (birçok eksiği bulunan) kalmak zorunda değilsiniz: Tüm denetim sizde.
* Kullanımı kolay: uMatrix işaret et ve tıkla matrisiyle bir web sitesinden kaynaklanan istekleri kolaylıkla beyaz/kara listeye almanızı sağlar: * Kullanımı kolay: µMatrix işaret et ve tıkla matrisiyle bir web sitesinden kaynaklanan istekleri kolaylıkla beyaz/kara listeye almanızı sağlar:
- alan adları (sol sütun) - alan adları (sol sütun)
* özelden * özelden
@ -32,13 +32,13 @@ uMatrix tümünü engelle/istisnalara izin ver modunda çalışır, bunun anlam
Tek hücreyi, tüm satırı, satır gruplarını, tüm sütunu veya tüm matrisi bir tek tıklama ile kara/beyaz listeye alabilirsiniz. Tek hücreyi, tüm satırı, satır gruplarını, tüm sütunu veya tüm matrisi bir tek tıklama ile kara/beyaz listeye alabilirsiniz.
uMatrix'in süzgeç motoru hangi hücrelerin kara/beyaz listede bulunduğuna göre öncelik mantığını kullanarak nelerin engelleneceğine veya nelere izin verileceğine karar verir. Örneğin, bu şekilde sayfada beliren yeni veri türlerine sürekli izin vermenize gerek kalmadan tüm sayfayı beyaz listeye almanıza izin verir. µMatrix'in süzgeç motoru hangi hücrelerin kara/beyaz listede bulunduğuna göre öncelik mantığını kullanarak nelerin engelleneceğine veya nelere izin verileceğine karar verir. Örneğin, bu şekilde sayfada beliren yeni veri türlerine sürekli izin vermenize gerek kalmadan tüm sayfayı beyaz listeye almanıza izin verir.
Tüm kurallar kapsamlıdır. Örneğin, `facebook.com` ve `facebook.net` sitelerini `www.facebook.com`dışındaki sitelerde engelleyebilirsiniz. Bu şekilde Facebook gezinti alışkanlıklarınızla ilgili profil oluşturamayacaktır. Tüm kurallar kapsamlıdır. Örneğin, `facebook.com` ve `facebook.net` sitelerini `www.facebook.com`dışındaki sitelerde engelleyebilirsiniz. Bu şekilde Facebook gezinti alışkanlıklarınızla ilgili profil oluşturamayacaktır.
Bu eklentinin en basit olarak amacı web sitelerine izin vererek veya engelleyerek, tümden veya kısmi olarak, kullanıcıların kendi gizliliklerine dikkat etmelerini teşvik etmektir. Bu eklentinin en basit olarak amacı web sitelerine izin vererek veya engelleyerek, tümden veya kısmi olarak, kullanıcıların kendi gizliliklerine dikkat etmelerini teşvik etmektir.
Bu eklenti 3. taraf alan dosyalarıyla toplamda 62.000'nin üzerinde farklı alan adıyla birlikte gelir (listeler seçime bağlı olarak etkinleştirilebilir veya devre dışı bırakılabilir). Bu eklenti 3. taraf alan dosyalarıyla toplamda 58.000'nin üzerinde farklı alan adıyla birlikte gelir (listeler seçiminize bağlı olarak etkinleştirilebilir veya devre dışı bırakılabilir).
Sonuçta, internette nasıl gezmek istediğinizi seçebilirsiniz: Sonuçta, internette nasıl gezmek istediğinizi seçebilirsiniz:
@ -50,10 +50,24 @@ Her halükarda, önceden ayarlanmış kara listelerden faydalanarak izleyiciler,
Sizin seçiminiz. Sizin seçiminiz.
Rastgele toplanmış belgeler: https://github.com/gorhill/uMatrix/wiki (çalışma gerektiriyor) Rastgele toplanmış belgeler: https://github.com/gorhill/uMatrix/wiki
===== =====
GERİ BİLDİRİM:
Herhangi bir sorunuz veya sorununuz varsa çabucak cevap verebilmem için sağdaki "Geri Bildirim Gönder" düğmesini kullanın. Yorumlara doğrudan cevap veremiyorum fakat geri bildirim bölümünden seve seve cevap vereceğim.
=====
HATALAR, SORUNLAR, ÖNERİLER:
https://github.com/gorhill/uMatrix/issues
Eklentiyi geliştirmek için açık sorunlara ve önerilere, karar vermem için çeşitli argümanlar üzerine görüşlerinizi bekliyorum.
Kullanım kolaylığı birincil hedeftir. Firefox'un NoScript eklentisi çok uğraş gerektirdiği için bu eklentiyi kullanmaktan vazgeçen kullanıcılar gördüm. Bu kullanıcıları zayıf güvenlik alışkanlıkları olduğu için suçlamak yerine, bu sorunları çözmedikleri için geliştiricileri suçlamayı yeğelerim. Bu proje bazı kullanıcıların temel güvenliklerinden vazgeçmeleri sorununu deneme düzeyinde çözmeyi amaçlar.
Ayrıca bu eklenti bir web sayfasının bilginiz dışında tarayıcınızda ne yapmaya çalıştığını anlamanıza yardımcı olur. Web sayfasının neyle iletişim kurduğunu görmenizi ve web sayfasında kurulan bu iletişimin belirli öğe sınıflarına kısıtlanması üzerine karar vermenizi sağlar. Ayrıca bu eklenti bir web sayfasının bilginiz dışında tarayıcınızda ne yapmaya çalıştığını anlamanıza yardımcı olur. Web sayfasının neyle iletişim kurduğunu görmenizi ve web sayfasında kurulan bu iletişimin belirli öğe sınıflarına kısıtlanması üzerine karar vermenizi sağlar.
Eklenti simgesinde görünen sayı web sitesi tarafından girişimde bulunulmuş farklı istek sayısının toplamıdır (izin verilip verilmediğine göre başarılı veya değil). Eklenti simgesinde görünen sayı web sitesi tarafından girişimde bulunulmuş farklı istek sayısının toplamıdır (izin verilip verilmediğine göre başarılı veya değil).
@ -74,8 +88,6 @@ Bu eklenti ayrıca gezinti hızınızı da arttırmak istiyorsanız kullanışl
===== =====
HATALAR, SORUNLAR: https://github.com/gorhill/uMatrix/issues
KAYNAK KODU: https://github.com/gorhill/uMatrix (GPLv3) KAYNAK KODU: https://github.com/gorhill/uMatrix (GPLv3)
DEĞİŞİM GÜNLÜĞÜ: https://github.com/gorhill/uMatrix/releases DEĞİŞİM GÜNLÜĞÜ: https://github.com/gorhill/uMatrix/releases

@ -1,20 +1,20 @@
uMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
*For advanced users.* µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
uMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy. Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Out of the box, uMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, uMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic. Regarding the myth that "Chromium-based browsers can't reliably block JavaScript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, JavaScript can be blocked reliably in Chromium.
* See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide). * See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser). * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
* Efficient blacklisting: cookies won't leave your browser, JavaScript won't execute, media won't play, tracking pixels won't download, etc. * Efficient blacklisting: cookies won't leave your browser, JavaScript won't execute, plugins won't play, tracking pixels won't download, etc.
* You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control. * You do not have to solely rely on just one particular curated blacklist (arguably with many missing entries) outside which nothing else can be blocked: You are in full control.
* Ease of use: uMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix: * Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- domain names (left column) - domain names (left column)
* from very specific * from very specific
@ -22,23 +22,23 @@ Out of the box, uMatrix works in relax block-all/allow-exceptionally mode, meani
- type of requests (top row) - type of requests (top row)
* cookies * cookies
* css (stylesheets and web fonts) * CSS-related resources (stylesheets and web fonts)
* images * images
* media * plugins
* scripts * scripts
* xhr (requests made by scripts) * XHR (requests made by scripts)
* frames * frames
* others * others
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click. You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
uMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page. µMatrix's filtering engine uses precedence logic to evaluate what is blocked/allowed according to which cells are blacklisted/whitelisted. For example, this allows you to whitelist a whole page with one click, without having to repeatedly whitelist whatever new data appear on the page.
All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits. All rules are scoped. For example, you can block `facebook.com` and `facebook.net` everywhere except when visiting a page on `www.facebook.com`. This way Facebook won't be able to build a profile of your browsing habits.
The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy. The goal of this extension is to make the allowing or blocking of web sites, wholly or partly, as straightforward as possible, so as to encourage users to care about their privacy.
The extension comes with 3rd-party hosts files totaling over 62,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice). The extension comes with 3rd-party hosts files totaling over 58,000 distinct hostnames (lists can be selectively disabled/enabled according to your choice).
Ultimately, you can choose however you browse the net: Ultimately, you can choose however you browse the net:
@ -54,9 +54,23 @@ Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
=====
BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues
You are very welcomed to contribute your views on open issues and suggestions, various arguments for/against help me in deciding what is needed to improve the extension.
Ease of use is the primary goal. I've seen users give up on Firefox's NoScript because it gets too much in the way according to them, so rather than blame these users for poor security habits, I prefer to blame developers and this project is a tentative to address the issues which cause some users to give up on basic security.
This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page. This extension is also useful to understand what the web page in your browser is doing, often without your knowledge. You have full ability to see and decide with whom a web page communicates, and to restrict these communications to specific classes of objects within the web page.
The number which appears in the extension icon correspond to the total number of distinct requests blocked by the extension. The number which appear in the extension icon correspond to the total number of distinct requests attempted (successfully or not depending on whether these were allowed or blocked) by the web page.
Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix. Simply click on the appropriate entry in the matrix in order to white-, black- or graylist a component. Graylisting means the blocked or allowed status will be inherited from another cell with higher precedence in the matrix.
@ -74,8 +88,6 @@ This extension is also useful if you wish to speed up your browsing, by globally
===== =====
BUGS, ISSUES: https://github.com/uBlockOrigin/uMatrix-issues/issues
SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
CHANGE LOG: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

@ -1,12 +1,12 @@
µMatrix: 一个靠点击工作的矩阵防火墙,拥有许多隐私保护工具。 面向高级用户。 µMatrix: A point-and-click matrix-based firewall, with many privacy-enhancing tools. For advanced users.
µMatrix 让你控制你的浏览器可以连接哪里,可以请求哪些数据,以及控制允许如何执行。 没有人替你做决定:一切由你选择。 你将可以完全控制你的隐私权。 µMatrix put you in full control of where your browser is allowed to connect, what type of data it is allowed to download, and what it is allowed to execute. Nobody else decides for you: You choose. You are in full control of your privacy.
Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic. Out of the box, µMatrix works in relax block-all/allow-exceptionally mode, meaning web sites which require 3rd-party scripts are likely to be "broken". With two clicks, µMatrix can be set to work in allow-all/block-exceptionally mode, which generally will not break web sites. See https://github.com/gorhill/httpswitchboard/wiki/How-to-use-HTTP-Switchboard:-Two-opposing-views for more details on this topic.
Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium. Regarding the myth that "Chromium-based browsers can't reliably block javascript", see: https://github.com/gorhill/httpswitchboard/wiki/Blocking-javascript-execution-reliably-in-Chromium-based-browsers. Summary: Yes, javascript can be blocked reliably in Chromium.
* 看到所有的远程连接,无论已失败还是已尝试,这都取决于它们被阻止还是被允许(都取决于您的选择)。 * See ALL the remote connections, failed or attempted, depending on whether they were blocked or allowed (you decide).
* A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser). * A single-click to whitelist/blacklist one or multiple classes of requests according to the destination and type of data (a blocked request will NEVER leave your browser).
@ -16,19 +16,19 @@ Regarding the myth that "Chromium-based browsers can't reliably block javascript
* Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix: * Ease of use: µMatrix lets you easily whitelist/blacklist net requests which originate from within a web page according to a point-and-click matrix:
- 域名 (左列) - domain names (left column)
* 从非常具体 * from very specific
* 到非常普通 * to very generic
-请求种类(顶栏) - type of requests (top row)
* Cookie * cookies
* CSS相关资源(样式表和字体) * CSS-related resources (stylesheets and web fonts)
* 图片 * images
* 插件 * plugins
* 脚本 * scripts
* XHR(由脚本发起的请求) * XHR (requests made by scripts)
* 框架 * frames
* 其他 * others
You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click. You can blacklist/whitelist a single cell, an entire row, a group of rows, an entire column, or the whole matrix with just one click.
@ -50,17 +50,17 @@ Either way, you still benefit from the preset blacklists so that at least you ge
Your choice. Your choice.
相关文档: https://github.com/gorhill/uMatrix/wiki Randomly assembled documentation: https://github.com/gorhill/uMatrix/wiki
===== =====
反馈: FEEDBACK:
For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section. For any question/issue you might have, use the "Send Feedback" button on the right, in order for me to be able to answer readily. I can't answer directly to reviews, but I will be more than happy to answer you directly in the feedback section.
===== =====
缺陷、问题、建议: BUGS, ISSUES, SUGEGSTIONS:
https://github.com/gorhill/uMatrix/issues https://github.com/gorhill/uMatrix/issues
@ -82,12 +82,12 @@ Green square = effectively whitelisted, i.e. requests are allowed to reach their
* Dark green square: the domain name and/or type of request is specifically whitelisted. * Dark green square: the domain name and/or type of request is specifically whitelisted.
* Faded green square: the whitelist status is inherited because the entry is graylisted. * Faded green square: the whitelist status is inherited because the entry is graylisted.
The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. 我的个人倾向当然与此相反,拦截一切和放行例外。 The top-left cell in the matrix, the "all" cell, represents the default global setting, which allows you to choose whether allowing or blocking everything is the default behavior. Some prefer to allow everything while blocking exceptionally. My personal preference is of course the reverse, blocking everything and allowing exceptionally.
如果需要,这个扩展也可用来加快您的上网速度,例如全局性阻止所有图片请求。 This extension is also useful if you wish to speed up your browsing, by globally blocking all requests for images as an example.
===== =====
源代码: https://github.com/gorhill/uMatrix (GPLv3) SOURCE CODE: https://github.com/gorhill/uMatrix (GPLv3)
变更日志: https://github.com/gorhill/uMatrix/releases CHANGE LOG: https://github.com/gorhill/uMatrix/releases

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Before

Width:  |  Height:  |  Size: 656 B

After

Width:  |  Height:  |  Size: 656 B

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

@ -0,0 +1,88 @@
{
"manifest_version": 2,
"name": "__MSG_extName__",
"short_name": "µMatrix",
"version": "0.8.0.0",
"description": "__MSG_extShortDesc__",
"icons": {
"16": "icon_16.png",
"128": "icon_128.png"
},
"browser_action": {
"default_icon": {
"19": "img/browsericons/icon19.png"
},
"default_title": "__MSG_extName__",
"default_popup": "popup.html"
},
"author": "Raymond Hill",
"background": {
"page": "background.html"
},
"commands": {
"revert-all": {
"description": "__MSG_commandRevertAll__",
"suggested_key": {
"default": "Alt+Q",
"mac": "Command+Shift+Q"
}
},
"whitelist-all": {
"description": "__MSG_commandWhitelistAll__",
"suggested_key": {
"default": "Alt+A",
"mac": "Command+Shift+A"
}
},
"whitelist-page-domain": {
"description": "__MSG_commandWhitelistPageDomain__",
"suggested_key": {
"default": "Alt+W",
"mac": "Command+Shift+W"
}
},
"open-dashboard": {
"description": "__MSG_commandOpenDashboard__",
"suggested_key": {
"default": "Alt+S",
"mac": "Command+Shift+S"
}
}
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["js/contentscript-start.js"],
"run_at": "document_start",
"all_frames": true
},
{
"matches": ["http://*/*", "https://*/*"],
"js": ["js/contentscript-end.js"],
"run_at": "document_end",
"all_frames": true
}
],
"default_locale": "en",
"homepage_url": "https://github.com/gorhill/uMatrix/wiki",
"minimum_chrome_version": "22.0",
"options_page": "dashboard.html",
"permissions": [
"browsingData",
"contentSettings",
"cookies",
"downloads",
"storage",
"tabs",
"unlimitedStorage",
"webNavigation",
"webRequest",
"webRequestBlocking",
"http://*/*",
"https://*/*"
],
"web_accessible_resources": [
"css/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf",
"css/noop.css"
]
}

@ -1,55 +0,0 @@
{
"manifest_version": 2,
"name": "nuTensor",
"short_name": "nuTensor",
"version": "1.3.3.8",
"description": "__MSG_extShortDesc__",
"icons": {
"16": "img/icon_16.png",
"128": "img/icon_128.png"
},
"browser_action": {
"default_icon": {
"19": "img/browsericons/icon19-19.png"
},
"default_title": "nuTensor",
"default_popup": "popup.html"
},
"author": "Raymond Hill",
"background": {
"page": "background.html"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["/js/vapi.js", "/js/vapi-client.js", "/js/contentscript-start.js"],
"run_at": "document_start",
"all_frames": true
},
{
"matches": ["http://*/*", "https://*/*"],
"js": ["/js/contentscript.js"],
"run_at": "document_end",
"all_frames": true
}
],
"default_locale": "en",
"homepage_url": "https://github.com/geekprojects/nuTensor",
"minimum_chrome_version": "45.0",
"options_ui": {
"page": "dashboard.html",
"open_in_tab": true
},
"permissions": [
"browsingData",
"cookies",
"privacy",
"storage",
"tabs",
"unlimitedStorage",
"webNavigation",
"webRequest",
"webRequestBlocking",
"<all_urls>"
]
}

File diff suppressed because it is too large Load Diff

@ -1,308 +0,0 @@
/*******************************************************************************
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,268 +0,0 @@
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
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
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';
/******************************************************************************/
// https://github.com/chrisaljoudi/uBlock/issues/456
// Skip if already injected.
// >>>>>>>> start of HUGE-IF-BLOCK
if (
typeof vAPI === 'object' &&
vAPI.randomToken instanceof Function === false
) {
/******************************************************************************/
/******************************************************************************/
vAPI.randomToken = function() {
const now = Date.now();
return String.fromCharCode(now % 26 + 97) +
Math.floor((1 + Math.random()) * now).toString(36);
};
vAPI.sessionId = vAPI.randomToken();
vAPI.setTimeout = vAPI.setTimeout || self.setTimeout.bind(self);
/******************************************************************************/
vAPI.shutdown = {
jobs: [],
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);
}
}
};
/******************************************************************************/
vAPI.messaging = {
port: null,
portTimer: null,
portTimerDelay: 10000,
extended: undefined,
extensions: [],
msgIdGenerator: 1,
pending: new Map(),
shuttingDown: false,
shutdown: function() {
this.shuttingDown = true;
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() {
this.port = null;
if ( window !== window.top ) {
vAPI.shutdown.exec();
}
},
disconnectListenerBound: null,
messageListener: function(details) {
if ( details instanceof Object === false ) { return; }
// Response to specific message previously sent
if ( details.msgId !== undefined ) {
const resolver = this.pending.get(details.msgId);
if ( resolver !== undefined ) {
this.pending.delete(details.msgId);
resolver(details.msg);
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;
},
portPoller: function() {
this.portTimer = null;
if ( this.port !== null && this.canDestroyPort() ) {
return this.destroyPort();
}
this.portTimer = vAPI.setTimeout(this.portPollerBound, this.portTimerDelay);
this.portTimerDelay = Math.min(this.portTimerDelay * 2, 60 * 60 * 1000);
},
portPollerBound: null,
destroyPort: function() {
if ( this.portTimer !== null ) {
clearTimeout(this.portTimer);
this.portTimer = null;
}
const port = this.port;
if ( port !== null ) {
port.disconnect();
port.onMessage.removeListener(this.messageListenerBound);
port.onDisconnect.removeListener(this.disconnectListenerBound);
this.port = null;
}
this.mustDestroyPort();
// service pending callbacks
if ( this.pending.size !== 0 ) {
const pending = this.pending;
this.pending = new Map();
for ( const resolver of pending.values() ) {
resolver();
}
}
},
createPort: function() {
if ( this.shuttingDown ) { return null; }
if ( this.messageListenerBound === null ) {
this.messageListenerBound = this.messageListener.bind(this);
this.disconnectListenerBound = this.disconnectListener.bind(this);
this.portPollerBound = this.portPoller.bind(this);
}
try {
this.port = browser.runtime.connect({name: vAPI.sessionId}) || null;
} catch (ex) {
this.port = null;
}
// Not having a valid port at this point means the main process is
// not available: no point keeping the content scripts alive.
if ( this.port === null ) {
vAPI.shutdown.exec();
return null;
}
this.port.onMessage.addListener(this.messageListenerBound);
this.port.onDisconnect.addListener(this.disconnectListenerBound);
this.portTimerDelay = 10000;
if ( this.portTimer === null ) {
this.portTimer = vAPI.setTimeout(
this.portPollerBound,
this.portTimerDelay
);
}
return this.port;
},
getPort: function() {
return this.port !== null ? this.port : this.createPort();
},
send: function(channel, msg) {
// Too large a gap between the last request and the last response means
// the main process is no longer reachable: memory leaks and bad
// performance become a risk -- especially for long-lived, dynamic
// pages. Guard against this.
if ( this.pending.size > 50 ) {
vAPI.shutdown.exec();
}
const port = this.getPort();
if ( port === null ) {
return Promise.resolve();
}
const msgId = this.msgIdGenerator++;
const promise = new Promise(resolve => {
this.pending.set(msgId, resolve);
});
port.postMessage({ channel, msgId, msg });
return promise;
},
// Dynamically extend capabilities.
extend: function() {
if ( this.extended === undefined ) {
this.extended = vAPI.messaging.send('vapi', {
what: 'extendClient'
}).then(( ) => {
return self.vAPI instanceof Object &&
this.extensions.length !== 0;
}).catch(( ) => {
});
}
return this.extended;
},
};
vAPI.shutdown.add(( ) => {
vAPI.messaging.shutdown();
window.vAPI = undefined;
});
/******************************************************************************/
/******************************************************************************/
}
// <<<<<<<< end of HUGE-IF-BLOCK
/*******************************************************************************
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,279 +0,0 @@
/*******************************************************************************
uMatrix - a browser extension to black/white list requests.
Copyright (C) 2014-present The uMatrix/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/uMatrix
*/
// For background page or non-background pages
'use strict';
/******************************************************************************/
/******************************************************************************/
vAPI.T0 = Date.now();
/******************************************************************************/
vAPI.setTimeout = vAPI.setTimeout || self.setTimeout.bind(self);
/******************************************************************************/
vAPI.webextFlavor = {
major: 0,
soup: new Set()
};
(( ) => {
const ua = navigator.userAgent;
const flavor = vAPI.webextFlavor;
const soup = flavor.soup;
const dispatch = function() {
window.dispatchEvent(new CustomEvent('webextFlavor'));
};
// This is always true.
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) ) {
soup.add('mobile');
}
// Asynchronous
if (
browser instanceof Object &&
typeof browser.runtime.getBrowserInfo === 'function'
) {
browser.runtime.getBrowserInfo().then(info => {
flavor.major = parseInt(info.version, 10) || 60;
soup.add(info.vendor.toLowerCase())
.add(info.name.toLowerCase());
if ( soup.has('firefox') && flavor.major < 57 ) {
soup.delete('html_filtering');
}
dispatch();
});
if ( browser.runtime.getURL('').startsWith('moz-extension://') ) {
soup.add('mozilla')
.add('firefox')
.add('user_stylesheet')
.add('html_filtering');
flavor.major = 60;
}
return;
}
// Synchronous -- order of tests is important
let match;
if ( (match = /\bEdge\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('microsoft').add('edge');
} else if ( (match = /\bOPR\/(\d+)/.exec(ua)) !== null ) {
const reEx = /\bChrom(?:e|ium)\/([\d.]+)/;
if ( reEx.test(ua) ) { match = reEx.exec(ua); }
flavor.major = parseInt(match[1], 10) || 0;
soup.add('opera').add('chromium');
} else if ( (match = /\bChromium\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('chromium');
} else if ( (match = /\bChrome\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('google').add('chromium');
} else if ( (match = /\bSafari\/(\d+)/.exec(ua)) !== null ) {
flavor.major = parseInt(match[1], 10) || 0;
soup.add('apple').add('safari');
}
// https://github.com/gorhill/uBlock/issues/3588
if ( soup.has('chromium') && flavor.major >= 66 ) {
soup.add('user_stylesheet');
}
// Don't starve potential listeners
vAPI.setTimeout(dispatch, 97);
})();
/******************************************************************************/
{
const punycode = self.punycode;
const reCommonHostnameFromURL = /^https?:\/\/([0-9a-z_][0-9a-z._-]*[0-9a-z])\//;
const reAuthorityFromURI = /^(?:[^:\/?#]+:)?(\/\/[^\/?#]+)/;
const reHostFromNakedAuthority = /^[0-9a-z._-]+[0-9a-z]$/i;
const reHostFromAuthority = /^(?:[^@]*@)?([^:]+)(?::\d*)?$/;
const reIPv6FromAuthority = /^(?:[^@]*@)?(\[[0-9a-f:]+\])(?::\d*)?$/i;
const reMustNormalizeHostname = /[^0-9a-z._-]/;
vAPI.hostnameFromURI = function(uri) {
let matches = reCommonHostnameFromURL.exec(uri);
if ( matches !== null ) { return matches[1]; }
matches = reAuthorityFromURI.exec(uri);
if ( matches === null ) { return ''; }
const authority = matches[1].slice(2);
if ( reHostFromNakedAuthority.test(authority) ) {
return authority.toLowerCase();
}
matches = reHostFromAuthority.exec(authority);
if ( matches === null ) {
matches = reIPv6FromAuthority.exec(authority);
if ( matches === null ) { return ''; }
}
let hostname = matches[1];
while ( hostname.endsWith('.') ) {
hostname = hostname.slice(0, -1);
}
if ( reMustNormalizeHostname.test(hostname) ) {
hostname = punycode.toASCII(hostname.toLowerCase());
}
return hostname;
};
const reHostnameFromNetworkURL =
/^(?:http|ws|ftp)s?:\/\/([0-9a-z_][0-9a-z._-]*[0-9a-z])\//;
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) {
if ( !details.url ) { return; }
const a = document.createElement('a');
a.href = details.url;
a.setAttribute('download', details.filename || '');
a.setAttribute('type', 'text/plain');
a.dispatchEvent(new MouseEvent('click'));
};
/******************************************************************************/
vAPI.getURL = browser.runtime.getURL;
/******************************************************************************/
vAPI.i18n = browser.i18n.getMessage;
// 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() {
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();
};
/******************************************************************************/
// A localStorage-like object which should be accessible from the
// background page or auxiliary pages.
// This storage is optional, but it is nice to have, for a more polished user
// experience.
// https://github.com/gorhill/uBlock/issues/2824
// Use a dummy localStorage if for some reasons it's not available.
// https://github.com/gorhill/uMatrix/issues/840
// Always use a wrapper to seamlessly handle exceptions
vAPI.localStorage = {
clear: function() {
try {
window.localStorage.clear();
} catch(ex) {
}
},
getItem: function(key) {
try {
return window.localStorage.getItem(key);
} catch(ex) {
}
return null;
},
removeItem: function(key) {
try {
window.localStorage.removeItem(key);
} catch(ex) {
}
},
setItem: function(key, value) {
try {
window.localStorage.setItem(key, value);
} catch(ex) {
}
}
};
/*******************************************************************************
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,178 +0,0 @@
/*******************************************************************************
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/uMatrix
*/
// For background page
'use strict';
/******************************************************************************/
(( ) => {
// https://github.com/uBlockOrigin/uBlock-issues/issues/407
if ( vAPI.webextFlavor.soup.has('chromium') === false ) { return; }
const extToTypeMap = new Map([
['eot','font'],['otf','font'],['svg','font'],['ttf','font'],['woff','font'],['woff2','font'],
['mp3','media'],['mp4','media'],['webm','media'],
['gif','image'],['ico','image'],['jpeg','image'],['jpg','image'],['png','image'],['webp','image']
]);
const headerValue = (headers, name) => {
let i = headers.length;
while ( i-- ) {
if ( headers[i].name.toLowerCase() === name ) {
return headers[i].value.trim();
}
}
return '';
};
const parsedURL = new URL('https://www.example.org/');
// Extend base class to normalize as per platform.
vAPI.Net = class extends vAPI.Net {
constructor() {
super();
this.suspendedTabIds = new Set();
}
normalizeDetails(details) {
// Chromium 63+ supports the `initiator` property, which contains
// the URL of the origin from which the network request was made.
if (
typeof details.initiator === 'string' &&
details.initiator !== 'null'
) {
details.documentUrl = details.initiator;
}
let type = details.type;
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.
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 ( details.responseHeaders ) {
type = headerValue(details.responseHeaders, 'content-type');
if ( type.startsWith('font/') ) {
details.type = 'font';
return;
}
if ( type.startsWith('image/') ) {
details.type = 'image';
return;
}
if ( type.startsWith('audio/') || type.startsWith('video/') ) {
details.type = 'media';
return;
}
}
}
// https://www.reddit.com/r/uBlockOrigin/comments/9vcrk3/
// 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.
denormalizeTypes(types) {
if ( types.length === 0 ) {
return Array.from(this.validTypes);
}
const out = new Set();
for ( const type of types ) {
if ( this.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);
}
suspendOneRequest(details) {
this.suspendedTabIds.add(details.tabId);
return { cancel: true };
}
unsuspendAllRequests() {
for ( const tabId of this.suspendedTabIds ) {
vAPI.tabs.reload(tabId);
}
this.suspendedTabIds.clear();
}
};
})();
/******************************************************************************/
// https://github.com/uBlockOrigin/uBlock-issues/issues/548
// Use `X-DNS-Prefetch-Control` to workaround Chromium's disregard of the
// setting "Predict network actions to improve page load performance".
vAPI.prefetching = (( ) => {
// https://github.com/uBlockOrigin/uBlock-issues/issues/407
if ( vAPI.webextFlavor.soup.has('chromium') === false ) { return; }
let listening = false;
const onHeadersReceived = function(details) {
details.responseHeaders.push({
name: 'X-DNS-Prefetch-Control',
value: 'off'
});
return { responseHeaders: details.responseHeaders };
};
return state => {
const wr = chrome.webRequest;
if ( state && listening ) {
wr.onHeadersReceived.removeListener(onHeadersReceived);
listening = false;
} else if ( !state && !listening ) {
wr.onHeadersReceived.addListener(
onHeadersReceived,
{
urls: [ 'http://*/*', 'https://*/*' ],
types: [ 'main_frame', 'sub_frame' ]
},
[ 'blocking', 'responseHeaders' ]
);
listening = true;
}
};
})();
/******************************************************************************/

@ -1,86 +0,0 @@
/*******************************************************************************
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;

@ -1,176 +0,0 @@
/*******************************************************************************
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,69 +0,0 @@
{
"browser_specific_settings": {
"gecko": {
"id": "nuTensor@geekprojects.com",
"strict_min_version": "60.0"
}
},
"author": "Raymond Hill",
"background": {
"page": "background.html"
},
"browser_action": {
"browser_style": false,
"default_icon": {
"19": "img/browsericons/icon19-off.png"
},
"default_title": "nuTensor",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["/js/vapi.js", "/js/vapi-client.js", "/js/contentscript-start.js"],
"run_at": "document_start",
"all_frames": true
},
{
"matches": ["http://*/*", "https://*/*"],
"js": ["/js/contentscript.js"],
"run_at": "document_end",
"all_frames": true
}
],
"default_locale": "en",
"description": "__MSG_extShortDesc__",
"icons": {
"16": "img/icon_16.png",
"128": "img/icon_128.png"
},
"manifest_version": 2,
"name": "nuTensor",
"options_ui": {
"page":"dashboard.html",
"open_in_tab": true
},
"permissions": [
"browsingData",
"cookies",
"dns",
"privacy",
"storage",
"tabs",
"webNavigation",
"webRequest",
"webRequestBlocking",
"<all_urls>"
],
"short_name": "nuTensor",
"sidebar_action": {
"default_title": "__MSG_loggerPageName__",
"default_panel": "logger-ui.html",
"default_icon": {
"16": "img/icon_16.png",
"128": "img/icon_128.png"
},
"open_at_install": false
},
"version": "0.9.9"
}

@ -1,263 +0,0 @@
/*******************************************************************************
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/uMatrix
*/
// For background page
'use strict';
/******************************************************************************/
(( ) => {
// https://github.com/uBlockOrigin/uBlock-issues/issues/407
if ( vAPI.webextFlavor.soup.has('firefox') === false ) { return; }
// https://github.com/gorhill/uBlock/issues/2950
// Firefox 56 does not normalize URLs to ASCII, uBO must do this itself.
// https://bugzilla.mozilla.org/show_bug.cgi?id=945240
const evalMustPunycode = ( ) => {
return vAPI.webextFlavor.soup.has('firefox') &&
vAPI.webextFlavor.major < 57;
};
let mustPunycode = evalMustPunycode();
// The real actual webextFlavor value may not be set in stone, so listen
// for possible future changes.
window.addEventListener('webextFlavor', ( ) => {
mustPunycode = evalMustPunycode();
}, { once: true });
const punycode = self.punycode;
const reAsciiHostname = /^https?:\/\/[0-9a-z_.:@-]+[/?#]/;
const parsedURL = new URL('about:blank');
// Related issues:
// - https://github.com/gorhill/uBlock/issues/1327
// - https://github.com/uBlockOrigin/uBlock-issues/issues/128
// - https://bugzilla.mozilla.org/show_bug.cgi?id=1503721
// Extend base class to normalize as per platform.
vAPI.Net = class extends vAPI.Net {
constructor() {
super();
this.pendingRequests = [];
this.cnames = new Map([ [ '', '' ] ]);
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) {
super.setOptions(options);
this.cnameIgnoreList = this.regexFromStrList(options.cnameIgnoreList);
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
// Re-categorize an embedded object as a `sub_frame` if its
// content type is that of a HTML document.
if ( type === 'object' && Array.isArray(details.responseHeaders) ) {
for ( const header of details.responseHeaders ) {
if ( header.name.toLowerCase() === 'content-type' ) {
if ( header.value.startsWith('text/html') ) {
details.type = 'sub_frame';
}
break;
}
}
}
}
denormalizeTypes(types) {
if ( types.length === 0 ) {
return Array.from(this.validTypes);
}
const out = new Set();
for ( const type of 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);
}
recordCanonicalName(hn, record) {
let cname =
typeof record.canonicalName === 'string' &&
record.canonicalName !== hn
? record.canonicalName
: '';
if (
cname !== '' &&
this.cnameIgnore1stParty &&
vAPI.domainFromHostname(cname) === vAPI.domainFromHostname(hn)
) {
cname = '';
}
if (
cname !== '' &&
this.cnameIgnoreList !== null &&
this.cnameIgnoreList.test(cname)
) {
cname = '';
}
this.cnames.set(hn, cname);
if ( this.cnameTimer === undefined ) {
this.cnameTimer = self.setTimeout(
( ) => {
this.cnameTimer = undefined;
this.cnames.clear(); this.cnames.set('', '');
},
this.cnameMaxTTL * 60000
);
}
return cname;
}
regexFromStrList(list) {
if (
typeof list !== 'string' ||
list.length === 0 ||
list === 'unset' ||
browser.dns instanceof Object === false
) {
return null;
}
if ( list === '*' ) {
return /^./;
}
return new RegExp(
'(?:^|\.)(?:' +
list.trim()
.split(/\s+/)
.map(a => a.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
.join('|') +
')$'
);
}
onBeforeSuspendableRequest(details) {
const r = super.onBeforeSuspendableRequest(details);
if ( this.canRevealCNAME === false ) { return r; }
if ( r !== undefined ) {
if ( r.cancel === false ) { return; }
if (
r.cancel === true ||
r.redirectUrl !== undefined ||
this.cnameIgnoreExceptions
) {
return r;
}
}
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;
}
};
})();
/******************************************************************************/

@ -1,24 +0,0 @@
/*******************************************************************************
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,10 +0,0 @@
{
"sidebar_action": {
"default_title": "__MSG_loggerPageName__",
"default_panel": "logger-ui.html",
"default_icon": {
"16": "img/icon_16.png",
"128": "img/icon_128.png"
}
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "Point & click to forbid/allow any class of requests made by your browser. Use it to block scripts, iframes, ads, facebook, etc.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — Dashboard",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logger",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Settings",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Privacy",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Statistics",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "My rules",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "More",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "About",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "all",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "cookie",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "image",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "media",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "plugin",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "frame",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "other",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "No net traffic seen for this tab so far.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Disable/enable matrix filtering for this scope",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Save all temporary changes for this scope",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Revert temporary changes for this scope",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Reload the page. \nPress Shift to bypass the browser cache.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "1st-party",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} blacklisted hostname(s)",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Forbid mixed content",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Forbid web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Spoof <code>Referer</code> header",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Go to logger",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Go to dashboard",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "No web page found",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Import rules",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Save rules",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; Statistics",
"description": ""
},
"statsPageGenericStats": {
"message": "Generic statistics",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP cookie</a> headers foiled: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referer</a> headers foiled: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hyperlink auditing</a> attempts foiled: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Local cookies removed: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Local storages</a> emptied: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Browser caches cleared: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Detailed statistics",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "All",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Behind the scene",
"description": ""
},
"statsPageOverview": {
"message": "Overview",
"description": ""
},
"statsPageRequests": {
"message": "Requests",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Allowed",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Blocked",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "All",
"description": ""
},
"statsPagePages": {
"message": "Pages",
"description": ""
},
"statsPageCookies": {
"message": "Cookies",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Images",
"description": ""
},
"statsPagePlugins": {
"message": "Plugins",
"description": ""
},
"statsPageScripts": {
"message": "Scripts",
"description": ""
},
"statsPageXHRs": {
"message": "XHRs",
"description": ""
},
"statsPageFrames": {
"message": "Frames",
"description": ""
},
"statsPageOthers": {
"message": "Others",
"description": ""
},
"statsPageDetailed": {
"message": "Logger",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Remember the last",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP requests <b>per page</b>",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Refresh",
"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": {
"message": "nuTensor &ndash; Settings",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Matrix",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Text size:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Show the number of blocked resources on the icon",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Color-blind friendly",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Convenience",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Domain",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Site",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Hide placeholder of blocked elements",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Enable cloud storage support",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Disable tooltips",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Privacy",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Delete blocked cookies",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Delete non-blocked session cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minutes after the last time they have been used",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Clear browser cache every",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "minutes",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Strict HTTPS: forbid mixed content",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Permanent rules",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Temporary rules",
"description": ""
},
"userRulesRevert": {
"message": "Revert",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Commit",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Edit",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Save",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Discard",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Import from file...",
"description": ""
},
"userRulesExport": {
"message": "Export to file...",
"description": ""
},
"userRulesFormatHint": {
"message": "See this page for rule syntax.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts files",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "All hostnames in a hosts file are loaded as blacklisted hostnames in the global scope.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} used out of {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Last update: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Apply changes",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Update now",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Purge all caches",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Import external assets here: \nOne URL per line; invalid URLs will be silently ignored.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Parse",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "purge cache",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "new version available",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "outdated",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Import...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Storage used: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": ""
},
"aboutCode": {
"message": "Source code (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Issue tracker",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Contributors",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Code:",
"description": ""
},
"aboutIssueContributors": {
"message": "Issues:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Translations:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Your data",
"description": ""
},
"aboutBackupButton": {
"message": "Back up to file...",
"description": ""
},
"aboutBackupFilename": {
"message": "my-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Restore from file...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "The data could not be read or is invalid",
"description": ""
},
"aboutOr": {
"message": "... or ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Reset to default settings",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor has prevented the following page from loading:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Because of the following rule",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Go back",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Close",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Revert all temporary changes",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Temporarily whitelist page domain",
"description": ""
},
"commandWhitelistAll": {
"message": "Temporarily whitelist all",
"description": ""
},
"commandOpenDashboard": {
"message": "Open dashboard",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "a minute ago",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "{{value}} minutes ago",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "an hour ago",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "{{value}} hours ago",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "a day ago",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "{{value}} days ago",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Dashboard",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Logger",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Export to cloud storage",
"description": "tooltip"
},
"cloudPull": {
"message": "Import from cloud storage",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "This device name:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Submit",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Revert",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Network error: Unable to connect to {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Apply changes",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "قم بالاشارة ثم انقر لكي تقوم بسماح او منع اي اتصال يجري عن طريق المتصفح. يمكنك منع السكربتات، أطر، اعلانات، موقع مثل الفيسبوك، الخ.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — لوحة التحكم",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — المسجل",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "الإعدادات",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "خصوصية",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "الإحصائيات",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "قواعدي",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "مصادر",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "المزيد",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "حول البرنامج",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "الكل",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "كوكي",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "ستايل",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "صورة",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "ميديا",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "إضافة",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "سكربت",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "إطار",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "أخرى",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "لم يحدث اي اتصال بهذا التبويب حتى الآن.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "تعطيل / تمكين ميزة التصفيه لهذا النطاق.",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "حفظ جميع التغييرات المؤقتة لهذا النطاق.",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "الرجوع عن التغييرات المؤقتة لهذا النطاق.",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "إعادة تحميل الصفحة.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "الجزء الاول",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "القائمة السوداء {{count}}",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "الاتصال الآمن الصارم",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "منع web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "الإحالات بالتحايل",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "محاكات وسمات <code><noscript></code>",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "إعادة كافة التغييرات المؤقتة",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "الذهاب إلى السجل",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "انتقل إلى لوحة التحكم",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "لم يتم العثور على أي صفحة ويب",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Import rules",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Save rules",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; إحصائيات",
"description": ""
},
"statsPageGenericStats": {
"message": "إحصاءات عامة",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP ملف تعريف الارتباط</a> أحبطت foiled: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP تشير</a> headers أحبطت: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing'> مراجعة الارتباط التشعبي</a> أحبطت محاولات: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "ملفات تعريف الارتباط المحلية إزالة: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'> المخازن المحلية</a> إفراغ: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "مسح تخزين المستعرض: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "إحصائيات مفصلة",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "الكل",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "خلف الكواليس",
"description": ""
},
"statsPageOverview": {
"message": "نظرة عامة",
"description": ""
},
"statsPageRequests": {
"message": "الطلبات",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "السماح",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "حظر",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "الكل",
"description": ""
},
"statsPagePages": {
"message": "الصفحات",
"description": ""
},
"statsPageCookies": {
"message": "ملفات تعريف الارتباط",
"description": ""
},
"statsPageCSS": {
"message": "ستايل",
"description": ""
},
"statsPageImages": {
"message": "الصُوَرْ",
"description": ""
},
"statsPagePlugins": {
"message": "الإضافات",
"description": ""
},
"statsPageScripts": {
"message": "البرامج النصية",
"description": ""
},
"statsPageXHRs": {
"message": "XHRs",
"description": ""
},
"statsPageFrames": {
"message": "إطارات",
"description": ""
},
"statsPageOthers": {
"message": "الآخرين",
"description": ""
},
"statsPageDetailed": {
"message": "مسجل",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "تذكر الماضي",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP طلبات <b>لكل صفحة</b>.",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "تحديث الصفحة",
"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": {
"message": "nuTensor &ndash; إعدادات",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "مظهر",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "حجم الخط:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "عرض عدد من طلبات متميزة على أيقونة",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "عمي الألوان",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "ملاءمة",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "المستوى الافتراضي للمنظار:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "عام",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "النطاق",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "موقع",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "انهيار نائبا من عناصر المحظورة",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "محاكات وسمات <code><noscript></code> عند حظر سكريبتات الطرف الأول",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "تمكين دعم سحابة التخزين",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "الغي التمليحات",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; الخصوصية",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "حذف ملفات تعريف الارتباط المحظورة.",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "حذف ملفات تعريف الارتباط جلسة ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " دقيقة بعد آخر مرة استخدمت فيها.",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "مخبأ المتصفح واضح كل",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "دقائق.",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests.",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Strict HTTPS: لا سمح المحتوى المختلط.",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing'>hyperlink auditing</a> attempts.",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "قواعد دائمة",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "القواعد المؤقتة",
"description": ""
},
"userRulesRevert": {
"message": "إرجاع",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "يلتزم",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "تحرير",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "حفظ",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "تخلص",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "إستيراد من ملف...",
"description": ""
},
"userRulesExport": {
"message": "تصدير إلى ملف...",
"description": ""
},
"userRulesFormatHint": {
"message": "رؤية هذه الصفحة لتركيب القاعدة.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "ملفات الـ hosts",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "يتم تحميل جميع أسماء المضيفين في ملف المضيفين كما المضيفين القائمة السوداء في نطاق عالمي.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} أسماء المضيفين منعت متميزة عن:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} تستخدم من {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "اخر تحديث: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "تطبيق التغييرات",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "تحديث الآن",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "تطهير جميع مخابئ",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "One URL per line. Lines prefixed with &lsquo;#&rsquo; will be ignored. Invalid URLs will be silently ignored.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "تحليل",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "مخبأ تطهير",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "يوجد إصدار جديد",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "عفا عليها الزمن",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "استيراد...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning": {
"message": "تحذير! غير إعدادات الضبط الخام على مسؤوليتك الخاصة.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>تغيير log</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "التخزين المستخدمة: {{storageUsed}} بايت",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>توثيق</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/gorhill/httpswitchboard/wiki/Permissions'>ضوابط</a>",
"description": ""
},
"aboutCode": {
"message": "شفرة المصدر (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "الخطا وقضايا",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "المساهمون",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "رمز:",
"description": ""
},
"aboutIssueContributors": {
"message": "قضايا:",
"description": ""
},
"aboutTranslationContributors": {
"message": "الترجمات:",
"description": ""
},
"aboutUserDataHeader": {
"message": "البيانات الخاصة بك",
"description": ""
},
"aboutBackupButton": {
"message": "النسخ الاحتياطي لملف...",
"description": ""
},
"aboutBackupFilename": {
"message": "my-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "استعادة من ملف...",
"description": ""
},
"aboutRestoreConfirm": {
"message": "سيتم الكتابة فوق كل ما تبذلونه من إعدادات استخدام البيانات احتياطيا على {{time}}، \n\nوسوف nuTensor إعادة تشغيل. الكتابة عن الإعدادات الموجودة باستخدام البيانات احتياطيا؟?",
"description": "Message asking user to confirm restore"
},
"aboutRestoreError": {
"message": "البيانات لا يمكن قراءة أو غير صالح",
"description": ""
},
"aboutOr": {
"message": "... او ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "إعادة تعيين إلى الإعدادات الافتراضية",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "الحذر! سيؤدي هذا إلى إزالة كافة الإعدادات المخصصة الخاصة بك. هل أنت متأكد أنك تريد المتابعة؟?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "منعت nuTensor على الصفحة التالية من التحميل:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "بسبب القاعدة التالية",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "الرجوع للخلف",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "مغلق",
"description": "English: Close"
},
"commandRevertAll": {
"message": "إعادة كافة التغييرات المؤقتة",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "نطاق الصفحة القائمة البيضاء مؤقتا",
"description": ""
},
"commandWhitelistAll": {
"message": "مؤقتا القائمة البيضاء فقط",
"description": ""
},
"commandOpenDashboard": {
"message": "فتح لوحة القيادة",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "منذ 1 دقيقة",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "{{value}} دقائق مضت",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "قبل ساعه",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "{{value}} منذ ساعات",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "منذ يوم",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "{{value}} أيام مضت",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "لوحة التحكم",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "مسجل",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "التصدير إلى سحابة التخزين",
"description": "tooltip"
},
"cloudPull": {
"message": "الاستيراد من سحابة التخزين",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "هذا اسم الجهاز:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "تأكيد",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "إرجاع",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "خطأ في الشبكة: غير قادر على الاتصال {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "تطبيق التغييرات",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "Point & click to forbid/allow any class of requests made by your browser. Use it to block scripts, iframes, ads, facebook, etc.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — Tабло",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Журнал",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Настройки",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Поверителност",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Статистика",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "Мой правила",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Ресурси",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "Още",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "Относно",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "всичко",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "бискв",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "изобр",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "медия",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "приставка",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "скрипт",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "рамка",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "друго",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "No net traffic seen for this tab so far.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Изберете локален scope, за да видите/създадете правила, които се прилагат само в този обхват(scope)",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Изберете глобалният scope, за да видите/създадете правил, които се прилагат навсякъде",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Деактивирайте/активирайте матричното филтриране за този обхват",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Запазва временните промени в тази област",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Отхвърля временните промени в тази област",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Презареждане на страницата.\nС натискане на Shift прескача буфера на четеца.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "текущ домейн",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "сайтове в черния списък: {{count}}",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Забрана на смесено съдържание",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Забрана на web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Фалшифицирайте <code>Referer</code> хедъра",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Фалшифицирайте <code><noscript></code> таговете",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Отмяна на всички временни промени",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Отваряне на журнала",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Към контролното табло",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "Няма намерена уеб страница",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Правила за импортиране",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Запазва правилата",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; Статистика",
"description": ""
},
"statsPageGenericStats": {
"message": "Обща статистика",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP cookie</a> хедъри контрирани: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP референтни</a> хедъри контрирани: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hyperlink auditing</a> attempts foiled: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Брой премахнати локални бисквитки: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Локални хранилища (Local Storages)</a> изпразнени: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Изчистен е кешът в браузъра: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Подробна статистика",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "Всичко",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Скрити заявки",
"description": ""
},
"statsPageOverview": {
"message": "Общ преглед",
"description": ""
},
"statsPageRequests": {
"message": "Заявки",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Позволено",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Блокирано",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "Всичко",
"description": ""
},
"statsPagePages": {
"message": "Страници",
"description": ""
},
"statsPageCookies": {
"message": "Бисквитки",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Изображения",
"description": ""
},
"statsPagePlugins": {
"message": "Приставки",
"description": ""
},
"statsPageScripts": {
"message": "Скриптове",
"description": ""
},
"statsPageXHRs": {
"message": "XHR-и",
"description": ""
},
"statsPageFrames": {
"message": "Рамки",
"description": ""
},
"statsPageOthers": {
"message": "Други",
"description": ""
},
"statsPageDetailed": {
"message": "Журнал",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Запомняне на последното",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP заявки <b>за страница</b>.",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Опресняване",
"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": {
"message": "nuTensor &ndash; Настройки",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Изглед",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Големина на текста:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Покажи броя на блокирани ресурси върху иконката",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Цветова схема за далтонисти",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Удобство",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Ниво на обхват по подразбиране:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Глобално",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Домейн",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Сайт",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Hide placeholder of blocked elements",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Фалшифицирайте <code><noscript></code> тагове, когато скриптовете от първа страна са блокирани",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Активиране на поддръжката за облачно съхранение",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Изключване на подсказките",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Поверителност",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Изтриване на блокираните бисквитки.",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Изтриване на неблокираните бисквитки за сесията ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " минути след последната употреба.",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Изтрийте съдържанието на <a href='https://ru.wikipedia.org/wiki/Web_storage'>локалното хранилище</a> от блокирани имена на хостове",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "Задачи за правене",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Изчиства кеша на браузъра на всеки",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "минути.",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Само HTTPS: забранено е смесено съдържание",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Постоянни правила",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Временни правила",
"description": ""
},
"userRulesRevert": {
"message": "Връщане",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Публикуване",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Редактиране",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Запазване",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Откажи",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Импортиране от файл...",
"description": ""
},
"userRulesExport": {
"message": "Експортиране към файл...",
"description": ""
},
"userRulesFormatHint": {
"message": "Синтаксиса на правилата можете да видите на тази страница.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts файлове",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "Всички сайтове във файла с хостове са заредени като блокирани в глобалната област.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} използвано от {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Последно обновяване: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Прилагане на промените",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Автоматично обновяване на ресурси",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Обновяване",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Изчистване на буферите",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Въведете външни ресурси тук:\nЕдин URL адрес по ред; невалидни URL адреси ще бъдат игнорирани без уведомяване.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Анализиране",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "изчистване на буфери",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "налично е ново издание",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "остаряло",
"description": ""
},
"assetsRecipesSection": {
"message": "Рецепти на набори от правила",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Импортиране...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "Моите хостове",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "Моите рецепти",
"description": ""
},
"rawSettingsWarning": {
"message": "Внимание! Промяната на тези настройки е на ваша отговорност.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Регистър на промените</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Използвано място: {{storageUsed}} байта",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Документация</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/gorhill/httpswitchboard/wiki/Permissions'>Права</a>",
"description": ""
},
"aboutCode": {
"message": "Изходен код (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Система за дефекти",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Сътрудници",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Код:",
"description": ""
},
"aboutIssueContributors": {
"message": "Дефекти:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Преводи:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Вашите данни",
"description": ""
},
"aboutBackupButton": {
"message": "Резервно копие във файл…",
"description": ""
},
"aboutBackupFilename": {
"message": "my-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Възстановяване от файл…",
"description": ""
},
"aboutRestoreConfirm": {
"message": "Всичките Ви настройки ще бъдат презаписани с данните бекъпнати на {{time}} и nuTensor ще се рестартира.\n\nИскате ли да презапишете всички настройки използвайки бекъпнатите данни?",
"description": "Message asking user to confirm restore"
},
"aboutRestoreError": {
"message": "Данните не могат да бъдат разчетени или са недействителни",
"description": ""
},
"aboutOr": {
"message": "… или …",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Нулиране до първоначалните настройки",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "Внимание! Така ще бъдат заличени всички ръчни настройки. Наистина ли искате да продължите?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor попречи на зареждането на следната страница:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Заради следното правило",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "без параметри",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Назад",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Затваряне",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Ревъртни всички временни промени",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Временно позволяване на домейна на страницата",
"description": ""
},
"commandWhitelistAll": {
"message": "Временно позволение на всички",
"description": ""
},
"commandOpenDashboard": {
"message": "Отваряне на таблото",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "преди минута",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "преди {{value}} минути",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "преди час",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "преди {{value}} часа",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "преди ден",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "преди {{value}} дена",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Табло",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Журнал",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Експортирай в облачно хранилище",
"description": "tooltip"
},
"cloudPull": {
"message": "Импортирай от облачно хранилище",
"description": "tooltip"
},
"cloudNoData": {
"message": "…",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "Името на устройството:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Подаване",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Връщане",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Грешка в мрежата: не може да се свърже към {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Прилагане на промените",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "uম্যাট্রিক্স",
"description": ""
},
"extShortDesc": {
"message": "আপনার ব্রাউজার দ্বারা করা যে কোন শ্রেণীর অনুরোধ অনুমতি/নিষেধ করতে পয়েন্ট ও ক্লিক করুন। স্ক্রিপ্ট, আইফ্রেম, বিজ্ঞাপন, ফেসবুক, ইত্যাদি ব্লক এটি ব্যবহার করুন।",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "uম্যাট্রিক্স — ড্যাশবোর্ড",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — লগার",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "সেটিংস",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "গোপনীয়তা",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "পরিসংখ্যান",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "আমার নিয়ম",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "আরও",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "সম্পর্কে",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "সব",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "কুকি",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "চিত্র",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "মিডিয়া",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "প্লাগইন",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "স্ক্রিপ্ট",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "ফ্রেম",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "অন্যান্য",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "এখন পর্যন্ত এই ট্যাবের জন্য কোন নেট ট্রাফিক দেখা যায়নি।",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "এই ব্যাপ্তির জন্য ম্যাট্রিক্স পরিশোধন সক্রিয়/নিষ্ক্রিয় করুন।",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "এই ব্যাপ্তির জন্য সব অস্থায়ী পরিবর্তনগুলি সংরক্ষণ করুন।",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "এই ব্যাপ্তির জন্য অস্থায়ী পরিবর্তনগুলি প্রত্যাবর্তন করুন।",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "পৃষ্ঠাটি পুনঃলোড করুন।",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "১ম-দল",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}}টি কালোতালিকাভুক্ত হোস্টেরনাম",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "স্ক্রিপ্ট HTTPS",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Forbid web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "রেফারার স্পুফিং",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "সব অস্থায়ী পরিবর্তন প্রত্যাবর্তন করুন",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "লগারে যান",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "ড্যাশবোর্ডে যান",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "কোনও ওয়েব পাতা পাওয়া যায়নি",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "নিয়মগুলি আমদানি করুন",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "নিয়মগুলি সংরক্ষণ করুন",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "uম্যাট্রিক্স &ndash; পরিসংখ্যান",
"description": ""
},
"statsPageGenericStats": {
"message": "জেনেরিক পরিসংখ্যান",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://bn.wikipedia.org/wiki/এইচটিটিপি_কুকি'>এইচটিটিপি কুকি</a> হেডার ব্যর্থ: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://bn.wikipedia.org/wiki/এইচটিটিপি_রেফার'>এইচটিটিপি রেফার</a> হেডার ব্যর্থ: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing'>হাইপারলিঙ্ক নিরীক্ষণ</a> প্রচেষ্টা ব্যর্থ: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "স্থানীয় কুকি সরানো হয়েছে: {{count}}টি",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>স্থানীয় সংগ্রহস্থল</a> খালি: {{count}}টি",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "ব্রাউজারের ক্যাশে পরিষ্কার হয়েছে: {{count}}টি",
"description": ""
},
"statsPageDetailedStats": {
"message": "বিস্তারিত পরিসংখ্যান",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "সব",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "পর্দার আড়ালে",
"description": ""
},
"statsPageOverview": {
"message": "সংক্ষিপ্ত বিবরণ",
"description": ""
},
"statsPageRequests": {
"message": "অনুরোধ",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "অনুমোদিত",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "অবরুদ্ধ",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "সব",
"description": ""
},
"statsPagePages": {
"message": "পৃষ্ঠা",
"description": ""
},
"statsPageCookies": {
"message": "কুকি",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "চিত্র",
"description": ""
},
"statsPagePlugins": {
"message": "প্লাগইন",
"description": ""
},
"statsPageScripts": {
"message": "স্ক্রিপ্ট",
"description": ""
},
"statsPageXHRs": {
"message": "XHRs",
"description": ""
},
"statsPageFrames": {
"message": "ফ্রেম",
"description": ""
},
"statsPageOthers": {
"message": "অন্যান্য",
"description": ""
},
"statsPageDetailed": {
"message": "লগার",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "শেষটি মনে রাখুন",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "<b>পাতা প্রতি</b> HTTP অনুরোধ।",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizeHelp": {
"message": "<p>আপনি একটি ওয়েব পাতা দ্বারা তৈরিকৃত সাম্প্রতিকতম কাঁচা HTTP অনুরোধের বিস্তারিত পরিদর্শন করতে পারেন (নিচে দেখুন)।</p><p>এটি উন্নত ব্যবহারকারীদের জন্য মূলত দরকারী যারা একটি ওয়েব পাতা কি কাজ করছে তা তদন্ত করতে চান। কিন্তু এই HTTP অনুরোধে লগিং করার জন্য মেমরি প্রয়োজন, এবং আপনি যদি এই প্রযুক্তিগত তথ্যের প্রতি যত্নশীল না হোন, তাহলে মেমরির অপচয় হবে।</p><p>তাই এই ক্ষেত্র যা সর্বোচ্চ সংখ্যক আপনার সবচেয়ে সাম্প্রতিক HTTP অনুরোধ সমন্বয় করতে দেয় যার ফলে আরও পরিদর্শনের জন্য লগকৃত করা হয়।</p><p>বিস্তারিত লগিং বন্ধ করতে &ldquo;<code>0</code>&rdquo; লিখুন (এবং ফলস্বরূপ <i>uম্যাট্রিক্সের</i> মেমরির পদচিহ্ন কমে)।</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "পুন:সতেজ",
"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": {
"message": "uম্যাট্রিক্স &ndash; সেটিংস",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "উপস্থিতি",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "লেখার মাপ:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "আইকনের উপর স্বতন্ত্র অনুরোধের সংখ্যা দেখান",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "বর্ণান্ধ বন্ধুত্বপূর্ণ",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "সুবিধা",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "বৈশ্বিক",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "ডোমেইন",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "সাইট",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "অবরুদ্ধ উপাদান সংকোচনের স্থানধারক",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "ক্লাউড সঞ্চয়স্থান সমর্থন সক্রিয় করুন",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "পরামর্শ নিষ্ক্রিয় করুন",
"description": ""
},
"privacyPageTitle": {
"message": "uম্যাট্রিক্স &ndash; গোপনীয়তা",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "অবরুদ্ধ কুকি মুছুন।",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"message": "<p>কালোতালিকাভুক্ত কুকি <i>uম্যাট্রিক্স</i> দ্বারা আপনার ব্রাউজারে প্রবেশ করা থেকে প্রতিহত করা হয়না। তবে তাদের আপনার ব্রাউজার থেকে ছেড়ে চলে যাওয়ার সময় প্রতিহত করা হয়, যা সত্যিই গুরুত্বপূর্ণ। তারা আপনার ব্রাউজার প্রবেশ করার আগে কুকি অবরুদ্ধ না করা আপনাকে অবগত করার সুযোগ করে দেয় যে একটি সাইট কুকি ব্যবহার করার চেষ্টা করছে, এবং উপরন্তু তাদের বিষয়বস্তুর পরিদর্শন করা (যদি আপনি চান)।</p><p><i>uম্যাট্রিক্স</i> দ্বারা এইসব কালোতালিকাভুক্ত কুকি একবার দায়ী করা হলে, আপনি চাইলে তাদের আপনি আপনার ব্রাউজার থেকে মুছে ফেলতে পারেন।</p><p><b>গুরুত্বপূর্ণ তথ্য:</b> এক্সটেনশানগুলি তাদের স্বাভাবিক অপারেশনের সময় ওয়েব অনুরোধ করতে পারে। এই অনুরোধগুলির ফলাফল ব্রাউজারে কুকি তৈরি করা হচ্ছে হতে পারে। একটি কুকির উৎপত্তি সাদাতালিকাভুক্ত হোস্টনেম থেকে না হলে, <i>uম্যাট্রিক্স</i> দ্বারা কুকি ব্রাউজার থেকে সরানো হবে যদি এই অপশনটি সক্রিয় করা থাকে। তাই নিশ্চিত হোন যে একটি এক্সটেনশনের যোগাযোগকৃত হোস্টনেম(গুলি) সাদাতালিকাভুক্ত।</p>",
"description": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "অ-অবরুদ্ধ সেশন কুকি মুছুন ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " মিনিটের যেটি সর্বশেষ সময়ে ব্যবহৃত হয়েছিল।",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;যখন আপনি ব্রাউজারের সেশন শেষ করেন একটি সেশন কুকি তখন মুছে ফেলা হয়। সেশন কুকি অস্থায়ী মেমরির মধ্যে সংরক্ষিত হয় এবং ব্রাউজার বন্ধ করার পরে অপরিবর্তিত রাখা হয় না।&rdquo;</p><p>সেটি বাদে এটি কিছু ব্রাউজারে <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>নাও ঘটতে পারে</a>। এছাড়াও, কিছু ক্ষেত্রে, সেশন কুকি পরিস্কার করার জন্য ব্রাউজার বন্ধ হলে প্রথম দিকে যথেষ্ট নাও হতে পারে।</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "অবরুদ্ধ হোস্টনেম দ্বারা স্থাপিত <a href='https://bn.wikipedia.org/wiki/ওয়েব_স্টোরেজ'>স্থানীয় সঞ্চয়ের</a> সামগ্রী মুছে ফেলুন",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "করণীয়",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "ব্রাউজার ক্যাশে সাফ করুন প্রতি",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "মিনিটে।",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCacheHelp": {
"message": "<p>কিছু কিছু ওয়েব সাইট, আপনাকে ট্র্যাকিং করতে সত্যিই নমিত, তারা আপনাকে অনুসরণ করার জন্য এমন সব কৌশল নেয় যা দেখে মনে হবে তারা আপনাকে অনুসরণ করছে না।</p><p>এই রকম কিছু কৌশল<sup style='font-size:smaller'>[১, ২]</sup><a href='https://bn.wikipedia.org/wiki/ওয়েব_ক্যাশে'>ব্রাউজারের ক্যাশে</a> নির্ভর, যার যা বিষয়বস্তু প্রায়ই দীর্ঘস্থায়ী হয়, যেহেতু খুব কমই ব্যবহারকারীদের নিয়মিত তাদের ব্রাউজারের ক্যাশে সাফ করতে সময় ব্যয় করেন।</p><p>নিয়মিত ব্রাউজারের ক্যাশে সাফ সামান্য অসুবিধা আছে (সম্ভাবত আপনি লক্ষ্য করবেন না যখন এটা ঘটে), এবং সুবিধা হল আপনার গোপনীয়তা আক্রমণ করা থেকে এইসব আপত্তিকর ব্যক্তি অনুসরণ প্রতিরোধ করা।</p><p>এই অপশন সক্রিয় করলে <i>uম্যাট্রিক্স</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;কুকিবিহীন কুকির মাধ্যমে ওয়েব ট্র্যাকিং রোধ করবে&rdquo;</a></p>",
"description": ""
},
"privacyProcessRefererPrompt": {
"message": "<a href='https://bn.wikipedia.org/wiki/এইচটিটিপি_রেফার'>এইচটিটিপি রেফারের</a> তৃতীয় পক্ষের অনুরোধের স্ট্রিং স্পুফ করুন।",
"description": ""
},
"privacyProcessRefererHelp": {
"message": "<p>উইকিপিডিয়া থেকে:</p><blockquote>এইচটিটিপি রেফারার একটি এইচটিটিপি হেডার ক্ষেত্র যা ওয়েবপাতার ঠিকানা চিহ্নিত করে যা অনুরোধকৃত রিসোর্সে সংযুক্ত থাকে।... <b>যেহেতু রেফারার তথ্য গোপনীয়তার নীতিমালা ভঙ্গ করতে পারে, কিছু ওয়েব ব্রাউজারে ব্যবহারকারীদের রেফারার তথ্য পাঠানো নিষ্ক্রিয় করার অনুমতি দেয়।</b></blockquote><p>যদি সেটিংসে এটি নির্বাচন করা থাকে, <i>uম্যাট্রিক্স</i> HTTP রেফারার তথ্য স্পুফ করবে যদি ডোমেইনের নামের নেট অনুরোধে HTTP রেফারারের ডোমেইনের নাম তৃতীয় পক্ষের হয়।</p>",
"description": ""
},
"privacyNoMixedContentPrompt": {
"message": "কড়া HTTPS: মিশ্রিত সামগ্রী নিষেধ।",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p><a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>মোজিলা ডেভেলপার নেটওয়ার্ক</a> থেকে:</p><blockquote>যদি HTTPS পাতা নিয়মিত, স্পষ্ট পাঠ HTTP-র মাধ্যমে বিষয়বস্তুর উদ্ধার অন্তর্ভুক্ত করে, তাহলে সংযোগ শুধুমাত্র আংশিকভাবে এনক্রিপ্ট করা হয়: এনক্রিপশনবিহীন বিষয়বস্তু স্নিফার থেকে প্রবেশযোগ্য এবং মধ্য আক্রমণকারীদের দ্বারা পরিবর্তনযোগ্য, এবং সেইজন্য সংযোগ আর সুরক্ষিত থাকে না। যখন একটি ওয়েবপাতা এই আচরণ প্রদর্শন করে, তখন এটিকে একটি মিশ্র বিষয়বস্তু পাতা বলা হয়।</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "সব <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing'>হাইপারলিঙ্ক নিরীক্ষণ</a> প্রচেষ্টা অবরুদ্ধ।",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>হাইপারলিঙ্ক নিরীক্ষণ একটি প্রক্রিয়া যা একটি দল, <b>যে কোন দলকে</b> একজন ব্যবহারকারীর একটি নির্দিষ্ট ওয়েব পাতার লিঙ্ক ক্লিক করা সম্পর্কে অবগত করার অনুমতি দেয়। এটি মূলত একটি ট্র্যাকিং বৈশিষ্ট্য: যা একটি ওয়েব সাইট বা কোনো তৃতীয় পক্ষকে আপনি কোন ওয়েব সাইটের কোন ওয়েব পাতা ক্লিক করেছেন তা অবগত করার অনুমতি দেয়। একমাত্র উদ্দেশ্য হল আপনার ব্রাউজিং কার্যকলাপ অনুসরণ করা।</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "স্থায়ী নিয়ম",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "অস্থায়ী নিয়ম",
"description": ""
},
"userRulesRevert": {
"message": "প্রত্যাবর্তন",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "কমিট",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "সম্পাদনা",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "সংরক্ষণ",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "বাতিল করুন",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "ফাইল থেকে আমদানি...",
"description": ""
},
"userRulesExport": {
"message": "ফাইলে রপ্তানি...",
"description": ""
},
"userRulesFormatHint": {
"message": "নিয়ম শব্দবিন্যাসের জন্য এই পাতাটি দেখুন।",
"description": ""
},
"userRulesDefaultFileName": {
"message": "amar-umatrix-niyom.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts files",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "বৈশ্বিক ব্যাপ্তিতে একটি হোস্ট ফাইলের সব হোস্টনেম কালোতালিকাভুক্ত হোস্টনেম হিসাবে লোড করা হয়।",
"description": ""
},
"hostsFilesStats": {
"message": "এখান থেকে {{blockedHostnameCount}}টি স্বতন্ত্র অবরুদ্ধ হোস্টনেম:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{total}}টির মধ্যে {{used}}টি ব্যবহৃত",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "সর্বশেষ হালনাগাদ: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "পরিবর্তনগুলি প্রয়োগ",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "এখনই হালনাগাদ করুন",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "সব ক্যাশে শোধন করুন",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "লাইন প্রতি একটি URL। &lsquo;#&rsquo; সহ উপসর্গ লাইন উপেক্ষা করা হবে। অকার্যকর URL গুলি নীরবে উপেক্ষা করা হবে।",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "পার্স",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "ক্যাশে শোধন করুন",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "নতুন সংস্করণ উপলব্ধ",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "পুরোনো",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "আমদানি...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>পরিবর্তন লগ</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "সংগ্রহস্থল ব্যবহার: {{storageUsed}} বাইট",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>নথিপত্র</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/gorhill/httpswitchboard/wiki/Permissions'>অনুমতি</a>",
"description": ""
},
"aboutCode": {
"message": "উত্স কোড (GPLv৩)",
"description": ""
},
"aboutIssues": {
"message": "বাগ ও ইস্যু",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "অবদানকারী",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "কোড:",
"description": ""
},
"aboutIssueContributors": {
"message": "ইস্যু:",
"description": ""
},
"aboutTranslationContributors": {
"message": "অনুবাদ:",
"description": ""
},
"aboutUserDataHeader": {
"message": "আপনার উপাত্ত",
"description": ""
},
"aboutBackupButton": {
"message": "ফাইলে ব্যাকআপ...",
"description": ""
},
"aboutBackupFilename": {
"message": "amar-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "ফাইল থেকে পুনরুদ্ধার...",
"description": ""
},
"aboutRestoreConfirm": {
"message": "{{time}}-এর ডেটা ব্যাকআপ ব্যবহার করে আপনার সেটিংস পুনঃলিখিত হবে, এবং uম্যাট্রিক্স পুনরায় চালু হবে।\n\nডেটা ব্যাকআপ ব্যবহার করে সমস্ত বিদ্যমান সেটিংস পুনঃলিখবেন?",
"description": "Message asking user to confirm restore"
},
"aboutRestoreError": {
"message": "উপাত্তটি পড়া যায়নি বা অকার্যকর",
"description": ""
},
"aboutOr": {
"message": "... বা ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "ডিফল্ট সেটিংসে পুন:স্থাপন করুন",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "সতর্কতা! এটি আপনার সব স্বনির্ধারিত সেটিংস সরিয়ে দেবে? আপনি কি অগ্রসর হতে চান?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "uম্যাট্রিক্স নিচের পৃষ্ঠা লোড করাকে প্রতিহত করেছে:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "নিম্নলিখিত নিয়মের কারণে",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "ফিরে যান",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "বন্ধ",
"description": "English: Close"
},
"commandRevertAll": {
"message": "সব অস্থায়ী পরিবর্তন প্রত্যাবর্তন করুন",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "সাময়িকরূপে সাদাতালিকার পাতা ডোমেইন",
"description": ""
},
"commandWhitelistAll": {
"message": "সাময়িকরূপে সাদাতালিকার সব",
"description": ""
},
"commandOpenDashboard": {
"message": "ড্যাশবোর্ড খুলুন",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "এক মিনিট আগে",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "{{value}} মিনিট আগে",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "এক ঘণ্টা আগে",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "{{value}} ঘণ্টা আগে",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "এক দিন আগে",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "{{value}} দিন আগে",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "ড্যাশবোর্ড",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "লগার",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "ক্লাউড সঞ্চয়স্থানে রপ্তানি করুন",
"description": "tooltip"
},
"cloudPull": {
"message": "ক্লাউড সঞ্চয়স্থান থেকে আমদানি করুন",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "এই ডিভাইসের নাম:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "জমা দিন",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "প্রত্যাবর্তন",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "নেটওয়ার্ক ত্রুটি: {{url}} -এ সংযোগ করতে অক্ষম",
"description": ""
},
"genericApplyChanges": {
"message": "পরিবর্তনগুলি প্রয়োগ করুন",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "Point & click to forbid/allow any class of requests made by your browser. Use it to block scripts, iframes, ads, facebook, etc.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — Dashboard",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logger",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Settings",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Privacy",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Statistics",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "My rules",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "More",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "About",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "all",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "cookie",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "image",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "media",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "plugin",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "frame",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "other",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "No net traffic seen for this tab so far.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Disable/enable matrix filtering for this scope",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Save all temporary changes for this scope",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Revert temporary changes for this scope",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Reload the page. \nPress Shift to bypass the browser cache.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "1st-party",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} blacklisted hostname(s)",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Forbid mixed content",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Forbid web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Spoof <code>Referer</code> header",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Go to logger",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Go to dashboard",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "No web page found",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Import rules",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Save rules",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; Statistics",
"description": ""
},
"statsPageGenericStats": {
"message": "Generic statistics",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP cookie</a> headers foiled: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referer</a> headers foiled: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hyperlink auditing</a> attempts foiled: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Local cookies removed: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Local storages</a> emptied: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Browser caches cleared: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Detailed statistics",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "All",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Behind the scene",
"description": ""
},
"statsPageOverview": {
"message": "Overview",
"description": ""
},
"statsPageRequests": {
"message": "Requests",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Allowed",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Blocked",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "All",
"description": ""
},
"statsPagePages": {
"message": "Pages",
"description": ""
},
"statsPageCookies": {
"message": "Cookies",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Images",
"description": ""
},
"statsPagePlugins": {
"message": "Plugins",
"description": ""
},
"statsPageScripts": {
"message": "Scripts",
"description": ""
},
"statsPageXHRs": {
"message": "XHRs",
"description": ""
},
"statsPageFrames": {
"message": "Frames",
"description": ""
},
"statsPageOthers": {
"message": "Others",
"description": ""
},
"statsPageDetailed": {
"message": "Logger",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Remember the last",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP requests <b>per page</b>",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Refresh",
"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": {
"message": "nuTensor &ndash; Settings",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Matrix",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Text size:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Show the number of blocked resources on the icon",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Color-blind friendly",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Convenience",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Domain",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Site",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Hide placeholder of blocked elements",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Enable cloud storage support",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Disable tooltips",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Privacy",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Delete blocked cookies",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Delete non-blocked session cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minutes after the last time they have been used",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Clear browser cache every",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "minutes",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Strict HTTPS: forbid mixed content",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Permanent rules",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Temporary rules",
"description": ""
},
"userRulesRevert": {
"message": "Revert",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Commit",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Edit",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Save",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Discard",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Import from file...",
"description": ""
},
"userRulesExport": {
"message": "Export to file...",
"description": ""
},
"userRulesFormatHint": {
"message": "See this page for rule syntax.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts files",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "All hostnames in a hosts file are loaded as blacklisted hostnames in the global scope.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} used out of {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Last update: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Apply changes",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Update now",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Purge all caches",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Import external assets here: \nOne URL per line; invalid URLs will be silently ignored.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Parse",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "purge cache",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "new version available",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "outdated",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Import...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Storage used: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": ""
},
"aboutCode": {
"message": "Source code (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Issue tracker",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Contributors",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Code:",
"description": ""
},
"aboutIssueContributors": {
"message": "Issues:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Translations:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Your data",
"description": ""
},
"aboutBackupButton": {
"message": "Back up to file...",
"description": ""
},
"aboutBackupFilename": {
"message": "my-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Restore from file...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "The data could not be read or is invalid",
"description": ""
},
"aboutOr": {
"message": "... or ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Reset to default settings",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor has prevented the following page from loading:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Because of the following rule",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Go back",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Close",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Revert all temporary changes",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Temporarily whitelist page domain",
"description": ""
},
"commandWhitelistAll": {
"message": "Temporarily whitelist all",
"description": ""
},
"commandOpenDashboard": {
"message": "Open dashboard",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "a minute ago",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "{{value}} minutes ago",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "an hour ago",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "{{value}} hours ago",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "a day ago",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "{{value}} days ago",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Dashboard",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Logger",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Export to cloud storage",
"description": "tooltip"
},
"cloudPull": {
"message": "Import from cloud storage",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "This device name:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Submit",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Revert",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Network error: Unable to connect to {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Apply changes",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "µMatrix",
"description": ""
},
"extShortDesc": {
"message": "Umožňuje cíleně povolovat/blokovat spojení z vašeho prohlížeče pouhým kliknutím. Můžete jím blokovat skripty, reklamy, Facebook, …",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "µMatrix Ovládací panel",
"description": ""
},
"loggerPageName": {
"message": "nuTensor - logování",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Nastavení",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Soukromí",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Statistiky",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "Moje pravidla",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assety",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "Více",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "O rozšíření",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "vše",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "cookie",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "obr.",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "média",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "plugin",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "skript",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "rámce",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "jiné",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "Na této záložce zatím nedošlo k žádné síťové komunikaci.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Vypnout/zapnout filtrování matrixu pro tento rozsah.",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Uložit dočasné změny v tomto kontextu.",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Zrušit dočasné změny v tomto kontextu.",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Obnovit stránku.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "vlastní doména",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} blokovaných domén",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Striktní HTTPS",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Zakázat web workery",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Podvrhovat adresy odkazujících stránek",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Falšovat <code><noscript></code> tagy",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Vrátit všechny dočasné změny",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Jít na záznamník",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Přejít na řídící panel",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "Žádné stránky nebyly nalezeny",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Importovat pravidla",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Uložit pravidla",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "µMatrix Statistiky",
"description": ""
},
"statsPageGenericStats": {
"message": "Obecné statistiky",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "Zničené <a href='https://cs.wikipedia.org/wiki/HTTP_cookie'>HTTP cookie</a> hlavičky: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "Počet neodeslaných <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referer</a> hlaviček: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "Počet zmařených <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hyperlink auditing</a> pokusů: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Počet smazaných cookies: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Local storages</a> emptied: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Cache prohlížeče smazána: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Podrobné statistiky",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "Všechny stránky",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Chromium: Pod pokličkou",
"description": ""
},
"statsPageOverview": {
"message": "Přehled",
"description": ""
},
"statsPageRequests": {
"message": "Spojení",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Povoleno",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Blokováno",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "Všechna",
"description": ""
},
"statsPagePages": {
"message": "Stránky",
"description": ""
},
"statsPageCookies": {
"message": "Cookies",
"description": ""
},
"statsPageCSS": {
"message": "Styly",
"description": ""
},
"statsPageImages": {
"message": "Obrázky",
"description": ""
},
"statsPagePlugins": {
"message": "Pluginy",
"description": ""
},
"statsPageScripts": {
"message": "Skripty",
"description": ""
},
"statsPageXHRs": {
"message": "XHR",
"description": ""
},
"statsPageFrames": {
"message": "Rámce",
"description": ""
},
"statsPageOthers": {
"message": "Ostatní",
"description": ""
},
"statsPageDetailed": {
"message": "Záznam spojení",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Pamatovat posledních",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP spojení <b>na stránku</b>.",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Obnovit",
"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": {
"message": "µMatrix Nastavení",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Vzhled",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Velikost písma:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Zobrazit počet blokovaných požadavků u ikony",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Styl pro barvoslepé",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Pohodlí",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Výchozí platnost:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Globální",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Doména",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Stránka",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Skrýt zástupné objekty zablokovaných prvků",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"message": "Skrýt blokované prvky",
"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": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Zapnout podporu cloudového úložiště",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Disable tooltips",
"description": ""
},
"privacyPageTitle": {
"message": "µMatrix Soukromí",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Mazat zablokované cookies.",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Mazat neblokované cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minut po posledním použití.",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Mazat vyrovnávací paměť prohlížeče každých",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "minut.",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"privacyProcessRefererHelp": {
"message": "Z Wikipedie:<blockquote>HTTP referer je v informatice označení pro URI, ze kterého byla webová stránka navštívena. Údaj HTTP referrer zapisuje webový prohlížeč do hlavičky HTTP dotazu pro webový server, který ho může dále zpracovat. <b>Dereferrer označuje činnost, při které je ze žádosti o webovou stránku odstraněn HTTP referrer, takže není možné zjistit, odkud uživatel na webovou stránku přišel.</b></blockquote>Pokud je toto zakliknuto, <i>µMatrix</i> bude spoofovat informace o HTTP referrer pokud je jméno domény HTTP referreru třetí strany v kontextu s požadavkem.",
"description": ""
},
"privacyNoMixedContentPrompt": {
"message": "Striktní HTTPS: zakázat smíšený obsah.",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Permanentní pravidla",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Dočasná pravidla",
"description": ""
},
"userRulesRevert": {
"message": "Vrátit",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Potvrdit",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Upravit",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Uložit",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Zrušit",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Načíst ze souboru…",
"description": ""
},
"userRulesExport": {
"message": "Uložit do souboru…",
"description": ""
},
"userRulesFormatHint": {
"message": "Podívej se na tuto stránku pro syntaxi pravidel.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "moje-pravidla-umatrix.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Soubory hostů",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "Všechny jména hostů v souboru hostů jsou načteny jako zakázaná v globálním měřítku.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "Použito {{used}} z {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Poslední aktualizace: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Uložit změny",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Automatické aktualizace assetů",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Aktualizovat nyní",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Vyčistit všechny cache",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Jedna URL na řádek. Řádky s prefixem &lsquo;#&rsquo; budou ignorovány. Nevalidní URL budou ignorovány.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Načíst",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "vyčistit cache",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "nová verze k dispozici",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "zastaralé",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Importovat...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "Moje recepty",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Přehled změn</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Použité místo: {{storageUsed}} bajtů",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentace</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/gorhill/httpswitchboard/wiki/Permissions'>Oprávnění</a>",
"description": ""
},
"aboutCode": {
"message": "Zdrojový kód (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Chyby a problémy",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Přispěvatelé",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Zdrojový kód:",
"description": ""
},
"aboutIssueContributors": {
"message": "Problémy:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Překlady:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Vaše data",
"description": ""
},
"aboutBackupButton": {
"message": "Zálohovat do souboru…",
"description": ""
},
"aboutBackupFilename": {
"message": "moje-zaloha-umatrix.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Obnovit ze zálohy…",
"description": ""
},
"aboutRestoreConfirm": {
"message": "Všechna vaše nastavení budou přepsány daty zálohovanými v {{time}}, µMatrix bude restartován.\nPřepsat všechny existující nastavení zálohovanými daty?",
"description": "Message asking user to confirm restore"
},
"aboutRestoreError": {
"message": "Data nemohla být načtena nebo jsou neplatná",
"description": ""
},
"aboutOr": {
"message": "nebo",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Vrátit do původního stavu",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"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"
},
"mainBlockedPrompt1": {
"message": "µMatrix zabránil následující stránce v načítání:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Kvůli tomuto pravidlu",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Zpět",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Zavřít",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Zrušit všechny dočasné změny",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Dočasně povolit doménu stránky",
"description": ""
},
"commandWhitelistAll": {
"message": "Dočasně povolit všechny",
"description": ""
},
"commandOpenDashboard": {
"message": "Otevřít panel",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "před minutou",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "před {{value}} minutami",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "před hodinou",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "před {{value}} hodinami",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "včera",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "před {{value}} dny",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Přehled",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Záznamník",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Exportovat do cloudového úložiště",
"description": "tooltip"
},
"cloudPull": {
"message": "Importovat z cloudového úložiště",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "Jméno tohoto zařízení:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Odeslat",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Vrátit zpět",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Chyba sítě: Nelze se připojit k {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Použít změny",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "Peg og klik for at forbyde/tillade bestemte former for anmodninger. Brug det til at blokere scripts, iframes, annoncer, Facebook, etc.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — Kontrolpanel",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logger",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Indstillinger",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Privatliv",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Statistik",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "Mine regler",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "More",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "Om",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "alle",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "cookie",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "medier",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "media",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "plugin",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "frame",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "andre",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "Endnu ingen trafik registreret på denne fane.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Deaktiver/aktiver matrix-filtrering på dette område.",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Gem alle midlertidige ændringer på dette område.",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Fortryd alle midlertidige ændringer på dette område.",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Genindlæs siden.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "1.-parts",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} sortlistede værtsnavne",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Benyt kun HTTPS",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Forbid web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Forfalsking af referer",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Tilbagestil alle midlertidige ændringer",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Gå til logger",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Gå til kontrolpanel",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "No web page found",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Import rules",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Save rules",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; Statistik",
"description": ""
},
"statsPageGenericStats": {
"message": "Generisk statistik",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP-cookie</a>-headere forhindret: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referer</a>-headere forhindret: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing'>Hyperlink overvågnings</a> forsøg forhindret: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Lokale cookies fjernet: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Lokale lagre</a> tømt: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Browser-cacher tømt: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Detaljeret statistik",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "Alle",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Baggrundsanmodninger",
"description": ""
},
"statsPageOverview": {
"message": "Oversigt",
"description": ""
},
"statsPageRequests": {
"message": "Forespørgsler",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Tilladte",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Blokerede",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "Alle",
"description": ""
},
"statsPagePages": {
"message": "Sider",
"description": ""
},
"statsPageCookies": {
"message": "Cookies",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Billeder",
"description": ""
},
"statsPagePlugins": {
"message": "Plugins",
"description": ""
},
"statsPageScripts": {
"message": "Scripts",
"description": ""
},
"statsPageXHRs": {
"message": "XHRs",
"description": ""
},
"statsPageFrames": {
"message": "Frames",
"description": ""
},
"statsPageOthers": {
"message": "Andre",
"description": ""
},
"statsPageDetailed": {
"message": "Logger",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Husk de sidste",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP-forespørgsler <b>per side</b>.",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Genindlæs",
"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": {
"message": "nuTensor &ndash; Indstillinger",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Udseende",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Skriftstørrelse:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Vis antal separate forespørgsler på ikonet",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Optimeret til farveblindhed",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Bekvemmelighed",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Domain",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Site",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Sammenfold pladsholder for blokerede elementer",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Aktiver lagring i skyen",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Disable tooltips",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Privatliv",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Slet blokerede cookies.",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Slet ikke-blokerede session cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minutter efter de sidst er blevet brugt.",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>:&ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Forvent at dette <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>ikke altid sker</a> i alle browsere. For nogen kan det også være et problem, at man skal lukke sin browser helt før disse cookies slettes.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Slet <a href='https://en.wikipedia.org/wiki/Web_storage'>lokal lagret</a> indhold fra blokerede hostnavne",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Slet browser cache hvert",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "minutter.",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Forfalsk<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string fra tredjeparts forespørgsler.",
"description": ""
},
"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 nuTensor</i> forfalske den information som HTTP referreren indeholder, hvis netanmodningen om HTTP referreren kommer fra en tredjepart.",
"description": ""
},
"privacyNoMixedContentPrompt": {
"message": "Streng HTTPS: forbyd blandet indhold.",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>Fra <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Bloker alle <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing'>hyperlink overvågnings</a>forsøg.",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink overvågning er en mekanisme der gør det muligt for første eller <b>tredjepart</b>, at indsamle data om hvilke brugeren klikker på en hjemmeside. Det er altså tale om en tracking funktion, der gør informerer første eller tredjepart om, hvilke links en bruger vælger at klikke på under sit besøg på en hvilken som helst hjemmeside. Det eneste formål med hyperlink overvågning er altså, at tracke din browser aktivitet.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Permanente regler",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Midlertidige regler",
"description": ""
},
"userRulesRevert": {
"message": "Fortryd",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Tilføj",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Rediger",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Gem",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Kassér",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Importer fra fil...",
"description": ""
},
"userRulesExport": {
"message": "Eksporter fil til...",
"description": ""
},
"userRulesFormatHint": {
"message": "Gå til denne side for at se syntaks regler.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts files",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "Alle hostnavne der forefindes i en host fil vil blive sortlistet, og blokeret overalt.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} blokerede unikke hostnavne fra:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} forbrug ud af {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Sidst opdateret: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Anvend ændringer",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Opdater nu",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Slet alt caches",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Et URL per linje. Linjer der begynder med &lsquo;#&rsquo; vil blive ignoreret. Ugyldige URLs vil lydløst blive ignoreret.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Parse",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "Slet cache",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "Ny version tilgængelig",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "Forældet",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Import...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Lagerplads brugt: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentation</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/gorhill/httpswitchboard/wiki/Permissions'>Tilladelser</a>",
"description": ""
},
"aboutCode": {
"message": "Source code (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Fejl og problemer",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Bidragydere",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Kode:",
"description": ""
},
"aboutIssueContributors": {
"message": "Problemstillinger:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Oversættelser:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Din data",
"description": ""
},
"aboutBackupButton": {
"message": "Backup til fil...",
"description": ""
},
"aboutBackupFilename": {
"message": "my-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Gendan fra fil...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "Dataen er enten ugyldig eller kunne ikke læses",
"description": ""
},
"aboutOr": {
"message": "... eller ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Gendan til fabriksindstillinger",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "Forsigtig! Dette slette alle brugerdefinerede indstillinger. Er du sikker på, at du vil fortsætte?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor har blokeret den følgende webside:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "På grund af den følgende regel",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Tilbage",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Luk",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Fortryd alle midlertidige ændringer",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Tillad midlertidigt alt traffik på dette domæne",
"description": ""
},
"commandWhitelistAll": {
"message": "Tillad midlertidigt alt trafik på alle domæner",
"description": ""
},
"commandOpenDashboard": {
"message": "Åbn kontrolpanel",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "et minut siden",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "{{value}} minutter siden",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "en time sider",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "{{value}} timer siden",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "en dag siden",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "{{value}} dage siden",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Kontrolpanel",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Logger",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Eksporter til skyen",
"description": "tooltip"
},
"cloudPull": {
"message": "Eksporter fra skyen",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "Denne enheds navn:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Indsend",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Gendan",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Netværksfejl: Kan ikke oprette forbindelse til {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Apply changes",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"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"
},
"dashboardPageName": {
"message": "nuTensor — Dashboard",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logger",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Einstellungen",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Privatsphäre",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Statistiken",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "Meine Regeln",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "Mehr",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "Über",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "Alle",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "Cookie",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "CSS",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "Grafik",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "Medien",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "Plugin",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "Skript",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "Frame",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "Andere",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "Bisher keine Netzwerkaktivität für diesen Tab.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Wähle einen lokalen Geltungsbereich, um Regeln zu betrachten/erzeugen, die nur in diesem Geltungsbereich angewandt werden",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Wähle den globalen Geltungsbereich, um Regeln zu betrachten/erzeugen, die überall angewandt werden",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Aktiviere/deaktiviere die Matrix-Filter für diesen Geltungsbereich.",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Speichere alle temporären Änderungen für diesen Geltungsbereich.",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Entferne temporäre Änderungen für diesen Geltungsbereich.",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Seite neu laden.\nShift drücken um den Browser Cache zu ignorieren.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "Aktuelle Domain",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} Hostname(n) auf der Blacklist",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Gemischte Inhalte verbieten",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Web Worker verbieten",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Referrer verschleiern",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "<code><noscript></code> Tags verschleiern",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Mache alle temporären Änderungen rückgängig",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Gehe zum Protokoll",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Gehe zum Dashboard",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "Keine Webseite gefunden",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Regeln importieren",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Regeln speichern",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "µMatrix &ndash; Statistik",
"description": ""
},
"statsPageGenericStats": {
"message": "Statistik nach Gattungen",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://de.wikipedia.org/wiki/HTTP_Cookie'>HTTP Cookie</a> Header blockiert: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://de.wikipedia.org/wiki/Referrer'>HTTP Referrer</a> Header blockiert: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hyperlink auditing</a> Versuche vereitelt: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Lokale Cookies entfernt: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Local Storage</a> geleert: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Browser Cache geleert: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Detaillierte Statistik",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "Alle",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Hintergrundanfragen",
"description": ""
},
"statsPageOverview": {
"message": "Übersicht",
"description": ""
},
"statsPageRequests": {
"message": "Anfragen",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Erlaubt",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Blockiert",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "Alle",
"description": ""
},
"statsPagePages": {
"message": "Seiten",
"description": ""
},
"statsPageCookies": {
"message": "Cookies",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Bilder",
"description": ""
},
"statsPagePlugins": {
"message": "Plugins",
"description": ""
},
"statsPageScripts": {
"message": "Skripte",
"description": ""
},
"statsPageXHRs": {
"message": "XHRs",
"description": ""
},
"statsPageFrames": {
"message": "Frames",
"description": ""
},
"statsPageOthers": {
"message": "Andere",
"description": ""
},
"statsPageDetailed": {
"message": "Protokoll der Anfragen",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Speichere die letzten",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP Anfragen <b>pro Seite</b>.",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i> zu reduzieren).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Neu laden",
"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": {
"message": "nuTensor &ndash; Einstellungen",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Matrix",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Schriftgröße:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Zeige die Zahl der blockierten Anfragen auf dem Icon an",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Anzeige für farbenblinde Benutzer",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Komforteinstellungen",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Standardgeltungsbereich:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Domain",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Seite",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Verstecke die Platzhalter für blockierte Elemente",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"message": "Verstecke die Platzhalter für Elemente auf der Blacklist",
"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": {
"message": "Verschleiere <code><noscript></code> Tags wenn Skripte der aktuellen Domain blockiert werden",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Aktiviere die Unterstützung der Speicherung in der Cloud",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Deaktiviere Tooltips",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Privatsphäre",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Lösche geblockte Cookies.",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Lösche nicht blockierte Sitzungscookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " Minuten nach ihrer letzten Benutzung.",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;Ein Sitzungscookie ... wird gelöscht, wenn die Browsersitzung beendet wird. Das Sitzungscookie wird temporär gespeichert und nicht behalten, nachdem der Browser geschlossen wurde.&rdquo;</p><p>Nur ist das möglicherweise bei einigen Browsern <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>nicht der Fall</a>. Außerdem bevorzugen es manche Benutzer, Sitzungscookies loszuwerden, bevor sie den Browser schließen.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Lösche <a href='http://de.wikipedia.org/wiki/Web_Storage'>Lokaler Speicher-Inhalt (Local Storage)</a> für blockierte Hostnamen",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Lösche den Browser-Cache alle",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "Minuten.",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Verschleiere den <a href='https://de.wikipedia.org/wiki/Referrer'>HTTP Referrer</a>, wenn das Ziel eine Drittseite ist.",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Nur HTTPS: verbiete gemischte Inhalte.",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>Übersetzt von <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>Wenn [eine] HTTPS-Seite normale Klartext-HTTP-Inhalte enthält, ist die Verbindung nur teilweise verschlüsselt: der unverschlüsselte Inhalt ist zugänglich für Schnüffler und kann durch man-in-the-middle-Attacken modifiziert werden; die Verbindung ist daher nicht mehr sicher. Wenn eine Webseite ein solches Verhalten aufweist, nennt man dies eine Seite mit gemischten Inhalten. </blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Blockiere alle <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> Versuche.",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink-Auditing ist ein Mechanismus, der es <b>allen beteiligten Parteien</b> erlaubt herauszufinden, auf welchen Link ein Benutzer auf einer bestimmten Webseite klickt. Im Grunde ist es eine Tracking-Funktion: Es erlaubt einer Webseite oder auch Drittparteien auf dieser Webseite, sich darüber zu informieren, auf welche Links du auf eine dieser Seiten geklickt hast. Der einzige Zweck besteht darin, deine Browsing-Aktivitäten zu verfolgen.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Permanente Regeln",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Temporäre Regeln",
"description": ""
},
"userRulesRevert": {
"message": "Rückgängig machen",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Dauerhaft speichern",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Bearbeiten",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Speichern",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Verwerfen",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Aus Datei importieren...",
"description": ""
},
"userRulesExport": {
"message": "In eine Datei exportieren ...",
"description": ""
},
"userRulesFormatHint": {
"message": "Auf dieser Seite findest du die Syntax für die Regeln.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts-Dateien",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "Alle Hostnamen einer Hosts-Datei werden als geblacklistete Hostnamen im globalen Geltungsbereich geladen.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} eindeutig blockierte Hostnamen aus:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} benutzt aus {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Letzte Aktualisierung: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Änderungen anwenden",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Automatische Aktualisierung der Assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Jetzt aktualisieren",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Alle Cache-Speicher löschen",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Eine URL pro Zeile. Zeilen mit vorangestelltem &lsquo;#&rsquo; werden ignoriert. Ungültige URLs werden stillschweigend ignoriert.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Anwenden",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "Cache löschen",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "Neue Version verfügbar",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "veraltet",
"description": ""
},
"assetsRecipesSection": {
"message": "Rezepte für Regelsätze",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Rezepte für Regelsätze werden <em>auf Anforderung</em>, d.h. <b>nur</b> durch eine Aktion des Benutzers, über das Popup-Panel importiert.",
"description": ""
},
"assetsImportLabel": {
"message": "Importieren...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "Meine Hostnamen",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "Meine Rezepte",
"description": ""
},
"rawSettingsWarning": {
"message": "Warnung! Die Änderung dieser Konfigurations-Einstellungen erfolgt auf eigenes Risiko.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Änderungsprotokoll</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Benutzter Speicherplatz: {{storageUsed}} Bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentation</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Berechtigungen</a>",
"description": ""
},
"aboutCode": {
"message": "Quellcode (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Fehler und Probleme",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Mitwirkende",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Code:",
"description": ""
},
"aboutIssueContributors": {
"message": "Probleme:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Übersetzungen:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Deine Daten",
"description": ""
},
"aboutBackupButton": {
"message": "Sicherung in eine Datei...",
"description": ""
},
"aboutBackupFilename": {
"message": "my-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Wiederherstellung aus einer Datei...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "Die Daten konnten nicht gelesen werden oder sind ungültig",
"description": ""
},
"aboutOr": {
"message": "... oder ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Auf Standardeinstellungen zurücksetzen",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "Vorsicht! Dies wird alle deine individuellen Einstellungen entfernen. Bist du sicher, dass du fortfahren willst?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor hat das Laden der folgenden Seite verhindert:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Aufgrund der folgenden Regel",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Gehe zurück",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Schließe",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Entferne alle temporären Änderungen",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Setze die Domain temporär auf die Whitelist",
"description": ""
},
"commandWhitelistAll": {
"message": "Setze alles temporär auf die Whitelist",
"description": ""
},
"commandOpenDashboard": {
"message": "Dashboard öffnen",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "vor einer Minute",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "vor {{value}} Minuten",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "vor einer Stunde",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "vor {{value}} Stunden",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "vor einem Tag",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "vor {{value}} Tagen",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Dashboard",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Protokoll",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Export in den Cloud-Speicher",
"description": "tooltip"
},
"cloudPull": {
"message": "Import aus dem Cloud-Speicher",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "Dieser Gerätename:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Absenden",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Rückgängig machen",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Netzwerkfehler: konnte nicht zu {{url}} verbinden",
"description": ""
},
"genericApplyChanges": {
"message": "Änderungen anwenden",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "In die Zwischenablage kopieren",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "Point & click to forbid/allow any class of requests made by your browser. Use it to block scripts, iframes, ads, facebook, etc.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — Πίνακας",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logger",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Ρυθμίσεις",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Ιδιωτικό απόρρητο",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Στατιστικά",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "Οι κανόνες μου",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "Περισσότερα",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "Περί",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "όλα",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "cookie",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "Εικόνα",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "media",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "Πρόσθετο",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "Δέσμη ενεργειών",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "Πλαίσιο",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "Άλλο",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "No net traffic seen for this tab so far.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Disable/enable matrix filtering for this scope",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Save all temporary changes for this scope",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Revert temporary changes for this scope",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Επαναφόρτωση σελίδας.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "1st-party",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} blacklisted hostname(s)",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Forbid mixed content",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Forbid web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Spoof <code>Referer</code> header",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Επαναφορά όλων των προσωρινών αλλαγών",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Πηγαίνετε στο καταγραφικό",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Μετάβαση στον πίνακα",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "No web page found",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Import rules",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Save rules",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; Στατιστικά",
"description": ""
},
"statsPageGenericStats": {
"message": "Γενικά στατιστικά",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP cookie</a> headers foiled: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referer</a> headers foiled: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hyperlink auditing</a> attempts foiled: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Local cookies removed: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Local storages</a> emptied: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Browser caches cleared: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Detailed statistics",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "Όλα",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Behind the scene",
"description": ""
},
"statsPageOverview": {
"message": "Επισκόπηση",
"description": ""
},
"statsPageRequests": {
"message": "Αιτήματα",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Επιτρέπεται",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Μπλοκαρισμένο",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "Όλα",
"description": ""
},
"statsPagePages": {
"message": "Σελίδες",
"description": ""
},
"statsPageCookies": {
"message": "Cookies",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Εικόνες",
"description": ""
},
"statsPagePlugins": {
"message": "Πρόσθετα",
"description": ""
},
"statsPageScripts": {
"message": "Scripts",
"description": ""
},
"statsPageXHRs": {
"message": "XHRs",
"description": ""
},
"statsPageFrames": {
"message": "Πλαίσια",
"description": ""
},
"statsPageOthers": {
"message": "Άλλα",
"description": ""
},
"statsPageDetailed": {
"message": "Logger",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Remember the last",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP requests <b>per page</b>",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Ανανέωση",
"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": {
"message": "nuTensor &ndash; Settings",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Εμφάνιση",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Μέγεθος κειμένου:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Show the number of blocked resources on the icon",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Color-blind friendly",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Convenience",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Domain",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Site",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Hide placeholder of blocked elements",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Enable cloud storage support",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Disable tooltips",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Privacy",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Διαγραφή μπλοκάρισμένων cookies.",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Delete non-blocked session cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minutes after the last time they have been used",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Απαλοιφή λανθάνουσα μνήμη του φυλλομετρητή κάθε",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "λεπτά.",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Strict HTTPS: forbid mixed content",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Permanent rules",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Temporary rules",
"description": ""
},
"userRulesRevert": {
"message": "Revert",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Commit",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Edit",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Save",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Discard",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Import from file...",
"description": ""
},
"userRulesExport": {
"message": "Export to file...",
"description": ""
},
"userRulesFormatHint": {
"message": "See this page for rule syntax.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts files",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "All hostnames in a hosts file are loaded as blacklisted hostnames in the global scope.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} used out of {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Last update: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Apply changes",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Update now",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Purge all caches",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Import external assets here: \nOne URL per line; invalid URLs will be silently ignored.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Parse",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "purge cache",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "new version available",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "outdated",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Import...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Storage used: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": ""
},
"aboutCode": {
"message": "Source code (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Issue tracker",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Contributors",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Code:",
"description": ""
},
"aboutIssueContributors": {
"message": "Issues:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Translations:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Your data",
"description": ""
},
"aboutBackupButton": {
"message": "Back up to file...",
"description": ""
},
"aboutBackupFilename": {
"message": "my-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Restore from file...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "The data could not be read or is invalid",
"description": ""
},
"aboutOr": {
"message": "... or ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Reset to default settings",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor has prevented the following page from loading:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Because of the following rule",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Go back",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Close",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Revert all temporary changes",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Temporarily whitelist page domain",
"description": ""
},
"commandWhitelistAll": {
"message": "Temporarily whitelist all",
"description": ""
},
"commandOpenDashboard": {
"message": "Open dashboard",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "a minute ago",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "{{value}} minutes ago",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "an hour ago",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "{{value}} hours ago",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "a day ago",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "{{value}} days ago",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Dashboard",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Logger",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Export to cloud storage",
"description": "tooltip"
},
"cloudPull": {
"message": "Import from cloud storage",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "This device name:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Submit",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Revert",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Network error: Unable to connect to {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Apply changes",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,885 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"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"
},
"dashboardPageName": {
"message": "nuTensor — Dashboard",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logger",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Settings",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Privacy",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Statistics",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "My rules",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName" : {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "More",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "About",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "all",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "cookie",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "image",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "media",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "plugin",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "frame",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "other",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt" : {
"message": "No net traffic seen for this tab so far.",
"description": ""
},
"matrixLocalScopeTip" : {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip" : {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip" : {
"message": "Disable/enable matrix filtering for this scope",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip" : {
"message": "Save all temporary changes for this scope",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip" : {
"message": "Revert temporary changes for this scope",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton" : {
"message": "Reload the page. \nPress Shift to bypass the browser cache.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel" : {
"message": "1st-party",
"description": "1st-party"
},
"matrixBlacklistedHostnames" : {
"message": "{{count}} blacklisted hostname(s)",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent" : {
"message": "Forbid mixed content",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker" : {
"message": "Forbid web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof" : {
"message": "Spoof <code>Referer</code> header",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof" : {
"message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname" : {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry" : {
"message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry" : {
"message": "Go to logger",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry" : {
"message": "Go to dashboard",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound" : {
"message": "No web page found",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip" : {
"message": "Import rules",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip" : {
"message": "Save rules",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle" : {
"message": "nuTensor &ndash; Statistics",
"description": ""
},
"statsPageGenericStats" : {
"message": "Generic statistics",
"description": ""
},
"statsPageCookieHeadersFoiled" : {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP cookie</a> headers foiled: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled" : {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referer</a> headers foiled: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled" : {
"message": "<a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hyperlink auditing</a> attempts foiled: {{count}}",
"description": ""
},
"statsPageCookiesRemoved" : {
"message": "Local cookies removed: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared" : {
"message": "<a href='http://diveintohtml5.info/storage.html'>Local storages</a> emptied: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared" : {
"message": "Browser caches cleared: {{count}}",
"description": ""
},
"statsPageDetailedStats" : {
"message": "Detailed statistics",
"description": ""
},
"statsPageDetailedAllPages" : {
"message": "All",
"description": ""
},
"statsPageDetailedBehindTheScenePage" : {
"message": "Behind the scene",
"description": ""
},
"statsPageOverview" : {
"message": "Overview",
"description": ""
},
"statsPageRequests" : {
"message": "Requests",
"description": "header for the stat type column"
},
"statsPageAllowed" : {
"message": "Allowed",
"description": "header for the allowed requests column"
},
"statsPageBlocked" : {
"message": "Blocked",
"description": "header for the blocked requests column"
},
"statsPageAll" : {
"message": "All",
"description": ""
},
"statsPagePages" : {
"message": "Pages",
"description": ""
},
"statsPageCookies" : {
"message": "Cookies",
"description": ""
},
"statsPageCSS" : {
"message": "CSS",
"description": ""
},
"statsPageImages" : {
"message": "Images",
"description": ""
},
"statsPagePlugins" : {
"message": "Plugins",
"description": ""
},
"statsPageScripts" : {
"message": "Scripts",
"description": ""
},
"statsPageXHRs" : {
"message": "XHRs",
"description": ""
},
"statsPageFrames" : {
"message": "Frames",
"description": ""
},
"statsPageOthers" : {
"message": "Others",
"description": ""
},
"statsPageDetailed" : {
"message": "Logger",
"description": ""
},
"statsPageLogSizePrompt1" : {
"message": "Remember the last",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2" : {
"message": "HTTP requests <b>per page</b>",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh" : {
"message": "Refresh",
"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" : {
"message": "nuTensor &ndash; Settings",
"description": ""
},
"settingsMatrixDisplayHeader" : {
"message": "Matrix",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt" : {
"message": "Text size:",
"description": ""
},
"settingsIconBadgeEnabled":{
"message":"Show the number of blocked resources on the icon",
"description":""
},
"settingsMatrixDisplayColorBlind" : {
"message": "Color-blind friendly",
"description": ""
},
"settingsMatrixConvenienceHeader" : {
"message": "Convenience",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel" : {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0" : {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1" : {
"message": "Domain",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2" : {
"message": "Site",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked" : {
"message": "Hide placeholder of blocked elements",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted" : {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed" : {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled" : {
"message": "Enable cloud storage support",
"description": ""
},
"settingsMatrixNoTooltips" : {
"message": "Disable tooltips",
"description": ""
},
"privacyPageTitle" : {
"message": "nuTensor &ndash; Privacy",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt" : {
"message": "Delete blocked cookies",
"description": ""
},
"privacyDeleteBlockedCookiesHelp" : {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1" : {
"message": "Delete non-blocked session cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2" : {
"message": " minutes after the last time they have been used",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp" : {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt" : {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp" : {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1" : {
"message": "Clear browser cache every",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2" : {
"message": "minutes",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt" : {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt" : {
"message": "Strict HTTPS: forbid mixed content",
"description": ""
},
"privacyNoMixedContentHelp" : {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt" : {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp" : {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Permanent rules",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Temporary rules",
"description": ""
},
"userRulesRevert": {
"message": "Revert",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Commit",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Edit",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Save",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Discard",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Import from file...",
"description": ""
},
"userRulesExport": {
"message": "Export to file...",
"description": ""
},
"userRulesFormatHint": {
"message": "See this page for rule syntax.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection" : {
"message": "Hosts files",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt" : {
"message": "All hostnames in a hosts file are loaded as blacklisted hostnames in the global scope.",
"description": ""
},
"hostsFilesStats" : {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats" : {
"message": "{{used}} used out of {{total}}",
"description": ""
},
"hostsFilesLastUpdate" : {
"message":"Last update: {{ago}}",
"description":"English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges" : {
"message": "Apply changes",
"description": ""
},
"hostsFilesAutoUpdatePrompt":{
"message":"Auto-update assets",
"description":""
},
"hostsFilesUpdateNow":{
"message":"Update now",
"description":""
},
"hostsFilesPurgeAll":{
"message":"Purge all caches",
"description":""
},
"hostsFilesExternalListsHint":{
"message":"Import external assets here: \nOne URL per line; invalid URLs will be silently ignored.",
"description":""
},
"hostsFilesExternalListsParse":{
"message":"Parse",
"description":""
},
"hostsFilesExternalListPurge":{
"message":"purge cache",
"description":""
},
"hostsFilesExternalListNew":{
"message":"new version available",
"description":""
},
"hostsFilesExternalListObsolete":{
"message":"outdated",
"description":""
},
"assetsRecipesSection" : {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary" : {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel" : {
"message": "Import...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning" : {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog" : {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": ""
},
"aboutStorageUsed" : {
"message": "Storage used: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc" : {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": ""
},
"aboutPermissions" : {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": ""
},
"aboutCode" : {
"message": "Source code (GPLv3)",
"description": ""
},
"aboutIssues" : {
"message": "Issue tracker",
"description": "Text for a link to official issue tracker"
},
"aboutContributors":{
"message":"Contributors",
"description":"English: Contributors"
},
"aboutCodeContributors":{
"message":"Code:",
"description":""
},
"aboutIssueContributors":{
"message":"Issues:",
"description":""
},
"aboutTranslationContributors":{
"message":"Translations:",
"description":""
},
"aboutUserDataHeader" : {
"message": "Your data",
"description": ""
},
"aboutBackupButton" : {
"message": "Back up to file...",
"description": ""
},
"aboutBackupFilename" : {
"message": "my-umatrix-backup.txt",
"description": "default filename to use"
},
"aboutRestoreButton" : {
"message": "Restore from file...",
"description": ""
},
"aboutRestoreConfirm" : {
"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"
},
"aboutRestoreError" : {
"message": "The data could not be read or is invalid",
"description": ""
},
"aboutOr" : {
"message": "... or ...",
"description": "English: ... or ..."
},
"aboutResetButton" : {
"message": "Reset to default settings",
"description": "English: Reset to default settings"
},
"aboutResetConfirm" : {
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor has prevented the following page from loading:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Because of the following rule",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack" : {
"message": "Go back",
"description": "English: Go back"
},
"mainBlockedClose" : {
"message": "Close",
"description": "English: Close"
},
"commandRevertAll" : {
"message": "Revert all temporary changes",
"description": ""
},
"commandWhitelistPageDomain" : {
"message": "Temporarily whitelist page domain",
"description": ""
},
"commandWhitelistAll" : {
"message": "Temporarily whitelist all",
"description": ""
},
"commandOpenDashboard" : {
"message": "Open dashboard",
"description": ""
},
"elapsedOneMinuteAgo":{
"message":"a minute ago",
"description":"English: a minute ago"
},
"elapsedManyMinutesAgo":{
"message":"{{value}} minutes ago",
"description":"English: {{value}} minutes ago"
},
"elapsedOneHourAgo":{
"message":"an hour ago",
"description":"English: an hour ago"
},
"elapsedManyHoursAgo":{
"message":"{{value}} hours ago",
"description":"English: {{value}} hours ago"
},
"elapsedOneDayAgo":{
"message":"a day ago",
"description":"English: a day ago"
},
"elapsedManyDaysAgo":{
"message":"{{value}} days ago",
"description":"English: {{value}} days ago"
},
"showDashboardButton":{
"message":"Dashboard",
"description":"Appears in Firefox's add-on preferences"
},
"showLoggerButton":{
"message":"Logger",
"description":"Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Export to cloud storage",
"description": "tooltip"
},
"cloudPull": {
"message": "Import from cloud storage",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "This device name:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Submit",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Revert",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo":{
"message":"Network error: Unable to connect to {{url}}",
"description":""
},
"genericApplyChanges": {
"message": "Apply changes",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard":{
"message":"Copy to clipboard",
"description":"Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "Point & click to forbid/allow any class of requests made by your browser. Use it to block scripts, iframes, ads, facebook, etc.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — Panelo",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logger",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Agordoj",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Privateco",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Statistics",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "Miaj reguloj",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "More",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "Pri",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "all",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "kuketo",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "bildo",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "media",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "kromaĵo",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "skripto",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "kadro",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "alia",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "No net traffic seen for this tab so far.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Disable/enable matrix filtering for this scope",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Save all temporary changes for this scope",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Revert temporary changes for this scope",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Reŝargi la paĝon.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "1st-party",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} blacklisted hostname(s)",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Forbid mixed content",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Forbid web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Spoof <code>Referer</code> header",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Revert all temporary changes",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Iri al protokolilo",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Iri al panelo",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "No web page found",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Import rules",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Save rules",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; Statistics",
"description": ""
},
"statsPageGenericStats": {
"message": "Generic statistics",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP cookie</a> headers foiled: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referer</a> headers foiled: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hyperlink auditing</a> attempts foiled: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Lokaj kuketoj forigitaj: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Lokaj konservadoj</a> malplenigitaj: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Browser caches cleared: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Detailed statistics",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "All",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Behind the scene",
"description": ""
},
"statsPageOverview": {
"message": "Superrigardo",
"description": ""
},
"statsPageRequests": {
"message": "Petoj",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Allowed",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Blocked",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "All",
"description": ""
},
"statsPagePages": {
"message": "Paĝoj",
"description": ""
},
"statsPageCookies": {
"message": "Kuketoj",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Bildoj",
"description": ""
},
"statsPagePlugins": {
"message": "Kromaĵoj",
"description": ""
},
"statsPageScripts": {
"message": "Skriptoj",
"description": ""
},
"statsPageXHRs": {
"message": "XHR-oj",
"description": ""
},
"statsPageFrames": {
"message": "Kadroj",
"description": ""
},
"statsPageOthers": {
"message": "Aliaj",
"description": ""
},
"statsPageDetailed": {
"message": "Protokolilo",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Remember the last",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP requests <b>per page</b>",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Aktualigi",
"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": {
"message": "nuTensor &ndash; Agordoj",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Apero",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Tekstogrando:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Show the number of blocked resources on the icon",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Afabla por kolorblinduloj",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Komforto",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Domain",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Site",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Hide placeholder of blocked elements",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Ŝalti subtenon por nuba konservado",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Disable tooltips",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Privateco",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Delete blocked cookies",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Delete non-blocked session cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minutes after the last time they have been used",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "TODO",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Clear browser cache every",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "minutoj.",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Strict HTTPS: forbid mixed content",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Daŭraj reguloj",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Nedaŭraj reguloj",
"description": ""
},
"userRulesRevert": {
"message": "Malfari",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Konservi",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Redakti",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Konservi",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Ignori",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Importi el dosiero...",
"description": ""
},
"userRulesExport": {
"message": "Eksporti al dosiero...",
"description": ""
},
"userRulesFormatHint": {
"message": "See this page for rule syntax.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "miaj-umatrix-reguloj.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts files",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "All hostnames in a hosts file are loaded as blacklisted hostnames in the global scope.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} used out of {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Lasta ĝisdatigo: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Apliki ŝanĝojn",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Ĝisdatigi nun",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Malplenigi ĉiujn kaŝmemorojn",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Import external assets here: \nOne URL per line; invalid URLs will be silently ignored.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Analizi",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "malplenigi kaŝmemoron",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "nova versio disponebla",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "neĝisdata",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Import...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Ŝanĝoprotokolo</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Storage used: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": ""
},
"aboutCode": {
"message": "Fontkodo (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Cimoj kaj problemoj",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Kontribuantoj",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Kode:",
"description": ""
},
"aboutIssueContributors": {
"message": "Problemoj:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Tradukoj:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Viaj datumoj",
"description": ""
},
"aboutBackupButton": {
"message": "Savkopii al dosiero...",
"description": ""
},
"aboutBackupFilename": {
"message": "mia-umatrix-savkopio.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Restore from file...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "The data could not be read or is invalid",
"description": ""
},
"aboutOr": {
"message": "... aŭ ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Reset to default settings",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor has prevented the following page from loading:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Because of the following rule",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Reen",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Fermi",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Revert all temporary changes",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Temporarily whitelist page domain",
"description": ""
},
"commandWhitelistAll": {
"message": "Temporarily whitelist all",
"description": ""
},
"commandOpenDashboard": {
"message": "Malfermi la panelo",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "antaŭ 1 minuto",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "antaŭ {{value}} minutoj",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "antaŭ 1 horo",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "antaŭ {{value}} horoj",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "antaŭ 1 tago",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "antaŭ {{value}} tagoj",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Panelo",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Protokolilo",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Eksporti al nuba konservado",
"description": "tooltip"
},
"cloudPull": {
"message": "Importi el nuba konservado",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "Nomo de ĉi tiu aparato:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Sendi",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Malfari",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Reteraro: {{url}} ne konekteblas",
"description": ""
},
"genericApplyChanges": {
"message": "Apply changes",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "Prohíbe/permite cualquier petición del navegador. Bloquea scripts, iframes, anuncios, facebook, etc.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — Panel de control",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Registro de peticiones",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Configuración",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Privacidad",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Estadísticas",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "Mis reglas",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Recursos",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "Más",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "Acerca de",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "todo",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "cookie",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "imagen",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "media",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "plugin",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "script",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "frame",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "otro",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "No se ha detectado tráfico de red en esta pestaña hasta el momento.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Seleccione un ámbito local para ver/crear reglas que se aplican solo en ese ámbito",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Seleccione el alcance global para ver/crear reglas que se aplican en todas partes",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Deshabilitar/habilitar el filtrado por matriz en este ámbito",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Guardar cambios temporales para este ámbito",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Revertir cambios temporales para este ámbito",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Recargar la página.\nMantenga pulsada la tecla Shift para evitar usar la caché del navegador.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "peticiones del dominio",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} nombres de dominio en la lista negra",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Prohibir contenido mixto",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Prohibir web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Falsificar encabezado <code>Referer</code>",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Falsificar etiquetas <code><noscript></code>",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Revelar nombres canónicos",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Revertir todos los cambios temporales",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Ir al registro de peticiones",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Ir al panel de control",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "No se encontró la página",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Importar reglas",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Guardar reglas",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; Estadísticas",
"description": ""
},
"statsPageGenericStats": {
"message": "Estadísticas genéricas",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "Encabezados de <a href='https://es.wikipedia.org/wiki/Cookie_%28inform%C3%A1tica%29'>HTTP cookie</a> frustrados: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "Encabezados de <a href='https://es.wikipedia.org/wiki/Referer_%28Cabecera_HTTP%29'>HTTP referer</a> frustrados: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "Intentos de <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>auditoría de hipervínculos</a> frustrados: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Cookies locales eliminadas: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Almacenamientos locales</a> vaciados: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Memorias caché del navegador eliminadas: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Estadísticas detalladas",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "Todo",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Peticiones ocultas",
"description": ""
},
"statsPageOverview": {
"message": "Resumen",
"description": ""
},
"statsPageRequests": {
"message": "Peticiones",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Permitidas",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Bloquedas",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "Todo",
"description": ""
},
"statsPagePages": {
"message": "Páginas",
"description": ""
},
"statsPageCookies": {
"message": "Cookies",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Imágenes",
"description": ""
},
"statsPagePlugins": {
"message": "Plugins",
"description": ""
},
"statsPageScripts": {
"message": "Scripts",
"description": ""
},
"statsPageXHRs": {
"message": "XHRs",
"description": ""
},
"statsPageFrames": {
"message": "Frames",
"description": ""
},
"statsPageOthers": {
"message": "Otros",
"description": ""
},
"statsPageDetailed": {
"message": "Registro de peticiones",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Recordar últimas",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "Peticiones HTTP <b>por página</b>",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Actualizar",
"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": {
"message": "nuTensor &ndash; Configuración",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Matriz",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Tamaño del texto:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Mostrar el número de peticiones bloqueadas en el icono",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Accesible para daltónicos",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Comodidad",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Nivel de entorno predeterminado:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Dominio",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Sitio",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Ocultar marcadores de posición de los elementos bloqueados",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"message": "Ocultar marcadores de posición de los elementos en la 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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Falsificar etiquetas <code><noscript></code> cuando se bloquean scripts del dominio",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Habilitar almacenamiento en la nube",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Deshabilitar las descripciones emergentes",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Privacidad",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Eliminar cookies bloquedas",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Eliminar las cookies de sesión no bloqueadas ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minutos a partir de la última vez que fueron usadas",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;Una cookie de sesión ... es eliminada una vez usted termina la sesión del navegador. La cookie de sesión es almacenada en la memoria temporal y no está disponible luego de cerrar el navegador.&rdquo;</p><p>Excepto que esto <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>pudiera no estar sucediendo así</a> cuando se usa un navegador basado en Chromium. Además, cerrar el navegador para limpiar las cookies de sesión quizás no sea lo suficientemente rápido para algunos.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Eliminar contenido de los nombres de dominio bloqueados <a href='https://en.wikipedia.org/wiki/Web_storage'>almacenado localmente</a>",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "POR HACER",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Limpiar la caché del navegador cada",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "minutos",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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 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": ""
},
"privacyProcessRefererPrompt": {
"message": "Falsificar cadenas <a href='https://es.wikipedia.org/wiki/Referer_%28Cabecera_HTTP%29'>HTTP referer</a> en las peticiones de terceros",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "HTTPS estricto: prohibir contenido mixto",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>Según <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>Si [una] página HTTPS incluye contenido que se obtiene a través de HTTP regular, entonces la conexión está solo parcialmente encriptada: el contenido no encriptado puede ser leído mediante sniffers y modificado por ataques tipo \"man-in-the-middle\", lo que hace que la conexión ya no sea segura. Una página web que exhiba este comportamiento, se considera una página de contenido mixto.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Bloquear todos los intentos de <a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing'>auditoría de hipervínculos</a>",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>La auditoría de hipervínculos o enlaces es un mecanismo que permite a alguien, <b>cualquiera</b>, ser informado acerca de a que enlace accedió un usuario en una página web particular. Es esencialmente un mecanismo de rastreo: permite a un sitio web, o cualquier tercero, ser informado sobre cuales enlaces, en cuales páginas, fueron accedidos por el usuario. Su único motivo es rastrear la actividad de navegación del usuario.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Reglas permanentes",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Reglas temporales",
"description": ""
},
"userRulesRevert": {
"message": "Revertir",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Establecer",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Editar",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Guardar",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Descartar",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Importar desde archivo...",
"description": ""
},
"userRulesExport": {
"message": "Exportar a archivo...",
"description": ""
},
"userRulesFormatHint": {
"message": "Consulte esta página para sintaxis de las reglas.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "umatrix-mis-reglas.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Archivos hosts",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "Todos los nombres de dominio en un archivo hosts son cargados como nombres de dominio en la lista negra de manera global.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} nombres de dominio bloqueados a partir de:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} utilizados de {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Última actualización: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Aplicar cambios",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Actualizar automáticamente los recursos",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Actualizar ahora",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Vaciar todas las memorias caché",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Importar recursos externos aquí: \nUna URL por línea. Las URL inválidas serán ignoradas.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Analizar",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "vaciar memoria caché",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "nueva versión disponible",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "desactualizado",
"description": ""
},
"assetsRecipesSection": {
"message": "Plantillas de conjunto de reglas",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Las plantillas de conjunto de reglas se importan desde el panel emergente <em>bajo demanda</em>, ej. <b>solo</b> mediante una acción del usuario.",
"description": ""
},
"assetsImportLabel": {
"message": "Importar...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "Mis hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "Mis plantillas",
"description": ""
},
"rawSettingsWarning": {
"message": "¡Atención! Cambie estas configuraciones bajo tu propio riesgo.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Registro de cambios</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Almacenamiento usado: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentación</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permisos</a>",
"description": ""
},
"aboutCode": {
"message": "Código fuente (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Registro de problemas",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Colaboradores",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Código:",
"description": ""
},
"aboutIssueContributors": {
"message": "Problemas:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Traducciones:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Tus datos",
"description": ""
},
"aboutBackupButton": {
"message": "Respaldar en archivo...",
"description": ""
},
"aboutBackupFilename": {
"message": "umatrix-mi-respaldo.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Restaurar desde archivo...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "Los datos no se pueden leer o son inválidos",
"description": ""
},
"aboutOr": {
"message": "... o ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Restablecer ajustes predeterminados",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "¡Atención! Esto borrará todas tus configuraciones personalizadas. ¿Seguro desea continuar?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor impidió la carga de la página:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Como resultado de la siguiente regla:",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "sin parámetros",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Regresar",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Cerrar",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Revertir todos los cambios temporales",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Permitir temporalmente el dominio de la página",
"description": ""
},
"commandWhitelistAll": {
"message": "Permitir todo temporalmente",
"description": ""
},
"commandOpenDashboard": {
"message": "Abrir panel de control",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "hace un minuto",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "hace {{value}} minutos",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "hace una hora",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "hace {{value}} horas",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "hace un día",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "hace {{value}} días",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Panel de control",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Registro de peticiones",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Exportar datos a la nube",
"description": "tooltip"
},
"cloudPull": {
"message": "Importar datos de la nube",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "Nombre de este dispositivo:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Enviar",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Revertir",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Error de red: Imposible conectar con {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Aplicar cambios",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copiar al portapapeles",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "Suuna ja klõpsa, et keelata/lubada veebilehitseja kõiki päringud. Sellega saab keelata skripte, iframe-e, reklaame, facebook'i jne.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — Töölaud",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logija",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "Seaded",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "Privaatsus",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "Statistika",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "Minu reeglid",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Vahendid",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "Rohkem",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "Teave",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "kõik",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "küpsis",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "pilt",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "meedia",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "meedia",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "skript",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "raam",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "teised",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "Selle kaardi kohta pole veel netiliiklust näha.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "Selle määratluse puhul keela/luba maatriksiline filtreerimine.\nMaatriksilise filtreerimise blokeeritud ühendused selles portaalis: {{count}}.",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "Salvesta ajutiselt kõik selle määratluse muudatused.",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "Eemalda selle määratluse ajutised muudatused.",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "Värskenda lehekülge.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "1. osapool",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} hosti nimi(e) mustas nimekirjas",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "Keela segatud sisu",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Keela veebitöötajad",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "Viitaja narritamine",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Narrita <code><noscript></code> märksõnu",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "Taasta kõik ajutised muudatused",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "Mine logijasse",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "Mine esilehele",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "Lehekülge ei leitud",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Impordi reeglid",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Salvesta reeglid",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor&#x27;i &ndash; statistika",
"description": ""
},
"statsPageGenericStats": {
"message": "Üldstatistika",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://et.wikipedia.org/wiki/HTTP-k%C3%BCpsis'>HTTP-küpsise</a> tõrjutud päiseid: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referer</a>'i tõrjutud päiseid: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>Hüperlingi kontrolli</a> tõrjumiste arv: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "Kohalikke küpsiseid eemaldatud: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>Kohalikke mälusid</a> tühjendatud: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "Veebilehe vahemälu tühjendatud: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "Üksikasjalik statistika",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "Kõik",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "Peidetud päringud",
"description": ""
},
"statsPageOverview": {
"message": "Ülevaade",
"description": ""
},
"statsPageRequests": {
"message": "Päringud",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "Lubatud",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "Blokeeritud",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "Kõik",
"description": ""
},
"statsPagePages": {
"message": "Leheküljed",
"description": ""
},
"statsPageCookies": {
"message": "Küpsised",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "Pildid",
"description": ""
},
"statsPagePlugins": {
"message": "Pluginad",
"description": ""
},
"statsPageScripts": {
"message": "Skriptid",
"description": ""
},
"statsPageXHRs": {
"message": "XHRid",
"description": ""
},
"statsPageFrames": {
"message": "Raamid",
"description": ""
},
"statsPageOthers": {
"message": "Muud",
"description": ""
},
"statsPageDetailed": {
"message": "Logija",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "Mäleta viimast",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "HTTP päringut <b>lehekülje kaupa</b>.",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "Värskenda",
"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": {
"message": "nuTensor&#x27;i &ndash; seaded",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "Maatriks",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "Teksti suurus:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Kuva ikoonil blokeeritud ressursside arv",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Värvipimeduse-sõbralik",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "Mugavus",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Üldine",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Domeen",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Sait",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Hide placeholder of blocked elements",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Luba pilve salvestamise tugi",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Keela näpunäited",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor&#x27;i &ndash; privaatsus",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Kustuta blokeeritud küpsised",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Delete non-blocked session cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minutes after the last time they have been used",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "Vaja teha",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "Clear browser cache every",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "minutit",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Range HTTPS: keela segatud sisu",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "Püsivad reeglid",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "Ajutised reeglid",
"description": ""
},
"userRulesRevert": {
"message": "Ennista",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "Sisesta",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "Muuda",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "Salvesta",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "Loobu",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "Impordi failist...",
"description": ""
},
"userRulesExport": {
"message": "Ekspordi faili...",
"description": ""
},
"userRulesFormatHint": {
"message": "See this page for rule syntax.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "minu-umatrix-reeglid.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hostifailid",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "All hostnames in a hosts file are loaded as blacklisted hostnames in the global scope.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} used out of {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Last update: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "Rakenda muudatused",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "Uuenda kohe",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Tühjenda kõik vahemälud",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Import external assets here: \nOne URL per line; invalid URLs will be silently ignored.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "Töötle",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "tühjenda vahemälu",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "new version available",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "outdated",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Impordi...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "Minu hostid",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "Minu retseptid",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Muudatuste logi</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Storage used: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Dokumentatsioon</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/gorhill/httpswitchboard/wiki/Permissions'>Õigused</a>",
"description": ""
},
"aboutCode": {
"message": "Lähtekood (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "Vead ja probleemid",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "Toetajad",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "Kood:",
"description": ""
},
"aboutIssueContributors": {
"message": "Probleemid:",
"description": ""
},
"aboutTranslationContributors": {
"message": "Tõlked:",
"description": ""
},
"aboutUserDataHeader": {
"message": "Sinu andmed",
"description": ""
},
"aboutBackupButton": {
"message": "Varunda faili...",
"description": ""
},
"aboutBackupFilename": {
"message": "minu-umatrix-varundus.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "Taasta failist...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "The data could not be read or is invalid",
"description": ""
},
"aboutOr": {
"message": "... või ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "Lähtesta vaikeseadetele",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "Caution! this will remove all your custom settings. Are you sure you want to proceed?",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor has prevented the following page from loading:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "Because of the following rule",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "Mine tagasi",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "Sulge",
"description": "English: Close"
},
"commandRevertAll": {
"message": "Taasta kõik ajutised muudatused",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Temporarily whitelist page domain",
"description": ""
},
"commandWhitelistAll": {
"message": "Temporarily whitelist all",
"description": ""
},
"commandOpenDashboard": {
"message": "Open dashboard",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "minut tagasi",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "{{value}} minutit tagasi",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "tund tagasi",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "{{value}} tundi tagasi",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "päev tagasi",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "{{value}} päeva tagasi",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "Töölaud",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Logija",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "Export to cloud storage",
"description": "tooltip"
},
"cloudPull": {
"message": "Import from cloud storage",
"description": "tooltip"
},
"cloudNoData": {
"message": "...\n...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "This device name:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "Sisesta",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "Ennista",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Network error: Unable to connect to {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Rakenda muudatused",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

@ -1,866 +0,0 @@
{
"extName": {
"message": "nuTensor",
"description": ""
},
"extShortDesc": {
"message": "اشاره و کلیک کنید تا هر کلاسی از درخواست‌هایی که توسط مرورگر ایجاد می‌شوند را منع کنید یا اجازه دهید. برای سد راه کردن اسکریپت‌ها، iframeها، تبلیغات، فیس‌بوک و غیره از آن استفاده کنید.",
"description": "this will be used as short description in web stores: MUST BE 132 characters OR LESS"
},
"dashboardPageName": {
"message": "nuTensor — داشبورد",
"description": ""
},
"loggerPageName": {
"message": "nuTensor — Logger",
"description": "Title for the logger window"
},
"settingsPageName": {
"message": "تنظیمات",
"description": "a tab in dashboard"
},
"privacyPageName": {
"message": "حریم خصوصی",
"description": "a tab in dashboard"
},
"statsPageName": {
"message": "آمارها",
"description": "a tab in dashboard"
},
"userRulesPageName": {
"message": "قوانین شخصی",
"description": "a tab in dashboard"
},
"ubiquitousRulesPageName": {
"message": "Assets",
"description": "a tab in dashboard"
},
"rawSettingsPageName": {
"message": "More",
"description": "a tab in dashboard"
},
"aboutPageName": {
"message": "درباره",
"description": "a tab in dashboard"
},
"allPrettyName": {
"message": "همه",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cookiePrettyName": {
"message": "کوکی",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"cssPrettyName": {
"message": "css",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"imagePrettyName": {
"message": "تصویر",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"mediaPrettyName": {
"message": "media",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"pluginPrettyName": {
"message": "افزونه",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"scriptPrettyName": {
"message": "اسکریپت",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"fetchPrettyName": {
"message": "fetch",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"framePrettyName": {
"message": "frame",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"otherPrettyName": {
"message": "سایر",
"description": "HAS TO FIT IN MATRIX HEADER!"
},
"matrixNoNetTrafficPrompt": {
"message": "هیچ ترافیک شبکه‌ای برای این تب تا کنون دیده نشده است.",
"description": ""
},
"matrixLocalScopeTip": {
"message": "Select a local scope to see/create rules which apply only in that scope",
"description": "Tool tip for the local scope button"
},
"matrixGlobalScopeTip": {
"message": "Select the global scope to see/create rules which apply everywhere",
"description": "Tool tip for the global scope button"
},
"matrixMtxButtonTip": {
"message": "فعال یا غیرفعال نمودن ماتریس فیلتر برای این محدوده.",
"description": "Tool tip for matrix button"
},
"matrixPersistButtonTip": {
"message": "ذخیره نمودن همه‌ی تغییرات موقتی برای این محدوده.",
"description": "Tool tip for the persist button"
},
"matrixRevertButtonTip": {
"message": "بازگرداندن تغییرات موقتی برای این محدوده.",
"description": "Tool tip for the revert local permission button"
},
"matrixReloadButton": {
"message": "بارگذاری مجدد صفحه.",
"description": "Tool tip for the reload button"
},
"matrix1stPartyLabel": {
"message": "1st-party",
"description": "1st-party"
},
"matrixBlacklistedHostnames": {
"message": "{{count}} بلاک‌شده آدرس‌(های)",
"description": "Appears in the metadata row of bottom-most group: **mind the limited width**"
},
"matrixSwitchNoMixedContent": {
"message": "فقط HTTPS",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoWorker": {
"message": "Forbid web workers",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchReferrerSpoof": {
"message": "مخفی‌نمودن ارجاع‌دهنده",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchNoscriptSpoof": {
"message": "Spoof <code><noscript></code> tags",
"description": "A menu entry in the matrix popup"
},
"matrixSwitchRevealCname": {
"message": "Reveal canonical names",
"description": "A menu entry in the matrix popup"
},
"matrixRevertAllEntry": {
"message": "بازگرداندن همه‌ی تغییرات موقتی",
"description": "A menu entry in the matrix popup"
},
"matrixLoggerMenuEntry": {
"message": "رفتن به logger",
"description": "A menu entry in the matrix popup"
},
"matrixDashboardMenuEntry": {
"message": "رفتن به داشبورد",
"description": "A menu entry in the matrix popup"
},
"matrixNoTabFound": {
"message": "No web page found",
"description": "Displays in place of matrix when no data is found for the current page"
},
"matrixRecipeImportTip": {
"message": "Import rules",
"description": "Used as a tooltip for the recipe import button"
},
"matrixRecipeSaveTip": {
"message": "Save rules",
"description": "Used as a tooltip for the recipe padlock button"
},
"statsPageTitle": {
"message": "nuTensor &ndash; آمارها",
"description": ""
},
"statsPageGenericStats": {
"message": "آمارهای کلی",
"description": ""
},
"statsPageCookieHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_cookie'>HTTP کوکی</a> هدرها بی‌اثر شدند: {{count}}",
"description": ""
},
"statsPageRefererHeadersFoiled": {
"message": "<a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP ارجاع‌دهنده</a> هدرها بی‌اثر شدند: {{count}}",
"description": ""
},
"statsPageHyperlinkAuditingFoiled": {
"message": "<a href='http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing'>بررسی لینک</a> تلاش‌ها بی‌اثر شدند: {{count}}",
"description": ""
},
"statsPageCookiesRemoved": {
"message": "کوکی‌های محلی پاک‌شده: {{count}}",
"description": ""
},
"statsPageLocalStoragesCleared": {
"message": "<a href='http://diveintohtml5.info/storage.html'>انباره‌های محلی</a> خالی شدند: {{count}}",
"description": ""
},
"statsPageBrowserCacheCleared": {
"message": "کش‌های مرورگر پاک شدند: {{count}}",
"description": ""
},
"statsPageDetailedStats": {
"message": "آمارهای جزئی",
"description": ""
},
"statsPageDetailedAllPages": {
"message": "همه",
"description": ""
},
"statsPageDetailedBehindTheScenePage": {
"message": "پشت‌صحنه",
"description": ""
},
"statsPageOverview": {
"message": "نمای کلی",
"description": ""
},
"statsPageRequests": {
"message": "درخواست‌ها",
"description": "header for the stat type column"
},
"statsPageAllowed": {
"message": "مجاز",
"description": "header for the allowed requests column"
},
"statsPageBlocked": {
"message": "مسدود شده",
"description": "header for the blocked requests column"
},
"statsPageAll": {
"message": "همه",
"description": ""
},
"statsPagePages": {
"message": "صفحات",
"description": ""
},
"statsPageCookies": {
"message": "کوکی‌ها",
"description": ""
},
"statsPageCSS": {
"message": "CSS",
"description": ""
},
"statsPageImages": {
"message": "تصاویر",
"description": ""
},
"statsPagePlugins": {
"message": "افزونه‌ها",
"description": ""
},
"statsPageScripts": {
"message": "اسکریپت‌ها",
"description": ""
},
"statsPageXHRs": {
"message": "XHRها",
"description": ""
},
"statsPageFrames": {
"message": "فریم‌ها",
"description": ""
},
"statsPageOthers": {
"message": "ساير",
"description": ""
},
"statsPageDetailed": {
"message": "Logger",
"description": ""
},
"statsPageLogSizePrompt1": {
"message": "به یاد سپردن آخرین",
"description": "First part of Remember the last [n] HTTP requests per page"
},
"statsPageLogSizePrompt2": {
"message": "درخواست‌های HTTP <b>در هر صفحه</b>.",
"description": "Second part of Remember the last [n] HTTP requests per page"
},
"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>nuTensor</i>).</p>",
"description": "To help user understand the purpose of the log size value"
},
"statsPageRefresh": {
"message": "تازه‌سازی",
"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": {
"message": "nuTensor &ndash; Settings",
"description": ""
},
"settingsMatrixDisplayHeader": {
"message": "ظاهر",
"description": "header for matrix settings used in Settings page"
},
"settingsMatrixDisplayTextSizePrompt": {
"message": "اندازه متن:",
"description": ""
},
"settingsIconBadgeEnabled": {
"message": "Show the number of blocked resources on the icon",
"description": ""
},
"settingsMatrixDisplayColorBlind": {
"message": "Color-blind friendly",
"description": ""
},
"settingsMatrixConvenienceHeader": {
"message": "راحتی",
"description": "English: Convenience"
},
"settingsDefaultScopeLevel": {
"message": "Default scope level:",
"description": "Label for default scope level selector in Settings pane"
},
"settingsDefaultScopeLevel0": {
"message": "Global",
"description": "Scope will be global"
},
"settingsDefaultScopeLevel1": {
"message": "Domain",
"description": "Scope will be base domain"
},
"settingsDefaultScopeLevel2": {
"message": "Site",
"description": "Scope will be full hostname of site"
},
"settingsCollapseBlocked": {
"message": "Hide placeholder of blocked elements",
"description": "A setting in the dashboard's Settings pane"
},
"settingsCollapseBlacklisted": {
"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 `*`'"
},
"settingsNoscriptTagsSpoofed": {
"message": "Spoof <code><noscript></code> tags when 1st-party scripts are blocked",
"description": "This appears in the Settings pane in the dashboard"
},
"settingsCloudStorageEnabled": {
"message": "Enable cloud storage support",
"description": ""
},
"settingsMatrixNoTooltips": {
"message": "Disable tooltips",
"description": ""
},
"privacyPageTitle": {
"message": "nuTensor &ndash; Privacy",
"description": ""
},
"privacyDeleteBlockedCookiesPrompt": {
"message": "Delete blocked cookies",
"description": ""
},
"privacyDeleteBlockedCookiesHelp": {
"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": ""
},
"privacyDeleteNonBlockedSessionCookiesPrompt1": {
"message": "Delete non-blocked session cookies ",
"description": "First part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesPrompt2": {
"message": " minutes after the last time they have been used",
"description": "Second part of 'Delete non-blocked session cookies [n] minutes after the last time they have been used'"
},
"privacyDeleteNonBlockedSessionCookiesHelp": {
"message": "<p><a href='http://www.w3.org/2001/tag/2010/09/ClientSideStorage.html'>W3C</a>: &ldquo;A session cookie ... is erased when you end the browser session. The session cookie is stored in temporary memory and is not retained after the browser is closed.&rdquo;</p><p>Except that this <a href='https://code.google.com/p/chromium/issues/detail?id=128513'>might not be happening</a> in some browsers. Also, to some, having to close the browser in order for the session cookies to clear might not be early enough.</p>",
"description": ""
},
"privacyDeleteBlockedLocalStoragePrompt": {
"message": "Delete <a href='https://en.wikipedia.org/wiki/Web_storage'>local storage</a> content set by blocked hostnames",
"description": ""
},
"privacyDeleteBlockedLocalStorageHelp": {
"message": "برای‌انجام",
"description": ""
},
"privacyClearCachePrompt1": {
"message": "پاک‌نمودن کش مرورگر هر",
"description": "First part of 'Clear browser cache every [n] minutes'"
},
"privacyClearCachePrompt2": {
"message": "دقیقه.",
"description": "Second part of 'Clear browser cache every [n] minutes'"
},
"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>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": ""
},
"privacyProcessRefererPrompt": {
"message": "Spoof <a href='https://en.wikipedia.org/wiki/HTTP_referer'>HTTP referrer</a> string of third-party requests",
"description": ""
},
"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>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": ""
},
"privacyNoMixedContentPrompt": {
"message": "Strict HTTPS: forbid mixed content",
"description": ""
},
"privacyNoMixedContentHelp": {
"message": "<p>From <a href='https://developer.mozilla.org/en-US/docs/Security/MixedContent'>Mozilla Developer Network</a>:</p><blockquote>If [a] HTTPS page includes content retrieved through regular, cleartext HTTP, then the connection is only partially encrypted: the unencrypted content is accessible to sniffers and can be modified by man-in-the-middle attackers, and therefore the connection is not safeguarded anymore. When a webpage exhibits this behavior, it is called a mixed content page.</blockquote>",
"description": ""
},
"privacyProcessHyperlinkAuditingPrompt": {
"message": "Block all <a href='https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing'>hyperlink auditing</a> attempts",
"description": ""
},
"privacyProcessHyperlinkAuditingHelp": {
"message": "<p>Hyperlink auditing is a mechanism which allow a party, <b>any party</b>, to be informed about which link a user clicked on a particular web page. It is essentially a tracking feature: it allows a web site, or any third-party to that web site, to be informed about which link you clicked on which one of its web pages. The sole purpose is to track your browsing activity.</p>",
"description": ""
},
"userRulesPermanentHeader": {
"message": "قوانین دائم",
"description": ""
},
"userRulesTemporaryHeader": {
"message": "قوانین موقت",
"description": ""
},
"userRulesRevert": {
"message": "بازگرداندن",
"description": "Will remove all temporary rules"
},
"userRulesCommit": {
"message": "انجام‌دادن",
"description": "Will save all temporary rules"
},
"userRulesEdit": {
"message": "ويرايش",
"description": "Will enable manual-edit mode (textarea)"
},
"userRulesEditSave": {
"message": "ذخيره",
"description": "Will save manually-edited content and exit manual-edit mode"
},
"userRulesEditDicard": {
"message": "صرف‌نظر",
"description": "Will discard manually-edited content and exit manual-edit mode"
},
"userRulesImport": {
"message": "واردکردن از فایل...",
"description": ""
},
"userRulesExport": {
"message": "ذخیره در فایل...",
"description": ""
},
"userRulesFormatHint": {
"message": "See this page for rule syntax.",
"description": ""
},
"userRulesDefaultFileName": {
"message": "my-umatrix-rules.txt",
"description": "default file name to use"
},
"assetsHostsSection": {
"message": "Hosts files",
"description": "header to identify the hosts files section"
},
"hostsFilesPrompt": {
"message": "All hostnames in a hosts file are loaded as blacklisted hostnames in the global scope.",
"description": ""
},
"hostsFilesStats": {
"message": "{{blockedHostnameCount}} distinct blocked hostnames from:",
"description": ""
},
"hostsFilesPerFileStats": {
"message": "{{used}} used out of {{total}}",
"description": ""
},
"hostsFilesLastUpdate": {
"message": "Last update: {{ago}}",
"description": "English: Last update: {{ago}}, where 'ago' will be replaced with something like '2 days ago'"
},
"hostsFilesApplyChanges": {
"message": "اعمال تغییرات",
"description": ""
},
"hostsFilesAutoUpdatePrompt": {
"message": "Auto-update assets",
"description": ""
},
"hostsFilesUpdateNow": {
"message": "اکنون به‌روزآوری شود",
"description": ""
},
"hostsFilesPurgeAll": {
"message": "Purge all caches",
"description": ""
},
"hostsFilesExternalListsHint": {
"message": "Import external assets here: \nOne URL per line; invalid URLs will be silently ignored.",
"description": ""
},
"hostsFilesExternalListsParse": {
"message": "تجزیه‌کردن",
"description": ""
},
"hostsFilesExternalListPurge": {
"message": "purge cache",
"description": ""
},
"hostsFilesExternalListNew": {
"message": "new version available",
"description": ""
},
"hostsFilesExternalListObsolete": {
"message": "منسوخ",
"description": ""
},
"assetsRecipesSection": {
"message": "Ruleset recipes",
"description": "header to identify the ruleset files section"
},
"assetsRecipesSummary": {
"message": "Ruleset recipes are imported from the popup panel <em>on demand</em>, i.e. <b>only</b> through user interaction.",
"description": ""
},
"assetsImportLabel": {
"message": "Import...",
"description": ""
},
"assetsInlineHostsLabel": {
"message": "My hosts",
"description": ""
},
"assetsInlineRecipesLabel": {
"message": "My recipes",
"description": ""
},
"rawSettingsWarning": {
"message": "Warning! Change these raw configuration settings at your own risk.",
"description": ""
},
"aboutChangelog": {
"message": "<a href='https://github.com/geekprojects/nuTensor/releases'>Change log</a>",
"description": ""
},
"aboutStorageUsed": {
"message": "Storage used: {{storageUsed}} bytes",
"description": ""
},
"aboutDoc": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki'>Documentation</a>",
"description": ""
},
"aboutPermissions": {
"message": "<a href='https://github.com/geekprojects/nuTensor/wiki/Permissions'>Permissions</a>",
"description": ""
},
"aboutCode": {
"message": "Source code (GPLv3)",
"description": ""
},
"aboutIssues": {
"message": "مشکلات و مسائل",
"description": "Text for a link to official issue tracker"
},
"aboutContributors": {
"message": "مشارکت کننده‌ها",
"description": "English: Contributors"
},
"aboutCodeContributors": {
"message": "کد:",
"description": ""
},
"aboutIssueContributors": {
"message": "مسائل:",
"description": ""
},
"aboutTranslationContributors": {
"message": "ترجمه‌ها:",
"description": ""
},
"aboutUserDataHeader": {
"message": "داده‌ی شما",
"description": ""
},
"aboutBackupButton": {
"message": "پشتیبان‌گیری در فایل...",
"description": ""
},
"aboutBackupFilename": {
"message": "پشتیبان-umatrix-من.txt",
"description": "default filename to use"
},
"aboutRestoreButton": {
"message": "بازگرداندن از فایل...",
"description": ""
},
"aboutRestoreConfirm": {
"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"
},
"aboutRestoreError": {
"message": "The data could not be read or is invalid",
"description": ""
},
"aboutOr": {
"message": "... یا ...",
"description": "English: ... or ..."
},
"aboutResetButton": {
"message": "بازگشت به تنظیمات پیش‌فرض",
"description": "English: Reset to default settings"
},
"aboutResetConfirm": {
"message": "هشدار! این عمل تمام تنظیمات سفارشی شما را از بین می‌برد. آیا از انجام آن مطمئن هستید؟",
"description": "Message asking user to confirm reset"
},
"mainBlockedPrompt1": {
"message": "nuTensor has prevented the following page from loading:",
"description": "English: nuTensor has prevented the following page from loading:"
},
"mainBlockedPrompt2": {
"message": "به خاطر قانون زیر",
"description": "English: Because of the following rule"
},
"mainBlockedNoParamsPrompt": {
"message": "without parameters",
"description": "label to be used for the parameter-less URL: https://cloud.githubusercontent.com/assets/585534/9832014/bfb1b8f0-593b-11e5-8a27-fba472a5529a.png"
},
"mainBlockedBack": {
"message": "برگرد",
"description": "English: Go back"
},
"mainBlockedClose": {
"message": "بستن",
"description": "English: Close"
},
"commandRevertAll": {
"message": "بازگرداندن همه‌ی تغییرات موقتی",
"description": ""
},
"commandWhitelistPageDomain": {
"message": "Temporarily whitelist page domain",
"description": ""
},
"commandWhitelistAll": {
"message": "Temporarily whitelist all",
"description": ""
},
"commandOpenDashboard": {
"message": "بازکردن داشبورد",
"description": ""
},
"elapsedOneMinuteAgo": {
"message": "یک دقیقه پیش",
"description": "English: a minute ago"
},
"elapsedManyMinutesAgo": {
"message": "{{value}} دقیقه پیش",
"description": "English: {{value}} minutes ago"
},
"elapsedOneHourAgo": {
"message": "یک ساعت پیش",
"description": "English: an hour ago"
},
"elapsedManyHoursAgo": {
"message": "{{value}} ساعت پیش",
"description": "English: {{value}} hours ago"
},
"elapsedOneDayAgo": {
"message": "یک روز پیش",
"description": "English: a day ago"
},
"elapsedManyDaysAgo": {
"message": "{{value}} روز پیش",
"description": "English: {{value}} days ago"
},
"showDashboardButton": {
"message": "داشبورد",
"description": "Appears in Firefox's add-on preferences"
},
"showLoggerButton": {
"message": "Logger",
"description": "Appears in Firefox's add-on preferences"
},
"cloudPush": {
"message": "دخیره در فضای ابری",
"description": "tooltip"
},
"cloudPull": {
"message": "گرفتن از فضای ابری",
"description": "tooltip"
},
"cloudNoData": {
"message": "... ...",
"description": ""
},
"cloudDeviceNamePrompt": {
"message": "نام دستگاه:",
"description": "used as a prompt for the user to provide a custom device name"
},
"genericSubmit": {
"message": "ثبت‌کردن",
"description": "for generic 'submit' buttons"
},
"genericRevert": {
"message": "بازگرداندن",
"description": "for generic 'revert' buttons"
},
"errorCantConnectTo": {
"message": "Network error: Unable to connect to {{url}}",
"description": ""
},
"genericApplyChanges": {
"message": "Apply changes",
"description": "for generic 'Apply changes' buttons"
},
"genericCopyToClipboard": {
"message": "Copy to clipboard",
"description": "Label for buttons used to copy something to the clipboard"
}
}

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

Loading…
Cancel
Save