summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2021-05-25 17:08:19 -0700
committerMicah Lee <micah@micahflee.com>2021-05-25 17:08:19 -0700
commit40919dca6ff01b996eaf8fec44e6150a101864db (patch)
treec5248c15589c58289e6bc7988c4106966330f513
parentdc7b80e2ef307ca9adc0514603a47f5057e5215f (diff)
parentc682b7ec01bdd395a0bbc8e652473bc9de90067b (diff)
downloadonionshare-40919dca6ff01b996eaf8fec44e6150a101864db.tar.gz
onionshare-40919dca6ff01b996eaf8fec44e6150a101864db.zip
Merge branch 'develop' into 1347_micah_scroll_options
-rw-r--r--cli/onionshare_cli/resources/static/js/chat.js11
-rw-r--r--cli/onionshare_cli/resources/templates/500.html21
-rw-r--r--cli/onionshare_cli/resources/templates/chat.html3
-rw-r--r--cli/onionshare_cli/web/chat_mode.py43
-rw-r--r--cli/onionshare_cli/web/receive_mode.py10
-rw-r--r--cli/onionshare_cli/web/send_base_mode.py8
-rw-r--r--cli/onionshare_cli/web/share_mode.py6
-rw-r--r--cli/onionshare_cli/web/web.py53
-rw-r--r--cli/onionshare_cli/web/website_mode.py4
-rw-r--r--cli/poetry.lock506
-rw-r--r--cli/pyproject.toml2
-rw-r--r--desktop/src/onionshare/resources/locale/bn.json11
-rw-r--r--desktop/src/onionshare/resources/locale/de.json4
-rw-r--r--desktop/src/onionshare/resources/locale/el.json106
-rw-r--r--desktop/src/onionshare/resources/locale/fr.json8
-rw-r--r--desktop/src/onionshare/resources/locale/gl.json7
-rw-r--r--desktop/src/onionshare/resources/locale/hi.json9
-rw-r--r--desktop/src/onionshare/resources/locale/nl.json32
-rw-r--r--desktop/src/onionshare/resources/locale/ru.json13
-rw-r--r--desktop/src/onionshare/resources/locale/tr.json6
-rw-r--r--desktop/src/onionshare/resources/locale/uk.json6
-rw-r--r--desktop/tests/gui_base_test.py14
-rw-r--r--desktop/tests/test_gui_chat.py33
-rw-r--r--desktop/tests/test_gui_receive.py19
-rw-r--r--desktop/tests/test_gui_share.py17
-rw-r--r--desktop/tests/test_gui_website.py16
-rwxr-xr-xdocs/build.sh2
-rw-r--r--docs/gettext/.doctrees/advanced.doctreebin30413 -> 30414 bytes
-rw-r--r--docs/gettext/.doctrees/develop.doctreebin37736 -> 37737 bytes
-rw-r--r--docs/gettext/.doctrees/environment.picklebin37975 -> 37844 bytes
-rw-r--r--docs/gettext/.doctrees/features.doctreebin47169 -> 47170 bytes
-rw-r--r--docs/gettext/.doctrees/help.doctreebin7679 -> 7680 bytes
-rw-r--r--docs/gettext/.doctrees/index.doctreebin3439 -> 3440 bytes
-rw-r--r--docs/gettext/.doctrees/install.doctreebin20613 -> 20614 bytes
-rw-r--r--docs/gettext/.doctrees/security.doctreebin13526 -> 13527 bytes
-rw-r--r--docs/gettext/.doctrees/tor.doctreebin30114 -> 30115 bytes
-rw-r--r--docs/gettext/advanced.pot2
-rw-r--r--docs/gettext/develop.pot2
-rw-r--r--docs/gettext/features.pot2
-rw-r--r--docs/gettext/help.pot2
-rw-r--r--docs/gettext/index.pot2
-rw-r--r--docs/gettext/install.pot2
-rw-r--r--docs/gettext/security.pot2
-rw-r--r--docs/gettext/sphinx.pot2
-rw-r--r--docs/gettext/tor.pot2
-rw-r--r--docs/source/conf.py6
-rw-r--r--docs/source/locale/de/LC_MESSAGES/advanced.po18
-rw-r--r--docs/source/locale/de/LC_MESSAGES/features.po60
-rw-r--r--docs/source/locale/el/LC_MESSAGES/advanced.po14
-rw-r--r--docs/source/locale/el/LC_MESSAGES/develop.po30
-rw-r--r--docs/source/locale/el/LC_MESSAGES/features.po47
-rw-r--r--docs/source/locale/el/LC_MESSAGES/install.po18
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/tor.po12
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/help.po35
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/index.po16
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/install.po77
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/security.po65
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/sphinx.po15
-rw-r--r--docs/source/locale/ru/LC_MESSAGES/advanced.po17
-rw-r--r--docs/source/locale/ru/LC_MESSAGES/features.po42
60 files changed, 947 insertions, 513 deletions
diff --git a/cli/onionshare_cli/resources/static/js/chat.js b/cli/onionshare_cli/resources/static/js/chat.js
index 258b020b..de64c094 100644
--- a/cli/onionshare_cli/resources/static/js/chat.js
+++ b/cli/onionshare_cli/resources/static/js/chat.js
@@ -88,7 +88,7 @@ var emitMessage = function (socket) {
var updateUsername = function (socket) {
var username = $('#username').val();
- if (!checkUsernameExists(username)) {
+ if (!checkUsernameExists(username) && !checkUsernameTooLong(username)) {
$.ajax({
method: 'POST',
url: `http://${document.domain}:${location.port}/update-session-username`,
@@ -133,6 +133,15 @@ var checkUsernameExists = function (username) {
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 () {
return $('#chat').scrollTop() - ($('#chat')[0].scrollHeight - $('#chat')[0].offsetHeight);
}
diff --git a/cli/onionshare_cli/resources/templates/500.html b/cli/onionshare_cli/resources/templates/500.html
new file mode 100644
index 00000000..9f6727d2
--- /dev/null
+++ b/cli/onionshare_cli/resources/templates/500.html
@@ -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>
diff --git a/cli/onionshare_cli/resources/templates/chat.html b/cli/onionshare_cli/resources/templates/chat.html
index 7156d58c..48434d99 100644
--- a/cli/onionshare_cli/resources/templates/chat.html
+++ b/cli/onionshare_cli/resources/templates/chat.html
@@ -23,6 +23,7 @@
<div class="chat-container no-js">
<div class="chat-users">
<div class="editable-username">
+ <label for="username">Your username:</label>
<input id="username" value="{{ username }}" />
<p id="username-error"></p>
</div>
@@ -43,4 +44,4 @@
<script async src="{{ static_url_path }}/js/chat.js"></script>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/cli/onionshare_cli/web/chat_mode.py b/cli/onionshare_cli/web/chat_mode.py
index 8b2a5673..f6dc2d1a 100644
--- a/cli/onionshare_cli/web/chat_mode.py
+++ b/cli/onionshare_cli/web/chat_mode.py
@@ -39,6 +39,12 @@ class ChatModeWeb:
# This tracks the history id
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
+ # Chat mode has no concept of individual file requests that
+ # turn into history widgets in the GUI, so set it to False
+ self.supports_file_requests = False
+
self.define_routes()
def define_routes(self):
@@ -46,7 +52,7 @@ class ChatModeWeb:
The web app routes for chatting
"""
- @self.web.app.route("/")
+ @self.web.app.route("/", methods=["GET"], provide_automatic_options=False)
def index():
history_id = self.cur_history_id
self.cur_history_id += 1
@@ -72,27 +78,40 @@ class ChatModeWeb:
)
return self.web.add_security_headers(r)
- @self.web.app.route("/update-session-username", methods=["POST"])
+ @self.web.app.route("/update-session-username", methods=["POST"], provide_automatic_options=False)
def update_session_username():
history_id = self.cur_history_id
data = request.get_json()
if (
data.get("username", "")
and data.get("username", "") not in self.connected_users
+ and len(data.get("username", "")) < 128
):
session["name"] = data.get("username", session.get("name"))
- self.web.add_request(
- request.path,
- {"id": history_id, "status_code": 200},
- )
+ self.web.add_request(
+ request.path,
+ {"id": history_id, "status_code": 200},
+ )
- self.web.add_request(self.web.REQUEST_LOAD, request.path)
- r = make_response(
- jsonify(
- username=session.get("name"),
- success=True,
+ self.web.add_request(self.web.REQUEST_LOAD, request.path)
+ r = make_response(
+ jsonify(
+ username=session.get("name"),
+ success=True,
+ )
+ )
+ else:
+ self.web.add_request(
+ request.path,
+ {"id": history_id, "status_code": 403},
+ )
+
+ r = make_response(
+ jsonify(
+ username=session.get("name"),
+ success=False,
+ )
)
- )
return self.web.add_security_headers(r)
@self.web.socketio.on("joined", namespace="/chat")
diff --git a/cli/onionshare_cli/web/receive_mode.py b/cli/onionshare_cli/web/receive_mode.py
index f5aae296..76abb0a8 100644
--- a/cli/onionshare_cli/web/receive_mode.py
+++ b/cli/onionshare_cli/web/receive_mode.py
@@ -64,6 +64,10 @@ class ReceiveModeWeb:
# This tracks the history id
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()
def define_routes(self):
@@ -71,7 +75,7 @@ class ReceiveModeWeb:
The web app routes for receiving files
"""
- @self.web.app.route("/")
+ @self.web.app.route("/", methods=["GET"], provide_automatic_options=False)
def index():
history_id = self.cur_history_id
self.cur_history_id += 1
@@ -93,7 +97,7 @@ class ReceiveModeWeb:
)
return self.web.add_security_headers(r)
- @self.web.app.route("/upload", methods=["POST"])
+ @self.web.app.route("/upload", methods=["POST"], provide_automatic_options=False)
def upload(ajax=False):
"""
Handle the upload files POST request, though at this point, the files have
@@ -225,7 +229,7 @@ class ReceiveModeWeb:
)
return self.web.add_security_headers(r)
- @self.web.app.route("/upload-ajax", methods=["POST"])
+ @self.web.app.route("/upload-ajax", methods=["POST"], provide_automatic_options=False)
def upload_ajax_public():
if not self.can_upload:
return self.web.error403()
diff --git a/cli/onionshare_cli/web/send_base_mode.py b/cli/onionshare_cli/web/send_base_mode.py
index 742f6f75..e448d2dd 100644
--- a/cli/onionshare_cli/web/send_base_mode.py
+++ b/cli/onionshare_cli/web/send_base_mode.py
@@ -52,6 +52,10 @@ class SendBaseModeWeb:
# This tracks the history id
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.init()
@@ -208,10 +212,6 @@ class SendBaseModeWeb:
history_id = self.cur_history_id
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.REQUEST_INDIVIDUAL_FILE_STARTED,
path,
diff --git a/cli/onionshare_cli/web/share_mode.py b/cli/onionshare_cli/web/share_mode.py
index 95aec1ba..51ddd674 100644
--- a/cli/onionshare_cli/web/share_mode.py
+++ b/cli/onionshare_cli/web/share_mode.py
@@ -134,8 +134,8 @@ class ShareModeWeb(SendBaseModeWeb):
The web app routes for sharing files
"""
- @self.web.app.route("/", defaults={"path": ""})
- @self.web.app.route("/<path:path>")
+ @self.web.app.route("/", defaults={"path": ""}, methods=["GET"], provide_automatic_options=False)
+ @self.web.app.route("/<path:path>", methods=["GET"], provide_automatic_options=False)
def index(path):
"""
Render the template for the onionshare landing page.
@@ -160,7 +160,7 @@ class ShareModeWeb(SendBaseModeWeb):
return self.render_logic(path)
- @self.web.app.route("/download")
+ @self.web.app.route("/download", methods=["GET"], provide_automatic_options=False)
def download():
"""
Download the zip file.
diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py
index d88a7e4e..56e307b4 100644
--- a/cli/onionshare_cli/web/web.py
+++ b/cli/onionshare_cli/web/web.py
@@ -229,6 +229,20 @@ class Web:
mode.cur_history_id += 1
return self.error404(history_id)
+ @self.app.errorhandler(405)
+ def method_not_allowed(e):
+ mode = self.get_mode()
+ history_id = mode.cur_history_id
+ mode.cur_history_id += 1
+ return self.error405(history_id)
+
+ @self.app.errorhandler(500)
+ def method_not_allowed(e):
+ mode = self.get_mode()
+ history_id = mode.cur_history_id
+ mode.cur_history_id += 1
+ return self.error500(history_id)
+
@self.app.route("/<password_candidate>/shutdown")
def shutdown(password_candidate):
"""
@@ -280,11 +294,13 @@ class Web:
return self.add_security_headers(r)
def error404(self, history_id):
- self.add_request(
- self.REQUEST_INDIVIDUAL_FILE_STARTED,
- request.path,
- {"id": history_id, "status_code": 404},
- )
+ mode = self.get_mode()
+ if mode.supports_file_requests:
+ self.add_request(
+ self.REQUEST_INDIVIDUAL_FILE_STARTED,
+ request.path,
+ {"id": history_id, "status_code": 404},
+ )
self.add_request(Web.REQUEST_OTHER, request.path)
r = make_response(
@@ -293,11 +309,13 @@ class Web:
return self.add_security_headers(r)
def error405(self, history_id):
- self.add_request(
- self.REQUEST_INDIVIDUAL_FILE_STARTED,
- request.path,
- {"id": history_id, "status_code": 405},
- )
+ mode = self.get_mode()
+ if mode.supports_file_requests:
+ self.add_request(
+ self.REQUEST_INDIVIDUAL_FILE_STARTED,
+ request.path,
+ {"id": history_id, "status_code": 405},
+ )
self.add_request(Web.REQUEST_OTHER, request.path)
r = make_response(
@@ -305,6 +323,21 @@ class Web:
)
return self.add_security_headers(r)
+ def error500(self, history_id):
+ mode = self.get_mode()
+ if mode.supports_file_requests:
+ self.add_request(
+ self.REQUEST_INDIVIDUAL_FILE_STARTED,
+ request.path,
+ {"id": history_id, "status_code": 500},
+ )
+
+ self.add_request(Web.REQUEST_OTHER, request.path)
+ r = make_response(
+ render_template("500.html", static_url_path=self.static_url_path), 500
+ )
+ return self.add_security_headers(r)
+
def add_security_headers(self, r):
"""
Add security headers to a request
diff --git a/cli/onionshare_cli/web/website_mode.py b/cli/onionshare_cli/web/website_mode.py
index 6badd399..5ab1b184 100644
--- a/cli/onionshare_cli/web/website_mode.py
+++ b/cli/onionshare_cli/web/website_mode.py
@@ -37,8 +37,8 @@ class WebsiteModeWeb(SendBaseModeWeb):
The web app routes for sharing a website
"""
- @self.web.app.route("/", defaults={"path": ""})
- @self.web.app.route("/<path:path>")
+ @self.web.app.route("/", defaults={"path": ""}, methods=["GET"], provide_automatic_options=False)
+ @self.web.app.route("/<path:path>", methods=["GET"], provide_automatic_options=False)
def path_public(path):
return path_logic(path)
diff --git a/cli/poetry.lock b/cli/poetry.lock
index 798b8c8a..d7a53640 100644
--- a/cli/poetry.lock
+++ b/cli/poetry.lock
@@ -1,32 +1,33 @@
[[package]]
-name = "atomicwrites"
-version = "1.4.0"
-description = "Atomic file writes."
category = "dev"
+description = "Atomic file writes."
+marker = "sys_platform == \"win32\""
+name = "atomicwrites"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "1.4.0"
[[package]]
-name = "attrs"
-version = "20.3.0"
-description = "Classes Without Boilerplate"
category = "dev"
+description = "Classes Without Boilerplate"
+name = "attrs"
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]
-dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"]
-docs = ["furo", "sphinx", "zope.interface"]
-tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
-tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]
+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", "sphinx-notfound-page"]
+tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
+tests_no_zope = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
[[package]]
-name = "bidict"
-version = "0.21.2"
-description = "The bidirectional mapping library for Python."
category = "main"
+description = "The bidirectional mapping library for Python."
+name = "bidict"
optional = false
python-versions = ">=3.6"
+version = "0.21.2"
[package.extras]
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)"]
[[package]]
-name = "certifi"
-version = "2020.12.5"
-description = "Python package for providing Mozilla's CA Bundle."
category = "main"
+description = "Python package for providing Mozilla's CA Bundle."
+name = "certifi"
optional = false
python-versions = "*"
+version = "2020.12.5"
[[package]]
-name = "chardet"
-version = "4.0.0"
-description = "Universal encoding detector for Python 2 and 3"
category = "main"
+description = "Universal encoding detector for Python 2 and 3"
+name = "chardet"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "4.0.0"
[[package]]
-name = "click"
-version = "7.1.2"
-description = "Composable command line interface toolkit"
category = "main"
+description = "Composable command line interface toolkit"
+name = "click"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "7.1.2"
[[package]]
-name = "colorama"
-version = "0.4.4"
-description = "Cross-platform colored terminal text."
category = "main"
+description = "Cross-platform colored terminal text."
+name = "colorama"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "0.4.4"
[[package]]
-name = "dnspython"
-version = "1.16.0"
-description = "DNS toolkit"
category = "main"
+description = "DNS toolkit"
+name = "dnspython"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "1.16.0"
[package.extras]
DNSSEC = ["pycryptodome", "ecdsa (>=0.13)"]
IDNA = ["idna (>=2.1)"]
[[package]]
-name = "eventlet"
-version = "0.30.2"
-description = "Highly concurrent networking library"
category = "main"
+description = "Highly concurrent networking library"
+name = "eventlet"
optional = false
python-versions = "*"
+version = "0.31.0"
[package.dependencies]
dnspython = ">=1.15.0,<2.0.0"
@@ -93,18 +94,18 @@ greenlet = ">=0.3"
six = ">=1.10.0"
[[package]]
-name = "flask"
-version = "1.1.2"
-description = "A simple framework for building complex web applications."
category = "main"
+description = "A simple framework for building complex web applications."
+name = "flask"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "1.1.4"
[package.dependencies]
-click = ">=5.1"
-itsdangerous = ">=0.24"
-Jinja2 = ">=2.10.1"
-Werkzeug = ">=0.15"
+Jinja2 = ">=2.10.1,<3.0"
+Werkzeug = ">=0.15,<2.0"
+click = ">=5.1,<8.0"
+itsdangerous = ">=0.24,<2.0"
[package.extras]
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"]
[[package]]
-name = "flask-httpauth"
-version = "4.2.0"
-description = "Basic and Digest HTTP authentication for Flask routes"
category = "main"
+description = "Basic and Digest HTTP authentication for Flask routes"
+name = "flask-httpauth"
optional = false
python-versions = "*"
+version = "4.4.0"
[package.dependencies]
Flask = "*"
[[package]]
-name = "flask-socketio"
-version = "5.0.1"
-description = "Socket.IO integration for Flask applications"
category = "main"
+description = "Socket.IO integration for Flask applications"
+name = "flask-socketio"
optional = false
python-versions = "*"
+version = "5.0.1"
[package.dependencies]
Flask = ">=0.9"
python-socketio = ">=5.0.2"
[[package]]
-name = "greenlet"
-version = "1.0.0"
-description = "Lightweight in-process concurrent programming"
category = "main"
+description = "Lightweight in-process concurrent programming"
+name = "greenlet"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
+version = "1.1.0"
[package.extras]
docs = ["sphinx"]
[[package]]
-name = "idna"
-version = "2.10"
-description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
+description = "Internationalized Domain Names in Applications (IDNA)"
+name = "idna"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "2.10"
[[package]]
-name = "importlib-metadata"
-version = "3.10.0"
-description = "Read metadata from Python packages"
category = "dev"
+description = "Read metadata from Python packages"
+marker = "python_version < \"3.8\""
+name = "importlib-metadata"
optional = false
python-versions = ">=3.6"
+version = "4.0.1"
[package.dependencies]
-typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
zipp = ">=0.5"
+[package.dependencies.typing-extensions]
+python = "<3.8"
+version = ">=3.6.4"
+
[package.extras]
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)"]
[[package]]
-name = "iniconfig"
-version = "1.1.1"
-description = "iniconfig: brain-dead simple config-ini parsing"
category = "dev"
+description = "iniconfig: brain-dead simple config-ini parsing"
+name = "iniconfig"
optional = false
python-versions = "*"
+version = "1.1.1"
[[package]]
-name = "itsdangerous"
-version = "1.1.0"
-description = "Various helpers to pass data to untrusted environments and back."
category = "main"
+description = "Various helpers to pass data to untrusted environments and back."
+name = "itsdangerous"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "1.1.0"
[[package]]
-name = "jinja2"
-version = "2.11.3"
-description = "A very fast and expressive template engine."
category = "main"
+description = "A very fast and expressive template engine."
+name = "jinja2"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "2.11.3"
[package.dependencies]
MarkupSafe = ">=0.23"
@@ -200,231 +205,240 @@ MarkupSafe = ">=0.23"
i18n = ["Babel (>=0.8)"]
[[package]]
-name = "markupsafe"
-version = "1.1.1"
-description = "Safely add untrusted strings to HTML/XML markup."
category = "main"
+description = "Safely add untrusted strings to HTML/XML markup."
+name = "markupsafe"
optional = false
-python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
+python-versions = ">=3.6"
+version = "2.0.0"
[[package]]
-name = "packaging"
-version = "20.9"
-description = "Core utilities for Python packages"
category = "dev"
+description = "Core utilities for Python packages"
+name = "packaging"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "20.9"
[package.dependencies]
pyparsing = ">=2.0.2"
[[package]]
-name = "pluggy"
-version = "0.13.1"
-description = "plugin and hook calling mechanisms for python"
category = "dev"
+description = "plugin and hook calling mechanisms for python"
+name = "pluggy"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "0.13.1"
[package.dependencies]
-importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+[package.dependencies.importlib-metadata]
+python = "<3.8"
+version = ">=0.12"
[package.extras]
dev = ["pre-commit", "tox"]
[[package]]
-name = "psutil"
-version = "5.8.0"
-description = "Cross-platform lib for process and system monitoring in Python."
category = "main"
+description = "Cross-platform lib for process and system monitoring in Python."
+name = "psutil"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "5.8.0"
[package.extras]
test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"]
[[package]]
-name = "py"
-version = "1.10.0"
-description = "library with cross-python path, ini-parsing, io, code, log facilities"
category = "dev"
+description = "library with cross-python path, ini-parsing, io, code, log facilities"
+name = "py"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "1.10.0"
[[package]]
-name = "pycryptodome"
-version = "3.10.1"
-description = "Cryptographic library for Python"
category = "main"
+description = "Cryptographic library for Python"
+name = "pycryptodome"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "3.10.1"
[[package]]
-name = "pyparsing"
-version = "2.4.7"
-description = "Python parsing module"
category = "dev"
+description = "Python parsing module"
+name = "pyparsing"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+version = "2.4.7"
[[package]]
-name = "pysocks"
-version = "1.7.1"
-description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
category = "main"
+description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
+name = "pysocks"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "1.7.1"
[[package]]
-name = "pytest"
-version = "6.2.3"
-description = "pytest: simple powerful testing with Python"
category = "dev"
+description = "pytest: simple powerful testing with Python"
+name = "pytest"
optional = false
python-versions = ">=3.6"
+version = "6.2.4"
[package.dependencies]
-atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
+atomicwrites = ">=1.0"
attrs = ">=19.2.0"
-colorama = {version = "*", markers = "sys_platform == \"win32\""}
-importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+colorama = "*"
iniconfig = "*"
packaging = "*"
pluggy = ">=0.12,<1.0.0a1"
py = ">=1.8.2"
toml = "*"
+[package.dependencies.importlib-metadata]
+python = "<3.8"
+version = ">=0.12"
+
[package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
[[package]]
-name = "python-engineio"
-version = "4.0.1"
-description = "Engine.IO server"
category = "main"
+description = "Engine.IO server"
+name = "python-engineio"
optional = false
python-versions = "*"
+version = "4.2.0"
[package.extras]
asyncio_client = ["aiohttp (>=3.4)"]
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
[[package]]
-name = "python-socketio"
-version = "5.1.0"
-description = "Socket.IO server"
category = "main"
+description = "Socket.IO server"
+name = "python-socketio"
optional = false
python-versions = "*"
+version = "5.3.0"
[package.dependencies]
bidict = ">=0.21.0"
-python-engineio = ">=4"
+python-engineio = ">=4.1.0"
[package.extras]
asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"]
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
[[package]]
-name = "requests"
-version = "2.25.1"
-description = "Python HTTP for Humans."
category = "main"
+description = "Python HTTP for Humans."
+name = "requests"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "2.25.1"
[package.dependencies]
certifi = ">=2017.4.17"
chardet = ">=3.0.2,<5"
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"
+[package.dependencies.PySocks]
+optional = true
+version = ">=1.5.6,<1.5.7 || >1.5.7"
+
[package.extras]
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]]
-name = "six"
-version = "1.15.0"
-description = "Python 2 and 3 compatibility utilities"
category = "main"
+description = "Python 2 and 3 compatibility utilities"
+name = "six"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+version = "1.16.0"
[[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"
+description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)."
+name = "stem"
optional = false
python-versions = "*"
+version = "1.8.0"
[[package]]
-name = "toml"
-version = "0.10.2"
-description = "Python Library for Tom's Obvious, Minimal Language"
category = "dev"
+description = "Python Library for Tom's Obvious, Minimal Language"
+name = "toml"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+version = "0.10.2"
[[package]]
-name = "typing-extensions"
-version = "3.7.4.3"
-description = "Backported and Experimental Type Hints for Python 3.5+"
category = "dev"
+description = "Backported and Experimental Type Hints for Python 3.5+"
+marker = "python_version < \"3.8\""
+name = "typing-extensions"
optional = false
python-versions = "*"
+version = "3.10.0.0"
[[package]]
-name = "unidecode"
-version = "1.2.0"
-description = "ASCII transliterations of Unicode text"
category = "main"
+description = "ASCII transliterations of Unicode text"
+name = "unidecode"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "1.2.0"
[[package]]
-name = "urllib3"
-version = "1.26.4"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+name = "urllib3"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
+version = "1.26.4"
[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)"]
+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]]
-name = "werkzeug"
-version = "1.0.1"
-description = "The comprehensive WSGI web application library."
category = "main"
+description = "The comprehensive WSGI web application library."
+name = "werkzeug"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "1.0.1"
[package.extras]
dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"]
watchdog = ["watchdog"]
[[package]]
-name = "zipp"
-version = "3.4.1"
-description = "Backport of pathlib-compatible object wrapper for zip files"
category = "dev"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+marker = "python_version < \"3.8\""
+name = "zipp"
optional = false
python-versions = ">=3.6"
+version = "3.4.1"
[package.extras]
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"]
[metadata]
-lock-version = "1.1"
+content-hash = "e5b4d1dfb1871b971d8240c41fc16cb339246e880c5bf6be07d9303e6156fe93"
python-versions = "^3.6"
-content-hash = "af196689bfa09fc05b61fc0829e1b0b54888b5503602ff04174bc967d688c180"
[metadata.files]
atomicwrites = [
@@ -432,8 +446,8 @@ atomicwrites = [
{file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
]
attrs = [
- {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"},
- {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"},
+ {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"},
+ {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"},
]
bidict = [
{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"},
]
eventlet = [
- {file = "eventlet-0.30.2-py2.py3-none-any.whl", hash = "sha256:89cc6dbfef47c4629cefead5fde21c5f2b33464d57f7df5fc5148f8b4de3fbb5"},
- {file = "eventlet-0.30.2.tar.gz", hash = "sha256:1811b122d9a45eb5bafba092d36911bca825f835cb648a862bbf984030acff9d"},
+ {file = "eventlet-0.31.0-py2.py3-none-any.whl", hash = "sha256:27ae41fad9deed9bbf4166f3e3b65acc15d524d42210a518e5877da85a6b8c5d"},
+ {file = "eventlet-0.31.0.tar.gz", hash = "sha256:b36ec2ecc003de87fc87b93197d77fea528aa0f9204a34fdf3b2f8d0f01e017b"},
]
flask = [
- {file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"},
- {file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"},
+ {file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"},
+ {file = "Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196"},
]
flask-httpauth = [
- {file = "Flask-HTTPAuth-4.2.0.tar.gz", hash = "sha256:8c7e49e53ce7dc14e66fe39b9334e4b7ceb8d0b99a6ba1c3562bb528ef9da84a"},
- {file = "Flask_HTTPAuth-4.2.0-py2.py3-none-any.whl", hash = "sha256:3fcedb99a03985915335a38c35bfee6765cbd66d7f46440fa3b42ae94a90fac7"},
+ {file = "Flask-HTTPAuth-4.4.0.tar.gz", hash = "sha256:bcaaa7a35a3cba0b2eafd4f113b3016bf70eb78087456d96484c3c18928b813a"},
+ {file = "Flask_HTTPAuth-4.4.0-py2.py3-none-any.whl", hash = "sha256:d9131122cdc5709dda63790f6e9b3142d8101447d424b0b95ffd4ee279f49539"},
]
flask-socketio = [
{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"},
]
greenlet = [
- {file = "greenlet-1.0.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:1d1d4473ecb1c1d31ce8fd8d91e4da1b1f64d425c1dc965edc4ed2a63cfa67b2"},
- {file = "greenlet-1.0.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:cfd06e0f0cc8db2a854137bd79154b61ecd940dce96fad0cba23fe31de0b793c"},
- {file = "greenlet-1.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:eb333b90036358a0e2c57373f72e7648d7207b76ef0bd00a4f7daad1f79f5203"},
- {file = "greenlet-1.0.0-cp27-cp27m-win32.whl", hash = "sha256:1a1ada42a1fd2607d232ae11a7b3195735edaa49ea787a6d9e6a53afaf6f3476"},
- {file = "greenlet-1.0.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f6f65bf54215e4ebf6b01e4bb94c49180a589573df643735107056f7a910275b"},
- {file = "greenlet-1.0.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:f59eded163d9752fd49978e0bab7a1ff21b1b8d25c05f0995d140cc08ac83379"},
- {file = "greenlet-1.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:875d4c60a6299f55df1c3bb870ebe6dcb7db28c165ab9ea6cdc5d5af36bb33ce"},
- {file = "greenlet-1.0.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:1bb80c71de788b36cefb0c3bb6bfab306ba75073dbde2829c858dc3ad70f867c"},
- {file = "greenlet-1.0.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b5f1b333015d53d4b381745f5de842f19fe59728b65f0fbb662dafbe2018c3a5"},
- {file = "greenlet-1.0.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:5352c15c1d91d22902582e891f27728d8dac3bd5e0ee565b6a9f575355e6d92f"},
- {file = "greenlet-1.0.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:2c65320774a8cd5fdb6e117c13afa91c4707548282464a18cf80243cf976b3e6"},
- {file = "greenlet-1.0.0-cp35-cp35m-manylinux2014_ppc64le.whl", hash = "sha256:111cfd92d78f2af0bc7317452bd93a477128af6327332ebf3c2be7df99566683"},
- {file = "greenlet-1.0.0-cp35-cp35m-win32.whl", hash = "sha256:cdb90267650c1edb54459cdb51dab865f6c6594c3a47ebd441bc493360c7af70"},
- {file = "greenlet-1.0.0-cp35-cp35m-win_amd64.whl", hash = "sha256:eac8803c9ad1817ce3d8d15d1bb82c2da3feda6bee1153eec5c58fa6e5d3f770"},
- {file = "greenlet-1.0.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:c93d1a71c3fe222308939b2e516c07f35a849c5047f0197442a4d6fbcb4128ee"},
- {file = "greenlet-1.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:122c63ba795fdba4fc19c744df6277d9cfd913ed53d1a286f12189a0265316dd"},
- {file = "greenlet-1.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:c5b22b31c947ad8b6964d4ed66776bcae986f73669ba50620162ba7c832a6b6a"},
- {file = "greenlet-1.0.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:4365eccd68e72564c776418c53ce3c5af402bc526fe0653722bc89efd85bf12d"},
- {file = "greenlet-1.0.0-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:da7d09ad0f24270b20f77d56934e196e982af0d0a2446120cb772be4e060e1a2"},
- {file = "greenlet-1.0.0-cp36-cp36m-win32.whl", hash = "sha256:647ba1df86d025f5a34043451d7c4a9f05f240bee06277a524daad11f997d1e7"},
- {file = "greenlet-1.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:e6e9fdaf6c90d02b95e6b0709aeb1aba5affbbb9ccaea5502f8638e4323206be"},
- {file = "greenlet-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:62afad6e5fd70f34d773ffcbb7c22657e1d46d7fd7c95a43361de979f0a45aef"},
- {file = "greenlet-1.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d3789c1c394944084b5e57c192889985a9f23bd985f6d15728c745d380318128"},
- {file = "greenlet-1.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f5e2d36c86c7b03c94b8459c3bd2c9fe2c7dab4b258b8885617d44a22e453fb7"},
- {file = "greenlet-1.0.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:292e801fcb3a0b3a12d8c603c7cf340659ea27fd73c98683e75800d9fd8f704c"},
- {file = "greenlet-1.0.0-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:f3dc68272990849132d6698f7dc6df2ab62a88b0d36e54702a8fd16c0490e44f"},
- {file = "greenlet-1.0.0-cp37-cp37m-win32.whl", hash = "sha256:7cd5a237f241f2764324396e06298b5dee0df580cf06ef4ada0ff9bff851286c"},
- {file = "greenlet-1.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0ddd77586553e3daf439aa88b6642c5f252f7ef79a39271c25b1d4bf1b7cbb85"},
- {file = "greenlet-1.0.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:90b6a25841488cf2cb1c8623a53e6879573010a669455046df5f029d93db51b7"},
- {file = "greenlet-1.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ed1d1351f05e795a527abc04a0d82e9aecd3bdf9f46662c36ff47b0b00ecaf06"},
- {file = "greenlet-1.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:94620ed996a7632723a424bccb84b07e7b861ab7bb06a5aeb041c111dd723d36"},
- {file = "greenlet-1.0.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f97d83049715fd9dec7911860ecf0e17b48d8725de01e45de07d8ac0bd5bc378"},
- {file = "greenlet-1.0.0-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:0a77691f0080c9da8dfc81e23f4e3cffa5accf0f5b56478951016d7cfead9196"},
- {file = "greenlet-1.0.0-cp38-cp38-win32.whl", hash = "sha256:e1128e022d8dce375362e063754e129750323b67454cac5600008aad9f54139e"},
- {file = "greenlet-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d4030b04061fdf4cbc446008e238e44936d77a04b2b32f804688ad64197953c"},
- {file = "greenlet-1.0.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:f8450d5ef759dbe59f84f2c9f77491bb3d3c44bc1a573746daf086e70b14c243"},
- {file = "greenlet-1.0.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:df8053867c831b2643b2c489fe1d62049a98566b1646b194cc815f13e27b90df"},
- {file = "greenlet-1.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:df3e83323268594fa9755480a442cabfe8d82b21aba815a71acf1bb6c1776218"},
- {file = "greenlet-1.0.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:181300f826625b7fd1182205b830642926f52bd8cdb08b34574c9d5b2b1813f7"},
- {file = "greenlet-1.0.0-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:58ca0f078d1c135ecf1879d50711f925ee238fe773dfe44e206d7d126f5bc664"},
- {file = "greenlet-1.0.0-cp39-cp39-win32.whl", hash = "sha256:5f297cb343114b33a13755032ecf7109b07b9a0020e841d1c3cedff6602cc139"},
- {file = "greenlet-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:5d69bbd9547d3bc49f8a545db7a0bd69f407badd2ff0f6e1a163680b5841d2b0"},
- {file = "greenlet-1.0.0.tar.gz", hash = "sha256:719e169c79255816cdcf6dccd9ed2d089a72a9f6c42273aae12d55e8d35bdcf8"},
+ {file = "greenlet-1.1.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:60848099b76467ef09b62b0f4512e7e6f0a2c977357a036de602b653667f5f4c"},
+ {file = "greenlet-1.1.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f42ad188466d946f1b3afc0a9e1a266ac8926461ee0786c06baac6bd71f8a6f3"},
+ {file = "greenlet-1.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:76ed710b4e953fc31c663b079d317c18f40235ba2e3d55f70ff80794f7b57922"},
+ {file = "greenlet-1.1.0-cp27-cp27m-win32.whl", hash = "sha256:b33b51ab057f8a20b497ffafdb1e79256db0c03ef4f5e3d52e7497200e11f821"},
+ {file = "greenlet-1.1.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ed1377feed808c9c1139bdb6a61bcbf030c236dd288d6fca71ac26906ab03ba6"},
+ {file = "greenlet-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:da862b8f7de577bc421323714f63276acb2f759ab8c5e33335509f0b89e06b8f"},
+ {file = "greenlet-1.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5f75e7f237428755d00e7460239a2482fa7e3970db56c8935bd60da3f0733e56"},
+ {file = "greenlet-1.1.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:258f9612aba0d06785143ee1cbf2d7361801c95489c0bd10c69d163ec5254a16"},
+ {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d928e2e3c3906e0a29b43dc26d9b3d6e36921eee276786c4e7ad9ff5665c78a"},
+ {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc407b68e0a874e7ece60f6639df46309376882152345508be94da608cc0b831"},
+ {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c557c809eeee215b87e8a7cbfb2d783fb5598a78342c29ade561440abae7d22"},
+ {file = "greenlet-1.1.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:3d13da093d44dee7535b91049e44dd2b5540c2a0e15df168404d3dd2626e0ec5"},
+ {file = "greenlet-1.1.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b3090631fecdf7e983d183d0fad7ea72cfb12fa9212461a9b708ff7907ffff47"},
+ {file = "greenlet-1.1.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:06ecb43b04480e6bafc45cb1b4b67c785e183ce12c079473359e04a709333b08"},
+ {file = "greenlet-1.1.0-cp35-cp35m-win32.whl", hash = "sha256:944fbdd540712d5377a8795c840a97ff71e7f3221d3fddc98769a15a87b36131"},
+ {file = "greenlet-1.1.0-cp35-cp35m-win_amd64.whl", hash = "sha256:c767458511a59f6f597bfb0032a1c82a52c29ae228c2c0a6865cfeaeaac4c5f5"},
+ {file = "greenlet-1.1.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:2325123ff3a8ecc10ca76f062445efef13b6cf5a23389e2df3c02a4a527b89bc"},
+ {file = "greenlet-1.1.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:598bcfd841e0b1d88e32e6a5ea48348a2c726461b05ff057c1b8692be9443c6e"},
+ {file = "greenlet-1.1.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:be9768e56f92d1d7cd94185bab5856f3c5589a50d221c166cc2ad5eb134bd1dc"},
+ {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe7eac0d253915116ed0cd160a15a88981a1d194c1ef151e862a5c7d2f853d3"},
+ {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a6b035aa2c5fcf3dbbf0e3a8a5bc75286fc2d4e6f9cfa738788b433ec894919"},
+ {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca1c4a569232c063615f9e70ff9a1e2fee8c66a6fb5caf0f5e8b21a396deec3e"},
+ {file = "greenlet-1.1.0-cp36-cp36m-win32.whl", hash = "sha256:3096286a6072553b5dbd5efbefc22297e9d06a05ac14ba017233fedaed7584a8"},
+ {file = "greenlet-1.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c35872b2916ab5a240d52a94314c963476c989814ba9b519bc842e5b61b464bb"},
+ {file = "greenlet-1.1.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b97c9a144bbeec7039cca44df117efcbeed7209543f5695201cacf05ba3b5857"},
+ {file = "greenlet-1.1.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:16183fa53bc1a037c38d75fdc59d6208181fa28024a12a7f64bb0884434c91ea"},
+ {file = "greenlet-1.1.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6b1d08f2e7f2048d77343279c4d4faa7aef168b3e36039cba1917fffb781a8ed"},
+ {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14927b15c953f8f2d2a8dffa224aa78d7759ef95284d4c39e1745cf36e8cdd2c"},
+ {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bdcff4b9051fb1aa4bba4fceff6a5f770c6be436408efd99b76fc827f2a9319"},
+ {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70c7dd733a4c56838d1f1781e769081a25fade879510c5b5f0df76956abfa05"},
+ {file = "greenlet-1.1.0-cp37-cp37m-win32.whl", hash = "sha256:0de64d419b1cb1bfd4ea544bedea4b535ef3ae1e150b0f2609da14bbf48a4a5f"},
+ {file = "greenlet-1.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8833e27949ea32d27f7e96930fa29404dd4f2feb13cce483daf52e8842ec246a"},
+ {file = "greenlet-1.1.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:c1580087ab493c6b43e66f2bdd165d9e3c1e86ef83f6c2c44a29f2869d2c5bd5"},
+ {file = "greenlet-1.1.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ad80bb338cf9f8129c049837a42a43451fc7c8b57ad56f8e6d32e7697b115505"},
+ {file = "greenlet-1.1.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:a9017ff5fc2522e45562882ff481128631bf35da444775bc2776ac5c61d8bcae"},
+ {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7920e3eccd26b7f4c661b746002f5ec5f0928076bd738d38d894bb359ce51927"},
+ {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:408071b64e52192869129a205e5b463abda36eff0cebb19d6e63369440e4dc99"},
+ {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be13a18cec649ebaab835dff269e914679ef329204704869f2f167b2c163a9da"},
+ {file = "greenlet-1.1.0-cp38-cp38-win32.whl", hash = "sha256:22002259e5b7828b05600a762579fa2f8b33373ad95a0ee57b4d6109d0e589ad"},
+ {file = "greenlet-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:206295d270f702bc27dbdbd7651e8ebe42d319139e0d90217b2074309a200da8"},
+ {file = "greenlet-1.1.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:096cb0217d1505826ba3d723e8981096f2622cde1eb91af9ed89a17c10aa1f3e"},
+ {file = "greenlet-1.1.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:03f28a5ea20201e70ab70518d151116ce939b412961c33827519ce620957d44c"},
+ {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 = [
{file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
]
importlib-metadata = [
- {file = "importlib_metadata-3.10.0-py3-none-any.whl", hash = "sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe"},
- {file = "importlib_metadata-3.10.0.tar.gz", hash = "sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a"},
+ {file = "importlib_metadata-4.0.1-py3-none-any.whl", hash = "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d"},
+ {file = "importlib_metadata-4.0.1.tar.gz", hash = "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581"},
]
iniconfig = [
{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"},
]
markupsafe = [
- {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
- {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
- {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
- {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
- {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
- {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
- {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
- {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"},
+ {file = "MarkupSafe-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2efaeb1baff547063bad2b2893a8f5e9c459c4624e1a96644bbba08910ae34e0"},
+ {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:441ce2a8c17683d97e06447fcbccbdb057cbf587c78eb75ae43ea7858042fe2c"},
+ {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:45535241baa0fc0ba2a43961a1ac7562ca3257f46c4c3e9c0de38b722be41bd1"},
+ {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:90053234a6479738fd40d155268af631c7fca33365f964f2208867da1349294b"},
+ {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:3b54a9c68995ef4164567e2cd1a5e16db5dac30b2a50c39c82db8d4afaf14f63"},
+ {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:f58b5ba13a5689ca8317b98439fccfbcc673acaaf8241c1869ceea40f5d585bf"},
+ {file = "MarkupSafe-2.0.0-cp36-cp36m-win32.whl", hash = "sha256:a00dce2d96587651ef4fa192c17e039e8cfab63087c67e7d263a5533c7dad715"},
+ {file = "MarkupSafe-2.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:007dc055dbce5b1104876acee177dbfd18757e19d562cd440182e1f492e96b95"},
+ {file = "MarkupSafe-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a08cd07d3c3c17cd33d9e66ea9dee8f8fc1c48e2d11bd88fd2dc515a602c709b"},
+ {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:3c352ff634e289061711608f5e474ec38dbaa21e3e168820d53d5f4015e5b91b"},
+ {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:32200f562daaab472921a11cbb63780f1654552ae49518196fc361ed8e12e901"},
+ {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:fef86115fdad7ae774720d7103aa776144cf9b66673b4afa9bcaa7af990ed07b"},
+ {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:e79212d09fc0e224d20b43ad44bb0a0a3416d1e04cf6b45fed265114a5d43d20"},
+ {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:79b2ae94fa991be023832e6bcc00f41dbc8e5fe9d997a02db965831402551730"},
+ {file = "MarkupSafe-2.0.0-cp37-cp37m-win32.whl", hash = "sha256:3261fae28155e5c8634dd7710635fe540a05b58f160cef7713c7700cb9980e66"},
+ {file = "MarkupSafe-2.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e4570d16f88c7f3032ed909dc9e905a17da14a1c4cfd92608e3fda4cb1208bbd"},
+ {file = "MarkupSafe-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f806bfd0f218477d7c46a11d3e52dc7f5fdfaa981b18202b7dc84bbc287463b"},
+ {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e77e4b983e2441aff0c0d07ee711110c106b625f440292dfe02a2f60c8218bd6"},
+ {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:031bf79a27d1c42f69c276d6221172417b47cb4b31cdc73d362a9bf5a1889b9f"},
+ {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:83cf0228b2f694dcdba1374d5312f2277269d798e65f40344964f642935feac1"},
+ {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:4cc563836f13c57f1473bc02d1e01fc37bab70ad4ee6be297d58c1d66bc819bf"},
+ {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:d00a669e4a5bec3ee6dbeeeedd82a405ced19f8aeefb109a012ea88a45afff96"},
+ {file = "MarkupSafe-2.0.0-cp38-cp38-win32.whl", hash = "sha256:161d575fa49395860b75da5135162481768b11208490d5a2143ae6785123e77d"},
+ {file = "MarkupSafe-2.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:58bc9fce3e1557d463ef5cee05391a05745fd95ed660f23c1742c711712c0abb"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3fb47f97f1d338b943126e90b79cad50d4fcfa0b80637b5a9f468941dbbd9ce5"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dab0c685f21f4a6c95bfc2afd1e7eae0033b403dd3d8c1b6d13a652ada75b348"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:664832fb88b8162268928df233f4b12a144a0c78b01d38b81bdcf0fc96668ecb"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:df561f65049ed3556e5b52541669310e88713fdae2934845ec3606f283337958"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:24bbc3507fb6dfff663af7900a631f2aca90d5a445f272db5fc84999fa5718bc"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:87de598edfa2230ff274c4de7fcf24c73ffd96208c8e1912d5d0fee459767d75"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a19d39b02a24d3082856a5b06490b714a9d4179321225bbf22809ff1e1887cc8"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-win32.whl", hash = "sha256:4aca81a687975b35e3e80bcf9aa93fe10cd57fac37bf18b2314c186095f57e05"},
+ {file = "MarkupSafe-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:70820a1c96311e02449591cbdf5cd1c6a34d5194d5b55094ab725364375c9eb2"},
+ {file = "MarkupSafe-2.0.0.tar.gz", hash = "sha256:4fae0677f712ee090721d8b17f412f1cbceefbf0dc180fe91bab3232f38b4527"},
]
packaging = [
{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"},
]
pytest = [
- {file = "pytest-6.2.3-py3-none-any.whl", hash = "sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"},
- {file = "pytest-6.2.3.tar.gz", hash = "sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634"},
+ {file = "pytest-6.2.4-py3-none-any.whl", hash = "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"},
+ {file = "pytest-6.2.4.tar.gz", hash = "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b"},
]
python-engineio = [
- {file = "python-engineio-4.0.1.tar.gz", hash = "sha256:bb575c1a3512b4b5d4706f3071d5cc36e592459e99a47d9a4b7faabeba941377"},
- {file = "python_engineio-4.0.1-py2.py3-none-any.whl", hash = "sha256:759ec99d91b3d36b29596124c77ba7c063c7ab97685d318fb23a166d9a4b9187"},
+ {file = "python-engineio-4.2.0.tar.gz", hash = "sha256:4e97c1189c23923858f5bb6dc47cfcd915005383c3c039ff01c89f2c00d62077"},
+ {file = "python_engineio-4.2.0-py2.py3-none-any.whl", hash = "sha256:c6c119c2039fcb6f64d260211ca92c0c61b2b888a28678732a961f2aaebcc848"},
]
python-socketio = [
- {file = "python-socketio-5.1.0.tar.gz", hash = "sha256:338cc29abb6f3ca14c88f1f8d05ed27c690df4648f62062b299f92625bbf7093"},
- {file = "python_socketio-5.1.0-py2.py3-none-any.whl", hash = "sha256:8a7ed43bfdbbb266eb8a661a0c9648dc94bcd9689566ae3ee08bf98eca8987af"},
+ {file = "python-socketio-5.3.0.tar.gz", hash = "sha256:3dcc9785aaeef3a9eeb36c3818095662342744bdcdabd050fe697cdb826a1c2b"},
+ {file = "python_socketio-5.3.0-py2.py3-none-any.whl", hash = "sha256:d74314fd4241342c8a55c4f66d5cfea8f1a8fffd157af216c67e1c3a649a2444"},
]
requests = [
{file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
{file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
]
six = [
- {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
- {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
+ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
+ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
]
stem = [
{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"},
]
typing-extensions = [
- {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"},
- {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"},
- {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"},
+ {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"},
+ {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"},
+ {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"},
]
unidecode = [
{file = "Unidecode-1.2.0-py2.py3-none-any.whl", hash = "sha256:12435ef2fc4cdfd9cf1035a1db7e98b6b047fe591892e81f34e94959591fad00"},
diff --git a/cli/pyproject.toml b/cli/pyproject.toml
index 958d3434..b113e147 100644
--- a/cli/pyproject.toml
+++ b/cli/pyproject.toml
@@ -18,7 +18,7 @@ classifiers = [
[tool.poetry.dependencies]
python = "^3.6"
click = "*"
-flask = "*"
+flask = "^1.1.4"
flask-httpauth = "*"
flask-socketio = "5.0.1"
psutil = "*"
diff --git a/desktop/src/onionshare/resources/locale/bn.json b/desktop/src/onionshare/resources/locale/bn.json
index f0ab0d26..519ed878 100644
--- a/desktop/src/onionshare/resources/locale/bn.json
+++ b/desktop/src/onionshare/resources/locale/bn.json
@@ -285,5 +285,14 @@
"gui_main_page_chat_button": "চ্যাটিং শুরু করো",
"gui_main_page_website_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": "চ্যাট করতে প্রস্তুত"
}
diff --git a/desktop/src/onionshare/resources/locale/de.json b/desktop/src/onionshare/resources/locale/de.json
index 611cc4ce..4f04dd5b 100644
--- a/desktop/src/onionshare/resources/locale/de.json
+++ b/desktop/src/onionshare/resources/locale/de.json
@@ -303,6 +303,6 @@
"mode_settings_title_label": "Benutzerdefinierter Titel",
"gui_status_indicator_chat_started": "Chatted",
"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"
-}
+} \ No newline at end of file
diff --git a/desktop/src/onionshare/resources/locale/el.json b/desktop/src/onionshare/resources/locale/el.json
index be7e7d46..173982a4 100644
--- a/desktop/src/onionshare/resources/locale/el.json
+++ b/desktop/src/onionshare/resources/locale/el.json
@@ -10,7 +10,7 @@
"not_a_readable_file": "Το {0:s} δεν είναι αναγνώσιμο αρχείο.",
"no_available_port": "Δεν βρέθηκε διαθέσιμη θύρα για να ξεκινήσει η υπηρεσία onion",
"other_page_loaded": "Η διεύθυνση φορτώθηκε",
- "close_on_autostop_timer": "Τερματίστηκε λόγω της αυτόματης διακοπής",
+ "close_on_autostop_timer": "Τερματίστηκε λόγω αυτόματης διακοπής",
"closing_automatically": "Τερματίστηκε λόγω ολοκλήρωσης της λήψης",
"timeout_download_still_running": "Αναμονή ολοκλήρωσης της λήψης",
"large_filesize": "Προειδοποίηση: Η αποστολή μεγάλου όγκου δεδομένων μπορεί να διαρκέσει ώρες",
@@ -39,8 +39,8 @@
"gui_share_stop_server": "Τερματισμός διαμοιρασμού",
"gui_share_stop_server_autostop_timer": "Διακοπή διαμοιρασμού ({})",
"gui_share_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}",
- "gui_receive_start_server": "Εκκίνηση κατάστασης λήψης",
- "gui_receive_stop_server": "Τερματισμός κατάστασης λήψης",
+ "gui_receive_start_server": "Εκκίνηση λειτουργίας λήψης",
+ "gui_receive_stop_server": "Τερματισμός λειτουργίας λήψης",
"gui_receive_stop_server_autostop_timer": "Διακοπή λειτουργίας λήψης (απομένουν {})",
"gui_receive_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}",
"gui_copy_url": "Αντιγραφή διεύθυνσης",
@@ -49,9 +49,9 @@
"gui_no_downloads": "Καμία λήψη ως τώρα",
"gui_canceled": "Ακυρώθηκε",
"gui_copied_url_title": "Η διεύθυνση OnionShare αντιγράφτηκε",
- "gui_copied_url": "Η διεύθυνση OnionShare αντιγράφτηκε στον πίνακα",
+ "gui_copied_url": "Η διεύθυνση OnionShare αντιγράφτηκε στο πρόχειρο",
"gui_copied_hidservauth_title": "Το HidServAuth αντιγράφτηκε",
- "gui_copied_hidservauth": "Το HidServAuth αντιγράφτηκε στον πίνακα",
+ "gui_copied_hidservauth": "Το HidServAuth αντιγράφτηκε στο πρόχειρο",
"gui_please_wait": "Ξεκινάμε... Κάντε κλικ για ακύρωση.",
"gui_download_upload_progress_complete": "%p%, {0:s} πέρασαν.",
"gui_download_upload_progress_starting": "{0:s}, %p% (υπολογισμός)",
@@ -62,8 +62,8 @@
"gui_receive_quit_warning": "Αυτή τη στιγμή παραλαμβάνονται αρχείων. Είστε σίγουρος/η πώς θέλετε να κλείσετε το OnionShare;",
"gui_quit_warning_quit": "Έξοδος",
"gui_quit_warning_dont_quit": "Ακύρωση",
- "error_rate_limit": "Κάποιος/α έκανε πολλαπλές αποτυχημένες προσπάθειες να μαντέψει τον κωδικό σας. Γι' αυτό, το OnionShare σταμάτησε τον server. Ξεκινήστε πάλι το διαμοιρασμό και στείλτε στον/ην παραλήπτη/τρια μια νέα διεύθυνση για διαμοιρασμό.",
- "zip_progress_bar_format": "Συμπίεση: %p%",
+ "error_rate_limit": "Κάποιος/α προσπάθησε να μαντέψει τον κωδικό σας πολλές φορές. Για αυτό, το OnionShare τερματίστηκε αυτόματα. Πρέπει να ξεκινήσετε πάλι τον διαμοιρασμό και να στείλετε στον/ην παραλήπτη/τρια μια νέα διεύθυνση για να διαμοιραστούν αρχεία και μηνύματα μαζί σας.",
+ "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_ephemeral_not_supported": "Το OnionShare απαιτεί τουλάχιστον το Tor 0.2.7.1 και το python3-stem 1.4.0.",
"gui_settings_window_title": "Ρυθμίσεις",
@@ -71,7 +71,7 @@
"gui_settings_stealth_option": "Χρήση εξουσιοδότησης πελάτη",
"gui_settings_stealth_hidservauth_string": "Έχοντας αποθηκεύσει το ιδιωτικό σας κλειδί για επαναχρησιμοποίηση, μπορείτε πλέον να επιλέξετε την αντιγραφή του HidServAuth σας.",
"gui_settings_autoupdate_label": "Έλεγχος για νέα έκδοση",
- "gui_settings_autoupdate_option": "Ενημερώστε με όταν είναι διαθέσιμη μια νέα έκδοση",
+ "gui_settings_autoupdate_option": "Ενημερώστε με μόλις γίνει διαθέσιμη μια νέα έκδοση",
"gui_settings_autoupdate_timestamp": "Τελευταίος έλεγχος: {}",
"gui_settings_autoupdate_timestamp_never": "Ποτέ",
"gui_settings_autoupdate_check_button": "Έλεγχος για νέα έκδοση",
@@ -86,20 +86,20 @@
"gui_settings_connection_type_test_button": "Έλεγχος σύνδεσης με το Tor",
"gui_settings_control_port_label": "Πύλη ελέγχου",
"gui_settings_socket_file_label": "Αρχείο μετάβασης",
- "gui_settings_socks_label": "πύλη SOCKS",
+ "gui_settings_socks_label": "Πύλη SOCKS",
"gui_settings_authenticate_label": "Ρυθμίσεις επαλήθευσης Tor",
"gui_settings_authenticate_no_auth_option": "Χωρίς επαλήθευση ή επαλήθευση με cookie",
"gui_settings_authenticate_password_option": "Κωδικός",
"gui_settings_password_label": "Κωδικός",
- "gui_settings_tor_bridges": "Υποστήριξη Tor bridge",
- "gui_settings_tor_bridges_no_bridges_radio_option": "Να μη χρησιμοποιηθούν bridges",
+ "gui_settings_tor_bridges": "Υποστήριξη γεφυρών Tor",
+ "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_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_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_tor_bridges_custom_radio_option": "Χρήση παραμετροποιημένων bridges",
- "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_radio_option": "Χρήση παραμετροποιημένων γεφυρών",
+ "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_button_save": "Αποθήκευση",
"gui_settings_button_cancel": "Άκυρο",
@@ -107,30 +107,30 @@
"gui_settings_autostop_timer_checkbox": "Χρήση χρονομέτρου αυτόματης διακοπής",
"gui_settings_autostop_timer": "Διακοπή διαμοιρασμού σε:",
"settings_error_unknown": "Αποτυχία σύνδεσης στον ελεγκτή Tor, γιατί οι ρυθμίσεις σας δεν βγάζουν κανένα νόημα.",
- "settings_error_automatic": "Αδυναμία σύνδεσης στον ελεγκτή Tor. Λειτουργεί ο Tor Browser (διαθέσιμος στο torproject.org) στο παρασκήνιο;",
- "settings_error_socket_port": "Αδυναμία σύνδεσης στον ελεγκτή Tor στις {}:{}.",
- "settings_error_socket_file": "Αποτυχία σύνδεσης στον ελεγκτή Tor χρησιμοποιώντας το αρχείο socket {}.",
+ "settings_error_automatic": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor. Λειτουργεί ο Tor Browser (διαθέσιμος στο torproject.org) στο παρασκήνιο;",
+ "settings_error_socket_port": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor στις {}:{}.",
+ "settings_error_socket_file": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor χρησιμοποιώντας το αρχείο socket {}.",
"settings_error_auth": "Εγινε σύνδεση με {}:{}, αλλα δεν μπορεί να γίνει πιστοποίηση. Ίσως δεν είναι ελεγκτής 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_timeout": "Η σύνδεση με Tor αργεί αρκετά. Ισως δεν είστε συνδεδεμένοι στο Διαδίκτυο ή το ρολόι του συστήματος δεν είναι σωστό;",
+ "settings_error_bundled_tor_timeout": "Η σύνδεση με Tor καθυστερεί αρκετά. Ίσως δεν είστε συνδεδεμένοι στο Διαδίκτυο ή το ρολόι του συστήματος δεν είναι ρυθμισμένο σωστά;",
"settings_error_bundled_tor_broken": "Το OnionShare δεν μπορεί να συνδεθεί με το Tor στο παρασκήνιο:\n{}",
- "settings_test_success": "Εγινε σύνδεση με τον ελεγκτή Tor.\n\nΕκδοση Tor: {}\nΥποστηρίζει εφήμερες υπηρεσίες onion: {}.\nΥποστηρίζει πιστοποίηση πελάτη: {}.\nΥποστηρίζει νέας γενιάς διευθύνσεις .onion: {}.",
- "error_tor_protocol_error": "Υπήρξε σφάλμα με το Tor: {}",
+ "settings_test_success": "Εγινε σύνδεση με τον ελεγκτή Tor.\n\nΕκδοση Tor: {}\nΥποστηρίζει εφήμερες υπηρεσίες onion: {}.\nΥποστηρίζει πιστοποίηση πελάτη: {}.\nΥποστηρίζει διευθύνσεις .onion νέας γενιάς: {}.",
+ "error_tor_protocol_error": "Προέκυψε σφάλμα με το Tor: {}",
"error_tor_protocol_error_unknown": "Υπήρξε άγνωστο σφάλμα με το Tor",
"error_invalid_private_key": "Αυτο το ιδιωτικό κλειδί δεν υποστηρίζεται",
"connecting_to_tor": "Γίνεται σύνδεση στο δίκτυο Tor",
- "update_available": "Βγήκε ενα νέο OnionShare. <a href='{}'>Κάντε κλικ εδώ</a> για να το λάβετε.<br><br>Χρησιμοποιείτε {} και το πιό πρόσφατο είναι το {}.",
- "update_error_check_error": "Δεν μπόρεσε να γίνει έλεγχος για νέα έκδοση: ίσως δεν είστε συνδεδεμένοι στο Tor ή ο ιστότοπος OnionShare είναι εκτός λειτουργίας;",
- "update_error_invalid_latest_version": "Δεν μπορεί να γίνει έλεγχος για νέα έκδοση: η ιστοσελίδα OnionShare αναφέρει ότι η τελευταία έκδοση είναι η μη αναγνωρίσιμη \"{}\"…",
- "update_not_available": "Έχετε την πιό πρόσφατη έκδοση του OnionShare.",
- "gui_tor_connection_ask": "Άνοιγμα των ρυθμίσεων για να επιλύσετε την σύνδεση με το Tor;",
+ "update_available": "Υπάρχει διαθέσιμη ενημέρωση. <a href='{}'>Κάντε κλικ εδώ</a> για να την αποκτήσετε.<br><br>Χρησιμοποιείτε την έκδοση {}, ενώ η πιο πρόσφατη είναι η {}.",
+ "update_error_check_error": "Δεν ήταν δυνατός ο έλεγχος για ενημερώσεις: ίσως δεν είστε συνδεδεμένος στο Tor ή ο ιστότοπος OnionShare είναι εκτός λειτουργίας;",
+ "update_error_invalid_latest_version": "Δεν ήταν δυνατός ο έλεγχος για ενημερώσεις: η ιστοσελίδα OnionShare αναφέρει ότι η πιο πρόσφατη έκδοση είναι η μη αναγνωρίσιμη \"{}\"…",
+ "update_not_available": "Χρησιμοποιείτε την πιο πρόσφατη έκδοση του OnionShare.",
+ "gui_tor_connection_ask": "Θα θέλατε να ανοίξετε τις ρυθμίσεις για να φτιάξετε την σύνδεσή σας με το Tor;",
"gui_tor_connection_ask_open_settings": "Ναι",
"gui_tor_connection_ask_quit": "Έξοδος",
- "gui_tor_connection_error_settings": "Προσπαθήστε να αλλάξετε τον τρόπο σύνδεσης του OnionShare με το δίκτυο Tor από τις ρυθμίσεις.",
- "gui_tor_connection_canceled": "Δεν μπόρεσε να γίνει σύνδεση στο Tor.\n\nΕλέγξτε ότι είστε συνδεδεμένος/η στο Διαδίκτυο, επανεκκινήστε το OnionShare και ρυθμίστε την σύνδεση με το Tor.",
- "gui_tor_connection_lost": "Έγινε αποσύνδεση από το Tor.",
+ "gui_tor_connection_error_settings": "Ίσως να ήταν καλή ιδέα να αλλάξετε τον τρόπο σύνδεσης του OnionShare με το δίκτυο Tor από τις ρυθμίσεις.",
+ "gui_tor_connection_canceled": "Δεν ήταν δυνατή η σύνδεση στο δίκτυο του Tor.\n\nΕλέγξτε ότι είστε συνδεδεμένος/η στο Διαδίκτυο, επανεκκινήστε το OnionShare και ρυθμίστε την σύνδεση με το Tor.",
+ "gui_tor_connection_lost": "Έγινε αποσύνδεση από το δίκτυο του Tor.",
"gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.",
"gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.",
"share_via_onionshare": "Μοιραστείτε μέσω OnionShare",
@@ -138,15 +138,15 @@
"gui_save_private_key_checkbox": "Χρήση μόνιμης διεύθυνσης",
"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_url_label_persistent": "Αυτός ο διαμοιρασμός δεν θα λήξει αυτόματα.<br><br>Οποιοσδήποτε επακόλουθος διαμοιρασμός θα επαναχρησιμοποιήσει αυτή τη διεύθυνση. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)",
- "gui_url_label_stay_open": "Αυτός ο διαμοιρασμός δε λήγει αυτόματα.",
+ "gui_url_label_persistent": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.<br><br>Όσοι μοιράζονται αρχεία μαζί σας θα μπορέσουν να ξαναχρησιμοποιήσουν αυτή τη διεύθυνση αργότερα. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)",
+ "gui_url_label_stay_open": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.",
"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_working": "Εκκίνηση…",
- "gui_status_indicator_share_started": "Διαμοιρασμός",
+ "gui_status_indicator_share_started": "Γίνεται αποστολή",
"gui_status_indicator_receive_stopped": "Έτοιμο για λήψη",
- "gui_status_indicator_receive_working": "Ξεκινάει…",
+ "gui_status_indicator_receive_working": "Γίνεται εκκίνηση…",
"gui_status_indicator_receive_started": "Γίνεται λήψη",
"gui_file_info": "{} αρχεία, {}",
"gui_file_info_single": "{} αρχείο, {}",
@@ -186,7 +186,7 @@
"gui_add_files": "Προσθήκη αρχείων",
"gui_add_folder": "Προσθήκη φακέλου",
"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": "Τα αρχεία που στάλθηκαν σε εσας εμφανίζοντε στον φάκελο: {}",
"gui_settings_data_dir_label": "Αποθήκευση αρχείων σε",
"gui_settings_data_dir_browse_button": "Περιήγηση",
@@ -207,7 +207,7 @@
"gui_all_modes_progress_complete": "%p%, πέρασαν {0:s}.",
"gui_all_modes_progress_starting": "{0: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_receive_mode_no_files": "Δεν έχει γίνει λήψη αρχείων ακόμα",
"gui_receive_mode_autostop_timer_waiting": "Αναμένεται η ολοκλήρωση της λήψης",
@@ -216,7 +216,7 @@
"gui_all_modes_transfer_canceled": "Ακυρώθηκε {}",
"gui_stop_server_autostop_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": "Εκκίνηση διαμοιρασμού σε:",
"gui_server_autostart_timer_expired": "Η προγραμματισμένη ώρα έχει ήδη παρέλθει. Παρακαλώ ρυθμίστε τη για να ξεκινήσετε το διαμοιρασμό.",
@@ -227,16 +227,16 @@
"hours_first_letter": "ώ",
"minutes_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_website_mode_no_files": "Η ιστοσελίδα δεν έχει μοιραστεί ακόμα",
- "incorrect_password": "Λάθος κωδικός πρόσβασης",
+ "gui_website_mode_no_files": "Δεν έχει γίνει διαμοιρασμός ιστοσελίδας ακόμα",
+ "incorrect_password": "Λάθος κωδικός",
"gui_settings_individual_downloads_label": "Απεπιλέξτε για να επιτρέψετε τη λήψη μεμονωμένων αρχείων",
"history_requests_tooltip": "{} αιτήματα δικτύου",
"gui_settings_csp_header_disabled_option": "Απενεργοποίηση της κεφαλίδας Content Security Policy",
"gui_settings_website_label": "Ρυθμίσεις ιστοσελίδας",
"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_start_server": "Έναρξη διακομιστή συνομιλίας",
"mode_settings_website_disable_csp_checkbox": "Μην στέλνετε κεφαλίδα με περιεχόμενο από την πολιτικής ασφάλειας σας (επιτρέπει στην ιστοσελίδα σας να χρησιμοποιεί πόρους τρίτων)",
@@ -252,15 +252,15 @@
"mode_settings_advanced_toggle_hide": "Απόκρυψη προχωρημένων ρυθμίσεων",
"mode_settings_advanced_toggle_show": "Εμφάνιση προχωρημένων ρυθμίσεων",
"gui_quit_warning_cancel": "Άκυρο",
- "gui_quit_warning_description": "Είναι ενεργή η κοινή χρήση σε ορισμένες καρτέλες. Εάν κάνετε έξοδο, όλες οι καρτέλες σας θα κλείσουν. Είστε σίγουροι;",
- "gui_quit_warning_title": "Είστε σίγουροι;",
+ "gui_quit_warning_description": "Είναι ενεργή η κοινή χρήση σε ορισμένες καρτέλες. Εάν κάνετε έξοδο, όλες οι καρτέλες σας θα κλείσουν. Είστε σίγουρος/η;",
+ "gui_quit_warning_title": "Είστε σίγουρος/η;",
"gui_close_tab_warning_cancel": "Άκυρο",
"gui_close_tab_warning_close": "Κλείσιμο",
- "gui_close_tab_warning_website_description": "Φιλοξενείτε ενεργά έναν ιστότοπο. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;",
- "gui_close_tab_warning_receive_description": "Η λήψη αρχείων δεν ολοκληρώθηκε. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;",
- "gui_close_tab_warning_share_description": "Η αποστολή αρχείων δεν ολοκληρώθηκε. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;",
- "gui_close_tab_warning_persistent_description": "Η καρτέλα δεν είναι μόνιμη. Εάν την κλείσετε, θα χαθεί η διεύθυνση onion που χρησιμοποιεί. Είστε βέβαιοι ότι θέλετε να την κλείσετε;",
- "gui_close_tab_warning_title": "Είστε σίγουροι;",
+ "gui_close_tab_warning_website_description": "Φιλοξενείτε έναν ιστότοπο. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;",
+ "gui_close_tab_warning_receive_description": "Η λήψη αρχείων δεν έχει ολοκληρωθεί. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;",
+ "gui_close_tab_warning_share_description": "Η αποστολή αρχείων δεν έχει ολοκληρωθεί ακόμα. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;",
+ "gui_close_tab_warning_persistent_description": "Η καρτέλα δεν είναι μόνιμη. Εάν την κλείσετε, θα χαθεί η διεύθυνση onion που χρησιμοποιείτε. Είστε βέβαιοι ότι θέλετε να την κλείσετε;",
+ "gui_close_tab_warning_title": "Είστε σίγουρος/η;",
"gui_tab_name_chat": "Συνομιλία",
"gui_tab_name_website": "Ιστότοπος",
"gui_tab_name_receive": "Λήψη",
@@ -270,9 +270,9 @@
"gui_main_page_receive_button": "Έναρξη λήψης",
"gui_main_page_share_button": "Έναρξη διαμοιρασμού",
"gui_new_tab_chat_button": "Συνομιλήστε ανώνυμα",
- "gui_new_tab_website_button": "Φιλοξενήστε έναν ιστότοπο",
+ "gui_new_tab_website_button": "Φιλοξενία ιστότοπου",
"gui_new_tab_receive_button": "Λήψη αρχείων",
- "gui_new_tab_share_button": "Διαμοιράστε αρχεία",
+ "gui_new_tab_share_button": "Διαμοιρασμός αρχείων",
"gui_new_tab_tooltip": "Άνοιγμα νέας καρτέλας",
"gui_new_tab": "Νέα καρτέλα",
"gui_qr_code_dialog_title": "Κώδικας QR OnionShare",
@@ -282,7 +282,7 @@
"error_port_not_available": "Η θύρα OnionShare δεν είναι διαθέσιμη",
"gui_rendezvous_cleanup_quit_early": "Πρόωρη έξοδος",
"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 για εφαρμοστεί το νέο χρώμα.",
"history_receive_read_message_button": "Ανάγνωση μηνύματος",
"mode_settings_receive_webhook_url_checkbox": "Χρήση ειδοποίησης webhook",
@@ -293,4 +293,4 @@
"gui_status_indicator_chat_scheduled": "Δρομολόγηση…",
"gui_status_indicator_chat_working": "Εκκίνηση…",
"gui_status_indicator_chat_stopped": "Έτοιμο για συνομιλία"
-}
+} \ No newline at end of file
diff --git a/desktop/src/onionshare/resources/locale/fr.json b/desktop/src/onionshare/resources/locale/fr.json
index f23a11e9..8c4bf20a 100644
--- a/desktop/src/onionshare/resources/locale/fr.json
+++ b/desktop/src/onionshare/resources/locale/fr.json
@@ -95,7 +95,7 @@
"settings_error_missing_password": "Vous êtes connecté au contrôleur Tor, mais il exige un mot de passe d’authentification.",
"settings_error_unreadable_cookie_file": "Vous êtes connecté au contrôleur Tor, mais le mot de passe est peut-être erroné ou votre utilisateur n’est 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_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 n’a pas réussi à se connecter à Tor :\n{}",
"error_tor_protocol_error": "Une erreur 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 d’ancrage Web de notification",
"mode_settings_receive_disable_files_checkbox": "Désactiver le téléversement de fichiers",
"mode_settings_receive_disable_text_checkbox": "Désactiver l’envoi 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"
}
diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/src/onionshare/resources/locale/gl.json
index 86fc7b8e..67b095cc 100644
--- a/desktop/src/onionshare/resources/locale/gl.json
+++ b/desktop/src/onionshare/resources/locale/gl.json
@@ -196,5 +196,10 @@
"history_receive_read_message_button": "Ler mensaxe",
"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_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"
}
diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json
index 9cfc310d..e5a6d893 100644
--- a/desktop/src/onionshare/resources/locale/hi.json
+++ b/desktop/src/onionshare/resources/locale/hi.json
@@ -21,7 +21,7 @@
"help_verbose": "",
"help_filename": "",
"help_config": "",
- "gui_drag_and_drop": "साझा शुरू करने के लिए\nफाइलों एवं फोल्डरों को ड्रैग और ड्रॉप करें",
+ "gui_drag_and_drop": "साझा शुरू करने के लिए फाइलों एवं फोल्डरों को ड्रैग और ड्रॉप करें",
"gui_add": "जोड़ें",
"gui_add_files": "फाइल जोड़ें",
"gui_add_folder": "फोल्डर जोड़ें",
@@ -186,5 +186,10 @@
"gui_waiting_to_start": "{} में शुरू होने के लिए शेडयूल है। रद्द करने के लिए क्लिक करें।",
"incorrect_password": "पासवर्ड गलत है",
"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": "हटाएं"
}
diff --git a/desktop/src/onionshare/resources/locale/nl.json b/desktop/src/onionshare/resources/locale/nl.json
index 2b5ced73..32e8f204 100644
--- a/desktop/src/onionshare/resources/locale/nl.json
+++ b/desktop/src/onionshare/resources/locale/nl.json
@@ -26,7 +26,7 @@
"help_verbose": "Log OnionShare fouten naar stdout, en web fouten naar disk",
"help_filename": "Lijst van bestanden of mappen om te delen",
"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_delete": "Verwijder",
"gui_choose_items": "Kies",
@@ -75,7 +75,7 @@
"gui_settings_button_help": "Help",
"gui_settings_autostop_timer": "Stop het delen om:",
"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_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 {}.",
@@ -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: {}.",
"error_tor_protocol_error": "Er was een fout met Tor: {}",
"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_error_check_error": "Kon niet controleren op een nieuwe versie: de OnionShare website meldt dat de laatste versie de onherkenbare is '{}' is…",
- "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_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: 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.",
"gui_tor_connection_ask": "Open de instellingen om het verbindingsprobleem met Tor op te lossen?",
"gui_tor_connection_ask_open_settings": "Ja",
@@ -139,7 +139,7 @@
"gui_use_legacy_v2_onions_checkbox": "Gebruik ouderwetse adressen",
"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_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_stay_open": "Deze share stopt niet automatisch.",
"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_autostop_timer_checkbox": "Stop 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_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_website": "Website",
"gui_tab_name_receive": "Ontvang",
@@ -286,5 +286,19 @@
"gui_chat_stop_server": "Stop chat server",
"gui_chat_start_server": "Start chat server",
"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"
}
diff --git a/desktop/src/onionshare/resources/locale/ru.json b/desktop/src/onionshare/resources/locale/ru.json
index 95484e8b..47e7e4d1 100644
--- a/desktop/src/onionshare/resources/locale/ru.json
+++ b/desktop/src/onionshare/resources/locale/ru.json
@@ -126,7 +126,7 @@
"settings_error_bundled_tor_timeout": "Подключение к Tor занимает слишком много времени. Возможно, отсутствует подключение к сети Интернет, или у вас неточно настроено системное время?",
"settings_error_bundled_tor_broken": "Ошибка подключения OnionShare к Tor в фоновом режиме:\n{}",
"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_invalid_private_key": "Этот приватный ключ не поддерживается",
"connecting_to_tor": "Подключение к сети Tor",
@@ -283,5 +283,14 @@
"gui_rendezvous_cleanup_quit_early": "Выйти Раньше",
"gui_rendezvous_cleanup": "Ожидается завершение соединений с сетью Tor для подтверждения успешной отправки ваших файлов.\n\nЭто может занять несколько минут.",
"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": "Готов начать чат"
}
diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json
index c646594f..9b217970 100644
--- a/desktop/src/onionshare/resources/locale/tr.json
+++ b/desktop/src/onionshare/resources/locale/tr.json
@@ -263,5 +263,9 @@
"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_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"
}
diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json
index 316c2dc4..03ea9dfb 100644
--- a/desktop/src/onionshare/resources/locale/uk.json
+++ b/desktop/src/onionshare/resources/locale/uk.json
@@ -238,5 +238,9 @@
"history_receive_read_message_button": "Читати повідомлення",
"mode_settings_receive_disable_files_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": "Готовий до спілкування"
}
diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py
index 3a38ff8e..acaa9739 100644
--- a/desktop/tests/gui_base_test.py
+++ b/desktop/tests/gui_base_test.py
@@ -465,6 +465,20 @@ class GuiBaseTest(unittest.TestCase):
# We should have timed out now
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
def run_all_common_setup_tests(self):
diff --git a/desktop/tests/test_gui_chat.py b/desktop/tests/test_gui_chat.py
index 7a19168b..15ecaa44 100644
--- a/desktop/tests/test_gui_chat.py
+++ b/desktop/tests/test_gui_chat.py
@@ -30,7 +30,7 @@ class TestChat(GuiBaseTest):
def change_username(self, tab):
"""Test that we can change our 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"):
r = requests.post(url, json=data)
else:
@@ -47,7 +47,7 @@ class TestChat(GuiBaseTest):
self.assertTrue(jsonResponse["success"])
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"""
self.server_working_on_start_button_pressed(tab)
self.server_status_indicator_says_starting(tab)
@@ -58,8 +58,9 @@ class TestChat(GuiBaseTest):
self.have_copy_url_button(tab)
self.have_show_qr_code_button(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.web_server_is_stopped(tab)
self.server_status_indicator_says_closed(tab)
@@ -71,5 +72,27 @@ class TestChat(GuiBaseTest):
Test chat mode
"""
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()
diff --git a/desktop/tests/test_gui_receive.py b/desktop/tests/test_gui_receive.py
index 6e14ae67..b523b0fa 100644
--- a/desktop/tests/test_gui_receive.py
+++ b/desktop/tests/test_gui_receive.py
@@ -286,3 +286,22 @@ class TestReceive(GuiBaseTest):
self.run_all_upload_non_writable_dir_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_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()
diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py
index 380d63f6..531e456f 100644
--- a/desktop/tests/test_gui_share.py
+++ b/desktop/tests/test_gui_share.py
@@ -608,3 +608,20 @@ class TestShare(GuiBaseTest):
self.hit_401(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_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()
diff --git a/desktop/tests/test_gui_website.py b/desktop/tests/test_gui_website.py
index a838cb96..f526756a 100644
--- a/desktop/tests/test_gui_website.py
+++ b/desktop/tests/test_gui_website.py
@@ -99,3 +99,19 @@ class TestWebsite(GuiBaseTest):
tab.get_mode().disable_csp_checkbox.click()
self.run_all_website_mode_download_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_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()
diff --git a/docs/build.sh b/docs/build.sh
index c5e38b18..53999f68 100755
--- a/docs/build.sh
+++ b/docs/build.sh
@@ -3,7 +3,7 @@
VERSION=`cat ../cli/onionshare_cli/resources/version.txt`
# Supported locales
-LOCALES="de en es el tr uk ru"
+LOCALES="en de el ru es tr uk"
# Generate English .po files
make gettext
diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree
index 3a142d54..0b23bda0 100644
--- a/docs/gettext/.doctrees/advanced.doctree
+++ b/docs/gettext/.doctrees/advanced.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/develop.doctree b/docs/gettext/.doctrees/develop.doctree
index 8c48f7e0..45a2d587 100644
--- a/docs/gettext/.doctrees/develop.doctree
+++ b/docs/gettext/.doctrees/develop.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle
index 4b580f66..ba79cd05 100644
--- a/docs/gettext/.doctrees/environment.pickle
+++ b/docs/gettext/.doctrees/environment.pickle
Binary files differ
diff --git a/docs/gettext/.doctrees/features.doctree b/docs/gettext/.doctrees/features.doctree
index 339a9870..9411a3a0 100644
--- a/docs/gettext/.doctrees/features.doctree
+++ b/docs/gettext/.doctrees/features.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/help.doctree b/docs/gettext/.doctrees/help.doctree
index 32e71df0..bfb05b4f 100644
--- a/docs/gettext/.doctrees/help.doctree
+++ b/docs/gettext/.doctrees/help.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/index.doctree b/docs/gettext/.doctrees/index.doctree
index 6ae4d2f8..0907fdee 100644
--- a/docs/gettext/.doctrees/index.doctree
+++ b/docs/gettext/.doctrees/index.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree
index ec507658..6c9b9ade 100644
--- a/docs/gettext/.doctrees/install.doctree
+++ b/docs/gettext/.doctrees/install.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree
index 0d5182b7..48200490 100644
--- a/docs/gettext/.doctrees/security.doctree
+++ b/docs/gettext/.doctrees/security.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/tor.doctree b/docs/gettext/.doctrees/tor.doctree
index 378ebe7d..332a20d0 100644
--- a/docs/gettext/.doctrees/tor.doctree
+++ b/docs/gettext/.doctrees/tor.doctree
Binary files differ
diff --git a/docs/gettext/advanced.pot b/docs/gettext/advanced.pot
index cb156739..ecb4bcc9 100644
--- a/docs/gettext/advanced.pot
+++ b/docs/gettext/advanced.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot
index 8ef36381..3822530c 100644
--- a/docs/gettext/develop.pot
+++ b/docs/gettext/develop.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/features.pot b/docs/gettext/features.pot
index 2cfc8b20..0ca234b0 100644
--- a/docs/gettext/features.pot
+++ b/docs/gettext/features.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/help.pot b/docs/gettext/help.pot
index c9b8bb60..c2172a2f 100644
--- a/docs/gettext/help.pot
+++ b/docs/gettext/help.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/index.pot b/docs/gettext/index.pot
index dfd37dcc..dbabad62 100644
--- a/docs/gettext/index.pot
+++ b/docs/gettext/index.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/install.pot b/docs/gettext/install.pot
index 014b8ea7..f9b9242e 100644
--- a/docs/gettext/install.pot
+++ b/docs/gettext/install.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/security.pot b/docs/gettext/security.pot
index 60321bb3..4dfa7776 100644
--- a/docs/gettext/security.pot
+++ b/docs/gettext/security.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/sphinx.pot b/docs/gettext/sphinx.pot
index 1ba2b441..e367403f 100644
--- a/docs/gettext/sphinx.pot
+++ b/docs/gettext/sphinx.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/tor.pot b/docs/gettext/tor.pot
index 1a53dfad..66d64a75 100644
--- a/docs/gettext/tor.pot
+++ b/docs/gettext/tor.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.2\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 8d8bc100..16ac89b6 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -7,11 +7,11 @@ templates_path = ["_templates"]
exclude_patterns = []
languages = [
- ("Deutsch", "de"), # German
("English", "en"), # English
- ("Español", "es"), # Spanish
+ ("Deutsch", "de"), # German
("Ελληνικά", "el"), # Greek
- ("Русский", "ru"), # Ukranian
+ ("Русский", "ru"), # Russian
+ ("Español", "es"), # Spanish
("Türkçe", "tr"), # Turkish
("Українська", "uk"), # Ukranian
]
diff --git a/docs/source/locale/de/LC_MESSAGES/advanced.po b/docs/source/locale/de/LC_MESSAGES/advanced.po
index 46433e1e..52266b78 100644
--- a/docs/source/locale/de/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/de/LC_MESSAGES/advanced.po
@@ -8,14 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n"
-"PO-Revision-Date: 2020-11-17 10:28+0000\n"
-"Last-Translator: mv87 <mv87@dismail.de>\n"
-"Language: de\n"
+"PO-Revision-Date: 2021-05-11 20:47+0000\n"
+"Last-Translator: Lukas <lukas@fuchtmann.net>\n"
"Language-Team: de <LL@li.org>\n"
-"Plural-Forms: nplurals=2; plural=n != 1\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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"
#: ../../source/advanced.rst:2
@@ -118,7 +119,7 @@ msgstr ""
#: ../../source/advanced.rst:40
msgid "Custom Titles"
-msgstr ""
+msgstr "Benutzerdefinierte Titel"
#: ../../source/advanced.rst:42
msgid ""
@@ -126,12 +127,18 @@ msgid ""
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
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
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
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
msgid "Scheduled Times"
@@ -413,4 +420,3 @@ msgstr ""
#~ "Windows aufsetzen (siehe "
#~ ":ref:`starting_development`) und dann Folgendes "
#~ "auf der Befehlszeile ausführen::"
-
diff --git a/docs/source/locale/de/LC_MESSAGES/features.po b/docs/source/locale/de/LC_MESSAGES/features.po
index d142287a..115a8973 100644
--- a/docs/source/locale/de/LC_MESSAGES/features.po
+++ b/docs/source/locale/de/LC_MESSAGES/features.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n"
-"PO-Revision-Date: 2021-05-11 05:34+0000\n"
-"Last-Translator: Michael Breidenbach <leahc@tutanota.com>\n"
+"PO-Revision-Date: 2021-05-11 20:47+0000\n"
+"Last-Translator: Lukas <lukas@fuchtmann.net>\n"
"Language-Team: de <LL@li.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
@@ -161,9 +161,9 @@ msgid ""
"or the person is otherwise exposed to danger, use an encrypted messaging "
"app."
msgstr ""
-"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und "
-"schicke sie der Person, die die Dateien empfangen soll. Falls die Dateien"
-" sicher bleiben sollen oder die Person sonstwie einer Gefahr ausgesetzt "
+"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und schicke "
+"sie der Person, die die Dateien empfangen soll. Falls die Dateien sicher "
+"bleiben sollen oder die Person anderweitig irgendeiner Gefahr ausgesetzt "
"ist, nutze einen verschlüsselten Messenger."
#: ../../source/features.rst:42
@@ -189,10 +189,16 @@ msgid ""
"anonymous dropbox. Open a receive tab and choose the settings that you "
"want."
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
msgid "You can browse for a folder to save messages and files that get submitted."
msgstr ""
+"Du kannst ein Verzeichnis zum Speichern von Nachrichten und Dateien "
+"auswählen, die übermittelt werden."
#: ../../source/features.rst:56
msgid ""
@@ -200,6 +206,11 @@ msgid ""
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
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
msgid ""
@@ -215,6 +226,18 @@ msgid ""
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
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
msgid ""
@@ -223,6 +246,10 @@ msgid ""
" be able to submit files and messages which get uploaded to your "
"computer."
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
msgid ""
@@ -230,13 +257,12 @@ msgid ""
"the history and progress of people sending files to you."
msgstr ""
"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 "
-"rechner anzeigen zu lassen."
+"klicken, um dir den Verlauf und den Fortschritt der an deinen Computer "
+"übertragenen Dateien anzeigen zu lassen."
#: ../../source/features.rst:69
-#, fuzzy
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
msgid ""
@@ -245,6 +271,10 @@ msgid ""
"folder on your computer, automatically organized into separate subfolders"
" based on the time that the files get uploaded."
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
msgid ""
@@ -296,6 +326,8 @@ msgstr ""
#: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
+"Allerdings ist es stets unbedenklich, über OnionShare gesendete "
+"Textnachrichten zu öffnen."
#: ../../source/features.rst:87
msgid "Tips for running a receive service"
@@ -314,17 +346,17 @@ msgstr ""
"mit dem, den du sonst regelmäßig benutzt."
#: ../../source/features.rst:91
-#, fuzzy
msgid ""
"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 "
"public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)."
msgstr ""
-"Falls du deine OnionShare-Adresse auf deiner Webseite oder auf deinen "
-"Profilen in den sozialen Medien verbreiten möchtest, solltest du den "
-"Reiter speichern (siehe :ref:`save_tabs`) und den Dienst als öffentlichen"
-" Dienst betreiben (siehe :ref:`disable password`)."
+"Falls du deine OnionShare-Adresse auf deiner Webseite oder deinen Social "
+"Media-Profilen teilen willst, solltest du den Reiter speichern (siehe "
+":ref:`save_tabs`) und den Service als öffentlich festlegen. (siehe :ref:`"
+"disable password`). In diesem Fall wäre es auch eine gute Idee, einen "
+"benutzerdefinierten Titel festzulegen (siehe :ref:`custom_titles`)."
#: ../../source/features.rst:94
msgid "Host a Website"
diff --git a/docs/source/locale/el/LC_MESSAGES/advanced.po b/docs/source/locale/el/LC_MESSAGES/advanced.po
index 7bbdfef6..86cf3b15 100644
--- a/docs/source/locale/el/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/el/LC_MESSAGES/advanced.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n"
-"PO-Revision-Date: 2021-05-11 14:30+0000\n"
-"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n"
+"PO-Revision-Date: 2021-05-11 20:47+0000\n"
+"Last-Translator: Mr.Grin <grin-singularity@tutanota.com>\n"
"Language-Team: el <LL@li.org>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
@@ -118,7 +118,7 @@ msgstr ""
#: ../../source/advanced.rst:40
msgid "Custom Titles"
-msgstr "Προσαρμοσμένοι τίτλοι"
+msgstr "Προσαρμοσμένοι Τίτλοι"
#: ../../source/advanced.rst:42
msgid ""
@@ -126,10 +126,10 @@ msgid ""
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
-"Από προεπιλογή, όταν κάποιος χρησιμοποιήσει μία υπηρεσία OnionShare στο Tor "
-"Browser, θα δουν έναν προεπιλεγμένο τίτλο ανάλογα με τον τύπο υπηρεσίας που "
-"χρησιμοποιούν. Για παράδειγμα, η \"Συνομιλία OnionShare\" αποτελεί τον "
-"προεπιλεγμένο τίτλο της υπηρεσίας συνομιλιών."
+"Από προεπιλογή, όταν κάποιος φορτώσει μια υπηρεσία OnionShare στο Tor "
+"Browser, βλέπει τον προεπιλεγμένο τίτλο για τον τύπο της υπηρεσίας. Για "
+"παράδειγμα, ο προεπιλεγμένος τίτλος μιας υπηρεσίας συνομιλίας είναι "
+"\"OnionShare Συνομιλία\"."
#: ../../source/advanced.rst:44
msgid ""
diff --git a/docs/source/locale/el/LC_MESSAGES/develop.po b/docs/source/locale/el/LC_MESSAGES/develop.po
index ef0f3238..3fb9a79d 100644
--- a/docs/source/locale/el/LC_MESSAGES/develop.po
+++ b/docs/source/locale/el/LC_MESSAGES/develop.po
@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:43-0800\n"
-"PO-Revision-Date: 2020-12-01 17:29+0000\n"
-"Last-Translator: george k <norhorn@gmail.com>\n"
+"PO-Revision-Date: 2021-05-11 20:47+0000\n"
+"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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"
#: ../../source/develop.rst:2
@@ -38,15 +38,15 @@ msgid ""
"<https://keybase.io/team/onionshare>`_. Within the app, go to \"Teams\", "
"click \"Join a Team\", and type \"onionshare\"."
msgstr ""
-"Το OnionShare έχει μια ανοιχτή πιστοποιημένη (Keybase) ομάδα για να συζητά "
-"το έργο, να υποβάλει ερωτήσεις, να μοιραστεί ιδέες και σχέδια και να κάνει "
-"σχέδια για μελλοντική ανάπτυξη. (Είναι επίσης ένας εύκολος τρόπος για την "
-"αποστολή κρυπτογραφημένων μηνυμάτων στην κοινότητα του OnionShare, όπως οι "
-"διευθύνσεις OnionShare.) Για να χρησιμοποιήσετε το Keybase, κατεβάστε την `"
-"εφαρμογή Keybase <https://keybase.io/download>`_ , δημιουργήστε λογαριασμό "
-"και `εγγραφείτε στην ομάδα <https://keybase.io/team/onionshare>`_. Μέσα στην "
-"εφαρμογή, μεταβείτε στην ενότητα \"Ομάδες\", κάντε κλικ στην επιλογή "
-"\"Συμμετοχή σε ομάδα\" και πληκτρολογήστε το \"onionshare\"."
+"Το OnionShare έχει ένα κανάλι συζητήσεων στο Keybase για να μπορέσει ο "
+"καθένας να μιλήσει για αυτό, να υποβάλει ερωτήσεις, να μοιραστεί ιδέες και "
+"σχέδια και να κάνει μελλοντικά σχέδια πάνω σε αυτό. (Είναι επίσης ένας "
+"εύκολος τρόπος για την αποστολή κρυπτογραφημένων μηνυμάτων στην κοινότητα "
+"του OnionShare, όπως οι διευθύνσεις OnionShare.) Για να χρησιμοποιήσετε το "
+"Keybase, κατεβάστε την `εφαρμογή Keybase <https://keybase.io/download>`_ , "
+"δημιουργήστε λογαριασμό και `εγγραφείτε στην ομάδα <https://keybase.io/team/"
+"onionshare>`_. Μέσα στην εφαρμογή, μεταβείτε στην ενότητα \"Ομάδες\", κάντε "
+"κλικ στην επιλογή \"Συμμετοχή σε ομάδα\" και πληκτρολογήστε \"onionshare\"."
#: ../../source/develop.rst:12
msgid ""
@@ -54,9 +54,9 @@ msgid ""
"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
"and and designers to discuss the project."
msgstr ""
-"Το OnionShare διαθέτει `λίστα email <https://lists.riseup.net/www/subscribe/"
-"onionshare-dev>`_ για προγραμματιστές και σχεδιαστές με σκοό την ανταλλαγή "
-"απόψεων."
+"Το OnionShare διαθέτει `λίστα ηλεκτρονικού ταχυδρομίου <https://lists.riseup."
+"net/www/subscribe/onionshare-dev>`_ για προγραμματιστές και σχεδιαστές με "
+"σκοό την ανταλλαγή απόψεων."
#: ../../source/develop.rst:15
msgid "Contributing Code"
diff --git a/docs/source/locale/el/LC_MESSAGES/features.po b/docs/source/locale/el/LC_MESSAGES/features.po
index 4d8769fe..029d1215 100644
--- a/docs/source/locale/el/LC_MESSAGES/features.po
+++ b/docs/source/locale/el/LC_MESSAGES/features.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-05-03 21:48-0700\n"
-"PO-Revision-Date: 2021-05-11 12:19+0000\n"
-"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n"
+"PO-Revision-Date: 2021-05-11 20:47+0000\n"
+"Last-Translator: Iris S. <iris.sousouni@protonmail.com>\n"
"Language-Team: el <LL@li.org>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
@@ -50,10 +50,11 @@ msgid ""
"model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr ""
"Είστε υπεύθυνος για την ασφαλή κοινή χρήση της διεύθυνσης ιστού "
-"χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, όπως με ένα "
-"κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο ασφαλές, όπως μη "
-"κρυπτογραφημένα μηνύματα ηλεκτρονικού ταχυδρομείου, ανάλογα με το `πόσο "
-"ευπαθής είστε <https://ssd.eff.org/module/your-security-plan>`_."
+"χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, όπως ένα "
+"κρυπτογραφημένο μήνυμα ή και χρησιμοποιώντας σχετικά λιγότερο ασφαλή "
+"κανάλια, όπως μη κρυπτογραφημένα μηνύματα ηλεκτρονικού ταχυδρομείου, ανάλογα "
+"με το `αν βρίσκεστε σε ρίσκο <https://ssd.eff.org/module/your-security-"
+"plan>`_."
#: ../../source/features.rst:14
msgid ""
@@ -71,10 +72,11 @@ msgid ""
"until your laptop is unsuspended and on the Internet again. OnionShare "
"works best when working with people in real-time."
msgstr ""
-"Εάν εκτελέσετε το OnionShare στο laptop σας για να στείλετε αρχεία και το "
-"laptop τεθεί σε αναστολή πριν η μεταφορά ολοκληρωθεί, δεν θα είναι δυνατή η "
-"ολοκλήρωση της μεταφοράς έως ότου ο φορητός υπολογιστής σας συνδεθεί ξανά "
-"στο Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα χωρίς διακοπές."
+"Εάν χρησιμοποιήσετε το OnionShare στον φορητό υπολογιστή σας για να στείλετε "
+"αρχεία και ο υπολογιστής αυτός κλείσει προτού ολοκληρωθεί η μεταφορά, δεν θα "
+"είναι δυνατή η ολοκλήρωση της έως ότου ο φορητός υπολογιστής σας συνδεθεί "
+"ξανά στο Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα όταν συνεργάζεστε με "
+"τον παραλήπτη σε πραγματικό χρόνο."
#: ../../source/features.rst:18
msgid ""
@@ -201,10 +203,11 @@ msgid ""
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr ""
-"Μπορείτε να επιλέξετε \"Απενεργοποίηση υποβολής κειμένου\", εάν θέλετε να "
-"επιτρέπεται μόνο το ανέβασμα αρχείων. Αντίστοιχα, μπορείτε να επιλέξετε "
-"\"Απενεργοποίηση φόρτωσης αρχείων\", εάν θέλετε να επιτραπεί μόνο η αποστολή "
-"ανώνυμων μηνυμάτων κειμένου, όπως, για παράδειγμα, σε μία φόρμα επικοινωνίας."
+"Μπορείτε να επιλέξετε \"Απενεργοποίηση υποβολής κειμένου\" εάν θέλετε να "
+"επιτρέπετε το ανέβασαμα μόνο αρχείων, και μπορείτε να επιλέξετε "
+"\"Απενεργοποίηση υποβολής αρχείων\" εάν θέλετε να επιτρέπετε την υποβολή "
+"ανώνυμων μηνυμάτων κειμένου, για παράδειγμα για μια ανώνυμη φόρμα "
+"επικοινωνίας."
#: ../../source/features.rst:58
msgid ""
@@ -220,6 +223,18 @@ msgid ""
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
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
msgid ""
@@ -408,8 +423,8 @@ msgid ""
msgstr ""
"Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία ή "
"κώδικα JavaScript από CDN, επιλέξτε το πλαίσιο \"Μην στέλνετε την κεφαλίδα "
-"Πολιτικής ασφάλειας περιεχομένου (επιτρέπει στην ιστοσελίδα σας να "
-"χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσία."
+"Πολιτικής Ασφαλείας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας να "
+"χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσίας."
#: ../../source/features.rst:116
msgid "Tips for running a website service"
diff --git a/docs/source/locale/el/LC_MESSAGES/install.po b/docs/source/locale/el/LC_MESSAGES/install.po
index bbb17007..0c001dc6 100644
--- a/docs/source/locale/el/LC_MESSAGES/install.po
+++ b/docs/source/locale/el/LC_MESSAGES/install.po
@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n"
-"PO-Revision-Date: 2020-12-31 19:29+0000\n"
-"Last-Translator: george k <norhorn@gmail.com>\n"
+"PO-Revision-Date: 2021-05-11 20:47+0000\n"
+"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n"
"Language-Team: el <LL@li.org>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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"
#: ../../source/install.rst:2
@@ -47,11 +47,11 @@ msgid ""
"that you'll always use the newest version and run OnionShare inside of a "
"sandbox."
msgstr ""
-"Υπάρχουν αρκετοί τρόποι εγκατάστασης του OnionShare σε Linux, προτείνεται "
-"όμως να γίνει μέσω του `Flatpak <https://flatpak.org/>`_ ή του πακέτου `Snap "
-"<https://snapcraft.io/>`_. Τα Flatpak και Snap διασφαλίζουν ότι θα "
-"χρησιμοποιείτε πάντα τη νεότερη έκδοση και ότι θα εκτελείτε το OnionShare "
-"μέσα σε sandbox."
+"Υπάρχουν αρκετοί τρόποι εγκατάστασης του OnionShare σε Linux. Ο προτιμότερος "
+"είναι η εγκατάσταση μέσω του `Flatpak <https://flatpak.org/>`_ ή του πακέτου "
+"`Snap <https://snapcraft.io/>`_. Οι τεχνολογίες Flatpak και Snap "
+"διασφαλίζουν ότι θα χρησιμοποιείτε πάντα τη νεότερη έκδοση και ότι το "
+"OnionShare θα εκτελείται μέσα σε sandbox."
#: ../../source/install.rst:17
msgid ""
@@ -184,7 +184,7 @@ msgstr ""
"την ακεραιότητα του αρχείου (κακόβουλο ή άλλο) και δεν πρέπει να "
"εγκαταστήσετε το πακέτο. (Η ''ΠΡΟΕΙΔΟΠΟΙΗΣΗ:'' που φαίνεται παραπάνω, δεν "
"αποτελεί πρόβλημα με το πακέτο, σημαίνει μόνο ότι δεν έχετε ήδη ορίσει "
-"κανένα επίπεδο 'εμπιστοσύνης' του κλειδιού PGP του Micah)."
+"κανένα επίπεδο 'εμπιστοσύνης' του κλειδιού PGP του Micah.)"
#: ../../source/install.rst:71
msgid ""
diff --git a/docs/source/locale/fr/LC_MESSAGES/tor.po b/docs/source/locale/fr/LC_MESSAGES/tor.po
index 137e9024..2a5f16b2 100644
--- a/docs/source/locale/fr/LC_MESSAGES/tor.po
+++ b/docs/source/locale/fr/LC_MESSAGES/tor.po
@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n"
-"PO-Revision-Date: 2021-03-10 10:02+0000\n"
-"Last-Translator: AO Localisation Lab <ao@localizationlab.org>\n"
+"PO-Revision-Date: 2021-05-16 16:32+0000\n"
+"Last-Translator: Agnes de Lion <belocurry@pm.me>\n"
"Language-Team: none\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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"
#: ../../source/tor.rst:2
@@ -180,8 +180,8 @@ msgstr ""
#: ../../source/tor.rst:67
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr ""
-"Maintenant, configurez Tor pour permettre les connexions à partir "
-"d’OnionShare ::"
+"Maintenant, configurez Tor pour autoriser les connexions à partir d’"
+"OnionShare :"
#: ../../source/tor.rst:74
msgid "And start the system Tor service::"
@@ -258,7 +258,7 @@ msgstr ""
#: ../../source/tor.rst:111
msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
-msgstr ""
+msgstr "Pour configurer les ponts, cliquez sur l'icône \"⚙\" dans OnionShare."
#: ../../source/tor.rst:113
msgid ""
diff --git a/docs/source/locale/nl/LC_MESSAGES/help.po b/docs/source/locale/nl/LC_MESSAGES/help.po
index d1eb81e9..726a2ea3 100644
--- a/docs/source/locale/nl/LC_MESSAGES/help.po
+++ b/docs/source/locale/nl/LC_MESSAGES/help.po
@@ -3,37 +3,41 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"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"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-05-14 19:05+0000\n"
+"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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"
#: ../../source/help.rst:2
msgid "Getting Help"
-msgstr ""
+msgstr "Hulp krijgen"
#: ../../source/help.rst:5
msgid "Read This Website"
-msgstr ""
+msgstr "Lees deze website"
#: ../../source/help.rst:7
msgid ""
"You will find instructions on how to use OnionShare. Look through all of "
"the sections first to see if anything answers your questions."
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
msgid "Check the GitHub Issues"
-msgstr ""
+msgstr "Controleer de issues op GitHub"
#: ../../source/help.rst:12
msgid ""
@@ -42,12 +46,17 @@ msgid ""
" else has encountered the same problem and either raised it with the "
"developers, or maybe even posted a solution."
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
msgid "Submit an Issue Yourself"
-msgstr ""
+msgstr "Dien zelf een probleem in"
#: ../../source/help.rst:17
+#, fuzzy
msgid ""
"If you are unable to find a solution, or wish to ask a question or "
"suggest a new feature, please `submit an issue "
@@ -55,16 +64,23 @@ msgid ""
"`creating a GitHub account <https://help.github.com/articles/signing-up-"
"for-a-new-github-account/>`_."
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
msgid "Join our Keybase Team"
-msgstr ""
+msgstr "Word lid van ons Keybase-team"
#: ../../source/help.rst:22
msgid ""
"See :ref:`collaborating` on how to join the Keybase team used to discuss "
"the project."
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."
#~ msgstr ""
@@ -117,4 +133,3 @@ msgstr ""
#~ "that we use to discuss the "
#~ "project."
#~ msgstr ""
-
diff --git a/docs/source/locale/nl/LC_MESSAGES/index.po b/docs/source/locale/nl/LC_MESSAGES/index.po
index 2ad2653c..86b50ade 100644
--- a/docs/source/locale/nl/LC_MESSAGES/index.po
+++ b/docs/source/locale/nl/LC_MESSAGES/index.po
@@ -3,27 +3,31 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"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"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-05-14 13:32+0000\n"
+"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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"
#: ../../source/index.rst:2
msgid "OnionShare's documentation"
-msgstr ""
+msgstr "OnionShare documentatie"
#: ../../source/index.rst:6
msgid ""
"OnionShare is an open source tool that lets you securely and anonymously "
"share files, host websites, and chat with friends using the Tor network."
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."
diff --git a/docs/source/locale/nl/LC_MESSAGES/install.po b/docs/source/locale/nl/LC_MESSAGES/install.po
index 8a1e3472..d1432286 100644
--- a/docs/source/locale/nl/LC_MESSAGES/install.po
+++ b/docs/source/locale/nl/LC_MESSAGES/install.po
@@ -3,39 +3,44 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"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"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-05-14 19:05+0000\n"
+"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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"
#: ../../source/install.rst:2
msgid "Installation"
-msgstr ""
+msgstr "Installatie"
#: ../../source/install.rst:5
msgid "Windows or macOS"
-msgstr ""
+msgstr "Windows of macOS"
#: ../../source/install.rst:7
msgid ""
"You can download OnionShare for Windows and macOS from the `OnionShare "
"website <https://onionshare.org/>`_."
msgstr ""
+"Je kan OnionShare downloaden voor Windows en macOS van de `OnionShare "
+"website <https://onionshare.org/>`_."
#: ../../source/install.rst:12
msgid "Install in Linux"
-msgstr ""
+msgstr "Installatie onder Linux"
#: ../../source/install.rst:14
+#, fuzzy
msgid ""
"There are various ways to install OnionShare for Linux, but the "
"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 "
"sandbox."
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
msgid ""
"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."
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
msgid ""
"**Install OnionShare using Flatpak**: "
"https://flathub.org/apps/details/org.onionshare.OnionShare"
msgstr ""
+"**Installeer OnionShare via Flatpak**: https://flathub.org/apps/details/org."
+"onionshare.OnionShare"
#: ../../source/install.rst:21
msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare"
-msgstr ""
+msgstr "**Installeer OnionShare via Snap**: https://snapcraft.io/onionshare"
#: ../../source/install.rst:23
msgid ""
"You can also download and install PGP-signed ``.flatpak`` or ``.snap`` "
"packages from https://onionshare.org/dist/ if you prefer."
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
msgid "Verifying PGP signatures"
-msgstr ""
+msgstr "PGP-handtekeningen verifiëren"
#: ../../source/install.rst:30
msgid ""
@@ -78,10 +95,15 @@ msgid ""
"binaries include operating system-specific signatures, and you can just "
"rely on those alone if you'd like."
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
msgid "Signing key"
-msgstr ""
+msgstr "Ondertekeningsleutel"
#: ../../source/install.rst:36
msgid ""
@@ -91,6 +113,11 @@ msgid ""
"<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
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
msgid ""
@@ -98,10 +125,13 @@ msgid ""
"probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you "
"probably want `Gpg4win <https://www.gpg4win.org/>`_."
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
msgid "Signatures"
-msgstr ""
+msgstr "Handtekeningen"
#: ../../source/install.rst:43
msgid ""
@@ -111,10 +141,16 @@ msgid ""
"OnionShare. You can also find them on the `GitHub Releases page "
"<https://github.com/micahflee/onionshare/releases>`_."
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
+#, fuzzy
msgid "Verifying"
-msgstr ""
+msgstr "Verifiëren"
#: ../../source/install.rst:49
msgid ""
@@ -122,14 +158,17 @@ msgid ""
"downloaded the binary and and ``.asc`` signature, you can verify the "
"binary for macOS in a terminal like this::"
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
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
msgid "The expected output looks like this::"
-msgstr ""
+msgstr "De verwachte output ziet er als volgt uit::"
#: ../../source/install.rst:69
msgid ""
@@ -139,6 +178,11 @@ msgid ""
" the package, it only means you haven't already defined any level of "
"'trust' of Micah's PGP key.)"
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
msgid ""
@@ -147,6 +191,10 @@ msgid ""
" the `Tor Project <https://support.torproject.org/tbb/how-to-verify-"
"signature/>`_ may be useful."
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"
#~ msgstr ""
@@ -333,4 +381,3 @@ msgstr ""
#~ "Project <https://support.torproject.org/tbb/how-to-"
#~ "verify-signature/>`_ may be helpful."
#~ msgstr ""
-
diff --git a/docs/source/locale/nl/LC_MESSAGES/security.po b/docs/source/locale/nl/LC_MESSAGES/security.po
index 05816266..d6cd5828 100644
--- a/docs/source/locale/nl/LC_MESSAGES/security.po
+++ b/docs/source/locale/nl/LC_MESSAGES/security.po
@@ -3,35 +3,39 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"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"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-05-14 13:32+0000\n"
+"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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"
#: ../../source/security.rst:2
msgid "Security Design"
-msgstr ""
+msgstr "Beveiligingsontwerp"
#: ../../source/security.rst:4
msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works."
msgstr ""
+"Lees eerst :ref: `how_it_works`om een idee te krijgen hoe OnionShare werkt."
#: ../../source/security.rst:6
msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
msgstr ""
+"Net als alle software kan ook OnionShare bugs of kwetsbaarheden bevatten."
#: ../../source/security.rst:9
msgid "What OnionShare protects against"
-msgstr ""
+msgstr "Waar OnionShare tegen beschermd"
#: ../../source/security.rst:11
msgid ""
@@ -42,6 +46,12 @@ msgid ""
"server for that too. This avoids the traditional model of having to trust"
" the computers of others."
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
msgid ""
@@ -53,6 +63,13 @@ msgid ""
"Browser with OnionShare's onion service, the traffic is encrypted using "
"the onion service's private key."
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
msgid ""
@@ -62,6 +79,11 @@ msgid ""
"Browser users, the Tor Browser users and eavesdroppers can't learn the "
"identity of the OnionShare user."
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
msgid ""
@@ -76,10 +98,22 @@ msgid ""
"OnionShare stops the server, preventing brute force attacks against the "
"password."
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
+#, fuzzy
msgid "What OnionShare doesn't protect against"
-msgstr ""
+msgstr "Waar OnionShare niet tegen beschermt"
#: ../../source/security.rst:22
msgid ""
@@ -93,6 +127,17 @@ msgid ""
" disappearing messages enabled), encrypted email, or in person. This "
"isn't necessary when using OnionShare for something that isn't secret."
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
msgid ""
@@ -102,6 +147,11 @@ msgid ""
" Tor, can be used to share the address. This isn't necessary unless "
"anonymity is a goal."
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"
#~ msgstr ""
@@ -241,4 +291,3 @@ msgstr ""
#~ " share the address. This isn't "
#~ "necessary unless anonymity is a goal."
#~ msgstr ""
-
diff --git a/docs/source/locale/nl/LC_MESSAGES/sphinx.po b/docs/source/locale/nl/LC_MESSAGES/sphinx.po
index f2cc8ed5..f6c9fc74 100644
--- a/docs/source/locale/nl/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/nl/LC_MESSAGES/sphinx.po
@@ -3,25 +3,26 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"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"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-05-14 13:32+0000\n"
+"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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"
#: ../../source/_templates/versions.html:10
msgid "Versions"
-msgstr ""
+msgstr "Versies"
#: ../../source/_templates/versions.html:18
msgid "Languages"
-msgstr ""
-
+msgstr "Talen"
diff --git a/docs/source/locale/ru/LC_MESSAGES/advanced.po b/docs/source/locale/ru/LC_MESSAGES/advanced.po
index 9e586f3b..25c7d791 100644
--- a/docs/source/locale/ru/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/ru/LC_MESSAGES/advanced.po
@@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\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"
-"Language: ru\n"
"Language-Team: ru <LL@li.org>\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"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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"
#: ../../source/advanced.rst:2
@@ -116,7 +117,7 @@ msgstr ""
#: ../../source/advanced.rst:40
msgid "Custom Titles"
-msgstr ""
+msgstr "Указать заголовок"
#: ../../source/advanced.rst:42
msgid ""
@@ -124,12 +125,17 @@ msgid ""
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
+"По умолчанию, когда люди открывают страницу OnionShare в браузере Tor, они "
+"видят стандартное название сервиса. Например, стандартный заголовок чата это "
+"\"OnionShare Chat\"."
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
+"Если вы хотите указать своё название для сервиса, используйте настройку "
+"\"Custom title\" перед запуском сервиса."
#: ../../source/advanced.rst:47
msgid "Scheduled Times"
@@ -493,4 +499,3 @@ msgstr ""
#~ " services will soon be removed from"
#~ " OnionShare as well."
#~ msgstr ""
-
diff --git a/docs/source/locale/ru/LC_MESSAGES/features.po b/docs/source/locale/ru/LC_MESSAGES/features.po
index 28bbda3e..2821be25 100644
--- a/docs/source/locale/ru/LC_MESSAGES/features.po
+++ b/docs/source/locale/ru/LC_MESSAGES/features.po
@@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\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"
-"Language: ru\n"
"Language-Team: ru <LL@li.org>\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"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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"
#: ../../source/features.rst:4
@@ -179,7 +180,7 @@ msgstr ""
#: ../../source/features.rst:47
msgid "Receive Files and Messages"
-msgstr ""
+msgstr "Получение файлов и сообщений"
#: ../../source/features.rst:49
msgid ""
@@ -188,10 +189,15 @@ msgid ""
"anonymous dropbox. Open a receive tab and choose the settings that you "
"want."
msgstr ""
+"Вы можете использовать OnionShare, чтобы дать людям возможность анонимно "
+"отправлять файлы и сообщения прямо на ваш компьютер, по сути превращая его в "
+"анонимный аналог Dropbox. Откройте вкладку \"Получить\" и установите "
+"желаемые настройки."
#: ../../source/features.rst:54
msgid "You can browse for a folder to save messages and files that get submitted."
msgstr ""
+"Вы можете указать папку, куда будут сохраняться полученные файлы и сообщения."
#: ../../source/features.rst:56
msgid ""
@@ -199,6 +205,9 @@ msgid ""
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr ""
+"Вы можете запретить отправку сообщений, если хотите только получить файлы. "
+"Или запретить загрузку файлов, если хотите только отправлять сообщения. "
+"Например, чтобы сделать анонимную форму для связи."
#: ../../source/features.rst:58
msgid ""
@@ -214,6 +223,17 @@ msgid ""
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
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
msgid ""
@@ -222,6 +242,10 @@ msgid ""
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
+"Когда вы будете готовы, нажмите «Запустить режим получения». Это запустит "
+"службу OnionShare. Любой, кто откроет этот адрес в своём Tor-браузере, "
+"сможет отправлять файлы и сообщения, которые будут загружены на ваш "
+"компьютер."
#: ../../source/features.rst:67
msgid ""
@@ -232,7 +256,6 @@ msgstr ""
"кнопку \"↓\" в правом верхнем углу."
#: ../../source/features.rst:69
-#, fuzzy
msgid "Here is what it looks like for someone sending you files and messages."
msgstr "Примерно так выглядит OnionShare когда кто-то вам отправляет файлы."
@@ -243,6 +266,10 @@ msgid ""
"folder on your computer, automatically organized into separate subfolders"
" based on the time that the files get uploaded."
msgstr ""
+"Когда кто-либо загружает файлы или отправляет текстовые сообщения на ваш "
+"сервис приёма данных, по умолчанию они (файлы и сообщения) сохраняются в "
+"папку ``OnionShare`` в домашнией директории компьютера и автоматически "
+"распределяются в поддиректории в зависимости от времени загрузки."
#: ../../source/features.rst:75
msgid ""
@@ -291,6 +318,8 @@ msgstr ""
#: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
+"Тем не менее, открывать сообщения присланные через OnionShare всегда "
+"безопасно."
#: ../../source/features.rst:87
msgid "Tips for running a receive service"
@@ -994,4 +1023,3 @@ msgstr ""
#~ "комьютера пользователя. Эта директория "
#~ "автоматически создаёт поддиректории в "
#~ "зависимости от времени загрузки."
-