Merge branch 'develop' into add_security_headers

This commit is contained in:
whew 2021-05-31 12:13:58 +00:00 committed by GitHub
commit eeacd8c507
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
69 changed files with 922 additions and 522 deletions

View File

@ -250,7 +250,7 @@ class Common:
) )
left_spaces = (43 - len(self.version) - 1) // 2 left_spaces = (43 - len(self.version) - 1) // 2
right_spaces = left_spaces right_spaces = left_spaces
if left_spaces + len(self.version) + right_spaces < 43: if left_spaces + len(self.version) + 1 + right_spaces < 43:
right_spaces += 1 right_spaces += 1
print( print(
Back.MAGENTA Back.MAGENTA

View File

@ -88,7 +88,7 @@ var emitMessage = function (socket) {
var updateUsername = function (socket) { var updateUsername = function (socket) {
var username = $('#username').val(); var username = $('#username').val();
if (!checkUsernameExists(username)) { if (!checkUsernameExists(username) && !checkUsernameTooLong(username)) {
$.ajax({ $.ajax({
method: 'POST', method: 'POST',
url: `http://${document.domain}:${location.port}/update-session-username`, url: `http://${document.domain}:${location.port}/update-session-username`,
@ -133,6 +133,15 @@ var checkUsernameExists = function (username) {
return false; return false;
} }
var checkUsernameTooLong = function (username) {
$('#username-error').text('');
if (username.length > 128) {
$('#username-error').text('Please choose a shorter username.');
return true;
}
return false;
}
var getScrollDiffBefore = function () { var getScrollDiffBefore = function () {
return $('#chat').scrollTop() - ($('#chat')[0].scrollHeight - $('#chat')[0].offsetHeight); return $('#chat').scrollTop() - ($('#chat')[0].scrollHeight - $('#chat')[0].offsetHeight);
} }

View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<title>OnionShare: An error occurred</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="{{ static_url_path }}/img/favicon.ico" rel="icon" type="image/x-icon">
<link rel="stylesheet" rel="subresource" type="text/css" href="{{ static_url_path }}/css/style.css" media="all">
</head>
<body>
<div class="info-wrapper">
<div class="info">
<p><img class="logo" src="{{ static_url_path }}/img/logo_large.png" title="OnionShare"></p>
<p class="info-header">Sorry, an unexpected error seems to have occurred, and your request didn't succeed.</p>
</div>
</div>
</body>
</html>

View File

@ -23,6 +23,7 @@
<div class="chat-container no-js"> <div class="chat-container no-js">
<div class="chat-users"> <div class="chat-users">
<div class="editable-username"> <div class="editable-username">
<label for="username">Your username:</label>
<input id="username" value="{{ username }}" /> <input id="username" value="{{ username }}" />
<p id="username-error"></p> <p id="username-error"></p>
</div> </div>

View File

@ -64,6 +64,10 @@ class ReceiveModeWeb:
# This tracks the history id # This tracks the history id
self.cur_history_id = 0 self.cur_history_id = 0
# Whether or not we can send REQUEST_INDIVIDUAL_FILE_STARTED
# and maybe other events when requests come in to this mode
self.supports_file_requests = True
self.define_routes() self.define_routes()
def define_routes(self): def define_routes(self):
@ -71,7 +75,7 @@ class ReceiveModeWeb:
The web app routes for receiving files The web app routes for receiving files
""" """
@self.web.app.route("/") @self.web.app.route("/", methods=["GET"], provide_automatic_options=False)
def index(): def index():
history_id = self.cur_history_id history_id = self.cur_history_id
self.cur_history_id += 1 self.cur_history_id += 1
@ -90,7 +94,7 @@ class ReceiveModeWeb:
title=self.web.settings.get("general", "title") title=self.web.settings.get("general", "title")
) )
@self.web.app.route("/upload", methods=["POST"]) @self.web.app.route("/upload", methods=["POST"], provide_automatic_options=False)
def upload(ajax=False): def upload(ajax=False):
""" """
Handle the upload files POST request, though at this point, the files have Handle the upload files POST request, though at this point, the files have
@ -221,7 +225,7 @@ class ReceiveModeWeb:
title=self.web.settings.get("general", "title"), title=self.web.settings.get("general", "title"),
) )
@self.web.app.route("/upload-ajax", methods=["POST"]) @self.web.app.route("/upload-ajax", methods=["POST"], provide_automatic_options=False)
def upload_ajax_public(): def upload_ajax_public():
if not self.can_upload: if not self.can_upload:
return self.web.error403() return self.web.error403()

View File

@ -52,6 +52,10 @@ class SendBaseModeWeb:
# This tracks the history id # This tracks the history id
self.cur_history_id = 0 self.cur_history_id = 0
# Whether or not we can send REQUEST_INDIVIDUAL_FILE_STARTED
# and maybe other events when requests come in to this mode
self.supports_file_requests = True
self.define_routes() self.define_routes()
self.init() self.init()
@ -207,10 +211,6 @@ class SendBaseModeWeb:
history_id = self.cur_history_id history_id = self.cur_history_id
self.cur_history_id += 1 self.cur_history_id += 1
# Only GET requests are allowed, any other method should fail
if request.method != "GET":
return self.web.error405(history_id)
self.web.add_request( self.web.add_request(
self.web.REQUEST_INDIVIDUAL_FILE_STARTED, self.web.REQUEST_INDIVIDUAL_FILE_STARTED,
path, path,

View File

@ -134,8 +134,8 @@ class ShareModeWeb(SendBaseModeWeb):
The web app routes for sharing files The web app routes for sharing files
""" """
@self.web.app.route("/", defaults={"path": ""}) @self.web.app.route("/", defaults={"path": ""}, methods=["GET"], provide_automatic_options=False)
@self.web.app.route("/<path:path>") @self.web.app.route("/<path:path>", methods=["GET"], provide_automatic_options=False)
def index(path): def index(path):
""" """
Render the template for the onionshare landing page. Render the template for the onionshare landing page.
@ -159,7 +159,7 @@ class ShareModeWeb(SendBaseModeWeb):
return self.render_logic(path) return self.render_logic(path)
@self.web.app.route("/download") @self.web.app.route("/download", methods=["GET"], provide_automatic_options=False)
def download(): def download():
""" """
Download the zip file. Download the zip file.

View File

@ -37,8 +37,8 @@ class WebsiteModeWeb(SendBaseModeWeb):
The web app routes for sharing a website The web app routes for sharing a website
""" """
@self.web.app.route("/", defaults={"path": ""}) @self.web.app.route("/", defaults={"path": ""}, methods=["GET"], provide_automatic_options=False)
@self.web.app.route("/<path:path>") @self.web.app.route("/<path:path>", methods=["GET"], provide_automatic_options=False)
def path_public(path): def path_public(path):
return path_logic(path) return path_logic(path)

506
cli/poetry.lock generated
View File

@ -1,32 +1,33 @@
[[package]] [[package]]
name = "atomicwrites"
version = "1.4.0"
description = "Atomic file writes."
category = "dev" category = "dev"
description = "Atomic file writes."
marker = "sys_platform == \"win32\""
name = "atomicwrites"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.4.0"
[[package]] [[package]]
name = "attrs"
version = "20.3.0"
description = "Classes Without Boilerplate"
category = "dev" category = "dev"
description = "Classes Without Boilerplate"
name = "attrs"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "21.2.0"
[package.extras] [package.extras]
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] dev = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"]
docs = ["furo", "sphinx", "zope.interface"] docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] tests_no_zope = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
[[package]] [[package]]
name = "bidict"
version = "0.21.2"
description = "The bidirectional mapping library for Python."
category = "main" category = "main"
description = "The bidirectional mapping library for Python."
name = "bidict"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "0.21.2"
[package.extras] [package.extras]
coverage = ["coverage (<6)", "pytest-cov (<3)"] coverage = ["coverage (<6)", "pytest-cov (<3)"]
@ -36,56 +37,56 @@ precommit = ["pre-commit (<3)"]
test = ["hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)"] test = ["hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)"]
[[package]] [[package]]
name = "certifi"
version = "2020.12.5"
description = "Python package for providing Mozilla's CA Bundle."
category = "main" category = "main"
description = "Python package for providing Mozilla's CA Bundle."
name = "certifi"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "2020.12.5"
[[package]] [[package]]
name = "chardet" category = "main"
version = "4.0.0"
description = "Universal encoding detector for Python 2 and 3" description = "Universal encoding detector for Python 2 and 3"
category = "main" name = "chardet"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "4.0.0"
[[package]] [[package]]
name = "click" category = "main"
version = "7.1.2"
description = "Composable command line interface toolkit" description = "Composable command line interface toolkit"
category = "main" name = "click"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "7.1.2"
[[package]] [[package]]
name = "colorama" category = "main"
version = "0.4.4"
description = "Cross-platform colored terminal text." description = "Cross-platform colored terminal text."
category = "main" name = "colorama"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.4.4"
[[package]] [[package]]
name = "dnspython"
version = "1.16.0"
description = "DNS toolkit"
category = "main" category = "main"
description = "DNS toolkit"
name = "dnspython"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.16.0"
[package.extras] [package.extras]
DNSSEC = ["pycryptodome", "ecdsa (>=0.13)"] DNSSEC = ["pycryptodome", "ecdsa (>=0.13)"]
IDNA = ["idna (>=2.1)"] IDNA = ["idna (>=2.1)"]
[[package]] [[package]]
name = "eventlet"
version = "0.30.2"
description = "Highly concurrent networking library"
category = "main" category = "main"
description = "Highly concurrent networking library"
name = "eventlet"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "0.31.0"
[package.dependencies] [package.dependencies]
dnspython = ">=1.15.0,<2.0.0" dnspython = ">=1.15.0,<2.0.0"
@ -93,18 +94,18 @@ greenlet = ">=0.3"
six = ">=1.10.0" six = ">=1.10.0"
[[package]] [[package]]
name = "flask"
version = "1.1.2"
description = "A simple framework for building complex web applications."
category = "main" category = "main"
description = "A simple framework for building complex web applications."
name = "flask"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "1.1.4"
[package.dependencies] [package.dependencies]
click = ">=5.1" Jinja2 = ">=2.10.1,<3.0"
itsdangerous = ">=0.24" Werkzeug = ">=0.15,<2.0"
Jinja2 = ">=2.10.1" click = ">=5.1,<8.0"
Werkzeug = ">=0.15" itsdangerous = ">=0.24,<2.0"
[package.extras] [package.extras]
dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
@ -112,86 +113,90 @@ docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-
dotenv = ["python-dotenv"] dotenv = ["python-dotenv"]
[[package]] [[package]]
name = "flask-httpauth"
version = "4.2.0"
description = "Basic and Digest HTTP authentication for Flask routes"
category = "main" category = "main"
description = "Basic and Digest HTTP authentication for Flask routes"
name = "flask-httpauth"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "4.4.0"
[package.dependencies] [package.dependencies]
Flask = "*" Flask = "*"
[[package]] [[package]]
name = "flask-socketio"
version = "5.0.1"
description = "Socket.IO integration for Flask applications"
category = "main" category = "main"
description = "Socket.IO integration for Flask applications"
name = "flask-socketio"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "5.0.1"
[package.dependencies] [package.dependencies]
Flask = ">=0.9" Flask = ">=0.9"
python-socketio = ">=5.0.2" python-socketio = ">=5.0.2"
[[package]] [[package]]
name = "greenlet"
version = "1.0.0"
description = "Lightweight in-process concurrent programming"
category = "main" category = "main"
description = "Lightweight in-process concurrent programming"
name = "greenlet"
optional = false optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
version = "1.1.0"
[package.extras] [package.extras]
docs = ["sphinx"] docs = ["sphinx"]
[[package]] [[package]]
name = "idna"
version = "2.10"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main" category = "main"
description = "Internationalized Domain Names in Applications (IDNA)"
name = "idna"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "2.10"
[[package]] [[package]]
name = "importlib-metadata"
version = "3.10.0"
description = "Read metadata from Python packages"
category = "dev" category = "dev"
description = "Read metadata from Python packages"
marker = "python_version < \"3.8\""
name = "importlib-metadata"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "4.0.1"
[package.dependencies] [package.dependencies]
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
zipp = ">=0.5" zipp = ">=0.5"
[package.dependencies.typing-extensions]
python = "<3.8"
version = ">=3.6.4"
[package.extras] [package.extras]
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
[[package]] [[package]]
name = "iniconfig"
version = "1.1.1"
description = "iniconfig: brain-dead simple config-ini parsing"
category = "dev" category = "dev"
description = "iniconfig: brain-dead simple config-ini parsing"
name = "iniconfig"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "1.1.1"
[[package]] [[package]]
name = "itsdangerous"
version = "1.1.0"
description = "Various helpers to pass data to untrusted environments and back."
category = "main" category = "main"
description = "Various helpers to pass data to untrusted environments and back."
name = "itsdangerous"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.1.0"
[[package]] [[package]]
name = "jinja2"
version = "2.11.3"
description = "A very fast and expressive template engine."
category = "main" category = "main"
description = "A very fast and expressive template engine."
name = "jinja2"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "2.11.3"
[package.dependencies] [package.dependencies]
MarkupSafe = ">=0.23" MarkupSafe = ">=0.23"
@ -200,231 +205,240 @@ MarkupSafe = ">=0.23"
i18n = ["Babel (>=0.8)"] i18n = ["Babel (>=0.8)"]
[[package]] [[package]]
name = "markupsafe"
version = "1.1.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "main" category = "main"
description = "Safely add untrusted strings to HTML/XML markup."
name = "markupsafe"
optional = false optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" python-versions = ">=3.6"
version = "2.0.0"
[[package]] [[package]]
name = "packaging"
version = "20.9"
description = "Core utilities for Python packages"
category = "dev" category = "dev"
description = "Core utilities for Python packages"
name = "packaging"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "20.9"
[package.dependencies] [package.dependencies]
pyparsing = ">=2.0.2" pyparsing = ">=2.0.2"
[[package]] [[package]]
name = "pluggy"
version = "0.13.1"
description = "plugin and hook calling mechanisms for python"
category = "dev" category = "dev"
description = "plugin and hook calling mechanisms for python"
name = "pluggy"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "0.13.1"
[package.dependencies] [package.dependencies]
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} [package.dependencies.importlib-metadata]
python = "<3.8"
version = ">=0.12"
[package.extras] [package.extras]
dev = ["pre-commit", "tox"] dev = ["pre-commit", "tox"]
[[package]] [[package]]
name = "psutil"
version = "5.8.0"
description = "Cross-platform lib for process and system monitoring in Python."
category = "main" category = "main"
description = "Cross-platform lib for process and system monitoring in Python."
name = "psutil"
optional = false optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "5.8.0"
[package.extras] [package.extras]
test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"] test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"]
[[package]] [[package]]
name = "py"
version = "1.10.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
category = "dev" category = "dev"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
name = "py"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.10.0"
[[package]] [[package]]
name = "pycryptodome"
version = "3.10.1"
description = "Cryptographic library for Python"
category = "main" category = "main"
description = "Cryptographic library for Python"
name = "pycryptodome"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "3.10.1"
[[package]] [[package]]
name = "pyparsing"
version = "2.4.7"
description = "Python parsing module"
category = "dev" category = "dev"
description = "Python parsing module"
name = "pyparsing"
optional = false optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
version = "2.4.7"
[[package]] [[package]]
name = "pysocks"
version = "1.7.1"
description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
category = "main" category = "main"
description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
name = "pysocks"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.7.1"
[[package]] [[package]]
name = "pytest"
version = "6.2.3"
description = "pytest: simple powerful testing with Python"
category = "dev" category = "dev"
description = "pytest: simple powerful testing with Python"
name = "pytest"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "6.2.4"
[package.dependencies] [package.dependencies]
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} atomicwrites = ">=1.0"
attrs = ">=19.2.0" attrs = ">=19.2.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""} colorama = "*"
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
iniconfig = "*" iniconfig = "*"
packaging = "*" packaging = "*"
pluggy = ">=0.12,<1.0.0a1" pluggy = ">=0.12,<1.0.0a1"
py = ">=1.8.2" py = ">=1.8.2"
toml = "*" toml = "*"
[package.dependencies.importlib-metadata]
python = "<3.8"
version = ">=0.12"
[package.extras] [package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
[[package]] [[package]]
name = "python-engineio"
version = "4.0.1"
description = "Engine.IO server"
category = "main" category = "main"
description = "Engine.IO server"
name = "python-engineio"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "4.2.0"
[package.extras] [package.extras]
asyncio_client = ["aiohttp (>=3.4)"] asyncio_client = ["aiohttp (>=3.4)"]
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
[[package]] [[package]]
name = "python-socketio"
version = "5.1.0"
description = "Socket.IO server"
category = "main" category = "main"
description = "Socket.IO server"
name = "python-socketio"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "5.3.0"
[package.dependencies] [package.dependencies]
bidict = ">=0.21.0" bidict = ">=0.21.0"
python-engineio = ">=4" python-engineio = ">=4.1.0"
[package.extras] [package.extras]
asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"] asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"]
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
[[package]] [[package]]
name = "requests"
version = "2.25.1"
description = "Python HTTP for Humans."
category = "main" category = "main"
description = "Python HTTP for Humans."
name = "requests"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "2.25.1"
[package.dependencies] [package.dependencies]
certifi = ">=2017.4.17" certifi = ">=2017.4.17"
chardet = ">=3.0.2,<5" chardet = ">=3.0.2,<5"
idna = ">=2.5,<3" idna = ">=2.5,<3"
PySocks = {version = ">=1.5.6,<1.5.7 || >1.5.7", optional = true, markers = "extra == \"socks\""}
urllib3 = ">=1.21.1,<1.27" urllib3 = ">=1.21.1,<1.27"
[package.dependencies.PySocks]
optional = true
version = ">=1.5.6,<1.5.7 || >1.5.7"
[package.extras] [package.extras]
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
[[package]] [[package]]
name = "six"
version = "1.15.0"
description = "Python 2 and 3 compatibility utilities"
category = "main" category = "main"
description = "Python 2 and 3 compatibility utilities"
name = "six"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
version = "1.16.0"
[[package]] [[package]]
name = "stem"
version = "1.8.0"
description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)."
category = "main" category = "main"
description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)."
name = "stem"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "1.8.0"
[[package]] [[package]]
name = "toml"
version = "0.10.2"
description = "Python Library for Tom's Obvious, Minimal Language"
category = "dev" category = "dev"
description = "Python Library for Tom's Obvious, Minimal Language"
name = "toml"
optional = false optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
version = "0.10.2"
[[package]] [[package]]
name = "typing-extensions"
version = "3.7.4.3"
description = "Backported and Experimental Type Hints for Python 3.5+"
category = "dev" category = "dev"
description = "Backported and Experimental Type Hints for Python 3.5+"
marker = "python_version < \"3.8\""
name = "typing-extensions"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "3.10.0.0"
[[package]] [[package]]
name = "unidecode"
version = "1.2.0"
description = "ASCII transliterations of Unicode text"
category = "main" category = "main"
description = "ASCII transliterations of Unicode text"
name = "unidecode"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.2.0"
[[package]] [[package]]
name = "urllib3"
version = "1.26.4"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main" category = "main"
description = "HTTP library with thread-safe connection pooling, file post, and more."
name = "urllib3"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
version = "1.26.4"
[package.extras] [package.extras]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
brotli = ["brotlipy (>=0.6.0)"] brotli = ["brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
[[package]] [[package]]
name = "werkzeug"
version = "1.0.1"
description = "The comprehensive WSGI web application library."
category = "main" category = "main"
description = "The comprehensive WSGI web application library."
name = "werkzeug"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "1.0.1"
[package.extras] [package.extras]
dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"] dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"]
watchdog = ["watchdog"] watchdog = ["watchdog"]
[[package]] [[package]]
name = "zipp"
version = "3.4.1"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "dev" category = "dev"
description = "Backport of pathlib-compatible object wrapper for zip files"
marker = "python_version < \"3.8\""
name = "zipp"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "3.4.1"
[package.extras] [package.extras]
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
[metadata] [metadata]
lock-version = "1.1" content-hash = "e5b4d1dfb1871b971d8240c41fc16cb339246e880c5bf6be07d9303e6156fe93"
python-versions = "^3.6" python-versions = "^3.6"
content-hash = "af196689bfa09fc05b61fc0829e1b0b54888b5503602ff04174bc967d688c180"
[metadata.files] [metadata.files]
atomicwrites = [ atomicwrites = [
@ -432,8 +446,8 @@ atomicwrites = [
{file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
] ]
attrs = [ attrs = [
{file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"},
{file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"},
] ]
bidict = [ bidict = [
{file = "bidict-0.21.2-py2.py3-none-any.whl", hash = "sha256:929d056e8d0d9b17ceda20ba5b24ac388e2a4d39802b87f9f4d3f45ecba070bf"}, {file = "bidict-0.21.2-py2.py3-none-any.whl", hash = "sha256:929d056e8d0d9b17ceda20ba5b24ac388e2a4d39802b87f9f4d3f45ecba070bf"},
@ -460,73 +474,79 @@ dnspython = [
{file = "dnspython-1.16.0.zip", hash = "sha256:36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01"}, {file = "dnspython-1.16.0.zip", hash = "sha256:36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01"},
] ]
eventlet = [ eventlet = [
{file = "eventlet-0.30.2-py2.py3-none-any.whl", hash = "sha256:89cc6dbfef47c4629cefead5fde21c5f2b33464d57f7df5fc5148f8b4de3fbb5"}, {file = "eventlet-0.31.0-py2.py3-none-any.whl", hash = "sha256:27ae41fad9deed9bbf4166f3e3b65acc15d524d42210a518e5877da85a6b8c5d"},
{file = "eventlet-0.30.2.tar.gz", hash = "sha256:1811b122d9a45eb5bafba092d36911bca825f835cb648a862bbf984030acff9d"}, {file = "eventlet-0.31.0.tar.gz", hash = "sha256:b36ec2ecc003de87fc87b93197d77fea528aa0f9204a34fdf3b2f8d0f01e017b"},
] ]
flask = [ flask = [
{file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"}, {file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"},
{file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"}, {file = "Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196"},
] ]
flask-httpauth = [ flask-httpauth = [
{file = "Flask-HTTPAuth-4.2.0.tar.gz", hash = "sha256:8c7e49e53ce7dc14e66fe39b9334e4b7ceb8d0b99a6ba1c3562bb528ef9da84a"}, {file = "Flask-HTTPAuth-4.4.0.tar.gz", hash = "sha256:bcaaa7a35a3cba0b2eafd4f113b3016bf70eb78087456d96484c3c18928b813a"},
{file = "Flask_HTTPAuth-4.2.0-py2.py3-none-any.whl", hash = "sha256:3fcedb99a03985915335a38c35bfee6765cbd66d7f46440fa3b42ae94a90fac7"}, {file = "Flask_HTTPAuth-4.4.0-py2.py3-none-any.whl", hash = "sha256:d9131122cdc5709dda63790f6e9b3142d8101447d424b0b95ffd4ee279f49539"},
] ]
flask-socketio = [ flask-socketio = [
{file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"}, {file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"},
{file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"}, {file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"},
] ]
greenlet = [ greenlet = [
{file = "greenlet-1.0.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:1d1d4473ecb1c1d31ce8fd8d91e4da1b1f64d425c1dc965edc4ed2a63cfa67b2"}, {file = "greenlet-1.1.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:60848099b76467ef09b62b0f4512e7e6f0a2c977357a036de602b653667f5f4c"},
{file = "greenlet-1.0.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:cfd06e0f0cc8db2a854137bd79154b61ecd940dce96fad0cba23fe31de0b793c"}, {file = "greenlet-1.1.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f42ad188466d946f1b3afc0a9e1a266ac8926461ee0786c06baac6bd71f8a6f3"},
{file = "greenlet-1.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:eb333b90036358a0e2c57373f72e7648d7207b76ef0bd00a4f7daad1f79f5203"}, {file = "greenlet-1.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:76ed710b4e953fc31c663b079d317c18f40235ba2e3d55f70ff80794f7b57922"},
{file = "greenlet-1.0.0-cp27-cp27m-win32.whl", hash = "sha256:1a1ada42a1fd2607d232ae11a7b3195735edaa49ea787a6d9e6a53afaf6f3476"}, {file = "greenlet-1.1.0-cp27-cp27m-win32.whl", hash = "sha256:b33b51ab057f8a20b497ffafdb1e79256db0c03ef4f5e3d52e7497200e11f821"},
{file = "greenlet-1.0.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f6f65bf54215e4ebf6b01e4bb94c49180a589573df643735107056f7a910275b"}, {file = "greenlet-1.1.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ed1377feed808c9c1139bdb6a61bcbf030c236dd288d6fca71ac26906ab03ba6"},
{file = "greenlet-1.0.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:f59eded163d9752fd49978e0bab7a1ff21b1b8d25c05f0995d140cc08ac83379"}, {file = "greenlet-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:da862b8f7de577bc421323714f63276acb2f759ab8c5e33335509f0b89e06b8f"},
{file = "greenlet-1.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:875d4c60a6299f55df1c3bb870ebe6dcb7db28c165ab9ea6cdc5d5af36bb33ce"}, {file = "greenlet-1.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5f75e7f237428755d00e7460239a2482fa7e3970db56c8935bd60da3f0733e56"},
{file = "greenlet-1.0.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:1bb80c71de788b36cefb0c3bb6bfab306ba75073dbde2829c858dc3ad70f867c"}, {file = "greenlet-1.1.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:258f9612aba0d06785143ee1cbf2d7361801c95489c0bd10c69d163ec5254a16"},
{file = "greenlet-1.0.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b5f1b333015d53d4b381745f5de842f19fe59728b65f0fbb662dafbe2018c3a5"}, {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d928e2e3c3906e0a29b43dc26d9b3d6e36921eee276786c4e7ad9ff5665c78a"},
{file = "greenlet-1.0.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:5352c15c1d91d22902582e891f27728d8dac3bd5e0ee565b6a9f575355e6d92f"}, {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc407b68e0a874e7ece60f6639df46309376882152345508be94da608cc0b831"},
{file = "greenlet-1.0.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:2c65320774a8cd5fdb6e117c13afa91c4707548282464a18cf80243cf976b3e6"}, {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c557c809eeee215b87e8a7cbfb2d783fb5598a78342c29ade561440abae7d22"},
{file = "greenlet-1.0.0-cp35-cp35m-manylinux2014_ppc64le.whl", hash = "sha256:111cfd92d78f2af0bc7317452bd93a477128af6327332ebf3c2be7df99566683"}, {file = "greenlet-1.1.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:3d13da093d44dee7535b91049e44dd2b5540c2a0e15df168404d3dd2626e0ec5"},
{file = "greenlet-1.0.0-cp35-cp35m-win32.whl", hash = "sha256:cdb90267650c1edb54459cdb51dab865f6c6594c3a47ebd441bc493360c7af70"}, {file = "greenlet-1.1.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b3090631fecdf7e983d183d0fad7ea72cfb12fa9212461a9b708ff7907ffff47"},
{file = "greenlet-1.0.0-cp35-cp35m-win_amd64.whl", hash = "sha256:eac8803c9ad1817ce3d8d15d1bb82c2da3feda6bee1153eec5c58fa6e5d3f770"}, {file = "greenlet-1.1.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:06ecb43b04480e6bafc45cb1b4b67c785e183ce12c079473359e04a709333b08"},
{file = "greenlet-1.0.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:c93d1a71c3fe222308939b2e516c07f35a849c5047f0197442a4d6fbcb4128ee"}, {file = "greenlet-1.1.0-cp35-cp35m-win32.whl", hash = "sha256:944fbdd540712d5377a8795c840a97ff71e7f3221d3fddc98769a15a87b36131"},
{file = "greenlet-1.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:122c63ba795fdba4fc19c744df6277d9cfd913ed53d1a286f12189a0265316dd"}, {file = "greenlet-1.1.0-cp35-cp35m-win_amd64.whl", hash = "sha256:c767458511a59f6f597bfb0032a1c82a52c29ae228c2c0a6865cfeaeaac4c5f5"},
{file = "greenlet-1.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:c5b22b31c947ad8b6964d4ed66776bcae986f73669ba50620162ba7c832a6b6a"}, {file = "greenlet-1.1.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:2325123ff3a8ecc10ca76f062445efef13b6cf5a23389e2df3c02a4a527b89bc"},
{file = "greenlet-1.0.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:4365eccd68e72564c776418c53ce3c5af402bc526fe0653722bc89efd85bf12d"}, {file = "greenlet-1.1.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:598bcfd841e0b1d88e32e6a5ea48348a2c726461b05ff057c1b8692be9443c6e"},
{file = "greenlet-1.0.0-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:da7d09ad0f24270b20f77d56934e196e982af0d0a2446120cb772be4e060e1a2"}, {file = "greenlet-1.1.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:be9768e56f92d1d7cd94185bab5856f3c5589a50d221c166cc2ad5eb134bd1dc"},
{file = "greenlet-1.0.0-cp36-cp36m-win32.whl", hash = "sha256:647ba1df86d025f5a34043451d7c4a9f05f240bee06277a524daad11f997d1e7"}, {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe7eac0d253915116ed0cd160a15a88981a1d194c1ef151e862a5c7d2f853d3"},
{file = "greenlet-1.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:e6e9fdaf6c90d02b95e6b0709aeb1aba5affbbb9ccaea5502f8638e4323206be"}, {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a6b035aa2c5fcf3dbbf0e3a8a5bc75286fc2d4e6f9cfa738788b433ec894919"},
{file = "greenlet-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:62afad6e5fd70f34d773ffcbb7c22657e1d46d7fd7c95a43361de979f0a45aef"}, {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca1c4a569232c063615f9e70ff9a1e2fee8c66a6fb5caf0f5e8b21a396deec3e"},
{file = "greenlet-1.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d3789c1c394944084b5e57c192889985a9f23bd985f6d15728c745d380318128"}, {file = "greenlet-1.1.0-cp36-cp36m-win32.whl", hash = "sha256:3096286a6072553b5dbd5efbefc22297e9d06a05ac14ba017233fedaed7584a8"},
{file = "greenlet-1.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f5e2d36c86c7b03c94b8459c3bd2c9fe2c7dab4b258b8885617d44a22e453fb7"}, {file = "greenlet-1.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c35872b2916ab5a240d52a94314c963476c989814ba9b519bc842e5b61b464bb"},
{file = "greenlet-1.0.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:292e801fcb3a0b3a12d8c603c7cf340659ea27fd73c98683e75800d9fd8f704c"}, {file = "greenlet-1.1.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b97c9a144bbeec7039cca44df117efcbeed7209543f5695201cacf05ba3b5857"},
{file = "greenlet-1.0.0-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:f3dc68272990849132d6698f7dc6df2ab62a88b0d36e54702a8fd16c0490e44f"}, {file = "greenlet-1.1.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:16183fa53bc1a037c38d75fdc59d6208181fa28024a12a7f64bb0884434c91ea"},
{file = "greenlet-1.0.0-cp37-cp37m-win32.whl", hash = "sha256:7cd5a237f241f2764324396e06298b5dee0df580cf06ef4ada0ff9bff851286c"}, {file = "greenlet-1.1.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6b1d08f2e7f2048d77343279c4d4faa7aef168b3e36039cba1917fffb781a8ed"},
{file = "greenlet-1.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0ddd77586553e3daf439aa88b6642c5f252f7ef79a39271c25b1d4bf1b7cbb85"}, {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14927b15c953f8f2d2a8dffa224aa78d7759ef95284d4c39e1745cf36e8cdd2c"},
{file = "greenlet-1.0.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:90b6a25841488cf2cb1c8623a53e6879573010a669455046df5f029d93db51b7"}, {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bdcff4b9051fb1aa4bba4fceff6a5f770c6be436408efd99b76fc827f2a9319"},
{file = "greenlet-1.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ed1d1351f05e795a527abc04a0d82e9aecd3bdf9f46662c36ff47b0b00ecaf06"}, {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70c7dd733a4c56838d1f1781e769081a25fade879510c5b5f0df76956abfa05"},
{file = "greenlet-1.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:94620ed996a7632723a424bccb84b07e7b861ab7bb06a5aeb041c111dd723d36"}, {file = "greenlet-1.1.0-cp37-cp37m-win32.whl", hash = "sha256:0de64d419b1cb1bfd4ea544bedea4b535ef3ae1e150b0f2609da14bbf48a4a5f"},
{file = "greenlet-1.0.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f97d83049715fd9dec7911860ecf0e17b48d8725de01e45de07d8ac0bd5bc378"}, {file = "greenlet-1.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8833e27949ea32d27f7e96930fa29404dd4f2feb13cce483daf52e8842ec246a"},
{file = "greenlet-1.0.0-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:0a77691f0080c9da8dfc81e23f4e3cffa5accf0f5b56478951016d7cfead9196"}, {file = "greenlet-1.1.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:c1580087ab493c6b43e66f2bdd165d9e3c1e86ef83f6c2c44a29f2869d2c5bd5"},
{file = "greenlet-1.0.0-cp38-cp38-win32.whl", hash = "sha256:e1128e022d8dce375362e063754e129750323b67454cac5600008aad9f54139e"}, {file = "greenlet-1.1.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ad80bb338cf9f8129c049837a42a43451fc7c8b57ad56f8e6d32e7697b115505"},
{file = "greenlet-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d4030b04061fdf4cbc446008e238e44936d77a04b2b32f804688ad64197953c"}, {file = "greenlet-1.1.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:a9017ff5fc2522e45562882ff481128631bf35da444775bc2776ac5c61d8bcae"},
{file = "greenlet-1.0.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:f8450d5ef759dbe59f84f2c9f77491bb3d3c44bc1a573746daf086e70b14c243"}, {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7920e3eccd26b7f4c661b746002f5ec5f0928076bd738d38d894bb359ce51927"},
{file = "greenlet-1.0.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:df8053867c831b2643b2c489fe1d62049a98566b1646b194cc815f13e27b90df"}, {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:408071b64e52192869129a205e5b463abda36eff0cebb19d6e63369440e4dc99"},
{file = "greenlet-1.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:df3e83323268594fa9755480a442cabfe8d82b21aba815a71acf1bb6c1776218"}, {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be13a18cec649ebaab835dff269e914679ef329204704869f2f167b2c163a9da"},
{file = "greenlet-1.0.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:181300f826625b7fd1182205b830642926f52bd8cdb08b34574c9d5b2b1813f7"}, {file = "greenlet-1.1.0-cp38-cp38-win32.whl", hash = "sha256:22002259e5b7828b05600a762579fa2f8b33373ad95a0ee57b4d6109d0e589ad"},
{file = "greenlet-1.0.0-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:58ca0f078d1c135ecf1879d50711f925ee238fe773dfe44e206d7d126f5bc664"}, {file = "greenlet-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:206295d270f702bc27dbdbd7651e8ebe42d319139e0d90217b2074309a200da8"},
{file = "greenlet-1.0.0-cp39-cp39-win32.whl", hash = "sha256:5f297cb343114b33a13755032ecf7109b07b9a0020e841d1c3cedff6602cc139"}, {file = "greenlet-1.1.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:096cb0217d1505826ba3d723e8981096f2622cde1eb91af9ed89a17c10aa1f3e"},
{file = "greenlet-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:5d69bbd9547d3bc49f8a545db7a0bd69f407badd2ff0f6e1a163680b5841d2b0"}, {file = "greenlet-1.1.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:03f28a5ea20201e70ab70518d151116ce939b412961c33827519ce620957d44c"},
{file = "greenlet-1.0.0.tar.gz", hash = "sha256:719e169c79255816cdcf6dccd9ed2d089a72a9f6c42273aae12d55e8d35bdcf8"}, {file = "greenlet-1.1.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:7db68f15486d412b8e2cfcd584bf3b3a000911d25779d081cbbae76d71bd1a7e"},
{file = "greenlet-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70bd1bb271e9429e2793902dfd194b653221904a07cbf207c3139e2672d17959"},
{file = "greenlet-1.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f92731609d6625e1cc26ff5757db4d32b6b810d2a3363b0ff94ff573e5901f6f"},
{file = "greenlet-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06d7ac89e6094a0a8f8dc46aa61898e9e1aec79b0f8b47b2400dd51a44dbc832"},
{file = "greenlet-1.1.0-cp39-cp39-win32.whl", hash = "sha256:adb94a28225005890d4cf73648b5131e885c7b4b17bc762779f061844aabcc11"},
{file = "greenlet-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa4230234d02e6f32f189fd40b59d5a968fe77e80f59c9c933384fe8ba535535"},
{file = "greenlet-1.1.0.tar.gz", hash = "sha256:c87df8ae3f01ffb4483c796fe1b15232ce2b219f0b18126948616224d3f658ee"},
] ]
idna = [ idna = [
{file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
] ]
importlib-metadata = [ importlib-metadata = [
{file = "importlib_metadata-3.10.0-py3-none-any.whl", hash = "sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe"}, {file = "importlib_metadata-4.0.1-py3-none-any.whl", hash = "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d"},
{file = "importlib_metadata-3.10.0.tar.gz", hash = "sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a"}, {file = "importlib_metadata-4.0.1.tar.gz", hash = "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581"},
] ]
iniconfig = [ iniconfig = [
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
@ -541,58 +561,40 @@ jinja2 = [
{file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"},
] ]
markupsafe = [ markupsafe = [
{file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, {file = "MarkupSafe-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2efaeb1baff547063bad2b2893a8f5e9c459c4624e1a96644bbba08910ae34e0"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:441ce2a8c17683d97e06447fcbccbdb057cbf587c78eb75ae43ea7858042fe2c"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:45535241baa0fc0ba2a43961a1ac7562ca3257f46c4c3e9c0de38b722be41bd1"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:90053234a6479738fd40d155268af631c7fca33365f964f2208867da1349294b"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:3b54a9c68995ef4164567e2cd1a5e16db5dac30b2a50c39c82db8d4afaf14f63"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:f58b5ba13a5689ca8317b98439fccfbcc673acaaf8241c1869ceea40f5d585bf"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, {file = "MarkupSafe-2.0.0-cp36-cp36m-win32.whl", hash = "sha256:a00dce2d96587651ef4fa192c17e039e8cfab63087c67e7d263a5533c7dad715"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, {file = "MarkupSafe-2.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:007dc055dbce5b1104876acee177dbfd18757e19d562cd440182e1f492e96b95"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, {file = "MarkupSafe-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a08cd07d3c3c17cd33d9e66ea9dee8f8fc1c48e2d11bd88fd2dc515a602c709b"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:3c352ff634e289061711608f5e474ec38dbaa21e3e168820d53d5f4015e5b91b"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:32200f562daaab472921a11cbb63780f1654552ae49518196fc361ed8e12e901"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:fef86115fdad7ae774720d7103aa776144cf9b66673b4afa9bcaa7af990ed07b"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:e79212d09fc0e224d20b43ad44bb0a0a3416d1e04cf6b45fed265114a5d43d20"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:79b2ae94fa991be023832e6bcc00f41dbc8e5fe9d997a02db965831402551730"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, {file = "MarkupSafe-2.0.0-cp37-cp37m-win32.whl", hash = "sha256:3261fae28155e5c8634dd7710635fe540a05b58f160cef7713c7700cb9980e66"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, {file = "MarkupSafe-2.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e4570d16f88c7f3032ed909dc9e905a17da14a1c4cfd92608e3fda4cb1208bbd"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, {file = "MarkupSafe-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f806bfd0f218477d7c46a11d3e52dc7f5fdfaa981b18202b7dc84bbc287463b"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e77e4b983e2441aff0c0d07ee711110c106b625f440292dfe02a2f60c8218bd6"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"}, {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:031bf79a27d1c42f69c276d6221172417b47cb4b31cdc73d362a9bf5a1889b9f"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:83cf0228b2f694dcdba1374d5312f2277269d798e65f40344964f642935feac1"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:4cc563836f13c57f1473bc02d1e01fc37bab70ad4ee6be297d58c1d66bc819bf"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"}, {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:d00a669e4a5bec3ee6dbeeeedd82a405ced19f8aeefb109a012ea88a45afff96"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"}, {file = "MarkupSafe-2.0.0-cp38-cp38-win32.whl", hash = "sha256:161d575fa49395860b75da5135162481768b11208490d5a2143ae6785123e77d"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"}, {file = "MarkupSafe-2.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:58bc9fce3e1557d463ef5cee05391a05745fd95ed660f23c1742c711712c0abb"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, {file = "MarkupSafe-2.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3fb47f97f1d338b943126e90b79cad50d4fcfa0b80637b5a9f468941dbbd9ce5"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, {file = "MarkupSafe-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dab0c685f21f4a6c95bfc2afd1e7eae0033b403dd3d8c1b6d13a652ada75b348"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:664832fb88b8162268928df233f4b12a144a0c78b01d38b81bdcf0fc96668ecb"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"}, {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:df561f65049ed3556e5b52541669310e88713fdae2934845ec3606f283337958"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:24bbc3507fb6dfff663af7900a631f2aca90d5a445f272db5fc84999fa5718bc"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:87de598edfa2230ff274c4de7fcf24c73ffd96208c8e1912d5d0fee459767d75"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"}, {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a19d39b02a24d3082856a5b06490b714a9d4179321225bbf22809ff1e1887cc8"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"}, {file = "MarkupSafe-2.0.0-cp39-cp39-win32.whl", hash = "sha256:4aca81a687975b35e3e80bcf9aa93fe10cd57fac37bf18b2314c186095f57e05"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"}, {file = "MarkupSafe-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:70820a1c96311e02449591cbdf5cd1c6a34d5194d5b55094ab725364375c9eb2"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, {file = "MarkupSafe-2.0.0.tar.gz", hash = "sha256:4fae0677f712ee090721d8b17f412f1cbceefbf0dc180fe91bab3232f38b4527"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
{file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
{file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"},
{file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"},
{file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"},
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
] ]
packaging = [ packaging = [
{file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"},
@ -678,24 +680,24 @@ pysocks = [
{file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"},
] ]
pytest = [ pytest = [
{file = "pytest-6.2.3-py3-none-any.whl", hash = "sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"}, {file = "pytest-6.2.4-py3-none-any.whl", hash = "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"},
{file = "pytest-6.2.3.tar.gz", hash = "sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634"}, {file = "pytest-6.2.4.tar.gz", hash = "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b"},
] ]
python-engineio = [ python-engineio = [
{file = "python-engineio-4.0.1.tar.gz", hash = "sha256:bb575c1a3512b4b5d4706f3071d5cc36e592459e99a47d9a4b7faabeba941377"}, {file = "python-engineio-4.2.0.tar.gz", hash = "sha256:4e97c1189c23923858f5bb6dc47cfcd915005383c3c039ff01c89f2c00d62077"},
{file = "python_engineio-4.0.1-py2.py3-none-any.whl", hash = "sha256:759ec99d91b3d36b29596124c77ba7c063c7ab97685d318fb23a166d9a4b9187"}, {file = "python_engineio-4.2.0-py2.py3-none-any.whl", hash = "sha256:c6c119c2039fcb6f64d260211ca92c0c61b2b888a28678732a961f2aaebcc848"},
] ]
python-socketio = [ python-socketio = [
{file = "python-socketio-5.1.0.tar.gz", hash = "sha256:338cc29abb6f3ca14c88f1f8d05ed27c690df4648f62062b299f92625bbf7093"}, {file = "python-socketio-5.3.0.tar.gz", hash = "sha256:3dcc9785aaeef3a9eeb36c3818095662342744bdcdabd050fe697cdb826a1c2b"},
{file = "python_socketio-5.1.0-py2.py3-none-any.whl", hash = "sha256:8a7ed43bfdbbb266eb8a661a0c9648dc94bcd9689566ae3ee08bf98eca8987af"}, {file = "python_socketio-5.3.0-py2.py3-none-any.whl", hash = "sha256:d74314fd4241342c8a55c4f66d5cfea8f1a8fffd157af216c67e1c3a649a2444"},
] ]
requests = [ requests = [
{file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
{file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
] ]
six = [ six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
] ]
stem = [ stem = [
{file = "stem-1.8.0.tar.gz", hash = "sha256:a0b48ea6224e95f22aa34c0bc3415f0eb4667ddeae3dfb5e32a6920c185568c2"}, {file = "stem-1.8.0.tar.gz", hash = "sha256:a0b48ea6224e95f22aa34c0bc3415f0eb4667ddeae3dfb5e32a6920c185568c2"},
@ -705,9 +707,9 @@ toml = [
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
] ]
typing-extensions = [ typing-extensions = [
{file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"},
{file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"},
{file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"},
] ]
unidecode = [ unidecode = [
{file = "Unidecode-1.2.0-py2.py3-none-any.whl", hash = "sha256:12435ef2fc4cdfd9cf1035a1db7e98b6b047fe591892e81f34e94959591fad00"}, {file = "Unidecode-1.2.0-py2.py3-none-any.whl", hash = "sha256:12435ef2fc4cdfd9cf1035a1db7e98b6b047fe591892e81f34e94959591fad00"},

View File

@ -18,7 +18,7 @@ classifiers = [
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.6" python = "^3.6"
click = "*" click = "*"
flask = "*" flask = "^1.1.4"
flask-httpauth = "*" flask-httpauth = "*"
flask-socketio = "5.0.1" flask-socketio = "5.0.1"
psutil = "*" psutil = "*"

View File

@ -34,7 +34,7 @@ import requests
def main(): def main():
dmg_url = "https://archive.torproject.org/tor-package-archive/torbrowser/10.0.16/TorBrowser-10.0.16-osx64_en-US.dmg" dmg_url = "https://www.torproject.org/dist/torbrowser/10.0.16/TorBrowser-10.0.16-osx64_en-US.dmg"
dmg_filename = "TorBrowser-10.0.16-osx64_en-US.dmg" dmg_filename = "TorBrowser-10.0.16-osx64_en-US.dmg"
expected_dmg_sha256 = ( expected_dmg_sha256 = (
"95bf37d642bd05e9ae4337c5ab9706990bbd98cc885e25ee8ae81b07c7653f0a" "95bf37d642bd05e9ae4337c5ab9706990bbd98cc885e25ee8ae81b07c7653f0a"

View File

@ -33,7 +33,7 @@ import requests
def main(): def main():
exe_url = "https://archive.torproject.org/tor-package-archive/torbrowser/10.0.16/torbrowser-install-10.0.16_en-US.exe" exe_url = "https://www.torproject.org/dist/torbrowser/10.0.16/torbrowser-install-10.0.16_en-US.exe"
exe_filename = "torbrowser-install-10.0.16_en-US.exe" exe_filename = "torbrowser-install-10.0.16_en-US.exe"
expected_exe_sha256 = ( expected_exe_sha256 = (
"1f93d756b4aee1b2df7d85c8d58b626b0d38d89c974c0a02f324ff51f5b23ee1" "1f93d756b4aee1b2df7d85c8d58b626b0d38d89c974c0a02f324ff51f5b23ee1"

View File

@ -84,10 +84,16 @@ class GuiCommon:
header_color = "#4E064F" # purple in light header_color = "#4E064F" # purple in light
title_color = "#333333" # dark gray color in main window title_color = "#333333" # dark gray color in main window
stop_button_color = "#d0011b" # red button color for stopping server stop_button_color = "#d0011b" # red button color for stopping server
new_tab_button_background = "#ffffff"
new_tab_button_border = "#efeff0"
new_tab_button_text_color = "#4e0d4e"
if color_mode == "dark": if color_mode == "dark":
header_color = "#F2F2F2" header_color = "#F2F2F2"
title_color = "#F2F2F2" title_color = "#F2F2F2"
stop_button_color = "#C32F2F" stop_button_color = "#C32F2F"
new_tab_button_background = "#5F5F5F"
new_tab_button_border = "#878787"
new_tab_button_text_color = "#FFFFFF"
return { return {
# OnionShareGui styles # OnionShareGui styles
@ -261,11 +267,17 @@ class GuiCommon:
""", """,
"new_tab_button_text": """ "new_tab_button_text": """
QLabel { QLabel {
border: 1px solid #efeff0; border: 1px solid """
+ new_tab_button_border
+ """;
border-radius: 4px; border-radius: 4px;
background-color: #ffffff; background-color: """
+ new_tab_button_background
+ """;
text-align: center; text-align: center;
color: #4e0d4e; color: """
+ new_tab_button_text_color
+ """;
} }
""", """,
"new_tab_title_text": """ "new_tab_title_text": """

View File

@ -285,5 +285,14 @@
"gui_main_page_chat_button": "চ্যাটিং শুরু করো", "gui_main_page_chat_button": "চ্যাটিং শুরু করো",
"gui_main_page_website_button": "হোস্টিং শুরু করো", "gui_main_page_website_button": "হোস্টিং শুরু করো",
"gui_main_page_receive_button": "গ্রহণ শুরু করো", "gui_main_page_receive_button": "গ্রহণ শুরু করো",
"gui_color_mode_changed_notice": "নতুন রঙের মোড প্রয়োগ করার জন্য OnionShare পুনরারম্ভ করুন।" "gui_color_mode_changed_notice": "নতুন রঙের মোড প্রয়োগ করার জন্য OnionShare পুনরারম্ভ করুন।",
"history_receive_read_message_button": "বার্তা পড়ুন",
"mode_settings_receive_webhook_url_checkbox": "বিজ্ঞপ্তি ওয়েবহুক ব্যবহার করুন",
"mode_settings_receive_disable_files_checkbox": "ফাইল আপলোড করা অক্ষম করুন",
"mode_settings_receive_disable_text_checkbox": "পাঠ্য জমা দেওয়া অক্ষম করুন",
"mode_settings_title_label": "কাস্টম শিরোনাম",
"gui_status_indicator_chat_started": "চ্যাট করছে",
"gui_status_indicator_chat_scheduled": "শিডিউল করা হয়েছে…",
"gui_status_indicator_chat_working": "শুরু…",
"gui_status_indicator_chat_stopped": "চ্যাট করতে প্রস্তুত"
} }

View File

@ -303,6 +303,6 @@
"mode_settings_title_label": "Benutzerdefinierter Titel", "mode_settings_title_label": "Benutzerdefinierter Titel",
"gui_status_indicator_chat_started": "Chatted", "gui_status_indicator_chat_started": "Chatted",
"gui_status_indicator_chat_scheduled": "Geplant…", "gui_status_indicator_chat_scheduled": "Geplant…",
"gui_status_indicator_chat_working": "Starte…", "gui_status_indicator_chat_working": "Startet…",
"gui_status_indicator_chat_stopped": "Bereit zum Chatten" "gui_status_indicator_chat_stopped": "Bereit zum Chatten"
} }

View File

@ -10,7 +10,7 @@
"not_a_readable_file": "Το {0:s} δεν είναι αναγνώσιμο αρχείο.", "not_a_readable_file": "Το {0:s} δεν είναι αναγνώσιμο αρχείο.",
"no_available_port": "Δεν βρέθηκε διαθέσιμη θύρα για να ξεκινήσει η υπηρεσία onion", "no_available_port": "Δεν βρέθηκε διαθέσιμη θύρα για να ξεκινήσει η υπηρεσία onion",
"other_page_loaded": "Η διεύθυνση φορτώθηκε", "other_page_loaded": "Η διεύθυνση φορτώθηκε",
"close_on_autostop_timer": "Τερματίστηκε λόγω της αυτόματης διακοπής", "close_on_autostop_timer": "Τερματίστηκε λόγω αυτόματης διακοπής",
"closing_automatically": "Τερματίστηκε λόγω ολοκλήρωσης της λήψης", "closing_automatically": "Τερματίστηκε λόγω ολοκλήρωσης της λήψης",
"timeout_download_still_running": "Αναμονή ολοκλήρωσης της λήψης", "timeout_download_still_running": "Αναμονή ολοκλήρωσης της λήψης",
"large_filesize": "Προειδοποίηση: Η αποστολή μεγάλου όγκου δεδομένων μπορεί να διαρκέσει ώρες", "large_filesize": "Προειδοποίηση: Η αποστολή μεγάλου όγκου δεδομένων μπορεί να διαρκέσει ώρες",
@ -39,8 +39,8 @@
"gui_share_stop_server": "Τερματισμός διαμοιρασμού", "gui_share_stop_server": "Τερματισμός διαμοιρασμού",
"gui_share_stop_server_autostop_timer": "Διακοπή διαμοιρασμού ({})", "gui_share_stop_server_autostop_timer": "Διακοπή διαμοιρασμού ({})",
"gui_share_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}", "gui_share_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}",
"gui_receive_start_server": "Εκκίνηση κατάστασης λήψης", "gui_receive_start_server": "Εκκίνηση λειτουργίας λήψης",
"gui_receive_stop_server": "Τερματισμός κατάστασης λήψης", "gui_receive_stop_server": "Τερματισμός λειτουργίας λήψης",
"gui_receive_stop_server_autostop_timer": "Διακοπή λειτουργίας λήψης (απομένουν {})", "gui_receive_stop_server_autostop_timer": "Διακοπή λειτουργίας λήψης (απομένουν {})",
"gui_receive_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}", "gui_receive_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}",
"gui_copy_url": "Αντιγραφή διεύθυνσης", "gui_copy_url": "Αντιγραφή διεύθυνσης",
@ -49,9 +49,9 @@
"gui_no_downloads": "Καμία λήψη ως τώρα", "gui_no_downloads": "Καμία λήψη ως τώρα",
"gui_canceled": "Ακυρώθηκε", "gui_canceled": "Ακυρώθηκε",
"gui_copied_url_title": "Η διεύθυνση OnionShare αντιγράφτηκε", "gui_copied_url_title": "Η διεύθυνση OnionShare αντιγράφτηκε",
"gui_copied_url": "Η διεύθυνση OnionShare αντιγράφτηκε στον πίνακα", "gui_copied_url": "Η διεύθυνση OnionShare αντιγράφτηκε στο πρόχειρο",
"gui_copied_hidservauth_title": "Το HidServAuth αντιγράφτηκε", "gui_copied_hidservauth_title": "Το HidServAuth αντιγράφτηκε",
"gui_copied_hidservauth": "Το HidServAuth αντιγράφτηκε στον πίνακα", "gui_copied_hidservauth": "Το HidServAuth αντιγράφτηκε στο πρόχειρο",
"gui_please_wait": "Ξεκινάμε... Κάντε κλικ για ακύρωση.", "gui_please_wait": "Ξεκινάμε... Κάντε κλικ για ακύρωση.",
"gui_download_upload_progress_complete": "%p%, {0:s} πέρασαν.", "gui_download_upload_progress_complete": "%p%, {0:s} πέρασαν.",
"gui_download_upload_progress_starting": "{0:s}, %p% (υπολογισμός)", "gui_download_upload_progress_starting": "{0:s}, %p% (υπολογισμός)",
@ -62,8 +62,8 @@
"gui_receive_quit_warning": "Αυτή τη στιγμή παραλαμβάνονται αρχείων. Είστε σίγουρος/η πώς θέλετε να κλείσετε το OnionShare;", "gui_receive_quit_warning": "Αυτή τη στιγμή παραλαμβάνονται αρχείων. Είστε σίγουρος/η πώς θέλετε να κλείσετε το OnionShare;",
"gui_quit_warning_quit": "Έξοδος", "gui_quit_warning_quit": "Έξοδος",
"gui_quit_warning_dont_quit": "Ακύρωση", "gui_quit_warning_dont_quit": "Ακύρωση",
"error_rate_limit": "Κάποιος/α έκανε πολλαπλές αποτυχημένες προσπάθειες να μαντέψει τον κωδικό σας. Γι' αυτό, το OnionShare σταμάτησε τον server. Ξεκινήστε πάλι το διαμοιρασμό και στείλτε στον/ην παραλήπτη/τρια μια νέα διεύθυνση για διαμοιρασμό.", "error_rate_limit": "Κάποιος/α προσπάθησε να μαντέψει τον κωδικό σας πολλές φορές. Για αυτό, το OnionShare τερματίστηκε αυτόματα. Πρέπει να ξεκινήσετε πάλι τον διαμοιρασμό και να στείλετε στον/ην παραλήπτη/τρια μια νέα διεύθυνση για να διαμοιραστούν αρχεία και μηνύματα μαζί σας.",
"zip_progress_bar_format": "Συμπίεση: %p%", "zip_progress_bar_format": "Γίνεται συμπίεση: %p%",
"error_stealth_not_supported": "Για τη χρήση εξουσιοδότησης πελάτη, χρειάζεστε τουλάχιστον το Tor 0.2.9.1-alpha (ή τον Tor Browser 6.5) και το python3-stem 1.5.0.", "error_stealth_not_supported": "Για τη χρήση εξουσιοδότησης πελάτη, χρειάζεστε τουλάχιστον το Tor 0.2.9.1-alpha (ή τον Tor Browser 6.5) και το python3-stem 1.5.0.",
"error_ephemeral_not_supported": "Το OnionShare απαιτεί τουλάχιστον το Tor 0.2.7.1 και το python3-stem 1.4.0.", "error_ephemeral_not_supported": "Το OnionShare απαιτεί τουλάχιστον το Tor 0.2.7.1 και το python3-stem 1.4.0.",
"gui_settings_window_title": "Ρυθμίσεις", "gui_settings_window_title": "Ρυθμίσεις",
@ -71,7 +71,7 @@
"gui_settings_stealth_option": "Χρήση εξουσιοδότησης πελάτη", "gui_settings_stealth_option": "Χρήση εξουσιοδότησης πελάτη",
"gui_settings_stealth_hidservauth_string": "Έχοντας αποθηκεύσει το ιδιωτικό σας κλειδί για επαναχρησιμοποίηση, μπορείτε πλέον να επιλέξετε την αντιγραφή του HidServAuth σας.", "gui_settings_stealth_hidservauth_string": "Έχοντας αποθηκεύσει το ιδιωτικό σας κλειδί για επαναχρησιμοποίηση, μπορείτε πλέον να επιλέξετε την αντιγραφή του HidServAuth σας.",
"gui_settings_autoupdate_label": "Έλεγχος για νέα έκδοση", "gui_settings_autoupdate_label": "Έλεγχος για νέα έκδοση",
"gui_settings_autoupdate_option": "Ενημερώστε με όταν είναι διαθέσιμη μια νέα έκδοση", "gui_settings_autoupdate_option": "Ενημερώστε με μόλις γίνει διαθέσιμη μια νέα έκδοση",
"gui_settings_autoupdate_timestamp": "Τελευταίος έλεγχος: {}", "gui_settings_autoupdate_timestamp": "Τελευταίος έλεγχος: {}",
"gui_settings_autoupdate_timestamp_never": "Ποτέ", "gui_settings_autoupdate_timestamp_never": "Ποτέ",
"gui_settings_autoupdate_check_button": "Έλεγχος για νέα έκδοση", "gui_settings_autoupdate_check_button": "Έλεγχος για νέα έκδοση",
@ -86,20 +86,20 @@
"gui_settings_connection_type_test_button": "Έλεγχος σύνδεσης με το Tor", "gui_settings_connection_type_test_button": "Έλεγχος σύνδεσης με το Tor",
"gui_settings_control_port_label": "Πύλη ελέγχου", "gui_settings_control_port_label": "Πύλη ελέγχου",
"gui_settings_socket_file_label": "Αρχείο μετάβασης", "gui_settings_socket_file_label": "Αρχείο μετάβασης",
"gui_settings_socks_label": "πύλη SOCKS", "gui_settings_socks_label": "Πύλη SOCKS",
"gui_settings_authenticate_label": "Ρυθμίσεις επαλήθευσης Tor", "gui_settings_authenticate_label": "Ρυθμίσεις επαλήθευσης Tor",
"gui_settings_authenticate_no_auth_option": "Χωρίς επαλήθευση ή επαλήθευση με cookie", "gui_settings_authenticate_no_auth_option": "Χωρίς επαλήθευση ή επαλήθευση με cookie",
"gui_settings_authenticate_password_option": "Κωδικός", "gui_settings_authenticate_password_option": "Κωδικός",
"gui_settings_password_label": "Κωδικός", "gui_settings_password_label": "Κωδικός",
"gui_settings_tor_bridges": "Υποστήριξη Tor bridge", "gui_settings_tor_bridges": "Υποστήριξη γεφυρών Tor",
"gui_settings_tor_bridges_no_bridges_radio_option": "Να μη χρησιμοποιηθούν bridges", "gui_settings_tor_bridges_no_bridges_radio_option": "Να μη χρησιμοποιηθούν γέφυρες",
"gui_settings_tor_bridges_obfs4_radio_option": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports", "gui_settings_tor_bridges_obfs4_radio_option": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports",
"gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports (απαιτείται το obfs4proxy)", "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports (απαιτείται το πρόγραμμα obfs4proxy)",
"gui_settings_tor_bridges_meek_lite_azure_radio_option": "Να χρησιμοποιηθουν τα ενσωματωμένα meek_lite (Azure) pluggable transports", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Να χρησιμοποιηθουν τα ενσωματωμένα meek_lite (Azure) pluggable transports",
"gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα meek_lite (Azure) pluggable transports (απαιτείται το obfs4proxy)", "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα meek_lite (Azure) pluggable transports (απαιτείται το πρόγραμμα obfs4proxy)",
"gui_settings_meek_lite_expensive_warning": "Προσοχή: Τα meek_lite bridges επιβαρύνουν πολύ το Tor Project στη λειτουργία. <br><br> Χρησιμοποιήστε τα μόνο αν δεν μπορείτε να συνδεθείτε κατ' ευθείαν στο Tor μέσω obfs4 transports ή άλλων κανονικών bridges.", "gui_settings_meek_lite_expensive_warning": "Προσοχή: Τα meek_lite bridges επιβαρύνουν πολύ το Tor Project στη λειτουργία. <br><br> Χρησιμοποιήστε τα μόνο αν δεν μπορείτε να συνδεθείτε κατ' ευθείαν στο Tor μέσω obfs4 transports ή άλλων κανονικών bridges.",
"gui_settings_tor_bridges_custom_radio_option": "Χρήση παραμετροποιημένων bridges", "gui_settings_tor_bridges_custom_radio_option": "Χρήση παραμετροποιημένων γεφυρών",
"gui_settings_tor_bridges_custom_label": "Αποκτήστε bridges στο <a href=\"https://bridges.torproject.org/options?lang=el\"> https://bridges.torproject.org</a>", "gui_settings_tor_bridges_custom_label": "Αποκτήστε γέφυρες στο <a href=\"https://bridges.torproject.org/options?lang=el\"> https://bridges.torproject.org</a>",
"gui_settings_tor_bridges_invalid": "Δεν λειτούργησε κάποιο από τα bridges που προσθέσατε.\nΞαναελέγξτε τα ή προσθέστε άλλα.", "gui_settings_tor_bridges_invalid": "Δεν λειτούργησε κάποιο από τα bridges που προσθέσατε.\nΞαναελέγξτε τα ή προσθέστε άλλα.",
"gui_settings_button_save": "Αποθήκευση", "gui_settings_button_save": "Αποθήκευση",
"gui_settings_button_cancel": "Άκυρο", "gui_settings_button_cancel": "Άκυρο",
@ -107,30 +107,30 @@
"gui_settings_autostop_timer_checkbox": "Χρήση χρονομέτρου αυτόματης διακοπής", "gui_settings_autostop_timer_checkbox": "Χρήση χρονομέτρου αυτόματης διακοπής",
"gui_settings_autostop_timer": "Διακοπή διαμοιρασμού σε:", "gui_settings_autostop_timer": "Διακοπή διαμοιρασμού σε:",
"settings_error_unknown": "Αποτυχία σύνδεσης στον ελεγκτή Tor, γιατί οι ρυθμίσεις σας δεν βγάζουν κανένα νόημα.", "settings_error_unknown": "Αποτυχία σύνδεσης στον ελεγκτή Tor, γιατί οι ρυθμίσεις σας δεν βγάζουν κανένα νόημα.",
"settings_error_automatic": "Αδυναμία σύνδεσης στον ελεγκτή Tor. Λειτουργεί ο Tor Browser (διαθέσιμος στο torproject.org) στο παρασκήνιο;", "settings_error_automatic": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor. Λειτουργεί ο Tor Browser (διαθέσιμος στο torproject.org) στο παρασκήνιο;",
"settings_error_socket_port": "Αδυναμία σύνδεσης στον ελεγκτή Tor στις {}:{}.", "settings_error_socket_port": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor στις {}:{}.",
"settings_error_socket_file": "Αποτυχία σύνδεσης στον ελεγκτή Tor χρησιμοποιώντας το αρχείο socket {}.", "settings_error_socket_file": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor χρησιμοποιώντας το αρχείο socket {}.",
"settings_error_auth": "Εγινε σύνδεση με {}:{}, αλλα δεν μπορεί να γίνει πιστοποίηση. Ίσως δεν είναι ελεγκτής Tor;", "settings_error_auth": "Εγινε σύνδεση με {}:{}, αλλα δεν μπορεί να γίνει πιστοποίηση. Ίσως δεν είναι ελεγκτής Tor;",
"settings_error_missing_password": "Έγινε σύνδεση με τον ελεγκτή Tor, αλλά απαιτείται κωδικός για πιστοποίηση.", "settings_error_missing_password": "Έγινε σύνδεση με τον ελεγκτή Tor, αλλά απαιτείται κωδικός για πιστοποίηση.",
"settings_error_unreadable_cookie_file": "Έγινε σύνδεση με τον ελεγκτή Tor, αλλα ο κωδικός πιθανόν να είναι λάθος, ή δεν επιτρέπεται στο χρήστη να διαβάζει αρχεία cookie.", "settings_error_unreadable_cookie_file": "Έγινε σύνδεση με τον ελεγκτή Tor, αλλα ο κωδικός ενδέχεται να είναι λανθασμένος, ή δεν σας επιτρέπεται να διαβάζετε αρχεία cookie.",
"settings_error_bundled_tor_not_supported": "Η χρήση της έκδοσης Tor που περιέχεται στο OnionShare δεν είναι συμβατή με το περιβάλλον προγραμματιστή σε Windows ή macOS.", "settings_error_bundled_tor_not_supported": "Η χρήση της έκδοσης Tor που περιέχεται στο OnionShare δεν είναι συμβατή με το περιβάλλον προγραμματιστή σε Windows ή macOS.",
"settings_error_bundled_tor_timeout": "Η σύνδεση με Tor αργεί αρκετά. Ισως δεν είστε συνδεδεμένοι στο Διαδίκτυο ή το ρολόι του συστήματος δεν είναι σωστό;", "settings_error_bundled_tor_timeout": "Η σύνδεση με Tor καθυστερεί αρκετά. Ίσως δεν είστε συνδεδεμένοι στο Διαδίκτυο ή το ρολόι του συστήματος δεν είναι ρυθμισμένο σωστά;",
"settings_error_bundled_tor_broken": "Το OnionShare δεν μπορεί να συνδεθεί με το Tor στο παρασκήνιο:\n{}", "settings_error_bundled_tor_broken": "Το OnionShare δεν μπορεί να συνδεθεί με το Tor στο παρασκήνιο:\n{}",
"settings_test_success": "Εγινε σύνδεση με τον ελεγκτή Tor.\n\nΕκδοση Tor: {}\nΥποστηρίζει εφήμερες υπηρεσίες onion: {}.\nΥποστηρίζει πιστοποίηση πελάτη: {}.\nΥποστηρίζει νέας γενιάς διευθύνσεις .onion: {}.", "settings_test_success": "Εγινε σύνδεση με τον ελεγκτή Tor.\n\nΕκδοση Tor: {}\nΥποστηρίζει εφήμερες υπηρεσίες onion: {}.\nΥποστηρίζει πιστοποίηση πελάτη: {}.\nΥποστηρίζει διευθύνσεις .onion νέας γενιάς: {}.",
"error_tor_protocol_error": "Υπήρξε σφάλμα με το Tor: {}", "error_tor_protocol_error": "Προέκυψε σφάλμα με το Tor: {}",
"error_tor_protocol_error_unknown": "Υπήρξε άγνωστο σφάλμα με το Tor", "error_tor_protocol_error_unknown": "Υπήρξε άγνωστο σφάλμα με το Tor",
"error_invalid_private_key": "Αυτο το ιδιωτικό κλειδί δεν υποστηρίζεται", "error_invalid_private_key": "Αυτο το ιδιωτικό κλειδί δεν υποστηρίζεται",
"connecting_to_tor": "Γίνεται σύνδεση στο δίκτυο Tor", "connecting_to_tor": "Γίνεται σύνδεση στο δίκτυο Tor",
"update_available": "Βγήκε ενα νέο OnionShare. <a href='{}'>Κάντε κλικ εδώ</a> για να το λάβετε.<br><br>Χρησιμοποιείτε {} και το πιό πρόσφατο είναι το {}.", "update_available": "Υπάρχει διαθέσιμη ενημέρωση. <a href='{}'>Κάντε κλικ εδώ</a> για να την αποκτήσετε.<br><br>Χρησιμοποιείτε την έκδοση {}, ενώ η πιο πρόσφατη είναι η {}.",
"update_error_check_error": "Δεν μπόρεσε να γίνει έλεγχος για νέα έκδοση: ίσως δεν είστε συνδεδεμένοι στο Tor ή ο ιστότοπος OnionShare είναι εκτός λειτουργίας;", "update_error_check_error": "Δεν ήταν δυνατός ο έλεγχος για ενημερώσεις: ίσως δεν είστε συνδεδεμένος στο Tor ή ο ιστότοπος OnionShare είναι εκτός λειτουργίας;",
"update_error_invalid_latest_version": "Δεν μπορεί να γίνει έλεγχος για νέα έκδοση: η ιστοσελίδα OnionShare αναφέρει ότι η τελευταία έκδοση είναι η μη αναγνωρίσιμη \"{}\"…", "update_error_invalid_latest_version": "Δεν ήταν δυνατός ο έλεγχος για ενημερώσεις: η ιστοσελίδα OnionShare αναφέρει ότι η πιο πρόσφατη έκδοση είναι η μη αναγνωρίσιμη \"{}\"…",
"update_not_available": "Έχετε την πιό πρόσφατη έκδοση του OnionShare.", "update_not_available": "Χρησιμοποιείτε την πιο πρόσφατη έκδοση του OnionShare.",
"gui_tor_connection_ask": "Άνοιγμα των ρυθμίσεων για να επιλύσετε την σύνδεση με το Tor;", "gui_tor_connection_ask": "Θα θέλατε να ανοίξετε τις ρυθμίσεις για να φτιάξετε την σύνδεσή σας με το Tor;",
"gui_tor_connection_ask_open_settings": "Ναι", "gui_tor_connection_ask_open_settings": "Ναι",
"gui_tor_connection_ask_quit": "Έξοδος", "gui_tor_connection_ask_quit": "Έξοδος",
"gui_tor_connection_error_settings": "Προσπαθήστε να αλλάξετε τον τρόπο σύνδεσης του OnionShare με το δίκτυο Tor από τις ρυθμίσεις.", "gui_tor_connection_error_settings": "Ίσως να ήταν καλή ιδέα να αλλάξετε τον τρόπο σύνδεσης του OnionShare με το δίκτυο Tor από τις ρυθμίσεις.",
"gui_tor_connection_canceled": "Δεν μπόρεσε να γίνει σύνδεση στο Tor.\n\nΕλέγξτε ότι είστε συνδεδεμένος/η στο Διαδίκτυο, επανεκκινήστε το OnionShare και ρυθμίστε την σύνδεση με το Tor.", "gui_tor_connection_canceled": "Δεν ήταν δυνατή η σύνδεση στο δίκτυο του Tor.\n\nΕλέγξτε ότι είστε συνδεδεμένος/η στο Διαδίκτυο, επανεκκινήστε το OnionShare και ρυθμίστε την σύνδεση με το Tor.",
"gui_tor_connection_lost": "Έγινε αποσύνδεση από το Tor.", "gui_tor_connection_lost": "Έγινε αποσύνδεση από το δίκτυο του Tor.",
"gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.", "gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.",
"gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.", "gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.",
"share_via_onionshare": "Μοιραστείτε μέσω OnionShare", "share_via_onionshare": "Μοιραστείτε μέσω OnionShare",
@ -138,15 +138,15 @@
"gui_save_private_key_checkbox": "Χρήση μόνιμης διεύθυνσης", "gui_save_private_key_checkbox": "Χρήση μόνιμης διεύθυνσης",
"gui_share_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί να <b>κατεβάσει</b> τα αρχεία σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />", "gui_share_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί να <b>κατεβάσει</b> τα αρχεία σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare, μπορεί να <b>ανεβάσει</b> αρχεία στον υπολογιστή σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />", "gui_receive_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare, μπορεί να <b>ανεβάσει</b> αρχεία στον υπολογιστή σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Αυτός ο διαμοιρασμός δεν θα λήξει αυτόματα.<br><br>Οποιοσδήποτε επακόλουθος διαμοιρασμός θα επαναχρησιμοποιήσει αυτή τη διεύθυνση. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)", "gui_url_label_persistent": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.<br><br>Όσοι μοιράζονται αρχεία μαζί σας θα μπορέσουν να ξαναχρησιμοποιήσουν αυτή τη διεύθυνση αργότερα. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)",
"gui_url_label_stay_open": "Αυτός ο διαμοιρασμός δε λήγει αυτόματα.", "gui_url_label_stay_open": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.",
"gui_url_label_onetime": "Αυτός ο διαμοιρασμός θα σταματήσει μετά την πρώτη λήψη.", "gui_url_label_onetime": "Αυτός ο διαμοιρασμός θα σταματήσει μετά την πρώτη λήψη.",
"gui_url_label_onetime_and_persistent": "Αυτός ο διαμοιρασμός δεν θα λήξει αυτόματα.<br><br>Οποιοσδήποτε επακόλουθος διαμοιρασμός θα επαναχρησιμοποιήσει αυτή τη διεύθυνση. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)", "gui_url_label_onetime_and_persistent": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.<br><br>Οποιοσδήποτε επακόλουθος διαμοιρασμός θα επαναχρησιμοποιήσει αυτή τη διεύθυνση. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)",
"gui_status_indicator_share_stopped": "Έτοιμο για διαμοιρασμό", "gui_status_indicator_share_stopped": "Έτοιμο για διαμοιρασμό",
"gui_status_indicator_share_working": "Εκκίνηση…", "gui_status_indicator_share_working": "Εκκίνηση…",
"gui_status_indicator_share_started": "Διαμοιρασμός", "gui_status_indicator_share_started": "Γίνεται αποστολή",
"gui_status_indicator_receive_stopped": "Έτοιμο για λήψη", "gui_status_indicator_receive_stopped": "Έτοιμο για λήψη",
"gui_status_indicator_receive_working": "Ξεκινάει…", "gui_status_indicator_receive_working": "Γίνεται εκκίνηση…",
"gui_status_indicator_receive_started": "Γίνεται λήψη", "gui_status_indicator_receive_started": "Γίνεται λήψη",
"gui_file_info": "{} αρχεία, {}", "gui_file_info": "{} αρχεία, {}",
"gui_file_info_single": "{} αρχείο, {}", "gui_file_info_single": "{} αρχείο, {}",
@ -186,7 +186,7 @@
"gui_add_files": "Προσθήκη αρχείων", "gui_add_files": "Προσθήκη αρχείων",
"gui_add_folder": "Προσθήκη φακέλου", "gui_add_folder": "Προσθήκη φακέλου",
"gui_connect_to_tor_for_onion_settings": "Συνδεθείτε στο Tor για να δείτε τις ρυθμίσεις της υπηρεσίας onion", "gui_connect_to_tor_for_onion_settings": "Συνδεθείτε στο Tor για να δείτε τις ρυθμίσεις της υπηρεσίας onion",
"error_cannot_create_data_dir": "Δεν μπόρεσε να δημιουργηθεί φάκελος δεδομένων OnionShare: {}", "error_cannot_create_data_dir": "Δεν ήταν δυνατή η δημιουργία φακέλου δεδομένων OnionShare: {}",
"receive_mode_data_dir": "Τα αρχεία που στάλθηκαν σε εσας εμφανίζοντε στον φάκελο: {}", "receive_mode_data_dir": "Τα αρχεία που στάλθηκαν σε εσας εμφανίζοντε στον φάκελο: {}",
"gui_settings_data_dir_label": "Αποθήκευση αρχείων σε", "gui_settings_data_dir_label": "Αποθήκευση αρχείων σε",
"gui_settings_data_dir_browse_button": "Περιήγηση", "gui_settings_data_dir_browse_button": "Περιήγηση",
@ -207,7 +207,7 @@
"gui_all_modes_progress_complete": "%p%, πέρασαν {0:s}.", "gui_all_modes_progress_complete": "%p%, πέρασαν {0:s}.",
"gui_all_modes_progress_starting": "{0:s}, %p% (γίνεται υπολογισμός)", "gui_all_modes_progress_starting": "{0:s}, %p% (γίνεται υπολογισμός)",
"gui_all_modes_progress_eta": "{0:s}, Εκτιμώμενος χρόνος: {1:s}, %p%", "gui_all_modes_progress_eta": "{0:s}, Εκτιμώμενος χρόνος: {1:s}, %p%",
"gui_share_mode_no_files": "Δεν στάλθηκαν ακόμα αρχεία", "gui_share_mode_no_files": "Δεν έχουν αποσταλεί ακόμα αρχεία",
"gui_share_mode_autostop_timer_waiting": "Αναμένεται η ολοκλήρωση της αποστολής", "gui_share_mode_autostop_timer_waiting": "Αναμένεται η ολοκλήρωση της αποστολής",
"gui_receive_mode_no_files": "Δεν έχει γίνει λήψη αρχείων ακόμα", "gui_receive_mode_no_files": "Δεν έχει γίνει λήψη αρχείων ακόμα",
"gui_receive_mode_autostop_timer_waiting": "Αναμένεται η ολοκλήρωση της λήψης", "gui_receive_mode_autostop_timer_waiting": "Αναμένεται η ολοκλήρωση της λήψης",
@ -216,7 +216,7 @@
"gui_all_modes_transfer_canceled": "Ακυρώθηκε {}", "gui_all_modes_transfer_canceled": "Ακυρώθηκε {}",
"gui_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματης διακοπής λήγει σε {}", "gui_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματης διακοπής λήγει σε {}",
"gui_start_server_autostart_timer_tooltip": "Το χρονόμετρο αυτόματης εκκίνησης λήγει σε {}", "gui_start_server_autostart_timer_tooltip": "Το χρονόμετρο αυτόματης εκκίνησης λήγει σε {}",
"gui_waiting_to_start": "Προγραμματισμένο να ξεκινήσει σε {}. Πατήστε για ακύρωση.", "gui_waiting_to_start": "Προγραμματισμένο να ξεκινήσει σε {}. Κάντε κλικ για ακύρωση.",
"gui_settings_autostart_timer_checkbox": "Χρήση χρονομέτρου αυτόματης έναρξης", "gui_settings_autostart_timer_checkbox": "Χρήση χρονομέτρου αυτόματης έναρξης",
"gui_settings_autostart_timer": "Εκκίνηση διαμοιρασμού σε:", "gui_settings_autostart_timer": "Εκκίνηση διαμοιρασμού σε:",
"gui_server_autostart_timer_expired": "Η προγραμματισμένη ώρα έχει ήδη παρέλθει. Παρακαλώ ρυθμίστε τη για να ξεκινήσετε το διαμοιρασμό.", "gui_server_autostart_timer_expired": "Η προγραμματισμένη ώρα έχει ήδη παρέλθει. Παρακαλώ ρυθμίστε τη για να ξεκινήσετε το διαμοιρασμό.",
@ -227,16 +227,16 @@
"hours_first_letter": "ώ", "hours_first_letter": "ώ",
"minutes_first_letter": "λ", "minutes_first_letter": "λ",
"seconds_first_letter": "δ", "seconds_first_letter": "δ",
"gui_website_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί <b>να επισκεφτεί</b> την ιστοσελία χρησιμοποιώντας τον <b>Tor Browser</b>: <img src='{}' />", "gui_website_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί <b>να επισκεφτεί</b> την ιστοσελίδα χρησιμοποιώντας τον <b>Tor Browser</b>: <img src='{}' />",
"gui_mode_website_button": "Δημοσίευση ιστοσελίδας", "gui_mode_website_button": "Δημοσίευση ιστοσελίδας",
"gui_website_mode_no_files": "Η ιστοσελίδα δεν έχει μοιραστεί ακόμα", "gui_website_mode_no_files": "Δεν έχει γίνει διαμοιρασμός ιστοσελίδας ακόμα",
"incorrect_password": "Λάθος κωδικός πρόσβασης", "incorrect_password": "Λάθος κωδικός",
"gui_settings_individual_downloads_label": "Απεπιλέξτε για να επιτρέψετε τη λήψη μεμονωμένων αρχείων", "gui_settings_individual_downloads_label": "Απεπιλέξτε για να επιτρέψετε τη λήψη μεμονωμένων αρχείων",
"history_requests_tooltip": "{} αιτήματα δικτύου", "history_requests_tooltip": "{} αιτήματα δικτύου",
"gui_settings_csp_header_disabled_option": "Απενεργοποίηση της κεφαλίδας Content Security Policy", "gui_settings_csp_header_disabled_option": "Απενεργοποίηση της κεφαλίδας Content Security Policy",
"gui_settings_website_label": "Ρυθμίσεις ιστοσελίδας", "gui_settings_website_label": "Ρυθμίσεις ιστοσελίδας",
"gui_open_folder_error": "Το άνοιγμα του φακέλου με xdg-open απέτυχε. Το αρχείο βρίσκετε : {}", "gui_open_folder_error": "Το άνοιγμα του φακέλου με xdg-open απέτυχε. Το αρχείο βρίσκετε : {}",
"gui_receive_flatpak_data_dir": "Επειδή εγκαταστήσατε το OnionShare με χρήση του Flatpak, πρέπει να αποθηκεύσετε τα αρχεία σε φάκελο ~/OnionShare.", "gui_receive_flatpak_data_dir": "Επειδή έχετε εγκαταστήσει το OnionShare μέσω Flatpak, θα πρέπει να αποθηκεύσετε τα αρχεία μέσα σε έναν φάκελο στο ~/OnionShare.",
"gui_chat_stop_server": "Τερματισμός διακομιστή συνομιλίας", "gui_chat_stop_server": "Τερματισμός διακομιστή συνομιλίας",
"gui_chat_start_server": "Έναρξη διακομιστή συνομιλίας", "gui_chat_start_server": "Έναρξη διακομιστή συνομιλίας",
"mode_settings_website_disable_csp_checkbox": "Μην στέλνετε κεφαλίδα με περιεχόμενο από την πολιτικής ασφάλειας σας (επιτρέπει στην ιστοσελίδα σας να χρησιμοποιεί πόρους τρίτων)", "mode_settings_website_disable_csp_checkbox": "Μην στέλνετε κεφαλίδα με περιεχόμενο από την πολιτικής ασφάλειας σας (επιτρέπει στην ιστοσελίδα σας να χρησιμοποιεί πόρους τρίτων)",
@ -252,15 +252,15 @@
"mode_settings_advanced_toggle_hide": "Απόκρυψη προχωρημένων ρυθμίσεων", "mode_settings_advanced_toggle_hide": "Απόκρυψη προχωρημένων ρυθμίσεων",
"mode_settings_advanced_toggle_show": "Εμφάνιση προχωρημένων ρυθμίσεων", "mode_settings_advanced_toggle_show": "Εμφάνιση προχωρημένων ρυθμίσεων",
"gui_quit_warning_cancel": "Άκυρο", "gui_quit_warning_cancel": "Άκυρο",
"gui_quit_warning_description": "Είναι ενεργή η κοινή χρήση σε ορισμένες καρτέλες. Εάν κάνετε έξοδο, όλες οι καρτέλες σας θα κλείσουν. Είστε σίγουροι;", "gui_quit_warning_description": "Είναι ενεργή η κοινή χρήση σε ορισμένες καρτέλες. Εάν κάνετε έξοδο, όλες οι καρτέλες σας θα κλείσουν. Είστε σίγουρος/η;",
"gui_quit_warning_title": "Είστε σίγουροι;", "gui_quit_warning_title": "Είστε σίγουρος/η;",
"gui_close_tab_warning_cancel": "Άκυρο", "gui_close_tab_warning_cancel": "Άκυρο",
"gui_close_tab_warning_close": "Κλείσιμο", "gui_close_tab_warning_close": "Κλείσιμο",
"gui_close_tab_warning_website_description": "Φιλοξενείτε ενεργά έναν ιστότοπο. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;", "gui_close_tab_warning_website_description": "Φιλοξενείτε έναν ιστότοπο. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;",
"gui_close_tab_warning_receive_description": "Η λήψη αρχείων δεν ολοκληρώθηκε. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;", "gui_close_tab_warning_receive_description": "Η λήψη αρχείων δεν έχει ολοκληρωθεί. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;",
"gui_close_tab_warning_share_description": "Η αποστολή αρχείων δεν ολοκληρώθηκε. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;", "gui_close_tab_warning_share_description": "Η αποστολή αρχείων δεν έχει ολοκληρωθεί ακόμα. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;",
"gui_close_tab_warning_persistent_description": "Η καρτέλα δεν είναι μόνιμη. Εάν την κλείσετε, θα χαθεί η διεύθυνση onion που χρησιμοποιεί. Είστε βέβαιοι ότι θέλετε να την κλείσετε;", "gui_close_tab_warning_persistent_description": "Η καρτέλα δεν είναι μόνιμη. Εάν την κλείσετε, θα χαθεί η διεύθυνση onion που χρησιμοποιείτε. Είστε βέβαιοι ότι θέλετε να την κλείσετε;",
"gui_close_tab_warning_title": "Είστε σίγουροι;", "gui_close_tab_warning_title": "Είστε σίγουρος/η;",
"gui_tab_name_chat": "Συνομιλία", "gui_tab_name_chat": "Συνομιλία",
"gui_tab_name_website": "Ιστότοπος", "gui_tab_name_website": "Ιστότοπος",
"gui_tab_name_receive": "Λήψη", "gui_tab_name_receive": "Λήψη",
@ -270,9 +270,9 @@
"gui_main_page_receive_button": "Έναρξη λήψης", "gui_main_page_receive_button": "Έναρξη λήψης",
"gui_main_page_share_button": "Έναρξη διαμοιρασμού", "gui_main_page_share_button": "Έναρξη διαμοιρασμού",
"gui_new_tab_chat_button": "Συνομιλήστε ανώνυμα", "gui_new_tab_chat_button": "Συνομιλήστε ανώνυμα",
"gui_new_tab_website_button": "Φιλοξενήστε έναν ιστότοπο", "gui_new_tab_website_button": "Φιλοξενία ιστότοπου",
"gui_new_tab_receive_button": "Λήψη αρχείων", "gui_new_tab_receive_button": "Λήψη αρχείων",
"gui_new_tab_share_button": "Διαμοιράστε αρχεία", "gui_new_tab_share_button": "Διαμοιρασμός αρχείων",
"gui_new_tab_tooltip": "Άνοιγμα νέας καρτέλας", "gui_new_tab_tooltip": "Άνοιγμα νέας καρτέλας",
"gui_new_tab": "Νέα καρτέλα", "gui_new_tab": "Νέα καρτέλα",
"gui_qr_code_dialog_title": "Κώδικας QR OnionShare", "gui_qr_code_dialog_title": "Κώδικας QR OnionShare",
@ -282,7 +282,7 @@
"error_port_not_available": "Η θύρα OnionShare δεν είναι διαθέσιμη", "error_port_not_available": "Η θύρα OnionShare δεν είναι διαθέσιμη",
"gui_rendezvous_cleanup_quit_early": "Πρόωρη έξοδος", "gui_rendezvous_cleanup_quit_early": "Πρόωρη έξοδος",
"gui_rendezvous_cleanup": "Αναμονή για τερματισμό των κυκλωμάτων του Tor για να βεβαιωθείτε ότι τα αρχεία σας έχουν μεταφερθεί με επιτυχία.\n\nΑυτό μπορεί να διαρκέσει λίγα λεπτά.", "gui_rendezvous_cleanup": "Αναμονή για τερματισμό των κυκλωμάτων του Tor για να βεβαιωθείτε ότι τα αρχεία σας έχουν μεταφερθεί με επιτυχία.\n\nΑυτό μπορεί να διαρκέσει λίγα λεπτά.",
"gui_chat_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση του OnionShare μπορεί <b>να συμμετέχει στο chat</b> με χρήση του <b>Tor Browser</b>: <img src='{}' />", "gui_chat_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση του OnionShare μπορεί <b>να συμμετέχει στο δωμάτιο συνομιλίας</b> με χρήση του <b>Tor Browser</b>: <img src='{}' />",
"gui_color_mode_changed_notice": "Επανεκκινήστε το OnionShare για εφαρμοστεί το νέο χρώμα.", "gui_color_mode_changed_notice": "Επανεκκινήστε το OnionShare για εφαρμοστεί το νέο χρώμα.",
"history_receive_read_message_button": "Ανάγνωση μηνύματος", "history_receive_read_message_button": "Ανάγνωση μηνύματος",
"mode_settings_receive_webhook_url_checkbox": "Χρήση ειδοποίησης webhook", "mode_settings_receive_webhook_url_checkbox": "Χρήση ειδοποίησης webhook",

View File

@ -95,7 +95,7 @@
"settings_error_missing_password": "Vous êtes connecté au contrôleur Tor, mais il exige un mot de passe dauthentification.", "settings_error_missing_password": "Vous êtes connecté au contrôleur Tor, mais il exige un mot de passe dauthentification.",
"settings_error_unreadable_cookie_file": "Vous êtes connecté au contrôleur Tor, mais le mot de passe est peut-être erroné ou votre utilisateur nest pas autorisé à lire le fichier témoin.", "settings_error_unreadable_cookie_file": "Vous êtes connecté au contrôleur Tor, mais le mot de passe est peut-être erroné ou votre utilisateur nest pas autorisé à lire le fichier témoin.",
"settings_error_bundled_tor_not_supported": "Utiliser la version de Tor intégrée à OnionShare ne fonctionne pas en mode développeur sous Windows ou macOS.", "settings_error_bundled_tor_not_supported": "Utiliser la version de Tor intégrée à OnionShare ne fonctionne pas en mode développeur sous Windows ou macOS.",
"settings_error_bundled_tor_timeout": "La connexion à Tor prend trop de temps. Vous nêtes peut-être pas connecté à Internet ou votre horloge système est mal réglée.", "settings_error_bundled_tor_timeout": "La connexion à Tor prend trop de temps. Vous nêtes peut-être pas connecté à Internet ou votre horloge système est-elle mal réglée?",
"settings_error_bundled_tor_broken": "OnionShare na pas réussi à se connecter à Tor :\n{}", "settings_error_bundled_tor_broken": "OnionShare na pas réussi à se connecter à Tor :\n{}",
"error_tor_protocol_error": "Une erreur est survenue avec Tor : {}", "error_tor_protocol_error": "Une erreur est survenue avec Tor : {}",
"error_tor_protocol_error_unknown": "Une erreur inconnue est survenue avec Tor", "error_tor_protocol_error_unknown": "Une erreur inconnue est survenue avec Tor",
@ -300,5 +300,9 @@
"mode_settings_receive_webhook_url_checkbox": "Utiliser un point dancrage Web de notification", "mode_settings_receive_webhook_url_checkbox": "Utiliser un point dancrage Web de notification",
"mode_settings_receive_disable_files_checkbox": "Désactiver le téléversement de fichiers", "mode_settings_receive_disable_files_checkbox": "Désactiver le téléversement de fichiers",
"mode_settings_receive_disable_text_checkbox": "Désactiver lenvoi de texte", "mode_settings_receive_disable_text_checkbox": "Désactiver lenvoi de texte",
"mode_settings_title_label": "Titre personnalisé" "mode_settings_title_label": "Titre personnalisé",
"gui_status_indicator_chat_started": "En conversation",
"gui_status_indicator_chat_scheduled": "Planifié…",
"gui_status_indicator_chat_working": "Démarrage…",
"gui_status_indicator_chat_stopped": "Prêt à dialoguer"
} }

View File

@ -196,5 +196,10 @@
"history_receive_read_message_button": "Ler mensaxe", "history_receive_read_message_button": "Ler mensaxe",
"mode_settings_receive_disable_files_checkbox": "Desactivar a subida de ficheiros", "mode_settings_receive_disable_files_checkbox": "Desactivar a subida de ficheiros",
"mode_settings_receive_disable_text_checkbox": "Desactivar o envío de texto", "mode_settings_receive_disable_text_checkbox": "Desactivar o envío de texto",
"mode_settings_title_label": "Título personalizado" "mode_settings_title_label": "Título personalizado",
"mode_settings_receive_webhook_url_checkbox": "Usar webhook de notificación",
"gui_status_indicator_chat_started": "Conversando",
"gui_status_indicator_chat_scheduled": "Programado…",
"gui_status_indicator_chat_working": "Comezando…",
"gui_status_indicator_chat_stopped": "Preparado para conversar"
} }

View File

@ -21,7 +21,7 @@
"help_verbose": "", "help_verbose": "",
"help_filename": "", "help_filename": "",
"help_config": "", "help_config": "",
"gui_drag_and_drop": "साझा शुरू करने के लिए\nफाइलों एवं फोल्डरों को ड्रैग और ड्रॉप करें", "gui_drag_and_drop": "साझा शुरू करने के लिए फाइलों एवं फोल्डरों को ड्रैग और ड्रॉप करें",
"gui_add": "जोड़ें", "gui_add": "जोड़ें",
"gui_add_files": "फाइल जोड़ें", "gui_add_files": "फाइल जोड़ें",
"gui_add_folder": "फोल्डर जोड़ें", "gui_add_folder": "फोल्डर जोड़ें",
@ -186,5 +186,10 @@
"gui_waiting_to_start": "{} में शुरू होने के लिए शेडयूल है। रद्द करने के लिए क्लिक करें।", "gui_waiting_to_start": "{} में शुरू होने के लिए शेडयूल है। रद्द करने के लिए क्लिक करें।",
"incorrect_password": "पासवर्ड गलत है", "incorrect_password": "पासवर्ड गलत है",
"gui_settings_individual_downloads_label": "विशिष्ट फाइलों के डाउनलोड को मंजूरी देने के लिए अचिन्हित करें", "gui_settings_individual_downloads_label": "विशिष्ट फाइलों के डाउनलोड को मंजूरी देने के लिए अचिन्हित करें",
"gui_settings_csp_header_disabled_option": "सामग्री सुरक्षा नियम हेडर को अक्षम करें" "gui_settings_csp_header_disabled_option": "सामग्री सुरक्षा नियम हेडर को अक्षम करें",
"gui_show_url_qr_code": "क्यूआर कोड दिखाएं",
"gui_chat_stop_server": "चैट सर्वर बंद करें",
"gui_chat_start_server": "चैट सर्वर शुरू करें",
"gui_file_selection_remove_all": "सभी हटाएं",
"gui_remove": "हटाएं"
} }

View File

@ -26,7 +26,7 @@
"help_verbose": "Log OnionShare fouten naar stdout, en web fouten naar disk", "help_verbose": "Log OnionShare fouten naar stdout, en web fouten naar disk",
"help_filename": "Lijst van bestanden of mappen om te delen", "help_filename": "Lijst van bestanden of mappen om te delen",
"help_config": "Instelbaar pad naar JSON configuratie bestand (optioneel)", "help_config": "Instelbaar pad naar JSON configuratie bestand (optioneel)",
"gui_drag_and_drop": "Sleep en zet\nbestanden hier neer om het delen te starten", "gui_drag_and_drop": "Sleep bestanden hier naar toe om het delen te starten",
"gui_add": "Toevoegen", "gui_add": "Toevoegen",
"gui_delete": "Verwijder", "gui_delete": "Verwijder",
"gui_choose_items": "Kies", "gui_choose_items": "Kies",
@ -75,7 +75,7 @@
"gui_settings_button_help": "Help", "gui_settings_button_help": "Help",
"gui_settings_autostop_timer": "Stop het delen om:", "gui_settings_autostop_timer": "Stop het delen om:",
"settings_saved": "Instellingen opgeslagen in {}", "settings_saved": "Instellingen opgeslagen in {}",
"settings_error_unknown": "Kan geen verbinding maken met de Tor controller omdat je instellingen nergens op slaan.", "settings_error_unknown": "Kan geen verbinding maken met de Tor controller, omdat je instellingen nergens op slaan.",
"settings_error_automatic": "Kon geen verbinding maken met de Tor controller. Draait Tor Browser (beschikbaar via torproject.org) in de achtergrond?", "settings_error_automatic": "Kon geen verbinding maken met de Tor controller. Draait Tor Browser (beschikbaar via torproject.org) in de achtergrond?",
"settings_error_socket_port": "Kan geen verbinding maken met de Tor controller op {}:{}.", "settings_error_socket_port": "Kan geen verbinding maken met de Tor controller op {}:{}.",
"settings_error_socket_file": "Kan geen verbinding maken met de Tor controller via socket bestand {}.", "settings_error_socket_file": "Kan geen verbinding maken met de Tor controller via socket bestand {}.",
@ -88,9 +88,9 @@
"settings_test_success": "Verbonden met de Tor controller.\n\nTor versie: {}\nOndersteunt ephemeral onion services: {}.\nOndersteunt client authentication: {}.\nOndersteunt next-gen .onion addresses: {}.", "settings_test_success": "Verbonden met de Tor controller.\n\nTor versie: {}\nOndersteunt ephemeral onion services: {}.\nOndersteunt client authentication: {}.\nOndersteunt next-gen .onion addresses: {}.",
"error_tor_protocol_error": "Er was een fout met Tor: {}", "error_tor_protocol_error": "Er was een fout met Tor: {}",
"connecting_to_tor": "Verbinden met het Tor netwerk", "connecting_to_tor": "Verbinden met het Tor netwerk",
"update_available": "Nieuwe OnionShare is uitgekomen. <a href='{}'>Klik hier</a> om hem te krijgen.<br><br>Jij gebruikt {} and de laatste is {}.", "update_available": "Nieuwe OnionShare is uitgekomen. <a href='{}'>Klik hier</a> om hem te krijgen.<br><br>Jij gebruikt {} en de laatste is {}.",
"update_error_check_error": "Kon niet controleren op een nieuwe versie: de OnionShare website meldt dat de laatste versie de onherkenbare is '{}' is…", "update_error_check_error": "Kon niet controleren op een nieuwe versie: Wellicht ben je niet met Tor verbonden, of de OnionShare website is niet beschikbaar?",
"update_error_invalid_latest_version": "Kon niet controleren op een nieuwe versie: Wellicht ben je niet met Tor verbonden, of de OnionShare website is niet beschikbaar?", "update_error_invalid_latest_version": "Kon niet controleren op een nieuwe versie: de OnionShare website meldt dat de laatste versie de onherkenbare is '{}' is…",
"update_not_available": "Je draait de laatst beschikbare OnionShare.", "update_not_available": "Je draait de laatst beschikbare OnionShare.",
"gui_tor_connection_ask": "Open de instellingen om het verbindingsprobleem met Tor op te lossen?", "gui_tor_connection_ask": "Open de instellingen om het verbindingsprobleem met Tor op te lossen?",
"gui_tor_connection_ask_open_settings": "Ja", "gui_tor_connection_ask_open_settings": "Ja",
@ -139,7 +139,7 @@
"gui_use_legacy_v2_onions_checkbox": "Gebruik ouderwetse adressen", "gui_use_legacy_v2_onions_checkbox": "Gebruik ouderwetse adressen",
"gui_save_private_key_checkbox": "Gebruik een vast adres", "gui_save_private_key_checkbox": "Gebruik een vast adres",
"gui_share_url_description": "<b>1Iedereen</b>2 met dit OnionShare-adres kan je bestanden <b>3binnenhalen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />", "gui_share_url_description": "<b>1Iedereen</b>2 met dit OnionShare-adres kan je bestanden <b>3binnenhalen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />",
"gui_receive_url_description": "<b>1Iedereen</b>2 met dit OnionShare adres kan bestanden op je computer <b>3plaatsen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />7", "gui_receive_url_description": "<b>Iedereen</b> met dit OnionShare adres kan bestanden op je computer <b>plaatsen</b> met de <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Deze share stopt niet vanzelf. <br><br>Elke volgende share zal het adres hergebruiken. (Om eenmalige adressen te gebruiken, zet \"Gebruik vast adres\" uit in de settings.)", "gui_url_label_persistent": "Deze share stopt niet vanzelf. <br><br>Elke volgende share zal het adres hergebruiken. (Om eenmalige adressen te gebruiken, zet \"Gebruik vast adres\" uit in de settings.)",
"gui_url_label_stay_open": "Deze share stopt niet automatisch.", "gui_url_label_stay_open": "Deze share stopt niet automatisch.",
"gui_url_label_onetime": "Deze share stopt na de eerste voltooiïng.", "gui_url_label_onetime": "Deze share stopt na de eerste voltooiïng.",
@ -262,10 +262,10 @@
"mode_settings_client_auth_checkbox": "Gebruik client authorisatie", "mode_settings_client_auth_checkbox": "Gebruik client authorisatie",
"mode_settings_autostop_timer_checkbox": "Stop onion service op een geplande tijd", "mode_settings_autostop_timer_checkbox": "Stop onion service op een geplande tijd",
"mode_settings_autostart_timer_checkbox": "Start onion service op een geplande tijd", "mode_settings_autostart_timer_checkbox": "Start onion service op een geplande tijd",
"mode_settings_persistent_checkbox": "Bewaar dit tabblad, en open het automatisch wanneer ik OnionShare open", "mode_settings_persistent_checkbox": "Bewaar dit tabblad en open het automatisch wanneer ik OnionShare open",
"gui_quit_warning_description": "Delen is actief op sommige van uw tabbladen. Als u stopt, worden al uw tabbladen gesloten. Weet u zeker dat u wilt stoppen?", "gui_quit_warning_description": "Delen is actief op sommige van uw tabbladen. Als u stopt, worden al uw tabbladen gesloten. Weet u zeker dat u wilt stoppen?",
"gui_close_tab_warning_website_description": "U host actief een website. Weet u zeker dat u dit tabblad wilt sluiten?", "gui_close_tab_warning_website_description": "U host actief een website. Weet u zeker dat u dit tabblad wilt sluiten?",
"gui_close_tab_warning_persistent_description": "Dit tabblad is pertinent. Als je het sluit, verlies je het onion adres dat wordt gebruikt. Weet u zeker dat u het wilt sluiten?", "gui_close_tab_warning_persistent_description": "Dit tabblad heeft een vast onion adres. Als je het tabblad sluit wordt het gebruikte onion adres opgeheven. Weet je zeker dat je dit wil sluiten?",
"gui_tab_name_chat": "Chat", "gui_tab_name_chat": "Chat",
"gui_tab_name_website": "Website", "gui_tab_name_website": "Website",
"gui_tab_name_receive": "Ontvang", "gui_tab_name_receive": "Ontvang",
@ -286,5 +286,19 @@
"gui_chat_stop_server": "Stop chat server", "gui_chat_stop_server": "Stop chat server",
"gui_chat_start_server": "Start chat server", "gui_chat_start_server": "Start chat server",
"gui_file_selection_remove_all": "Alles verwijderen", "gui_file_selection_remove_all": "Alles verwijderen",
"gui_remove": "Verwijderen" "gui_remove": "Verwijderen",
"gui_rendezvous_cleanup": "Wachten op Tor circuits om af te sluiten, om zeker te stellen dat je bestanden succesvol zijn verplaatst\n\nDit kan enkele minuten duren.",
"mode_settings_receive_disable_text_checkbox": "Schakel het versturen van tekst uit",
"mode_settings_receive_disable_files_checkbox": "Schakel uploaden bestanden uit",
"mode_settings_receive_webhook_url_checkbox": "Gebruik notificatie webhook",
"gui_rendezvous_cleanup_quit_early": "Vervroegd afsluiten",
"error_port_not_available": "OnionShare poort is niet beschikbaar",
"history_receive_read_message_button": "Lees bericht",
"gui_chat_url_description": "<b>Iedereen</b> met dit OnionShare adres kan<b>in deze chatkamer aansluiten </b> met de <b>Tor Browser</b>: <img src='{}' />",
"mode_settings_title_label": "Handmatige titel",
"gui_status_indicator_chat_working": "Starten…",
"gui_status_indicator_chat_started": "in gesprek",
"gui_status_indicator_chat_scheduled": "Ingepland…",
"gui_color_mode_changed_notice": "Herstart OnionShare om de nieuwe kleur toe te passen.",
"gui_status_indicator_chat_stopped": "Klaar om te chatten"
} }

View File

@ -126,7 +126,7 @@
"settings_error_bundled_tor_timeout": "Подключение к Tor занимает слишком много времени. Возможно, отсутствует подключение к сети Интернет, или у вас неточно настроено системное время?", "settings_error_bundled_tor_timeout": "Подключение к Tor занимает слишком много времени. Возможно, отсутствует подключение к сети Интернет, или у вас неточно настроено системное время?",
"settings_error_bundled_tor_broken": "Ошибка подключения OnionShare к Tor в фоновом режиме:\n{}", "settings_error_bundled_tor_broken": "Ошибка подключения OnionShare к Tor в фоновом режиме:\n{}",
"settings_test_success": "Подключено к контроллеру Tor.\n\nВерсия Tor: {}\nПоддержка временных \"луковых\" сервисов: {}.\nПоддержка аутентификации клиента: {}.\nПоддержка адресов .onion следующего поколения: {}.", "settings_test_success": "Подключено к контроллеру Tor.\n\nВерсия Tor: {}\nПоддержка временных \"луковых\" сервисов: {}.\nПоддержка аутентификации клиента: {}.\nПоддержка адресов .onion следующего поколения: {}.",
"error_tor_protocol_error": "Ошибка Tor: {}", "error_tor_protocol_error": "Была обнаружена ошибка Tor: {}",
"error_tor_protocol_error_unknown": "Неизвестная ошибка Tor", "error_tor_protocol_error_unknown": "Неизвестная ошибка Tor",
"error_invalid_private_key": "Этот приватный ключ не поддерживается", "error_invalid_private_key": "Этот приватный ключ не поддерживается",
"connecting_to_tor": "Подключение к сети Tor", "connecting_to_tor": "Подключение к сети Tor",
@ -283,5 +283,14 @@
"gui_rendezvous_cleanup_quit_early": "Выйти Раньше", "gui_rendezvous_cleanup_quit_early": "Выйти Раньше",
"gui_rendezvous_cleanup": "Ожидается завершение соединений с сетью Tor для подтверждения успешной отправки ваших файлов.\n\nЭто может занять несколько минут.", "gui_rendezvous_cleanup": "Ожидается завершение соединений с сетью Tor для подтверждения успешной отправки ваших файлов.\n\nЭто может занять несколько минут.",
"gui_color_mode_changed_notice": "Перезапустите OnionShare чтобы изменения цветовой гаммы вступили в силу.", "gui_color_mode_changed_notice": "Перезапустите OnionShare чтобы изменения цветовой гаммы вступили в силу.",
"gui_chat_url_description": "<b>Каждый</b> у кого есть этот адрес OnionShare может <b>присоединиться к этому чату</b> при помощи <b>Tor Browser</b>: <img src='{}' />" "gui_chat_url_description": "<b>Каждый</b> у кого есть этот адрес OnionShare может <b>присоединиться к этому чату</b> при помощи <b>Tor Browser</b>: <img src='{}' />",
"history_receive_read_message_button": "Прочитать сообщение",
"mode_settings_receive_webhook_url_checkbox": "Использовать веб-хук для отправки уведомлений",
"mode_settings_receive_disable_files_checkbox": "Запретить передачу файлов",
"mode_settings_receive_disable_text_checkbox": "Запретить отправку текста",
"mode_settings_title_label": "Собственное название",
"gui_status_indicator_chat_started": "Чат активен",
"gui_status_indicator_chat_scheduled": "По расписанию…",
"gui_status_indicator_chat_working": "Запуск…",
"gui_status_indicator_chat_stopped": "Готов начать чат"
} }

View File

@ -263,5 +263,9 @@
"mode_settings_receive_webhook_url_checkbox": "Bildirim web kancası kullan", "mode_settings_receive_webhook_url_checkbox": "Bildirim web kancası kullan",
"mode_settings_receive_disable_files_checkbox": "Dosya yüklemeyi devre dışı bırak", "mode_settings_receive_disable_files_checkbox": "Dosya yüklemeyi devre dışı bırak",
"mode_settings_receive_disable_text_checkbox": "Metin göndermeyi devre dışı bırak", "mode_settings_receive_disable_text_checkbox": "Metin göndermeyi devre dışı bırak",
"mode_settings_title_label": "Özel başlık" "mode_settings_title_label": "Özel başlık",
"gui_status_indicator_chat_started": "Sohbet ediliyor",
"gui_status_indicator_chat_scheduled": "Zamanlandı…",
"gui_status_indicator_chat_working": "Başlatılıyor…",
"gui_status_indicator_chat_stopped": "Sohbet etmeye hazır"
} }

View File

@ -238,5 +238,9 @@
"history_receive_read_message_button": "Читати повідомлення", "history_receive_read_message_button": "Читати повідомлення",
"mode_settings_receive_disable_files_checkbox": "Вимкнути передавання файлів", "mode_settings_receive_disable_files_checkbox": "Вимкнути передавання файлів",
"mode_settings_receive_disable_text_checkbox": "Вимкнути надсилання тексту", "mode_settings_receive_disable_text_checkbox": "Вимкнути надсилання тексту",
"mode_settings_title_label": "Власний заголовок" "mode_settings_title_label": "Власний заголовок",
"gui_status_indicator_chat_scheduled": "Заплановано…",
"gui_status_indicator_chat_started": "Спілкування",
"gui_status_indicator_chat_working": "Початок…",
"gui_status_indicator_chat_stopped": "Готовий до спілкування"
} }

View File

@ -24,7 +24,7 @@ from onionshare_cli.web import Web
from .. import Mode from .. import Mode
from .... import strings from .... import strings
from ....widgets import MinimumWidthWidget from ....widgets import MinimumSizeWidget
from ....gui_common import GuiCommon from ....gui_common import GuiCommon
@ -82,17 +82,16 @@ class ChatMode(Mode):
# Top bar # Top bar
top_bar_layout = QtWidgets.QHBoxLayout() top_bar_layout = QtWidgets.QHBoxLayout()
top_bar_layout.addStretch() # Add space at the top, same height as the toggle history bar in other modes
top_bar_layout.addWidget(MinimumSizeWidget(0, 30))
# Main layout # Main layout
self.main_layout = QtWidgets.QVBoxLayout() self.main_layout = QtWidgets.QVBoxLayout()
self.main_layout.addLayout(top_bar_layout) self.main_layout.addLayout(top_bar_layout)
self.main_layout.addStretch()
self.main_layout.addWidget(header_label) self.main_layout.addWidget(header_label)
self.main_layout.addWidget(self.primary_action) self.main_layout.addWidget(self.primary_action, stretch=1)
self.main_layout.addWidget(self.server_status) self.main_layout.addWidget(self.server_status)
self.main_layout.addStretch() self.main_layout.addWidget(MinimumSizeWidget(700, 0))
self.main_layout.addWidget(MinimumWidthWidget(700))
# Column layout # Column layout
self.column_layout = QtWidgets.QHBoxLayout() self.column_layout = QtWidgets.QHBoxLayout()

View File

@ -72,8 +72,8 @@ class DropHereWidget(QtWidgets.QWidget):
def resize(self, w, h): def resize(self, w, h):
self.setGeometry(0, 0, w, h) self.setGeometry(0, 0, w, h)
self.image_label.setGeometry(0, 0, w, h - 100) self.image_label.setGeometry(0, 0, w, h - 100)
self.header_label.setGeometry(0, 310, w, h - 380) self.header_label.setGeometry(0, 290, w, h - 360)
self.text_label.setGeometry(0, 360, w, h - 400) self.text_label.setGeometry(0, 340, w, h - 380)
class DropCountLabel(QtWidgets.QLabel): class DropCountLabel(QtWidgets.QLabel):

View File

@ -23,7 +23,7 @@ from PySide2 import QtCore, QtWidgets
from ... import strings from ... import strings
class ModeSettingsWidget(QtWidgets.QWidget): class ModeSettingsWidget(QtWidgets.QScrollArea):
""" """
All of the common settings for each mode are in this widget All of the common settings for each mode are in this widget
""" """
@ -177,7 +177,15 @@ class ModeSettingsWidget(QtWidgets.QWidget):
layout.addWidget(self.public_checkbox) layout.addWidget(self.public_checkbox)
layout.addWidget(self.advanced_widget) layout.addWidget(self.advanced_widget)
layout.addWidget(self.toggle_advanced_button) layout.addWidget(self.toggle_advanced_button)
self.setLayout(layout) layout.addStretch()
main_widget = QtWidgets.QWidget()
main_widget.setLayout(layout)
self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
self.setWidgetResizable(True)
self.setFrameShape(QtWidgets.QFrame.NoFrame)
self.setWidget(main_widget)
self.update_ui() self.update_ui()

View File

@ -26,7 +26,7 @@ from onionshare_cli.web import Web
from ..history import History, ToggleHistory, ReceiveHistoryItem from ..history import History, ToggleHistory, ReceiveHistoryItem
from .. import Mode from .. import Mode
from .... import strings from .... import strings
from ....widgets import MinimumWidthWidget, Alert from ....widgets import MinimumSizeWidget, Alert
from ....gui_common import GuiCommon from ....gui_common import GuiCommon
@ -182,8 +182,8 @@ class ReceiveMode(Mode):
self.main_layout = QtWidgets.QVBoxLayout() self.main_layout = QtWidgets.QVBoxLayout()
self.main_layout.addWidget(header_label) self.main_layout.addWidget(header_label)
self.main_layout.addWidget(receive_warning) self.main_layout.addWidget(receive_warning)
self.main_layout.addWidget(self.primary_action) self.main_layout.addWidget(self.primary_action, stretch=1)
self.main_layout.addWidget(MinimumWidthWidget(525)) self.main_layout.addWidget(MinimumSizeWidget(525, 0))
# Row layout # Row layout
content_row = QtWidgets.QHBoxLayout() content_row = QtWidgets.QHBoxLayout()
@ -191,10 +191,8 @@ class ReceiveMode(Mode):
content_row.addWidget(self.image) content_row.addWidget(self.image)
row_layout = QtWidgets.QVBoxLayout() row_layout = QtWidgets.QVBoxLayout()
row_layout.addLayout(top_bar_layout) row_layout.addLayout(top_bar_layout)
row_layout.addStretch() row_layout.addLayout(content_row, stretch=1)
row_layout.addLayout(content_row)
row_layout.addWidget(self.server_status) row_layout.addWidget(self.server_status)
row_layout.addStretch()
# Column layout # Column layout
self.column_layout = QtWidgets.QHBoxLayout() self.column_layout = QtWidgets.QHBoxLayout()

View File

@ -29,7 +29,7 @@ from .. import Mode
from ..file_selection import FileSelection from ..file_selection import FileSelection
from ..history import History, ToggleHistory, ShareHistoryItem from ..history import History, ToggleHistory, ShareHistoryItem
from .... import strings from .... import strings
from ....widgets import MinimumWidthWidget from ....widgets import MinimumSizeWidget
from ....gui_common import GuiCommon from ....gui_common import GuiCommon
@ -160,9 +160,9 @@ class ShareMode(Mode):
self.main_layout = QtWidgets.QVBoxLayout() self.main_layout = QtWidgets.QVBoxLayout()
self.main_layout.addLayout(top_bar_layout) self.main_layout.addLayout(top_bar_layout)
self.main_layout.addLayout(self.file_selection) self.main_layout.addLayout(self.file_selection)
self.main_layout.addWidget(self.primary_action) self.main_layout.addWidget(self.primary_action, stretch=1)
self.main_layout.addWidget(self.server_status) self.main_layout.addWidget(self.server_status)
self.main_layout.addWidget(MinimumWidthWidget(700)) self.main_layout.addWidget(MinimumSizeWidget(700, 0))
# Column layout # Column layout
self.column_layout = QtWidgets.QHBoxLayout() self.column_layout = QtWidgets.QHBoxLayout()

View File

@ -29,7 +29,7 @@ from .. import Mode
from ..file_selection import FileSelection from ..file_selection import FileSelection
from ..history import History, ToggleHistory from ..history import History, ToggleHistory
from .... import strings from .... import strings
from ....widgets import MinimumWidthWidget from ....widgets import MinimumSizeWidget
from ....gui_common import GuiCommon from ....gui_common import GuiCommon
@ -158,9 +158,9 @@ class WebsiteMode(Mode):
self.main_layout = QtWidgets.QVBoxLayout() self.main_layout = QtWidgets.QVBoxLayout()
self.main_layout.addLayout(top_bar_layout) self.main_layout.addLayout(top_bar_layout)
self.main_layout.addLayout(self.file_selection) self.main_layout.addLayout(self.file_selection)
self.main_layout.addWidget(self.primary_action) self.main_layout.addWidget(self.primary_action, stretch=1)
self.main_layout.addWidget(self.server_status) self.main_layout.addWidget(self.server_status)
self.main_layout.addWidget(MinimumWidthWidget(700)) self.main_layout.addWidget(MinimumSizeWidget(700, 0))
# Column layout # Column layout
self.column_layout = QtWidgets.QHBoxLayout() self.column_layout = QtWidgets.QHBoxLayout()

View File

@ -84,14 +84,15 @@ class AddFileDialog(QtWidgets.QFileDialog):
QtWidgets.QDialog.accept(self) QtWidgets.QDialog.accept(self)
class MinimumWidthWidget(QtWidgets.QWidget): class MinimumSizeWidget(QtWidgets.QWidget):
""" """
An empty widget with a minimum width, just to force layouts to behave An empty widget with a minimum width and height, just to force layouts to behave
""" """
def __init__(self, width): def __init__(self, width, height):
super(MinimumWidthWidget, self).__init__() super(MinimumSizeWidget, self).__init__()
self.setMinimumWidth(width) self.setMinimumWidth(width)
self.setMinimumHeight(height)
class Image(qrcode.image.base.BaseImage): class Image(qrcode.image.base.BaseImage):

View File

@ -465,6 +465,20 @@ class GuiBaseTest(unittest.TestCase):
# We should have timed out now # We should have timed out now
self.assertEqual(tab.get_mode().server_status.status, 0) self.assertEqual(tab.get_mode().server_status.status, 0)
def hit_405(self, url, expected_resp, data = {}, methods = [] ):
"""Test various HTTP methods and the response"""
for method in methods:
if method == "put":
r = requests.put(url, data = data)
if method == "post":
r = requests.post(url, data = data)
if method == "delete":
r = requests.delete(url)
if method == "options":
r = requests.options(url)
self.assertTrue(expected_resp in r.text)
self.assertFalse('Werkzeug' in r.headers)
# Grouped tests follow from here # Grouped tests follow from here
def run_all_common_setup_tests(self): def run_all_common_setup_tests(self):

View File

@ -30,7 +30,7 @@ class TestChat(GuiBaseTest):
def change_username(self, tab): def change_username(self, tab):
"""Test that we can change our username""" """Test that we can change our username"""
url = f"http://127.0.0.1:{tab.app.port}/update-session-username" url = f"http://127.0.0.1:{tab.app.port}/update-session-username"
data = {"username":"oniontest"} data = {"username": "oniontest"}
if tab.settings.get("general", "public"): if tab.settings.get("general", "public"):
r = requests.post(url, json=data) r = requests.post(url, json=data)
else: else:
@ -47,7 +47,7 @@ class TestChat(GuiBaseTest):
self.assertTrue(jsonResponse["success"]) self.assertTrue(jsonResponse["success"])
self.assertEqual(jsonResponse["username"], "oniontest") self.assertEqual(jsonResponse["username"], "oniontest")
def run_all_chat_mode_tests(self, tab): def run_all_chat_mode_started_tests(self, tab):
"""Tests in chat mode after starting a chat""" """Tests in chat mode after starting a chat"""
self.server_working_on_start_button_pressed(tab) self.server_working_on_start_button_pressed(tab)
self.server_status_indicator_says_starting(tab) self.server_status_indicator_says_starting(tab)
@ -58,8 +58,9 @@ class TestChat(GuiBaseTest):
self.have_copy_url_button(tab) self.have_copy_url_button(tab)
self.have_show_qr_code_button(tab) self.have_show_qr_code_button(tab)
self.server_status_indicator_says_started(tab) self.server_status_indicator_says_started(tab)
self.view_chat(tab)
self.change_username(tab) def run_all_chat_mode_stopping_tests(self, tab):
"""Tests stopping a chat"""
self.server_is_stopped(tab) self.server_is_stopped(tab)
self.web_server_is_stopped(tab) self.web_server_is_stopped(tab)
self.server_status_indicator_says_closed(tab) self.server_status_indicator_says_closed(tab)
@ -71,5 +72,27 @@ class TestChat(GuiBaseTest):
Test chat mode Test chat mode
""" """
tab = self.new_chat_tab() tab = self.new_chat_tab()
self.run_all_chat_mode_tests(tab) self.run_all_chat_mode_started_tests(tab)
self.view_chat(tab)
self.change_username(tab)
self.run_all_chat_mode_stopping_tests(tab)
self.close_all_tabs()
def test_405_page_returned_for_invalid_methods(self):
"""
Our custom 405 page should return for invalid methods
"""
tab = self.new_chat_tab()
tab.get_mode().mode_settings_widget.public_checkbox.click()
self.run_all_chat_mode_started_tests(tab)
url = f"http://127.0.0.1:{tab.app.port}/"
self.hit_405(
url,
expected_resp="OnionShare: 405 Method Not Allowed",
data={"foo": "bar"},
methods=["put", "post", "delete", "options"],
)
self.run_all_chat_mode_stopping_tests(tab)
self.close_all_tabs() self.close_all_tabs()

View File

@ -286,3 +286,22 @@ class TestReceive(GuiBaseTest):
self.run_all_upload_non_writable_dir_tests(tab) self.run_all_upload_non_writable_dir_tests(tab)
self.close_all_tabs() self.close_all_tabs()
def test_405_page_returned_for_invalid_methods(self):
"""
Our custom 405 page should return for invalid methods
"""
tab = self.new_receive_tab()
tab.get_mode().mode_settings_widget.public_checkbox.click()
self.run_all_common_setup_tests()
self.run_all_receive_mode_setup_tests(tab)
self.upload_file(tab, self.tmpfile_test, "test.txt")
url = f"http://127.0.0.1:{tab.app.port}/"
self.hit_405(url, expected_resp="OnionShare: 405 Method Not Allowed", data = {'foo':'bar'}, methods = ["put", "post", "delete", "options"])
self.server_is_stopped(tab)
self.web_server_is_stopped(tab)
self.server_status_indicator_says_closed(tab)
self.close_all_tabs()

View File

@ -608,3 +608,20 @@ class TestShare(GuiBaseTest):
self.hit_401(tab) self.hit_401(tab)
self.close_all_tabs() self.close_all_tabs()
def test_405_page_returned_for_invalid_methods(self):
"""
Our custom 405 page should return for invalid methods
"""
tab = self.new_share_tab()
tab.get_mode().autostop_sharing_checkbox.click()
tab.get_mode().mode_settings_widget.public_checkbox.click()
self.run_all_common_setup_tests()
self.run_all_share_mode_setup_tests(tab)
self.run_all_share_mode_started_tests(tab)
url = f"http://127.0.0.1:{tab.app.port}/"
self.hit_405(url, expected_resp="OnionShare: 405 Method Not Allowed", data = {'foo':'bar'}, methods = ["put", "post", "delete", "options"])
self.history_widgets_present(tab)
self.close_all_tabs()

View File

@ -99,3 +99,19 @@ class TestWebsite(GuiBaseTest):
tab.get_mode().disable_csp_checkbox.click() tab.get_mode().disable_csp_checkbox.click()
self.run_all_website_mode_download_tests(tab) self.run_all_website_mode_download_tests(tab)
self.close_all_tabs() self.close_all_tabs()
def test_405_page_returned_for_invalid_methods(self):
"""
Our custom 405 page should return for invalid methods
"""
tab = self.new_website_tab()
tab.get_mode().mode_settings_widget.public_checkbox.click()
self.run_all_common_setup_tests()
self.run_all_website_mode_setup_tests(tab)
self.run_all_website_mode_started_tests(tab)
url = f"http://127.0.0.1:{tab.app.port}/"
self.hit_405(url, expected_resp="OnionShare: 405 Method Not Allowed", data = {'foo':'bar'}, methods = ["put", "post", "delete", "options"])
self.close_all_tabs()

View File

@ -3,7 +3,7 @@
VERSION=`cat ../cli/onionshare_cli/resources/version.txt` VERSION=`cat ../cli/onionshare_cli/resources/version.txt`
# Supported locales # Supported locales
LOCALES="de en es el tr uk ru" LOCALES="en de el ru es tr uk"
# Generate English .po files # Generate English .po files
make gettext make gettext

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-10 18:26-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.2\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-20 11:33-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -7,11 +7,11 @@ templates_path = ["_templates"]
exclude_patterns = [] exclude_patterns = []
languages = [ languages = [
("Deutsch", "de"), # German
("English", "en"), # English ("English", "en"), # English
("Español", "es"), # Spanish ("Deutsch", "de"), # German
("Ελληνικά", "el"), # Greek ("Ελληνικά", "el"), # Greek
("Русский", "ru"), # Ukranian ("Русский", "ru"), # Russian
("Español", "es"), # Spanish
("Türkçe", "tr"), # Turkish ("Türkçe", "tr"), # Turkish
("Українська", "uk"), # Ukranian ("Українська", "uk"), # Ukranian
] ]

View File

@ -8,14 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-11-17 10:28+0000\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n"
"Last-Translator: mv87 <mv87@dismail.de>\n" "Last-Translator: Lukas <lukas@fuchtmann.net>\n"
"Language: de\n"
"Language-Team: de <LL@li.org>\n" "Language-Team: de <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n" "Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2 #: ../../source/advanced.rst:2
@ -118,7 +119,7 @@ msgstr ""
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:40
msgid "Custom Titles" msgid "Custom Titles"
msgstr "" msgstr "Benutzerdefinierte Titel"
#: ../../source/advanced.rst:42 #: ../../source/advanced.rst:42
msgid "" msgid ""
@ -126,12 +127,18 @@ msgid ""
"see the default title for the type of service. For example, the default " "see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"." "title of a chat service is \"OnionShare Chat\"."
msgstr "" msgstr ""
"Wenn jemand einen OnionShare-Dienst im Tor-Browser aufruft, sieht er "
"standardmäßig den Standardtitel für den jeweiligen Service-Typ. Der Standard-"
"Titel eines Chat-Dienstes ist beispielsweise \"OnionShare Chat\"."
#: ../../source/advanced.rst:44 #: ../../source/advanced.rst:44
msgid "" msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting " "If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server." "before starting a server."
msgstr "" msgstr ""
"Wenn du einen benutzerdefinierten Titel wählen möchtest, kannst du ihn, "
"bevor du den Service startest, mithilfe der Einstellung \"Benutzerdefinierter"
" Titel\" ändern."
#: ../../source/advanced.rst:47 #: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
@ -413,4 +420,3 @@ msgstr ""
#~ "Windows aufsetzen (siehe " #~ "Windows aufsetzen (siehe "
#~ ":ref:`starting_development`) und dann Folgendes " #~ ":ref:`starting_development`) und dann Folgendes "
#~ "auf der Befehlszeile ausführen::" #~ "auf der Befehlszeile ausführen::"

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-05-11 05:34+0000\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n"
"Last-Translator: Michael Breidenbach <leahc@tutanota.com>\n" "Last-Translator: Lukas <lukas@fuchtmann.net>\n"
"Language-Team: de <LL@li.org>\n" "Language-Team: de <LL@li.org>\n"
"Language: de\n" "Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -161,9 +161,9 @@ msgid ""
"or the person is otherwise exposed to danger, use an encrypted messaging " "or the person is otherwise exposed to danger, use an encrypted messaging "
"app." "app."
msgstr "" msgstr ""
"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und " "Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und schicke "
"schicke sie der Person, die die Dateien empfangen soll. Falls die Dateien" "sie der Person, die die Dateien empfangen soll. Falls die Dateien sicher "
" sicher bleiben sollen oder die Person sonstwie einer Gefahr ausgesetzt " "bleiben sollen oder die Person anderweitig irgendeiner Gefahr ausgesetzt "
"ist, nutze einen verschlüsselten Messenger." "ist, nutze einen verschlüsselten Messenger."
#: ../../source/features.rst:42 #: ../../source/features.rst:42
@ -189,10 +189,16 @@ msgid ""
"anonymous dropbox. Open a receive tab and choose the settings that you " "anonymous dropbox. Open a receive tab and choose the settings that you "
"want." "want."
msgstr "" msgstr ""
"Du kannst OnionShare verwenden, um anderen Personen zu ermöglichen, anonym "
"Dateien und Nachrichten direkt an deinen Computer zu übertragen, wodurch er "
"quasi zu einer Art anonymer Dropbox wird. Öffne dazu den Tab \"Empfangen\" "
"und wähle die gewünschten Einstellungen."
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "You can browse for a folder to save messages and files that get submitted." msgid "You can browse for a folder to save messages and files that get submitted."
msgstr "" msgstr ""
"Du kannst ein Verzeichnis zum Speichern von Nachrichten und Dateien "
"auswählen, die übermittelt werden."
#: ../../source/features.rst:56 #: ../../source/features.rst:56
msgid "" msgid ""
@ -200,6 +206,11 @@ msgid ""
"uploads, and you can check \"Disable uploading files\" if you want to " "uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form." "only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Du kannst die Option \"Übermittlung von Nachrichten deaktiveren\" anwählen, "
"wenn du nur Datei-Uploads zulassen möchtest. Umgekehrt ist das genauso "
"möglich, wenn du nur Nachrichten zulassen möchtest, indem du \"Hochladen von "
"Dateien deaktivieren\" anwählst. So kannst du beispielsweise ein anonymes "
"Kontaktformular errichten."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
@ -215,6 +226,18 @@ msgid ""
"your receive mode service, @webhookbot will send you a message on Keybase" "your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens." " letting you know as soon as it happens."
msgstr "" msgstr ""
"Du kannst die Option \"Benachrichtigungs-Webhook verwenden\" anwählen und "
"eine Webhook-URL festlegen, wenn du über neu eingetroffene Dateien oder "
"Nachrichten bei deinem OnionShare Service benachrichtigt werden willst. Wenn "
"du dieses Feature benutzt, stellt OnionShare jedes Mal, wenn eine neue Datei "
"oder Nachricht eingetroffen ist, eine HTTP POST Anfrage an die von dir "
"festgelegte URL. Wenn du beispielsweise eine verschlüsselte Nachricht über "
"die Messaging-App `Keybase <https://keybase.io/>`_ erhalten willst, starte "
"eine Unterhaltung mit dem `@webhookbot <https://keybase.io/webhookbot>`_, "
"schreibe ``!webhook create onionshare-alerts``und der Bot antwortet mit "
"einer URL. Diese URL verwendest du als Webhook-URL. Wenn nun jemand eine "
"Datei oder Nachricht an deinen OnionShare Service übermittelt, erhältst du "
"eine Nachricht vom @webhookbot auf Keybase."
#: ../../source/features.rst:63 #: ../../source/features.rst:63
msgid "" msgid ""
@ -223,6 +246,10 @@ msgid ""
" be able to submit files and messages which get uploaded to your " " be able to submit files and messages which get uploaded to your "
"computer." "computer."
msgstr "" msgstr ""
"Wenn du bereit bist, klicke auf \"Empfangsmodus starten\". Jetzt startet der "
"OnionShare Service. Jeder, der zu der angezeigte Adresse in seinem Tor "
"Browser navigiert, hat die Möglichkeit, Dateien und Nachrichten direkt an "
"deinen Computer zu übertragen."
#: ../../source/features.rst:67 #: ../../source/features.rst:67
msgid "" msgid ""
@ -230,13 +257,12 @@ msgid ""
"the history and progress of people sending files to you." "the history and progress of people sending files to you."
msgstr "" msgstr ""
"Du kannst außerdem auf den „Nach unten”-Pfeil in der oberen rechten Ecke " "Du kannst außerdem auf den „Nach unten”-Pfeil in der oberen rechten Ecke "
"klicken, um dir den Verlauf und den Fortschritt der Uploads auf deinen " "klicken, um dir den Verlauf und den Fortschritt der an deinen Computer "
"rechner anzeigen zu lassen." "übertragenen Dateien anzeigen zu lassen."
#: ../../source/features.rst:69 #: ../../source/features.rst:69
#, fuzzy
msgid "Here is what it looks like for someone sending you files and messages." msgid "Here is what it looks like for someone sending you files and messages."
msgstr "So sieht es aus, wenn jemand Dateien bei dir hochlädt." msgstr "So sieht es aus, wenn dir jemand Dateien und Nachrichten sendet."
#: ../../source/features.rst:73 #: ../../source/features.rst:73
msgid "" msgid ""
@ -245,6 +271,10 @@ msgid ""
"folder on your computer, automatically organized into separate subfolders" "folder on your computer, automatically organized into separate subfolders"
" based on the time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
"Wenn jemand Dateien oder Nachrichten an deinen Empfangsdienst überträgt, "
"werden sie standardmäßig in einem Ordner namens ``OnionShare`` in dem Home-"
"Verzeichnis deines Computers abgelegt. Die empfangenen Dateien werden "
"automatisch in Unterordnern anhand des Empfangszeitpunktes organisiert."
#: ../../source/features.rst:75 #: ../../source/features.rst:75
msgid "" msgid ""
@ -296,6 +326,8 @@ msgstr ""
#: ../../source/features.rst:84 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare." msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr "" msgstr ""
"Allerdings ist es stets unbedenklich, über OnionShare gesendete "
"Textnachrichten zu öffnen."
#: ../../source/features.rst:87 #: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
@ -314,17 +346,17 @@ msgstr ""
"mit dem, den du sonst regelmäßig benutzt." "mit dem, den du sonst regelmäßig benutzt."
#: ../../source/features.rst:91 #: ../../source/features.rst:91
#, fuzzy
msgid "" msgid ""
"If you intend to put the OnionShare address on your website or social " "If you intend to put the OnionShare address on your website or social "
"media profiles, save the tab (see :ref:`save_tabs`) and run it as a " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_passwords`). It's also a good idea to " "public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)." "give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
"Falls du deine OnionShare-Adresse auf deiner Webseite oder auf deinen " "Falls du deine OnionShare-Adresse auf deiner Webseite oder deinen Social "
"Profilen in den sozialen Medien verbreiten möchtest, solltest du den " "Media-Profilen teilen willst, solltest du den Reiter speichern (siehe "
"Reiter speichern (siehe :ref:`save_tabs`) und den Dienst als öffentlichen" ":ref:`save_tabs`) und den Service als öffentlich festlegen. (siehe :ref:`"
" Dienst betreiben (siehe :ref:`disable password`)." "disable password`). In diesem Fall wäre es auch eine gute Idee, einen "
"benutzerdefinierten Titel festzulegen (siehe :ref:`custom_titles`)."
#: ../../source/features.rst:94 #: ../../source/features.rst:94
msgid "Host a Website" msgid "Host a Website"

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-05-11 14:30+0000\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n"
"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n" "Last-Translator: Mr.Grin <grin-singularity@tutanota.com>\n"
"Language-Team: el <LL@li.org>\n" "Language-Team: el <LL@li.org>\n"
"Language: el\n" "Language: el\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -118,7 +118,7 @@ msgstr ""
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:40
msgid "Custom Titles" msgid "Custom Titles"
msgstr "Προσαρμοσμένοι τίτλοι" msgstr "Προσαρμοσμένοι Τίτλοι"
#: ../../source/advanced.rst:42 #: ../../source/advanced.rst:42
msgid "" msgid ""
@ -126,10 +126,10 @@ msgid ""
"see the default title for the type of service. For example, the default " "see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"." "title of a chat service is \"OnionShare Chat\"."
msgstr "" msgstr ""
"Από προεπιλογή, όταν κάποιος χρησιμοποιήσει μία υπηρεσία OnionShare στο Tor " "Από προεπιλογή, όταν κάποιος φορτώσει μια υπηρεσία OnionShare στο Tor "
"Browser, θα δουν έναν προεπιλεγμένο τίτλο ανάλογα με τον τύπο υπηρεσίας που " "Browser, βλέπει τον προεπιλεγμένο τίτλο για τον τύπο της υπηρεσίας. Για "
"χρησιμοποιούν. Για παράδειγμα, η \"Συνομιλία OnionShare\" αποτελεί τον " "παράδειγμα, ο προεπιλεγμένος τίτλος μιας υπηρεσίας συνομιλίας είναι "
"προεπιλεγμένο τίτλο της υπηρεσίας συνομιλιών." "\"OnionShare Συνομιλία\"."
#: ../../source/advanced.rst:44 #: ../../source/advanced.rst:44
msgid "" msgid ""

View File

@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:43-0800\n" "POT-Creation-Date: 2020-11-15 14:43-0800\n"
"PO-Revision-Date: 2020-12-01 17:29+0000\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n"
"Last-Translator: george k <norhorn@gmail.com>\n" "Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: el\n" "Language: el\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4-dev\n" "X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/develop.rst:2 #: ../../source/develop.rst:2
@ -38,15 +38,15 @@ msgid ""
"<https://keybase.io/team/onionshare>`_. Within the app, go to \"Teams\", " "<https://keybase.io/team/onionshare>`_. Within the app, go to \"Teams\", "
"click \"Join a Team\", and type \"onionshare\"." "click \"Join a Team\", and type \"onionshare\"."
msgstr "" msgstr ""
"Το OnionShare έχει μια ανοιχτή πιστοποιημένη (Keybase) ομάδα για να συζητά " "Το OnionShare έχει ένα κανάλι συζητήσεων στο Keybase για να μπορέσει ο "
"το έργο, να υποβάλει ερωτήσεις, να μοιραστεί ιδέες και σχέδια και να κάνει " "καθένας να μιλήσει για αυτό, να υποβάλει ερωτήσεις, να μοιραστεί ιδέες και "
"σχέδια για μελλοντική ανάπτυξη. (Είναι επίσης ένας εύκολος τρόπος για την " "σχέδια και να κάνει μελλοντικά σχέδια πάνω σε αυτό. (Είναι επίσης ένας "
"αποστολή κρυπτογραφημένων μηνυμάτων στην κοινότητα του OnionShare, όπως οι " "εύκολος τρόπος για την αποστολή κρυπτογραφημένων μηνυμάτων στην κοινότητα "
"διευθύνσεις OnionShare.) Για να χρησιμοποιήσετε το Keybase, κατεβάστε την `" "του OnionShare, όπως οι διευθύνσεις OnionShare.) Για να χρησιμοποιήσετε το "
"εφαρμογή Keybase <https://keybase.io/download>`_ , δημιουργήστε λογαριασμό " "Keybase, κατεβάστε την `εφαρμογή Keybase <https://keybase.io/download>`_ , "
"και `εγγραφείτε στην ομάδα <https://keybase.io/team/onionshare>`_. Μέσα στην " "δημιουργήστε λογαριασμό και `εγγραφείτε στην ομάδα <https://keybase.io/team/"
"εφαρμογή, μεταβείτε στην ενότητα \"Ομάδες\", κάντε κλικ στην επιλογή " "onionshare>`_. Μέσα στην εφαρμογή, μεταβείτε στην ενότητα \"Ομάδες\", κάντε "
"\"Συμμετοχή σε ομάδα\" και πληκτρολογήστε το \"onionshare\"." "κλικ στην επιλογή \"Συμμετοχή σε ομάδα\" και πληκτρολογήστε \"onionshare\"."
#: ../../source/develop.rst:12 #: ../../source/develop.rst:12
msgid "" msgid ""
@ -54,9 +54,9 @@ msgid ""
"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers " "<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
"and and designers to discuss the project." "and and designers to discuss the project."
msgstr "" msgstr ""
"Το OnionShare διαθέτει `λίστα email <https://lists.riseup.net/www/subscribe/" "Το OnionShare διαθέτει `λίστα ηλεκτρονικού ταχυδρομίου <https://lists.riseup."
"onionshare-dev>`_ για προγραμματιστές και σχεδιαστές με σκοό την ανταλλαγή " "net/www/subscribe/onionshare-dev>`_ για προγραμματιστές και σχεδιαστές με "
"απόψεων." "σκοό την ανταλλαγή απόψεων."
#: ../../source/develop.rst:15 #: ../../source/develop.rst:15
msgid "Contributing Code" msgid "Contributing Code"

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-05-11 12:19+0000\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n"
"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n" "Last-Translator: Iris S. <iris.sousouni@protonmail.com>\n"
"Language-Team: el <LL@li.org>\n" "Language-Team: el <LL@li.org>\n"
"Language: el\n" "Language: el\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -50,10 +50,11 @@ msgid ""
"model <https://ssd.eff.org/module/your-security-plan>`_." "model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr "" msgstr ""
"Είστε υπεύθυνος για την ασφαλή κοινή χρήση της διεύθυνσης ιστού " "Είστε υπεύθυνος για την ασφαλή κοινή χρήση της διεύθυνσης ιστού "
"χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, όπως με ένα " "χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, όπως ένα "
"κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο ασφαλές, όπως μη " "κρυπτογραφημένο μήνυμα ή και χρησιμοποιώντας σχετικά λιγότερο ασφαλή "
"κρυπτογραφημένα μηνύματα ηλεκτρονικού ταχυδρομείου, ανάλογα με το `πόσο " "κανάλια, όπως μη κρυπτογραφημένα μηνύματα ηλεκτρονικού ταχυδρομείου, ανάλογα "
"ευπαθής είστε <https://ssd.eff.org/module/your-security-plan>`_." "με το `αν βρίσκεστε σε ρίσκο <https://ssd.eff.org/module/your-security-"
"plan>`_."
#: ../../source/features.rst:14 #: ../../source/features.rst:14
msgid "" msgid ""
@ -71,10 +72,11 @@ msgid ""
"until your laptop is unsuspended and on the Internet again. OnionShare " "until your laptop is unsuspended and on the Internet again. OnionShare "
"works best when working with people in real-time." "works best when working with people in real-time."
msgstr "" msgstr ""
"Εάν εκτελέσετε το OnionShare στο laptop σας για να στείλετε αρχεία και το " "Εάν χρησιμοποιήσετε το OnionShare στον φορητό υπολογιστή σας για να στείλετε "
"laptop τεθεί σε αναστολή πριν η μεταφορά ολοκληρωθεί, δεν θα είναι δυνατή η " "αρχεία και ο υπολογιστής αυτός κλείσει προτού ολοκληρωθεί η μεταφορά, δεν θα "
"ολοκλήρωση της μεταφοράς έως ότου ο φορητός υπολογιστής σας συνδεθεί ξανά " "είναι δυνατή η ολοκλήρωση της έως ότου ο φορητός υπολογιστής σας συνδεθεί "
"στο Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα χωρίς διακοπές." "ξανά στο Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα όταν συνεργάζεστε με "
"τον παραλήπτη σε πραγματικό χρόνο."
#: ../../source/features.rst:18 #: ../../source/features.rst:18
msgid "" msgid ""
@ -201,10 +203,11 @@ msgid ""
"uploads, and you can check \"Disable uploading files\" if you want to " "uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form." "only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Μπορείτε να επιλέξετε \"Απενεργοποίηση υποβολής κειμένου\", εάν θέλετε να " "Μπορείτε να επιλέξετε \"Απενεργοποίηση υποβολής κειμένου\" εάν θέλετε να "
"επιτρέπεται μόνο το ανέβασμα αρχείων. Αντίστοιχα, μπορείτε να επιλέξετε " "επιτρέπετε το ανέβασαμα μόνο αρχείων, και μπορείτε να επιλέξετε "
"\"Απενεργοποίηση φόρτωσης αρχείων\", εάν θέλετε να επιτραπεί μόνο η αποστολή " "\"Απενεργοποίηση υποβολής αρχείων\" εάν θέλετε να επιτρέπετε την υποβολή "
"ανώνυμων μηνυμάτων κειμένου, όπως, για παράδειγμα, σε μία φόρμα επικοινωνίας." "ανώνυμων μηνυμάτων κειμένου, για παράδειγμα για μια ανώνυμη φόρμα "
"επικοινωνίας."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
@ -220,6 +223,18 @@ msgid ""
"your receive mode service, @webhookbot will send you a message on Keybase" "your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens." " letting you know as soon as it happens."
msgstr "" msgstr ""
"Μπορείτε να επιλέξετε \"Χρήση ειδοποίησης webhook\" και έπειτα να επιλέξετε "
"διεύθυνση webhook εάν θέλετε να ειδοποιηθείτε όταν κάποιος υποβάλλει αρχεία "
"ή μηνύματα στην υπηρεσία OnionShare σας. Εάν χρησιμοποιήσετε αυτή τη "
"λειτουργία, το OnionShare θα δώσει αίτημα HTTP POST σε αυτή τη διεύθυνση "
"όποτε κάποιος υποβάλλει αρχεία ή μηνύματα. Για παράδειγμα, έαν θέλετε να "
"λάβετε ένα κρυπτογραφημένο μήνυμα στην εφαρμογή μηνυμάτων `Keybase "
"<https://keybase.io/>`_, μπορείτε να αρχίσετε μία συνομιλία με `@webhookbot "
"<https://keybase.io/webhookbot>`_, να πληκτρολογήσετε ``!webhook create "
"onionshare-alerts``, και θα ανταποκριθεί με μία διεύθυνση. Χρησιμοποιήστε "
"την ως διεύθυνση ειδοποιήσεων webhook. Εάν κάποιος ανεβάσει ένα αρχείο στην "
"υπηρεσία σας με λειτουργία λήψης το @webhookbot θα σας στείλει ένα μήνυμα "
"στο Keybase για να σας ενημερώσει αμέσως."
#: ../../source/features.rst:63 #: ../../source/features.rst:63
msgid "" msgid ""
@ -408,8 +423,8 @@ msgid ""
msgstr "" msgstr ""
"Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία ή " "Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία ή "
"κώδικα JavaScript από CDN, επιλέξτε το πλαίσιο \"Μην στέλνετε την κεφαλίδα " "κώδικα JavaScript από CDN, επιλέξτε το πλαίσιο \"Μην στέλνετε την κεφαλίδα "
"Πολιτικής ασφάλειας περιεχομένου (επιτρέπει στην ιστοσελίδα σας να " "Πολιτικής Ασφαλείας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας να "
"χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσία." "χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσίας."
#: ../../source/features.rst:116 #: ../../source/features.rst:116
msgid "Tips for running a website service" msgid "Tips for running a website service"

View File

@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n"
"PO-Revision-Date: 2020-12-31 19:29+0000\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n"
"Last-Translator: george k <norhorn@gmail.com>\n" "Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n"
"Language-Team: el <LL@li.org>\n" "Language-Team: el <LL@li.org>\n"
"Language: el\n" "Language: el\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.1-dev\n" "X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/install.rst:2 #: ../../source/install.rst:2
@ -47,11 +47,11 @@ msgid ""
"that you'll always use the newest version and run OnionShare inside of a " "that you'll always use the newest version and run OnionShare inside of a "
"sandbox." "sandbox."
msgstr "" msgstr ""
"Υπάρχουν αρκετοί τρόποι εγκατάστασης του OnionShare σε Linux, προτείνεται " "Υπάρχουν αρκετοί τρόποι εγκατάστασης του OnionShare σε Linux. Ο προτιμότερος "
"όμως να γίνει μέσω του `Flatpak <https://flatpak.org/>`_ ή του πακέτου `Snap " "είναι η εγκατάσταση μέσω του `Flatpak <https://flatpak.org/>`_ ή του πακέτου "
"<https://snapcraft.io/>`_. Τα Flatpak και Snap διασφαλίζουν ότι θα " "`Snap <https://snapcraft.io/>`_. Οι τεχνολογίες Flatpak και Snap "
"χρησιμοποιείτε πάντα τη νεότερη έκδοση και ότι θα εκτελείτε το OnionShare " "διασφαλίζουν ότι θα χρησιμοποιείτε πάντα τη νεότερη έκδοση και ότι το "
"μέσα σε sandbox." "OnionShare θα εκτελείται μέσα σε sandbox."
#: ../../source/install.rst:17 #: ../../source/install.rst:17
msgid "" msgid ""
@ -184,7 +184,7 @@ msgstr ""
"την ακεραιότητα του αρχείου (κακόβουλο ή άλλο) και δεν πρέπει να " "την ακεραιότητα του αρχείου (κακόβουλο ή άλλο) και δεν πρέπει να "
"εγκαταστήσετε το πακέτο. (Η ''ΠΡΟΕΙΔΟΠΟΙΗΣΗ:'' που φαίνεται παραπάνω, δεν " "εγκαταστήσετε το πακέτο. (Η ''ΠΡΟΕΙΔΟΠΟΙΗΣΗ:'' που φαίνεται παραπάνω, δεν "
"αποτελεί πρόβλημα με το πακέτο, σημαίνει μόνο ότι δεν έχετε ήδη ορίσει " "αποτελεί πρόβλημα με το πακέτο, σημαίνει μόνο ότι δεν έχετε ήδη ορίσει "
"κανένα επίπεδο 'εμπιστοσύνης' του κλειδιού PGP του Micah)." "κανένα επίπεδο 'εμπιστοσύνης' του κλειδιού PGP του Micah.)"
#: ../../source/install.rst:71 #: ../../source/install.rst:71
msgid "" msgid ""

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n"
"PO-Revision-Date: 2021-03-10 10:02+0000\n" "PO-Revision-Date: 2021-05-21 21:32+0000\n"
"Last-Translator: AO Localisation Lab <ao@localizationlab.org>\n" "Last-Translator: AO Localisation Lab <ao@localizationlab.org>\n"
"Language-Team: none\n" "Language-Team: none\n"
"Language: fr\n" "Language: fr\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.5.2-dev\n" "X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/tor.rst:2 #: ../../source/tor.rst:2
@ -180,8 +180,8 @@ msgstr ""
#: ../../source/tor.rst:67 #: ../../source/tor.rst:67
msgid "Now configure Tor to allow connections from OnionShare::" msgid "Now configure Tor to allow connections from OnionShare::"
msgstr "" msgstr ""
"Maintenant, configurez Tor pour permettre les connexions à partir " "Maintenant, configurez Tor pour autoriser les connexions à partir d"
"dOnionShare ::" "OnionShare :"
#: ../../source/tor.rst:74 #: ../../source/tor.rst:74
msgid "And start the system Tor service::" msgid "And start the system Tor service::"
@ -258,7 +258,7 @@ msgstr ""
#: ../../source/tor.rst:111 #: ../../source/tor.rst:111
msgid "To configure bridges, click the \"⚙\" icon in OnionShare." msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
msgstr "" msgstr "Pour configurer des ponts, cliquez sur licône « ⚙ » dans OnionShare."
#: ../../source/tor.rst:113 #: ../../source/tor.rst:113
msgid "" msgid ""

View File

@ -3,37 +3,41 @@
# This file is distributed under the same license as the OnionShare package. # This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2021-05-14 19:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/help.rst:2 #: ../../source/help.rst:2
msgid "Getting Help" msgid "Getting Help"
msgstr "" msgstr "Hulp krijgen"
#: ../../source/help.rst:5 #: ../../source/help.rst:5
msgid "Read This Website" msgid "Read This Website"
msgstr "" msgstr "Lees deze website"
#: ../../source/help.rst:7 #: ../../source/help.rst:7
msgid "" msgid ""
"You will find instructions on how to use OnionShare. Look through all of " "You will find instructions on how to use OnionShare. Look through all of "
"the sections first to see if anything answers your questions." "the sections first to see if anything answers your questions."
msgstr "" msgstr ""
"U vindt hier instructies over hoe u OnionShare kunt gebruiken. Kijk eerst "
"alle secties door om te zien of iets uw vragen beantwoordt."
#: ../../source/help.rst:10 #: ../../source/help.rst:10
msgid "Check the GitHub Issues" msgid "Check the GitHub Issues"
msgstr "" msgstr "Controleer de issues op GitHub"
#: ../../source/help.rst:12 #: ../../source/help.rst:12
msgid "" msgid ""
@ -42,12 +46,17 @@ msgid ""
" else has encountered the same problem and either raised it with the " " else has encountered the same problem and either raised it with the "
"developers, or maybe even posted a solution." "developers, or maybe even posted a solution."
msgstr "" msgstr ""
"Als het niet op de website staat, kijk dan op de `GitHub issues "
"<https://github.com/micahflee/onionshare/issues>`_. Het is mogelijk dat "
"iemand anders hetzelfde probleem heeft ondervonden en het heeft aangekaart "
"bij de ontwikkelaars, of misschien zelfs een oplossing heeft gepost."
#: ../../source/help.rst:15 #: ../../source/help.rst:15
msgid "Submit an Issue Yourself" msgid "Submit an Issue Yourself"
msgstr "" msgstr "Dien zelf een probleem in"
#: ../../source/help.rst:17 #: ../../source/help.rst:17
#, fuzzy
msgid "" msgid ""
"If you are unable to find a solution, or wish to ask a question or " "If you are unable to find a solution, or wish to ask a question or "
"suggest a new feature, please `submit an issue " "suggest a new feature, please `submit an issue "
@ -55,16 +64,23 @@ msgid ""
"`creating a GitHub account <https://help.github.com/articles/signing-up-" "`creating a GitHub account <https://help.github.com/articles/signing-up-"
"for-a-new-github-account/>`_." "for-a-new-github-account/>`_."
msgstr "" msgstr ""
"Als u geen oplossing kunt vinden, of een vraag wilt stellen of een nieuwe "
"functie wilt voorstellen, kunt u `een issue indienen <https://github.com/"
"micahflee/onionshare/issues/new>`_. Dit vereist `het aanmaken van een GitHub "
"account <https://help.github.com/articles/"
"signing-up-for-a-new-github-account/>`_."
#: ../../source/help.rst:20 #: ../../source/help.rst:20
msgid "Join our Keybase Team" msgid "Join our Keybase Team"
msgstr "" msgstr "Word lid van ons Keybase-team"
#: ../../source/help.rst:22 #: ../../source/help.rst:22
msgid "" msgid ""
"See :ref:`collaborating` on how to join the Keybase team used to discuss " "See :ref:`collaborating` on how to join the Keybase team used to discuss "
"the project." "the project."
msgstr "" msgstr ""
"Zie :ref:'samenwerken' over hoe je lid wordt van het Keybase-team dat wordt "
"gebruikt om het project te bespreken."
#~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgid "If you need help with OnionShare, please follow the instructions below."
#~ msgstr "" #~ msgstr ""
@ -117,4 +133,3 @@ msgstr ""
#~ "that we use to discuss the " #~ "that we use to discuss the "
#~ "project." #~ "project."
#~ msgstr "" #~ msgstr ""

View File

@ -3,27 +3,31 @@
# This file is distributed under the same license as the OnionShare package. # This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-09-03 11:46-0700\n" "POT-Creation-Date: 2020-09-03 11:46-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2021-05-14 13:32+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
#: ../../source/index.rst:2 #: ../../source/index.rst:2
msgid "OnionShare's documentation" msgid "OnionShare's documentation"
msgstr "" msgstr "OnionShare documentatie"
#: ../../source/index.rst:6 #: ../../source/index.rst:6
msgid "" msgid ""
"OnionShare is an open source tool that lets you securely and anonymously " "OnionShare is an open source tool that lets you securely and anonymously "
"share files, host websites, and chat with friends using the Tor network." "share files, host websites, and chat with friends using the Tor network."
msgstr "" msgstr ""
"OnionShare is een open source applicatie waarmee je beveiligd en anoniem "
"bestanden kan delen, websites kan hosten en met vrienden kan chatten via het "
"Tor netwerk."

View File

@ -3,39 +3,44 @@
# This file is distributed under the same license as the OnionShare package. # This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2021-05-14 19:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/install.rst:2 #: ../../source/install.rst:2
msgid "Installation" msgid "Installation"
msgstr "" msgstr "Installatie"
#: ../../source/install.rst:5 #: ../../source/install.rst:5
msgid "Windows or macOS" msgid "Windows or macOS"
msgstr "" msgstr "Windows of macOS"
#: ../../source/install.rst:7 #: ../../source/install.rst:7
msgid "" msgid ""
"You can download OnionShare for Windows and macOS from the `OnionShare " "You can download OnionShare for Windows and macOS from the `OnionShare "
"website <https://onionshare.org/>`_." "website <https://onionshare.org/>`_."
msgstr "" msgstr ""
"Je kan OnionShare downloaden voor Windows en macOS van de `OnionShare "
"website <https://onionshare.org/>`_."
#: ../../source/install.rst:12 #: ../../source/install.rst:12
msgid "Install in Linux" msgid "Install in Linux"
msgstr "" msgstr "Installatie onder Linux"
#: ../../source/install.rst:14 #: ../../source/install.rst:14
#, fuzzy
msgid "" msgid ""
"There are various ways to install OnionShare for Linux, but the " "There are various ways to install OnionShare for Linux, but the "
"recommended way is to use either the `Flatpak <https://flatpak.org/>`_ or" "recommended way is to use either the `Flatpak <https://flatpak.org/>`_ or"
@ -43,32 +48,44 @@ msgid ""
"that you'll always use the newest version and run OnionShare inside of a " "that you'll always use the newest version and run OnionShare inside of a "
"sandbox." "sandbox."
msgstr "" msgstr ""
"Er zijn verschillende manieren om OnionShare voor Linux te installeren, maar "
"de aanbevolen manier is om ofwel het `Flatpak <https://flatpak.org/>`_ of "
"het `Snap <https://snapcraft.io/>`_ pakket te gebruiken. Flatpak en Snap "
"zorgen ervoor dat u altijd de nieuwste versie gebruikt en OnionShare binnen "
"een sandbox draait."
#: ../../source/install.rst:17 #: ../../source/install.rst:17
msgid "" msgid ""
"Snap support is built-in to Ubuntu and Fedora comes with Flatpak support," "Snap support is built-in to Ubuntu and Fedora comes with Flatpak support,"
" but which you use is up to you. Both work in all Linux distributions." " but which you use is up to you. Both work in all Linux distributions."
msgstr "" msgstr ""
"Snap ondersteuning is ingebouwd in Ubuntu. Fedora komt met Flatpak "
"ondersteuning. Qelke je gebruikt is aan jou. Beide werken in alle Linux "
"distributies."
#: ../../source/install.rst:19 #: ../../source/install.rst:19
msgid "" msgid ""
"**Install OnionShare using Flatpak**: " "**Install OnionShare using Flatpak**: "
"https://flathub.org/apps/details/org.onionshare.OnionShare" "https://flathub.org/apps/details/org.onionshare.OnionShare"
msgstr "" msgstr ""
"**Installeer OnionShare via Flatpak**: https://flathub.org/apps/details/org."
"onionshare.OnionShare"
#: ../../source/install.rst:21 #: ../../source/install.rst:21
msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare" msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare"
msgstr "" msgstr "**Installeer OnionShare via Snap**: https://snapcraft.io/onionshare"
#: ../../source/install.rst:23 #: ../../source/install.rst:23
msgid "" msgid ""
"You can also download and install PGP-signed ``.flatpak`` or ``.snap`` " "You can also download and install PGP-signed ``.flatpak`` or ``.snap`` "
"packages from https://onionshare.org/dist/ if you prefer." "packages from https://onionshare.org/dist/ if you prefer."
msgstr "" msgstr ""
"Je kan ook PGP-ondertekende `` .flatpak '' - of `` .snap '' - pakketten "
"downloaden en installeren vanaf https://onionshare.org/dist/ als u dat wilt."
#: ../../source/install.rst:28 #: ../../source/install.rst:28
msgid "Verifying PGP signatures" msgid "Verifying PGP signatures"
msgstr "" msgstr "PGP-handtekeningen verifiëren"
#: ../../source/install.rst:30 #: ../../source/install.rst:30
msgid "" msgid ""
@ -78,10 +95,15 @@ msgid ""
"binaries include operating system-specific signatures, and you can just " "binaries include operating system-specific signatures, and you can just "
"rely on those alone if you'd like." "rely on those alone if you'd like."
msgstr "" msgstr ""
"Je kunt controleren of het pakket dat je download legitiem is en er niet mee "
"geknoeid is door de PGP handtekening te controleren. Voor Windows en macOS "
"is deze stap optioneel en biedt bescherming in de diepte: de binaries van "
"OnionShare bevatten besturingssysteemspecifieke handtekeningen en u kunt er "
"ook voor kiezen om alleen daarop te vertrouwen."
#: ../../source/install.rst:34 #: ../../source/install.rst:34
msgid "Signing key" msgid "Signing key"
msgstr "" msgstr "Ondertekeningsleutel"
#: ../../source/install.rst:36 #: ../../source/install.rst:36
msgid "" msgid ""
@ -91,6 +113,11 @@ msgid ""
"<https://keys.openpgp.org/vks/v1/by-" "<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_." "fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr "" msgstr ""
"Pakketten zijn ondertekend door Micah Lee, de kernontwikkelaar, met zijn PGP "
"publieke sleutel met vingerafdruk "
"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. U kunt Micah's sleutel "
"downloaden `van de keys.openpgp.org keyserver <https://keys.openpgp.org/vks/"
"v1/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
#: ../../source/install.rst:38 #: ../../source/install.rst:38
msgid "" msgid ""
@ -98,10 +125,13 @@ msgid ""
"probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you " "probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you "
"probably want `Gpg4win <https://www.gpg4win.org/>`_." "probably want `Gpg4win <https://www.gpg4win.org/>`_."
msgstr "" msgstr ""
"Je moet GnuPG geïnstalleerd hebben om handtekeningen te verifiëren. Voor "
"macOS kan dit via `GPGTools <https://gpgtools.org/>`_, en voor Windows `"
"Gpg4win <https://www.gpg4win.org/>`_."
#: ../../source/install.rst:41 #: ../../source/install.rst:41
msgid "Signatures" msgid "Signatures"
msgstr "" msgstr "Handtekeningen"
#: ../../source/install.rst:43 #: ../../source/install.rst:43
msgid "" msgid ""
@ -111,10 +141,16 @@ msgid ""
"OnionShare. You can also find them on the `GitHub Releases page " "OnionShare. You can also find them on the `GitHub Releases page "
"<https://github.com/micahflee/onionshare/releases>`_." "<https://github.com/micahflee/onionshare/releases>`_."
msgstr "" msgstr ""
"Je kan de handtekeningen (als ``.asc`` bestanden) en de Windows, macOS, "
"Flatpak, Snap, en broncode pakketten vinden op https://onionshare.org/dist/ "
"in de mappen genoemd voor elke versie van OnionShare. Je kan ze ook vinden "
"op de `GitHub Releases pagina <https://github.com/micahflee/onionshare/"
"releases>`_."
#: ../../source/install.rst:47 #: ../../source/install.rst:47
#, fuzzy
msgid "Verifying" msgid "Verifying"
msgstr "" msgstr "Verifiëren"
#: ../../source/install.rst:49 #: ../../source/install.rst:49
msgid "" msgid ""
@ -122,14 +158,17 @@ msgid ""
"downloaded the binary and and ``.asc`` signature, you can verify the " "downloaded the binary and and ``.asc`` signature, you can verify the "
"binary for macOS in a terminal like this::" "binary for macOS in a terminal like this::"
msgstr "" msgstr ""
"Zodra je Micah's publieke sleutel in jouw GnuPG-sleutelhanger hebt "
"geïmporteerd, de binary en ``.asc`` handtekening hebt gedownload, kan je de "
"binary voor macOS in een terminal als volgt verifiëren::"
#: ../../source/install.rst:53 #: ../../source/install.rst:53
msgid "Or for Windows, in a command-prompt like this::" msgid "Or for Windows, in a command-prompt like this::"
msgstr "" msgstr "Of voor Windows, in een command-prompt als deze::"
#: ../../source/install.rst:57 #: ../../source/install.rst:57
msgid "The expected output looks like this::" msgid "The expected output looks like this::"
msgstr "" msgstr "De verwachte output ziet er als volgt uit::"
#: ../../source/install.rst:69 #: ../../source/install.rst:69
msgid "" msgid ""
@ -139,6 +178,11 @@ msgid ""
" the package, it only means you haven't already defined any level of " " the package, it only means you haven't already defined any level of "
"'trust' of Micah's PGP key.)" "'trust' of Micah's PGP key.)"
msgstr "" msgstr ""
"Als je geen \"Good signature from\" ziet, kan er een probleem zijn met de "
"integriteit van het bestand (kwaadaardig of anders) en zou je het pakket "
"niet moeten installeren. (De \"WARNING:\" hierboven, is geen probleem met "
"het pakket. Het betekent alleen dat je nog geen vertrouwensniveau hebt "
"ingesteld voor Micah's PGP sleutel.)"
#: ../../source/install.rst:71 #: ../../source/install.rst:71
msgid "" msgid ""
@ -147,6 +191,10 @@ msgid ""
" the `Tor Project <https://support.torproject.org/tbb/how-to-verify-" " the `Tor Project <https://support.torproject.org/tbb/how-to-verify-"
"signature/>`_ may be useful." "signature/>`_ may be useful."
msgstr "" msgstr ""
"Als je meer wilt leren over het verifiëren van PGP handtekeningen, kunnen de "
"handleidingen voor `Qubes OS <https://www.qubes-os.org/security/"
"verifying-signatures/>`_ en het `Tor Project <https://support.torproject.org/"
"tbb/how-to-verify-signature/>`_ misschien nuttig zijn."
#~ msgid "Install on Windows or macOS" #~ msgid "Install on Windows or macOS"
#~ msgstr "" #~ msgstr ""
@ -333,4 +381,3 @@ msgstr ""
#~ "Project <https://support.torproject.org/tbb/how-to-" #~ "Project <https://support.torproject.org/tbb/how-to-"
#~ "verify-signature/>`_ may be helpful." #~ "verify-signature/>`_ may be helpful."
#~ msgstr "" #~ msgstr ""

View File

@ -3,35 +3,39 @@
# This file is distributed under the same license as the OnionShare package. # This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2021-05-14 13:32+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/security.rst:2 #: ../../source/security.rst:2
msgid "Security Design" msgid "Security Design"
msgstr "" msgstr "Beveiligingsontwerp"
#: ../../source/security.rst:4 #: ../../source/security.rst:4
msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works." msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works."
msgstr "" msgstr ""
"Lees eerst :ref: `how_it_works`om een idee te krijgen hoe OnionShare werkt."
#: ../../source/security.rst:6 #: ../../source/security.rst:6
msgid "Like all software, OnionShare may contain bugs or vulnerabilities." msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
msgstr "" msgstr ""
"Net als alle software kan ook OnionShare bugs of kwetsbaarheden bevatten."
#: ../../source/security.rst:9 #: ../../source/security.rst:9
msgid "What OnionShare protects against" msgid "What OnionShare protects against"
msgstr "" msgstr "Waar OnionShare tegen beschermd"
#: ../../source/security.rst:11 #: ../../source/security.rst:11
msgid "" msgid ""
@ -42,6 +46,12 @@ msgid ""
"server for that too. This avoids the traditional model of having to trust" "server for that too. This avoids the traditional model of having to trust"
" the computers of others." " the computers of others."
msgstr "" msgstr ""
"**Derde partijen hebben geen toegang tot wat er gebeurt in OnionShare.** Het "
"gebruik van OnionShare betekent het hosten van diensten rechtstreeks op jouw "
"computer. Wanneer je bestanden deelt met OnionShare, dan worden naar geen "
"enkele server geüpload. Wanneer je een chatruimte maakt met OnionShare, dan "
"is je computer de server. Dit voorkomt het traditionele model dat je andere "
"computers moet vertrouwen."
#: ../../source/security.rst:13 #: ../../source/security.rst:13
msgid "" msgid ""
@ -53,6 +63,13 @@ msgid ""
"Browser with OnionShare's onion service, the traffic is encrypted using " "Browser with OnionShare's onion service, the traffic is encrypted using "
"the onion service's private key." "the onion service's private key."
msgstr "" msgstr ""
"**Netwerk-afluisteraars kunnen niets bespioneren van wat er onderweg in "
"OnionShare gebeurt.** De verbinding tussen de Tor onion service en Tor "
"Browser is end-to-end versleuteld. Dit betekent dat netwerkaanvallers niets "
"kunnen afluisteren behalve versleuteld Tor-verkeer. Zelfs als een "
"afluisteraar een kwaadwillig rendezvous-knooppunt is dat wordt gebruikt om "
"de Tor Browser met de onion service van OnionShare te verbinden, wordt het "
"verkeer versleuteld met de privésleutel van de onion service."
#: ../../source/security.rst:15 #: ../../source/security.rst:15
msgid "" msgid ""
@ -62,6 +79,11 @@ msgid ""
"Browser users, the Tor Browser users and eavesdroppers can't learn the " "Browser users, the Tor Browser users and eavesdroppers can't learn the "
"identity of the OnionShare user." "identity of the OnionShare user."
msgstr "" msgstr ""
"**Anonimiteit van de OnionShare gebruikers wordt beschermd door Tor.** "
"OnionShare en de Tor Browser beschermen de anonimiteit van de gebruikers. "
"Zolang de OnionShare gebruiker anoniem het OnionShare adres communiceert met "
"de Tor Browser gebruikers, kunnen de Tor Browser gebruikers en afluisteraars "
"de identiteit van de OnionShare gebruiker niet achterhalen."
#: ../../source/security.rst:17 #: ../../source/security.rst:17
msgid "" msgid ""
@ -76,10 +98,22 @@ msgid ""
"OnionShare stops the server, preventing brute force attacks against the " "OnionShare stops the server, preventing brute force attacks against the "
"password." "password."
msgstr "" msgstr ""
"**Als een aanvaller de onion-service achterhaald, heeft hij nog steeds "
"nergens toegang toe.** Bij eerdere aanvallen op het Tor-netwerk om onion-"
"services te verzamelen, kon de aanvaller privé .onion-adressen ontdekken. "
"Als een aanvaller een privé OnionShare-adres ontdekt, zal een wachtwoord hen "
"verhinderen er toegang toe te krijgen (tenzij de OnionShare-gebruiker ervoor "
"kiest het uit te schakelen en het openbaar te maken). Het wachtwoord wordt "
"gegenereerd door twee willekeurige woorden te kiezen uit een lijst van 6800 "
"woorden, wat neerkomt op 6800², of ongeveer 46 miljoen mogelijke "
"wachtwoorden. Er kunnen slechts 20 foutieve pogingen worden gedaan voordat "
"OnionShare de server stopt, waardoor brute force aanvallen op het wachtwoord "
"worden voorkomen."
#: ../../source/security.rst:20 #: ../../source/security.rst:20
#, fuzzy
msgid "What OnionShare doesn't protect against" msgid "What OnionShare doesn't protect against"
msgstr "" msgstr "Waar OnionShare niet tegen beschermt"
#: ../../source/security.rst:22 #: ../../source/security.rst:22
msgid "" msgid ""
@ -93,6 +127,17 @@ msgid ""
" disappearing messages enabled), encrypted email, or in person. This " " disappearing messages enabled), encrypted email, or in person. This "
"isn't necessary when using OnionShare for something that isn't secret." "isn't necessary when using OnionShare for something that isn't secret."
msgstr "" msgstr ""
"**Het communiceren van het OnionShare-adres is mogelijk niet veilig.** Het "
"communiceren van het OnionShare-adres aan mensen is de verantwoordelijkheid "
"van de OnionShare-gebruiker. Als het onveilig wordt verzonden (bijvoorbeeld "
"via een e-mailbericht dat wordt bewaakt door een aanvaller), kan een "
"afluisteraar zien dat OnionShare wordt gebruikt. Als de afluisteraar het "
"adres in de Tor-browser laadt terwijl de service nog steeds bestaat, hebben "
"ze er toegang toe. Om dit te voorkomen, moet het adres veilig worden "
"gecommuniceerd, via een versleuteld sms-bericht (waarschijnlijk met "
"verdwijnende berichten ingeschakeld), versleutelde e-mail of persoonlijk. "
"Dit is niet nodig bij het gebruik van OnionShare voor iets dat niet geheim "
"is."
#: ../../source/security.rst:24 #: ../../source/security.rst:24
msgid "" msgid ""
@ -102,6 +147,11 @@ msgid ""
" Tor, can be used to share the address. This isn't necessary unless " " Tor, can be used to share the address. This isn't necessary unless "
"anonymity is a goal." "anonymity is a goal."
msgstr "" msgstr ""
"**Het communiceren van het OnionShare adres is mogelijk niet anoniem.** Er "
"moeten extra voorzorgsmaatregelen worden genomen om ervoor te zorgen dat het "
"OnionShare adres anoniem wordt gecommuniceerd. Een nieuw e-mail of chat "
"account, alleen toegankelijk via Tor, kan worden gebruikt om het adres te "
"delen. Dit is niet nodig tenzij anonimiteit het doel is."
#~ msgid "Security design" #~ msgid "Security design"
#~ msgstr "" #~ msgstr ""
@ -241,4 +291,3 @@ msgstr ""
#~ " share the address. This isn't " #~ " share the address. This isn't "
#~ "necessary unless anonymity is a goal." #~ "necessary unless anonymity is a goal."
#~ msgstr "" #~ msgstr ""

View File

@ -3,25 +3,26 @@
# This file is distributed under the same license as the OnionShare package. # This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-09-03 11:37-0700\n" "POT-Creation-Date: 2020-09-03 11:37-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2021-05-14 13:32+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
#: ../../source/_templates/versions.html:10 #: ../../source/_templates/versions.html:10
msgid "Versions" msgid "Versions"
msgstr "" msgstr "Versies"
#: ../../source/_templates/versions.html:18 #: ../../source/_templates/versions.html:18
msgid "Languages" msgid "Languages"
msgstr "" msgstr "Talen"

View File

@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-03-30 16:26+0000\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n"
"Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n" "Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n"
"Language: ru\n"
"Language-Team: ru <LL@li.org>\n" "Language-Team: ru <LL@li.org>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "Language: ru\n"
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2 #: ../../source/advanced.rst:2
@ -116,7 +117,7 @@ msgstr ""
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:40
msgid "Custom Titles" msgid "Custom Titles"
msgstr "" msgstr "Указать заголовок"
#: ../../source/advanced.rst:42 #: ../../source/advanced.rst:42
msgid "" msgid ""
@ -124,12 +125,17 @@ msgid ""
"see the default title for the type of service. For example, the default " "see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"." "title of a chat service is \"OnionShare Chat\"."
msgstr "" msgstr ""
"По умолчанию, когда люди открывают страницу OnionShare в браузере Tor, они "
"видят стандартное название сервиса. Например, стандартный заголовок чата это "
"\"OnionShare Chat\"."
#: ../../source/advanced.rst:44 #: ../../source/advanced.rst:44
msgid "" msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting " "If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server." "before starting a server."
msgstr "" msgstr ""
"Если вы хотите указать своё название для сервиса, используйте настройку "
"\"Custom title\" перед запуском сервиса."
#: ../../source/advanced.rst:47 #: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
@ -493,4 +499,3 @@ msgstr ""
#~ " services will soon be removed from" #~ " services will soon be removed from"
#~ " OnionShare as well." #~ " OnionShare as well."
#~ msgstr "" #~ msgstr ""

View File

@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-03-30 16:26+0000\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n"
"Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n" "Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n"
"Language: ru\n"
"Language-Team: ru <LL@li.org>\n" "Language-Team: ru <LL@li.org>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "Language: ru\n"
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4 #: ../../source/features.rst:4
@ -179,7 +180,7 @@ msgstr ""
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files and Messages" msgid "Receive Files and Messages"
msgstr "" msgstr "Получение файлов и сообщений"
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "" msgid ""
@ -188,10 +189,15 @@ msgid ""
"anonymous dropbox. Open a receive tab and choose the settings that you " "anonymous dropbox. Open a receive tab and choose the settings that you "
"want." "want."
msgstr "" msgstr ""
"Вы можете использовать OnionShare, чтобы дать людям возможность анонимно "
"отправлять файлы и сообщения прямо на ваш компьютер, по сути превращая его в "
"анонимный аналог Dropbox. Откройте вкладку \"Получить\" и установите "
"желаемые настройки."
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "You can browse for a folder to save messages and files that get submitted." msgid "You can browse for a folder to save messages and files that get submitted."
msgstr "" msgstr ""
"Вы можете указать папку, куда будут сохраняться полученные файлы и сообщения."
#: ../../source/features.rst:56 #: ../../source/features.rst:56
msgid "" msgid ""
@ -199,6 +205,9 @@ msgid ""
"uploads, and you can check \"Disable uploading files\" if you want to " "uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form." "only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Вы можете запретить отправку сообщений, если хотите только получить файлы. "
"Или запретить загрузку файлов, если хотите только отправлять сообщения. "
"Например, чтобы сделать анонимную форму для связи."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
@ -214,6 +223,17 @@ msgid ""
"your receive mode service, @webhookbot will send you a message on Keybase" "your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens." " letting you know as soon as it happens."
msgstr "" msgstr ""
"Вы можете установить флажок \"Использовать веб-хук для отправки уведомлений\""
" и затем указать URL веб-хука, чтобы получить уведомление, что кто-то "
"загружает файлы и отправляет файлы на ваш сервис приёма OnionShare. При "
"подключени это опции, OnionShare отправит HTTP POST запрос на указанный URL "
"когда кто-либо загрузит файлы или отправит сообщение. Например, чтобы "
"получить зашифрованное сообщение в приложении `Keybase <https://keybase.io/>`"
", нужно начать беседу со строки `@webhookbot <https://keybase.io/webhookbot>`"
"_, затем ввести ``!webhook create onionshare-alerts``, и в ответ придёт URL. "
"Используйте этот URL для отправки уведомлений при помощи веб-хука. Когда кто-"
"либо загрузит файл на ваш сервис приёма OnionShare, @webhookbot отправит "
"сообщение в приложение Keybase как только это произойдёт."
#: ../../source/features.rst:63 #: ../../source/features.rst:63
msgid "" msgid ""
@ -222,6 +242,10 @@ msgid ""
" be able to submit files and messages which get uploaded to your " " be able to submit files and messages which get uploaded to your "
"computer." "computer."
msgstr "" msgstr ""
"Когда вы будете готовы, нажмите «Запустить режим получения». Это запустит "
"службу OnionShare. Любой, кто откроет этот адрес в своём Tor-браузере, "
"сможет отправлять файлы и сообщения, которые будут загружены на ваш "
"компьютер."
#: ../../source/features.rst:67 #: ../../source/features.rst:67
msgid "" msgid ""
@ -232,7 +256,6 @@ msgstr ""
"кнопку \"↓\" в правом верхнем углу." "кнопку \"↓\" в правом верхнем углу."
#: ../../source/features.rst:69 #: ../../source/features.rst:69
#, fuzzy
msgid "Here is what it looks like for someone sending you files and messages." msgid "Here is what it looks like for someone sending you files and messages."
msgstr "Примерно так выглядит OnionShare когда кто-то вам отправляет файлы." msgstr "Примерно так выглядит OnionShare когда кто-то вам отправляет файлы."
@ -243,6 +266,10 @@ msgid ""
"folder on your computer, automatically organized into separate subfolders" "folder on your computer, automatically organized into separate subfolders"
" based on the time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
"Когда кто-либо загружает файлы или отправляет текстовые сообщения на ваш "
"сервис приёма данных, по умолчанию они (файлы и сообщения) сохраняются в "
"папку ``OnionShare`` в домашнией директории компьютера и автоматически "
"распределяются в поддиректории в зависимости от времени загрузки."
#: ../../source/features.rst:75 #: ../../source/features.rst:75
msgid "" msgid ""
@ -291,6 +318,8 @@ msgstr ""
#: ../../source/features.rst:84 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare." msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr "" msgstr ""
"Тем не менее, открывать сообщения присланные через OnionShare всегда "
"безопасно."
#: ../../source/features.rst:87 #: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
@ -994,4 +1023,3 @@ msgstr ""
#~ "комьютера пользователя. Эта директория " #~ "комьютера пользователя. Эта директория "
#~ "автоматически создаёт поддиректории в " #~ "автоматически создаёт поддиректории в "
#~ "зависимости от времени загрузки." #~ "зависимости от времени загрузки."