Merge branch 'develop' into add_security_headers

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

View File

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

View File

@ -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);
}

View File

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

View File

@ -23,6 +23,7 @@
<div class="chat-container no-js">
<div class="chat-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>
</html>

View File

@ -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
@ -90,7 +94,7 @@ class ReceiveModeWeb:
title=self.web.settings.get("general", "title")
)
@self.web.app.route("/upload", methods=["POST"])
@self.web.app.route("/upload", methods=["POST"], provide_automatic_options=False)
def upload(ajax=False):
"""
Handle the upload files POST request, though at this point, the files have
@ -221,7 +225,7 @@ class ReceiveModeWeb:
title=self.web.settings.get("general", "title"),
)
@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()

View File

@ -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()
@ -207,10 +211,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,

View File

@ -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.
@ -159,7 +159,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.

View File

@ -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)

506
cli/poetry.lock generated
View File

@ -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"
category = "main"
description = "Universal encoding detector for Python 2 and 3"
category = "main"
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"
category = "main"
description = "Composable command line interface toolkit"
category = "main"
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"
category = "main"
description = "Cross-platform colored terminal text."
category = "main"
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"},

View File

@ -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 = "*"

View File

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

View File

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

View File

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

View File

@ -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": "চ্যাট করতে প্রস্তুত"
}

View File

@ -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"
}
}

View File

@ -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": "Έτοιμο για συνομιλία"
}
}

View File

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

View File

@ -196,5 +196,10 @@
"history_receive_read_message_button": "Ler mensaxe",
"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"
}

View File

@ -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": "हटाएं"
}

View File

@ -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"
}

View File

@ -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": "Готов начать чат"
}

View File

@ -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"
}

View File

@ -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": "Готовий до спілкування"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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):

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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
]

View File

@ -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::"

View File

@ -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"

View File

@ -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 ""

View File

@ -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"

View File

@ -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"

View File

@ -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 ""

View File

@ -8,7 +8,7 @@ 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"
"PO-Revision-Date: 2021-05-21 21:32+0000\n"
"Last-Translator: AO Localisation Lab <ao@localizationlab.org>\n"
"Language-Team: none\n"
"Language: fr\n"
@ -16,7 +16,7 @@ msgstr ""
"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 "
"dOnionShare ::"
"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 des ponts, cliquez sur licône « ⚙ » dans OnionShare."
#: ../../source/tor.rst:113
msgid ""

View File

@ -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 ""

View File

@ -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."

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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"

View File

@ -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 ""

View File

@ -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 ""
#~ "комьютера пользователя. Эта директория "
#~ "автоматически создаёт поддиректории в "
#~ "зависимости от времени загрузки."