diff options
author | Micah Lee <micah@micahflee.com> | 2021-05-25 17:08:19 -0700 |
---|---|---|
committer | Micah Lee <micah@micahflee.com> | 2021-05-25 17:08:19 -0700 |
commit | 40919dca6ff01b996eaf8fec44e6150a101864db (patch) | |
tree | c5248c15589c58289e6bc7988c4106966330f513 | |
parent | dc7b80e2ef307ca9adc0514603a47f5057e5215f (diff) | |
parent | c682b7ec01bdd395a0bbc8e652473bc9de90067b (diff) | |
download | onionshare-40919dca6ff01b996eaf8fec44e6150a101864db.tar.gz onionshare-40919dca6ff01b996eaf8fec44e6150a101864db.zip |
Merge branch 'develop' into 1347_micah_scroll_options
60 files changed, 947 insertions, 513 deletions
diff --git a/cli/onionshare_cli/resources/static/js/chat.js b/cli/onionshare_cli/resources/static/js/chat.js index 258b020b..de64c094 100644 --- a/cli/onionshare_cli/resources/static/js/chat.js +++ b/cli/onionshare_cli/resources/static/js/chat.js @@ -88,7 +88,7 @@ var emitMessage = function (socket) { var updateUsername = function (socket) { var username = $('#username').val(); - if (!checkUsernameExists(username)) { + if (!checkUsernameExists(username) && !checkUsernameTooLong(username)) { $.ajax({ method: 'POST', url: `http://${document.domain}:${location.port}/update-session-username`, @@ -133,6 +133,15 @@ var checkUsernameExists = function (username) { return false; } +var checkUsernameTooLong = function (username) { + $('#username-error').text(''); + if (username.length > 128) { + $('#username-error').text('Please choose a shorter username.'); + return true; + } + return false; +} + var getScrollDiffBefore = function () { return $('#chat').scrollTop() - ($('#chat')[0].scrollHeight - $('#chat')[0].offsetHeight); } diff --git a/cli/onionshare_cli/resources/templates/500.html b/cli/onionshare_cli/resources/templates/500.html new file mode 100644 index 00000000..9f6727d2 --- /dev/null +++ b/cli/onionshare_cli/resources/templates/500.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> + +<head> + <title>OnionShare: An error occurred</title> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link href="{{ static_url_path }}/img/favicon.ico" rel="icon" type="image/x-icon"> + <link rel="stylesheet" rel="subresource" type="text/css" href="{{ static_url_path }}/css/style.css" media="all"> +</head> + +<body> + <div class="info-wrapper"> + <div class="info"> + <p><img class="logo" src="{{ static_url_path }}/img/logo_large.png" title="OnionShare"></p> + <p class="info-header">Sorry, an unexpected error seems to have occurred, and your request didn't succeed.</p> + </div> + </div> +</body> + +</html> diff --git a/cli/onionshare_cli/resources/templates/chat.html b/cli/onionshare_cli/resources/templates/chat.html index 7156d58c..48434d99 100644 --- a/cli/onionshare_cli/resources/templates/chat.html +++ b/cli/onionshare_cli/resources/templates/chat.html @@ -23,6 +23,7 @@ <div class="chat-container no-js"> <div class="chat-users"> <div class="editable-username"> + <label for="username">Your username:</label> <input id="username" value="{{ username }}" /> <p id="username-error"></p> </div> @@ -43,4 +44,4 @@ <script async src="{{ static_url_path }}/js/chat.js"></script> </body> -</html>
\ No newline at end of file +</html> diff --git a/cli/onionshare_cli/web/chat_mode.py b/cli/onionshare_cli/web/chat_mode.py index 8b2a5673..f6dc2d1a 100644 --- a/cli/onionshare_cli/web/chat_mode.py +++ b/cli/onionshare_cli/web/chat_mode.py @@ -39,6 +39,12 @@ class ChatModeWeb: # This tracks the history id self.cur_history_id = 0 + # Whether or not we can send REQUEST_INDIVIDUAL_FILE_STARTED + # and maybe other events when requests come in to this mode + # Chat mode has no concept of individual file requests that + # turn into history widgets in the GUI, so set it to False + self.supports_file_requests = False + self.define_routes() def define_routes(self): @@ -46,7 +52,7 @@ class ChatModeWeb: The web app routes for chatting """ - @self.web.app.route("/") + @self.web.app.route("/", methods=["GET"], provide_automatic_options=False) def index(): history_id = self.cur_history_id self.cur_history_id += 1 @@ -72,27 +78,40 @@ class ChatModeWeb: ) return self.web.add_security_headers(r) - @self.web.app.route("/update-session-username", methods=["POST"]) + @self.web.app.route("/update-session-username", methods=["POST"], provide_automatic_options=False) def update_session_username(): history_id = self.cur_history_id data = request.get_json() if ( data.get("username", "") and data.get("username", "") not in self.connected_users + and len(data.get("username", "")) < 128 ): session["name"] = data.get("username", session.get("name")) - self.web.add_request( - request.path, - {"id": history_id, "status_code": 200}, - ) + self.web.add_request( + request.path, + {"id": history_id, "status_code": 200}, + ) - self.web.add_request(self.web.REQUEST_LOAD, request.path) - r = make_response( - jsonify( - username=session.get("name"), - success=True, + self.web.add_request(self.web.REQUEST_LOAD, request.path) + r = make_response( + jsonify( + username=session.get("name"), + success=True, + ) + ) + else: + self.web.add_request( + request.path, + {"id": history_id, "status_code": 403}, + ) + + r = make_response( + jsonify( + username=session.get("name"), + success=False, + ) ) - ) return self.web.add_security_headers(r) @self.web.socketio.on("joined", namespace="/chat") diff --git a/cli/onionshare_cli/web/receive_mode.py b/cli/onionshare_cli/web/receive_mode.py index f5aae296..76abb0a8 100644 --- a/cli/onionshare_cli/web/receive_mode.py +++ b/cli/onionshare_cli/web/receive_mode.py @@ -64,6 +64,10 @@ class ReceiveModeWeb: # This tracks the history id self.cur_history_id = 0 + # Whether or not we can send REQUEST_INDIVIDUAL_FILE_STARTED + # and maybe other events when requests come in to this mode + self.supports_file_requests = True + self.define_routes() def define_routes(self): @@ -71,7 +75,7 @@ class ReceiveModeWeb: The web app routes for receiving files """ - @self.web.app.route("/") + @self.web.app.route("/", methods=["GET"], provide_automatic_options=False) def index(): history_id = self.cur_history_id self.cur_history_id += 1 @@ -93,7 +97,7 @@ class ReceiveModeWeb: ) return self.web.add_security_headers(r) - @self.web.app.route("/upload", methods=["POST"]) + @self.web.app.route("/upload", methods=["POST"], provide_automatic_options=False) def upload(ajax=False): """ Handle the upload files POST request, though at this point, the files have @@ -225,7 +229,7 @@ class ReceiveModeWeb: ) return self.web.add_security_headers(r) - @self.web.app.route("/upload-ajax", methods=["POST"]) + @self.web.app.route("/upload-ajax", methods=["POST"], provide_automatic_options=False) def upload_ajax_public(): if not self.can_upload: return self.web.error403() diff --git a/cli/onionshare_cli/web/send_base_mode.py b/cli/onionshare_cli/web/send_base_mode.py index 742f6f75..e448d2dd 100644 --- a/cli/onionshare_cli/web/send_base_mode.py +++ b/cli/onionshare_cli/web/send_base_mode.py @@ -52,6 +52,10 @@ class SendBaseModeWeb: # This tracks the history id self.cur_history_id = 0 + # Whether or not we can send REQUEST_INDIVIDUAL_FILE_STARTED + # and maybe other events when requests come in to this mode + self.supports_file_requests = True + self.define_routes() self.init() @@ -208,10 +212,6 @@ class SendBaseModeWeb: history_id = self.cur_history_id self.cur_history_id += 1 - # Only GET requests are allowed, any other method should fail - if request.method != "GET": - return self.web.error405(history_id) - self.web.add_request( self.web.REQUEST_INDIVIDUAL_FILE_STARTED, path, diff --git a/cli/onionshare_cli/web/share_mode.py b/cli/onionshare_cli/web/share_mode.py index 95aec1ba..51ddd674 100644 --- a/cli/onionshare_cli/web/share_mode.py +++ b/cli/onionshare_cli/web/share_mode.py @@ -134,8 +134,8 @@ class ShareModeWeb(SendBaseModeWeb): The web app routes for sharing files """ - @self.web.app.route("/", defaults={"path": ""}) - @self.web.app.route("/<path:path>") + @self.web.app.route("/", defaults={"path": ""}, methods=["GET"], provide_automatic_options=False) + @self.web.app.route("/<path:path>", methods=["GET"], provide_automatic_options=False) def index(path): """ Render the template for the onionshare landing page. @@ -160,7 +160,7 @@ class ShareModeWeb(SendBaseModeWeb): return self.render_logic(path) - @self.web.app.route("/download") + @self.web.app.route("/download", methods=["GET"], provide_automatic_options=False) def download(): """ Download the zip file. diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py index d88a7e4e..56e307b4 100644 --- a/cli/onionshare_cli/web/web.py +++ b/cli/onionshare_cli/web/web.py @@ -229,6 +229,20 @@ class Web: mode.cur_history_id += 1 return self.error404(history_id) + @self.app.errorhandler(405) + def method_not_allowed(e): + mode = self.get_mode() + history_id = mode.cur_history_id + mode.cur_history_id += 1 + return self.error405(history_id) + + @self.app.errorhandler(500) + def method_not_allowed(e): + mode = self.get_mode() + history_id = mode.cur_history_id + mode.cur_history_id += 1 + return self.error500(history_id) + @self.app.route("/<password_candidate>/shutdown") def shutdown(password_candidate): """ @@ -280,11 +294,13 @@ class Web: return self.add_security_headers(r) def error404(self, history_id): - self.add_request( - self.REQUEST_INDIVIDUAL_FILE_STARTED, - request.path, - {"id": history_id, "status_code": 404}, - ) + mode = self.get_mode() + if mode.supports_file_requests: + self.add_request( + self.REQUEST_INDIVIDUAL_FILE_STARTED, + request.path, + {"id": history_id, "status_code": 404}, + ) self.add_request(Web.REQUEST_OTHER, request.path) r = make_response( @@ -293,11 +309,13 @@ class Web: return self.add_security_headers(r) def error405(self, history_id): - self.add_request( - self.REQUEST_INDIVIDUAL_FILE_STARTED, - request.path, - {"id": history_id, "status_code": 405}, - ) + mode = self.get_mode() + if mode.supports_file_requests: + self.add_request( + self.REQUEST_INDIVIDUAL_FILE_STARTED, + request.path, + {"id": history_id, "status_code": 405}, + ) self.add_request(Web.REQUEST_OTHER, request.path) r = make_response( @@ -305,6 +323,21 @@ class Web: ) return self.add_security_headers(r) + def error500(self, history_id): + mode = self.get_mode() + if mode.supports_file_requests: + self.add_request( + self.REQUEST_INDIVIDUAL_FILE_STARTED, + request.path, + {"id": history_id, "status_code": 500}, + ) + + self.add_request(Web.REQUEST_OTHER, request.path) + r = make_response( + render_template("500.html", static_url_path=self.static_url_path), 500 + ) + return self.add_security_headers(r) + def add_security_headers(self, r): """ Add security headers to a request diff --git a/cli/onionshare_cli/web/website_mode.py b/cli/onionshare_cli/web/website_mode.py index 6badd399..5ab1b184 100644 --- a/cli/onionshare_cli/web/website_mode.py +++ b/cli/onionshare_cli/web/website_mode.py @@ -37,8 +37,8 @@ class WebsiteModeWeb(SendBaseModeWeb): The web app routes for sharing a website """ - @self.web.app.route("/", defaults={"path": ""}) - @self.web.app.route("/<path:path>") + @self.web.app.route("/", defaults={"path": ""}, methods=["GET"], provide_automatic_options=False) + @self.web.app.route("/<path:path>", methods=["GET"], provide_automatic_options=False) def path_public(path): return path_logic(path) diff --git a/cli/poetry.lock b/cli/poetry.lock index 798b8c8a..d7a53640 100644 --- a/cli/poetry.lock +++ b/cli/poetry.lock @@ -1,32 +1,33 @@ [[package]] -name = "atomicwrites" -version = "1.4.0" -description = "Atomic file writes." category = "dev" +description = "Atomic file writes." +marker = "sys_platform == \"win32\"" +name = "atomicwrites" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.4.0" [[package]] -name = "attrs" -version = "20.3.0" -description = "Classes Without Boilerplate" category = "dev" +description = "Classes Without Boilerplate" +name = "attrs" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "21.2.0" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] -docs = ["furo", "sphinx", "zope.interface"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] +dev = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] +docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] +tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] +tests_no_zope = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] [[package]] -name = "bidict" -version = "0.21.2" -description = "The bidirectional mapping library for Python." category = "main" +description = "The bidirectional mapping library for Python." +name = "bidict" optional = false python-versions = ">=3.6" +version = "0.21.2" [package.extras] coverage = ["coverage (<6)", "pytest-cov (<3)"] @@ -36,56 +37,56 @@ precommit = ["pre-commit (<3)"] test = ["hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)"] [[package]] -name = "certifi" -version = "2020.12.5" -description = "Python package for providing Mozilla's CA Bundle." category = "main" +description = "Python package for providing Mozilla's CA Bundle." +name = "certifi" optional = false python-versions = "*" +version = "2020.12.5" [[package]] -name = "chardet" -version = "4.0.0" -description = "Universal encoding detector for Python 2 and 3" category = "main" +description = "Universal encoding detector for Python 2 and 3" +name = "chardet" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "4.0.0" [[package]] -name = "click" -version = "7.1.2" -description = "Composable command line interface toolkit" category = "main" +description = "Composable command line interface toolkit" +name = "click" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "7.1.2" [[package]] -name = "colorama" -version = "0.4.4" -description = "Cross-platform colored terminal text." category = "main" +description = "Cross-platform colored terminal text." +name = "colorama" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "0.4.4" [[package]] -name = "dnspython" -version = "1.16.0" -description = "DNS toolkit" category = "main" +description = "DNS toolkit" +name = "dnspython" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.16.0" [package.extras] DNSSEC = ["pycryptodome", "ecdsa (>=0.13)"] IDNA = ["idna (>=2.1)"] [[package]] -name = "eventlet" -version = "0.30.2" -description = "Highly concurrent networking library" category = "main" +description = "Highly concurrent networking library" +name = "eventlet" optional = false python-versions = "*" +version = "0.31.0" [package.dependencies] dnspython = ">=1.15.0,<2.0.0" @@ -93,18 +94,18 @@ greenlet = ">=0.3" six = ">=1.10.0" [[package]] -name = "flask" -version = "1.1.2" -description = "A simple framework for building complex web applications." category = "main" +description = "A simple framework for building complex web applications." +name = "flask" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "1.1.4" [package.dependencies] -click = ">=5.1" -itsdangerous = ">=0.24" -Jinja2 = ">=2.10.1" -Werkzeug = ">=0.15" +Jinja2 = ">=2.10.1,<3.0" +Werkzeug = ">=0.15,<2.0" +click = ">=5.1,<8.0" +itsdangerous = ">=0.24,<2.0" [package.extras] dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] @@ -112,86 +113,90 @@ docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx- dotenv = ["python-dotenv"] [[package]] -name = "flask-httpauth" -version = "4.2.0" -description = "Basic and Digest HTTP authentication for Flask routes" category = "main" +description = "Basic and Digest HTTP authentication for Flask routes" +name = "flask-httpauth" optional = false python-versions = "*" +version = "4.4.0" [package.dependencies] Flask = "*" [[package]] -name = "flask-socketio" -version = "5.0.1" -description = "Socket.IO integration for Flask applications" category = "main" +description = "Socket.IO integration for Flask applications" +name = "flask-socketio" optional = false python-versions = "*" +version = "5.0.1" [package.dependencies] Flask = ">=0.9" python-socketio = ">=5.0.2" [[package]] -name = "greenlet" -version = "1.0.0" -description = "Lightweight in-process concurrent programming" category = "main" +description = "Lightweight in-process concurrent programming" +name = "greenlet" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" +version = "1.1.0" [package.extras] docs = ["sphinx"] [[package]] -name = "idna" -version = "2.10" -description = "Internationalized Domain Names in Applications (IDNA)" category = "main" +description = "Internationalized Domain Names in Applications (IDNA)" +name = "idna" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "2.10" [[package]] -name = "importlib-metadata" -version = "3.10.0" -description = "Read metadata from Python packages" category = "dev" +description = "Read metadata from Python packages" +marker = "python_version < \"3.8\"" +name = "importlib-metadata" optional = false python-versions = ">=3.6" +version = "4.0.1" [package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" +[package.dependencies.typing-extensions] +python = "<3.8" +version = ">=3.6.4" + [package.extras] docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] [[package]] -name = "iniconfig" -version = "1.1.1" -description = "iniconfig: brain-dead simple config-ini parsing" category = "dev" +description = "iniconfig: brain-dead simple config-ini parsing" +name = "iniconfig" optional = false python-versions = "*" +version = "1.1.1" [[package]] -name = "itsdangerous" -version = "1.1.0" -description = "Various helpers to pass data to untrusted environments and back." category = "main" +description = "Various helpers to pass data to untrusted environments and back." +name = "itsdangerous" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.1.0" [[package]] -name = "jinja2" -version = "2.11.3" -description = "A very fast and expressive template engine." category = "main" +description = "A very fast and expressive template engine." +name = "jinja2" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "2.11.3" [package.dependencies] MarkupSafe = ">=0.23" @@ -200,231 +205,240 @@ MarkupSafe = ">=0.23" i18n = ["Babel (>=0.8)"] [[package]] -name = "markupsafe" -version = "1.1.1" -description = "Safely add untrusted strings to HTML/XML markup." category = "main" +description = "Safely add untrusted strings to HTML/XML markup." +name = "markupsafe" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +python-versions = ">=3.6" +version = "2.0.0" [[package]] -name = "packaging" -version = "20.9" -description = "Core utilities for Python packages" category = "dev" +description = "Core utilities for Python packages" +name = "packaging" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "20.9" [package.dependencies] pyparsing = ">=2.0.2" [[package]] -name = "pluggy" -version = "0.13.1" -description = "plugin and hook calling mechanisms for python" category = "dev" +description = "plugin and hook calling mechanisms for python" +name = "pluggy" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "0.13.1" [package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +[package.dependencies.importlib-metadata] +python = "<3.8" +version = ">=0.12" [package.extras] dev = ["pre-commit", "tox"] [[package]] -name = "psutil" -version = "5.8.0" -description = "Cross-platform lib for process and system monitoring in Python." category = "main" +description = "Cross-platform lib for process and system monitoring in Python." +name = "psutil" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "5.8.0" [package.extras] test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"] [[package]] -name = "py" -version = "1.10.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" category = "dev" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +name = "py" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.10.0" [[package]] -name = "pycryptodome" -version = "3.10.1" -description = "Cryptographic library for Python" category = "main" +description = "Cryptographic library for Python" +name = "pycryptodome" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "3.10.1" [[package]] -name = "pyparsing" -version = "2.4.7" -description = "Python parsing module" category = "dev" +description = "Python parsing module" +name = "pyparsing" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +version = "2.4.7" [[package]] -name = "pysocks" -version = "1.7.1" -description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." category = "main" +description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." +name = "pysocks" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.7.1" [[package]] -name = "pytest" -version = "6.2.3" -description = "pytest: simple powerful testing with Python" category = "dev" +description = "pytest: simple powerful testing with Python" +name = "pytest" optional = false python-versions = ">=3.6" +version = "6.2.4" [package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +atomicwrites = ">=1.0" attrs = ">=19.2.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +colorama = "*" iniconfig = "*" packaging = "*" pluggy = ">=0.12,<1.0.0a1" py = ">=1.8.2" toml = "*" +[package.dependencies.importlib-metadata] +python = "<3.8" +version = ">=0.12" + [package.extras] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] [[package]] -name = "python-engineio" -version = "4.0.1" -description = "Engine.IO server" category = "main" +description = "Engine.IO server" +name = "python-engineio" optional = false python-versions = "*" +version = "4.2.0" [package.extras] asyncio_client = ["aiohttp (>=3.4)"] client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] [[package]] -name = "python-socketio" -version = "5.1.0" -description = "Socket.IO server" category = "main" +description = "Socket.IO server" +name = "python-socketio" optional = false python-versions = "*" +version = "5.3.0" [package.dependencies] bidict = ">=0.21.0" -python-engineio = ">=4" +python-engineio = ">=4.1.0" [package.extras] asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"] client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] [[package]] -name = "requests" -version = "2.25.1" -description = "Python HTTP for Humans." category = "main" +description = "Python HTTP for Humans." +name = "requests" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "2.25.1" [package.dependencies] certifi = ">=2017.4.17" chardet = ">=3.0.2,<5" idna = ">=2.5,<3" -PySocks = {version = ">=1.5.6,<1.5.7 || >1.5.7", optional = true, markers = "extra == \"socks\""} urllib3 = ">=1.21.1,<1.27" +[package.dependencies.PySocks] +optional = true +version = ">=1.5.6,<1.5.7 || >1.5.7" + [package.extras] security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] +socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] [[package]] -name = "six" -version = "1.15.0" -description = "Python 2 and 3 compatibility utilities" category = "main" +description = "Python 2 and 3 compatibility utilities" +name = "six" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +version = "1.16.0" [[package]] -name = "stem" -version = "1.8.0" -description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)." category = "main" +description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)." +name = "stem" optional = false python-versions = "*" +version = "1.8.0" [[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" category = "dev" +description = "Python Library for Tom's Obvious, Minimal Language" +name = "toml" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +version = "0.10.2" [[package]] -name = "typing-extensions" -version = "3.7.4.3" -description = "Backported and Experimental Type Hints for Python 3.5+" category = "dev" +description = "Backported and Experimental Type Hints for Python 3.5+" +marker = "python_version < \"3.8\"" +name = "typing-extensions" optional = false python-versions = "*" +version = "3.10.0.0" [[package]] -name = "unidecode" -version = "1.2.0" -description = "ASCII transliterations of Unicode text" category = "main" +description = "ASCII transliterations of Unicode text" +name = "unidecode" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.2.0" [[package]] -name = "urllib3" -version = "1.26.4" -description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" +description = "HTTP library with thread-safe connection pooling, file post, and more." +name = "urllib3" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" +version = "1.26.4" [package.extras] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] brotli = ["brotlipy (>=0.6.0)"] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] [[package]] -name = "werkzeug" -version = "1.0.1" -description = "The comprehensive WSGI web application library." category = "main" +description = "The comprehensive WSGI web application library." +name = "werkzeug" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "1.0.1" [package.extras] dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"] watchdog = ["watchdog"] [[package]] -name = "zipp" -version = "3.4.1" -description = "Backport of pathlib-compatible object wrapper for zip files" category = "dev" +description = "Backport of pathlib-compatible object wrapper for zip files" +marker = "python_version < \"3.8\"" +name = "zipp" optional = false python-versions = ">=3.6" +version = "3.4.1" [package.extras] docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] [metadata] -lock-version = "1.1" +content-hash = "e5b4d1dfb1871b971d8240c41fc16cb339246e880c5bf6be07d9303e6156fe93" python-versions = "^3.6" -content-hash = "af196689bfa09fc05b61fc0829e1b0b54888b5503602ff04174bc967d688c180" [metadata.files] atomicwrites = [ @@ -432,8 +446,8 @@ atomicwrites = [ {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, ] attrs = [ - {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, - {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, + {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, + {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, ] bidict = [ {file = "bidict-0.21.2-py2.py3-none-any.whl", hash = "sha256:929d056e8d0d9b17ceda20ba5b24ac388e2a4d39802b87f9f4d3f45ecba070bf"}, @@ -460,73 +474,79 @@ dnspython = [ {file = "dnspython-1.16.0.zip", hash = "sha256:36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01"}, ] eventlet = [ - {file = "eventlet-0.30.2-py2.py3-none-any.whl", hash = "sha256:89cc6dbfef47c4629cefead5fde21c5f2b33464d57f7df5fc5148f8b4de3fbb5"}, - {file = "eventlet-0.30.2.tar.gz", hash = "sha256:1811b122d9a45eb5bafba092d36911bca825f835cb648a862bbf984030acff9d"}, + {file = "eventlet-0.31.0-py2.py3-none-any.whl", hash = "sha256:27ae41fad9deed9bbf4166f3e3b65acc15d524d42210a518e5877da85a6b8c5d"}, + {file = "eventlet-0.31.0.tar.gz", hash = "sha256:b36ec2ecc003de87fc87b93197d77fea528aa0f9204a34fdf3b2f8d0f01e017b"}, ] flask = [ - {file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"}, - {file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"}, + {file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"}, + {file = "Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196"}, ] flask-httpauth = [ - {file = "Flask-HTTPAuth-4.2.0.tar.gz", hash = "sha256:8c7e49e53ce7dc14e66fe39b9334e4b7ceb8d0b99a6ba1c3562bb528ef9da84a"}, - {file = "Flask_HTTPAuth-4.2.0-py2.py3-none-any.whl", hash = "sha256:3fcedb99a03985915335a38c35bfee6765cbd66d7f46440fa3b42ae94a90fac7"}, + {file = "Flask-HTTPAuth-4.4.0.tar.gz", hash = "sha256:bcaaa7a35a3cba0b2eafd4f113b3016bf70eb78087456d96484c3c18928b813a"}, + {file = "Flask_HTTPAuth-4.4.0-py2.py3-none-any.whl", hash = "sha256:d9131122cdc5709dda63790f6e9b3142d8101447d424b0b95ffd4ee279f49539"}, ] flask-socketio = [ {file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"}, {file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"}, ] greenlet = [ - {file = "greenlet-1.0.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:1d1d4473ecb1c1d31ce8fd8d91e4da1b1f64d425c1dc965edc4ed2a63cfa67b2"}, - {file = "greenlet-1.0.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:cfd06e0f0cc8db2a854137bd79154b61ecd940dce96fad0cba23fe31de0b793c"}, - {file = "greenlet-1.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:eb333b90036358a0e2c57373f72e7648d7207b76ef0bd00a4f7daad1f79f5203"}, - {file = "greenlet-1.0.0-cp27-cp27m-win32.whl", hash = "sha256:1a1ada42a1fd2607d232ae11a7b3195735edaa49ea787a6d9e6a53afaf6f3476"}, - {file = "greenlet-1.0.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f6f65bf54215e4ebf6b01e4bb94c49180a589573df643735107056f7a910275b"}, - {file = "greenlet-1.0.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:f59eded163d9752fd49978e0bab7a1ff21b1b8d25c05f0995d140cc08ac83379"}, - {file = "greenlet-1.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:875d4c60a6299f55df1c3bb870ebe6dcb7db28c165ab9ea6cdc5d5af36bb33ce"}, - {file = "greenlet-1.0.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:1bb80c71de788b36cefb0c3bb6bfab306ba75073dbde2829c858dc3ad70f867c"}, - {file = "greenlet-1.0.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b5f1b333015d53d4b381745f5de842f19fe59728b65f0fbb662dafbe2018c3a5"}, - {file = "greenlet-1.0.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:5352c15c1d91d22902582e891f27728d8dac3bd5e0ee565b6a9f575355e6d92f"}, - {file = "greenlet-1.0.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:2c65320774a8cd5fdb6e117c13afa91c4707548282464a18cf80243cf976b3e6"}, - {file = "greenlet-1.0.0-cp35-cp35m-manylinux2014_ppc64le.whl", hash = "sha256:111cfd92d78f2af0bc7317452bd93a477128af6327332ebf3c2be7df99566683"}, - {file = "greenlet-1.0.0-cp35-cp35m-win32.whl", hash = "sha256:cdb90267650c1edb54459cdb51dab865f6c6594c3a47ebd441bc493360c7af70"}, - {file = "greenlet-1.0.0-cp35-cp35m-win_amd64.whl", hash = "sha256:eac8803c9ad1817ce3d8d15d1bb82c2da3feda6bee1153eec5c58fa6e5d3f770"}, - {file = "greenlet-1.0.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:c93d1a71c3fe222308939b2e516c07f35a849c5047f0197442a4d6fbcb4128ee"}, - {file = "greenlet-1.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:122c63ba795fdba4fc19c744df6277d9cfd913ed53d1a286f12189a0265316dd"}, - {file = "greenlet-1.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:c5b22b31c947ad8b6964d4ed66776bcae986f73669ba50620162ba7c832a6b6a"}, - {file = "greenlet-1.0.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:4365eccd68e72564c776418c53ce3c5af402bc526fe0653722bc89efd85bf12d"}, - {file = "greenlet-1.0.0-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:da7d09ad0f24270b20f77d56934e196e982af0d0a2446120cb772be4e060e1a2"}, - {file = "greenlet-1.0.0-cp36-cp36m-win32.whl", hash = "sha256:647ba1df86d025f5a34043451d7c4a9f05f240bee06277a524daad11f997d1e7"}, - {file = "greenlet-1.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:e6e9fdaf6c90d02b95e6b0709aeb1aba5affbbb9ccaea5502f8638e4323206be"}, - {file = "greenlet-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:62afad6e5fd70f34d773ffcbb7c22657e1d46d7fd7c95a43361de979f0a45aef"}, - {file = "greenlet-1.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d3789c1c394944084b5e57c192889985a9f23bd985f6d15728c745d380318128"}, - {file = "greenlet-1.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f5e2d36c86c7b03c94b8459c3bd2c9fe2c7dab4b258b8885617d44a22e453fb7"}, - {file = "greenlet-1.0.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:292e801fcb3a0b3a12d8c603c7cf340659ea27fd73c98683e75800d9fd8f704c"}, - {file = "greenlet-1.0.0-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:f3dc68272990849132d6698f7dc6df2ab62a88b0d36e54702a8fd16c0490e44f"}, - {file = "greenlet-1.0.0-cp37-cp37m-win32.whl", hash = "sha256:7cd5a237f241f2764324396e06298b5dee0df580cf06ef4ada0ff9bff851286c"}, - {file = "greenlet-1.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0ddd77586553e3daf439aa88b6642c5f252f7ef79a39271c25b1d4bf1b7cbb85"}, - {file = "greenlet-1.0.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:90b6a25841488cf2cb1c8623a53e6879573010a669455046df5f029d93db51b7"}, - {file = "greenlet-1.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ed1d1351f05e795a527abc04a0d82e9aecd3bdf9f46662c36ff47b0b00ecaf06"}, - {file = "greenlet-1.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:94620ed996a7632723a424bccb84b07e7b861ab7bb06a5aeb041c111dd723d36"}, - {file = "greenlet-1.0.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f97d83049715fd9dec7911860ecf0e17b48d8725de01e45de07d8ac0bd5bc378"}, - {file = "greenlet-1.0.0-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:0a77691f0080c9da8dfc81e23f4e3cffa5accf0f5b56478951016d7cfead9196"}, - {file = "greenlet-1.0.0-cp38-cp38-win32.whl", hash = "sha256:e1128e022d8dce375362e063754e129750323b67454cac5600008aad9f54139e"}, - {file = "greenlet-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d4030b04061fdf4cbc446008e238e44936d77a04b2b32f804688ad64197953c"}, - {file = "greenlet-1.0.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:f8450d5ef759dbe59f84f2c9f77491bb3d3c44bc1a573746daf086e70b14c243"}, - {file = "greenlet-1.0.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:df8053867c831b2643b2c489fe1d62049a98566b1646b194cc815f13e27b90df"}, - {file = "greenlet-1.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:df3e83323268594fa9755480a442cabfe8d82b21aba815a71acf1bb6c1776218"}, - {file = "greenlet-1.0.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:181300f826625b7fd1182205b830642926f52bd8cdb08b34574c9d5b2b1813f7"}, - {file = "greenlet-1.0.0-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:58ca0f078d1c135ecf1879d50711f925ee238fe773dfe44e206d7d126f5bc664"}, - {file = "greenlet-1.0.0-cp39-cp39-win32.whl", hash = "sha256:5f297cb343114b33a13755032ecf7109b07b9a0020e841d1c3cedff6602cc139"}, - {file = "greenlet-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:5d69bbd9547d3bc49f8a545db7a0bd69f407badd2ff0f6e1a163680b5841d2b0"}, - {file = "greenlet-1.0.0.tar.gz", hash = "sha256:719e169c79255816cdcf6dccd9ed2d089a72a9f6c42273aae12d55e8d35bdcf8"}, + {file = "greenlet-1.1.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:60848099b76467ef09b62b0f4512e7e6f0a2c977357a036de602b653667f5f4c"}, + {file = "greenlet-1.1.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f42ad188466d946f1b3afc0a9e1a266ac8926461ee0786c06baac6bd71f8a6f3"}, + {file = "greenlet-1.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:76ed710b4e953fc31c663b079d317c18f40235ba2e3d55f70ff80794f7b57922"}, + {file = "greenlet-1.1.0-cp27-cp27m-win32.whl", hash = "sha256:b33b51ab057f8a20b497ffafdb1e79256db0c03ef4f5e3d52e7497200e11f821"}, + {file = "greenlet-1.1.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ed1377feed808c9c1139bdb6a61bcbf030c236dd288d6fca71ac26906ab03ba6"}, + {file = "greenlet-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:da862b8f7de577bc421323714f63276acb2f759ab8c5e33335509f0b89e06b8f"}, + {file = "greenlet-1.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5f75e7f237428755d00e7460239a2482fa7e3970db56c8935bd60da3f0733e56"}, + {file = "greenlet-1.1.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:258f9612aba0d06785143ee1cbf2d7361801c95489c0bd10c69d163ec5254a16"}, + {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d928e2e3c3906e0a29b43dc26d9b3d6e36921eee276786c4e7ad9ff5665c78a"}, + {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc407b68e0a874e7ece60f6639df46309376882152345508be94da608cc0b831"}, + {file = "greenlet-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c557c809eeee215b87e8a7cbfb2d783fb5598a78342c29ade561440abae7d22"}, + {file = "greenlet-1.1.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:3d13da093d44dee7535b91049e44dd2b5540c2a0e15df168404d3dd2626e0ec5"}, + {file = "greenlet-1.1.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b3090631fecdf7e983d183d0fad7ea72cfb12fa9212461a9b708ff7907ffff47"}, + {file = "greenlet-1.1.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:06ecb43b04480e6bafc45cb1b4b67c785e183ce12c079473359e04a709333b08"}, + {file = "greenlet-1.1.0-cp35-cp35m-win32.whl", hash = "sha256:944fbdd540712d5377a8795c840a97ff71e7f3221d3fddc98769a15a87b36131"}, + {file = "greenlet-1.1.0-cp35-cp35m-win_amd64.whl", hash = "sha256:c767458511a59f6f597bfb0032a1c82a52c29ae228c2c0a6865cfeaeaac4c5f5"}, + {file = "greenlet-1.1.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:2325123ff3a8ecc10ca76f062445efef13b6cf5a23389e2df3c02a4a527b89bc"}, + {file = "greenlet-1.1.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:598bcfd841e0b1d88e32e6a5ea48348a2c726461b05ff057c1b8692be9443c6e"}, + {file = "greenlet-1.1.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:be9768e56f92d1d7cd94185bab5856f3c5589a50d221c166cc2ad5eb134bd1dc"}, + {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe7eac0d253915116ed0cd160a15a88981a1d194c1ef151e862a5c7d2f853d3"}, + {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a6b035aa2c5fcf3dbbf0e3a8a5bc75286fc2d4e6f9cfa738788b433ec894919"}, + {file = "greenlet-1.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca1c4a569232c063615f9e70ff9a1e2fee8c66a6fb5caf0f5e8b21a396deec3e"}, + {file = "greenlet-1.1.0-cp36-cp36m-win32.whl", hash = "sha256:3096286a6072553b5dbd5efbefc22297e9d06a05ac14ba017233fedaed7584a8"}, + {file = "greenlet-1.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c35872b2916ab5a240d52a94314c963476c989814ba9b519bc842e5b61b464bb"}, + {file = "greenlet-1.1.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b97c9a144bbeec7039cca44df117efcbeed7209543f5695201cacf05ba3b5857"}, + {file = "greenlet-1.1.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:16183fa53bc1a037c38d75fdc59d6208181fa28024a12a7f64bb0884434c91ea"}, + {file = "greenlet-1.1.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6b1d08f2e7f2048d77343279c4d4faa7aef168b3e36039cba1917fffb781a8ed"}, + {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14927b15c953f8f2d2a8dffa224aa78d7759ef95284d4c39e1745cf36e8cdd2c"}, + {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bdcff4b9051fb1aa4bba4fceff6a5f770c6be436408efd99b76fc827f2a9319"}, + {file = "greenlet-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70c7dd733a4c56838d1f1781e769081a25fade879510c5b5f0df76956abfa05"}, + {file = "greenlet-1.1.0-cp37-cp37m-win32.whl", hash = "sha256:0de64d419b1cb1bfd4ea544bedea4b535ef3ae1e150b0f2609da14bbf48a4a5f"}, + {file = "greenlet-1.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8833e27949ea32d27f7e96930fa29404dd4f2feb13cce483daf52e8842ec246a"}, + {file = "greenlet-1.1.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:c1580087ab493c6b43e66f2bdd165d9e3c1e86ef83f6c2c44a29f2869d2c5bd5"}, + {file = "greenlet-1.1.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ad80bb338cf9f8129c049837a42a43451fc7c8b57ad56f8e6d32e7697b115505"}, + {file = "greenlet-1.1.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:a9017ff5fc2522e45562882ff481128631bf35da444775bc2776ac5c61d8bcae"}, + {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7920e3eccd26b7f4c661b746002f5ec5f0928076bd738d38d894bb359ce51927"}, + {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:408071b64e52192869129a205e5b463abda36eff0cebb19d6e63369440e4dc99"}, + {file = "greenlet-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be13a18cec649ebaab835dff269e914679ef329204704869f2f167b2c163a9da"}, + {file = "greenlet-1.1.0-cp38-cp38-win32.whl", hash = "sha256:22002259e5b7828b05600a762579fa2f8b33373ad95a0ee57b4d6109d0e589ad"}, + {file = "greenlet-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:206295d270f702bc27dbdbd7651e8ebe42d319139e0d90217b2074309a200da8"}, + {file = "greenlet-1.1.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:096cb0217d1505826ba3d723e8981096f2622cde1eb91af9ed89a17c10aa1f3e"}, + {file = "greenlet-1.1.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:03f28a5ea20201e70ab70518d151116ce939b412961c33827519ce620957d44c"}, + {file = "greenlet-1.1.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:7db68f15486d412b8e2cfcd584bf3b3a000911d25779d081cbbae76d71bd1a7e"}, + {file = "greenlet-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70bd1bb271e9429e2793902dfd194b653221904a07cbf207c3139e2672d17959"}, + {file = "greenlet-1.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f92731609d6625e1cc26ff5757db4d32b6b810d2a3363b0ff94ff573e5901f6f"}, + {file = "greenlet-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06d7ac89e6094a0a8f8dc46aa61898e9e1aec79b0f8b47b2400dd51a44dbc832"}, + {file = "greenlet-1.1.0-cp39-cp39-win32.whl", hash = "sha256:adb94a28225005890d4cf73648b5131e885c7b4b17bc762779f061844aabcc11"}, + {file = "greenlet-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa4230234d02e6f32f189fd40b59d5a968fe77e80f59c9c933384fe8ba535535"}, + {file = "greenlet-1.1.0.tar.gz", hash = "sha256:c87df8ae3f01ffb4483c796fe1b15232ce2b219f0b18126948616224d3f658ee"}, ] idna = [ {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, ] importlib-metadata = [ - {file = "importlib_metadata-3.10.0-py3-none-any.whl", hash = "sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe"}, - {file = "importlib_metadata-3.10.0.tar.gz", hash = "sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a"}, + {file = "importlib_metadata-4.0.1-py3-none-any.whl", hash = "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d"}, + {file = "importlib_metadata-4.0.1.tar.gz", hash = "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581"}, ] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, @@ -541,58 +561,40 @@ jinja2 = [ {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, ] markupsafe = [ - {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"}, - {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, + {file = "MarkupSafe-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2efaeb1baff547063bad2b2893a8f5e9c459c4624e1a96644bbba08910ae34e0"}, + {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:441ce2a8c17683d97e06447fcbccbdb057cbf587c78eb75ae43ea7858042fe2c"}, + {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:45535241baa0fc0ba2a43961a1ac7562ca3257f46c4c3e9c0de38b722be41bd1"}, + {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:90053234a6479738fd40d155268af631c7fca33365f964f2208867da1349294b"}, + {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:3b54a9c68995ef4164567e2cd1a5e16db5dac30b2a50c39c82db8d4afaf14f63"}, + {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:f58b5ba13a5689ca8317b98439fccfbcc673acaaf8241c1869ceea40f5d585bf"}, + {file = "MarkupSafe-2.0.0-cp36-cp36m-win32.whl", hash = "sha256:a00dce2d96587651ef4fa192c17e039e8cfab63087c67e7d263a5533c7dad715"}, + {file = "MarkupSafe-2.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:007dc055dbce5b1104876acee177dbfd18757e19d562cd440182e1f492e96b95"}, + {file = "MarkupSafe-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a08cd07d3c3c17cd33d9e66ea9dee8f8fc1c48e2d11bd88fd2dc515a602c709b"}, + {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:3c352ff634e289061711608f5e474ec38dbaa21e3e168820d53d5f4015e5b91b"}, + {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:32200f562daaab472921a11cbb63780f1654552ae49518196fc361ed8e12e901"}, + {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:fef86115fdad7ae774720d7103aa776144cf9b66673b4afa9bcaa7af990ed07b"}, + {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:e79212d09fc0e224d20b43ad44bb0a0a3416d1e04cf6b45fed265114a5d43d20"}, + {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:79b2ae94fa991be023832e6bcc00f41dbc8e5fe9d997a02db965831402551730"}, + {file = "MarkupSafe-2.0.0-cp37-cp37m-win32.whl", hash = "sha256:3261fae28155e5c8634dd7710635fe540a05b58f160cef7713c7700cb9980e66"}, + {file = "MarkupSafe-2.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e4570d16f88c7f3032ed909dc9e905a17da14a1c4cfd92608e3fda4cb1208bbd"}, + {file = "MarkupSafe-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f806bfd0f218477d7c46a11d3e52dc7f5fdfaa981b18202b7dc84bbc287463b"}, + {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e77e4b983e2441aff0c0d07ee711110c106b625f440292dfe02a2f60c8218bd6"}, + {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:031bf79a27d1c42f69c276d6221172417b47cb4b31cdc73d362a9bf5a1889b9f"}, + {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:83cf0228b2f694dcdba1374d5312f2277269d798e65f40344964f642935feac1"}, + {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:4cc563836f13c57f1473bc02d1e01fc37bab70ad4ee6be297d58c1d66bc819bf"}, + {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:d00a669e4a5bec3ee6dbeeeedd82a405ced19f8aeefb109a012ea88a45afff96"}, + {file = "MarkupSafe-2.0.0-cp38-cp38-win32.whl", hash = "sha256:161d575fa49395860b75da5135162481768b11208490d5a2143ae6785123e77d"}, + {file = "MarkupSafe-2.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:58bc9fce3e1557d463ef5cee05391a05745fd95ed660f23c1742c711712c0abb"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3fb47f97f1d338b943126e90b79cad50d4fcfa0b80637b5a9f468941dbbd9ce5"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dab0c685f21f4a6c95bfc2afd1e7eae0033b403dd3d8c1b6d13a652ada75b348"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:664832fb88b8162268928df233f4b12a144a0c78b01d38b81bdcf0fc96668ecb"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:df561f65049ed3556e5b52541669310e88713fdae2934845ec3606f283337958"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:24bbc3507fb6dfff663af7900a631f2aca90d5a445f272db5fc84999fa5718bc"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:87de598edfa2230ff274c4de7fcf24c73ffd96208c8e1912d5d0fee459767d75"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a19d39b02a24d3082856a5b06490b714a9d4179321225bbf22809ff1e1887cc8"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-win32.whl", hash = "sha256:4aca81a687975b35e3e80bcf9aa93fe10cd57fac37bf18b2314c186095f57e05"}, + {file = "MarkupSafe-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:70820a1c96311e02449591cbdf5cd1c6a34d5194d5b55094ab725364375c9eb2"}, + {file = "MarkupSafe-2.0.0.tar.gz", hash = "sha256:4fae0677f712ee090721d8b17f412f1cbceefbf0dc180fe91bab3232f38b4527"}, ] packaging = [ {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, @@ -678,24 +680,24 @@ pysocks = [ {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, ] pytest = [ - {file = "pytest-6.2.3-py3-none-any.whl", hash = "sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"}, - {file = "pytest-6.2.3.tar.gz", hash = "sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634"}, + {file = "pytest-6.2.4-py3-none-any.whl", hash = "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"}, + {file = "pytest-6.2.4.tar.gz", hash = "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b"}, ] python-engineio = [ - {file = "python-engineio-4.0.1.tar.gz", hash = "sha256:bb575c1a3512b4b5d4706f3071d5cc36e592459e99a47d9a4b7faabeba941377"}, - {file = "python_engineio-4.0.1-py2.py3-none-any.whl", hash = "sha256:759ec99d91b3d36b29596124c77ba7c063c7ab97685d318fb23a166d9a4b9187"}, + {file = "python-engineio-4.2.0.tar.gz", hash = "sha256:4e97c1189c23923858f5bb6dc47cfcd915005383c3c039ff01c89f2c00d62077"}, + {file = "python_engineio-4.2.0-py2.py3-none-any.whl", hash = "sha256:c6c119c2039fcb6f64d260211ca92c0c61b2b888a28678732a961f2aaebcc848"}, ] python-socketio = [ - {file = "python-socketio-5.1.0.tar.gz", hash = "sha256:338cc29abb6f3ca14c88f1f8d05ed27c690df4648f62062b299f92625bbf7093"}, - {file = "python_socketio-5.1.0-py2.py3-none-any.whl", hash = "sha256:8a7ed43bfdbbb266eb8a661a0c9648dc94bcd9689566ae3ee08bf98eca8987af"}, + {file = "python-socketio-5.3.0.tar.gz", hash = "sha256:3dcc9785aaeef3a9eeb36c3818095662342744bdcdabd050fe697cdb826a1c2b"}, + {file = "python_socketio-5.3.0-py2.py3-none-any.whl", hash = "sha256:d74314fd4241342c8a55c4f66d5cfea8f1a8fffd157af216c67e1c3a649a2444"}, ] requests = [ {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, ] six = [ - {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, - {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] stem = [ {file = "stem-1.8.0.tar.gz", hash = "sha256:a0b48ea6224e95f22aa34c0bc3415f0eb4667ddeae3dfb5e32a6920c185568c2"}, @@ -705,9 +707,9 @@ toml = [ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] typing-extensions = [ - {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, - {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, - {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, + {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"}, + {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"}, + {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"}, ] unidecode = [ {file = "Unidecode-1.2.0-py2.py3-none-any.whl", hash = "sha256:12435ef2fc4cdfd9cf1035a1db7e98b6b047fe591892e81f34e94959591fad00"}, diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 958d3434..b113e147 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -18,7 +18,7 @@ classifiers = [ [tool.poetry.dependencies] python = "^3.6" click = "*" -flask = "*" +flask = "^1.1.4" flask-httpauth = "*" flask-socketio = "5.0.1" psutil = "*" diff --git a/desktop/src/onionshare/resources/locale/bn.json b/desktop/src/onionshare/resources/locale/bn.json index f0ab0d26..519ed878 100644 --- a/desktop/src/onionshare/resources/locale/bn.json +++ b/desktop/src/onionshare/resources/locale/bn.json @@ -285,5 +285,14 @@ "gui_main_page_chat_button": "চ্যাটিং শুরু করো", "gui_main_page_website_button": "হোস্টিং শুরু করো", "gui_main_page_receive_button": "গ্রহণ শুরু করো", - "gui_color_mode_changed_notice": "নতুন রঙের মোড প্রয়োগ করার জন্য OnionShare পুনরারম্ভ করুন।" + "gui_color_mode_changed_notice": "নতুন রঙের মোড প্রয়োগ করার জন্য OnionShare পুনরারম্ভ করুন।", + "history_receive_read_message_button": "বার্তা পড়ুন", + "mode_settings_receive_webhook_url_checkbox": "বিজ্ঞপ্তি ওয়েবহুক ব্যবহার করুন", + "mode_settings_receive_disable_files_checkbox": "ফাইল আপলোড করা অক্ষম করুন", + "mode_settings_receive_disable_text_checkbox": "পাঠ্য জমা দেওয়া অক্ষম করুন", + "mode_settings_title_label": "কাস্টম শিরোনাম", + "gui_status_indicator_chat_started": "চ্যাট করছে", + "gui_status_indicator_chat_scheduled": "শিডিউল করা হয়েছে…", + "gui_status_indicator_chat_working": "শুরু…", + "gui_status_indicator_chat_stopped": "চ্যাট করতে প্রস্তুত" } diff --git a/desktop/src/onionshare/resources/locale/de.json b/desktop/src/onionshare/resources/locale/de.json index 611cc4ce..4f04dd5b 100644 --- a/desktop/src/onionshare/resources/locale/de.json +++ b/desktop/src/onionshare/resources/locale/de.json @@ -303,6 +303,6 @@ "mode_settings_title_label": "Benutzerdefinierter Titel", "gui_status_indicator_chat_started": "Chatted", "gui_status_indicator_chat_scheduled": "Geplant…", - "gui_status_indicator_chat_working": "Starte…", + "gui_status_indicator_chat_working": "Startet…", "gui_status_indicator_chat_stopped": "Bereit zum Chatten" -} +}
\ No newline at end of file diff --git a/desktop/src/onionshare/resources/locale/el.json b/desktop/src/onionshare/resources/locale/el.json index be7e7d46..173982a4 100644 --- a/desktop/src/onionshare/resources/locale/el.json +++ b/desktop/src/onionshare/resources/locale/el.json @@ -10,7 +10,7 @@ "not_a_readable_file": "Το {0:s} δεν είναι αναγνώσιμο αρχείο.", "no_available_port": "Δεν βρέθηκε διαθέσιμη θύρα για να ξεκινήσει η υπηρεσία onion", "other_page_loaded": "Η διεύθυνση φορτώθηκε", - "close_on_autostop_timer": "Τερματίστηκε λόγω της αυτόματης διακοπής", + "close_on_autostop_timer": "Τερματίστηκε λόγω αυτόματης διακοπής", "closing_automatically": "Τερματίστηκε λόγω ολοκλήρωσης της λήψης", "timeout_download_still_running": "Αναμονή ολοκλήρωσης της λήψης", "large_filesize": "Προειδοποίηση: Η αποστολή μεγάλου όγκου δεδομένων μπορεί να διαρκέσει ώρες", @@ -39,8 +39,8 @@ "gui_share_stop_server": "Τερματισμός διαμοιρασμού", "gui_share_stop_server_autostop_timer": "Διακοπή διαμοιρασμού ({})", "gui_share_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}", - "gui_receive_start_server": "Εκκίνηση κατάστασης λήψης", - "gui_receive_stop_server": "Τερματισμός κατάστασης λήψης", + "gui_receive_start_server": "Εκκίνηση λειτουργίας λήψης", + "gui_receive_stop_server": "Τερματισμός λειτουργίας λήψης", "gui_receive_stop_server_autostop_timer": "Διακοπή λειτουργίας λήψης (απομένουν {})", "gui_receive_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}", "gui_copy_url": "Αντιγραφή διεύθυνσης", @@ -49,9 +49,9 @@ "gui_no_downloads": "Καμία λήψη ως τώρα", "gui_canceled": "Ακυρώθηκε", "gui_copied_url_title": "Η διεύθυνση OnionShare αντιγράφτηκε", - "gui_copied_url": "Η διεύθυνση OnionShare αντιγράφτηκε στον πίνακα", + "gui_copied_url": "Η διεύθυνση OnionShare αντιγράφτηκε στο πρόχειρο", "gui_copied_hidservauth_title": "Το HidServAuth αντιγράφτηκε", - "gui_copied_hidservauth": "Το HidServAuth αντιγράφτηκε στον πίνακα", + "gui_copied_hidservauth": "Το HidServAuth αντιγράφτηκε στο πρόχειρο", "gui_please_wait": "Ξεκινάμε... Κάντε κλικ για ακύρωση.", "gui_download_upload_progress_complete": "%p%, {0:s} πέρασαν.", "gui_download_upload_progress_starting": "{0:s}, %p% (υπολογισμός)", @@ -62,8 +62,8 @@ "gui_receive_quit_warning": "Αυτή τη στιγμή παραλαμβάνονται αρχείων. Είστε σίγουρος/η πώς θέλετε να κλείσετε το OnionShare;", "gui_quit_warning_quit": "Έξοδος", "gui_quit_warning_dont_quit": "Ακύρωση", - "error_rate_limit": "Κάποιος/α έκανε πολλαπλές αποτυχημένες προσπάθειες να μαντέψει τον κωδικό σας. Γι' αυτό, το OnionShare σταμάτησε τον server. Ξεκινήστε πάλι το διαμοιρασμό και στείλτε στον/ην παραλήπτη/τρια μια νέα διεύθυνση για διαμοιρασμό.", - "zip_progress_bar_format": "Συμπίεση: %p%", + "error_rate_limit": "Κάποιος/α προσπάθησε να μαντέψει τον κωδικό σας πολλές φορές. Για αυτό, το OnionShare τερματίστηκε αυτόματα. Πρέπει να ξεκινήσετε πάλι τον διαμοιρασμό και να στείλετε στον/ην παραλήπτη/τρια μια νέα διεύθυνση για να διαμοιραστούν αρχεία και μηνύματα μαζί σας.", + "zip_progress_bar_format": "Γίνεται συμπίεση: %p%", "error_stealth_not_supported": "Για τη χρήση εξουσιοδότησης πελάτη, χρειάζεστε τουλάχιστον το Tor 0.2.9.1-alpha (ή τον Tor Browser 6.5) και το python3-stem 1.5.0.", "error_ephemeral_not_supported": "Το OnionShare απαιτεί τουλάχιστον το Tor 0.2.7.1 και το python3-stem 1.4.0.", "gui_settings_window_title": "Ρυθμίσεις", @@ -71,7 +71,7 @@ "gui_settings_stealth_option": "Χρήση εξουσιοδότησης πελάτη", "gui_settings_stealth_hidservauth_string": "Έχοντας αποθηκεύσει το ιδιωτικό σας κλειδί για επαναχρησιμοποίηση, μπορείτε πλέον να επιλέξετε την αντιγραφή του HidServAuth σας.", "gui_settings_autoupdate_label": "Έλεγχος για νέα έκδοση", - "gui_settings_autoupdate_option": "Ενημερώστε με όταν είναι διαθέσιμη μια νέα έκδοση", + "gui_settings_autoupdate_option": "Ενημερώστε με μόλις γίνει διαθέσιμη μια νέα έκδοση", "gui_settings_autoupdate_timestamp": "Τελευταίος έλεγχος: {}", "gui_settings_autoupdate_timestamp_never": "Ποτέ", "gui_settings_autoupdate_check_button": "Έλεγχος για νέα έκδοση", @@ -86,20 +86,20 @@ "gui_settings_connection_type_test_button": "Έλεγχος σύνδεσης με το Tor", "gui_settings_control_port_label": "Πύλη ελέγχου", "gui_settings_socket_file_label": "Αρχείο μετάβασης", - "gui_settings_socks_label": "πύλη SOCKS", + "gui_settings_socks_label": "Πύλη SOCKS", "gui_settings_authenticate_label": "Ρυθμίσεις επαλήθευσης Tor", "gui_settings_authenticate_no_auth_option": "Χωρίς επαλήθευση ή επαλήθευση με cookie", "gui_settings_authenticate_password_option": "Κωδικός", "gui_settings_password_label": "Κωδικός", - "gui_settings_tor_bridges": "Υποστήριξη Tor bridge", - "gui_settings_tor_bridges_no_bridges_radio_option": "Να μη χρησιμοποιηθούν bridges", + "gui_settings_tor_bridges": "Υποστήριξη γεφυρών Tor", + "gui_settings_tor_bridges_no_bridges_radio_option": "Να μη χρησιμοποιηθούν γέφυρες", "gui_settings_tor_bridges_obfs4_radio_option": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports", - "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports (απαιτείται το obfs4proxy)", + "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports (απαιτείται το πρόγραμμα obfs4proxy)", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Να χρησιμοποιηθουν τα ενσωματωμένα meek_lite (Azure) pluggable transports", - "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα meek_lite (Azure) pluggable transports (απαιτείται το obfs4proxy)", + "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα meek_lite (Azure) pluggable transports (απαιτείται το πρόγραμμα obfs4proxy)", "gui_settings_meek_lite_expensive_warning": "Προσοχή: Τα meek_lite bridges επιβαρύνουν πολύ το Tor Project στη λειτουργία. <br><br> Χρησιμοποιήστε τα μόνο αν δεν μπορείτε να συνδεθείτε κατ' ευθείαν στο Tor μέσω obfs4 transports ή άλλων κανονικών bridges.", - "gui_settings_tor_bridges_custom_radio_option": "Χρήση παραμετροποιημένων bridges", - "gui_settings_tor_bridges_custom_label": "Αποκτήστε bridges στο <a href=\"https://bridges.torproject.org/options?lang=el\"> https://bridges.torproject.org</a>", + "gui_settings_tor_bridges_custom_radio_option": "Χρήση παραμετροποιημένων γεφυρών", + "gui_settings_tor_bridges_custom_label": "Αποκτήστε γέφυρες στο <a href=\"https://bridges.torproject.org/options?lang=el\"> https://bridges.torproject.org</a>", "gui_settings_tor_bridges_invalid": "Δεν λειτούργησε κάποιο από τα bridges που προσθέσατε.\nΞαναελέγξτε τα ή προσθέστε άλλα.", "gui_settings_button_save": "Αποθήκευση", "gui_settings_button_cancel": "Άκυρο", @@ -107,30 +107,30 @@ "gui_settings_autostop_timer_checkbox": "Χρήση χρονομέτρου αυτόματης διακοπής", "gui_settings_autostop_timer": "Διακοπή διαμοιρασμού σε:", "settings_error_unknown": "Αποτυχία σύνδεσης στον ελεγκτή Tor, γιατί οι ρυθμίσεις σας δεν βγάζουν κανένα νόημα.", - "settings_error_automatic": "Αδυναμία σύνδεσης στον ελεγκτή Tor. Λειτουργεί ο Tor Browser (διαθέσιμος στο torproject.org) στο παρασκήνιο;", - "settings_error_socket_port": "Αδυναμία σύνδεσης στον ελεγκτή Tor στις {}:{}.", - "settings_error_socket_file": "Αποτυχία σύνδεσης στον ελεγκτή Tor χρησιμοποιώντας το αρχείο socket {}.", + "settings_error_automatic": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor. Λειτουργεί ο Tor Browser (διαθέσιμος στο torproject.org) στο παρασκήνιο;", + "settings_error_socket_port": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor στις {}:{}.", + "settings_error_socket_file": "Δεν ήταν δυνατή η σύνδεση στον ελεγκτή Tor χρησιμοποιώντας το αρχείο socket {}.", "settings_error_auth": "Εγινε σύνδεση με {}:{}, αλλα δεν μπορεί να γίνει πιστοποίηση. Ίσως δεν είναι ελεγκτής Tor;", "settings_error_missing_password": "Έγινε σύνδεση με τον ελεγκτή Tor, αλλά απαιτείται κωδικός για πιστοποίηση.", - "settings_error_unreadable_cookie_file": "Έγινε σύνδεση με τον ελεγκτή Tor, αλλα ο κωδικός πιθανόν να είναι λάθος, ή δεν επιτρέπεται στο χρήστη να διαβάζει αρχεία cookie.", + "settings_error_unreadable_cookie_file": "Έγινε σύνδεση με τον ελεγκτή Tor, αλλα ο κωδικός ενδέχεται να είναι λανθασμένος, ή δεν σας επιτρέπεται να διαβάζετε αρχεία cookie.", "settings_error_bundled_tor_not_supported": "Η χρήση της έκδοσης Tor που περιέχεται στο OnionShare δεν είναι συμβατή με το περιβάλλον προγραμματιστή σε Windows ή macOS.", - "settings_error_bundled_tor_timeout": "Η σύνδεση με Tor αργεί αρκετά. Ισως δεν είστε συνδεδεμένοι στο Διαδίκτυο ή το ρολόι του συστήματος δεν είναι σωστό;", + "settings_error_bundled_tor_timeout": "Η σύνδεση με Tor καθυστερεί αρκετά. Ίσως δεν είστε συνδεδεμένοι στο Διαδίκτυο ή το ρολόι του συστήματος δεν είναι ρυθμισμένο σωστά;", "settings_error_bundled_tor_broken": "Το OnionShare δεν μπορεί να συνδεθεί με το Tor στο παρασκήνιο:\n{}", - "settings_test_success": "Εγινε σύνδεση με τον ελεγκτή Tor.\n\nΕκδοση Tor: {}\nΥποστηρίζει εφήμερες υπηρεσίες onion: {}.\nΥποστηρίζει πιστοποίηση πελάτη: {}.\nΥποστηρίζει νέας γενιάς διευθύνσεις .onion: {}.", - "error_tor_protocol_error": "Υπήρξε σφάλμα με το Tor: {}", + "settings_test_success": "Εγινε σύνδεση με τον ελεγκτή Tor.\n\nΕκδοση Tor: {}\nΥποστηρίζει εφήμερες υπηρεσίες onion: {}.\nΥποστηρίζει πιστοποίηση πελάτη: {}.\nΥποστηρίζει διευθύνσεις .onion νέας γενιάς: {}.", + "error_tor_protocol_error": "Προέκυψε σφάλμα με το Tor: {}", "error_tor_protocol_error_unknown": "Υπήρξε άγνωστο σφάλμα με το Tor", "error_invalid_private_key": "Αυτο το ιδιωτικό κλειδί δεν υποστηρίζεται", "connecting_to_tor": "Γίνεται σύνδεση στο δίκτυο Tor", - "update_available": "Βγήκε ενα νέο OnionShare. <a href='{}'>Κάντε κλικ εδώ</a> για να το λάβετε.<br><br>Χρησιμοποιείτε {} και το πιό πρόσφατο είναι το {}.", - "update_error_check_error": "Δεν μπόρεσε να γίνει έλεγχος για νέα έκδοση: ίσως δεν είστε συνδεδεμένοι στο Tor ή ο ιστότοπος OnionShare είναι εκτός λειτουργίας;", - "update_error_invalid_latest_version": "Δεν μπορεί να γίνει έλεγχος για νέα έκδοση: η ιστοσελίδα OnionShare αναφέρει ότι η τελευταία έκδοση είναι η μη αναγνωρίσιμη \"{}\"…", - "update_not_available": "Έχετε την πιό πρόσφατη έκδοση του OnionShare.", - "gui_tor_connection_ask": "Άνοιγμα των ρυθμίσεων για να επιλύσετε την σύνδεση με το Tor;", + "update_available": "Υπάρχει διαθέσιμη ενημέρωση. <a href='{}'>Κάντε κλικ εδώ</a> για να την αποκτήσετε.<br><br>Χρησιμοποιείτε την έκδοση {}, ενώ η πιο πρόσφατη είναι η {}.", + "update_error_check_error": "Δεν ήταν δυνατός ο έλεγχος για ενημερώσεις: ίσως δεν είστε συνδεδεμένος στο Tor ή ο ιστότοπος OnionShare είναι εκτός λειτουργίας;", + "update_error_invalid_latest_version": "Δεν ήταν δυνατός ο έλεγχος για ενημερώσεις: η ιστοσελίδα OnionShare αναφέρει ότι η πιο πρόσφατη έκδοση είναι η μη αναγνωρίσιμη \"{}\"…", + "update_not_available": "Χρησιμοποιείτε την πιο πρόσφατη έκδοση του OnionShare.", + "gui_tor_connection_ask": "Θα θέλατε να ανοίξετε τις ρυθμίσεις για να φτιάξετε την σύνδεσή σας με το Tor;", "gui_tor_connection_ask_open_settings": "Ναι", "gui_tor_connection_ask_quit": "Έξοδος", - "gui_tor_connection_error_settings": "Προσπαθήστε να αλλάξετε τον τρόπο σύνδεσης του OnionShare με το δίκτυο Tor από τις ρυθμίσεις.", - "gui_tor_connection_canceled": "Δεν μπόρεσε να γίνει σύνδεση στο Tor.\n\nΕλέγξτε ότι είστε συνδεδεμένος/η στο Διαδίκτυο, επανεκκινήστε το OnionShare και ρυθμίστε την σύνδεση με το Tor.", - "gui_tor_connection_lost": "Έγινε αποσύνδεση από το Tor.", + "gui_tor_connection_error_settings": "Ίσως να ήταν καλή ιδέα να αλλάξετε τον τρόπο σύνδεσης του OnionShare με το δίκτυο Tor από τις ρυθμίσεις.", + "gui_tor_connection_canceled": "Δεν ήταν δυνατή η σύνδεση στο δίκτυο του Tor.\n\nΕλέγξτε ότι είστε συνδεδεμένος/η στο Διαδίκτυο, επανεκκινήστε το OnionShare και ρυθμίστε την σύνδεση με το Tor.", + "gui_tor_connection_lost": "Έγινε αποσύνδεση από το δίκτυο του Tor.", "gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.", "gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.", "share_via_onionshare": "Μοιραστείτε μέσω OnionShare", @@ -138,15 +138,15 @@ "gui_save_private_key_checkbox": "Χρήση μόνιμης διεύθυνσης", "gui_share_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί να <b>κατεβάσει</b> τα αρχεία σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />", "gui_receive_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare, μπορεί να <b>ανεβάσει</b> αρχεία στον υπολογιστή σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />", - "gui_url_label_persistent": "Αυτός ο διαμοιρασμός δεν θα λήξει αυτόματα.<br><br>Οποιοσδήποτε επακόλουθος διαμοιρασμός θα επαναχρησιμοποιήσει αυτή τη διεύθυνση. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)", - "gui_url_label_stay_open": "Αυτός ο διαμοιρασμός δε λήγει αυτόματα.", + "gui_url_label_persistent": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.<br><br>Όσοι μοιράζονται αρχεία μαζί σας θα μπορέσουν να ξαναχρησιμοποιήσουν αυτή τη διεύθυνση αργότερα. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)", + "gui_url_label_stay_open": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.", "gui_url_label_onetime": "Αυτός ο διαμοιρασμός θα σταματήσει μετά την πρώτη λήψη.", - "gui_url_label_onetime_and_persistent": "Αυτός ο διαμοιρασμός δεν θα λήξει αυτόματα.<br><br>Οποιοσδήποτε επακόλουθος διαμοιρασμός θα επαναχρησιμοποιήσει αυτή τη διεύθυνση. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)", + "gui_url_label_onetime_and_persistent": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.<br><br>Οποιοσδήποτε επακόλουθος διαμοιρασμός θα επαναχρησιμοποιήσει αυτή τη διεύθυνση. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)", "gui_status_indicator_share_stopped": "Έτοιμο για διαμοιρασμό", "gui_status_indicator_share_working": "Εκκίνηση…", - "gui_status_indicator_share_started": "Διαμοιρασμός", + "gui_status_indicator_share_started": "Γίνεται αποστολή", "gui_status_indicator_receive_stopped": "Έτοιμο για λήψη", - "gui_status_indicator_receive_working": "Ξεκινάει…", + "gui_status_indicator_receive_working": "Γίνεται εκκίνηση…", "gui_status_indicator_receive_started": "Γίνεται λήψη", "gui_file_info": "{} αρχεία, {}", "gui_file_info_single": "{} αρχείο, {}", @@ -186,7 +186,7 @@ "gui_add_files": "Προσθήκη αρχείων", "gui_add_folder": "Προσθήκη φακέλου", "gui_connect_to_tor_for_onion_settings": "Συνδεθείτε στο Tor για να δείτε τις ρυθμίσεις της υπηρεσίας onion", - "error_cannot_create_data_dir": "Δεν μπόρεσε να δημιουργηθεί φάκελος δεδομένων OnionShare: {}", + "error_cannot_create_data_dir": "Δεν ήταν δυνατή η δημιουργία φακέλου δεδομένων OnionShare: {}", "receive_mode_data_dir": "Τα αρχεία που στάλθηκαν σε εσας εμφανίζοντε στον φάκελο: {}", "gui_settings_data_dir_label": "Αποθήκευση αρχείων σε", "gui_settings_data_dir_browse_button": "Περιήγηση", @@ -207,7 +207,7 @@ "gui_all_modes_progress_complete": "%p%, πέρασαν {0:s}.", "gui_all_modes_progress_starting": "{0:s}, %p% (γίνεται υπολογισμός)", "gui_all_modes_progress_eta": "{0:s}, Εκτιμώμενος χρόνος: {1:s}, %p%", - "gui_share_mode_no_files": "Δεν στάλθηκαν ακόμα αρχεία", + "gui_share_mode_no_files": "Δεν έχουν αποσταλεί ακόμα αρχεία", "gui_share_mode_autostop_timer_waiting": "Αναμένεται η ολοκλήρωση της αποστολής", "gui_receive_mode_no_files": "Δεν έχει γίνει λήψη αρχείων ακόμα", "gui_receive_mode_autostop_timer_waiting": "Αναμένεται η ολοκλήρωση της λήψης", @@ -216,7 +216,7 @@ "gui_all_modes_transfer_canceled": "Ακυρώθηκε {}", "gui_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματης διακοπής λήγει σε {}", "gui_start_server_autostart_timer_tooltip": "Το χρονόμετρο αυτόματης εκκίνησης λήγει σε {}", - "gui_waiting_to_start": "Προγραμματισμένο να ξεκινήσει σε {}. Πατήστε για ακύρωση.", + "gui_waiting_to_start": "Προγραμματισμένο να ξεκινήσει σε {}. Κάντε κλικ για ακύρωση.", "gui_settings_autostart_timer_checkbox": "Χρήση χρονομέτρου αυτόματης έναρξης", "gui_settings_autostart_timer": "Εκκίνηση διαμοιρασμού σε:", "gui_server_autostart_timer_expired": "Η προγραμματισμένη ώρα έχει ήδη παρέλθει. Παρακαλώ ρυθμίστε τη για να ξεκινήσετε το διαμοιρασμό.", @@ -227,16 +227,16 @@ "hours_first_letter": "ώ", "minutes_first_letter": "λ", "seconds_first_letter": "δ", - "gui_website_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί <b>να επισκεφτεί</b> την ιστοσελία χρησιμοποιώντας τον <b>Tor Browser</b>: <img src='{}' />", + "gui_website_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί <b>να επισκεφτεί</b> την ιστοσελίδα χρησιμοποιώντας τον <b>Tor Browser</b>: <img src='{}' />", "gui_mode_website_button": "Δημοσίευση ιστοσελίδας", - "gui_website_mode_no_files": "Η ιστοσελίδα δεν έχει μοιραστεί ακόμα", - "incorrect_password": "Λάθος κωδικός πρόσβασης", + "gui_website_mode_no_files": "Δεν έχει γίνει διαμοιρασμός ιστοσελίδας ακόμα", + "incorrect_password": "Λάθος κωδικός", "gui_settings_individual_downloads_label": "Απεπιλέξτε για να επιτρέψετε τη λήψη μεμονωμένων αρχείων", "history_requests_tooltip": "{} αιτήματα δικτύου", "gui_settings_csp_header_disabled_option": "Απενεργοποίηση της κεφαλίδας Content Security Policy", "gui_settings_website_label": "Ρυθμίσεις ιστοσελίδας", "gui_open_folder_error": "Το άνοιγμα του φακέλου με xdg-open απέτυχε. Το αρχείο βρίσκετε : {}", - "gui_receive_flatpak_data_dir": "Επειδή εγκαταστήσατε το OnionShare με χρήση του Flatpak, πρέπει να αποθηκεύσετε τα αρχεία σε φάκελο ~/OnionShare.", + "gui_receive_flatpak_data_dir": "Επειδή έχετε εγκαταστήσει το OnionShare μέσω Flatpak, θα πρέπει να αποθηκεύσετε τα αρχεία μέσα σε έναν φάκελο στο ~/OnionShare.", "gui_chat_stop_server": "Τερματισμός διακομιστή συνομιλίας", "gui_chat_start_server": "Έναρξη διακομιστή συνομιλίας", "mode_settings_website_disable_csp_checkbox": "Μην στέλνετε κεφαλίδα με περιεχόμενο από την πολιτικής ασφάλειας σας (επιτρέπει στην ιστοσελίδα σας να χρησιμοποιεί πόρους τρίτων)", @@ -252,15 +252,15 @@ "mode_settings_advanced_toggle_hide": "Απόκρυψη προχωρημένων ρυθμίσεων", "mode_settings_advanced_toggle_show": "Εμφάνιση προχωρημένων ρυθμίσεων", "gui_quit_warning_cancel": "Άκυρο", - "gui_quit_warning_description": "Είναι ενεργή η κοινή χρήση σε ορισμένες καρτέλες. Εάν κάνετε έξοδο, όλες οι καρτέλες σας θα κλείσουν. Είστε σίγουροι;", - "gui_quit_warning_title": "Είστε σίγουροι;", + "gui_quit_warning_description": "Είναι ενεργή η κοινή χρήση σε ορισμένες καρτέλες. Εάν κάνετε έξοδο, όλες οι καρτέλες σας θα κλείσουν. Είστε σίγουρος/η;", + "gui_quit_warning_title": "Είστε σίγουρος/η;", "gui_close_tab_warning_cancel": "Άκυρο", "gui_close_tab_warning_close": "Κλείσιμο", - "gui_close_tab_warning_website_description": "Φιλοξενείτε ενεργά έναν ιστότοπο. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;", - "gui_close_tab_warning_receive_description": "Η λήψη αρχείων δεν ολοκληρώθηκε. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;", - "gui_close_tab_warning_share_description": "Η αποστολή αρχείων δεν ολοκληρώθηκε. Είστε βέβαιοι ότι θέλετε να κλείσετε την καρτέλα;", - "gui_close_tab_warning_persistent_description": "Η καρτέλα δεν είναι μόνιμη. Εάν την κλείσετε, θα χαθεί η διεύθυνση onion που χρησιμοποιεί. Είστε βέβαιοι ότι θέλετε να την κλείσετε;", - "gui_close_tab_warning_title": "Είστε σίγουροι;", + "gui_close_tab_warning_website_description": "Φιλοξενείτε έναν ιστότοπο. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;", + "gui_close_tab_warning_receive_description": "Η λήψη αρχείων δεν έχει ολοκληρωθεί. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;", + "gui_close_tab_warning_share_description": "Η αποστολή αρχείων δεν έχει ολοκληρωθεί ακόμα. Είστε βέβαιος/η ότι θέλετε να κλείσετε την καρτέλα;", + "gui_close_tab_warning_persistent_description": "Η καρτέλα δεν είναι μόνιμη. Εάν την κλείσετε, θα χαθεί η διεύθυνση onion που χρησιμοποιείτε. Είστε βέβαιοι ότι θέλετε να την κλείσετε;", + "gui_close_tab_warning_title": "Είστε σίγουρος/η;", "gui_tab_name_chat": "Συνομιλία", "gui_tab_name_website": "Ιστότοπος", "gui_tab_name_receive": "Λήψη", @@ -270,9 +270,9 @@ "gui_main_page_receive_button": "Έναρξη λήψης", "gui_main_page_share_button": "Έναρξη διαμοιρασμού", "gui_new_tab_chat_button": "Συνομιλήστε ανώνυμα", - "gui_new_tab_website_button": "Φιλοξενήστε έναν ιστότοπο", + "gui_new_tab_website_button": "Φιλοξενία ιστότοπου", "gui_new_tab_receive_button": "Λήψη αρχείων", - "gui_new_tab_share_button": "Διαμοιράστε αρχεία", + "gui_new_tab_share_button": "Διαμοιρασμός αρχείων", "gui_new_tab_tooltip": "Άνοιγμα νέας καρτέλας", "gui_new_tab": "Νέα καρτέλα", "gui_qr_code_dialog_title": "Κώδικας QR OnionShare", @@ -282,7 +282,7 @@ "error_port_not_available": "Η θύρα OnionShare δεν είναι διαθέσιμη", "gui_rendezvous_cleanup_quit_early": "Πρόωρη έξοδος", "gui_rendezvous_cleanup": "Αναμονή για τερματισμό των κυκλωμάτων του Tor για να βεβαιωθείτε ότι τα αρχεία σας έχουν μεταφερθεί με επιτυχία.\n\nΑυτό μπορεί να διαρκέσει λίγα λεπτά.", - "gui_chat_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση του OnionShare μπορεί <b>να συμμετέχει στο chat</b> με χρήση του <b>Tor Browser</b>: <img src='{}' />", + "gui_chat_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση του OnionShare μπορεί <b>να συμμετέχει στο δωμάτιο συνομιλίας</b> με χρήση του <b>Tor Browser</b>: <img src='{}' />", "gui_color_mode_changed_notice": "Επανεκκινήστε το OnionShare για εφαρμοστεί το νέο χρώμα.", "history_receive_read_message_button": "Ανάγνωση μηνύματος", "mode_settings_receive_webhook_url_checkbox": "Χρήση ειδοποίησης webhook", @@ -293,4 +293,4 @@ "gui_status_indicator_chat_scheduled": "Δρομολόγηση…", "gui_status_indicator_chat_working": "Εκκίνηση…", "gui_status_indicator_chat_stopped": "Έτοιμο για συνομιλία" -} +}
\ No newline at end of file diff --git a/desktop/src/onionshare/resources/locale/fr.json b/desktop/src/onionshare/resources/locale/fr.json index f23a11e9..8c4bf20a 100644 --- a/desktop/src/onionshare/resources/locale/fr.json +++ b/desktop/src/onionshare/resources/locale/fr.json @@ -95,7 +95,7 @@ "settings_error_missing_password": "Vous êtes connecté au contrôleur Tor, mais il exige un mot de passe d’authentification.", "settings_error_unreadable_cookie_file": "Vous êtes connecté au contrôleur Tor, mais le mot de passe est peut-être erroné ou votre utilisateur n’est pas autorisé à lire le fichier témoin.", "settings_error_bundled_tor_not_supported": "Utiliser la version de Tor intégrée à OnionShare ne fonctionne pas en mode développeur sous Windows ou macOS.", - "settings_error_bundled_tor_timeout": "La connexion à Tor prend trop de temps. Vous n’êtes peut-être pas connecté à Internet ou votre horloge système est mal réglée.", + "settings_error_bundled_tor_timeout": "La connexion à Tor prend trop de temps. Vous n’êtes peut-être pas connecté à Internet ou votre horloge système est-elle mal réglée ?", "settings_error_bundled_tor_broken": "OnionShare n’a pas réussi à se connecter à Tor :\n{}", "error_tor_protocol_error": "Une erreur est survenue avec Tor : {}", "error_tor_protocol_error_unknown": "Une erreur inconnue est survenue avec Tor", @@ -300,5 +300,9 @@ "mode_settings_receive_webhook_url_checkbox": "Utiliser un point d’ancrage Web de notification", "mode_settings_receive_disable_files_checkbox": "Désactiver le téléversement de fichiers", "mode_settings_receive_disable_text_checkbox": "Désactiver l’envoi de texte", - "mode_settings_title_label": "Titre personnalisé" + "mode_settings_title_label": "Titre personnalisé", + "gui_status_indicator_chat_started": "En conversation", + "gui_status_indicator_chat_scheduled": "Planifié…", + "gui_status_indicator_chat_working": "Démarrage…", + "gui_status_indicator_chat_stopped": "Prêt à dialoguer" } diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/src/onionshare/resources/locale/gl.json index 86fc7b8e..67b095cc 100644 --- a/desktop/src/onionshare/resources/locale/gl.json +++ b/desktop/src/onionshare/resources/locale/gl.json @@ -196,5 +196,10 @@ "history_receive_read_message_button": "Ler mensaxe", "mode_settings_receive_disable_files_checkbox": "Desactivar a subida de ficheiros", "mode_settings_receive_disable_text_checkbox": "Desactivar o envío de texto", - "mode_settings_title_label": "Título personalizado" + "mode_settings_title_label": "Título personalizado", + "mode_settings_receive_webhook_url_checkbox": "Usar webhook de notificación", + "gui_status_indicator_chat_started": "Conversando", + "gui_status_indicator_chat_scheduled": "Programado…", + "gui_status_indicator_chat_working": "Comezando…", + "gui_status_indicator_chat_stopped": "Preparado para conversar" } diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json index 9cfc310d..e5a6d893 100644 --- a/desktop/src/onionshare/resources/locale/hi.json +++ b/desktop/src/onionshare/resources/locale/hi.json @@ -21,7 +21,7 @@ "help_verbose": "", "help_filename": "", "help_config": "", - "gui_drag_and_drop": "साझा शुरू करने के लिए\nफाइलों एवं फोल्डरों को ड्रैग और ड्रॉप करें", + "gui_drag_and_drop": "साझा शुरू करने के लिए फाइलों एवं फोल्डरों को ड्रैग और ड्रॉप करें", "gui_add": "जोड़ें", "gui_add_files": "फाइल जोड़ें", "gui_add_folder": "फोल्डर जोड़ें", @@ -186,5 +186,10 @@ "gui_waiting_to_start": "{} में शुरू होने के लिए शेडयूल है। रद्द करने के लिए क्लिक करें।", "incorrect_password": "पासवर्ड गलत है", "gui_settings_individual_downloads_label": "विशिष्ट फाइलों के डाउनलोड को मंजूरी देने के लिए अचिन्हित करें", - "gui_settings_csp_header_disabled_option": "सामग्री सुरक्षा नियम हेडर को अक्षम करें" + "gui_settings_csp_header_disabled_option": "सामग्री सुरक्षा नियम हेडर को अक्षम करें", + "gui_show_url_qr_code": "क्यूआर कोड दिखाएं", + "gui_chat_stop_server": "चैट सर्वर बंद करें", + "gui_chat_start_server": "चैट सर्वर शुरू करें", + "gui_file_selection_remove_all": "सभी हटाएं", + "gui_remove": "हटाएं" } diff --git a/desktop/src/onionshare/resources/locale/nl.json b/desktop/src/onionshare/resources/locale/nl.json index 2b5ced73..32e8f204 100644 --- a/desktop/src/onionshare/resources/locale/nl.json +++ b/desktop/src/onionshare/resources/locale/nl.json @@ -26,7 +26,7 @@ "help_verbose": "Log OnionShare fouten naar stdout, en web fouten naar disk", "help_filename": "Lijst van bestanden of mappen om te delen", "help_config": "Instelbaar pad naar JSON configuratie bestand (optioneel)", - "gui_drag_and_drop": "Sleep en zet\nbestanden hier neer om het delen te starten", + "gui_drag_and_drop": "Sleep bestanden hier naar toe om het delen te starten", "gui_add": "Toevoegen", "gui_delete": "Verwijder", "gui_choose_items": "Kies", @@ -75,7 +75,7 @@ "gui_settings_button_help": "Help", "gui_settings_autostop_timer": "Stop het delen om:", "settings_saved": "Instellingen opgeslagen in {}", - "settings_error_unknown": "Kan geen verbinding maken met de Tor controller omdat je instellingen nergens op slaan.", + "settings_error_unknown": "Kan geen verbinding maken met de Tor controller, omdat je instellingen nergens op slaan.", "settings_error_automatic": "Kon geen verbinding maken met de Tor controller. Draait Tor Browser (beschikbaar via torproject.org) in de achtergrond?", "settings_error_socket_port": "Kan geen verbinding maken met de Tor controller op {}:{}.", "settings_error_socket_file": "Kan geen verbinding maken met de Tor controller via socket bestand {}.", @@ -88,9 +88,9 @@ "settings_test_success": "Verbonden met de Tor controller.\n\nTor versie: {}\nOndersteunt ephemeral onion services: {}.\nOndersteunt client authentication: {}.\nOndersteunt next-gen .onion addresses: {}.", "error_tor_protocol_error": "Er was een fout met Tor: {}", "connecting_to_tor": "Verbinden met het Tor netwerk", - "update_available": "Nieuwe OnionShare is uitgekomen. <a href='{}'>Klik hier</a> om hem te krijgen.<br><br>Jij gebruikt {} and de laatste is {}.", - "update_error_check_error": "Kon niet controleren op een nieuwe versie: de OnionShare website meldt dat de laatste versie de onherkenbare is '{}' is…", - "update_error_invalid_latest_version": "Kon niet controleren op een nieuwe versie: Wellicht ben je niet met Tor verbonden, of de OnionShare website is niet beschikbaar?", + "update_available": "Nieuwe OnionShare is uitgekomen. <a href='{}'>Klik hier</a> om hem te krijgen.<br><br>Jij gebruikt {} en de laatste is {}.", + "update_error_check_error": "Kon niet controleren op een nieuwe versie: Wellicht ben je niet met Tor verbonden, of de OnionShare website is niet beschikbaar?", + "update_error_invalid_latest_version": "Kon niet controleren op een nieuwe versie: de OnionShare website meldt dat de laatste versie de onherkenbare is '{}' is…", "update_not_available": "Je draait de laatst beschikbare OnionShare.", "gui_tor_connection_ask": "Open de instellingen om het verbindingsprobleem met Tor op te lossen?", "gui_tor_connection_ask_open_settings": "Ja", @@ -139,7 +139,7 @@ "gui_use_legacy_v2_onions_checkbox": "Gebruik ouderwetse adressen", "gui_save_private_key_checkbox": "Gebruik een vast adres", "gui_share_url_description": "<b>1Iedereen</b>2 met dit OnionShare-adres kan je bestanden <b>3binnenhalen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />", - "gui_receive_url_description": "<b>1Iedereen</b>2 met dit OnionShare adres kan bestanden op je computer <b>3plaatsen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />7", + "gui_receive_url_description": "<b>Iedereen</b> met dit OnionShare adres kan bestanden op je computer <b>plaatsen</b> met de <b>Tor Browser</b>: <img src='{}' />", "gui_url_label_persistent": "Deze share stopt niet vanzelf. <br><br>Elke volgende share zal het adres hergebruiken. (Om eenmalige adressen te gebruiken, zet \"Gebruik vast adres\" uit in de settings.)", "gui_url_label_stay_open": "Deze share stopt niet automatisch.", "gui_url_label_onetime": "Deze share stopt na de eerste voltooiïng.", @@ -262,10 +262,10 @@ "mode_settings_client_auth_checkbox": "Gebruik client authorisatie", "mode_settings_autostop_timer_checkbox": "Stop onion service op een geplande tijd", "mode_settings_autostart_timer_checkbox": "Start onion service op een geplande tijd", - "mode_settings_persistent_checkbox": "Bewaar dit tabblad, en open het automatisch wanneer ik OnionShare open", + "mode_settings_persistent_checkbox": "Bewaar dit tabblad en open het automatisch wanneer ik OnionShare open", "gui_quit_warning_description": "Delen is actief op sommige van uw tabbladen. Als u stopt, worden al uw tabbladen gesloten. Weet u zeker dat u wilt stoppen?", "gui_close_tab_warning_website_description": "U host actief een website. Weet u zeker dat u dit tabblad wilt sluiten?", - "gui_close_tab_warning_persistent_description": "Dit tabblad is pertinent. Als je het sluit, verlies je het onion adres dat wordt gebruikt. Weet u zeker dat u het wilt sluiten?", + "gui_close_tab_warning_persistent_description": "Dit tabblad heeft een vast onion adres. Als je het tabblad sluit wordt het gebruikte onion adres opgeheven. Weet je zeker dat je dit wil sluiten?", "gui_tab_name_chat": "Chat", "gui_tab_name_website": "Website", "gui_tab_name_receive": "Ontvang", @@ -286,5 +286,19 @@ "gui_chat_stop_server": "Stop chat server", "gui_chat_start_server": "Start chat server", "gui_file_selection_remove_all": "Alles verwijderen", - "gui_remove": "Verwijderen" + "gui_remove": "Verwijderen", + "gui_rendezvous_cleanup": "Wachten op Tor circuits om af te sluiten, om zeker te stellen dat je bestanden succesvol zijn verplaatst\n\nDit kan enkele minuten duren.", + "mode_settings_receive_disable_text_checkbox": "Schakel het versturen van tekst uit", + "mode_settings_receive_disable_files_checkbox": "Schakel uploaden bestanden uit", + "mode_settings_receive_webhook_url_checkbox": "Gebruik notificatie webhook", + "gui_rendezvous_cleanup_quit_early": "Vervroegd afsluiten", + "error_port_not_available": "OnionShare poort is niet beschikbaar", + "history_receive_read_message_button": "Lees bericht", + "gui_chat_url_description": "<b>Iedereen</b> met dit OnionShare adres kan<b>in deze chatkamer aansluiten </b> met de <b>Tor Browser</b>: <img src='{}' />", + "mode_settings_title_label": "Handmatige titel", + "gui_status_indicator_chat_working": "Starten…", + "gui_status_indicator_chat_started": "in gesprek", + "gui_status_indicator_chat_scheduled": "Ingepland…", + "gui_color_mode_changed_notice": "Herstart OnionShare om de nieuwe kleur toe te passen.", + "gui_status_indicator_chat_stopped": "Klaar om te chatten" } diff --git a/desktop/src/onionshare/resources/locale/ru.json b/desktop/src/onionshare/resources/locale/ru.json index 95484e8b..47e7e4d1 100644 --- a/desktop/src/onionshare/resources/locale/ru.json +++ b/desktop/src/onionshare/resources/locale/ru.json @@ -126,7 +126,7 @@ "settings_error_bundled_tor_timeout": "Подключение к Tor занимает слишком много времени. Возможно, отсутствует подключение к сети Интернет, или у вас неточно настроено системное время?", "settings_error_bundled_tor_broken": "Ошибка подключения OnionShare к Tor в фоновом режиме:\n{}", "settings_test_success": "Подключено к контроллеру Tor.\n\nВерсия Tor: {}\nПоддержка временных \"луковых\" сервисов: {}.\nПоддержка аутентификации клиента: {}.\nПоддержка адресов .onion следующего поколения: {}.", - "error_tor_protocol_error": "Ошибка Tor: {}", + "error_tor_protocol_error": "Была обнаружена ошибка Tor: {}", "error_tor_protocol_error_unknown": "Неизвестная ошибка Tor", "error_invalid_private_key": "Этот приватный ключ не поддерживается", "connecting_to_tor": "Подключение к сети Tor", @@ -283,5 +283,14 @@ "gui_rendezvous_cleanup_quit_early": "Выйти Раньше", "gui_rendezvous_cleanup": "Ожидается завершение соединений с сетью Tor для подтверждения успешной отправки ваших файлов.\n\nЭто может занять несколько минут.", "gui_color_mode_changed_notice": "Перезапустите OnionShare чтобы изменения цветовой гаммы вступили в силу.", - "gui_chat_url_description": "<b>Каждый</b> у кого есть этот адрес OnionShare может <b>присоединиться к этому чату</b> при помощи <b>Tor Browser</b>: <img src='{}' />" + "gui_chat_url_description": "<b>Каждый</b> у кого есть этот адрес OnionShare может <b>присоединиться к этому чату</b> при помощи <b>Tor Browser</b>: <img src='{}' />", + "history_receive_read_message_button": "Прочитать сообщение", + "mode_settings_receive_webhook_url_checkbox": "Использовать веб-хук для отправки уведомлений", + "mode_settings_receive_disable_files_checkbox": "Запретить передачу файлов", + "mode_settings_receive_disable_text_checkbox": "Запретить отправку текста", + "mode_settings_title_label": "Собственное название", + "gui_status_indicator_chat_started": "Чат активен", + "gui_status_indicator_chat_scheduled": "По расписанию…", + "gui_status_indicator_chat_working": "Запуск…", + "gui_status_indicator_chat_stopped": "Готов начать чат" } diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json index c646594f..9b217970 100644 --- a/desktop/src/onionshare/resources/locale/tr.json +++ b/desktop/src/onionshare/resources/locale/tr.json @@ -263,5 +263,9 @@ "mode_settings_receive_webhook_url_checkbox": "Bildirim web kancası kullan", "mode_settings_receive_disable_files_checkbox": "Dosya yüklemeyi devre dışı bırak", "mode_settings_receive_disable_text_checkbox": "Metin göndermeyi devre dışı bırak", - "mode_settings_title_label": "Özel başlık" + "mode_settings_title_label": "Özel başlık", + "gui_status_indicator_chat_started": "Sohbet ediliyor", + "gui_status_indicator_chat_scheduled": "Zamanlandı…", + "gui_status_indicator_chat_working": "Başlatılıyor…", + "gui_status_indicator_chat_stopped": "Sohbet etmeye hazır" } diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json index 316c2dc4..03ea9dfb 100644 --- a/desktop/src/onionshare/resources/locale/uk.json +++ b/desktop/src/onionshare/resources/locale/uk.json @@ -238,5 +238,9 @@ "history_receive_read_message_button": "Читати повідомлення", "mode_settings_receive_disable_files_checkbox": "Вимкнути передавання файлів", "mode_settings_receive_disable_text_checkbox": "Вимкнути надсилання тексту", - "mode_settings_title_label": "Власний заголовок" + "mode_settings_title_label": "Власний заголовок", + "gui_status_indicator_chat_scheduled": "Заплановано…", + "gui_status_indicator_chat_started": "Спілкування", + "gui_status_indicator_chat_working": "Початок…", + "gui_status_indicator_chat_stopped": "Готовий до спілкування" } diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py index 3a38ff8e..acaa9739 100644 --- a/desktop/tests/gui_base_test.py +++ b/desktop/tests/gui_base_test.py @@ -465,6 +465,20 @@ class GuiBaseTest(unittest.TestCase): # We should have timed out now self.assertEqual(tab.get_mode().server_status.status, 0) + def hit_405(self, url, expected_resp, data = {}, methods = [] ): + """Test various HTTP methods and the response""" + for method in methods: + if method == "put": + r = requests.put(url, data = data) + if method == "post": + r = requests.post(url, data = data) + if method == "delete": + r = requests.delete(url) + if method == "options": + r = requests.options(url) + self.assertTrue(expected_resp in r.text) + self.assertFalse('Werkzeug' in r.headers) + # Grouped tests follow from here def run_all_common_setup_tests(self): diff --git a/desktop/tests/test_gui_chat.py b/desktop/tests/test_gui_chat.py index 7a19168b..15ecaa44 100644 --- a/desktop/tests/test_gui_chat.py +++ b/desktop/tests/test_gui_chat.py @@ -30,7 +30,7 @@ class TestChat(GuiBaseTest): def change_username(self, tab): """Test that we can change our username""" url = f"http://127.0.0.1:{tab.app.port}/update-session-username" - data = {"username":"oniontest"} + data = {"username": "oniontest"} if tab.settings.get("general", "public"): r = requests.post(url, json=data) else: @@ -47,7 +47,7 @@ class TestChat(GuiBaseTest): self.assertTrue(jsonResponse["success"]) self.assertEqual(jsonResponse["username"], "oniontest") - def run_all_chat_mode_tests(self, tab): + def run_all_chat_mode_started_tests(self, tab): """Tests in chat mode after starting a chat""" self.server_working_on_start_button_pressed(tab) self.server_status_indicator_says_starting(tab) @@ -58,8 +58,9 @@ class TestChat(GuiBaseTest): self.have_copy_url_button(tab) self.have_show_qr_code_button(tab) self.server_status_indicator_says_started(tab) - self.view_chat(tab) - self.change_username(tab) + + def run_all_chat_mode_stopping_tests(self, tab): + """Tests stopping a chat""" self.server_is_stopped(tab) self.web_server_is_stopped(tab) self.server_status_indicator_says_closed(tab) @@ -71,5 +72,27 @@ class TestChat(GuiBaseTest): Test chat mode """ tab = self.new_chat_tab() - self.run_all_chat_mode_tests(tab) + self.run_all_chat_mode_started_tests(tab) + self.view_chat(tab) + self.change_username(tab) + self.run_all_chat_mode_stopping_tests(tab) + self.close_all_tabs() + + def test_405_page_returned_for_invalid_methods(self): + """ + Our custom 405 page should return for invalid methods + """ + tab = self.new_chat_tab() + + tab.get_mode().mode_settings_widget.public_checkbox.click() + + self.run_all_chat_mode_started_tests(tab) + url = f"http://127.0.0.1:{tab.app.port}/" + self.hit_405( + url, + expected_resp="OnionShare: 405 Method Not Allowed", + data={"foo": "bar"}, + methods=["put", "post", "delete", "options"], + ) + self.run_all_chat_mode_stopping_tests(tab) self.close_all_tabs() diff --git a/desktop/tests/test_gui_receive.py b/desktop/tests/test_gui_receive.py index 6e14ae67..b523b0fa 100644 --- a/desktop/tests/test_gui_receive.py +++ b/desktop/tests/test_gui_receive.py @@ -286,3 +286,22 @@ class TestReceive(GuiBaseTest): self.run_all_upload_non_writable_dir_tests(tab) self.close_all_tabs() + + def test_405_page_returned_for_invalid_methods(self): + """ + Our custom 405 page should return for invalid methods + """ + tab = self.new_receive_tab() + + tab.get_mode().mode_settings_widget.public_checkbox.click() + + self.run_all_common_setup_tests() + self.run_all_receive_mode_setup_tests(tab) + self.upload_file(tab, self.tmpfile_test, "test.txt") + url = f"http://127.0.0.1:{tab.app.port}/" + self.hit_405(url, expected_resp="OnionShare: 405 Method Not Allowed", data = {'foo':'bar'}, methods = ["put", "post", "delete", "options"]) + + self.server_is_stopped(tab) + self.web_server_is_stopped(tab) + self.server_status_indicator_says_closed(tab) + self.close_all_tabs() diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py index 380d63f6..531e456f 100644 --- a/desktop/tests/test_gui_share.py +++ b/desktop/tests/test_gui_share.py @@ -608,3 +608,20 @@ class TestShare(GuiBaseTest): self.hit_401(tab) self.close_all_tabs() + + def test_405_page_returned_for_invalid_methods(self): + """ + Our custom 405 page should return for invalid methods + """ + tab = self.new_share_tab() + + tab.get_mode().autostop_sharing_checkbox.click() + tab.get_mode().mode_settings_widget.public_checkbox.click() + + self.run_all_common_setup_tests() + self.run_all_share_mode_setup_tests(tab) + self.run_all_share_mode_started_tests(tab) + url = f"http://127.0.0.1:{tab.app.port}/" + self.hit_405(url, expected_resp="OnionShare: 405 Method Not Allowed", data = {'foo':'bar'}, methods = ["put", "post", "delete", "options"]) + self.history_widgets_present(tab) + self.close_all_tabs() diff --git a/desktop/tests/test_gui_website.py b/desktop/tests/test_gui_website.py index a838cb96..f526756a 100644 --- a/desktop/tests/test_gui_website.py +++ b/desktop/tests/test_gui_website.py @@ -99,3 +99,19 @@ class TestWebsite(GuiBaseTest): tab.get_mode().disable_csp_checkbox.click() self.run_all_website_mode_download_tests(tab) self.close_all_tabs() + + def test_405_page_returned_for_invalid_methods(self): + """ + Our custom 405 page should return for invalid methods + """ + tab = self.new_website_tab() + + tab.get_mode().mode_settings_widget.public_checkbox.click() + + self.run_all_common_setup_tests() + self.run_all_website_mode_setup_tests(tab) + self.run_all_website_mode_started_tests(tab) + url = f"http://127.0.0.1:{tab.app.port}/" + self.hit_405(url, expected_resp="OnionShare: 405 Method Not Allowed", data = {'foo':'bar'}, methods = ["put", "post", "delete", "options"]) + + self.close_all_tabs() diff --git a/docs/build.sh b/docs/build.sh index c5e38b18..53999f68 100755 --- a/docs/build.sh +++ b/docs/build.sh @@ -3,7 +3,7 @@ VERSION=`cat ../cli/onionshare_cli/resources/version.txt` # Supported locales -LOCALES="de en es el tr uk ru" +LOCALES="en de el ru es tr uk" # Generate English .po files make gettext diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree Binary files differindex 3a142d54..0b23bda0 100644 --- a/docs/gettext/.doctrees/advanced.doctree +++ b/docs/gettext/.doctrees/advanced.doctree diff --git a/docs/gettext/.doctrees/develop.doctree b/docs/gettext/.doctrees/develop.doctree Binary files differindex 8c48f7e0..45a2d587 100644 --- a/docs/gettext/.doctrees/develop.doctree +++ b/docs/gettext/.doctrees/develop.doctree diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle Binary files differindex 4b580f66..ba79cd05 100644 --- a/docs/gettext/.doctrees/environment.pickle +++ b/docs/gettext/.doctrees/environment.pickle diff --git a/docs/gettext/.doctrees/features.doctree b/docs/gettext/.doctrees/features.doctree Binary files differindex 339a9870..9411a3a0 100644 --- a/docs/gettext/.doctrees/features.doctree +++ b/docs/gettext/.doctrees/features.doctree diff --git a/docs/gettext/.doctrees/help.doctree b/docs/gettext/.doctrees/help.doctree Binary files differindex 32e71df0..bfb05b4f 100644 --- a/docs/gettext/.doctrees/help.doctree +++ b/docs/gettext/.doctrees/help.doctree diff --git a/docs/gettext/.doctrees/index.doctree b/docs/gettext/.doctrees/index.doctree Binary files differindex 6ae4d2f8..0907fdee 100644 --- a/docs/gettext/.doctrees/index.doctree +++ b/docs/gettext/.doctrees/index.doctree diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree Binary files differindex ec507658..6c9b9ade 100644 --- a/docs/gettext/.doctrees/install.doctree +++ b/docs/gettext/.doctrees/install.doctree diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree Binary files differindex 0d5182b7..48200490 100644 --- a/docs/gettext/.doctrees/security.doctree +++ b/docs/gettext/.doctrees/security.doctree diff --git a/docs/gettext/.doctrees/tor.doctree b/docs/gettext/.doctrees/tor.doctree Binary files differindex 378ebe7d..332a20d0 100644 --- a/docs/gettext/.doctrees/tor.doctree +++ b/docs/gettext/.doctrees/tor.doctree diff --git a/docs/gettext/advanced.pot b/docs/gettext/advanced.pot index cb156739..ecb4bcc9 100644 --- a/docs/gettext/advanced.pot +++ b/docs/gettext/advanced.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-03 21:48-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot index 8ef36381..3822530c 100644 --- a/docs/gettext/develop.pot +++ b/docs/gettext/develop.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-10 18:26-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/gettext/features.pot b/docs/gettext/features.pot index 2cfc8b20..0ca234b0 100644 --- a/docs/gettext/features.pot +++ b/docs/gettext/features.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-03 21:48-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/gettext/help.pot b/docs/gettext/help.pot index c9b8bb60..c2172a2f 100644 --- a/docs/gettext/help.pot +++ b/docs/gettext/help.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-03 21:48-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/gettext/index.pot b/docs/gettext/index.pot index dfd37dcc..dbabad62 100644 --- a/docs/gettext/index.pot +++ b/docs/gettext/index.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-03 21:48-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/gettext/install.pot b/docs/gettext/install.pot index 014b8ea7..f9b9242e 100644 --- a/docs/gettext/install.pot +++ b/docs/gettext/install.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-03 21:48-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/gettext/security.pot b/docs/gettext/security.pot index 60321bb3..4dfa7776 100644 --- a/docs/gettext/security.pot +++ b/docs/gettext/security.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-03 21:48-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/gettext/sphinx.pot b/docs/gettext/sphinx.pot index 1ba2b441..e367403f 100644 --- a/docs/gettext/sphinx.pot +++ b/docs/gettext/sphinx.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-03 21:48-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/gettext/tor.pot b/docs/gettext/tor.pot index 1a53dfad..66d64a75 100644 --- a/docs/gettext/tor.pot +++ b/docs/gettext/tor.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-03 21:48-0700\n" +"POT-Creation-Date: 2021-05-20 11:33-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/docs/source/conf.py b/docs/source/conf.py index 8d8bc100..16ac89b6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -7,11 +7,11 @@ templates_path = ["_templates"] exclude_patterns = [] languages = [ - ("Deutsch", "de"), # German ("English", "en"), # English - ("Español", "es"), # Spanish + ("Deutsch", "de"), # German ("Ελληνικά", "el"), # Greek - ("Русский", "ru"), # Ukranian + ("Русский", "ru"), # Russian + ("Español", "es"), # Spanish ("Türkçe", "tr"), # Turkish ("Українська", "uk"), # Ukranian ] diff --git a/docs/source/locale/de/LC_MESSAGES/advanced.po b/docs/source/locale/de/LC_MESSAGES/advanced.po index 46433e1e..52266b78 100644 --- a/docs/source/locale/de/LC_MESSAGES/advanced.po +++ b/docs/source/locale/de/LC_MESSAGES/advanced.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2020-11-17 10:28+0000\n" -"Last-Translator: mv87 <mv87@dismail.de>\n" -"Language: de\n" +"PO-Revision-Date: 2021-05-11 20:47+0000\n" +"Last-Translator: Lukas <lukas@fuchtmann.net>\n" "Language-Team: de <LL@li.org>\n" -"Plural-Forms: nplurals=2; plural=n != 1\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 @@ -118,7 +119,7 @@ msgstr "" #: ../../source/advanced.rst:40 msgid "Custom Titles" -msgstr "" +msgstr "Benutzerdefinierte Titel" #: ../../source/advanced.rst:42 msgid "" @@ -126,12 +127,18 @@ msgid "" "see the default title for the type of service. For example, the default " "title of a chat service is \"OnionShare Chat\"." msgstr "" +"Wenn jemand einen OnionShare-Dienst im Tor-Browser aufruft, sieht er " +"standardmäßig den Standardtitel für den jeweiligen Service-Typ. Der Standard-" +"Titel eines Chat-Dienstes ist beispielsweise \"OnionShare Chat\"." #: ../../source/advanced.rst:44 msgid "" "If you want to choose a custom title, set the \"Custom title\" setting " "before starting a server." msgstr "" +"Wenn du einen benutzerdefinierten Titel wählen möchtest, kannst du ihn, " +"bevor du den Service startest, mithilfe der Einstellung \"Benutzerdefinierter" +" Titel\" ändern." #: ../../source/advanced.rst:47 msgid "Scheduled Times" @@ -413,4 +420,3 @@ msgstr "" #~ "Windows aufsetzen (siehe " #~ ":ref:`starting_development`) und dann Folgendes " #~ "auf der Befehlszeile ausführen::" - diff --git a/docs/source/locale/de/LC_MESSAGES/features.po b/docs/source/locale/de/LC_MESSAGES/features.po index d142287a..115a8973 100644 --- a/docs/source/locale/de/LC_MESSAGES/features.po +++ b/docs/source/locale/de/LC_MESSAGES/features.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-11 05:34+0000\n" -"Last-Translator: Michael Breidenbach <leahc@tutanota.com>\n" +"PO-Revision-Date: 2021-05-11 20:47+0000\n" +"Last-Translator: Lukas <lukas@fuchtmann.net>\n" "Language-Team: de <LL@li.org>\n" "Language: de\n" "MIME-Version: 1.0\n" @@ -161,9 +161,9 @@ msgid "" "or the person is otherwise exposed to danger, use an encrypted messaging " "app." msgstr "" -"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und " -"schicke sie der Person, die die Dateien empfangen soll. Falls die Dateien" -" sicher bleiben sollen oder die Person sonstwie einer Gefahr ausgesetzt " +"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und schicke " +"sie der Person, die die Dateien empfangen soll. Falls die Dateien sicher " +"bleiben sollen oder die Person anderweitig irgendeiner Gefahr ausgesetzt " "ist, nutze einen verschlüsselten Messenger." #: ../../source/features.rst:42 @@ -189,10 +189,16 @@ msgid "" "anonymous dropbox. Open a receive tab and choose the settings that you " "want." msgstr "" +"Du kannst OnionShare verwenden, um anderen Personen zu ermöglichen, anonym " +"Dateien und Nachrichten direkt an deinen Computer zu übertragen, wodurch er " +"quasi zu einer Art anonymer Dropbox wird. Öffne dazu den Tab \"Empfangen\" " +"und wähle die gewünschten Einstellungen." #: ../../source/features.rst:54 msgid "You can browse for a folder to save messages and files that get submitted." msgstr "" +"Du kannst ein Verzeichnis zum Speichern von Nachrichten und Dateien " +"auswählen, die übermittelt werden." #: ../../source/features.rst:56 msgid "" @@ -200,6 +206,11 @@ msgid "" "uploads, and you can check \"Disable uploading files\" if you want to " "only allow submitting text messages, like for an anonymous contact form." msgstr "" +"Du kannst die Option \"Übermittlung von Nachrichten deaktiveren\" anwählen, " +"wenn du nur Datei-Uploads zulassen möchtest. Umgekehrt ist das genauso " +"möglich, wenn du nur Nachrichten zulassen möchtest, indem du \"Hochladen von " +"Dateien deaktivieren\" anwählst. So kannst du beispielsweise ein anonymes " +"Kontaktformular errichten." #: ../../source/features.rst:58 msgid "" @@ -215,6 +226,18 @@ msgid "" "your receive mode service, @webhookbot will send you a message on Keybase" " letting you know as soon as it happens." msgstr "" +"Du kannst die Option \"Benachrichtigungs-Webhook verwenden\" anwählen und " +"eine Webhook-URL festlegen, wenn du über neu eingetroffene Dateien oder " +"Nachrichten bei deinem OnionShare Service benachrichtigt werden willst. Wenn " +"du dieses Feature benutzt, stellt OnionShare jedes Mal, wenn eine neue Datei " +"oder Nachricht eingetroffen ist, eine HTTP POST Anfrage an die von dir " +"festgelegte URL. Wenn du beispielsweise eine verschlüsselte Nachricht über " +"die Messaging-App `Keybase <https://keybase.io/>`_ erhalten willst, starte " +"eine Unterhaltung mit dem `@webhookbot <https://keybase.io/webhookbot>`_, " +"schreibe ``!webhook create onionshare-alerts``und der Bot antwortet mit " +"einer URL. Diese URL verwendest du als Webhook-URL. Wenn nun jemand eine " +"Datei oder Nachricht an deinen OnionShare Service übermittelt, erhältst du " +"eine Nachricht vom @webhookbot auf Keybase." #: ../../source/features.rst:63 msgid "" @@ -223,6 +246,10 @@ msgid "" " be able to submit files and messages which get uploaded to your " "computer." msgstr "" +"Wenn du bereit bist, klicke auf \"Empfangsmodus starten\". Jetzt startet der " +"OnionShare Service. Jeder, der zu der angezeigte Adresse in seinem Tor " +"Browser navigiert, hat die Möglichkeit, Dateien und Nachrichten direkt an " +"deinen Computer zu übertragen." #: ../../source/features.rst:67 msgid "" @@ -230,13 +257,12 @@ msgid "" "the history and progress of people sending files to you." msgstr "" "Du kannst außerdem auf den „Nach unten”-Pfeil in der oberen rechten Ecke " -"klicken, um dir den Verlauf und den Fortschritt der Uploads auf deinen " -"rechner anzeigen zu lassen." +"klicken, um dir den Verlauf und den Fortschritt der an deinen Computer " +"übertragenen Dateien anzeigen zu lassen." #: ../../source/features.rst:69 -#, fuzzy msgid "Here is what it looks like for someone sending you files and messages." -msgstr "So sieht es aus, wenn jemand Dateien bei dir hochlädt." +msgstr "So sieht es aus, wenn dir jemand Dateien und Nachrichten sendet." #: ../../source/features.rst:73 msgid "" @@ -245,6 +271,10 @@ msgid "" "folder on your computer, automatically organized into separate subfolders" " based on the time that the files get uploaded." msgstr "" +"Wenn jemand Dateien oder Nachrichten an deinen Empfangsdienst überträgt, " +"werden sie standardmäßig in einem Ordner namens ``OnionShare`` in dem Home-" +"Verzeichnis deines Computers abgelegt. Die empfangenen Dateien werden " +"automatisch in Unterordnern anhand des Empfangszeitpunktes organisiert." #: ../../source/features.rst:75 msgid "" @@ -296,6 +326,8 @@ msgstr "" #: ../../source/features.rst:84 msgid "However, it is always safe to open text messages sent through OnionShare." msgstr "" +"Allerdings ist es stets unbedenklich, über OnionShare gesendete " +"Textnachrichten zu öffnen." #: ../../source/features.rst:87 msgid "Tips for running a receive service" @@ -314,17 +346,17 @@ msgstr "" "mit dem, den du sonst regelmäßig benutzt." #: ../../source/features.rst:91 -#, fuzzy msgid "" "If you intend to put the OnionShare address on your website or social " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a " "public service (see :ref:`turn_off_passwords`). It's also a good idea to " "give it a custom title (see :ref:`custom_titles`)." msgstr "" -"Falls du deine OnionShare-Adresse auf deiner Webseite oder auf deinen " -"Profilen in den sozialen Medien verbreiten möchtest, solltest du den " -"Reiter speichern (siehe :ref:`save_tabs`) und den Dienst als öffentlichen" -" Dienst betreiben (siehe :ref:`disable password`)." +"Falls du deine OnionShare-Adresse auf deiner Webseite oder deinen Social " +"Media-Profilen teilen willst, solltest du den Reiter speichern (siehe " +":ref:`save_tabs`) und den Service als öffentlich festlegen. (siehe :ref:`" +"disable password`). In diesem Fall wäre es auch eine gute Idee, einen " +"benutzerdefinierten Titel festzulegen (siehe :ref:`custom_titles`)." #: ../../source/features.rst:94 msgid "Host a Website" diff --git a/docs/source/locale/el/LC_MESSAGES/advanced.po b/docs/source/locale/el/LC_MESSAGES/advanced.po index 7bbdfef6..86cf3b15 100644 --- a/docs/source/locale/el/LC_MESSAGES/advanced.po +++ b/docs/source/locale/el/LC_MESSAGES/advanced.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-11 14:30+0000\n" -"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n" +"PO-Revision-Date: 2021-05-11 20:47+0000\n" +"Last-Translator: Mr.Grin <grin-singularity@tutanota.com>\n" "Language-Team: el <LL@li.org>\n" "Language: el\n" "MIME-Version: 1.0\n" @@ -118,7 +118,7 @@ msgstr "" #: ../../source/advanced.rst:40 msgid "Custom Titles" -msgstr "Προσαρμοσμένοι τίτλοι" +msgstr "Προσαρμοσμένοι Τίτλοι" #: ../../source/advanced.rst:42 msgid "" @@ -126,10 +126,10 @@ msgid "" "see the default title for the type of service. For example, the default " "title of a chat service is \"OnionShare Chat\"." msgstr "" -"Από προεπιλογή, όταν κάποιος χρησιμοποιήσει μία υπηρεσία OnionShare στο Tor " -"Browser, θα δουν έναν προεπιλεγμένο τίτλο ανάλογα με τον τύπο υπηρεσίας που " -"χρησιμοποιούν. Για παράδειγμα, η \"Συνομιλία OnionShare\" αποτελεί τον " -"προεπιλεγμένο τίτλο της υπηρεσίας συνομιλιών." +"Από προεπιλογή, όταν κάποιος φορτώσει μια υπηρεσία OnionShare στο Tor " +"Browser, βλέπει τον προεπιλεγμένο τίτλο για τον τύπο της υπηρεσίας. Για " +"παράδειγμα, ο προεπιλεγμένος τίτλος μιας υπηρεσίας συνομιλίας είναι " +"\"OnionShare Συνομιλία\"." #: ../../source/advanced.rst:44 msgid "" diff --git a/docs/source/locale/el/LC_MESSAGES/develop.po b/docs/source/locale/el/LC_MESSAGES/develop.po index ef0f3238..3fb9a79d 100644 --- a/docs/source/locale/el/LC_MESSAGES/develop.po +++ b/docs/source/locale/el/LC_MESSAGES/develop.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:43-0800\n" -"PO-Revision-Date: 2020-12-01 17:29+0000\n" -"Last-Translator: george k <norhorn@gmail.com>\n" +"PO-Revision-Date: 2021-05-11 20:47+0000\n" +"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -38,15 +38,15 @@ msgid "" "<https://keybase.io/team/onionshare>`_. Within the app, go to \"Teams\", " "click \"Join a Team\", and type \"onionshare\"." msgstr "" -"Το OnionShare έχει μια ανοιχτή πιστοποιημένη (Keybase) ομάδα για να συζητά " -"το έργο, να υποβάλει ερωτήσεις, να μοιραστεί ιδέες και σχέδια και να κάνει " -"σχέδια για μελλοντική ανάπτυξη. (Είναι επίσης ένας εύκολος τρόπος για την " -"αποστολή κρυπτογραφημένων μηνυμάτων στην κοινότητα του OnionShare, όπως οι " -"διευθύνσεις OnionShare.) Για να χρησιμοποιήσετε το Keybase, κατεβάστε την `" -"εφαρμογή Keybase <https://keybase.io/download>`_ , δημιουργήστε λογαριασμό " -"και `εγγραφείτε στην ομάδα <https://keybase.io/team/onionshare>`_. Μέσα στην " -"εφαρμογή, μεταβείτε στην ενότητα \"Ομάδες\", κάντε κλικ στην επιλογή " -"\"Συμμετοχή σε ομάδα\" και πληκτρολογήστε το \"onionshare\"." +"Το OnionShare έχει ένα κανάλι συζητήσεων στο Keybase για να μπορέσει ο " +"καθένας να μιλήσει για αυτό, να υποβάλει ερωτήσεις, να μοιραστεί ιδέες και " +"σχέδια και να κάνει μελλοντικά σχέδια πάνω σε αυτό. (Είναι επίσης ένας " +"εύκολος τρόπος για την αποστολή κρυπτογραφημένων μηνυμάτων στην κοινότητα " +"του OnionShare, όπως οι διευθύνσεις OnionShare.) Για να χρησιμοποιήσετε το " +"Keybase, κατεβάστε την `εφαρμογή Keybase <https://keybase.io/download>`_ , " +"δημιουργήστε λογαριασμό και `εγγραφείτε στην ομάδα <https://keybase.io/team/" +"onionshare>`_. Μέσα στην εφαρμογή, μεταβείτε στην ενότητα \"Ομάδες\", κάντε " +"κλικ στην επιλογή \"Συμμετοχή σε ομάδα\" και πληκτρολογήστε \"onionshare\"." #: ../../source/develop.rst:12 msgid "" @@ -54,9 +54,9 @@ msgid "" "<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers " "and and designers to discuss the project." msgstr "" -"Το OnionShare διαθέτει `λίστα email <https://lists.riseup.net/www/subscribe/" -"onionshare-dev>`_ για προγραμματιστές και σχεδιαστές με σκοό την ανταλλαγή " -"απόψεων." +"Το OnionShare διαθέτει `λίστα ηλεκτρονικού ταχυδρομίου <https://lists.riseup." +"net/www/subscribe/onionshare-dev>`_ για προγραμματιστές και σχεδιαστές με " +"σκοό την ανταλλαγή απόψεων." #: ../../source/develop.rst:15 msgid "Contributing Code" diff --git a/docs/source/locale/el/LC_MESSAGES/features.po b/docs/source/locale/el/LC_MESSAGES/features.po index 4d8769fe..029d1215 100644 --- a/docs/source/locale/el/LC_MESSAGES/features.po +++ b/docs/source/locale/el/LC_MESSAGES/features.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-11 12:19+0000\n" -"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n" +"PO-Revision-Date: 2021-05-11 20:47+0000\n" +"Last-Translator: Iris S. <iris.sousouni@protonmail.com>\n" "Language-Team: el <LL@li.org>\n" "Language: el\n" "MIME-Version: 1.0\n" @@ -50,10 +50,11 @@ msgid "" "model <https://ssd.eff.org/module/your-security-plan>`_." msgstr "" "Είστε υπεύθυνος για την ασφαλή κοινή χρήση της διεύθυνσης ιστού " -"χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, όπως με ένα " -"κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο ασφαλές, όπως μη " -"κρυπτογραφημένα μηνύματα ηλεκτρονικού ταχυδρομείου, ανάλογα με το `πόσο " -"ευπαθής είστε <https://ssd.eff.org/module/your-security-plan>`_." +"χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, όπως ένα " +"κρυπτογραφημένο μήνυμα ή και χρησιμοποιώντας σχετικά λιγότερο ασφαλή " +"κανάλια, όπως μη κρυπτογραφημένα μηνύματα ηλεκτρονικού ταχυδρομείου, ανάλογα " +"με το `αν βρίσκεστε σε ρίσκο <https://ssd.eff.org/module/your-security-" +"plan>`_." #: ../../source/features.rst:14 msgid "" @@ -71,10 +72,11 @@ msgid "" "until your laptop is unsuspended and on the Internet again. OnionShare " "works best when working with people in real-time." msgstr "" -"Εάν εκτελέσετε το OnionShare στο laptop σας για να στείλετε αρχεία και το " -"laptop τεθεί σε αναστολή πριν η μεταφορά ολοκληρωθεί, δεν θα είναι δυνατή η " -"ολοκλήρωση της μεταφοράς έως ότου ο φορητός υπολογιστής σας συνδεθεί ξανά " -"στο Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα χωρίς διακοπές." +"Εάν χρησιμοποιήσετε το OnionShare στον φορητό υπολογιστή σας για να στείλετε " +"αρχεία και ο υπολογιστής αυτός κλείσει προτού ολοκληρωθεί η μεταφορά, δεν θα " +"είναι δυνατή η ολοκλήρωση της έως ότου ο φορητός υπολογιστής σας συνδεθεί " +"ξανά στο Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα όταν συνεργάζεστε με " +"τον παραλήπτη σε πραγματικό χρόνο." #: ../../source/features.rst:18 msgid "" @@ -201,10 +203,11 @@ msgid "" "uploads, and you can check \"Disable uploading files\" if you want to " "only allow submitting text messages, like for an anonymous contact form." msgstr "" -"Μπορείτε να επιλέξετε \"Απενεργοποίηση υποβολής κειμένου\", εάν θέλετε να " -"επιτρέπεται μόνο το ανέβασμα αρχείων. Αντίστοιχα, μπορείτε να επιλέξετε " -"\"Απενεργοποίηση φόρτωσης αρχείων\", εάν θέλετε να επιτραπεί μόνο η αποστολή " -"ανώνυμων μηνυμάτων κειμένου, όπως, για παράδειγμα, σε μία φόρμα επικοινωνίας." +"Μπορείτε να επιλέξετε \"Απενεργοποίηση υποβολής κειμένου\" εάν θέλετε να " +"επιτρέπετε το ανέβασαμα μόνο αρχείων, και μπορείτε να επιλέξετε " +"\"Απενεργοποίηση υποβολής αρχείων\" εάν θέλετε να επιτρέπετε την υποβολή " +"ανώνυμων μηνυμάτων κειμένου, για παράδειγμα για μια ανώνυμη φόρμα " +"επικοινωνίας." #: ../../source/features.rst:58 msgid "" @@ -220,6 +223,18 @@ msgid "" "your receive mode service, @webhookbot will send you a message on Keybase" " letting you know as soon as it happens." msgstr "" +"Μπορείτε να επιλέξετε \"Χρήση ειδοποίησης webhook\" και έπειτα να επιλέξετε " +"διεύθυνση webhook εάν θέλετε να ειδοποιηθείτε όταν κάποιος υποβάλλει αρχεία " +"ή μηνύματα στην υπηρεσία OnionShare σας. Εάν χρησιμοποιήσετε αυτή τη " +"λειτουργία, το OnionShare θα δώσει αίτημα HTTP POST σε αυτή τη διεύθυνση " +"όποτε κάποιος υποβάλλει αρχεία ή μηνύματα. Για παράδειγμα, έαν θέλετε να " +"λάβετε ένα κρυπτογραφημένο μήνυμα στην εφαρμογή μηνυμάτων `Keybase " +"<https://keybase.io/>`_, μπορείτε να αρχίσετε μία συνομιλία με `@webhookbot " +"<https://keybase.io/webhookbot>`_, να πληκτρολογήσετε ``!webhook create " +"onionshare-alerts``, και θα ανταποκριθεί με μία διεύθυνση. Χρησιμοποιήστε " +"την ως διεύθυνση ειδοποιήσεων webhook. Εάν κάποιος ανεβάσει ένα αρχείο στην " +"υπηρεσία σας με λειτουργία λήψης το @webhookbot θα σας στείλει ένα μήνυμα " +"στο Keybase για να σας ενημερώσει αμέσως." #: ../../source/features.rst:63 msgid "" @@ -408,8 +423,8 @@ msgid "" msgstr "" "Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία ή " "κώδικα JavaScript από CDN, επιλέξτε το πλαίσιο \"Μην στέλνετε την κεφαλίδα " -"Πολιτικής ασφάλειας περιεχομένου (επιτρέπει στην ιστοσελίδα σας να " -"χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσία." +"Πολιτικής Ασφαλείας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας να " +"χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσίας." #: ../../source/features.rst:116 msgid "Tips for running a website service" diff --git a/docs/source/locale/el/LC_MESSAGES/install.po b/docs/source/locale/el/LC_MESSAGES/install.po index bbb17007..0c001dc6 100644 --- a/docs/source/locale/el/LC_MESSAGES/install.po +++ b/docs/source/locale/el/LC_MESSAGES/install.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2020-12-31 19:29+0000\n" -"Last-Translator: george k <norhorn@gmail.com>\n" +"PO-Revision-Date: 2021-05-11 20:47+0000\n" +"Last-Translator: Panagiotis Vasilopoulos <hello@alwayslivid.com>\n" "Language-Team: el <LL@li.org>\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/install.rst:2 @@ -47,11 +47,11 @@ msgid "" "that you'll always use the newest version and run OnionShare inside of a " "sandbox." msgstr "" -"Υπάρχουν αρκετοί τρόποι εγκατάστασης του OnionShare σε Linux, προτείνεται " -"όμως να γίνει μέσω του `Flatpak <https://flatpak.org/>`_ ή του πακέτου `Snap " -"<https://snapcraft.io/>`_. Τα Flatpak και Snap διασφαλίζουν ότι θα " -"χρησιμοποιείτε πάντα τη νεότερη έκδοση και ότι θα εκτελείτε το OnionShare " -"μέσα σε sandbox." +"Υπάρχουν αρκετοί τρόποι εγκατάστασης του OnionShare σε Linux. Ο προτιμότερος " +"είναι η εγκατάσταση μέσω του `Flatpak <https://flatpak.org/>`_ ή του πακέτου " +"`Snap <https://snapcraft.io/>`_. Οι τεχνολογίες Flatpak και Snap " +"διασφαλίζουν ότι θα χρησιμοποιείτε πάντα τη νεότερη έκδοση και ότι το " +"OnionShare θα εκτελείται μέσα σε sandbox." #: ../../source/install.rst:17 msgid "" @@ -184,7 +184,7 @@ msgstr "" "την ακεραιότητα του αρχείου (κακόβουλο ή άλλο) και δεν πρέπει να " "εγκαταστήσετε το πακέτο. (Η ''ΠΡΟΕΙΔΟΠΟΙΗΣΗ:'' που φαίνεται παραπάνω, δεν " "αποτελεί πρόβλημα με το πακέτο, σημαίνει μόνο ότι δεν έχετε ήδη ορίσει " -"κανένα επίπεδο 'εμπιστοσύνης' του κλειδιού PGP του Micah)." +"κανένα επίπεδο 'εμπιστοσύνης' του κλειδιού PGP του Micah.)" #: ../../source/install.rst:71 msgid "" diff --git a/docs/source/locale/fr/LC_MESSAGES/tor.po b/docs/source/locale/fr/LC_MESSAGES/tor.po index 137e9024..2a5f16b2 100644 --- a/docs/source/locale/fr/LC_MESSAGES/tor.po +++ b/docs/source/locale/fr/LC_MESSAGES/tor.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2021-03-10 10:02+0000\n" -"Last-Translator: AO Localisation Lab <ao@localizationlab.org>\n" +"PO-Revision-Date: 2021-05-16 16:32+0000\n" +"Last-Translator: Agnes de Lion <belocurry@pm.me>\n" "Language-Team: none\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.5.2-dev\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/tor.rst:2 @@ -180,8 +180,8 @@ msgstr "" #: ../../source/tor.rst:67 msgid "Now configure Tor to allow connections from OnionShare::" msgstr "" -"Maintenant, configurez Tor pour permettre les connexions à partir " -"d’OnionShare ::" +"Maintenant, configurez Tor pour autoriser les connexions à partir d’" +"OnionShare :" #: ../../source/tor.rst:74 msgid "And start the system Tor service::" @@ -258,7 +258,7 @@ msgstr "" #: ../../source/tor.rst:111 msgid "To configure bridges, click the \"⚙\" icon in OnionShare." -msgstr "" +msgstr "Pour configurer les ponts, cliquez sur l'icône \"⚙\" dans OnionShare." #: ../../source/tor.rst:113 msgid "" diff --git a/docs/source/locale/nl/LC_MESSAGES/help.po b/docs/source/locale/nl/LC_MESSAGES/help.po index d1eb81e9..726a2ea3 100644 --- a/docs/source/locale/nl/LC_MESSAGES/help.po +++ b/docs/source/locale/nl/LC_MESSAGES/help.po @@ -3,37 +3,41 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2021-05-14 19:05+0000\n" +"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" +"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 msgid "Getting Help" -msgstr "" +msgstr "Hulp krijgen" #: ../../source/help.rst:5 msgid "Read This Website" -msgstr "" +msgstr "Lees deze website" #: ../../source/help.rst:7 msgid "" "You will find instructions on how to use OnionShare. Look through all of " "the sections first to see if anything answers your questions." msgstr "" +"U vindt hier instructies over hoe u OnionShare kunt gebruiken. Kijk eerst " +"alle secties door om te zien of iets uw vragen beantwoordt." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" -msgstr "" +msgstr "Controleer de issues op GitHub" #: ../../source/help.rst:12 msgid "" @@ -42,12 +46,17 @@ msgid "" " else has encountered the same problem and either raised it with the " "developers, or maybe even posted a solution." msgstr "" +"Als het niet op de website staat, kijk dan op de `GitHub issues " +"<https://github.com/micahflee/onionshare/issues>`_. Het is mogelijk dat " +"iemand anders hetzelfde probleem heeft ondervonden en het heeft aangekaart " +"bij de ontwikkelaars, of misschien zelfs een oplossing heeft gepost." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" -msgstr "" +msgstr "Dien zelf een probleem in" #: ../../source/help.rst:17 +#, fuzzy msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " @@ -55,16 +64,23 @@ msgid "" "`creating a GitHub account <https://help.github.com/articles/signing-up-" "for-a-new-github-account/>`_." msgstr "" +"Als u geen oplossing kunt vinden, of een vraag wilt stellen of een nieuwe " +"functie wilt voorstellen, kunt u `een issue indienen <https://github.com/" +"micahflee/onionshare/issues/new>`_. Dit vereist `het aanmaken van een GitHub " +"account <https://help.github.com/articles/" +"signing-up-for-a-new-github-account/>`_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" -msgstr "" +msgstr "Word lid van ons Keybase-team" #: ../../source/help.rst:22 msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" +"Zie :ref:'samenwerken' over hoe je lid wordt van het Keybase-team dat wordt " +"gebruikt om het project te bespreken." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" @@ -117,4 +133,3 @@ msgstr "" #~ "that we use to discuss the " #~ "project." #~ msgstr "" - diff --git a/docs/source/locale/nl/LC_MESSAGES/index.po b/docs/source/locale/nl/LC_MESSAGES/index.po index 2ad2653c..86b50ade 100644 --- a/docs/source/locale/nl/LC_MESSAGES/index.po +++ b/docs/source/locale/nl/LC_MESSAGES/index.po @@ -3,27 +3,31 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-09-03 11:46-0700\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2021-05-14 13:32+0000\n" +"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" +"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.8.0\n" #: ../../source/index.rst:2 msgid "OnionShare's documentation" -msgstr "" +msgstr "OnionShare documentatie" #: ../../source/index.rst:6 msgid "" "OnionShare is an open source tool that lets you securely and anonymously " "share files, host websites, and chat with friends using the Tor network." msgstr "" - +"OnionShare is een open source applicatie waarmee je beveiligd en anoniem " +"bestanden kan delen, websites kan hosten en met vrienden kan chatten via het " +"Tor netwerk." diff --git a/docs/source/locale/nl/LC_MESSAGES/install.po b/docs/source/locale/nl/LC_MESSAGES/install.po index 8a1e3472..d1432286 100644 --- a/docs/source/locale/nl/LC_MESSAGES/install.po +++ b/docs/source/locale/nl/LC_MESSAGES/install.po @@ -3,39 +3,44 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2021-05-14 19:05+0000\n" +"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" +"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/install.rst:2 msgid "Installation" -msgstr "" +msgstr "Installatie" #: ../../source/install.rst:5 msgid "Windows or macOS" -msgstr "" +msgstr "Windows of macOS" #: ../../source/install.rst:7 msgid "" "You can download OnionShare for Windows and macOS from the `OnionShare " "website <https://onionshare.org/>`_." msgstr "" +"Je kan OnionShare downloaden voor Windows en macOS van de `OnionShare " +"website <https://onionshare.org/>`_." #: ../../source/install.rst:12 msgid "Install in Linux" -msgstr "" +msgstr "Installatie onder Linux" #: ../../source/install.rst:14 +#, fuzzy msgid "" "There are various ways to install OnionShare for Linux, but the " "recommended way is to use either the `Flatpak <https://flatpak.org/>`_ or" @@ -43,32 +48,44 @@ msgid "" "that you'll always use the newest version and run OnionShare inside of a " "sandbox." msgstr "" +"Er zijn verschillende manieren om OnionShare voor Linux te installeren, maar " +"de aanbevolen manier is om ofwel het `Flatpak <https://flatpak.org/>`_ of " +"het `Snap <https://snapcraft.io/>`_ pakket te gebruiken. Flatpak en Snap " +"zorgen ervoor dat u altijd de nieuwste versie gebruikt en OnionShare binnen " +"een sandbox draait." #: ../../source/install.rst:17 msgid "" "Snap support is built-in to Ubuntu and Fedora comes with Flatpak support," " but which you use is up to you. Both work in all Linux distributions." msgstr "" +"Snap ondersteuning is ingebouwd in Ubuntu. Fedora komt met Flatpak " +"ondersteuning. Qelke je gebruikt is aan jou. Beide werken in alle Linux " +"distributies." #: ../../source/install.rst:19 msgid "" "**Install OnionShare using Flatpak**: " "https://flathub.org/apps/details/org.onionshare.OnionShare" msgstr "" +"**Installeer OnionShare via Flatpak**: https://flathub.org/apps/details/org." +"onionshare.OnionShare" #: ../../source/install.rst:21 msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare" -msgstr "" +msgstr "**Installeer OnionShare via Snap**: https://snapcraft.io/onionshare" #: ../../source/install.rst:23 msgid "" "You can also download and install PGP-signed ``.flatpak`` or ``.snap`` " "packages from https://onionshare.org/dist/ if you prefer." msgstr "" +"Je kan ook PGP-ondertekende `` .flatpak '' - of `` .snap '' - pakketten " +"downloaden en installeren vanaf https://onionshare.org/dist/ als u dat wilt." #: ../../source/install.rst:28 msgid "Verifying PGP signatures" -msgstr "" +msgstr "PGP-handtekeningen verifiëren" #: ../../source/install.rst:30 msgid "" @@ -78,10 +95,15 @@ msgid "" "binaries include operating system-specific signatures, and you can just " "rely on those alone if you'd like." msgstr "" +"Je kunt controleren of het pakket dat je download legitiem is en er niet mee " +"geknoeid is door de PGP handtekening te controleren. Voor Windows en macOS " +"is deze stap optioneel en biedt bescherming in de diepte: de binaries van " +"OnionShare bevatten besturingssysteemspecifieke handtekeningen en u kunt er " +"ook voor kiezen om alleen daarop te vertrouwen." #: ../../source/install.rst:34 msgid "Signing key" -msgstr "" +msgstr "Ondertekeningsleutel" #: ../../source/install.rst:36 msgid "" @@ -91,6 +113,11 @@ msgid "" "<https://keys.openpgp.org/vks/v1/by-" "fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_." msgstr "" +"Pakketten zijn ondertekend door Micah Lee, de kernontwikkelaar, met zijn PGP " +"publieke sleutel met vingerafdruk " +"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. U kunt Micah's sleutel " +"downloaden `van de keys.openpgp.org keyserver <https://keys.openpgp.org/vks/" +"v1/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_." #: ../../source/install.rst:38 msgid "" @@ -98,10 +125,13 @@ msgid "" "probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you " "probably want `Gpg4win <https://www.gpg4win.org/>`_." msgstr "" +"Je moet GnuPG geïnstalleerd hebben om handtekeningen te verifiëren. Voor " +"macOS kan dit via `GPGTools <https://gpgtools.org/>`_, en voor Windows `" +"Gpg4win <https://www.gpg4win.org/>`_." #: ../../source/install.rst:41 msgid "Signatures" -msgstr "" +msgstr "Handtekeningen" #: ../../source/install.rst:43 msgid "" @@ -111,10 +141,16 @@ msgid "" "OnionShare. You can also find them on the `GitHub Releases page " "<https://github.com/micahflee/onionshare/releases>`_." msgstr "" +"Je kan de handtekeningen (als ``.asc`` bestanden) en de Windows, macOS, " +"Flatpak, Snap, en broncode pakketten vinden op https://onionshare.org/dist/ " +"in de mappen genoemd voor elke versie van OnionShare. Je kan ze ook vinden " +"op de `GitHub Releases pagina <https://github.com/micahflee/onionshare/" +"releases>`_." #: ../../source/install.rst:47 +#, fuzzy msgid "Verifying" -msgstr "" +msgstr "Verifiëren" #: ../../source/install.rst:49 msgid "" @@ -122,14 +158,17 @@ msgid "" "downloaded the binary and and ``.asc`` signature, you can verify the " "binary for macOS in a terminal like this::" msgstr "" +"Zodra je Micah's publieke sleutel in jouw GnuPG-sleutelhanger hebt " +"geïmporteerd, de binary en ``.asc`` handtekening hebt gedownload, kan je de " +"binary voor macOS in een terminal als volgt verifiëren::" #: ../../source/install.rst:53 msgid "Or for Windows, in a command-prompt like this::" -msgstr "" +msgstr "Of voor Windows, in een command-prompt als deze::" #: ../../source/install.rst:57 msgid "The expected output looks like this::" -msgstr "" +msgstr "De verwachte output ziet er als volgt uit::" #: ../../source/install.rst:69 msgid "" @@ -139,6 +178,11 @@ msgid "" " the package, it only means you haven't already defined any level of " "'trust' of Micah's PGP key.)" msgstr "" +"Als je geen \"Good signature from\" ziet, kan er een probleem zijn met de " +"integriteit van het bestand (kwaadaardig of anders) en zou je het pakket " +"niet moeten installeren. (De \"WARNING:\" hierboven, is geen probleem met " +"het pakket. Het betekent alleen dat je nog geen vertrouwensniveau hebt " +"ingesteld voor Micah's PGP sleutel.)" #: ../../source/install.rst:71 msgid "" @@ -147,6 +191,10 @@ msgid "" " the `Tor Project <https://support.torproject.org/tbb/how-to-verify-" "signature/>`_ may be useful." msgstr "" +"Als je meer wilt leren over het verifiëren van PGP handtekeningen, kunnen de " +"handleidingen voor `Qubes OS <https://www.qubes-os.org/security/" +"verifying-signatures/>`_ en het `Tor Project <https://support.torproject.org/" +"tbb/how-to-verify-signature/>`_ misschien nuttig zijn." #~ msgid "Install on Windows or macOS" #~ msgstr "" @@ -333,4 +381,3 @@ msgstr "" #~ "Project <https://support.torproject.org/tbb/how-to-" #~ "verify-signature/>`_ may be helpful." #~ msgstr "" - diff --git a/docs/source/locale/nl/LC_MESSAGES/security.po b/docs/source/locale/nl/LC_MESSAGES/security.po index 05816266..d6cd5828 100644 --- a/docs/source/locale/nl/LC_MESSAGES/security.po +++ b/docs/source/locale/nl/LC_MESSAGES/security.po @@ -3,35 +3,39 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2021-05-14 13:32+0000\n" +"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" +"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/security.rst:2 msgid "Security Design" -msgstr "" +msgstr "Beveiligingsontwerp" #: ../../source/security.rst:4 msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works." msgstr "" +"Lees eerst :ref: `how_it_works`om een idee te krijgen hoe OnionShare werkt." #: ../../source/security.rst:6 msgid "Like all software, OnionShare may contain bugs or vulnerabilities." msgstr "" +"Net als alle software kan ook OnionShare bugs of kwetsbaarheden bevatten." #: ../../source/security.rst:9 msgid "What OnionShare protects against" -msgstr "" +msgstr "Waar OnionShare tegen beschermd" #: ../../source/security.rst:11 msgid "" @@ -42,6 +46,12 @@ msgid "" "server for that too. This avoids the traditional model of having to trust" " the computers of others." msgstr "" +"**Derde partijen hebben geen toegang tot wat er gebeurt in OnionShare.** Het " +"gebruik van OnionShare betekent het hosten van diensten rechtstreeks op jouw " +"computer. Wanneer je bestanden deelt met OnionShare, dan worden naar geen " +"enkele server geüpload. Wanneer je een chatruimte maakt met OnionShare, dan " +"is je computer de server. Dit voorkomt het traditionele model dat je andere " +"computers moet vertrouwen." #: ../../source/security.rst:13 msgid "" @@ -53,6 +63,13 @@ msgid "" "Browser with OnionShare's onion service, the traffic is encrypted using " "the onion service's private key." msgstr "" +"**Netwerk-afluisteraars kunnen niets bespioneren van wat er onderweg in " +"OnionShare gebeurt.** De verbinding tussen de Tor onion service en Tor " +"Browser is end-to-end versleuteld. Dit betekent dat netwerkaanvallers niets " +"kunnen afluisteren behalve versleuteld Tor-verkeer. Zelfs als een " +"afluisteraar een kwaadwillig rendezvous-knooppunt is dat wordt gebruikt om " +"de Tor Browser met de onion service van OnionShare te verbinden, wordt het " +"verkeer versleuteld met de privésleutel van de onion service." #: ../../source/security.rst:15 msgid "" @@ -62,6 +79,11 @@ msgid "" "Browser users, the Tor Browser users and eavesdroppers can't learn the " "identity of the OnionShare user." msgstr "" +"**Anonimiteit van de OnionShare gebruikers wordt beschermd door Tor.** " +"OnionShare en de Tor Browser beschermen de anonimiteit van de gebruikers. " +"Zolang de OnionShare gebruiker anoniem het OnionShare adres communiceert met " +"de Tor Browser gebruikers, kunnen de Tor Browser gebruikers en afluisteraars " +"de identiteit van de OnionShare gebruiker niet achterhalen." #: ../../source/security.rst:17 msgid "" @@ -76,10 +98,22 @@ msgid "" "OnionShare stops the server, preventing brute force attacks against the " "password." msgstr "" +"**Als een aanvaller de onion-service achterhaald, heeft hij nog steeds " +"nergens toegang toe.** Bij eerdere aanvallen op het Tor-netwerk om onion-" +"services te verzamelen, kon de aanvaller privé .onion-adressen ontdekken. " +"Als een aanvaller een privé OnionShare-adres ontdekt, zal een wachtwoord hen " +"verhinderen er toegang toe te krijgen (tenzij de OnionShare-gebruiker ervoor " +"kiest het uit te schakelen en het openbaar te maken). Het wachtwoord wordt " +"gegenereerd door twee willekeurige woorden te kiezen uit een lijst van 6800 " +"woorden, wat neerkomt op 6800², of ongeveer 46 miljoen mogelijke " +"wachtwoorden. Er kunnen slechts 20 foutieve pogingen worden gedaan voordat " +"OnionShare de server stopt, waardoor brute force aanvallen op het wachtwoord " +"worden voorkomen." #: ../../source/security.rst:20 +#, fuzzy msgid "What OnionShare doesn't protect against" -msgstr "" +msgstr "Waar OnionShare niet tegen beschermt" #: ../../source/security.rst:22 msgid "" @@ -93,6 +127,17 @@ msgid "" " disappearing messages enabled), encrypted email, or in person. This " "isn't necessary when using OnionShare for something that isn't secret." msgstr "" +"**Het communiceren van het OnionShare-adres is mogelijk niet veilig.** Het " +"communiceren van het OnionShare-adres aan mensen is de verantwoordelijkheid " +"van de OnionShare-gebruiker. Als het onveilig wordt verzonden (bijvoorbeeld " +"via een e-mailbericht dat wordt bewaakt door een aanvaller), kan een " +"afluisteraar zien dat OnionShare wordt gebruikt. Als de afluisteraar het " +"adres in de Tor-browser laadt terwijl de service nog steeds bestaat, hebben " +"ze er toegang toe. Om dit te voorkomen, moet het adres veilig worden " +"gecommuniceerd, via een versleuteld sms-bericht (waarschijnlijk met " +"verdwijnende berichten ingeschakeld), versleutelde e-mail of persoonlijk. " +"Dit is niet nodig bij het gebruik van OnionShare voor iets dat niet geheim " +"is." #: ../../source/security.rst:24 msgid "" @@ -102,6 +147,11 @@ msgid "" " Tor, can be used to share the address. This isn't necessary unless " "anonymity is a goal." msgstr "" +"**Het communiceren van het OnionShare adres is mogelijk niet anoniem.** Er " +"moeten extra voorzorgsmaatregelen worden genomen om ervoor te zorgen dat het " +"OnionShare adres anoniem wordt gecommuniceerd. Een nieuw e-mail of chat " +"account, alleen toegankelijk via Tor, kan worden gebruikt om het adres te " +"delen. Dit is niet nodig tenzij anonimiteit het doel is." #~ msgid "Security design" #~ msgstr "" @@ -241,4 +291,3 @@ msgstr "" #~ " share the address. This isn't " #~ "necessary unless anonymity is a goal." #~ msgstr "" - diff --git a/docs/source/locale/nl/LC_MESSAGES/sphinx.po b/docs/source/locale/nl/LC_MESSAGES/sphinx.po index f2cc8ed5..f6c9fc74 100644 --- a/docs/source/locale/nl/LC_MESSAGES/sphinx.po +++ b/docs/source/locale/nl/LC_MESSAGES/sphinx.po @@ -3,25 +3,26 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-09-03 11:37-0700\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2021-05-14 13:32+0000\n" +"Last-Translator: nocturnalfilth <nocturnalfilth@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" +"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.8.0\n" #: ../../source/_templates/versions.html:10 msgid "Versions" -msgstr "" +msgstr "Versies" #: ../../source/_templates/versions.html:18 msgid "Languages" -msgstr "" - +msgstr "Talen" diff --git a/docs/source/locale/ru/LC_MESSAGES/advanced.po b/docs/source/locale/ru/LC_MESSAGES/advanced.po index 9e586f3b..25c7d791 100644 --- a/docs/source/locale/ru/LC_MESSAGES/advanced.po +++ b/docs/source/locale/ru/LC_MESSAGES/advanced.po @@ -8,15 +8,16 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-03-30 16:26+0000\n" +"PO-Revision-Date: 2021-05-11 20:47+0000\n" "Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n" -"Language: ru\n" "Language-Team: ru <LL@li.org>\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 @@ -116,7 +117,7 @@ msgstr "" #: ../../source/advanced.rst:40 msgid "Custom Titles" -msgstr "" +msgstr "Указать заголовок" #: ../../source/advanced.rst:42 msgid "" @@ -124,12 +125,17 @@ msgid "" "see the default title for the type of service. For example, the default " "title of a chat service is \"OnionShare Chat\"." msgstr "" +"По умолчанию, когда люди открывают страницу OnionShare в браузере Tor, они " +"видят стандартное название сервиса. Например, стандартный заголовок чата это " +"\"OnionShare Chat\"." #: ../../source/advanced.rst:44 msgid "" "If you want to choose a custom title, set the \"Custom title\" setting " "before starting a server." msgstr "" +"Если вы хотите указать своё название для сервиса, используйте настройку " +"\"Custom title\" перед запуском сервиса." #: ../../source/advanced.rst:47 msgid "Scheduled Times" @@ -493,4 +499,3 @@ msgstr "" #~ " services will soon be removed from" #~ " OnionShare as well." #~ msgstr "" - diff --git a/docs/source/locale/ru/LC_MESSAGES/features.po b/docs/source/locale/ru/LC_MESSAGES/features.po index 28bbda3e..2821be25 100644 --- a/docs/source/locale/ru/LC_MESSAGES/features.po +++ b/docs/source/locale/ru/LC_MESSAGES/features.po @@ -8,15 +8,16 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-03-30 16:26+0000\n" +"PO-Revision-Date: 2021-05-11 20:47+0000\n" "Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n" -"Language: ru\n" "Language-Team: ru <LL@li.org>\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/features.rst:4 @@ -179,7 +180,7 @@ msgstr "" #: ../../source/features.rst:47 msgid "Receive Files and Messages" -msgstr "" +msgstr "Получение файлов и сообщений" #: ../../source/features.rst:49 msgid "" @@ -188,10 +189,15 @@ msgid "" "anonymous dropbox. Open a receive tab and choose the settings that you " "want." msgstr "" +"Вы можете использовать OnionShare, чтобы дать людям возможность анонимно " +"отправлять файлы и сообщения прямо на ваш компьютер, по сути превращая его в " +"анонимный аналог Dropbox. Откройте вкладку \"Получить\" и установите " +"желаемые настройки." #: ../../source/features.rst:54 msgid "You can browse for a folder to save messages and files that get submitted." msgstr "" +"Вы можете указать папку, куда будут сохраняться полученные файлы и сообщения." #: ../../source/features.rst:56 msgid "" @@ -199,6 +205,9 @@ msgid "" "uploads, and you can check \"Disable uploading files\" if you want to " "only allow submitting text messages, like for an anonymous contact form." msgstr "" +"Вы можете запретить отправку сообщений, если хотите только получить файлы. " +"Или запретить загрузку файлов, если хотите только отправлять сообщения. " +"Например, чтобы сделать анонимную форму для связи." #: ../../source/features.rst:58 msgid "" @@ -214,6 +223,17 @@ msgid "" "your receive mode service, @webhookbot will send you a message on Keybase" " letting you know as soon as it happens." msgstr "" +"Вы можете установить флажок \"Использовать веб-хук для отправки уведомлений\"" +" и затем указать URL веб-хука, чтобы получить уведомление, что кто-то " +"загружает файлы и отправляет файлы на ваш сервис приёма OnionShare. При " +"подключени это опции, OnionShare отправит HTTP POST запрос на указанный URL " +"когда кто-либо загрузит файлы или отправит сообщение. Например, чтобы " +"получить зашифрованное сообщение в приложении `Keybase <https://keybase.io/>`" +", нужно начать беседу со строки `@webhookbot <https://keybase.io/webhookbot>`" +"_, затем ввести ``!webhook create onionshare-alerts``, и в ответ придёт URL. " +"Используйте этот URL для отправки уведомлений при помощи веб-хука. Когда кто-" +"либо загрузит файл на ваш сервис приёма OnionShare, @webhookbot отправит " +"сообщение в приложение Keybase как только это произойдёт." #: ../../source/features.rst:63 msgid "" @@ -222,6 +242,10 @@ msgid "" " be able to submit files and messages which get uploaded to your " "computer." msgstr "" +"Когда вы будете готовы, нажмите «Запустить режим получения». Это запустит " +"службу OnionShare. Любой, кто откроет этот адрес в своём Tor-браузере, " +"сможет отправлять файлы и сообщения, которые будут загружены на ваш " +"компьютер." #: ../../source/features.rst:67 msgid "" @@ -232,7 +256,6 @@ msgstr "" "кнопку \"↓\" в правом верхнем углу." #: ../../source/features.rst:69 -#, fuzzy msgid "Here is what it looks like for someone sending you files and messages." msgstr "Примерно так выглядит OnionShare когда кто-то вам отправляет файлы." @@ -243,6 +266,10 @@ msgid "" "folder on your computer, automatically organized into separate subfolders" " based on the time that the files get uploaded." msgstr "" +"Когда кто-либо загружает файлы или отправляет текстовые сообщения на ваш " +"сервис приёма данных, по умолчанию они (файлы и сообщения) сохраняются в " +"папку ``OnionShare`` в домашнией директории компьютера и автоматически " +"распределяются в поддиректории в зависимости от времени загрузки." #: ../../source/features.rst:75 msgid "" @@ -291,6 +318,8 @@ msgstr "" #: ../../source/features.rst:84 msgid "However, it is always safe to open text messages sent through OnionShare." msgstr "" +"Тем не менее, открывать сообщения присланные через OnionShare всегда " +"безопасно." #: ../../source/features.rst:87 msgid "Tips for running a receive service" @@ -994,4 +1023,3 @@ msgstr "" #~ "комьютера пользователя. Эта директория " #~ "автоматически создаёт поддиректории в " #~ "зависимости от времени загрузки." - |