From b48848eb04028c6633a8959dcf5d09344c5e40f2 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 4 May 2021 10:02:02 +1000 Subject: [PATCH 01/55] Early support for ClientAuth with v3 onions --- cli/onionshare_cli/__init__.py | 40 +- cli/onionshare_cli/mode_settings.py | 3 + cli/onionshare_cli/onion.py | 91 +++- cli/onionshare_cli/onionshare.py | 3 + cli/poetry.lock | 393 +++++++++++------- cli/pyproject.toml | 1 + .../src/onionshare/resources/locale/en.json | 7 +- desktop/src/onionshare/settings_dialog.py | 2 + .../tab/mode/mode_settings_widget.py | 29 +- desktop/src/onionshare/tab/server_status.py | 24 ++ desktop/src/onionshare/tab/tab.py | 18 + 11 files changed, 455 insertions(+), 156 deletions(-) diff --git a/cli/onionshare_cli/__init__.py b/cli/onionshare_cli/__init__.py index a9c66510..288003e9 100644 --- a/cli/onionshare_cli/__init__.py +++ b/cli/onionshare_cli/__init__.py @@ -132,7 +132,14 @@ def main(cwd=None): action="store_true", dest="client_auth", default=False, - help="Use client authorization (requires --legacy)", + help="Use V2 client authorization (requires --legacy)", + ) + parser.add_argument( + "--client-auth-v3", + action="store_true", + dest="client_auth_v3", + default=False, + help="Use V3 client authorization", ) # Share args parser.add_argument( @@ -196,6 +203,7 @@ def main(cwd=None): autostop_timer = int(args.autostop_timer) legacy = bool(args.legacy) client_auth = bool(args.client_auth) + client_auth_v3 = bool(args.client_auth_v3) autostop_sharing = not bool(args.no_autostop_sharing) data_dir = args.data_dir webhook_url = args.webhook_url @@ -217,7 +225,14 @@ def main(cwd=None): # client_auth can only be set if legacy is also set if client_auth and not legacy: print( - "Client authentication (--client-auth) is only supported with with legacy onion services (--legacy)" + "Client authentication (--client-auth) is only supported with legacy onion services (--legacy)" + ) + sys.exit() + + # client_auth_v3 and legacy cannot be both set + if client_auth_v3 and legacy: + print( + "V3 Client authentication (--client-auth-v3) cannot be used with legacy onion services (--legacy)" ) sys.exit() @@ -243,6 +258,7 @@ def main(cwd=None): mode_settings.set("general", "autostop_timer", autostop_timer) mode_settings.set("general", "legacy", legacy) mode_settings.set("general", "client_auth", client_auth) + mode_settings.set("general", "client_auth_v3", client_auth_v3) if mode == "share": mode_settings.set("share", "autostop_sharing", autostop_sharing) if mode == "receive": @@ -364,9 +380,14 @@ def main(cwd=None): print("") if mode_settings.get("general", "client_auth"): print( - f"Give this address and HidServAuth lineto your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" + f"Give this address and HidServAuth line to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" ) print(app.auth_string) + elif mode_settings.get("general", "client_auth_v3"): + print( + f"Give this address and ClientAuth line to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" + ) + print(app.auth_string_v3) else: print( f"Give this address to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" @@ -377,6 +398,11 @@ def main(cwd=None): f"Give this address and HidServAuth line to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" ) print(app.auth_string) + elif mode_settings.get("general", "client_auth_v3"): + print( + f"Give this address and ClientAuth line to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" + ) + print(app.auth_string_v3) else: print( f"Give this address to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" @@ -461,6 +487,10 @@ def main(cwd=None): print("Give this address and HidServAuth to the sender:") print(url) print(app.auth_string) + elif mode_settings.get("general", "client_auth_v3"): + print("Give this address and ClientAuth to the sender:") + print(url) + print(app.auth_string_v3) else: print("Give this address to the sender:") print(url) @@ -469,6 +499,10 @@ def main(cwd=None): print("Give this address and HidServAuth line to the recipient:") print(url) print(app.auth_string) + elif mode_settings.get("general", "client_auth_v3"): + print("Give this address and ClientAuth line to the recipient:") + print(url) + print(app.auth_string_v3) else: print("Give this address to the recipient:") print(url) diff --git a/cli/onionshare_cli/mode_settings.py b/cli/onionshare_cli/mode_settings.py index 9ebf8e61..d94826c0 100644 --- a/cli/onionshare_cli/mode_settings.py +++ b/cli/onionshare_cli/mode_settings.py @@ -39,6 +39,8 @@ class ModeSettings: "private_key": None, "hidservauth_string": None, "password": None, + "client_auth_v3_priv_key": None, + "client_auth_v3_pub_key": None, }, "persistent": {"mode": None, "enabled": False}, "general": { @@ -48,6 +50,7 @@ class ModeSettings: "autostop_timer": False, "legacy": False, "client_auth": False, + "client_auth_v3": False, "service_id": None, }, "share": {"autostop_sharing": True, "filenames": []}, diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index 000d9308..d4c83825 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -23,6 +23,7 @@ from stem import ProtocolError, SocketClosed from stem.connection import MissingPassword, UnreadableCookieFile, AuthenticationFailure from Crypto.PublicKey import RSA import base64 +import nacl.public import os import tempfile import subprocess @@ -166,10 +167,25 @@ class Onion(object): # Assigned later if we are using stealth mode self.auth_string = None + self.auth_string_v3 = None # Keep track of onions where it's important to gracefully close to prevent truncated downloads self.graceful_close_onions = [] + def key_str(self, key): + """ + Returns a base32 decoded string of a key. + """ + # bytes to base 32 + key_bytes = bytes(key) + key_b32 = base64.b32encode(key_bytes) + # strip trailing ==== + assert key_b32[-4:] == b'====' + key_b32 = key_b32[:-4] + # change from b'ASDF' to ASDF + s = key_b32.decode('utf-8') + return s + def connect( self, custom_settings=None, @@ -570,7 +586,7 @@ class Onion(object): callable(list_ephemeral_hidden_services) and self.tor_version >= "0.2.7.1" ) - # Do the versions of stem and tor that I'm using support stealth onion services? + # Do the versions of stem and tor that I'm using support v2 stealth onion services? try: res = self.c.create_ephemeral_hidden_service( {1: 1}, @@ -586,11 +602,33 @@ class Onion(object): # ephemeral stealth onion services are not supported self.supports_stealth = False + # Do the versions of stem and tor that I'm using support v3 stealth onion services? + try: + res = self.c.create_ephemeral_hidden_service( + {1: 1}, + basic_auth=None, + await_publication=False, + key_type="NEW", + key_content="ED25519-V3", + client_auth_v3="E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA", + ) + tmp_service_id = res.service_id + self.c.remove_ephemeral_hidden_service(tmp_service_id) + self.supports_stealth_v3 = True + except: + # ephemeral v3 stealth onion services are not supported + self.supports_stealth_v3 = False + # Does this version of Tor support next-gen ('v3') onions? # Note, this is the version of Tor where this bug was fixed: # https://trac.torproject.org/projects/tor/ticket/28619 self.supports_v3_onions = self.tor_version >= Version("0.3.5.7") + # Does this version of Tor support legacy ('v2') onions? + # v2 onions have been phased out as of Tor 0.4.6.1. + self.supports_v2_onions = self.tor_version < Version("0.4.6.1") + + def is_authenticated(self): """ Returns True if the Tor connection is still working, or False otherwise. @@ -618,6 +656,12 @@ class Onion(object): ) raise TorTooOldStealth() + if mode_settings.get("general", "client_auth_v3") and not self.supports_stealth_v3: + print( + "Your version of Tor is too old, stealth v3 onion services are not supported" + ) + raise TorTooOldStealth() + auth_cookie = None if mode_settings.get("general", "client_auth"): if mode_settings.get("onion", "hidservauth_string"): @@ -633,10 +677,11 @@ class Onion(object): else: # Not using client auth at all basic_auth = None + client_auth_v3_pub_key = None if mode_settings.get("onion", "private_key"): key_content = mode_settings.get("onion", "private_key") - if self.is_v2_key(key_content): + if self.is_v2_key(key_content) and self.supports_v2_onions: key_type = "RSA1024" else: # Assume it was a v3 key. Stem will throw an error if it's something illegible @@ -644,19 +689,35 @@ class Onion(object): else: key_type = "NEW" # Work out if we can support v3 onion services, which are preferred - if self.supports_v3_onions and not mode_settings.get("general", "legacy"): + if self.supports_v3_onions and not mode_settings.get("general", "legacy") and not self.supports_v2_onions: key_content = "ED25519-V3" else: # fall back to v2 onion services key_content = "RSA1024" - # v3 onions don't yet support basic auth. Our ticket: - # https://github.com/micahflee/onionshare/issues/697 if ( - key_type == "NEW" - and key_content == "ED25519-V3" - and not mode_settings.get("general", "legacy") + (key_type == "ED25519-V3" + or key_content == "ED25519-V3") + and mode_settings.get("general", "client_auth_v3") ): + if key_type == "NEW" or not mode_settings.get("onion", "client_auth_v3_priv_key"): + # Generate a new key pair for Client Auth on new onions, or if + # it's a persistent onion but for some reason we don't them + client_auth_v3_priv_key_raw = nacl.public.PrivateKey.generate() + client_auth_v3_priv_key = self.key_str(client_auth_v3_priv_key_raw) + client_auth_v3_pub_key = self.key_str(client_auth_v3_priv_key_raw.public_key) + else: + # These should have been saved in settings from the previous run of a persistent onion + client_auth_v3_priv_key = mode_settings.get("onion", "client_auth_v3_priv_key") + client_auth_v3_pub_key = mode_settings.get("onion", "client_auth_v3_pub_key") + + self.common.log( + "Onion", "start_onion-service", f"ClientAuthV3 private key (for Tor Browser: {client_auth_v3_priv_key}" + ) + self.common.log( + "Onion", "start_onion-service", f"ClientAuthV3 public key (for Onion service: {client_auth_v3_pub_key}" + ) + # basic_auth is only for v2 onions basic_auth = None debug_message = f"key_type={key_type}" @@ -670,6 +731,7 @@ class Onion(object): basic_auth=basic_auth, key_type=key_type, key_content=key_content, + client_auth_v3=client_auth_v3_pub_key, ) except ProtocolError as e: @@ -695,6 +757,19 @@ class Onion(object): self.auth_string = f"HidServAuth {onion_host} {auth_cookie}" mode_settings.set("onion", "hidservauth_string", self.auth_string) + # If using V3 onions and Client Auth, save both the private and public key + # because we need to send the public key to ADD_ONION, and the private key + # to the other user for their Tor Browser. + if mode_settings.get("general", "client_auth_v3"): + mode_settings.set("onion", "client_auth_v3_priv_key", client_auth_v3_priv_key) + mode_settings.set("onion", "client_auth_v3_pub_key", client_auth_v3_pub_key) + # If we were pasting the client auth directly into the filesystem behind a Tor client, + # it would need to be in the format below. However, let's just set the private key + # by itself, as this can be pasted directly into Tor Browser, which is likely to + # be the most common use case. + # self.auth_string_v3 = f"{onion_host}:x25519:{client_auth_v3_priv_key}" + self.auth_string_v3 = client_auth_v3_priv_key + return onion_host def stop_onion_service(self, mode_settings): diff --git a/cli/onionshare_cli/onionshare.py b/cli/onionshare_cli/onionshare.py index 4e34cf4b..4c80873b 100644 --- a/cli/onionshare_cli/onionshare.py +++ b/cli/onionshare_cli/onionshare.py @@ -83,6 +83,9 @@ class OnionShare(object): if mode_settings.get("general", "client_auth"): self.auth_string = self.onion.auth_string + if mode_settings.get("general", "client_auth_v3"): + self.auth_string_v3 = self.onion.auth_string_v3 + def stop_onion_service(self, mode_settings): """ Stop the onion service diff --git a/cli/poetry.lock b/cli/poetry.lock index e507395b..4e574a08 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.*" +version = "20.3.0" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] +dev = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "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"] +tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] +tests_no_zope = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] [[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,68 @@ precommit = ["pre-commit (<3)"] test = ["hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)"] [[package]] -name = "certifi" -version = "2020.12.5" -description = "Python package for providing Mozilla's CA Bundle." category = "main" +description = "Python package for providing Mozilla's CA Bundle." +name = "certifi" optional = false python-versions = "*" +version = "2020.12.5" [[package]] -name = "chardet" -version = "4.0.0" +category = "main" +description = "Foreign Function Interface for Python calling C code." +name = "cffi" +optional = false +python-versions = "*" +version = "1.14.5" + +[package.dependencies] +pycparser = "*" + +[[package]] +category = "main" description = "Universal encoding detector for Python 2 and 3" -category = "main" +name = "chardet" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "4.0.0" [[package]] -name = "click" -version = "7.1.2" +category = "main" description = "Composable command line interface toolkit" -category = "main" +name = "click" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "7.1.2" [[package]] -name = "colorama" -version = "0.4.4" -description = "Cross-platform colored terminal text." category = "dev" +description = "Cross-platform colored terminal text." +marker = "sys_platform == \"win32\"" +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.30.2" [package.dependencies] dnspython = ">=1.15.0,<2.0.0" @@ -93,18 +106,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.2" [package.dependencies] -click = ">=5.1" -itsdangerous = ">=0.24" Jinja2 = ">=2.10.1" Werkzeug = ">=0.15" +click = ">=5.1" +itsdangerous = ">=0.24" [package.extras] dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] @@ -112,86 +125,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.2.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.0.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 = "3.10.0" [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,122 +217,151 @@ 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.*" +version = "1.1.1" [[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 = "C parser in Python" +name = "pycparser" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "2.20" + +[[package]] +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" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" - -[[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 = "Python binding to the Networking and Cryptography (NaCl) library" +name = "pynacl" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "pytest" -version = "6.2.3" -description = "pytest: simple powerful testing with Python" -category = "dev" -optional = false -python-versions = ">=3.6" +version = "1.4.0" [package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +cffi = ">=1.4.1" +six = "*" + +[package.extras] +docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"] +tests = ["pytest (>=3.2.1,<3.3.0 || >3.3.0)", "hypothesis (>=3.27.0)"] + +[[package]] +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]] +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]] +category = "dev" +description = "pytest: simple powerful testing with Python" +name = "pytest" +optional = false +python-versions = ">=3.6" +version = "6.2.3" + +[package.dependencies] +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.0.1" [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.1.0" [package.dependencies] bidict = ">=0.21.0" @@ -326,105 +372,109 @@ 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.15.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.7.4.3" [[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 = "ace423d1b657b80c33a6fddb308d7d2a458847cfb14630c17da256c9e50f1f1d" python-versions = "^3.6" -content-hash = "27f9680e537bbe672c9dc3e65a88e3d9f19c4f849135153580a4209773bbced5" [metadata.files] atomicwrites = [ @@ -443,6 +493,45 @@ certifi = [ {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"}, {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"}, ] +cffi = [ + {file = "cffi-1.14.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991"}, + {file = "cffi-1.14.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1"}, + {file = "cffi-1.14.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa"}, + {file = "cffi-1.14.5-cp27-cp27m-win32.whl", hash = "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3"}, + {file = "cffi-1.14.5-cp27-cp27m-win_amd64.whl", hash = "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5"}, + {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482"}, + {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6"}, + {file = "cffi-1.14.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045"}, + {file = "cffi-1.14.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa"}, + {file = "cffi-1.14.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406"}, + {file = "cffi-1.14.5-cp35-cp35m-win32.whl", hash = "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369"}, + {file = "cffi-1.14.5-cp35-cp35m-win_amd64.whl", hash = "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315"}, + {file = "cffi-1.14.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892"}, + {file = "cffi-1.14.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058"}, + {file = "cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5"}, + {file = "cffi-1.14.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132"}, + {file = "cffi-1.14.5-cp36-cp36m-win32.whl", hash = "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53"}, + {file = "cffi-1.14.5-cp36-cp36m-win_amd64.whl", hash = "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813"}, + {file = "cffi-1.14.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73"}, + {file = "cffi-1.14.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06"}, + {file = "cffi-1.14.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1"}, + {file = "cffi-1.14.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49"}, + {file = "cffi-1.14.5-cp37-cp37m-win32.whl", hash = "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62"}, + {file = "cffi-1.14.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4"}, + {file = "cffi-1.14.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053"}, + {file = "cffi-1.14.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0"}, + {file = "cffi-1.14.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e"}, + {file = "cffi-1.14.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827"}, + {file = "cffi-1.14.5-cp38-cp38-win32.whl", hash = "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e"}, + {file = "cffi-1.14.5-cp38-cp38-win_amd64.whl", hash = "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396"}, + {file = "cffi-1.14.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea"}, + {file = "cffi-1.14.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322"}, + {file = "cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c"}, + {file = "cffi-1.14.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee"}, + {file = "cffi-1.14.5-cp39-cp39-win32.whl", hash = "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396"}, + {file = "cffi-1.14.5-cp39-cp39-win_amd64.whl", hash = "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d"}, + {file = "cffi-1.14.5.tar.gz", hash = "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"}, +] chardet = [ {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, @@ -617,6 +706,10 @@ py = [ {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, ] +pycparser = [ + {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, + {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, +] pycryptodome = [ {file = "pycryptodome-3.10.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1c5e1ca507de2ad93474be5cfe2bfa76b7cf039a1a32fc196f40935944871a06"}, {file = "pycryptodome-3.10.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:6260e24d41149268122dd39d4ebd5941e9d107f49463f7e071fd397e29923b0c"}, @@ -649,6 +742,26 @@ pycryptodome = [ {file = "pycryptodome-3.10.1-pp36-pypy36_pp73-win32.whl", hash = "sha256:6bbf7fee7b7948b29d7e71fcacf48bac0c57fb41332007061a933f2d996f9713"}, {file = "pycryptodome-3.10.1.tar.gz", hash = "sha256:3e2e3a06580c5f190df843cdb90ea28d61099cf4924334d5297a995de68e4673"}, ] +pynacl = [ + {file = "PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff"}, + {file = "PyNaCl-1.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514"}, + {file = "PyNaCl-1.4.0-cp27-cp27m-win32.whl", hash = "sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574"}, + {file = "PyNaCl-1.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80"}, + {file = "PyNaCl-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7"}, + {file = "PyNaCl-1.4.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122"}, + {file = "PyNaCl-1.4.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d"}, + {file = "PyNaCl-1.4.0-cp35-abi3-win32.whl", hash = "sha256:4e10569f8cbed81cb7526ae137049759d2a8d57726d52c1a000a3ce366779634"}, + {file = "PyNaCl-1.4.0-cp35-abi3-win_amd64.whl", hash = "sha256:c914f78da4953b33d4685e3cdc7ce63401247a21425c16a39760e282075ac4a6"}, + {file = "PyNaCl-1.4.0-cp35-cp35m-win32.whl", hash = "sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4"}, + {file = "PyNaCl-1.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25"}, + {file = "PyNaCl-1.4.0-cp36-cp36m-win32.whl", hash = "sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4"}, + {file = "PyNaCl-1.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6"}, + {file = "PyNaCl-1.4.0-cp37-cp37m-win32.whl", hash = "sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f"}, + {file = "PyNaCl-1.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f"}, + {file = "PyNaCl-1.4.0-cp38-cp38-win32.whl", hash = "sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96"}, + {file = "PyNaCl-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420"}, + {file = "PyNaCl-1.4.0.tar.gz", hash = "sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505"}, +] pyparsing = [ {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, diff --git a/cli/pyproject.toml b/cli/pyproject.toml index ecf19e5d..5c23581b 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -30,6 +30,7 @@ unidecode = "*" urllib3 = "*" eventlet = "*" setuptools = "*" +pynacl = "^1.4.0" [tool.poetry.dev-dependencies] pytest = "*" diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index a3489698..7f4bc513 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -25,11 +25,14 @@ "gui_receive_flatpak_data_dir": "Because you installed OnionShare using Flatpak, you must save files to a folder in ~/OnionShare.", "gui_copy_url": "Copy Address", "gui_copy_hidservauth": "Copy HidServAuth", + "gui_copy_client_auth_v3": "Copy ClientAuth", "gui_canceled": "Canceled", "gui_copied_url_title": "Copied OnionShare Address", "gui_copied_url": "OnionShare address copied to clipboard", "gui_copied_hidservauth_title": "Copied HidServAuth", "gui_copied_hidservauth": "HidServAuth line copied to clipboard", + "gui_copied_client_auth_v3_title": "Copied ClientAuth", + "gui_copied_client_auth_v3": "ClientAuth private key copied to clipboard", "gui_show_url_qr_code": "Show QR Code", "gui_qr_code_dialog_title": "OnionShare QR Code", "gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.", @@ -68,7 +71,7 @@ "gui_settings_button_save": "Save", "gui_settings_button_cancel": "Cancel", "gui_settings_button_help": "Help", - "settings_test_success": "Connected to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}.\nSupports client authentication: {}.\nSupports next-gen .onion addresses: {}.", + "settings_test_success": "Connected to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}.\nSupports legacy .onion addresses: {}.\nSupports v2 client authentication: {}.\nSupports next-gen .onion addresses: {}.\nSupports next-gen client authentication: {}.", "connecting_to_tor": "Connecting to the Tor network", "update_available": "New OnionShare out. Click here to get it.

You are using {} and the latest is {}.", "update_error_invalid_latest_version": "Could not check for new version: The OnionShare website is saying the latest version is the unrecognizable '{}'…", @@ -194,4 +197,4 @@ "gui_rendezvous_cleanup": "Waiting for Tor circuits to close to be sure your files have successfully transferred.\n\nThis might take a few minutes.", "gui_rendezvous_cleanup_quit_early": "Quit Early", "error_port_not_available": "OnionShare port not available" -} \ No newline at end of file +} diff --git a/desktop/src/onionshare/settings_dialog.py b/desktop/src/onionshare/settings_dialog.py index 190ae35d..0c48f336 100644 --- a/desktop/src/onionshare/settings_dialog.py +++ b/desktop/src/onionshare/settings_dialog.py @@ -695,8 +695,10 @@ class SettingsDialog(QtWidgets.QDialog): strings._("settings_test_success").format( onion.tor_version, onion.supports_ephemeral, + onion.supports_v2_onions, onion.supports_stealth, onion.supports_v3_onions, + onion.supports_stealth_v3, ), ) diff --git a/desktop/src/onionshare/tab/mode/mode_settings_widget.py b/desktop/src/onionshare/tab/mode/mode_settings_widget.py index ef59f37e..e5b28511 100644 --- a/desktop/src/onionshare/tab/mode/mode_settings_widget.py +++ b/desktop/src/onionshare/tab/mode/mode_settings_widget.py @@ -139,7 +139,7 @@ class ModeSettingsWidget(QtWidgets.QWidget): else: self.legacy_checkbox.setCheckState(QtCore.Qt.Unchecked) - # Client auth + # Client auth (v2) self.client_auth_checkbox = QtWidgets.QCheckBox() self.client_auth_checkbox.clicked.connect(self.client_auth_checkbox_clicked) self.client_auth_checkbox.clicked.connect(self.update_ui) @@ -151,6 +151,18 @@ class ModeSettingsWidget(QtWidgets.QWidget): else: self.client_auth_checkbox.setCheckState(QtCore.Qt.Unchecked) + # Client auth (v3) + self.client_auth_v3_checkbox = QtWidgets.QCheckBox() + self.client_auth_v3_checkbox.clicked.connect(self.client_auth_v3_checkbox_clicked) + self.client_auth_v3_checkbox.clicked.connect(self.update_ui) + self.client_auth_v3_checkbox.setText( + strings._("mode_settings_client_auth_checkbox") + ) + if self.settings.get("general", "client_auth_v3"): + self.client_auth_v3_checkbox.setCheckState(QtCore.Qt.Checked) + else: + self.client_auth_v3_checkbox.setCheckState(QtCore.Qt.Unchecked) + # Toggle advanced settings self.toggle_advanced_button = QtWidgets.QPushButton() self.toggle_advanced_button.clicked.connect(self.toggle_advanced_clicked) @@ -167,6 +179,7 @@ class ModeSettingsWidget(QtWidgets.QWidget): advanced_layout.addLayout(autostop_timer_layout) advanced_layout.addWidget(self.legacy_checkbox) advanced_layout.addWidget(self.client_auth_checkbox) + advanced_layout.addWidget(self.client_auth_v3_checkbox) self.advanced_widget = QtWidgets.QWidget() self.advanced_widget.setLayout(advanced_layout) self.advanced_widget.hide() @@ -192,16 +205,19 @@ class ModeSettingsWidget(QtWidgets.QWidget): strings._("mode_settings_advanced_toggle_show") ) - # Client auth is only a legacy option + # v2 client auth is only a legacy option if self.client_auth_checkbox.isChecked(): self.legacy_checkbox.setChecked(True) self.legacy_checkbox.setEnabled(False) + self.client_auth_v3_checkbox.hide() else: self.legacy_checkbox.setEnabled(True) if self.legacy_checkbox.isChecked(): self.client_auth_checkbox.show() + self.client_auth_v3_checkbox.hide() else: self.client_auth_checkbox.hide() + self.client_auth_v3_checkbox.show() # If the server has been started in the past, prevent changing legacy option if self.settings.get("onion", "private_key"): @@ -209,10 +225,12 @@ class ModeSettingsWidget(QtWidgets.QWidget): # If using legacy, disable legacy and client auth options self.legacy_checkbox.setEnabled(False) self.client_auth_checkbox.setEnabled(False) + self.client_auth_v3_checkbox.hide() else: - # If using v3, hide legacy and client auth options + # If using v3, hide legacy and client auth options, show v3 client auth option self.legacy_checkbox.hide() self.client_auth_checkbox.hide() + self.client_auth_v3_checkbox.show() def title_editing_finished(self): if self.title_lineedit.text().strip() == "": @@ -283,6 +301,11 @@ class ModeSettingsWidget(QtWidgets.QWidget): "general", "client_auth", self.client_auth_checkbox.isChecked() ) + def client_auth_v3_checkbox_clicked(self): + self.settings.set( + "general", "client_auth_v3", self.client_auth_v3_checkbox.isChecked() + ) + def toggle_advanced_clicked(self): if self.advanced_widget.isVisible(): self.advanced_widget.hide() diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py index d8266820..f3138e90 100644 --- a/desktop/src/onionshare/tab/server_status.py +++ b/desktop/src/onionshare/tab/server_status.py @@ -39,6 +39,7 @@ class ServerStatus(QtWidgets.QWidget): button_clicked = QtCore.Signal() url_copied = QtCore.Signal() hidservauth_copied = QtCore.Signal() + client_auth_v3_copied = QtCore.Signal() STATUS_STOPPED = 0 STATUS_WORKING = 1 @@ -98,6 +99,9 @@ class ServerStatus(QtWidgets.QWidget): self.copy_hidservauth_button = QtWidgets.QPushButton( strings._("gui_copy_hidservauth") ) + self.copy_client_auth_v3_button = QtWidgets.QPushButton( + strings._("gui_copy_client_auth_v3") + ) self.show_url_qr_code_button = QtWidgets.QPushButton( strings._("gui_show_url_qr_code") ) @@ -113,10 +117,15 @@ class ServerStatus(QtWidgets.QWidget): self.common.gui.css["server_status_url_buttons"] ) self.copy_hidservauth_button.clicked.connect(self.copy_hidservauth) + self.copy_client_auth_v3_button.setStyleSheet( + self.common.gui.css["server_status_url_buttons"] + ) + self.copy_client_auth_v3_button.clicked.connect(self.copy_client_auth_v3) url_buttons_layout = QtWidgets.QHBoxLayout() url_buttons_layout.addWidget(self.copy_url_button) url_buttons_layout.addWidget(self.show_url_qr_code_button) url_buttons_layout.addWidget(self.copy_hidservauth_button) + url_buttons_layout.addWidget(self.copy_client_auth_v3_button) url_buttons_layout.addStretch() url_layout = QtWidgets.QVBoxLayout() @@ -218,6 +227,11 @@ class ServerStatus(QtWidgets.QWidget): else: self.copy_hidservauth_button.hide() + if self.settings.get("general", "client_auth_v3"): + self.copy_client_auth_v3_button.show() + else: + self.copy_client_auth_v3_button.hide() + def update(self): """ Update the GUI elements based on the current state. @@ -247,6 +261,7 @@ class ServerStatus(QtWidgets.QWidget): self.url.hide() self.copy_url_button.hide() self.copy_hidservauth_button.hide() + self.copy_client_auth_v3_button.hide() self.show_url_qr_code_button.hide() self.mode_settings_widget.update_ui() @@ -454,6 +469,15 @@ class ServerStatus(QtWidgets.QWidget): self.hidservauth_copied.emit() + def copy_client_auth_v3(self): + """ + Copy the ClientAuth v3 private key line to the clipboard. + """ + clipboard = self.qtapp.clipboard() + clipboard.setText(self.app.auth_string_v3) + + self.client_auth_v3_copied.emit() + def get_url(self): """ Returns the OnionShare URL. diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py index 2d4e164c..3a2cbfd6 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/src/onionshare/tab/tab.py @@ -276,6 +276,7 @@ class Tab(QtWidgets.QWidget): self.share_mode.server_status.button_clicked.connect(self.clear_message) self.share_mode.server_status.url_copied.connect(self.copy_url) self.share_mode.server_status.hidservauth_copied.connect(self.copy_hidservauth) + self.share_mode.server_status.client_auth_v3_copied.connect(self.copy_client_auth_v3) self.change_title.emit(self.tab_id, strings._("gui_tab_name_share")) @@ -313,6 +314,9 @@ class Tab(QtWidgets.QWidget): self.receive_mode.server_status.hidservauth_copied.connect( self.copy_hidservauth ) + self.receive_mode.server_status.client_auth_v3_copied.connect( + self.copy_client_auth_v3 + ) self.change_title.emit(self.tab_id, strings._("gui_tab_name_receive")) @@ -350,6 +354,9 @@ class Tab(QtWidgets.QWidget): self.website_mode.server_status.hidservauth_copied.connect( self.copy_hidservauth ) + self.website_mode.server_status.client_auth_v3_copied.connect( + self.copy_client_auth_v3 + ) self.change_title.emit(self.tab_id, strings._("gui_tab_name_website")) @@ -383,6 +390,7 @@ class Tab(QtWidgets.QWidget): self.chat_mode.server_status.button_clicked.connect(self.clear_message) self.chat_mode.server_status.url_copied.connect(self.copy_url) self.chat_mode.server_status.hidservauth_copied.connect(self.copy_hidservauth) + self.chat_mode.server_status.client_auth_v3_copied.connect(self.copy_client_auth_v3) self.change_title.emit(self.tab_id, strings._("gui_tab_name_chat")) @@ -604,6 +612,16 @@ class Tab(QtWidgets.QWidget): strings._("gui_copied_hidservauth"), ) + def copy_client_auth_v3(self): + """ + When the v3 onion service ClientAuth private key gets copied to the clipboard, display this in the status bar. + """ + self.common.log("Tab", "copy_client_auth_v3") + self.system_tray.showMessage( + strings._("gui_copied_client_auth_v3_title"), + strings._("gui_copied_client_auth_v3"), + ) + def clear_message(self): """ Clear messages from the status bar. From e0b378055c6f0eb7033649f73ca4f96105c0496e Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 6 May 2021 14:26:00 +1000 Subject: [PATCH 02/55] Remove v2 legacy onion support, and its corresponding client auth functionality. Update the v3 Client Auth to take its place in settings --- cli/onionshare_cli/__init__.py | 60 +------- cli/onionshare_cli/mode_settings.py | 2 - cli/onionshare_cli/onion.py | 145 ++++-------------- cli/onionshare_cli/onionshare.py | 3 - cli/poetry.lock | 42 +---- cli/pyproject.toml | 1 - .../src/onionshare/resources/locale/af.json | 4 - .../src/onionshare/resources/locale/am.json | 4 - .../src/onionshare/resources/locale/ar.json | 6 +- .../src/onionshare/resources/locale/bg.json | 4 - .../src/onionshare/resources/locale/bn.json | 3 - .../src/onionshare/resources/locale/ca.json | 4 - .../src/onionshare/resources/locale/ckb.json | 3 - .../src/onionshare/resources/locale/cs.json | 4 - .../src/onionshare/resources/locale/da.json | 4 - .../src/onionshare/resources/locale/de.json | 4 - .../src/onionshare/resources/locale/el.json | 4 - .../src/onionshare/resources/locale/en.json | 9 +- .../src/onionshare/resources/locale/eo.json | 2 - .../src/onionshare/resources/locale/es.json | 4 - .../src/onionshare/resources/locale/fa.json | 4 - .../src/onionshare/resources/locale/fi.json | 4 - .../src/onionshare/resources/locale/fr.json | 4 - .../src/onionshare/resources/locale/ga.json | 4 - .../src/onionshare/resources/locale/gl.json | 3 - .../src/onionshare/resources/locale/gu.json | 4 - .../src/onionshare/resources/locale/he.json | 4 - .../src/onionshare/resources/locale/hi.json | 4 - .../src/onionshare/resources/locale/hr.json | 4 - .../src/onionshare/resources/locale/hu.json | 4 - .../src/onionshare/resources/locale/id.json | 4 - .../src/onionshare/resources/locale/is.json | 4 - .../src/onionshare/resources/locale/it.json | 4 - .../src/onionshare/resources/locale/ja.json | 4 - .../src/onionshare/resources/locale/ka.json | 4 - .../src/onionshare/resources/locale/km.json | 4 - .../src/onionshare/resources/locale/ko.json | 4 - .../src/onionshare/resources/locale/lg.json | 4 - .../src/onionshare/resources/locale/lt.json | 4 - .../src/onionshare/resources/locale/mk.json | 4 - .../src/onionshare/resources/locale/ms.json | 4 - .../onionshare/resources/locale/nb_NO.json | 4 - .../src/onionshare/resources/locale/nl.json | 4 - .../src/onionshare/resources/locale/pa.json | 4 - .../src/onionshare/resources/locale/pl.json | 4 - .../onionshare/resources/locale/pt_BR.json | 4 - .../onionshare/resources/locale/pt_PT.json | 4 - .../src/onionshare/resources/locale/ro.json | 4 - .../src/onionshare/resources/locale/ru.json | 4 - .../src/onionshare/resources/locale/si.json | 3 - .../src/onionshare/resources/locale/sk.json | 3 - .../src/onionshare/resources/locale/sl.json | 4 - .../src/onionshare/resources/locale/sn.json | 4 - .../onionshare/resources/locale/sr_Latn.json | 4 - .../src/onionshare/resources/locale/sv.json | 4 - .../src/onionshare/resources/locale/sw.json | 4 - .../src/onionshare/resources/locale/te.json | 4 - .../src/onionshare/resources/locale/tr.json | 4 - .../src/onionshare/resources/locale/uk.json | 4 - .../src/onionshare/resources/locale/wo.json | 4 - .../src/onionshare/resources/locale/yo.json | 4 - .../onionshare/resources/locale/zh_Hans.json | 4 - .../onionshare/resources/locale/zh_Hant.json | 4 - desktop/src/onionshare/settings_dialog.py | 2 - desktop/src/onionshare/tab/mode/__init__.py | 22 ++- .../tab/mode/mode_settings_widget.py | 65 +------- desktop/src/onionshare/tab/server_status.py | 26 +--- desktop/src/onionshare/tab/tab.py | 18 --- 68 files changed, 62 insertions(+), 552 deletions(-) diff --git a/cli/onionshare_cli/__init__.py b/cli/onionshare_cli/__init__.py index 288003e9..7e747ca8 100644 --- a/cli/onionshare_cli/__init__.py +++ b/cli/onionshare_cli/__init__.py @@ -120,26 +120,12 @@ def main(cwd=None): default=0, help="Stop onion service at schedule time (N seconds from now)", ) - parser.add_argument( - "--legacy", - action="store_true", - dest="legacy", - default=False, - help="Use legacy address (v2 onion service, not recommended)", - ) parser.add_argument( "--client-auth", action="store_true", dest="client_auth", default=False, - help="Use V2 client authorization (requires --legacy)", - ) - parser.add_argument( - "--client-auth-v3", - action="store_true", - dest="client_auth_v3", - default=False, - help="Use V3 client authorization", + help="Use client authorization", ) # Share args parser.add_argument( @@ -201,9 +187,7 @@ def main(cwd=None): public = bool(args.public) autostart_timer = int(args.autostart_timer) autostop_timer = int(args.autostop_timer) - legacy = bool(args.legacy) client_auth = bool(args.client_auth) - client_auth_v3 = bool(args.client_auth_v3) autostop_sharing = not bool(args.no_autostop_sharing) data_dir = args.data_dir webhook_url = args.webhook_url @@ -222,20 +206,6 @@ def main(cwd=None): # Verbose mode? common.verbose = verbose - # client_auth can only be set if legacy is also set - if client_auth and not legacy: - print( - "Client authentication (--client-auth) is only supported with legacy onion services (--legacy)" - ) - sys.exit() - - # client_auth_v3 and legacy cannot be both set - if client_auth_v3 and legacy: - print( - "V3 Client authentication (--client-auth-v3) cannot be used with legacy onion services (--legacy)" - ) - sys.exit() - # Re-load settings, if a custom config was passed in if config_filename: common.load_settings(config_filename) @@ -256,9 +226,7 @@ def main(cwd=None): mode_settings.set("general", "public", public) mode_settings.set("general", "autostart_timer", autostart_timer) mode_settings.set("general", "autostop_timer", autostop_timer) - mode_settings.set("general", "legacy", legacy) mode_settings.set("general", "client_auth", client_auth) - mode_settings.set("general", "client_auth_v3", client_auth_v3) if mode == "share": mode_settings.set("share", "autostop_sharing", autostop_sharing) if mode == "receive": @@ -379,30 +347,20 @@ def main(cwd=None): ) print("") if mode_settings.get("general", "client_auth"): - print( - f"Give this address and HidServAuth line to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" - ) - print(app.auth_string) - elif mode_settings.get("general", "client_auth_v3"): print( f"Give this address and ClientAuth line to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" ) - print(app.auth_string_v3) + print(f"ClientAuth: {app.auth_string}") else: print( f"Give this address to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" ) else: if mode_settings.get("general", "client_auth"): - print( - f"Give this address and HidServAuth line to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" - ) - print(app.auth_string) - elif mode_settings.get("general", "client_auth_v3"): print( f"Give this address and ClientAuth line to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" ) - print(app.auth_string_v3) + print(f"ClientAuth: {app.auth_string}") else: print( f"Give this address to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" @@ -484,25 +442,17 @@ def main(cwd=None): print("") if mode_settings.get("general", "client_auth"): - print("Give this address and HidServAuth to the sender:") - print(url) - print(app.auth_string) - elif mode_settings.get("general", "client_auth_v3"): print("Give this address and ClientAuth to the sender:") print(url) - print(app.auth_string_v3) + print(f"ClientAuth: {app.auth_string}") else: print("Give this address to the sender:") print(url) else: if mode_settings.get("general", "client_auth"): - print("Give this address and HidServAuth line to the recipient:") - print(url) - print(app.auth_string) - elif mode_settings.get("general", "client_auth_v3"): print("Give this address and ClientAuth line to the recipient:") print(url) - print(app.auth_string_v3) + print(f"ClientAuth: {app.auth_string}") else: print("Give this address to the recipient:") print(url) diff --git a/cli/onionshare_cli/mode_settings.py b/cli/onionshare_cli/mode_settings.py index d94826c0..20335614 100644 --- a/cli/onionshare_cli/mode_settings.py +++ b/cli/onionshare_cli/mode_settings.py @@ -48,9 +48,7 @@ class ModeSettings: "public": False, "autostart_timer": False, "autostop_timer": False, - "legacy": False, "client_auth": False, - "client_auth_v3": False, "service_id": None, }, "share": {"autostop_sharing": True, "filenames": []}, diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index d4c83825..ff071086 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -21,7 +21,6 @@ along with this program. If not, see . from stem.control import Controller from stem import ProtocolError, SocketClosed from stem.connection import MissingPassword, UnreadableCookieFile, AuthenticationFailure -from Crypto.PublicKey import RSA import base64 import nacl.public import os @@ -167,7 +166,6 @@ class Onion(object): # Assigned later if we are using stealth mode self.auth_string = None - self.auth_string_v3 = None # Keep track of onions where it's important to gracefully close to prevent truncated downloads self.graceful_close_onions = [] @@ -586,22 +584,6 @@ class Onion(object): callable(list_ephemeral_hidden_services) and self.tor_version >= "0.2.7.1" ) - # Do the versions of stem and tor that I'm using support v2 stealth onion services? - try: - res = self.c.create_ephemeral_hidden_service( - {1: 1}, - basic_auth={"onionshare": None}, - await_publication=False, - key_type="NEW", - key_content="RSA1024", - ) - tmp_service_id = res.service_id - self.c.remove_ephemeral_hidden_service(tmp_service_id) - self.supports_stealth = True - except: - # ephemeral stealth onion services are not supported - self.supports_stealth = False - # Do the versions of stem and tor that I'm using support v3 stealth onion services? try: res = self.c.create_ephemeral_hidden_service( @@ -614,20 +596,16 @@ class Onion(object): ) tmp_service_id = res.service_id self.c.remove_ephemeral_hidden_service(tmp_service_id) - self.supports_stealth_v3 = True + self.supports_stealth = True except: # ephemeral v3 stealth onion services are not supported - self.supports_stealth_v3 = False + self.supports_stealth = False # Does this version of Tor support next-gen ('v3') onions? # Note, this is the version of Tor where this bug was fixed: # https://trac.torproject.org/projects/tor/ticket/28619 self.supports_v3_onions = self.tor_version >= Version("0.3.5.7") - # Does this version of Tor support legacy ('v2') onions? - # v2 onions have been phased out as of Tor 0.4.6.1. - self.supports_v2_onions = self.tor_version < Version("0.4.6.1") - def is_authenticated(self): """ @@ -650,85 +628,45 @@ class Onion(object): "Your version of Tor is too old, ephemeral onion services are not supported" ) raise TorTooOldEphemeral() - if mode_settings.get("general", "client_auth") and not self.supports_stealth: - print( - "Your version of Tor is too old, stealth onion services are not supported" - ) - raise TorTooOldStealth() - - if mode_settings.get("general", "client_auth_v3") and not self.supports_stealth_v3: - print( - "Your version of Tor is too old, stealth v3 onion services are not supported" - ) - raise TorTooOldStealth() - - auth_cookie = None - if mode_settings.get("general", "client_auth"): - if mode_settings.get("onion", "hidservauth_string"): - auth_cookie = mode_settings.get("onion", "hidservauth_string").split()[ - 2 - ] - if auth_cookie: - basic_auth = {"onionshare": auth_cookie} - else: - # If we had neither a scheduled auth cookie or a persistent hidservauth string, - # set the cookie to 'None', which means Tor will create one for us - basic_auth = {"onionshare": None} - else: - # Not using client auth at all - basic_auth = None - client_auth_v3_pub_key = None if mode_settings.get("onion", "private_key"): key_content = mode_settings.get("onion", "private_key") - if self.is_v2_key(key_content) and self.supports_v2_onions: - key_type = "RSA1024" - else: - # Assume it was a v3 key. Stem will throw an error if it's something illegible - key_type = "ED25519-V3" + key_type = "ED25519-V3" else: + key_content = "ED25519-V3" key_type = "NEW" - # Work out if we can support v3 onion services, which are preferred - if self.supports_v3_onions and not mode_settings.get("general", "legacy") and not self.supports_v2_onions: - key_content = "ED25519-V3" - else: - # fall back to v2 onion services - key_content = "RSA1024" - - if ( - (key_type == "ED25519-V3" - or key_content == "ED25519-V3") - and mode_settings.get("general", "client_auth_v3") - ): - if key_type == "NEW" or not mode_settings.get("onion", "client_auth_v3_priv_key"): - # Generate a new key pair for Client Auth on new onions, or if - # it's a persistent onion but for some reason we don't them - client_auth_v3_priv_key_raw = nacl.public.PrivateKey.generate() - client_auth_v3_priv_key = self.key_str(client_auth_v3_priv_key_raw) - client_auth_v3_pub_key = self.key_str(client_auth_v3_priv_key_raw.public_key) - else: - # These should have been saved in settings from the previous run of a persistent onion - client_auth_v3_priv_key = mode_settings.get("onion", "client_auth_v3_priv_key") - client_auth_v3_pub_key = mode_settings.get("onion", "client_auth_v3_pub_key") - - self.common.log( - "Onion", "start_onion-service", f"ClientAuthV3 private key (for Tor Browser: {client_auth_v3_priv_key}" - ) - self.common.log( - "Onion", "start_onion-service", f"ClientAuthV3 public key (for Onion service: {client_auth_v3_pub_key}" - ) - # basic_auth is only for v2 onions - basic_auth = None debug_message = f"key_type={key_type}" if key_type == "NEW": debug_message += f", key_content={key_content}" self.common.log("Onion", "start_onion_service", debug_message) + + if mode_settings.get("general", "client_auth"): + if not self.supports_stealth: + print( + "Your version of Tor is too old, stealth onion services are not supported" + ) + raise TorTooOldStealth() + else: + if key_type == "NEW" or not mode_settings.get("onion", "client_auth_v3_priv_key"): + # Generate a new key pair for Client Auth on new onions, or if + # it's a persistent onion but for some reason we don't them + client_auth_v3_priv_key_raw = nacl.public.PrivateKey.generate() + client_auth_v3_priv_key = self.key_str(client_auth_v3_priv_key_raw) + client_auth_v3_pub_key = self.key_str(client_auth_v3_priv_key_raw.public_key) + else: + # These should have been saved in settings from the previous run of a persistent onion + client_auth_v3_priv_key = mode_settings.get("onion", "client_auth_v3_priv_key") + client_auth_v3_pub_key = mode_settings.get("onion", "client_auth_v3_pub_key") + else: + client_auth_v3_priv_key = None + client_auth_v3_pub_key = None + try: res = self.c.create_ephemeral_hidden_service( {80: port}, await_publication=await_publication, - basic_auth=basic_auth, + basic_auth=None, key_type=key_type, key_content=key_content, client_auth_v3=client_auth_v3_pub_key, @@ -750,25 +688,20 @@ class Onion(object): # Save the private key and hidservauth string if not mode_settings.get("onion", "private_key"): mode_settings.set("onion", "private_key", res.private_key) - if mode_settings.get("general", "client_auth") and not mode_settings.get( - "onion", "hidservauth_string" - ): - auth_cookie = list(res.client_auth.values())[0] - self.auth_string = f"HidServAuth {onion_host} {auth_cookie}" - mode_settings.set("onion", "hidservauth_string", self.auth_string) # If using V3 onions and Client Auth, save both the private and public key - # because we need to send the public key to ADD_ONION, and the private key - # to the other user for their Tor Browser. - if mode_settings.get("general", "client_auth_v3"): + # because we need to send the public key to ADD_ONION (if we restart this + # same share at a later date), and the private key to the other user for + # their Tor Browser. + if mode_settings.get("general", "client_auth"): mode_settings.set("onion", "client_auth_v3_priv_key", client_auth_v3_priv_key) mode_settings.set("onion", "client_auth_v3_pub_key", client_auth_v3_pub_key) # If we were pasting the client auth directly into the filesystem behind a Tor client, # it would need to be in the format below. However, let's just set the private key # by itself, as this can be pasted directly into Tor Browser, which is likely to # be the most common use case. - # self.auth_string_v3 = f"{onion_host}:x25519:{client_auth_v3_priv_key}" - self.auth_string_v3 = client_auth_v3_priv_key + # self.auth_string = f"{onion_host}:x25519:{client_auth_v3_priv_key}" + self.auth_string = client_auth_v3_priv_key return onion_host @@ -900,15 +833,3 @@ class Onion(object): return ("127.0.0.1", 9150) else: return (self.settings.get("socks_address"), self.settings.get("socks_port")) - - def is_v2_key(self, key): - """ - Helper function for determining if a key is RSA1024 (v2) or not. - """ - try: - # Import the key - key = RSA.importKey(base64.b64decode(key)) - # Is this a v2 Onion key? (1024 bits) If so, we should keep using it. - return key.n.bit_length() == 1024 - except: - return False diff --git a/cli/onionshare_cli/onionshare.py b/cli/onionshare_cli/onionshare.py index 4c80873b..4e34cf4b 100644 --- a/cli/onionshare_cli/onionshare.py +++ b/cli/onionshare_cli/onionshare.py @@ -83,9 +83,6 @@ class OnionShare(object): if mode_settings.get("general", "client_auth"): self.auth_string = self.onion.auth_string - if mode_settings.get("general", "client_auth_v3"): - self.auth_string_v3 = self.onion.auth_string_v3 - def stop_onion_service(self, mode_settings): """ Stop the onion service diff --git a/cli/poetry.lock b/cli/poetry.lock index 4e574a08..ab5e2174 100644 --- a/cli/poetry.lock +++ b/cli/poetry.lock @@ -278,14 +278,6 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" version = "2.20" -[[package]] -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]] category = "main" description = "Python binding to the Networking and Cryptography (NaCl) library" @@ -473,7 +465,7 @@ 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] -content-hash = "ace423d1b657b80c33a6fddb308d7d2a458847cfb14630c17da256c9e50f1f1d" +content-hash = "8c04afd6b4605961ef8da2340c99f1d3dabc790bca8b57c1bdfb3e29130dc94d" python-versions = "^3.6" [metadata.files] @@ -710,38 +702,6 @@ pycparser = [ {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, ] -pycryptodome = [ - {file = "pycryptodome-3.10.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1c5e1ca507de2ad93474be5cfe2bfa76b7cf039a1a32fc196f40935944871a06"}, - {file = "pycryptodome-3.10.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:6260e24d41149268122dd39d4ebd5941e9d107f49463f7e071fd397e29923b0c"}, - {file = "pycryptodome-3.10.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:3f840c49d38986f6e17dbc0673d37947c88bc9d2d9dba1c01b979b36f8447db1"}, - {file = "pycryptodome-3.10.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:2dea65df54349cdfa43d6b2e8edb83f5f8d6861e5cf7b1fbc3e34c5694c85e27"}, - {file = "pycryptodome-3.10.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:e61e363d9a5d7916f3a4ce984a929514c0df3daf3b1b2eb5e6edbb131ee771cf"}, - {file = "pycryptodome-3.10.1-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:2603c98ae04aac675fefcf71a6c87dc4bb74a75e9071ae3923bbc91a59f08d35"}, - {file = "pycryptodome-3.10.1-cp27-cp27m-win32.whl", hash = "sha256:38661348ecb71476037f1e1f553159b80d256c00f6c0b00502acac891f7116d9"}, - {file = "pycryptodome-3.10.1-cp27-cp27m-win_amd64.whl", hash = "sha256:1723ebee5561628ce96748501cdaa7afaa67329d753933296321f0be55358dce"}, - {file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:77997519d8eb8a4adcd9a47b9cec18f9b323e296986528186c0e9a7a15d6a07e"}, - {file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:99b2f3fc51d308286071d0953f92055504a6ffe829a832a9fc7a04318a7683dd"}, - {file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:e0a4d5933a88a2c98bbe19c0c722f5483dc628d7a38338ac2cb64a7dbd34064b"}, - {file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d3d6958d53ad307df5e8469cc44474a75393a434addf20ecd451f38a72fe29b8"}, - {file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:a8eb8b6ea09ec1c2535bf39914377bc8abcab2c7d30fa9225eb4fe412024e427"}, - {file = "pycryptodome-3.10.1-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:31c1df17b3dc5f39600a4057d7db53ac372f492c955b9b75dd439f5d8b460129"}, - {file = "pycryptodome-3.10.1-cp35-abi3-manylinux1_i686.whl", hash = "sha256:a3105a0eb63eacf98c2ecb0eb4aa03f77f40fbac2bdde22020bb8a536b226bb8"}, - {file = "pycryptodome-3.10.1-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:a92d5c414e8ee1249e850789052608f582416e82422502dc0ac8c577808a9067"}, - {file = "pycryptodome-3.10.1-cp35-abi3-manylinux2010_i686.whl", hash = "sha256:60386d1d4cfaad299803b45a5bc2089696eaf6cdd56f9fc17479a6f89595cfc8"}, - {file = "pycryptodome-3.10.1-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:501ab36aae360e31d0ec370cf5ce8ace6cb4112060d099b993bc02b36ac83fb6"}, - {file = "pycryptodome-3.10.1-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:fc7489a50323a0df02378bc2fff86eb69d94cc5639914346c736be981c6a02e7"}, - {file = "pycryptodome-3.10.1-cp35-abi3-win32.whl", hash = "sha256:9b6f711b25e01931f1c61ce0115245a23cdc8b80bf8539ac0363bdcf27d649b6"}, - {file = "pycryptodome-3.10.1-cp35-abi3-win_amd64.whl", hash = "sha256:7fd519b89585abf57bf47d90166903ec7b43af4fe23c92273ea09e6336af5c07"}, - {file = "pycryptodome-3.10.1-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:09c1555a3fa450e7eaca41ea11cd00afe7c91fef52353488e65663777d8524e0"}, - {file = "pycryptodome-3.10.1-pp27-pypy_73-manylinux1_x86_64.whl", hash = "sha256:758949ca62690b1540dfb24ad773c6da9cd0e425189e83e39c038bbd52b8e438"}, - {file = "pycryptodome-3.10.1-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:e3bf558c6aeb49afa9f0c06cee7fb5947ee5a1ff3bd794b653d39926b49077fa"}, - {file = "pycryptodome-3.10.1-pp27-pypy_73-win32.whl", hash = "sha256:f977cdf725b20f6b8229b0c87acb98c7717e742ef9f46b113985303ae12a99da"}, - {file = "pycryptodome-3.10.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6d2df5223b12437e644ce0a3be7809471ffa71de44ccd28b02180401982594a6"}, - {file = "pycryptodome-3.10.1-pp36-pypy36_pp73-manylinux1_x86_64.whl", hash = "sha256:98213ac2b18dc1969a47bc65a79a8fca02a414249d0c8635abb081c7f38c91b6"}, - {file = "pycryptodome-3.10.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:12222a5edc9ca4a29de15fbd5339099c4c26c56e13c2ceddf0b920794f26165d"}, - {file = "pycryptodome-3.10.1-pp36-pypy36_pp73-win32.whl", hash = "sha256:6bbf7fee7b7948b29d7e71fcacf48bac0c57fb41332007061a933f2d996f9713"}, - {file = "pycryptodome-3.10.1.tar.gz", hash = "sha256:3e2e3a06580c5f190df843cdb90ea28d61099cf4924334d5297a995de68e4673"}, -] pynacl = [ {file = "PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff"}, {file = "PyNaCl-1.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514"}, diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 5c23581b..0339340d 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -22,7 +22,6 @@ flask = "*" flask-httpauth = "*" flask-socketio = "*" psutil = "*" -pycryptodome = "*" pysocks = "*" requests = {extras = ["socks"], version = "^2.25.1"} stem = "*" diff --git a/desktop/src/onionshare/resources/locale/af.json b/desktop/src/onionshare/resources/locale/af.json index c9e641f5..1a6a057b 100644 --- a/desktop/src/onionshare/resources/locale/af.json +++ b/desktop/src/onionshare/resources/locale/af.json @@ -22,12 +22,9 @@ "gui_receive_stop_server": "Staak Ontvangmodus", "gui_receive_stop_server_autostop_timer": "Staak Ontvangmodus ({} oorblywend)", "gui_copy_url": "Kopieer Adres", - "gui_copy_hidservauth": "Kopieer HidServAuth", "gui_canceled": "Gekanselleer", "gui_copied_url_title": "OnionShare-adres Gekopieer", "gui_copied_url": "OnionShare-adres na knipbord gekopieer", - "gui_copied_hidservauth_title": "HidServAuth Gekopieer", - "gui_copied_hidservauth": "HidServAuth-reël na knipbord gekopieer", "gui_waiting_to_start": "Geskeduleer om oor {} te begin. Klik om te kanselleer.", "gui_please_wait": "Begin… Klik om te kanselleer.", "gui_quit_title": "Nie so haastig nie", @@ -42,7 +39,6 @@ "gui_settings_window_title": "Instellings", "gui_settings_whats_this": "Wat is dit?", "gui_settings_stealth_option": "Gebruik kliëntmagtiging", - "gui_settings_stealth_hidservauth_string": "Deur u privaat sleutel vir herbruik bewaar te hê kan u nou klik om u HidServAuth te kopieer.", "gui_settings_autoupdate_label": "Soek na nuwe weergawe", "gui_settings_autoupdate_option": "Laat my weet wanneer ’n nuwe weergawe beskikbaar is", "gui_settings_autoupdate_timestamp": "Laas gesoek: {}", diff --git a/desktop/src/onionshare/resources/locale/am.json b/desktop/src/onionshare/resources/locale/am.json index b787a617..4f6e0bc1 100644 --- a/desktop/src/onionshare/resources/locale/am.json +++ b/desktop/src/onionshare/resources/locale/am.json @@ -45,14 +45,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -70,7 +67,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/ar.json b/desktop/src/onionshare/resources/locale/ar.json index 0c0daeb5..3f24c661 100644 --- a/desktop/src/onionshare/resources/locale/ar.json +++ b/desktop/src/onionshare/resources/locale/ar.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "أوقف طور التلقّي (باقي {})", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "نسخ العنوان", - "gui_copy_hidservauth": "نسخ مُصادقة الخدمة المخفية", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "تم الإلغاء", "gui_copied_url_title": "OnionShare تمّ نسخ عنوان", "gui_copied_url": "تمّ نسخ عوان اونينشير إلى الحافظة", - "gui_copied_hidservauth_title": "تم نسخ مُصادقة الخدمة المخفية", - "gui_copied_hidservauth": "تم نسخ سطر مصادقة الخدمة المخفية إلى الحافظة", "gui_please_wait": "جاري البدء… اضغط هنا للإلغاء.", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "الإعدادات", "gui_settings_whats_this": "ما هذا؟", "gui_settings_stealth_option": "فعّل استيثاق العميل", - "gui_settings_stealth_hidservauth_string": "بحفظ مفتاحك السّرّيّ لاستعماله لاحقًا صار بوسعك النقر هنا لنسخ HidServAuth.", "gui_settings_autoupdate_label": "تحقق من وجود إصدار الجديد", "gui_settings_autoupdate_option": "أخطرني عند وجود إصدارة أحدث", "gui_settings_autoupdate_timestamp": "تاريخ آخر تحقُق: {}", @@ -283,4 +279,4 @@ "gui_color_mode_changed_notice": "يُرجى إعادة تشغيل OnionShare من أجل تطبيق المظهر باللون الجديد.", "gui_open_folder_error": "فشل فتح ملف باستخدام xdg-open. الملف هنا: {}", "gui_chat_url_description": "أي شخص يوجد معه عنوان OnionShare يمكنه الانضمام إلى غرفة المحادثة هذه باستخدام متصفح تور Tor Browser" -} \ No newline at end of file +} diff --git a/desktop/src/onionshare/resources/locale/bg.json b/desktop/src/onionshare/resources/locale/bg.json index 9abe5623..90a40715 100644 --- a/desktop/src/onionshare/resources/locale/bg.json +++ b/desktop/src/onionshare/resources/locale/bg.json @@ -45,14 +45,11 @@ "gui_receive_stop_server_autostop_timer": "Спрете получаващия режим ({} остават)", "gui_receive_stop_server_autostop_timer_tooltip": "Автоматично спиращият таймер спира в {}", "gui_copy_url": "Копирайте адрес", - "gui_copy_hidservauth": "Копирайте HidServAuth", "gui_downloads": "Свалете история", "gui_no_downloads": "Още няма изтегляния", "gui_canceled": "Отменен", "gui_copied_url_title": "OnionShare адресът е копиран", "gui_copied_url": "OnionShare адресът е копиран към клипборда", - "gui_copied_hidservauth_title": "HidServAuth е копиран", - "gui_copied_hidservauth": "HidServAuth редът е копиран към клипборда", "gui_please_wait": "Започва... кликни за отменяне.", "gui_download_upload_progress_complete": "%p%, {0:s} изтече.", "gui_download_upload_progress_starting": "{0:s}, %p% (изчисляване)", @@ -70,7 +67,6 @@ "gui_settings_window_title": "Настройки", "gui_settings_whats_this": "Какво е това?", "gui_settings_stealth_option": "Използвайте клиент ауторизация (наследствен)", - "gui_settings_stealth_hidservauth_string": "След като Вашия частен ключ бе запазен за повторна употреба, можете сега да кликнете, за да копирате Вашия HidServAuth.", "gui_settings_autoupdate_label": "Провери за нова версия", "gui_settings_autoupdate_option": "Уведоми ме, когато е налице нова версия", "gui_settings_autoupdate_timestamp": "Последна проверка: {}", diff --git a/desktop/src/onionshare/resources/locale/bn.json b/desktop/src/onionshare/resources/locale/bn.json index 98728896..5220b931 100644 --- a/desktop/src/onionshare/resources/locale/bn.json +++ b/desktop/src/onionshare/resources/locale/bn.json @@ -45,14 +45,11 @@ "gui_receive_stop_server_autostop_timer": "রিসিভ মোড বন্ধ করো({} বাকি)", "gui_receive_stop_server_autostop_timer_tooltip": "টাইমার অনুযায়ী অটোমেটিক বন্ধ হবে {}-তে", "gui_copy_url": "এড্রেস কপি করো", - "gui_copy_hidservauth": "হিডসার্ভঅথ কপি করো", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "বাতিল করা হয়েছে", "gui_copied_url_title": "OnionShare ঠিকানা কপি করা হয়েছে", "gui_copied_url": "OnionShare ঠিকানাটি ক্লিপবোর্ডে কপি করা হয়েছে", - "gui_copied_hidservauth_title": "HidServAuth কপি করা হয়েছে", - "gui_copied_hidservauth": "HidServAuth লাইনটি ক্লিপবোর্ডে কপি করা হয়েছে", "gui_please_wait": "চালু করছি… বাতিল করতে এখানে ক্লিক করো।", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", diff --git a/desktop/src/onionshare/resources/locale/ca.json b/desktop/src/onionshare/resources/locale/ca.json index 0015a5ba..bef1e00c 100644 --- a/desktop/src/onionshare/resources/locale/ca.json +++ b/desktop/src/onionshare/resources/locale/ca.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Atura el mode de recepció (queden {})", "gui_receive_stop_server_autostop_timer_tooltip": "El temporitzador acaba a {}", "gui_copy_url": "Copia l'adreça", - "gui_copy_hidservauth": "Copia el HidServAuth", "gui_downloads": "Historial de descàrregues", "gui_no_downloads": "No n'hi ha cap", "gui_canceled": "S'ha cancel·lat", "gui_copied_url_title": "S'ha copiat l'adreça OnionShare", "gui_copied_url": "S'ha copiat l'adreça OnionShare al porta-retalls", - "gui_copied_hidservauth_title": "S'ha copiat el HidServAuth", - "gui_copied_hidservauth": "S'ha copiat la línia HidServAuth al porta-retalls", "gui_please_wait": "S'està iniciant… Feu clic per a cancel·lar.", "gui_download_upload_progress_complete": "Han passat %p%, {0:s}.", "gui_download_upload_progress_starting": "{0:s}, %p% (s'està calculant)", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Paràmetres", "gui_settings_whats_this": "Què és això?", "gui_settings_stealth_option": "Fes servir autorització de client", - "gui_settings_stealth_hidservauth_string": "Ara que ja heu desat la clau privada per a reutilitzar-la, podeu fer clic per a copiar el HidServAuth.", "gui_settings_autoupdate_label": "Comprova si hi ha versions noves", "gui_settings_autoupdate_option": "Notifica'm si hi ha una actualització disponible", "gui_settings_autoupdate_timestamp": "Última comprovació: {}", diff --git a/desktop/src/onionshare/resources/locale/ckb.json b/desktop/src/onionshare/resources/locale/ckb.json index 43f84d3f..6d357d52 100644 --- a/desktop/src/onionshare/resources/locale/ckb.json +++ b/desktop/src/onionshare/resources/locale/ckb.json @@ -24,12 +24,9 @@ "gui_receive_stop_server_autostop_timer": "Mod ya wergirtinê betal bike ({} maye)", "gui_receive_flatpak_data_dir": "Ji ber tu Onionshare bi rêya Flatpak bar kir, pêwîste tu belge di dosyayek di nav ~/OnionShare qeyd bikî.", "gui_copy_url": "Malper kopî bike", - "gui_copy_hidservauth": "HidServAuth kopî bike", "gui_canceled": "Betal bû", "gui_copied_url_title": "Malpera OnionShare kopî bû", "gui_copied_url": "Malpera OnionShare lis ser taxtê kopî bû", - "gui_copied_hidservauth_title": "HidServAuth kopî bû", - "gui_copied_hidservauth": "‮ ‌‫HidServAuth xet li ser taxtê kopî bû", "gui_show_url_qr_code": "QR kod nîşan bide", "gui_qr_code_dialog_title": "OnionShare QR kod", "gui_waiting_to_start": "Pilankirî ye di {} destpê bike. Bitkîne ji bo betal bike.", diff --git a/desktop/src/onionshare/resources/locale/cs.json b/desktop/src/onionshare/resources/locale/cs.json index d5c7511a..03f8683f 100644 --- a/desktop/src/onionshare/resources/locale/cs.json +++ b/desktop/src/onionshare/resources/locale/cs.json @@ -20,11 +20,9 @@ "gui_share_start_server": "Spustit sdílení", "gui_share_stop_server": "Zastavit sdílení", "gui_copy_url": "Kopírovat URL", - "gui_copy_hidservauth": "Kopírovat HidServAuth", "gui_downloads": "Historie stahování", "gui_canceled": "Zrušeno", "gui_copied_url": "URL zkopírováno do schránky", - "gui_copied_hidservauth": "HidServAuth zkopírováno do schránky", "gui_please_wait": "Spouštění... Klikněte pro zrušení.", "gui_download_upload_progress_complete": "%p%, Uplynulý čas: {0:s}", "gui_download_upload_progress_starting": "{0:s}, %p% (Computing ETA)", @@ -78,11 +76,9 @@ "gui_receive_start_server": "Spustit mód přijímání", "gui_receive_stop_server": "Zastavit přijímání", "gui_receive_stop_server_autostop_timer": "Zastavit mód přijímání ({} zbývá)", - "gui_copied_hidservauth_title": "Zkopírovaný HidServAuth token", "gui_copied_url_title": "OnionShare Address zkopírována", "gui_quit_title": "Ne tak rychle", "gui_settings_stealth_option": "Autorizace klienta", - "gui_settings_stealth_hidservauth_string": "Uložení priváního klíče pro znovu použití znamená, že teď můžete zkopírovat Váš HidServAuth.", "gui_settings_autoupdate_label": "Kontrola nové verze", "gui_settings_autoupdate_option": "Upozornit na dostupnost nové verze", "gui_settings_autoupdate_timestamp": "Poslední kontrola {}", diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/src/onionshare/resources/locale/da.json index 383b3d33..acfa3bfe 100644 --- a/desktop/src/onionshare/resources/locale/da.json +++ b/desktop/src/onionshare/resources/locale/da.json @@ -33,11 +33,9 @@ "gui_share_start_server": "Begynd at dele", "gui_share_stop_server": "Stop deling", "gui_copy_url": "Kopiér adresse", - "gui_copy_hidservauth": "Kopiér HidServAuth", "gui_downloads": "Downloadhistorik", "gui_canceled": "Annulleret", "gui_copied_url": "OnionShare-adressen blev kopieret til udklipsholderen", - "gui_copied_hidservauth": "HidServAuth-linjen blev kopieret til udklipsholderen", "gui_please_wait": "Starter ... klik for at annullere.", "gui_download_upload_progress_complete": ".", "gui_download_upload_progress_starting": "{0:s}, %p% (udregner anslået ankomsttid)", @@ -52,7 +50,6 @@ "error_ephemeral_not_supported": "OnionShare kræver mindst både Tor 0.2.7.1 og python3-stem 1.4.0.", "gui_settings_window_title": "Indstillinger", "gui_settings_stealth_option": "Brug klientautentifikation", - "gui_settings_stealth_hidservauth_string": "Ved at have gemt din private nøgle til at blive brugt igen, betyder det at du nu kan klikke for at kopiere din HidServAuth.", "gui_settings_autoupdate_label": "Søg efter ny version", "gui_settings_autoupdate_option": "Giv mig besked når der findes en ny version", "gui_settings_autoupdate_timestamp": "Sidste søgning: {}", @@ -113,7 +110,6 @@ "share_via_onionshare": "Del via OnionShare", "gui_save_private_key_checkbox": "Brug en vedvarende adresse", "gui_copied_url_title": "Kopierede OnionShare-adresse", - "gui_copied_hidservauth_title": "Kopierede HidServAuth", "gui_quit_title": "Klap lige hesten", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Brug indbyggede meek_lite (Azure) udskiftelige transporter", "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Brug indbyggede meek_lite (Azure) udskiftelige transporter (kræver obfs4proxy)", diff --git a/desktop/src/onionshare/resources/locale/de.json b/desktop/src/onionshare/resources/locale/de.json index 4f4a3c32..663e6f2a 100644 --- a/desktop/src/onionshare/resources/locale/de.json +++ b/desktop/src/onionshare/resources/locale/de.json @@ -34,9 +34,7 @@ "systray_download_completed_message": "Der Benutzer hat deine Dateien heruntergeladen", "systray_download_canceled_title": "OnionShare Download abgebrochen", "systray_download_canceled_message": "Der Benutzer hat den Download abgebrochen", - "gui_copy_hidservauth": "HidServAuth kopieren", "gui_canceled": "Abgebrochen", - "gui_copied_hidservauth_title": "HidServAuth kopiert", "gui_quit_warning_quit": "Beenden", "gui_quit_warning_dont_quit": "Abbrechen", "gui_settings_window_title": "Einstellungen", @@ -83,7 +81,6 @@ "gui_receive_stop_server_autostop_timer_tooltip": "Zeit läuft in {} ab", "gui_no_downloads": "Bisher keine Downloads", "gui_copied_url_title": "OnionShare-Adresse kopiert", - "gui_copied_hidservauth": "HidServAuth-Zeile in die Zwischenablage kopiert", "gui_download_upload_progress_complete": "%p%, {0:s} vergangen.", "gui_download_upload_progress_starting": "{0:s}, %p% (berechne)", "gui_download_upload_progress_eta": "{0:s}, Voraussichtliche Dauer: {1:s}, %p%", @@ -171,7 +168,6 @@ "gui_settings_language_changed_notice": "Starte OnionShare neu, damit die neue Sprache übernommen wird.", "help_config": "Ort deiner eigenen JSON Konfigurationsdatei (optional)", "timeout_upload_still_running": "Warte bis Upload vollständig ist", - "gui_settings_stealth_hidservauth_string": "Da dein privater Schlüssel jetzt gespeichert wurde, um ihn später erneut zu nutzen, kannst du jetzt klicken, um deinen HidServAuth zu kopieren.", "gui_settings_connection_type_bundled_option": "Die integrierte Tor-Version von OnionShare nutzen", "settings_error_socket_file": "Kann nicht mittels des Tor-Controller-Socket {} verbinden.", "gui_server_started_after_autostop_timer": "Die Zeit ist abgelaufen, bevor der Server gestartet werden konnte. Bitte starte einen erneuten Teilvorgang.", diff --git a/desktop/src/onionshare/resources/locale/el.json b/desktop/src/onionshare/resources/locale/el.json index 68b67d8e..1738b1bd 100644 --- a/desktop/src/onionshare/resources/locale/el.json +++ b/desktop/src/onionshare/resources/locale/el.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Διακοπή λειτουργίας λήψης (απομένουν {})", "gui_receive_stop_server_autostop_timer_tooltip": "Το χρονόμετρο αυτόματου τερματισμού τελειώνει σε {}", "gui_copy_url": "Αντιγραφή διεύθυνσης", - "gui_copy_hidservauth": "Αντιγραφή HidServAuth", "gui_downloads": "Ιστορικό Λήψεων", "gui_no_downloads": "Καμία λήψη ως τώρα", "gui_canceled": "Ακυρώθηκε", "gui_copied_url_title": "Η διεύθυνση OnionShare αντιγράφτηκε", "gui_copied_url": "Η διεύθυνση OnionShare αντιγράφτηκε στον πίνακα", - "gui_copied_hidservauth_title": "Το HidServAuth αντιγράφτηκε", - "gui_copied_hidservauth": "Το HidServAuth αντιγράφτηκε στον πίνακα", "gui_please_wait": "Ξεκινάμε... Κάντε κλικ για ακύρωση.", "gui_download_upload_progress_complete": "%p%, {0:s} πέρασαν.", "gui_download_upload_progress_starting": "{0:s}, %p% (υπολογισμός)", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Ρυθμίσεις", "gui_settings_whats_this": "Τί είναι αυτό;", "gui_settings_stealth_option": "Χρήση εξουσιοδότησης πελάτη", - "gui_settings_stealth_hidservauth_string": "Έχοντας αποθηκεύσει το ιδιωτικό σας κλειδί για επαναχρησιμοποίηση, μπορείτε πλέον να επιλέξετε την αντιγραφή του HidServAuth σας.", "gui_settings_autoupdate_label": "Έλεγχος για νέα έκδοση", "gui_settings_autoupdate_option": "Ενημερώστε με όταν είναι διαθέσιμη μια νέα έκδοση", "gui_settings_autoupdate_timestamp": "Τελευταίος έλεγχος: {}", diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 7f4bc513..7fa81128 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -24,13 +24,10 @@ "gui_receive_stop_server_autostop_timer": "Stop Receive Mode ({} remaining)", "gui_receive_flatpak_data_dir": "Because you installed OnionShare using Flatpak, you must save files to a folder in ~/OnionShare.", "gui_copy_url": "Copy Address", - "gui_copy_hidservauth": "Copy HidServAuth", "gui_copy_client_auth_v3": "Copy ClientAuth", "gui_canceled": "Canceled", "gui_copied_url_title": "Copied OnionShare Address", "gui_copied_url": "OnionShare address copied to clipboard", - "gui_copied_hidservauth_title": "Copied HidServAuth", - "gui_copied_hidservauth": "HidServAuth line copied to clipboard", "gui_copied_client_auth_v3_title": "Copied ClientAuth", "gui_copied_client_auth_v3": "ClientAuth private key copied to clipboard", "gui_show_url_qr_code": "Show QR Code", @@ -71,7 +68,7 @@ "gui_settings_button_save": "Save", "gui_settings_button_cancel": "Cancel", "gui_settings_button_help": "Help", - "settings_test_success": "Connected to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}.\nSupports legacy .onion addresses: {}.\nSupports v2 client authentication: {}.\nSupports next-gen .onion addresses: {}.\nSupports next-gen client authentication: {}.", + "settings_test_success": "Connected to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}.\nSupports client authentication: {}.\nSupports next-gen .onion addresses: {}.", "connecting_to_tor": "Connecting to the Tor network", "update_available": "New OnionShare out. Click here to get it.

You are using {} and the latest is {}.", "update_error_invalid_latest_version": "Could not check for new version: The OnionShare website is saying the latest version is the unrecognizable '{}'…", @@ -87,6 +84,7 @@ "gui_server_autostop_timer_expired": "The auto-stop timer already ran out. Please adjust it to start sharing.", "gui_server_autostart_timer_expired": "The scheduled time has already passed. Please adjust it to start sharing.", "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "The auto-stop time can't be the same or earlier than the auto-start time. Please adjust it to start sharing.", + "gui_server_doesnt_support_stealth": "Sorry, this version of Tor doesn't support stealth (Client Authorization). Please try with a newer version of Tor.", "share_via_onionshare": "Share via OnionShare", "gui_share_url_description": "Anyone with this OnionShare address can download your files using the Tor Browser: ", "gui_website_url_description": "Anyone with this OnionShare address can visit your website using the Tor Browser: ", @@ -173,8 +171,7 @@ "mode_settings_public_checkbox": "Don't use a password", "mode_settings_autostart_timer_checkbox": "Start onion service at scheduled time", "mode_settings_autostop_timer_checkbox": "Stop onion service at scheduled time", - "mode_settings_legacy_checkbox": "Use a legacy address (v2 onion service, not recommended)", - "mode_settings_client_auth_checkbox": "Use client authorization", + "mode_settings_client_auth_v3_checkbox": "Use client authorization", "mode_settings_share_autostop_sharing_checkbox": "Stop sharing after files have been sent (uncheck to allow downloading individual files)", "mode_settings_receive_data_dir_label": "Save files to", "mode_settings_receive_data_dir_browse_button": "Browse", diff --git a/desktop/src/onionshare/resources/locale/eo.json b/desktop/src/onionshare/resources/locale/eo.json index ea3cef9c..071d8909 100644 --- a/desktop/src/onionshare/resources/locale/eo.json +++ b/desktop/src/onionshare/resources/locale/eo.json @@ -20,11 +20,9 @@ "gui_share_start_server": "Komenci kundividon", "gui_share_stop_server": "Ĉesigi kundividon", "gui_copy_url": "Kopii URL", - "gui_copy_hidservauth": "Kopii HidServAuth", "gui_downloads": "Elŝutoj:", "gui_canceled": "Nuligita", "gui_copied_url": "URL kopiita en tondujon", - "gui_copied_hidservauth": "Copied HidServAuth line to clipboard", "gui_please_wait": "Bonvolu atendi...", "gui_download_upload_progress_complete": "%p%, Tempo pasinta: {0:s}", "gui_download_upload_progress_starting": "{0:s}, %p% (Computing ETA)", diff --git a/desktop/src/onionshare/resources/locale/es.json b/desktop/src/onionshare/resources/locale/es.json index 59f07406..40eaf617 100644 --- a/desktop/src/onionshare/resources/locale/es.json +++ b/desktop/src/onionshare/resources/locale/es.json @@ -28,7 +28,6 @@ "help_stealth": "Usar autorización de cliente (avanzada)", "help_config": "Ubicación del archivo de configuración JSON personalizado (opcional)", "gui_copied_url_title": "Dirección OnionShare Copiada", - "gui_copied_hidservauth": "Línea HidServAuth copiada al portapapeles", "gui_please_wait": "Comenzando… Clic para cancelar.", "gui_quit_title": "No tan rápido", "error_rate_limit": "Alguien ha intentado adivinar tu contraseña demasiadas veces, por lo que OnionShare ha detenido al servidor. Inicia la compartición de nuevo y envía una dirección nueva al receptor.", @@ -37,7 +36,6 @@ "error_ephemeral_not_supported": "OnionShare necesita por lo menos Tor 0.2.7.1 y python3-stem 1.4.0.", "gui_settings_window_title": "Configuración", "gui_settings_stealth_option": "Utilizar autorización de cliente", - "gui_settings_stealth_hidservauth_string": "Habiendo guardado tu clave privada para reutilizarla, ahora puedes hacer clic para copiar tu HidServAuth.", "gui_settings_autoupdate_label": "Comprobar nuevas versiones", "gui_settings_autoupdate_option": "Notifícame cuando haya una versión nueva disponible", "gui_settings_autoupdate_check_button": "Comprobar Nueva Versión", @@ -66,10 +64,8 @@ "gui_receive_stop_server": "Detener Modo de Recepción", "gui_receive_stop_server_autostop_timer": "Detener Modo de Recepción (quedan {})", "gui_receive_stop_server_autostop_timer_tooltip": "El temporizador de parada automática termina en {}", - "gui_copy_hidservauth": "Copiar HidServAuth", "gui_no_downloads": "Ninguna Descarga Todavía", "gui_canceled": "Cancelado", - "gui_copied_hidservauth_title": "HidServAuth Copiada", "settings_error_unknown": "No se puede conectar al controlador Tor porque tu configuración no tiene sentido.", "settings_error_automatic": "No se puede conectar al controlador Tor. ¿Se está ejecutando el Navegador Tor (disponible en torproject.org) en segundo plano?", "settings_error_socket_port": "No se puede conectar al controlador Tor en {}:{}.", diff --git a/desktop/src/onionshare/resources/locale/fa.json b/desktop/src/onionshare/resources/locale/fa.json index 5fe578e0..94f3bb1a 100644 --- a/desktop/src/onionshare/resources/locale/fa.json +++ b/desktop/src/onionshare/resources/locale/fa.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "توقف حالت دریافت ({} باقیمانده)", "gui_receive_stop_server_autostop_timer_tooltip": "تایمر توقف خودکار در {} به پایان می رسد", "gui_copy_url": "کپی آدرس", - "gui_copy_hidservauth": "کپی HidServAuth", "gui_downloads": "دانلود تاریخچه", "gui_no_downloads": "", "gui_canceled": "لغو شده", "gui_copied_url_title": "آدرس OnionShare کپی شد", "gui_copied_url": "آدرس OnionShare بر کلیپ بورد کپی شد", - "gui_copied_hidservauth_title": "HidServAuth کپی شد", - "gui_copied_hidservauth": "خط HidServAuth بر کلیپ بورد کپی شد", "gui_please_wait": "در حال آغاز... برای لغو کلیک کنید.", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "تنظیمات", "gui_settings_whats_this": "این چیست؟", "gui_settings_stealth_option": "استفاده از احراز هویت کلاینت", - "gui_settings_stealth_hidservauth_string": "ذخیره کردن کلید خصوصی برای استفاده دوباره، بدین معناست که الان می‌توانید برای کپی HidServAuth کلیک کنید.", "gui_settings_autoupdate_label": "بررسی برای نسخه جدید", "gui_settings_autoupdate_option": "زمانی که نسخه جدید موجود بود من را خبر کن", "gui_settings_autoupdate_timestamp": "آخرین بررسی: {}", diff --git a/desktop/src/onionshare/resources/locale/fi.json b/desktop/src/onionshare/resources/locale/fi.json index e7020b3c..fc950749 100644 --- a/desktop/src/onionshare/resources/locale/fi.json +++ b/desktop/src/onionshare/resources/locale/fi.json @@ -41,10 +41,7 @@ "gui_receive_stop_server": "Lopeta vastaanottotila", "gui_receive_stop_server_autostop_timer": "Lopeta vastaanottotila ({} jäljellä)", "gui_receive_stop_server_autostop_timer_tooltip": "Auto-stop ajastin loppuu kello {}", - "gui_copy_hidservauth": "Kopioi HidServAuth", "gui_copied_url_title": "Kopioi OnionShare-osoite", - "gui_copied_hidservauth_title": "HidServAuth kopioitu", - "gui_copied_hidservauth": "HidServAuth-rivi kopioitu leikepöydälle", "version_string": "OnionShare {0:s} | https://onionshare.org/", "gui_quit_title": "Ei niin nopeasti", "gui_share_quit_warning": "Olet lähettämässä tiedostoja. Haluatko varmasti lopettaa OnionSharen?", @@ -57,7 +54,6 @@ "gui_settings_window_title": "Asetukset", "gui_settings_whats_this": "Mikä tämä on?", "gui_settings_stealth_option": "Käytä asiakaslupaa", - "gui_settings_stealth_hidservauth_string": "Nyt kun olet tallentanut yksityisen avaimesi uudelleenkäyttöä varten, voit kopioida HidServAuth-osoitteesi napista.", "gui_settings_autoupdate_label": "Tarkista päivitykset", "gui_settings_autoupdate_option": "Ilmoita minulle, kun uusi versio on saatavilla", "gui_settings_autoupdate_timestamp": "Viimeksi tarkistettu: {}", diff --git a/desktop/src/onionshare/resources/locale/fr.json b/desktop/src/onionshare/resources/locale/fr.json index 42b3c39b..5fe6e967 100644 --- a/desktop/src/onionshare/resources/locale/fr.json +++ b/desktop/src/onionshare/resources/locale/fr.json @@ -22,7 +22,6 @@ "gui_share_start_server": "Commencer le partage", "gui_share_stop_server": "Arrêter le partage", "gui_copy_url": "Copier l’adresse", - "gui_copy_hidservauth": "Copier HidServAuth", "gui_downloads": "Historique de téléchargement", "gui_canceled": "Annulé", "gui_copied_url": "L’adresse OnionShare a été copiée dans le presse-papiers", @@ -38,7 +37,6 @@ "not_a_readable_file": "{0:s} n’est pas un fichier lisible.", "timeout_download_still_running": "En attente de la fin du téléchargement", "systray_download_completed_message": "La personne a terminé de télécharger vos fichiers", - "gui_copied_hidservauth_title": "HidServAuth a été copié", "gui_settings_window_title": "Paramètres", "gui_settings_autoupdate_timestamp": "Dernière vérification : {}", "gui_settings_close_after_first_download_option": "Arrêter le partage après l’envoi des fichiers", @@ -58,7 +56,6 @@ "connecting_to_tor": "Connexion au réseau Tor", "help_config": "Emplacement du fichier personnalisé de configuration JSON (facultatif)", "large_filesize": "Avertissement : L’envoi d’un partage volumineux peut prendre des heures", - "gui_copied_hidservauth": "La ligne HidServAuth a été copiée dans le presse-papiers", "version_string": "OnionShare {0:s} | https://onionshare.org/", "zip_progress_bar_format": "Compression : %p %", "error_ephemeral_not_supported": "OnionShare exige au moins et Tor 0.2.7.1 et python3-stem 1.4.0.", @@ -156,7 +153,6 @@ "error_stealth_not_supported": "Pour utiliser l’autorisation client, Tor 0.2.9.1-alpha (ou le Navigateur Tor 6.5) et python3-stem 1.5.0 ou versions ultérieures sont exigés.", "gui_settings_stealth_option": "Utiliser l’autorisation du client", "timeout_upload_still_running": "En attente de la fin de l'envoi", - "gui_settings_stealth_hidservauth_string": "L’enregistrement de votre clé privée pour réutilisation signifie que vous pouvez maintenant cliquer pour copier votre HidServAuth.", "gui_settings_autoupdate_check_button": "Vérifier la présence d’une nouvelle version", "settings_test_success": "Vous êtes connecté au contrôleur Tor.\n\nVersion de Tor : {}\nPrend en charge les services onion éphémères : {}.\nPrend en charge l’authentification client : {}.\nPrend en charge la nouvelle génération d’adresses .onion : {}.", "update_error_check_error": "Impossible de vérifier l’existence d’une mise à jour : peut-être n’êtes-vous pas connecté à Tor ou le site Web d’OnionShare est-il hors service ?", diff --git a/desktop/src/onionshare/resources/locale/ga.json b/desktop/src/onionshare/resources/locale/ga.json index 76e9d64a..621234ae 100644 --- a/desktop/src/onionshare/resources/locale/ga.json +++ b/desktop/src/onionshare/resources/locale/ga.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Stop an Mód Glactha ({} fágtha)", "gui_receive_stop_server_autostop_timer_tooltip": "Amadóir uathstoptha caite {}", "gui_copy_url": "Cóipeáil an Seoladh", - "gui_copy_hidservauth": "Cóipeáil HidServAuth", "gui_downloads": "Stair Íoslódála", "gui_no_downloads": "Níl aon rud íoslódáilte agat fós", "gui_canceled": "Curtha ar ceal", "gui_copied_url_title": "Cóipeáladh an Seoladh OnionShare", "gui_copied_url": "Cóipeáladh an seoladh OnionShare go dtí an ghearrthaisce", - "gui_copied_hidservauth_title": "Cóipeáladh HidServAuth", - "gui_copied_hidservauth": "Cóipeáladh an líne HidServAuth go dtí an ghearrthaisce", "gui_please_wait": "Ag tosú... Cliceáil lena chur ar ceal.", "gui_download_upload_progress_complete": "%[%, {0:s} caite.", "gui_download_upload_progress_starting": "{0:s}, %p% (á áireamh)", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Socruithe", "gui_settings_whats_this": "Cad é seo", "gui_settings_stealth_option": "Úsáid údarú cliaint", - "gui_settings_stealth_hidservauth_string": "Toisc gur shábháil tú d'eochair phríobháideach, anois is féidir leat cliceáil chun an HidServAuth a chóipeáil.", "gui_settings_autoupdate_label": "Lorg nuashonruithe", "gui_settings_autoupdate_option": "Cuir in iúl dom nuair a bheidh leagan nua ar fáil", "gui_settings_autoupdate_timestamp": "Seiceáilte: {}", diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/src/onionshare/resources/locale/gl.json index 11848ca3..8dfa398e 100644 --- a/desktop/src/onionshare/resources/locale/gl.json +++ b/desktop/src/onionshare/resources/locale/gl.json @@ -24,12 +24,9 @@ "gui_receive_stop_server_autostop_timer": "Deter o modo Recepción ({} restante)", "gui_receive_flatpak_data_dir": "Debido a que instalaches OnionShare usando Flatpk, tes que gardar os ficheiros nun cartafol dentro de ~/OnionShare.", "gui_copy_url": "Copiar enderezo", - "gui_copy_hidservauth": "Copiar HidServAuth", "gui_canceled": "Cancelado", "gui_copied_url_title": "Enderezo de OnionShare copiado", "gui_copied_url": "Enderezo OnionShare copiado ó portapapeis", - "gui_copied_hidservauth_title": "HidServAuth copiado", - "gui_copied_hidservauth": "Liña HidServAuth copiada ó portapapeis", "gui_show_url_qr_code": "Mostrar código QR", "gui_qr_code_dialog_title": "Código QR OnionShare", "gui_waiting_to_start": "Programado para comezar en {}. Fai clic para cancelar.", diff --git a/desktop/src/onionshare/resources/locale/gu.json b/desktop/src/onionshare/resources/locale/gu.json index 15c7790d..fc95952c 100644 --- a/desktop/src/onionshare/resources/locale/gu.json +++ b/desktop/src/onionshare/resources/locale/gu.json @@ -45,14 +45,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -70,7 +67,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/he.json b/desktop/src/onionshare/resources/locale/he.json index c0965d19..9a765db7 100644 --- a/desktop/src/onionshare/resources/locale/he.json +++ b/desktop/src/onionshare/resources/locale/he.json @@ -47,14 +47,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "העתק כתובת", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "מבוטל", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -72,7 +69,6 @@ "gui_settings_window_title": "הגדרות", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "בדיקה לאיתור גרסה חדשה", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json index 9cfc310d..a5594ac4 100644 --- a/desktop/src/onionshare/resources/locale/hi.json +++ b/desktop/src/onionshare/resources/locale/hi.json @@ -36,12 +36,9 @@ "gui_receive_stop_server_autostop_timer": "रिसीव मोड बंद करें ({} remaining)", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "पता कॉपी करें", - "gui_copy_hidservauth": "HidServAuth कॉपी करें", "gui_canceled": "रद्द हो गया", "gui_copied_url_title": "OnionShare पता कॉपी हो गया", "gui_copied_url": "OnionShare पता क्लिपबोर्ड में कॉपी हो गया", - "gui_copied_hidservauth_title": "HidServAuth कॉपी हो गया", - "gui_copied_hidservauth": "HidServAuth लाइन क्लिपबोर्ड में कॉपी हो गया", "gui_please_wait": "शुरू हो रहा है... रद्द करने के लिए क्लिक करें।", "version_string": "", "gui_quit_title": "इतनी तेज़ी से नहीं", @@ -56,7 +53,6 @@ "gui_settings_window_title": "सेटिंग्स", "gui_settings_whats_this": "यह क्या है", "gui_settings_stealth_option": "क्लाइंट सत्यापन उपयोग करें", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "नए संस्करण की जांच करें", "gui_settings_autoupdate_option": "जब कोई नया संस्करण आए तो मुझे सूचित करें", "gui_settings_autoupdate_timestamp": "अंतिम जांच: {}", diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/src/onionshare/resources/locale/hr.json index 6c399c89..d5afd66a 100644 --- a/desktop/src/onionshare/resources/locale/hr.json +++ b/desktop/src/onionshare/resources/locale/hr.json @@ -22,12 +22,9 @@ "gui_receive_stop_server": "Zaustavi modus primanja", "gui_receive_stop_server_autostop_timer": "Zaustavi modus primanja ({} preostalo)", "gui_copy_url": "Kopiraj adresu", - "gui_copy_hidservauth": "Kopiraj HidServAuth", "gui_canceled": "Prekinuto", "gui_copied_url_title": "OnionShare adresa je kopirana", "gui_copied_url": "OnionShare adresa je kopirana u međuspremnik", - "gui_copied_hidservauth_title": "HidServAuth kopirano", - "gui_copied_hidservauth": "HidServAuth redak je kopiran u međuspremnik", "gui_waiting_to_start": "Planirano pokretanje za {}. Pritisni za prekid.", "gui_please_wait": "Pokretanje … Pritisni za prekid.", "gui_quit_title": "Ne tako brzo", @@ -42,7 +39,6 @@ "gui_settings_window_title": "Postavke", "gui_settings_whats_this": "Što je ovo?", "gui_settings_stealth_option": "Koristi autorizaciju klijenta", - "gui_settings_stealth_hidservauth_string": "Budući da je privatni ključ spremljen za ponovnu upotrebu, znači da sada možeš kopirati tvoj HidServAuth.", "gui_settings_autoupdate_label": "Traži nove verzije", "gui_settings_autoupdate_option": "Obavijesti me o novim verzijama", "gui_settings_autoupdate_timestamp": "Zadnja provjera: {}", diff --git a/desktop/src/onionshare/resources/locale/hu.json b/desktop/src/onionshare/resources/locale/hu.json index 7d0f6766..370c2d63 100644 --- a/desktop/src/onionshare/resources/locale/hu.json +++ b/desktop/src/onionshare/resources/locale/hu.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Fogadó mód leállítása ({} van hátra)", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "Cím másolása", - "gui_copy_hidservauth": "HidServAuth másolása", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "Megszakítva", "gui_copied_url_title": "OnionShare-cím másolva", "gui_copied_url": "OnionShare-cím a vágólapra másolva", - "gui_copied_hidservauth_title": "HidServAuth másolva", - "gui_copied_hidservauth": "HidServAuth-sor a vágólapra másolva", "gui_please_wait": "Indítás... Kattints a megszakításhoz.", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Beállítások", "gui_settings_whats_this": "Mi ez?", "gui_settings_stealth_option": "Kliens-hitelesítés használata", - "gui_settings_stealth_hidservauth_string": "Mivel elmentetted a titkos kulcsodat, mostantól kattintással másolhatod a HivServAuth-odat.", "gui_settings_autoupdate_label": "Új verzió keresése", "gui_settings_autoupdate_option": "Értesítést kérek, ha új verzió érhető el", "gui_settings_autoupdate_timestamp": "Utoljára ellenőrizve: {}", diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/src/onionshare/resources/locale/id.json index 44adac8b..42f61c75 100644 --- a/desktop/src/onionshare/resources/locale/id.json +++ b/desktop/src/onionshare/resources/locale/id.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Menghentikan Mode Menerima ({}d tersisa)", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "Salin Alamat", - "gui_copy_hidservauth": "Salin HidServAuth", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "Dibatalkan", "gui_copied_url_title": "Alamat OnionShare disalin", "gui_copied_url": "Alamat OnionShare disalin ke papan klip", - "gui_copied_hidservauth_title": "HidServAuth disalin", - "gui_copied_hidservauth": "Baris HidServAuth disalin ke papan klip", "gui_please_wait": "Memulai... Klik untuk membatalkan.", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Pengaturan", "gui_settings_whats_this": "Apakah ini?", "gui_settings_stealth_option": "Gunakan otorisasi klien", - "gui_settings_stealth_hidservauth_string": "Telah menyimpan kunci privat Anda untuk digunakan kembali, berarti Anda dapat klik untuk menyalin HidServAuth Anda.", "gui_settings_autoupdate_label": "Periksa versi terbaru", "gui_settings_autoupdate_option": "Beritahu saya ketika versi baru tersedia", "gui_settings_autoupdate_timestamp": "Terakhir diperiksa: {}", diff --git a/desktop/src/onionshare/resources/locale/is.json b/desktop/src/onionshare/resources/locale/is.json index 039b12f7..d8896bb3 100644 --- a/desktop/src/onionshare/resources/locale/is.json +++ b/desktop/src/onionshare/resources/locale/is.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Hætta í móttökuham ({} eftir)", "gui_receive_stop_server_autostop_timer_tooltip": "Sjálfvirk niðurtalning endar {}", "gui_copy_url": "Afrita vistfang", - "gui_copy_hidservauth": "Afrita HidServAuth", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "Hætt við", "gui_copied_url_title": "Afritaði OnionShare-vistfang", "gui_copied_url": "OnionShare-vistfang afritað á klippispjald", - "gui_copied_hidservauth_title": "Afritaði HidServAuth", - "gui_copied_hidservauth": "HidServAuth-lína afrituð á klippispjald", "gui_please_wait": "Ræsi... Smelltu til að hætta við.", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Stillingar", "gui_settings_whats_this": "Hvað er þetta?", "gui_settings_stealth_option": "Nota auðkenningu biðlaraforrits", - "gui_settings_stealth_hidservauth_string": "Ef þú hefur vistað einkalykil til endurnotkunar, þýðir að þú getur nú smellt til að afrita HidServAuth.", "gui_settings_autoupdate_label": "Athuga með nýja útgáfu", "gui_settings_autoupdate_option": "Láta vita þegar ný útgáfa er tiltæk", "gui_settings_autoupdate_timestamp": "Síðast athugað: {}", diff --git a/desktop/src/onionshare/resources/locale/it.json b/desktop/src/onionshare/resources/locale/it.json index 1adee18b..f48fd618 100644 --- a/desktop/src/onionshare/resources/locale/it.json +++ b/desktop/src/onionshare/resources/locale/it.json @@ -48,11 +48,8 @@ "gui_receive_stop_server": "Arresta modalità Ricezione", "gui_receive_stop_server_autostop_timer": "Interrompi la ricezione ({} rimanenti)", "gui_receive_stop_server_autostop_timer_tooltip": "Il timer termina tra {}", - "gui_copy_hidservauth": "Copia HidServAuth", "gui_no_downloads": "Ancora nessun Download", "gui_copied_url_title": "Indirizzo OnionShare copiato", - "gui_copied_hidservauth_title": "HidServAuth copiato", - "gui_copied_hidservauth": "Linea HidServAuth copiata negli appunti", "gui_download_upload_progress_complete": "%p%, {0:s} trascorsi.", "gui_download_upload_progress_starting": "{0:s}, %p% (calcolato)", "gui_download_upload_progress_eta": "{0:s}, Terminando in: {1:s}, %p%", @@ -69,7 +66,6 @@ "gui_settings_whats_this": "Cos'è questo?", "help_receive": "Ricevi le condivisioni invece di inviarle", "gui_settings_stealth_option": "Usa l'autorizzazione client (legacy)", - "gui_settings_stealth_hidservauth_string": "Avendo salvato la tua chiave privata per il riutilizzo, puoi cliccare per copiare il tuo HidServAuth.", "gui_settings_autoupdate_label": "Verifica se c'è una nuova versione", "gui_settings_autoupdate_option": "Avvisami quando è disponibile una nuova versione", "gui_settings_autoupdate_timestamp": "Ultimo controllo: {}", diff --git a/desktop/src/onionshare/resources/locale/ja.json b/desktop/src/onionshare/resources/locale/ja.json index 4235ff87..1ed6883f 100644 --- a/desktop/src/onionshare/resources/locale/ja.json +++ b/desktop/src/onionshare/resources/locale/ja.json @@ -47,14 +47,11 @@ "gui_receive_stop_server_autostop_timer": "受信モードを停止(残り {} 秒)", "gui_receive_stop_server_autostop_timer_tooltip": "{}に自動停止します", "gui_copy_url": "アドレスをコピー", - "gui_copy_hidservauth": "HidServAuthをコピー", "gui_downloads": "ダウンロード履歴", "gui_no_downloads": "まだダウンロードがありません", "gui_canceled": "キャンセルされました", "gui_copied_url_title": "OnionShareのアドレスをコピーしました", "gui_copied_url": "OnionShareのアドレスをクリップボードへコピーしました", - "gui_copied_hidservauth_title": "HidServAuthをコピーしました", - "gui_copied_hidservauth": "HidServAuthの行をクリップボードへコピーしました", "gui_please_wait": "実行中… クリックでキャンセルします。", "gui_download_upload_progress_complete": "%p%、 経過時間 ({0:s})。", "gui_download_upload_progress_starting": "{0:s}, %p% (計算中)", @@ -72,7 +69,6 @@ "gui_settings_window_title": "設定", "gui_settings_whats_this": "これは何ですか?", "gui_settings_stealth_option": "クライアント認証を使用", - "gui_settings_stealth_hidservauth_string": "秘密鍵を保存したので、クリックしてHidServAuthをコピーできます。", "gui_settings_autoupdate_label": "更新バージョンの有無をチェックする", "gui_settings_autoupdate_option": "更新通知を起動します", "gui_settings_autoupdate_timestamp": "前回にチェックした時: {}", diff --git a/desktop/src/onionshare/resources/locale/ka.json b/desktop/src/onionshare/resources/locale/ka.json index 9c41ed9f..5de442f4 100644 --- a/desktop/src/onionshare/resources/locale/ka.json +++ b/desktop/src/onionshare/resources/locale/ka.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/km.json b/desktop/src/onionshare/resources/locale/km.json index 44dfde5a..f27aa52c 100644 --- a/desktop/src/onionshare/resources/locale/km.json +++ b/desktop/src/onionshare/resources/locale/km.json @@ -21,12 +21,9 @@ "gui_receive_stop_server": "", "gui_receive_stop_server_autostop_timer": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_waiting_to_start": "", "gui_please_wait": "", "gui_quit_title": "", @@ -41,7 +38,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/ko.json b/desktop/src/onionshare/resources/locale/ko.json index adda3a69..a57f8ba8 100644 --- a/desktop/src/onionshare/resources/locale/ko.json +++ b/desktop/src/onionshare/resources/locale/ko.json @@ -45,14 +45,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "취소 된", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -70,7 +67,6 @@ "gui_settings_window_title": "설정", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/lg.json b/desktop/src/onionshare/resources/locale/lg.json index 96b5a0d1..f72c18c6 100644 --- a/desktop/src/onionshare/resources/locale/lg.json +++ b/desktop/src/onionshare/resources/locale/lg.json @@ -45,14 +45,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -70,7 +67,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/src/onionshare/resources/locale/lt.json index b34bb52a..3c8a54ca 100644 --- a/desktop/src/onionshare/resources/locale/lt.json +++ b/desktop/src/onionshare/resources/locale/lt.json @@ -22,12 +22,9 @@ "gui_receive_stop_server": "Išjungti gavimo veikseną", "gui_receive_stop_server_autostop_timer": "Išjungti gavimo veikseną (Liko {})", "gui_copy_url": "Kopijuoti adresą", - "gui_copy_hidservauth": "Kopijuoti HidServAuth", "gui_canceled": "Atsisakyta", "gui_copied_url_title": "OnionShare adresas nukopijuotas", "gui_copied_url": "OnionShare adresas nukopijuotas į iškarpinę", - "gui_copied_hidservauth_title": "HidServAuth nukopijuota", - "gui_copied_hidservauth": "HidServAuth eilutė nukopijuota į iškarpinę", "gui_waiting_to_start": "", "gui_please_wait": "Pradedama… Spustelėkite norėdami atsisakyti.", "error_rate_limit": "", @@ -37,7 +34,6 @@ "gui_settings_window_title": "Nustatymai", "gui_settings_whats_this": "Kas tai?", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "Tikrinti, ar yra nauja versija", "gui_settings_autoupdate_option": "Pranešti, kai bus prieinama nauja versija", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/mk.json b/desktop/src/onionshare/resources/locale/mk.json index b389c2a0..a605df67 100644 --- a/desktop/src/onionshare/resources/locale/mk.json +++ b/desktop/src/onionshare/resources/locale/mk.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Поставки", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/ms.json b/desktop/src/onionshare/resources/locale/ms.json index 8fda843a..3b9c9a5c 100644 --- a/desktop/src/onionshare/resources/locale/ms.json +++ b/desktop/src/onionshare/resources/locale/ms.json @@ -36,12 +36,9 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "version_string": "", "gui_quit_title": "", @@ -56,7 +53,6 @@ "gui_settings_window_title": "Tetapan", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/nb_NO.json b/desktop/src/onionshare/resources/locale/nb_NO.json index 54db60df..6273c2f2 100644 --- a/desktop/src/onionshare/resources/locale/nb_NO.json +++ b/desktop/src/onionshare/resources/locale/nb_NO.json @@ -45,13 +45,10 @@ "gui_receive_stop_server_autostop_timer": "Stopp mottaksmodus ({} gjenstår)", "gui_receive_stop_server_autostop_timer_tooltip": "Tidsavbruddsuret går ut {}", "gui_copy_url": "Kopier nettadresse", - "gui_copy_hidservauth": "Kopier HidServAuth", "gui_downloads": "Nedlastingshistorikk", "gui_no_downloads": "Ingen nedlastinger enda.", "gui_canceled": "Avbrutt", "gui_copied_url_title": "Kopierte OnionShare-adressen", - "gui_copied_hidservauth_title": "Kopierte HidServAuth", - "gui_copied_hidservauth": "HidServAuth-linje kopiert til utklippstavle", "gui_please_wait": "Starter… Klikk for å avbryte.", "gui_download_upload_progress_complete": "%p%, {0:s} forløpt.", "gui_download_upload_progress_starting": "{0:s}, %p% (regner ut)", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Innstillinger", "gui_settings_whats_this": "Hva er dette?", "gui_settings_stealth_option": "Bruk klientidentifisering", - "gui_settings_stealth_hidservauth_string": "Siden du har lagret din private nøkkel for gjenbruk, kan du nå klikke for å kopiere din HidServAuth-linje.", "gui_settings_autoupdate_label": "Se etter ny versjon", "gui_settings_autoupdate_option": "Gi meg beskjed når en ny versjon er tilgjengelig", "gui_settings_autoupdate_timestamp": "Sist sjekket: {}", diff --git a/desktop/src/onionshare/resources/locale/nl.json b/desktop/src/onionshare/resources/locale/nl.json index 2b5ced73..b7c129e1 100644 --- a/desktop/src/onionshare/resources/locale/nl.json +++ b/desktop/src/onionshare/resources/locale/nl.json @@ -31,11 +31,9 @@ "gui_delete": "Verwijder", "gui_choose_items": "Kies", "gui_copy_url": "Kopieer URL", - "gui_copy_hidservauth": "Kopieer HidServAuth", "gui_downloads": "Download Geschiedenis", "gui_canceled": "Afgebroken", "gui_copied_url": "OnionShare adres gekopieerd naar klembord", - "gui_copied_hidservauth": "HidServAuth regel gekopieerd naar klembord", "gui_please_wait": "Aan het starten... Klik om te annuleren.", "gui_download_upload_progress_complete": "%p%, {0:s} verstreken.", "gui_download_upload_progress_starting": "{0:s}, %p% (berekenen)", @@ -116,11 +114,9 @@ "gui_receive_stop_server_autostop_timer_tooltip": "Auto-stop timer stopt bij {}", "gui_no_downloads": "Nog Geen Downloads", "gui_copied_url_title": "Gekopieerd OnionShare Adres", - "gui_copied_hidservauth_title": "HidServAuth gekopieerd", "gui_quit_title": "Niet zo snel", "gui_receive_quit_warning": "Je bent in het proces van bestanden ontvangen. Weet je zeker dat je OnionShare af wilt sluiten?", "gui_settings_whats_this": "1Wat is dit?2", - "gui_settings_stealth_hidservauth_string": "Je privésleutel is voor hergebruik opgeslagen. Je kunt nu klikken om je HidServAuth te kopiëren.", "gui_settings_general_label": "Algemene instellingen", "gui_settings_tor_bridges": "Tor bridge ondersteuning", "gui_settings_tor_bridges_no_bridges_radio_option": "Gebruik geen bridges", diff --git a/desktop/src/onionshare/resources/locale/pa.json b/desktop/src/onionshare/resources/locale/pa.json index 165e297b..f48df060 100644 --- a/desktop/src/onionshare/resources/locale/pa.json +++ b/desktop/src/onionshare/resources/locale/pa.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/src/onionshare/resources/locale/pl.json index b44e5e13..d143dadd 100644 --- a/desktop/src/onionshare/resources/locale/pl.json +++ b/desktop/src/onionshare/resources/locale/pl.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Zatrzymaj tryb odbierania (pozostało {})", "gui_receive_stop_server_autostop_timer_tooltip": "Czas upływa za {}", "gui_copy_url": "Kopiuj adres załącznika", - "gui_copy_hidservauth": "Kopiuj HidServAuth", "gui_downloads": "Historia pobierania", "gui_no_downloads": "Nie pobrano jeszcze niczego", "gui_canceled": "Anulowano", "gui_copied_url_title": "Skopiowano adres URL OnionShare", "gui_copied_url": "Adres URL OnionShare został skopiowany do schowka", - "gui_copied_hidservauth_title": "Skopiowano HidServAuth", - "gui_copied_hidservauth": "Linijka HidServAuth została skopiowana do schowka", "gui_please_wait": "Rozpoczynam... Kliknij, aby zatrzymać.", "gui_download_upload_progress_complete": "%p%, {0:s} upłynęło.", "gui_download_upload_progress_starting": "{0:s}, %p% (obliczam)", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Ustawienia", "gui_settings_whats_this": "Co to jest?", "gui_settings_stealth_option": "Użyj autoryzacji klienta", - "gui_settings_stealth_hidservauth_string": "Po zapisaniu klucza prywatnego do ponownego użycia, możesz teraz kliknąć, aby skopiować HidServAuth.", "gui_settings_autoupdate_label": "Sprawdź nową wersję", "gui_settings_autoupdate_option": "Poinformuj mnie, kiedy nowa wersja programu będzie dostępna", "gui_settings_autoupdate_timestamp": "Ostatnie sprawdzenie aktualizacji: {}", diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/src/onionshare/resources/locale/pt_BR.json index 2f261bc3..5f8f5698 100644 --- a/desktop/src/onionshare/resources/locale/pt_BR.json +++ b/desktop/src/onionshare/resources/locale/pt_BR.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Parar o Modo Recepção ({} para terminar)", "gui_receive_stop_server_autostop_timer_tooltip": "O cronômetro automático termina às {}", "gui_copy_url": "Copiar endereço", - "gui_copy_hidservauth": "Copiar HidServAuth", "gui_downloads": "Histórico de download", "gui_no_downloads": "Nenhum download por enquanto", "gui_canceled": "Cancelado", "gui_copied_url_title": "O endereço OnionShare foi copiado", "gui_copied_url": "O endereço OnionShare foi copiado para a área de transferência", - "gui_copied_hidservauth_title": "O HidServAuth foi copiado", - "gui_copied_hidservauth": "A linha HidServAuth foi copiada na área de transferência", "gui_please_wait": "Começando... Clique para cancelar.", "gui_download_upload_progress_complete": "%p%, {0:s} decorridos.", "gui_download_upload_progress_starting": "{0:s}, %p% (calculando)", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Configurações", "gui_settings_whats_this": "O que é isso?", "gui_settings_stealth_option": "Usar autorização de cliente", - "gui_settings_stealth_hidservauth_string": "Após salvar a sua chave privada para reutilização, você pode clicar para copiar o seu HidServAuth.", "gui_settings_autoupdate_label": "Procurar por uma nova versão", "gui_settings_autoupdate_option": "Notificar-me quando uma nova versão estiver disponível", "gui_settings_autoupdate_timestamp": "Última verificação: {}", diff --git a/desktop/src/onionshare/resources/locale/pt_PT.json b/desktop/src/onionshare/resources/locale/pt_PT.json index 44c5c067..96627344 100644 --- a/desktop/src/onionshare/resources/locale/pt_PT.json +++ b/desktop/src/onionshare/resources/locale/pt_PT.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Parar Modo de Receber ({} restantes)", "gui_receive_stop_server_autostop_timer_tooltip": "O cronómetro automático de parar a partilha termina em {}", "gui_copy_url": "Copiar Endereço", - "gui_copy_hidservauth": "Copiar HidServAuth", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "Cancelado", "gui_copied_url_title": "Endereço OnionShare Copiado", "gui_copied_url": "O endereço OnionShare foi copiado para área de transferência", - "gui_copied_hidservauth_title": "HidServAuth Copiado", - "gui_copied_hidservauth": "Linha HidServAuth copiada para a área de transferência", "gui_please_wait": "A iniciar… Clique para cancelar.", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Configurações", "gui_settings_whats_this": "O que é isto?", "gui_settings_stealth_option": "Utilizar autorização de cliente", - "gui_settings_stealth_hidservauth_string": "Depois de guardar a sua chave privada para reutilização, pode clicar para copiar o seu HidServAuth.", "gui_settings_autoupdate_label": "Procurar por nova versão", "gui_settings_autoupdate_option": "Notificar-me quando estiver disponível uma nova versão", "gui_settings_autoupdate_timestamp": "Última verificação: {}", diff --git a/desktop/src/onionshare/resources/locale/ro.json b/desktop/src/onionshare/resources/locale/ro.json index d4e43f04..914a247a 100644 --- a/desktop/src/onionshare/resources/locale/ro.json +++ b/desktop/src/onionshare/resources/locale/ro.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "Opriți modul de primire (au rămas {})", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "Copiere adresă", - "gui_copy_hidservauth": "Copiere HidServAuth", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "Anulat", "gui_copied_url_title": "Adresă OnionShare copiată", "gui_copied_url": "Adresa OnionShare a fost copiată în memoria clipboard", - "gui_copied_hidservauth_title": "Am copiat HidServAuth", - "gui_copied_hidservauth": "Linia HidServAuth a fost copiată în clipboard", "gui_please_wait": "Începem ... Faceți clic pentru a anula.", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "Setari", "gui_settings_whats_this": "Ce este asta?", "gui_settings_stealth_option": "Utilizați autorizarea clientului", - "gui_settings_stealth_hidservauth_string": "După ce v-ați salvat cheia privată pentru reutilizare, înseamnă că puteți face clic acum pentru a copia HidServAuth.", "gui_settings_autoupdate_label": "Verificați dacă există o versiune nouă", "gui_settings_autoupdate_option": "Anunțați-mă când este disponibilă o nouă versiune", "gui_settings_autoupdate_timestamp": "Ultima verificare: {}", diff --git a/desktop/src/onionshare/resources/locale/ru.json b/desktop/src/onionshare/resources/locale/ru.json index 95484e8b..b83249e0 100644 --- a/desktop/src/onionshare/resources/locale/ru.json +++ b/desktop/src/onionshare/resources/locale/ru.json @@ -66,12 +66,9 @@ "gui_receive_stop_server": "Выключить режим получения", "gui_receive_stop_server_autostop_timer": "Выключить Режим Получения (осталось {})", "gui_receive_stop_server_autostop_timer_tooltip": "Время таймера истекает в {}", - "gui_copy_hidservauth": "Скопировать строку HidServAuth", "gui_downloads": "История скачиваний", "gui_no_downloads": "Скачиваний пока нет ", "gui_copied_url_title": "Адрес OnionShare скопирован", - "gui_copied_hidservauth_title": "Строка HidServAuth скопирована", - "gui_copied_hidservauth": "Строка HidServAuth скопирована в буфер обмена", "gui_please_wait": "Запуск... Для отмены нажмите здесь.", "gui_download_upload_progress_complete": "%p%, прошло {0:s}.", "gui_download_upload_progress_starting": "{0:s}, %p% (вычисляем)", @@ -86,7 +83,6 @@ "error_ephemeral_not_supported": "Для работы OnionShare необходимы как минимум версии Tor 0.2.7.1 и библиотеки python3-stem 1.4.0.", "gui_settings_whats_this": "Что это?", "gui_settings_stealth_option": "Использовать авторизацию клиента", - "gui_settings_stealth_hidservauth_string": "Сохранили Ваш приватный ключ для повторного использования.\nНажмите сюда, чтобы скопировать строку HidServAuth.", "gui_settings_autoupdate_label": "Проверить наличие новой версии", "gui_settings_autoupdate_option": "Уведомить меня, когда будет доступна новая версия", "gui_settings_autoupdate_timestamp": "Последняя проверка: {}", diff --git a/desktop/src/onionshare/resources/locale/si.json b/desktop/src/onionshare/resources/locale/si.json index b55cde27..6d6477cc 100644 --- a/desktop/src/onionshare/resources/locale/si.json +++ b/desktop/src/onionshare/resources/locale/si.json @@ -24,12 +24,9 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_flatpak_data_dir": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_show_url_qr_code": "", "gui_qr_code_dialog_title": "", "gui_waiting_to_start": "", diff --git a/desktop/src/onionshare/resources/locale/sk.json b/desktop/src/onionshare/resources/locale/sk.json index a3690db3..b489e808 100644 --- a/desktop/src/onionshare/resources/locale/sk.json +++ b/desktop/src/onionshare/resources/locale/sk.json @@ -24,12 +24,9 @@ "gui_receive_stop_server_autostop_timer": "Zastaviť režim prijímania (zostáva {})", "gui_receive_flatpak_data_dir": "Pretože ste nainštalovali OnionShare pomocou Flatpak, musíte uložiť súbory do priečinka v ~/OnionShare.", "gui_copy_url": "Kopírovať adresu", - "gui_copy_hidservauth": "Kopírovať HidServAuth", "gui_canceled": "Zrušené", "gui_copied_url_title": "Skopírovaná OnionShare adresa", "gui_copied_url": "OnionShare adresa bola skopírovaná do schránky", - "gui_copied_hidservauth_title": "Skopírovaný HidServAuth", - "gui_copied_hidservauth": "HidServAuth riadok bol skopírovaný do schránky", "gui_show_url_qr_code": "Zobraziť QR kód", "gui_qr_code_dialog_title": "OnionShare QR kód", "gui_qr_code_description": "Naskenujte tento QR kód pomocou čítačky QR, napríklad fotoaparátom na telefóne, aby ste mohli jednoduchšie zdieľať adresu OnionShare s niekým.", diff --git a/desktop/src/onionshare/resources/locale/sl.json b/desktop/src/onionshare/resources/locale/sl.json index 70e04baa..c5867e7b 100644 --- a/desktop/src/onionshare/resources/locale/sl.json +++ b/desktop/src/onionshare/resources/locale/sl.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "Odpovedan", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/sn.json b/desktop/src/onionshare/resources/locale/sn.json index 4ee1a03b..af8c4ff8 100644 --- a/desktop/src/onionshare/resources/locale/sn.json +++ b/desktop/src/onionshare/resources/locale/sn.json @@ -47,14 +47,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -72,7 +69,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/sr_Latn.json b/desktop/src/onionshare/resources/locale/sr_Latn.json index d94fe024..f862a53b 100644 --- a/desktop/src/onionshare/resources/locale/sr_Latn.json +++ b/desktop/src/onionshare/resources/locale/sr_Latn.json @@ -22,12 +22,9 @@ "gui_receive_stop_server": "Prekini režim primanja", "gui_receive_stop_server_autostop_timer": "Prekini režim primanja ({} preostalo)", "gui_copy_url": "Kopiraj adresu", - "gui_copy_hidservauth": "Kopiraj HidServAuth", "gui_canceled": "Obustavljeno", "gui_copied_url_title": "Kopirana OnionShare adresa", "gui_copied_url": "OnionShare adresa kopirana u privremenu memoriju", - "gui_copied_hidservauth_title": "Kopiran HidServAuth", - "gui_copied_hidservauth": "HidServAuth linija kopirana u privremenu memoriju", "gui_waiting_to_start": "Planirano da počne u {}. Klikni da obustaviš.", "gui_please_wait": "Počinje… Klikni da obustaviš.", "gui_quit_title": "Ne tako brzo", @@ -42,7 +39,6 @@ "gui_settings_window_title": "Podešavanja", "gui_settings_whats_this": "Šta je ovo?", "gui_settings_stealth_option": "Koristi klijent autorizaciju", - "gui_settings_stealth_hidservauth_string": "Ako si sačuvao svoj privatni ključ za ponovnu upotrenu, sada možeš kliknuti da iskopiraš svoj HidServAuth.", "gui_settings_autoupdate_label": "Proveri da li postoji nova verzija", "gui_settings_autoupdate_option": "Obavesti me kada nova verzija bude na raspolaganju", "gui_settings_autoupdate_timestamp": "Poslednja provera: {}", diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/src/onionshare/resources/locale/sv.json index 9e07d2c4..f0e412fa 100644 --- a/desktop/src/onionshare/resources/locale/sv.json +++ b/desktop/src/onionshare/resources/locale/sv.json @@ -45,14 +45,11 @@ "gui_receive_stop_server_autostop_timer": "Stoppa mottagningsläge ({} kvarstår)", "gui_receive_stop_server_autostop_timer_tooltip": "Automatiska stopp-tidtagaren avslutar vid {}", "gui_copy_url": "Kopiera adress", - "gui_copy_hidservauth": "Kopiera HidServAuth", "gui_downloads": "Nedladdningshistorik", "gui_no_downloads": "Inga Nedladdningar Än", "gui_canceled": "Avbruten", "gui_copied_url_title": "OnionShare-adress kopierad", "gui_copied_url": "OnionShare-adress kopierad till urklipp", - "gui_copied_hidservauth_title": "HidServAuth kopierad", - "gui_copied_hidservauth": "HidServAuth-rad kopierad till urklipp", "gui_please_wait": "Startar... klicka för att avbryta.", "gui_download_upload_progress_complete": "%p%, {0:s} förflutit.", "gui_download_upload_progress_starting": "{0:s}, %p% (beräknar)", @@ -70,7 +67,6 @@ "gui_settings_window_title": "Inställningar", "gui_settings_whats_this": "Vad är det här?", "gui_settings_stealth_option": "Använd klientauktorisering", - "gui_settings_stealth_hidservauth_string": "Efter att ha sparat din privata nyckel för återanvändning, innebär det att du nu kan klicka för att kopiera din HidServAuth.", "gui_settings_autoupdate_label": "Sök efter ny version", "gui_settings_autoupdate_option": "Meddela mig när en ny version är tillgänglig", "gui_settings_autoupdate_timestamp": "Senast kontrollerad: {}", diff --git a/desktop/src/onionshare/resources/locale/sw.json b/desktop/src/onionshare/resources/locale/sw.json index 74707f3c..45fe5eff 100644 --- a/desktop/src/onionshare/resources/locale/sw.json +++ b/desktop/src/onionshare/resources/locale/sw.json @@ -21,12 +21,9 @@ "gui_receive_stop_server": "", "gui_receive_stop_server_autostop_timer": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_waiting_to_start": "", "gui_please_wait": "", "gui_quit_title": "", @@ -41,7 +38,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/te.json b/desktop/src/onionshare/resources/locale/te.json index 541625f8..65593d46 100644 --- a/desktop/src/onionshare/resources/locale/te.json +++ b/desktop/src/onionshare/resources/locale/te.json @@ -21,12 +21,9 @@ "gui_receive_stop_server": "స్వీకరించు రీతిని ఆపివేయి", "gui_receive_stop_server_autostop_timer": "స్వీకరించు రీతిని ఆపివేయి ({} మిగిలినది)", "gui_copy_url": "జాల చిరునామాను నకలు తీయి", - "gui_copy_hidservauth": "HidServAuth నకలు తీయి", "gui_canceled": "రద్దు చేయబడినది", "gui_copied_url_title": "OnionShare జాల చిరునామా నకలు తీయబడినది", "gui_copied_url": "OnionShare జాల చిరునామా క్లిప్‌బోర్డునకు నకలు తీయబడినది", - "gui_copied_hidservauth_title": "HidServAuth నకలు తీయబడినది", - "gui_copied_hidservauth": "HidServAuth పంక్తి క్లిప్‌బోర్డునకు నకలు తీయబడినది", "gui_waiting_to_start": "ఇంకా {}లో మొదలగునట్లు అమర్చబడినది. రద్దుచేయుటకై ఇక్కడ నొక్కు.", "gui_please_wait": "మొదలుపెట్టబడుతుంది... రద్దు చేయుటకై ఇక్కడ నొక్కు.", "gui_quit_title": "అంత త్వరగా కాదు", @@ -41,7 +38,6 @@ "gui_settings_window_title": "అమరికలు", "gui_settings_whats_this": "ఇది ఏమిటి?", "gui_settings_stealth_option": "ఉపయోక్త ధ్రువీకరణను వాడు", - "gui_settings_stealth_hidservauth_string": "మరల వాడుటకై మీ ప్రైవేటు కీని భద్రపరచడం వలన మీరు ఇక్కడ నొక్కడం ద్వారా మీ HidServAuth నకలు తీయవచ్చు.", "gui_settings_autoupdate_label": "కొత్త రూపాంతరం కోసం సరిచూడు", "gui_settings_autoupdate_option": "కొత్త రూపాంతరం వస్తే నాకు తెలియచేయి", "gui_settings_autoupdate_timestamp": "ఇంతకుముందు సరిచూసినది: {}", diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json index d3d09298..b5baca21 100644 --- a/desktop/src/onionshare/resources/locale/tr.json +++ b/desktop/src/onionshare/resources/locale/tr.json @@ -41,10 +41,7 @@ "gui_receive_stop_server": "Alma Modunu Durdur", "gui_receive_stop_server_autostop_timer": "Alma Modunu Durdur ({} kaldı)", "gui_receive_stop_server_autostop_timer_tooltip": "Otomatik durdurma zamanlayıcısı {} sonra biter", - "gui_copy_hidservauth": "HidServAuth Kopyala", "gui_copied_url_title": "OnionShare Adresi Kopyalandı", - "gui_copied_hidservauth_title": "HidServAuth Kopyalandı", - "gui_copied_hidservauth": "HidServAuth satırı panoya kopyalandı", "version_string": "OnionShare {0:s} | https://onionshare.org/", "gui_quit_title": "Çok hızlı değil", "gui_share_quit_warning": "Dosya gönderiyorsunuz. OnionShare uygulamasından çıkmak istediğinize emin misiniz?", @@ -57,7 +54,6 @@ "gui_settings_window_title": "Ayarlar", "gui_settings_whats_this": "Bu nedir?", "gui_settings_stealth_option": "İstemci kimlik doğrulaması kullanılsın", - "gui_settings_stealth_hidservauth_string": "Özel anahtarınızı yeniden kullanmak üzere kaydettiğinizden, tıklayarak HidServAuth verinizi kopyalabilirsiniz.", "gui_settings_autoupdate_label": "Yeni sürümü denetle", "gui_settings_autoupdate_option": "Yeni bir sürüm olduğunda bana haber ver", "gui_settings_autoupdate_timestamp": "Son denetleme: {}", diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json index 0cd71586..b6546107 100644 --- a/desktop/src/onionshare/resources/locale/uk.json +++ b/desktop/src/onionshare/resources/locale/uk.json @@ -21,12 +21,9 @@ "gui_receive_stop_server": "Зупинити режим отримання", "gui_receive_stop_server_autostop_timer": "Зупинити режим отримання ({} залишилось)", "gui_copy_url": "Копіювати Адресу", - "gui_copy_hidservauth": "Копіювати HidServAuth", "gui_canceled": "Скасовано", "gui_copied_url_title": "Адресу OnionShare копійовано", "gui_copied_url": "Адресу OnionShare копійовано до буферу обміну", - "gui_copied_hidservauth_title": "Скопійовано HidServAuth", - "gui_copied_hidservauth": "Рядок HidServAuth копійовано до буфера обміну", "gui_waiting_to_start": "Заплановано почати за {}. Натисніть для скасування.", "gui_please_wait": "Початок... Натисніть для скасування.", "gui_quit_title": "Не так швидко", @@ -41,7 +38,6 @@ "gui_settings_window_title": "Налаштування", "gui_settings_whats_this": "Що це?", "gui_settings_stealth_option": "Використовувати авторизацію клієнта", - "gui_settings_stealth_hidservauth_string": "Зберігши свій закритий ключ для повторного користування, ви можете копіювати HidServAuth.", "gui_settings_autoupdate_label": "Перевірити наявність оновлень", "gui_settings_autoupdate_option": "Повідомляти про наявність нової версії", "gui_settings_autoupdate_timestamp": "Попередня перевірка: {}", diff --git a/desktop/src/onionshare/resources/locale/wo.json b/desktop/src/onionshare/resources/locale/wo.json index 89d732b3..4b3afd9a 100644 --- a/desktop/src/onionshare/resources/locale/wo.json +++ b/desktop/src/onionshare/resources/locale/wo.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/src/onionshare/resources/locale/yo.json index 96b5a0d1..f72c18c6 100644 --- a/desktop/src/onionshare/resources/locale/yo.json +++ b/desktop/src/onionshare/resources/locale/yo.json @@ -45,14 +45,11 @@ "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", - "gui_copy_hidservauth": "", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "", "gui_copied_url_title": "", "gui_copied_url": "", - "gui_copied_hidservauth_title": "", - "gui_copied_hidservauth": "", "gui_please_wait": "", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -70,7 +67,6 @@ "gui_settings_window_title": "", "gui_settings_whats_this": "", "gui_settings_stealth_option": "", - "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "", "gui_settings_autoupdate_option": "", "gui_settings_autoupdate_timestamp": "", diff --git a/desktop/src/onionshare/resources/locale/zh_Hans.json b/desktop/src/onionshare/resources/locale/zh_Hans.json index a37d0c58..9f8aa7d6 100644 --- a/desktop/src/onionshare/resources/locale/zh_Hans.json +++ b/desktop/src/onionshare/resources/locale/zh_Hans.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "停止接收模式(还剩 {} 秒)", "gui_receive_stop_server_autostop_timer_tooltip": "在{}自动停止", "gui_copy_url": "复制地址", - "gui_copy_hidservauth": "复制 HidServAuth", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "已取消", "gui_copied_url_title": "已复制 OnionShare 地址", "gui_copied_url": "OnionShare 地址已复制到剪贴板", - "gui_copied_hidservauth_title": "已复制 HidServAuth", - "gui_copied_hidservauth": "HidServAuth 行已复制到剪贴板", "gui_please_wait": "正在开启……点击以取消。", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "设置", "gui_settings_whats_this": "这是什么?", "gui_settings_stealth_option": "使用客户端认证", - "gui_settings_stealth_hidservauth_string": "已保存您的私钥用于重复使用,这意味着您现在可以点击以复制您的 HidServAuth。", "gui_settings_autoupdate_label": "检查新版本", "gui_settings_autoupdate_option": "新版本可用时通知我", "gui_settings_autoupdate_timestamp": "上次检查更新时间:{}", diff --git a/desktop/src/onionshare/resources/locale/zh_Hant.json b/desktop/src/onionshare/resources/locale/zh_Hant.json index b6158c59..654892b0 100644 --- a/desktop/src/onionshare/resources/locale/zh_Hant.json +++ b/desktop/src/onionshare/resources/locale/zh_Hant.json @@ -44,14 +44,11 @@ "gui_receive_stop_server_autostop_timer": "停止接收模式 (剩餘{}秒)", "gui_receive_stop_server_autostop_timer_tooltip": "計數器將在{}停止", "gui_copy_url": "複製地址", - "gui_copy_hidservauth": "複製HidServAuth", "gui_downloads": "", "gui_no_downloads": "", "gui_canceled": "已取消", "gui_copied_url_title": "已複製OnionShare地址", "gui_copied_url": "OnionShare地址已複製到剪貼簿", - "gui_copied_hidservauth_title": "已複製HidServAuth", - "gui_copied_hidservauth": "HidServAuth已複製到剪貼簿", "gui_please_wait": "啟動中...點擊以取消。", "gui_download_upload_progress_complete": "", "gui_download_upload_progress_starting": "", @@ -69,7 +66,6 @@ "gui_settings_window_title": "設定", "gui_settings_whats_this": "這是什麼?", "gui_settings_stealth_option": "使用客戶端認證", - "gui_settings_stealth_hidservauth_string": "已經將您的私鑰存起來以便使用,代表您現在可以點選以複製您的HidSerAuth。", "gui_settings_autoupdate_label": "檢查新版本", "gui_settings_autoupdate_option": "當有新版本的時候提醒我", "gui_settings_autoupdate_timestamp": "上一次檢查時間: {}", diff --git a/desktop/src/onionshare/settings_dialog.py b/desktop/src/onionshare/settings_dialog.py index 0c48f336..190ae35d 100644 --- a/desktop/src/onionshare/settings_dialog.py +++ b/desktop/src/onionshare/settings_dialog.py @@ -695,10 +695,8 @@ class SettingsDialog(QtWidgets.QDialog): strings._("settings_test_success").format( onion.tor_version, onion.supports_ephemeral, - onion.supports_v2_onions, onion.supports_stealth, onion.supports_v3_onions, - onion.supports_stealth_v3, ), ) diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index 0cbccc51..f545002b 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -239,13 +239,21 @@ class Mode(QtWidgets.QWidget): self.start_onion_thread() def start_onion_thread(self, obtain_onion_early=False): - self.common.log("Mode", "start_server", "Starting an onion thread") - self.obtain_onion_early = obtain_onion_early - self.onion_thread = OnionThread(self) - self.onion_thread.success.connect(self.starting_server_step2.emit) - self.onion_thread.success_early.connect(self.starting_server_early.emit) - self.onion_thread.error.connect(self.starting_server_error.emit) - self.onion_thread.start() + # If we tried to start with Client Auth and our Tor is too old to support it, + # bail out early + if not self.app.onion.supports_stealth and self.settings.get("general", "client_auth"): + self.stop_server() + self.start_server_error( + strings._("gui_server_doesnt_support_stealth") + ) + else: + self.common.log("Mode", "start_server", "Starting an onion thread") + self.obtain_onion_early = obtain_onion_early + self.onion_thread = OnionThread(self) + self.onion_thread.success.connect(self.starting_server_step2.emit) + self.onion_thread.success_early.connect(self.starting_server_early.emit) + self.onion_thread.error.connect(self.starting_server_error.emit) + self.onion_thread.start() def start_scheduled_service(self, obtain_onion_early=False): # We start a new OnionThread with the saved scheduled key from settings diff --git a/desktop/src/onionshare/tab/mode/mode_settings_widget.py b/desktop/src/onionshare/tab/mode/mode_settings_widget.py index e5b28511..c57d33ca 100644 --- a/desktop/src/onionshare/tab/mode/mode_settings_widget.py +++ b/desktop/src/onionshare/tab/mode/mode_settings_widget.py @@ -129,36 +129,14 @@ class ModeSettingsWidget(QtWidgets.QWidget): autostop_timer_layout.addWidget(self.autostop_timer_checkbox) autostop_timer_layout.addWidget(self.autostop_timer_widget) - # Legacy address - self.legacy_checkbox = QtWidgets.QCheckBox() - self.legacy_checkbox.clicked.connect(self.legacy_checkbox_clicked) - self.legacy_checkbox.clicked.connect(self.update_ui) - self.legacy_checkbox.setText(strings._("mode_settings_legacy_checkbox")) - if self.settings.get("general", "legacy"): - self.legacy_checkbox.setCheckState(QtCore.Qt.Checked) - else: - self.legacy_checkbox.setCheckState(QtCore.Qt.Unchecked) - - # Client auth (v2) - self.client_auth_checkbox = QtWidgets.QCheckBox() - self.client_auth_checkbox.clicked.connect(self.client_auth_checkbox_clicked) - self.client_auth_checkbox.clicked.connect(self.update_ui) - self.client_auth_checkbox.setText( - strings._("mode_settings_client_auth_checkbox") - ) - if self.settings.get("general", "client_auth"): - self.client_auth_checkbox.setCheckState(QtCore.Qt.Checked) - else: - self.client_auth_checkbox.setCheckState(QtCore.Qt.Unchecked) - # Client auth (v3) self.client_auth_v3_checkbox = QtWidgets.QCheckBox() self.client_auth_v3_checkbox.clicked.connect(self.client_auth_v3_checkbox_clicked) self.client_auth_v3_checkbox.clicked.connect(self.update_ui) self.client_auth_v3_checkbox.setText( - strings._("mode_settings_client_auth_checkbox") + strings._("mode_settings_client_auth_v3_checkbox") ) - if self.settings.get("general", "client_auth_v3"): + if self.settings.get("general", "client_auth"): self.client_auth_v3_checkbox.setCheckState(QtCore.Qt.Checked) else: self.client_auth_v3_checkbox.setCheckState(QtCore.Qt.Unchecked) @@ -177,8 +155,6 @@ class ModeSettingsWidget(QtWidgets.QWidget): advanced_layout.addLayout(title_layout) advanced_layout.addLayout(autostart_timer_layout) advanced_layout.addLayout(autostop_timer_layout) - advanced_layout.addWidget(self.legacy_checkbox) - advanced_layout.addWidget(self.client_auth_checkbox) advanced_layout.addWidget(self.client_auth_v3_checkbox) self.advanced_widget = QtWidgets.QWidget() self.advanced_widget.setLayout(advanced_layout) @@ -205,33 +181,6 @@ class ModeSettingsWidget(QtWidgets.QWidget): strings._("mode_settings_advanced_toggle_show") ) - # v2 client auth is only a legacy option - if self.client_auth_checkbox.isChecked(): - self.legacy_checkbox.setChecked(True) - self.legacy_checkbox.setEnabled(False) - self.client_auth_v3_checkbox.hide() - else: - self.legacy_checkbox.setEnabled(True) - if self.legacy_checkbox.isChecked(): - self.client_auth_checkbox.show() - self.client_auth_v3_checkbox.hide() - else: - self.client_auth_checkbox.hide() - self.client_auth_v3_checkbox.show() - - # If the server has been started in the past, prevent changing legacy option - if self.settings.get("onion", "private_key"): - if self.legacy_checkbox.isChecked(): - # If using legacy, disable legacy and client auth options - self.legacy_checkbox.setEnabled(False) - self.client_auth_checkbox.setEnabled(False) - self.client_auth_v3_checkbox.hide() - else: - # If using v3, hide legacy and client auth options, show v3 client auth option - self.legacy_checkbox.hide() - self.client_auth_checkbox.hide() - self.client_auth_v3_checkbox.show() - def title_editing_finished(self): if self.title_lineedit.text().strip() == "": self.title_lineedit.setText("") @@ -293,17 +242,9 @@ class ModeSettingsWidget(QtWidgets.QWidget): else: self.autostop_timer_widget.hide() - def legacy_checkbox_clicked(self): - self.settings.set("general", "legacy", self.legacy_checkbox.isChecked()) - - def client_auth_checkbox_clicked(self): - self.settings.set( - "general", "client_auth", self.client_auth_checkbox.isChecked() - ) - def client_auth_v3_checkbox_clicked(self): self.settings.set( - "general", "client_auth_v3", self.client_auth_v3_checkbox.isChecked() + "general", "client_auth", self.client_auth_v3_checkbox.isChecked() ) def toggle_advanced_clicked(self): diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py index f3138e90..8527f16f 100644 --- a/desktop/src/onionshare/tab/server_status.py +++ b/desktop/src/onionshare/tab/server_status.py @@ -38,7 +38,6 @@ class ServerStatus(QtWidgets.QWidget): server_canceled = QtCore.Signal() button_clicked = QtCore.Signal() url_copied = QtCore.Signal() - hidservauth_copied = QtCore.Signal() client_auth_v3_copied = QtCore.Signal() STATUS_STOPPED = 0 @@ -96,9 +95,6 @@ class ServerStatus(QtWidgets.QWidget): self.common.gui.css["server_status_url_buttons"] ) self.copy_url_button.clicked.connect(self.copy_url) - self.copy_hidservauth_button = QtWidgets.QPushButton( - strings._("gui_copy_hidservauth") - ) self.copy_client_auth_v3_button = QtWidgets.QPushButton( strings._("gui_copy_client_auth_v3") ) @@ -113,10 +109,6 @@ class ServerStatus(QtWidgets.QWidget): self.common.gui.css["server_status_url_buttons"] ) - self.copy_hidservauth_button.setStyleSheet( - self.common.gui.css["server_status_url_buttons"] - ) - self.copy_hidservauth_button.clicked.connect(self.copy_hidservauth) self.copy_client_auth_v3_button.setStyleSheet( self.common.gui.css["server_status_url_buttons"] ) @@ -124,7 +116,6 @@ class ServerStatus(QtWidgets.QWidget): url_buttons_layout = QtWidgets.QHBoxLayout() url_buttons_layout.addWidget(self.copy_url_button) url_buttons_layout.addWidget(self.show_url_qr_code_button) - url_buttons_layout.addWidget(self.copy_hidservauth_button) url_buttons_layout.addWidget(self.copy_client_auth_v3_button) url_buttons_layout.addStretch() @@ -223,11 +214,6 @@ class ServerStatus(QtWidgets.QWidget): self.show_url_qr_code_button.show() if self.settings.get("general", "client_auth"): - self.copy_hidservauth_button.show() - else: - self.copy_hidservauth_button.hide() - - if self.settings.get("general", "client_auth_v3"): self.copy_client_auth_v3_button.show() else: self.copy_client_auth_v3_button.hide() @@ -260,7 +246,6 @@ class ServerStatus(QtWidgets.QWidget): self.url_description.hide() self.url.hide() self.copy_url_button.hide() - self.copy_hidservauth_button.hide() self.copy_client_auth_v3_button.hide() self.show_url_qr_code_button.hide() @@ -460,21 +445,12 @@ class ServerStatus(QtWidgets.QWidget): self.url_copied.emit() - def copy_hidservauth(self): - """ - Copy the HidServAuth line to the clipboard. - """ - clipboard = self.qtapp.clipboard() - clipboard.setText(self.app.auth_string) - - self.hidservauth_copied.emit() - def copy_client_auth_v3(self): """ Copy the ClientAuth v3 private key line to the clipboard. """ clipboard = self.qtapp.clipboard() - clipboard.setText(self.app.auth_string_v3) + clipboard.setText(self.app.auth_string) self.client_auth_v3_copied.emit() diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py index 3a2cbfd6..5e7555d5 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/src/onionshare/tab/tab.py @@ -275,7 +275,6 @@ class Tab(QtWidgets.QWidget): self.share_mode.start_server_finished.connect(self.clear_message) self.share_mode.server_status.button_clicked.connect(self.clear_message) self.share_mode.server_status.url_copied.connect(self.copy_url) - self.share_mode.server_status.hidservauth_copied.connect(self.copy_hidservauth) self.share_mode.server_status.client_auth_v3_copied.connect(self.copy_client_auth_v3) self.change_title.emit(self.tab_id, strings._("gui_tab_name_share")) @@ -311,9 +310,6 @@ class Tab(QtWidgets.QWidget): self.receive_mode.start_server_finished.connect(self.clear_message) self.receive_mode.server_status.button_clicked.connect(self.clear_message) self.receive_mode.server_status.url_copied.connect(self.copy_url) - self.receive_mode.server_status.hidservauth_copied.connect( - self.copy_hidservauth - ) self.receive_mode.server_status.client_auth_v3_copied.connect( self.copy_client_auth_v3 ) @@ -351,9 +347,6 @@ class Tab(QtWidgets.QWidget): self.website_mode.start_server_finished.connect(self.clear_message) self.website_mode.server_status.button_clicked.connect(self.clear_message) self.website_mode.server_status.url_copied.connect(self.copy_url) - self.website_mode.server_status.hidservauth_copied.connect( - self.copy_hidservauth - ) self.website_mode.server_status.client_auth_v3_copied.connect( self.copy_client_auth_v3 ) @@ -389,7 +382,6 @@ class Tab(QtWidgets.QWidget): self.chat_mode.start_server_finished.connect(self.clear_message) self.chat_mode.server_status.button_clicked.connect(self.clear_message) self.chat_mode.server_status.url_copied.connect(self.copy_url) - self.chat_mode.server_status.hidservauth_copied.connect(self.copy_hidservauth) self.chat_mode.server_status.client_auth_v3_copied.connect(self.copy_client_auth_v3) self.change_title.emit(self.tab_id, strings._("gui_tab_name_chat")) @@ -602,16 +594,6 @@ class Tab(QtWidgets.QWidget): strings._("gui_copied_url_title"), strings._("gui_copied_url") ) - def copy_hidservauth(self): - """ - When the stealth onion service HidServAuth gets copied to the clipboard, display this in the status bar. - """ - self.common.log("Tab", "copy_hidservauth") - self.system_tray.showMessage( - strings._("gui_copied_hidservauth_title"), - strings._("gui_copied_hidservauth"), - ) - def copy_client_auth_v3(self): """ When the v3 onion service ClientAuth private key gets copied to the clipboard, display this in the status bar. From ea4466262d3734834e1162f395b3d70d8c794557 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 6 May 2021 14:35:11 +1000 Subject: [PATCH 03/55] Gracefully avoid sending the client_auth_v3 argument to Stem's create_ephemeral_hidden_service() if the version of Stem we're on does not yet support it --- cli/onionshare_cli/onion.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index e8df3342..0dde7070 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -663,14 +663,23 @@ class Onion(object): client_auth_v3_pub_key = None try: - res = self.c.create_ephemeral_hidden_service( - {80: port}, - await_publication=await_publication, - basic_auth=None, - key_type=key_type, - key_content=key_content, - client_auth_v3=client_auth_v3_pub_key, - ) + if not self.supports_stealth: + res = self.c.create_ephemeral_hidden_service( + {80: port}, + await_publication=await_publication, + basic_auth=None, + key_type=key_type, + key_content=key_content, + ) + else: + res = self.c.create_ephemeral_hidden_service( + {80: port}, + await_publication=await_publication, + basic_auth=None, + key_type=key_type, + key_content=key_content, + client_auth_v3=client_auth_v3_pub_key, + ) except ProtocolError as e: print("Tor error: {}".format(e.args[0])) From cde46b676e89a27e7f5cec97ab67c020bde601a6 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 6 May 2021 15:06:36 +1000 Subject: [PATCH 04/55] Allow setting a 'fake' ClientAuth in local-only mode - which will help with tests --- cli/onionshare_cli/onionshare.py | 2 ++ desktop/src/onionshare/tab/mode/__init__.py | 21 +++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/cli/onionshare_cli/onionshare.py b/cli/onionshare_cli/onionshare.py index bd94100f..d055b639 100644 --- a/cli/onionshare_cli/onionshare.py +++ b/cli/onionshare_cli/onionshare.py @@ -74,6 +74,8 @@ class OnionShare(object): if self.local_only: self.onion_host = f"127.0.0.1:{self.port}" + if mode_settings.get("general", "client_auth"): + self.auth_string = "E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA" return self.onion_host = self.onion.start_onion_service( diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index 66f9279a..2b78ffd0 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -241,12 +241,15 @@ class Mode(QtWidgets.QWidget): def start_onion_thread(self, obtain_onion_early=False): # If we tried to start with Client Auth and our Tor is too old to support it, # bail out early - if not self.app.onion.supports_stealth and self.settings.get("general", "client_auth"): - self.stop_server() - self.start_server_error( - strings._("gui_server_doesnt_support_stealth") - ) - else: + can_start = True + if ( + not self.server_status.local_only + and not self.app.onion.supports_stealth + and self.settings.get("general", "client_auth") + ): + can_start = False + + if can_start: self.common.log("Mode", "start_server", "Starting an onion thread") self.obtain_onion_early = obtain_onion_early self.onion_thread = OnionThread(self) @@ -255,6 +258,12 @@ class Mode(QtWidgets.QWidget): self.onion_thread.error.connect(self.starting_server_error.emit) self.onion_thread.start() + else: + self.stop_server() + self.start_server_error( + strings._("gui_server_doesnt_support_stealth") + ) + def start_scheduled_service(self, obtain_onion_early=False): # We start a new OnionThread with the saved scheduled key from settings self.common.settings.load() From 50d5cf57402a59821208b0740a2b8bb7072a24a9 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 6 May 2021 15:24:19 +1000 Subject: [PATCH 05/55] GUI tests for v3 Client Auth (albeit only in local mode, so kind of stubbed --- desktop/tests/gui_base_test.py | 10 +++++++++- desktop/tests/test_gui_share.py | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py index c6a5da2f..da61f4e5 100644 --- a/desktop/tests/gui_base_test.py +++ b/desktop/tests/gui_base_test.py @@ -371,7 +371,7 @@ class GuiBaseTest(unittest.TestCase): self.assertFalse(tab.get_mode().server_status.url.isVisible()) self.assertFalse(tab.get_mode().server_status.url_description.isVisible()) self.assertFalse( - tab.get_mode().server_status.copy_hidservauth_button.isVisible() + tab.get_mode().server_status.copy_client_auth_v3_button.isVisible() ) def web_server_is_stopped(self, tab): @@ -452,6 +452,14 @@ class GuiBaseTest(unittest.TestCase): # We should have timed out now self.assertEqual(tab.get_mode().server_status.status, 0) + def clientauth_is_visible(self, tab): + self.assertTrue( + tab.get_mode().server_status.copy_client_auth_v3_button.isVisible() + ) + tab.get_mode().server_status.copy_client_auth_v3_button.click() + clipboard = tab.common.gui.qtapp.clipboard() + self.assertEqual(clipboard.text(), "E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA") + # Grouped tests follow from here def run_all_common_setup_tests(self): diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py index 380d63f6..08924ca6 100644 --- a/desktop/tests/test_gui_share.py +++ b/desktop/tests/test_gui_share.py @@ -608,3 +608,19 @@ class TestShare(GuiBaseTest): self.hit_401(tab) self.close_all_tabs() + + def test_client_auth(self): + """ + Test the ClientAuth is received from the backend and that + the widget is visible in the UI + """ + tab = self.new_share_tab() + tab.get_mode().mode_settings_widget.toggle_advanced_button.click() + tab.get_mode().mode_settings_widget.client_auth_v3_checkbox.click() + + self.run_all_common_setup_tests() + self.run_all_share_mode_setup_tests(tab) + self.run_all_share_mode_started_tests(tab) + self.clientauth_is_visible(tab) + + self.close_all_tabs() From c4cf9f08ec97051af0c8f40a25921ad8ba0d92f4 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 6 May 2021 18:02:40 +1000 Subject: [PATCH 06/55] Rename things with client_auth_v3_ in the name because there is only one type of client_auth now that v2 is gone. --- cli/onionshare_cli/mode_settings.py | 4 +-- cli/onionshare_cli/onion.py | 27 +++++++++---------- .../src/onionshare/resources/locale/en.json | 8 +++--- .../tab/mode/mode_settings_widget.py | 20 +++++++------- desktop/src/onionshare/tab/server_status.py | 24 ++++++++--------- desktop/src/onionshare/tab/tab.py | 23 ++++++++-------- desktop/tests/gui_base_test.py | 6 ++--- desktop/tests/test_gui_share.py | 7 ++--- 8 files changed, 60 insertions(+), 59 deletions(-) diff --git a/cli/onionshare_cli/mode_settings.py b/cli/onionshare_cli/mode_settings.py index 736b6c31..89ca00ea 100644 --- a/cli/onionshare_cli/mode_settings.py +++ b/cli/onionshare_cli/mode_settings.py @@ -39,8 +39,8 @@ class ModeSettings: "private_key": None, "hidservauth_string": None, "password": None, - "client_auth_v3_priv_key": None, - "client_auth_v3_pub_key": None, + "client_auth_priv_key": None, + "client_auth_pub_key": None, }, "persistent": {"mode": None, "enabled": False}, "general": { diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index 0dde7070..198f05c3 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -606,7 +606,6 @@ class Onion(object): # https://trac.torproject.org/projects/tor/ticket/28619 self.supports_v3_onions = self.tor_version >= Version("0.3.5.7") - def is_authenticated(self): """ Returns True if the Tor connection is still working, or False otherwise. @@ -648,19 +647,19 @@ class Onion(object): ) raise TorTooOldStealth() else: - if key_type == "NEW" or not mode_settings.get("onion", "client_auth_v3_priv_key"): + if key_type == "NEW" or not mode_settings.get("onion", "client_auth_priv_key"): # Generate a new key pair for Client Auth on new onions, or if # it's a persistent onion but for some reason we don't them - client_auth_v3_priv_key_raw = nacl.public.PrivateKey.generate() - client_auth_v3_priv_key = self.key_str(client_auth_v3_priv_key_raw) - client_auth_v3_pub_key = self.key_str(client_auth_v3_priv_key_raw.public_key) + client_auth_priv_key_raw = nacl.public.PrivateKey.generate() + client_auth_priv_key = self.key_str(client_auth_priv_key_raw) + client_auth_pub_key = self.key_str(client_auth_priv_key_raw.public_key) else: # These should have been saved in settings from the previous run of a persistent onion - client_auth_v3_priv_key = mode_settings.get("onion", "client_auth_v3_priv_key") - client_auth_v3_pub_key = mode_settings.get("onion", "client_auth_v3_pub_key") + client_auth_priv_key = mode_settings.get("onion", "client_auth_priv_key") + client_auth_pub_key = mode_settings.get("onion", "client_auth_pub_key") else: - client_auth_v3_priv_key = None - client_auth_v3_pub_key = None + client_auth_priv_key = None + client_auth_pub_key = None try: if not self.supports_stealth: @@ -678,7 +677,7 @@ class Onion(object): basic_auth=None, key_type=key_type, key_content=key_content, - client_auth_v3=client_auth_v3_pub_key, + client_auth_v3=client_auth_pub_key, ) except ProtocolError as e: @@ -703,14 +702,14 @@ class Onion(object): # same share at a later date), and the private key to the other user for # their Tor Browser. if mode_settings.get("general", "client_auth"): - mode_settings.set("onion", "client_auth_v3_priv_key", client_auth_v3_priv_key) - mode_settings.set("onion", "client_auth_v3_pub_key", client_auth_v3_pub_key) + mode_settings.set("onion", "client_auth_priv_key", client_auth_priv_key) + mode_settings.set("onion", "client_auth_pub_key", client_auth_pub_key) # If we were pasting the client auth directly into the filesystem behind a Tor client, # it would need to be in the format below. However, let's just set the private key # by itself, as this can be pasted directly into Tor Browser, which is likely to # be the most common use case. - # self.auth_string = f"{onion_host}:x25519:{client_auth_v3_priv_key}" - self.auth_string = client_auth_v3_priv_key + # self.auth_string = f"{onion_host}:x25519:{client_auth_priv_key}" + self.auth_string = client_auth_priv_key return onion_host diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index c6c202ea..3fdca5c8 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -24,12 +24,12 @@ "gui_receive_stop_server_autostop_timer": "Stop Receive Mode ({} remaining)", "gui_receive_flatpak_data_dir": "Because you installed OnionShare using Flatpak, you must save files to a folder in ~/OnionShare.", "gui_copy_url": "Copy Address", - "gui_copy_client_auth_v3": "Copy ClientAuth", + "gui_copy_client_auth": "Copy ClientAuth", "gui_canceled": "Canceled", "gui_copied_url_title": "Copied OnionShare Address", "gui_copied_url": "OnionShare address copied to clipboard", - "gui_copied_client_auth_v3_title": "Copied ClientAuth", - "gui_copied_client_auth_v3": "ClientAuth private key copied to clipboard", + "gui_copied_client_auth_title": "Copied ClientAuth", + "gui_copied_client_auth": "ClientAuth private key copied to clipboard", "gui_show_url_qr_code": "Show QR Code", "gui_qr_code_dialog_title": "OnionShare QR Code", "gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.", @@ -171,7 +171,7 @@ "mode_settings_public_checkbox": "Don't use a password", "mode_settings_autostart_timer_checkbox": "Start onion service at scheduled time", "mode_settings_autostop_timer_checkbox": "Stop onion service at scheduled time", - "mode_settings_client_auth_v3_checkbox": "Use client authorization", + "mode_settings_client_auth_checkbox": "Use client authorization", "mode_settings_share_autostop_sharing_checkbox": "Stop sharing after files have been sent (uncheck to allow downloading individual files)", "mode_settings_receive_data_dir_label": "Save files to", "mode_settings_receive_data_dir_browse_button": "Browse", diff --git a/desktop/src/onionshare/tab/mode/mode_settings_widget.py b/desktop/src/onionshare/tab/mode/mode_settings_widget.py index 0f1a7c28..5003e4ac 100644 --- a/desktop/src/onionshare/tab/mode/mode_settings_widget.py +++ b/desktop/src/onionshare/tab/mode/mode_settings_widget.py @@ -130,16 +130,16 @@ class ModeSettingsWidget(QtWidgets.QWidget): autostop_timer_layout.addWidget(self.autostop_timer_widget) # Client auth (v3) - self.client_auth_v3_checkbox = QtWidgets.QCheckBox() - self.client_auth_v3_checkbox.clicked.connect(self.client_auth_v3_checkbox_clicked) - self.client_auth_v3_checkbox.clicked.connect(self.update_ui) - self.client_auth_v3_checkbox.setText( - strings._("mode_settings_client_auth_v3_checkbox") + self.client_auth_checkbox = QtWidgets.QCheckBox() + self.client_auth_checkbox.clicked.connect(self.client_auth_checkbox_clicked) + self.client_auth_checkbox.clicked.connect(self.update_ui) + self.client_auth_checkbox.setText( + strings._("mode_settings_client_auth_checkbox") ) if self.settings.get("general", "client_auth"): - self.client_auth_v3_checkbox.setCheckState(QtCore.Qt.Checked) + self.client_auth_checkbox.setCheckState(QtCore.Qt.Checked) else: - self.client_auth_v3_checkbox.setCheckState(QtCore.Qt.Unchecked) + self.client_auth_checkbox.setCheckState(QtCore.Qt.Unchecked) # Toggle advanced settings self.toggle_advanced_button = QtWidgets.QPushButton() @@ -155,7 +155,7 @@ class ModeSettingsWidget(QtWidgets.QWidget): advanced_layout.addLayout(title_layout) advanced_layout.addLayout(autostart_timer_layout) advanced_layout.addLayout(autostop_timer_layout) - advanced_layout.addWidget(self.client_auth_v3_checkbox) + advanced_layout.addWidget(self.client_auth_checkbox) self.advanced_widget = QtWidgets.QWidget() self.advanced_widget.setLayout(advanced_layout) self.advanced_widget.hide() @@ -242,9 +242,9 @@ class ModeSettingsWidget(QtWidgets.QWidget): else: self.autostop_timer_widget.hide() - def client_auth_v3_checkbox_clicked(self): + def client_auth_checkbox_clicked(self): self.settings.set( - "general", "client_auth", self.client_auth_v3_checkbox.isChecked() + "general", "client_auth", self.client_auth_checkbox.isChecked() ) def toggle_advanced_clicked(self): diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py index f53af912..cb9bfd92 100644 --- a/desktop/src/onionshare/tab/server_status.py +++ b/desktop/src/onionshare/tab/server_status.py @@ -38,7 +38,7 @@ class ServerStatus(QtWidgets.QWidget): server_canceled = QtCore.Signal() button_clicked = QtCore.Signal() url_copied = QtCore.Signal() - client_auth_v3_copied = QtCore.Signal() + client_auth_copied = QtCore.Signal() STATUS_STOPPED = 0 STATUS_WORKING = 1 @@ -95,8 +95,8 @@ class ServerStatus(QtWidgets.QWidget): self.common.gui.css["server_status_url_buttons"] ) self.copy_url_button.clicked.connect(self.copy_url) - self.copy_client_auth_v3_button = QtWidgets.QPushButton( - strings._("gui_copy_client_auth_v3") + self.copy_client_auth_button = QtWidgets.QPushButton( + strings._("gui_copy_client_auth") ) self.show_url_qr_code_button = QtWidgets.QPushButton( strings._("gui_show_url_qr_code") @@ -109,14 +109,14 @@ class ServerStatus(QtWidgets.QWidget): self.common.gui.css["server_status_url_buttons"] ) - self.copy_client_auth_v3_button.setStyleSheet( + self.copy_client_auth_button.setStyleSheet( self.common.gui.css["server_status_url_buttons"] ) - self.copy_client_auth_v3_button.clicked.connect(self.copy_client_auth_v3) + self.copy_client_auth_button.clicked.connect(self.copy_client_auth) url_buttons_layout = QtWidgets.QHBoxLayout() url_buttons_layout.addWidget(self.copy_url_button) url_buttons_layout.addWidget(self.show_url_qr_code_button) - url_buttons_layout.addWidget(self.copy_client_auth_v3_button) + url_buttons_layout.addWidget(self.copy_client_auth_button) url_buttons_layout.addStretch() url_layout = QtWidgets.QVBoxLayout() @@ -214,9 +214,9 @@ class ServerStatus(QtWidgets.QWidget): self.show_url_qr_code_button.show() if self.settings.get("general", "client_auth"): - self.copy_client_auth_v3_button.show() + self.copy_client_auth_button.show() else: - self.copy_client_auth_v3_button.hide() + self.copy_client_auth_button.hide() def update(self): """ @@ -246,7 +246,7 @@ class ServerStatus(QtWidgets.QWidget): self.url_description.hide() self.url.hide() self.copy_url_button.hide() - self.copy_client_auth_v3_button.hide() + self.copy_client_auth_button.hide() self.show_url_qr_code_button.hide() self.mode_settings_widget.update_ui() @@ -445,14 +445,14 @@ class ServerStatus(QtWidgets.QWidget): self.url_copied.emit() - def copy_client_auth_v3(self): + def copy_client_auth(self): """ - Copy the ClientAuth v3 private key line to the clipboard. + Copy the ClientAuth private key line to the clipboard. """ clipboard = self.qtapp.clipboard() clipboard.setText(self.app.auth_string) - self.client_auth_v3_copied.emit() + self.client_auth_copied.emit() def get_url(self): """ diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py index 845fbf72..2d9b1a8c 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/src/onionshare/tab/tab.py @@ -275,7 +275,7 @@ class Tab(QtWidgets.QWidget): self.share_mode.start_server_finished.connect(self.clear_message) self.share_mode.server_status.button_clicked.connect(self.clear_message) self.share_mode.server_status.url_copied.connect(self.copy_url) - self.share_mode.server_status.client_auth_v3_copied.connect(self.copy_client_auth_v3) + self.share_mode.server_status.client_auth_copied.connect(self.copy_client_auth) self.change_title.emit(self.tab_id, strings._("gui_tab_name_share")) @@ -310,8 +310,8 @@ class Tab(QtWidgets.QWidget): self.receive_mode.start_server_finished.connect(self.clear_message) self.receive_mode.server_status.button_clicked.connect(self.clear_message) self.receive_mode.server_status.url_copied.connect(self.copy_url) - self.receive_mode.server_status.client_auth_v3_copied.connect( - self.copy_client_auth_v3 + self.receive_mode.server_status.client_auth_copied.connect( + self.copy_client_auth ) self.change_title.emit(self.tab_id, strings._("gui_tab_name_receive")) @@ -347,8 +347,8 @@ class Tab(QtWidgets.QWidget): self.website_mode.start_server_finished.connect(self.clear_message) self.website_mode.server_status.button_clicked.connect(self.clear_message) self.website_mode.server_status.url_copied.connect(self.copy_url) - self.website_mode.server_status.client_auth_v3_copied.connect( - self.copy_client_auth_v3 + self.website_mode.server_status.client_auth_copied.connect( + self.copy_client_auth ) self.change_title.emit(self.tab_id, strings._("gui_tab_name_website")) @@ -382,7 +382,7 @@ class Tab(QtWidgets.QWidget): self.chat_mode.start_server_finished.connect(self.clear_message) self.chat_mode.server_status.button_clicked.connect(self.clear_message) self.chat_mode.server_status.url_copied.connect(self.copy_url) - self.chat_mode.server_status.client_auth_v3_copied.connect(self.copy_client_auth_v3) + self.chat_mode.server_status.client_auth_copied.connect(self.copy_client_auth) self.change_title.emit(self.tab_id, strings._("gui_tab_name_chat")) @@ -597,14 +597,15 @@ class Tab(QtWidgets.QWidget): strings._("gui_copied_url_title"), strings._("gui_copied_url") ) - def copy_client_auth_v3(self): + def copy_client_auth(self): """ - When the v3 onion service ClientAuth private key gets copied to the clipboard, display this in the status bar. + When the onion service's ClientAuth private key gets copied to + the clipboard, display this in the status bar. """ - self.common.log("Tab", "copy_client_auth_v3") + self.common.log("Tab", "copy_client_auth") self.system_tray.showMessage( - strings._("gui_copied_client_auth_v3_title"), - strings._("gui_copied_client_auth_v3"), + strings._("gui_copied_client_auth_title"), + strings._("gui_copied_client_auth"), ) def clear_message(self): diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py index da61f4e5..86c88a10 100644 --- a/desktop/tests/gui_base_test.py +++ b/desktop/tests/gui_base_test.py @@ -371,7 +371,7 @@ class GuiBaseTest(unittest.TestCase): self.assertFalse(tab.get_mode().server_status.url.isVisible()) self.assertFalse(tab.get_mode().server_status.url_description.isVisible()) self.assertFalse( - tab.get_mode().server_status.copy_client_auth_v3_button.isVisible() + tab.get_mode().server_status.copy_client_auth_button.isVisible() ) def web_server_is_stopped(self, tab): @@ -454,9 +454,9 @@ class GuiBaseTest(unittest.TestCase): def clientauth_is_visible(self, tab): self.assertTrue( - tab.get_mode().server_status.copy_client_auth_v3_button.isVisible() + tab.get_mode().server_status.copy_client_auth_button.isVisible() ) - tab.get_mode().server_status.copy_client_auth_v3_button.click() + tab.get_mode().server_status.copy_client_auth_button.click() clipboard = tab.common.gui.qtapp.clipboard() self.assertEqual(clipboard.text(), "E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA") diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py index 08924ca6..e13519da 100644 --- a/desktop/tests/test_gui_share.py +++ b/desktop/tests/test_gui_share.py @@ -611,12 +611,13 @@ class TestShare(GuiBaseTest): def test_client_auth(self): """ - Test the ClientAuth is received from the backend and that - the widget is visible in the UI + Test the ClientAuth is received from the backend, + that the widget is visible in the UI and that the + clipboard contains the ClientAuth string """ tab = self.new_share_tab() tab.get_mode().mode_settings_widget.toggle_advanced_button.click() - tab.get_mode().mode_settings_widget.client_auth_v3_checkbox.click() + tab.get_mode().mode_settings_widget.client_auth_checkbox.click() self.run_all_common_setup_tests() self.run_all_share_mode_setup_tests(tab) From b242ea5bde77025aacf72fb01cf8defffc945d14 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Mon, 10 May 2021 12:34:35 +1000 Subject: [PATCH 07/55] Add comment to test function --- desktop/tests/gui_base_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py index 86c88a10..31a3b792 100644 --- a/desktop/tests/gui_base_test.py +++ b/desktop/tests/gui_base_test.py @@ -453,6 +453,7 @@ class GuiBaseTest(unittest.TestCase): self.assertEqual(tab.get_mode().server_status.status, 0) def clientauth_is_visible(self, tab): + """Test that the ClientAuth button is visible and that the clipboard contains its contents""" self.assertTrue( tab.get_mode().server_status.copy_client_auth_button.isVisible() ) From 64c7f4e5b85f74c2fd0d0cb0be91198b5ea23d56 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Mon, 31 May 2021 10:35:02 +1000 Subject: [PATCH 08/55] Make it impossible to cancel a share mid-startup, to avoid a thread segfault issue. Only autostart mode can cancel a share (after it is scheduled) --- desktop/src/onionshare/resources/locale/en.json | 2 +- desktop/src/onionshare/tab/mode/__init__.py | 8 -------- desktop/src/onionshare/tab/server_status.py | 2 +- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index a847264b..b61f714d 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -33,7 +33,7 @@ "gui_show_url_qr_code": "Show QR Code", "gui_qr_code_dialog_title": "OnionShare QR Code", "gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.", - "gui_please_wait": "Starting… Click to cancel.", + "gui_please_wait": "Starting…", "error_rate_limit": "Someone has made too many wrong attempts to guess your password, so OnionShare has stopped the server. Start sharing again and send the recipient a new address to share.", "zip_progress_bar_format": "Compressing: %p%", "gui_settings_window_title": "Settings", diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index 16944af8..dbdb4ce4 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -354,14 +354,6 @@ class Mode(QtWidgets.QWidget): self.app.onion.scheduled_key = None self.app.onion.scheduled_auth_cookie = None self.startup_thread.quit() - if self.onion_thread: - self.common.log("Mode", "cancel_server: quitting onion thread") - self.onion_thread.terminate() - self.onion_thread.wait() - if self.web_thread: - self.common.log("Mode", "cancel_server: quitting web thread") - self.web_thread.terminate() - self.web_thread.wait() self.stop_server() def cancel_server_custom(self): diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py index 7ca1af09..a830473e 100644 --- a/desktop/src/onionshare/tab/server_status.py +++ b/desktop/src/onionshare/tab/server_status.py @@ -379,7 +379,7 @@ class ServerStatus(QtWidgets.QWidget): self.start_server() elif self.status == self.STATUS_STARTED: self.stop_server() - elif self.status == self.STATUS_WORKING: + elif self.status == self.STATUS_WORKING and self.settings.get("general", "autostart_timer"): self.cancel_server() self.button_clicked.emit() From ead2825327e0e65f834b49cc438dc4f6b2a63c43 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 31 May 2021 10:01:10 -0700 Subject: [PATCH 09/55] Allow canceling share in Windows --- .../src/onionshare/resources/locale/en.json | 5 ++-- desktop/src/onionshare/tab/mode/__init__.py | 26 ++++++++++++++++--- desktop/src/onionshare/tab/server_status.py | 14 +++++++--- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index b61f714d..0eacc618 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -33,7 +33,8 @@ "gui_show_url_qr_code": "Show QR Code", "gui_qr_code_dialog_title": "OnionShare QR Code", "gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.", - "gui_please_wait": "Starting…", + "gui_please_wait_no_button": "Starting…", + "gui_please_wait": "Starting… Click to cancel.", "error_rate_limit": "Someone has made too many wrong attempts to guess your password, so OnionShare has stopped the server. Start sharing again and send the recipient a new address to share.", "zip_progress_bar_format": "Compressing: %p%", "gui_settings_window_title": "Settings", @@ -202,4 +203,4 @@ "error_port_not_available": "OnionShare port not available", "history_receive_read_message_button": "Read Message", "error_tor_protocol_error": "There was an error with Tor: {}" -} +} \ No newline at end of file diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index dbdb4ce4..683c2e73 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -158,9 +158,16 @@ class Mode(QtWidgets.QWidget): ) ) else: - self.server_status.server_button.setText( - strings._("gui_please_wait") - ) + if self.common.platform == "Windows" or self.settings.get( + "general", "autostart_timer" + ): + self.server_status.server_button.setText( + strings._("gui_please_wait") + ) + else: + self.server_status.server_button.setText( + strings._("gui_please_wait_no_button") + ) # If the auto-stop timer has stopped, stop the server if self.server_status.status == ServerStatus.STATUS_STARTED: @@ -354,6 +361,19 @@ class Mode(QtWidgets.QWidget): self.app.onion.scheduled_key = None self.app.onion.scheduled_auth_cookie = None self.startup_thread.quit() + + # Canceling only works in Windows + # https://github.com/micahflee/onionshare/issues/1371 + if self.common.platform == "Windows": + if self.onion_thread: + self.common.log("Mode", "cancel_server: quitting onion thread") + self.onion_thread.terminate() + self.onion_thread.wait() + if self.web_thread: + self.common.log("Mode", "cancel_server: quitting web thread") + self.web_thread.terminate() + self.web_thread.wait() + self.stop_server() def cancel_server_custom(self): diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py index a830473e..ba5ff165 100644 --- a/desktop/src/onionshare/tab/server_status.py +++ b/desktop/src/onionshare/tab/server_status.py @@ -306,13 +306,18 @@ class ServerStatus(QtWidgets.QWidget): ) ) else: - self.server_button.setText(strings._("gui_please_wait")) + if self.common.platform == "Windows": + self.server_button.setText(strings._("gui_please_wait")) + else: + self.server_button.setText( + strings._("gui_please_wait_no_button") + ) else: self.server_button.setStyleSheet( self.common.gui.css["server_status_button_working"] ) self.server_button.setEnabled(False) - self.server_button.setText(strings._("gui_please_wait")) + self.server_button.setText(strings._("gui_please_wait_no_button")) def server_button_clicked(self): """ @@ -379,7 +384,10 @@ class ServerStatus(QtWidgets.QWidget): self.start_server() elif self.status == self.STATUS_STARTED: self.stop_server() - elif self.status == self.STATUS_WORKING and self.settings.get("general", "autostart_timer"): + elif self.status == self.STATUS_WORKING and ( + self.common.platform == "Windows" + or self.settings.get("general", "autostart_timer") + ): self.cancel_server() self.button_clicked.emit() From 08d15fd3f11eb871dd124f0bb1dd1fefd263595a Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 31 May 2021 10:36:07 -0700 Subject: [PATCH 10/55] Update version strings, docs, and release.md for version 2.3.2 --- RELEASE.md | 3 ++- cli/onionshare_cli/resources/version.txt | 2 +- desktop/pyproject.toml | 2 +- .../src/org.onionshare.OnionShare.appdata.xml | 4 ++-- desktop/src/setup.py | 2 +- docs/gettext/.doctrees/advanced.doctree | Bin 30414 -> 30413 bytes docs/gettext/.doctrees/develop.doctree | Bin 37737 -> 37736 bytes docs/gettext/.doctrees/environment.pickle | Bin 37844 -> 37841 bytes docs/gettext/.doctrees/features.doctree | Bin 47170 -> 47169 bytes docs/gettext/.doctrees/help.doctree | Bin 7680 -> 7679 bytes docs/gettext/.doctrees/index.doctree | Bin 3440 -> 3439 bytes docs/gettext/.doctrees/install.doctree | Bin 20614 -> 20613 bytes docs/gettext/.doctrees/security.doctree | Bin 13527 -> 13526 bytes docs/gettext/.doctrees/tor.doctree | Bin 30115 -> 30114 bytes docs/gettext/advanced.pot | 2 +- docs/gettext/develop.pot | 2 +- docs/gettext/features.pot | 2 +- docs/gettext/help.pot | 2 +- docs/gettext/index.pot | 2 +- docs/gettext/install.pot | 2 +- docs/gettext/security.pot | 2 +- docs/gettext/sphinx.pot | 2 +- docs/gettext/tor.pot | 2 +- snap/snapcraft.yaml | 15 +++++++++------ 24 files changed, 25 insertions(+), 21 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index e69a8184..72cef7dd 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -14,7 +14,7 @@ Before making a release, you must update the version in these places: - [ ] `docs/source/conf.py` (`version` at the top, and the `versions` list too) - [ ] `snap/snapcraft.yaml` -If you update flask-socketio, ensure that you also update the [socket.io.min.js](https://github.com/micahflee/onionshare/blob/develop/cli/onionshare_cli/resources/static/js/socket.io.min.js) file to a version that is [supported](https://flask-socketio.readthedocs.io/en/latest/#version-compatibility) by the updated version of flask-socketio. +If you update `flask-socketio`, ensure that you also update the [socket.io.min.js](https://github.com/micahflee/onionshare/blob/develop/cli/onionshare_cli/resources/static/js/socket.io.min.js) file to a version that is [supported](https://flask-socketio.readthedocs.io/en/latest/#version-compatibility) by the updated version of `flask-socketio`. Use tor binaries from the latest Tor Browser: @@ -28,6 +28,7 @@ Update the documentation: Finalize localization: - [ ] Merge all the translations from weblate +- [ ] In `docs` run `poetry run ./check-weblate.py [API_KEY]` to see which translations are >90% in the app and docs - [ ] Edit `cli/onionshare_cli/settings.py`, make sure `self.available_locales` lists only locales that are >90% translated - [ ] Edit `docs/source/conf.py`, make sure `languages` lists only languages that are >90% translated - [ ] Edit `docs/build.sh` and make sure `LOCALES=` lists the same languages as above, in `docs/source/conf.py` diff --git a/cli/onionshare_cli/resources/version.txt b/cli/onionshare_cli/resources/version.txt index 4ba9db07..e7034819 100644 --- a/cli/onionshare_cli/resources/version.txt +++ b/cli/onionshare_cli/resources/version.txt @@ -1 +1 @@ -2.3.2.dev1 \ No newline at end of file +2.3.2 \ No newline at end of file diff --git a/desktop/pyproject.toml b/desktop/pyproject.toml index 3b31a1bd..a39aa94d 100644 --- a/desktop/pyproject.toml +++ b/desktop/pyproject.toml @@ -1,7 +1,7 @@ [tool.briefcase] project_name = "OnionShare" bundle = "org.onionshare" -version = "2.3.2.dev1" +version = "2.3.2" url = "https://onionshare.org" license = "GPLv3" author = 'Micah Lee' diff --git a/desktop/src/org.onionshare.OnionShare.appdata.xml b/desktop/src/org.onionshare.OnionShare.appdata.xml index 049609ee..5ae702ff 100644 --- a/desktop/src/org.onionshare.OnionShare.appdata.xml +++ b/desktop/src/org.onionshare.OnionShare.appdata.xml @@ -13,7 +13,7 @@ org.onionshare.OnionShare.desktop - https://raw.githubusercontent.com/micahflee/onionshare/master/docs/source/_static/screenshots/tabs.png + https://docs.onionshare.org/2.3.2/en/_images/tabs.png Types of services that OnionShare supports @@ -24,6 +24,6 @@ micah@micahflee.com - + diff --git a/desktop/src/setup.py b/desktop/src/setup.py index 82a5f98a..060fa93c 100644 --- a/desktop/src/setup.py +++ b/desktop/src/setup.py @@ -20,7 +20,7 @@ along with this program. If not, see . """ import setuptools -version = "2.3.1" +version = "2.3.2" setuptools.setup( name="onionshare", diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree index 0b23bda0803551455b26297b165afaaf77cd0ef1..29e035cc124c21ddbf593af42323fd53275cd012 100644 GIT binary patch delta 1242 zcmXAozl*0u490nPzqbk}BBJ7{dpidTBI3?Wl1YMMZEtfR%FVARcp_L|;U8e-s+AUs zSXi7KW8s07f?BAYSXf#MuC*YD`Qi)j`xcWtlYH{z=kx8S^KJL`h4;U?wR>SZg45UD zd}E%yxIK4LYR)iu3`V4ajYrXx3sEi2W<-rNfLvI}V8u^ZM@K zuEP*@#11Yevtt}x`cN88u+}1MbDdwfba2wUXlb)@iUp-v1&XcE$Vvr())RN%ISAYh zpz0*zj!>s)Lt;SJsdcor9=!PK7Sf1P2JmzV%n1dPMF#7fp$X6R;XR*jp?9m+rDe>7 zH4RBx$!44s$E4iXwR?|uAzA`xI%CU%m{_rcbnK;!Rx8H!(fuDEhT38rjr_#V66Na3 zI;#h1Y!hs~^3d%qz%ZORv?&kt@^wy^Zqu+qK^u!7zOjWodq!--R_F7XBAb$!m5D+=Wb9ajIPjN3nH!eC$yP zG@F#7Ea)t1uOwqyV}(&uU)L`m9R^Z=W@*VeI0F77Y!dxe50KL9$t?aP}14 z3LJeh1tXC=&}nOC($ZUsZVm2Z{X=qig(n%MxG%e*z*LL5kJ(_r;KAj+vzy14&)(AO z!8m~>O+`_$)T%U@vT5r{Q7Wu|^^TibCkP~K6epTe+cz;%nL3fDrS;ddpPvMbor?*# z+z`8ocDB(|@;4@BSYN&L+ZIL}#;tm@lRcxit~FzX?0%)paeeXf_XojOS!aqK3U0?< zM5x88Wj{uMnAQi^jt+vU8xJ6*{kEn&1iQN_C-HLgl(@cbHx9$_jdnvwi#ht%vUDJV nOg<(b?%;LRKG}tqaz{!G`)22voCC^ma zC}JT*2rH;q21y}Gw6U|cNO}xPCr3 zceuGIRP$`$hEb!nnpA-J7Nf!I@tNa;OERESLnQTz>P>qk>C#PR9ir>XQ;!a|L8VkF z`*|uh=FUaun8l$ar=;t``S*8Q=`(?pfg>K7t#f0urX^X%$!UG|^jEvBsc_0PX37=& z%nXg^=)I|CQuOuiGbcw|njJ@oE^H%)_l_~bjC$}fm2rLk+!u!%7ZE2lNI7EwQ&k>@ zCIT&q%DVCVkGsv7dUlgWosoU8=F(egy>qXdY0T7z?gz+OPCh6K+hLjQ*O^0>$NKDqq$!KO5GE;z$B zM;s%{2Wo10T9cgTx_;%t(H0hlN!D`sf_+pONot2kkzs)K_3_Iu9c_`SENudmt~f(_ z^%^vhrF3Y)>*1@v@3!FvJrp^aqx7sPkqovH!ZC8Oez^KYmO>V2q2i9Q$y970_HG&H#nIDMtw z-wH<_Q;|_-=n&~p!oTKDt#)x;|5iS{9Ilw_2($?is4G>F44kKH^O-+Ay?1i)^h5bz zBM(Ip{>XtNQv}hnPzI6g@nY*gd9>R+c4E(C_z3LkY!UwEidZ5>;_Jz4-(1>82+WSu zoCdm(cyv>r5z85@=lcGgKOFJUrOA4IbLi6#1k-4o;8@IDZo-& n)vT2*gRSfS<;f#PrOuX%iXdevsI$+}H8V@6P`Zq+Mxv diff --git a/docs/gettext/.doctrees/develop.doctree b/docs/gettext/.doctrees/develop.doctree index 45a2d587aa7b51b6c6b7ef5e72e29a7c3010b1aa..5a17cbfde225537007375325ff821408097df3ae 100644 GIT binary patch delta 1072 zcmWlYJ&T@26oz?TcO@XA#6n^qJ8?InF5-NgIUkjsjfJU#2ocWAnITw-7z6G`OhB*@ zn`hH#XA#6so>C)P_yhb6K`@A=y=Q;G%-r{VUGwDO?(c`Yy)X73-27?p#ttAX%vKR}N z(V%J8!InyoMgxsNwg=Duw}d$&mpDN?0!UW{0OnySCF&@${dn=xeo(;7&;_a}3}z{0 zs!FU~Sx4R;zj(L{(IQ*y9;IbaiGn#(9h|U3juE$4Ub?dcse~|VWy}DHm3#4MwZ#D$ zTh{H-<)f!Vnu$ScD*hIzk@kTl`^LnkJ?XZ*{QYvJCXtq9MwSe576tCLMjm4*lw~Efs+MHmMeXrx=Z{G|gSp6|e#srj1F(t`Etq+Srw*B?~H@lGQ?3nsY zr5U6lOuZ^doIbQ=iR*gv$$_Zz>NJ22!QD{J&U5zjE`?BoL$Qn zn?o2HlOgf;wO)K7MA3vG=M#9V=k>(sFZ-;lU zFTpiINv$??=2MWfGfHJ5H?+}dTR)$>P-hV-Lh96@KvA6$QkCkkRdjBb?#U8zPK-&X w4fgM#MW>5OBc9X6u66tP{y)0|>HZ&c1*oG#C+|@Zk|P&4(X~7M^519w2L*>T`v3p{ delta 1048 zcmWlYJ*!_u5QjN`@6~{a8VldRdq})ZQe<~#c4x=N&f3Nxg2A1gon9jfiHZtVf<>-2 zDHQ^ix}79w;TOnP2o?shw0CZKmf4+|=l7hy?;RfBI~;v^{KJi3j;?P{;k9>e&W~=M zeXzZ;!$g|m$}B`;y`u>mKuS1CXI{T;7q(r7*3rNPS|U#*qj6I7(k-RRxE>uIT-Z|u zZ4=PA0@bMk6Xe+*`u*waPwdGs6-`iJ7^T5&oR?Nf=U0Z}D$l;T?Rh9AD$uMe zNhggmaNwM>)+V^Vf9}6+@6o)L0&G$#mE5#c;T(l1E!wW1FTQ-d4+0-hYOR0-T}7-h zg7`>IqxgFC;^o6$hmRluR;7^Vq@7A@V#%cNpuA3B`E=W7jr|Lf2?mKyf~~W;w=z4{ zuIv7*uRpo#WWbi$6&uOKt|kM6r)Qdm?bk~`Zm%_m#JO-Qy^~q#kYlXCGii8Qe_X!0 z?au16z?^+%s+b$(sv0}TO&Fz|<Wv37Rn{l_OX($H1}FqGiQZPr=DBh?VieBHhA@UV9`8ZC=CG=kz? zT$pS3n6^gx>)U?ug&j@1bI=R$L{LM$*)@ldvuLEb9(??6c*CPLG{AyJmAlp)BTY#`Q-l5?rF>s0%v3nnX{fZWX%XTt5*E!`P?c$6P&h>BHBP!~OA_oK zM$#BN`w)z}fGs0rj*i1pXlJ%Aeg5{g-zBPe-0-zMv*Yfi#775 St(%)VMp!W-tlQuG`^^70$t^7a diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle index ba79cd05dbaa32f00fa259d857fc19305c6c0039..4263632bfb9475a99a4f04b08a22e279119ffab3 100644 GIT binary patch delta 1846 zcmY*Ze@s(X6y`pDD@>^1P}KH8=>P!@_#?}v!#L1ULm-GSw1(O~=({Uz<+VDQ42Bb| zR@!==xrDl7$`Q&X&%KJ&?8xz;tKVv!NYna zHR$hWhSPn}>2oP=lj_ipYt;2v zooT1;qh24$8)_=5d9Q01T?PgNZeWTN^t zK`Pcp1i8MhQ4n+Ozk*b)4-l|uezx6GsM**C|7liZYGXBFB;WXB)36}HXHN*Sglst=$k7)HB%U?BH7=Z{ZBv|l+VGIT)h<7)We8&X#D}Nvs31(3jQW>ig8bg3 z3gXx~%?SkB3NKVOOFV2#iwn&{dSN4w1O1V?vPGPDz5+-T*r>FIaqH z#jATZu)X?B2603MncR0y5PSD&LGC%b(lXZZ8)mfh5IkvF^RbiegT6}fH?5vJ!i32< ztFr1KDSw4+7|D0uc0p==enAYs7fFFpci*=Xq?v)@1|sEgP_D*?=9( z25eV0sBr$|&NaAPm}iA~Qkdt2c}kdPgn2@ktz(M(MA&`%^Hd$fmE-jc9pf8G59s5Y z8P1PyW0!tebUix)d$g9}>(OEUAko&Gl$24O?qUPwH?3V5ok`O;n9YAQTiv626)h3-(GxLQE{`*qn7a7HR31)MYaVC6>g#F80K7H1wj$eDOA%IDwP6)sJKPlB#7uL4u$%GN-XV#_E_4=Eq+X$paRxi z>Bn1*b02=7Q>WWxcgxIvuqE4)nJiP2E!qBvGuhmqW&5-3hbHd4=h(aOqtAKX=lwY6 zzJ1TRcSZW)ij>ixdFpmNW1ZoJYNsOiD$v|zjPEWn*mTn}_W4Joa+TZ{R@~mCDtYAO zP*OEC2D<$|#hdibVpdk85^{Yt7W6Z}tiVxesrH=|oo&o=dG@#hZrPJmGrY1t#3B{h z-Ph|2?}x2MOGbJ)*sHx|{7pLSkVGOf?|ilB2KDJyi{&)+>ej~2&r^=~6} z>sISP4ei#gwuAMwOShb}{-RX3Hbrau)Lf4ok^>$&;P%N%GGVG99=K9RO!pDbS`8uv&M(L}@A5 zwiRpR)=UBeRx6Bm7bVJ^q>D$Z%3L^AwuRNf-08LxP1ryB1p@Yt{)~X1Kp!Ds&* z*e{x%&H#Hw^O0ens0kT`Uu-joNBhTCN#NaJKE&z@wbkYG&?wLj*$)YlTX|5BvsDKK zu~n;rd{eVpkh!&w1+gy<5xBoE$Ud$x#5N&J*~yUb;j8t6vO6s1o?DJx&)6`2iZT=0~1YF z?bfy>1kP;BCUm?}xlX>FnRc3DgYE)*c>NF4UUAlOpcU&@idR zadTwxS#wO`gXYNLQ|8FzBjzA{z8nTVT#j@~wd2R{OFVB!lIO7n2b3*1oovC;WDCwE zTW~1ZLgCCC>nd=&2+xY}qzKQ6@RSJ8i1366+b2)`k+7@v>&Zn7i$+#5Y#*s(*DOA= zg5jN!2I7Un=wi|hYofIb4@CR<^Fue}rlk!fX&YN8zfVpfY|(|SLfDQ1zh^syuu~UY zLhzu#@1HCLFADt1`Gnxtg`V6rcrDhz&N&{NZ@`UXss$|Z84xi|gS>bS^BCjyrVGr& zUL;;Nre-T%SFgMv6zFEpF&&-c%j3SPE}vgkQW4iu5unD6+2?iZX1uHs4;oW*dS$ol z+oRXKoQmPz!e`zptnCYQr|MoxMS(G4?s_j}@tmB!a;M@8>lNRhph#$(7bf_UTf{O*KQOg84^KZM-t&wl1r-t*4MnQE=lCa$+|9GynS;N;)rFA#)P9}=G34<>u7T*b6;28 zgGVlv;wwJEDhtZBR?SnXwN0()a-H7t{LWFT)<^LnmLYL)>3IyF<0v7eB4fRB>t8l! zp(VZf5ojT74E22Ey9vBuEW$;bb;bDmf-i`70dwBR!Pglv+!d59R+KQG^i0Yzz=WAbDj&_S-Sia-O{ZBvhAJ;rn4j#fM6UiwTuytU$9hwQYUb^eW zV`r^R(4ZxiE+t}q+I^bCa3>n5>${)3>%_H~CzSz}Y7)+5L5AwAUEmA#wEx!^e&q_) z*eVtD-Xyo2Q)&_Hj-U+}r}f7#_RUQNGe(@Ebul!Ue3=m2Kw)W)gJWnq>)T9xNSwgIjtX9dDi7cRN5G0gly~%qnt3 z3+7vy&^cQM>g)4gy|lT6f`_S((g8h&h=E40srK#xt*xJwi|5Yp#mKXV@qcIZoY)%9 zOR1w4wf&nBPOn8RCbd2k<`{7z`sYwz{O%XPl%=?U_ z%7VgbD`S6w!v6XL=hq(|c<-shbOjI$gjWOKT&;pRKM@Q8G}C(ho4?zfhBGJZ`kDDnP<+YT3>TUWnDJI6Z3y3vH& zg+{D-<}uMyv;q>_diC2sI(9`7t`q`10Kzf?A=&JV_<@uohIQ@QJ)1+4r8WVY!s&$( z@jW4X&~@PI+1A^SUdGI1M#N7jNj&0sYQHyiE`Q*dskr})xVhR4tWgxaoogtbW zfReTzdHU&{%ka1H!3!QNNzH``p~$V+ph>(w_Widu$H2`C!U}r<6T{kpuBA-aEK|&~ z@(*q~a-~HE%6Qlb{v6m)Q~(F&ub4(!*M9hC=%tj(1Qrv1f%hmAI@4hpv zC!W2qITmKlpvZd{grDCBY!@ejCcR*}pzRxI;6!8oW5a0akO>sFK&ioJUkG& z4WEW6SwS1am&A!FSV`-dU*3D0_nns*=9>-_2F_RlxB zhtD4Up#1Xi{hMRH^zfDOn}4|ya;t4<@~yFonCi@pqR%mpI&9s$eeclOkP$eD z292DXRc>rLeC9}TsI2>r|F>~8(^QM>^Gr-pw5BlHm_0VJ>TNytzW0t!d@89I+dg`5A~{ItqqSztB{OcEWm;`E5|6xocl$G2mxv_hjtfWT(56Y8 z+FzSTvb%G*KxbaFR&9L=Ju3eb>dU>$y(Uw94AJWiuL&8Pt@ZP^{TxnBU?wwok+$&kEUgo~M%NV5V?Mt@<3C$K&#|Xf8 z_NH}e6q*z;d+BAJi)-U*u@E{n?G-F&k_<3grPQo=jbr_jK8Ws%%@i6XkF&H?z z-g@x|F}3uH1s=L1lLeGOhjc^kENhbTEBVV z7l#g%^yFclIw4d)g+NyxBf>#JLtfv0=z$}bpm?{G$to{K~v3yu3^4gJBI(P*}j($a^&d;GEFLywW` zATn0i7_-G(Qvot8W~Wcp%b&RT-08K`3zv^}pL*n>-Nzq!)#XUcej1QcE&}9gPdN!o z^D`<0^615l>t4V1^Yn#{%aoC45k@7?xgZmL&C(@GYfwpAfBohU58V(rLP(UFASS!| zG-p+ClxL(?*41lYfF{6?A#xyt41p!fq1N0v8=1G9*3EBSg0T}qzapqC>}h7nj9)Y~ z8BJoP^~vYHcE$~aV4gLUCJ;QT=IqFzIzlNRp{>6?|KF{P+PjBxJ@0qR-d|y43e-_- zeT4Pa^>5(D(UOMJ;aA*fNbxpvhb0+&l#$l87hV9hh;{B{9ia?8X+<&E1rEcL64l&mXuwK9Hq)pE?d!0v+f?eKdk3pyaSa3@reB~3y284Sl;VS333Y9GP+)WDQ!=> zSExkQBaA}AKImM^J~u{4#szEWWS4Jz$8n0YgGK?akY|G*M=Dr5X&}Qat~YN0j}QtQ zwsrLQfFVR`uJAB)jx8PQy8d!KbXbVcno&iESVa&LUP5h;9uDVq>yPg_I8n$DUl5eB zFlsb4rXG{Fo{%@|OFy}DP!F&f&%x0%-U*M58U|E~^#1^@s6 diff --git a/docs/gettext/.doctrees/help.doctree b/docs/gettext/.doctrees/help.doctree index bfb05b4f70c48bdbf0fe34660b44c8e1212ed102..d5c54b91d5183d356f3bc51722d8e56b7c625693 100644 GIT binary patch delta 369 zcmWNMF>V$?3`RB4CIV4JA<&YA3&bmKcjcK?n^;M`Q?egIcVV zo5Sbj&EZe_vF18>ddD$FLl9QwFzwu=lCaSB<>+TxZ4hOiwMQe&O?q#@GQ(-q98|Zo zq_pzz#<>H-0GyG>0I3Sos!kaZ+q>iYWsO|SEChxrhLBhp#Ymhv+stiydVZQ#%@&=e zR4_+^JRrJ?yQ(_j$lLjgI9b_j5740fE>6weF?#IV$$NF)?#^DNwR$nlSg`I?V;vTi nYXR_Vy-M94U;aM2$igvUH~T~}>ZOP)6X>i&6SjxfpPu~(+iPfD delta 369 zcmWlUJx*Rh3;^}e<0qm(AZW?s1o7^A?X{q!j+7!@q{wTp4-m>UN3_@Z<3Jh(<@L@&LMszN%1nA>pt zz4^3;n6p-QyeC@NTXz-ltqi`{?oB1kY2G&k&6auqbztcjg0YVPavhofo1S_#mD zhz!|70g??hDUw>kvYs5q-jW=mC+*V0Q91V#K*4!Lu$$@n_xN;L#`{XwRLV9!6%!64 m4iHyYwYol?JnVd|TfiWDp}_50Q-M*rHVwdHWBq^j<=_pVx@g$| diff --git a/docs/gettext/.doctrees/index.doctree b/docs/gettext/.doctrees/index.doctree index 0907fdeeb020068851d57a9593efd0bfb473cfe2..173f9f4549bd9431b0be6026c79d326818a0c4cc 100644 GIT binary patch delta 137 zcmWN~yA8rH5CBjaIj}<-Qqyqf^Y0d54dk=WqKR069S}oMqRfC82Sy2!?II1aOGGCLo;Gi#A5g=m6B+BCDfvuGiB4 z2?a=un0QI;#k6%qUbQ-wyg$6Sv!$Fzt64jfSLWfJr5Cm}bDv9z_x}!0E)vZ_bx>;r zl?SVNDFYVb7(88Y|MleuTasSmO3kI<;XN<;uvjVkvseDwk^xii6LQbOmR&Xe>p5ujIf~)_`>UT^N`qt!7Xic^sY>fs5!R^K z7c|uU-qmMYa^kM76r)0H7Rbt6gljeSTvc~@?f-%qR2GG`FKqOgV!CJL(BT+;J z%a&W)f53mY6nJ3Z%DF~|vT6r9$$?!Kp1|!-`H$@+U>FIQ3qhI1_3pWc4{(hDqm B@fiRB delta 862 zcmW-fKkKDM428MBe=aB@f+D!MuQqGtPBO_%B51XR;$k6K*_cUYz}9U98=GCl_A1t^ zov0u$2wQ8RVCyFkv=MB?+FZL~=1h`v^4xoHxc}gA@zLeyAAWyv`|wD;_4eKQ{@vr7 zhnJsMvT&8AlY)5IXxy)u`S8K!Ov>nU4Pz>d=GA;m^_kb$cz^fo z+W9tdxilLxeUj!GRu5$A#kmFO{>kN?!zLU=EHnlawJyevz`P0!60WiTbM@ur7T6gV zMysYo+QiFL@MfvASabj3v3psovi7cnOePhZ1|DE&+If0wbARXY*UmP;2v!-ZltpMf zVj`C40#&G#vj6zRABWAckwjadW6*FAtb|!Ai@|D2`!7$vcfN@sPwu_CI%zj6($&&Y zUzHtvf9vU=4qIJAg+)VKqd2t@;J`XcT~v$h?U{eiHqYnNS6eV?wm$rnX8K7FUKEaZ zp8aBTnLH@74+To&;>$6{Y}9Qj>wbRy=G6^_$S6p1A}U>V%nHLgR3KRl`|B@!bFo=f zF@@=tQ3p-aR&wO%0mB*U@u{1CZfzBTR*FSMYLOnN%wvJT1NJLq4i8b$KiGKCzt@CYhovs}v%~0-U6b{31 zN&*Yixqpp+=W@JLcHy+`#Q&o(d`;>NtV;O)kbXOCNn_GkN3;`LfMZlaEwzOvx-<6g z+H==7b4*3e;#6s6&{R6k_lLKCee^%g C$o7-~ diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree index 48200490d39a330ffa78f43900e446de76f74f38..ed5e9f6823060e187eed499b5fc3ce0d80be7df1 100644 GIT binary patch delta 437 zcmWlUp^lY73`TRwe>XQlVUWAyKy1QvrtP#LK_C~s3e|RI!io*AfCc0Y3c)Kte#1N9 z;USRw0t~iab8^m~yWe-)hvS!DKen60MSbz^{rx!K9$uzm&?;l4PL9M~08o{)PjFJ; z{rlnbqXgbqv?CV@WDzN)4%6<;I{GN*x7*(&Lm6Svw2H{RyQ2UVFyI*waGuAXiL9As zB3WnbF|AiH6m5azRbqd2aeYjsjAou0I8Tf)nRQSL=0RGs(EjQ1!|`%1gU0N+prMh7 zp-w2n#e?hq^~wEq<;IagbN_E&L1`&cRYVnzg8Q?luTKeqooF>rT8IVcG;>241qLwH z{p01$A$2HFO9z-uQPE{mSS)bsGF!F%;Yv>kOAsFP-U~u!NJ6VBYFMxy~UoZ%+K*$&l zfrdli-~x=TRHc4ZzixluZtstue}3Q2hX?%Z^_{=FySzF)-)%SyL8}RglVB^*p$iH+ z8W7HJhfnu*(+KJ+G754GZoM_ZS z(j}k*Cp2aRXJR|_AB`h4>E_ZEb$+-yA9f!CxePWYU}R7osF>kuRgEH-PNIJiKPe6!ZL) dw|(@swnRwF%+$N_n(U>P^{}_B^XpAH{Rgc`d(r>^ diff --git a/docs/gettext/.doctrees/tor.doctree b/docs/gettext/.doctrees/tor.doctree index 332a20d0c753a6e37423a4df8885b11baf6ec7bc..8bbdadd55a20162e6ee785be793d728d7cfb82b4 100644 GIT binary patch delta 1244 zcmWkuzpEcb5a;{yeJ=zFXhaJ^-XR1FL1%VnXLk@G2o@5OLM4zY+1Z`ZLb0++p@lyi z6&@1pBmg$|NjD>a@XCcRi{Vvx(^_3hzDyA7d;VwRq)6A-Gks&fLWw44*Hi)X*zAIAwS zv(X4xNt(`HSR_+rBFnZOK5=EYrIbr@r%E2k2B?oY)r+=fr8}%Q&tEv&`mB?3ya!9F zf^GDy)xAKS5*yd8r~lb)S!0T|R!D`sN}H+W)KEQhnWF3CXD;nFKpSIV1?of+0GV)< zF_p18j=cVQ_MM{*uAfZ!0^Eh zf>dzp*rB6Lb{*Axtb4EivD;!0OiPgRFxy*?PoZge0Z^u=_04NP9vm}zb(%#6ojTQo zG!lk&Lh4@Ix_aquNN)^Pybc4TCS8+3@}3IDG0wQ2di~+S#+C%Fa&2Q$f-b|1t8t$t z)`PC|Z+v#Rfv9)&4XZ6_l&>X_ zK5%{Y)|30=0nrF8MPg|*U}$9?HL5nSsq*^m+AqPhM5TPD2)0nGSuN}+*~Q#h`&^%2 ze|)$#gC^OiYRNQniB5Ko!aD_Z8x&0c+oCe1oi^UFM8;f&N2o16TDH;BdT{f?Zj%@< zHjFfM8#6^=s%1<*B}SOn-~H!cIHyF)Mrx6Z+D$3S8}1k69s=6QegAih#s=Z|an#da t3WAPK+$gnS4F{z4>$~^&TdQEX=O`1$`C1ylh}eX_jB?FXB;mZM9T zuHMiOZtUJ&>RKRji5z-v3K$C}0LZKj)KG`cv*q(;)d8JCR3o1fG-i!vn1yl*J~ywP zd-`B)r8H<|2-gl`!e&~AsZ|$^73Wvm50^FN6kFh?WC*bfa#3R|RB}iI@_g>-_U0Hy z;}!=X0dzD$sI}psO-LH%M^F5xnOSr=E>!|%ZkvYvkVBm0ZNk5VFV|gIi^H9FTC>m!5V`!9iFYCfWe^d z7FzN9yom*EKKk0ttxr)8rBcmY0GOl>_9}1&D^@%29=!42+Gv!Hkrcd7nL&gK?vn`J z#8h_oPoJOvy!nm0luD&Jdqsd?MxI7$HT6C?U>)\n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot index 3822530c..57cfdb8e 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-20 11:33-0400\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/features.pot b/docs/gettext/features.pot index 0ca234b0..32470e11 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-20 11:33-0400\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/help.pot b/docs/gettext/help.pot index c2172a2f..6081589d 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-20 11:33-0400\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/index.pot b/docs/gettext/index.pot index dbabad62..0d30e83d 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-20 11:33-0400\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/install.pot b/docs/gettext/install.pot index f9b9242e..2a4bd757 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-20 11:33-0400\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/security.pot b/docs/gettext/security.pot index 4dfa7776..60c6d4b6 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-20 11:33-0400\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/sphinx.pot b/docs/gettext/sphinx.pot index e367403f..c4770634 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-20 11:33-0400\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/tor.pot b/docs/gettext/tor.pot index 66d64a75..55131838 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-20 11:33-0400\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 3c049e59..8da81749 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,6 @@ name: onionshare base: core18 -version: '2.3.2.dev1' +version: '2.3.2' summary: Securely and anonymously share files, host websites, and chat using Tor description: | OnionShare lets you securely and anonymously send and receive files. It works by starting @@ -8,7 +8,7 @@ description: | web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service. -grade: devel # stable or devel +grade: stable # stable or devel confinement: strict apps: @@ -40,7 +40,7 @@ parts: python-version: python3 python-packages: - psutil - - pyside2==5.15.2 + - pyside2 == 5.15.2 - qrcode stage-packages: - libasound2 @@ -114,21 +114,24 @@ parts: - click - flask - flask-httpauth - - flask-socketio + - flask-socketio == 5.0.1 - pycryptodome + - psutil - pysocks - requests - stem - urllib3 - eventlet + - setuptools + - colorama stage: - -usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 - -usr/share/doc/libssl1.1/changelog.Debian.gz after: [tor, obfs4] tor: - source: https://dist.torproject.org/tor-0.4.5.7.tar.gz - source-checksum: sha256/447fcaaa133e2ef22427e98098a60a9c495edf9ff3e0dd13f484b9ad0185f074 + source: https://dist.torproject.org/tor-0.4.5.8.tar.gz + source-checksum: sha256/57ded091e8bcdcebb0013fe7ef4a4439827cb169358c7874fd05fa00d813e227 source-type: tar plugin: autotools build-packages: From 5b072fb6fd88a28e898a7565046aa3e9cdfeaed3 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 31 May 2021 12:20:21 -0700 Subject: [PATCH 11/55] Add note to desktop readme for Ubuntu 20.04 --- desktop/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop/README.md b/desktop/README.md index 97d0fd30..eb91e315 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -15,6 +15,8 @@ cd onionshare/desktop If you're using Linux, install `tor` and `obfs4proxy` from either the [official Debian repository](https://support.torproject.org/apt/tor-deb-repo/), or from your package manager. +In Ubuntu 20.04 you also need the `libxcb-xinerama0` package installed. + #### macOS Download and install Python 3.8.6 from https://www.python.org/downloads/release/python-386/. I downloaded `python-3.8.6-macosx10.9.pkg`. (You may need to also run `/Applications/Python\ 3.8/Install\ Certificates.command`.) From 1599ff06c887c38b933dc336d0579b1616843709 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Mon, 31 May 2021 14:08:29 -0700 Subject: [PATCH 12/55] Fix encoding issues in snapcraft --- snap/snapcraft.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 8da81749..f99242b1 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -23,6 +23,8 @@ apps: - removable-media extensions: - gnome-3-34 + environment: + LANG: C.UTF-8 cli: common-id: org.onionshare.OnionShareCli @@ -32,6 +34,8 @@ apps: - network - network-bind - removable-media + environment: + LANG: C.UTF-8 parts: onionshare: From d79e2323c0ee089348720f8dbaabce80d074a5ad Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Tue, 1 Jun 2021 19:39:34 -0700 Subject: [PATCH 13/55] Update release docs, and update CLI poetry lock --- RELEASE.md | 12 +- cli/poetry.lock | 358 ++++++++++++++++++++++----------------------- cli/pyproject.toml | 6 +- 3 files changed, 182 insertions(+), 194 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 72cef7dd..b8724c81 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -203,6 +203,7 @@ After there's a new release tag, make the Flathub package work here: https://git You must have `flatpak` and `flatpak-builder` installed, with flathub remote added (`flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo`). +- [ ] Change the tag (for both `onionshare` and `onionshare-cli`) to match the new git tag - [ ] Update `tor`, `libevent`, and `obfs4` dependencies, if necessary - [ ] Built the latest python dependencies using [this tool](https://github.com/flatpak/flatpak-builder-tools/blob/master/pip/flatpak-pip-generator) (see below) - [ ] Test the Flatpak package, ensure it works @@ -213,20 +214,21 @@ pip3 install --user toml # clone flatpak-build-tools git clone https://github.com/flatpak/flatpak-builder-tools.git -cd flatpak-builder-tools/pip # get onionshare-cli dependencies -./flatpak-pip-generator $(python3 -c 'import toml; print("\n".join([x for x in toml.loads(open("../../onionshare/cli/pyproject.toml").read())["tool"]["poetry"]["dependencies"]]))' |grep -v "^python$" |tr "\n" " ") -mv python3-modules.json onionshare-cli.json +cd poetry +./flatpak-poetry-generator.py ../../onionshare/cli/poetry.lock +cd .. # get onionshare dependencies +cd pip ./flatpak-pip-generator $(python3 -c 'import toml; print("\n".join(toml.loads(open("../../onionshare/desktop/pyproject.toml").read())["tool"]["briefcase"]["app"]["onionshare"]["requires"]))' |grep -v "./onionshare_cli" |grep -v -i "pyside2" |tr "\n" " ") mv python3-modules.json onionshare.json # use something like https://www.json2yaml.com/ to convert to yaml and update the manifest # add all of the modules in both onionshare-cli and onionshare to the submodules of "onionshare" -# - onionshare-cli.json -# - onionshare.json +# - poetry/generated-poetry-sources.json (onionshare-cli) +# - pip/python3-modules.json (onionshare) ``` Build and test the Flatpak package before publishing: diff --git a/cli/poetry.lock b/cli/poetry.lock index d7a53640..a9a030ad 100644 --- a/cli/poetry.lock +++ b/cli/poetry.lock @@ -1,33 +1,32 @@ [[package]] -category = "dev" -description = "Atomic file writes." -marker = "sys_platform == \"win32\"" name = "atomicwrites" +version = "1.4.0" +description = "Atomic file writes." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.4.0" [[package]] -category = "dev" -description = "Classes Without Boilerplate" name = "attrs" +version = "21.2.0" +description = "Classes Without Boilerplate" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "21.2.0" [package.extras] -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"] +dev = ["coverage[toml] (>=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"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] [[package]] -category = "main" -description = "The bidirectional mapping library for Python." name = "bidict" +version = "0.21.2" +description = "The bidirectional mapping library for Python." +category = "main" optional = false python-versions = ">=3.6" -version = "0.21.2" [package.extras] coverage = ["coverage (<6)", "pytest-cov (<3)"] @@ -37,56 +36,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]] -category = "main" -description = "Python package for providing Mozilla's CA Bundle." name = "certifi" +version = "2021.5.30" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = "*" -version = "2020.12.5" [[package]] -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" +description = "Universal encoding detector for Python 2 and 3" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] -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]] +description = "Composable command line interface toolkit" 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 = "colorama" +version = "0.4.4" +description = "Cross-platform colored terminal text." category = "main" -description = "DNS toolkit" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] name = "dnspython" +version = "1.16.0" +description = "DNS toolkit" +category = "main" 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]] -category = "main" -description = "Highly concurrent networking library" name = "eventlet" +version = "0.31.0" +description = "Highly concurrent networking library" +category = "main" optional = false python-versions = "*" -version = "0.31.0" [package.dependencies] dnspython = ">=1.15.0,<2.0.0" @@ -94,18 +93,18 @@ greenlet = ">=0.3" six = ">=1.10.0" [[package]] -category = "main" -description = "A simple framework for building complex web applications." name = "flask" +version = "1.1.4" +description = "A simple framework for building complex web applications." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "1.1.4" [package.dependencies] -Jinja2 = ">=2.10.1,<3.0" -Werkzeug = ">=0.15,<2.0" click = ">=5.1,<8.0" itsdangerous = ">=0.24,<2.0" +Jinja2 = ">=2.10.1,<3.0" +Werkzeug = ">=0.15,<2.0" [package.extras] dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] @@ -113,90 +112,86 @@ docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx- dotenv = ["python-dotenv"] [[package]] -category = "main" -description = "Basic and Digest HTTP authentication for Flask routes" name = "flask-httpauth" +version = "4.4.0" +description = "Basic and Digest HTTP authentication for Flask routes" +category = "main" optional = false python-versions = "*" -version = "4.4.0" [package.dependencies] Flask = "*" [[package]] -category = "main" -description = "Socket.IO integration for Flask applications" name = "flask-socketio" +version = "5.0.1" +description = "Socket.IO integration for Flask applications" +category = "main" optional = false python-versions = "*" -version = "5.0.1" [package.dependencies] Flask = ">=0.9" python-socketio = ">=5.0.2" [[package]] -category = "main" -description = "Lightweight in-process concurrent programming" name = "greenlet" +version = "1.1.0" +description = "Lightweight in-process concurrent programming" +category = "main" 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]] -category = "main" -description = "Internationalized Domain Names in Applications (IDNA)" name = "idna" +version = "2.10" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "2.10" [[package]] -category = "dev" -description = "Read metadata from Python packages" -marker = "python_version < \"3.8\"" name = "importlib-metadata" +version = "4.4.0" +description = "Read metadata from Python packages" +category = "dev" 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]] -category = "dev" -description = "iniconfig: brain-dead simple config-ini parsing" name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = "*" -version = "1.1.1" [[package]] -category = "main" -description = "Various helpers to pass data to untrusted environments and back." name = "itsdangerous" +version = "1.1.0" +description = "Various helpers to pass data to untrusted environments and back." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.1.0" [[package]] -category = "main" -description = "A very fast and expressive template engine." name = "jinja2" +version = "2.11.3" +description = "A very fast and expressive template engine." +category = "main" 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" @@ -205,127 +200,122 @@ MarkupSafe = ">=0.23" i18n = ["Babel (>=0.8)"] [[package]] -category = "main" -description = "Safely add untrusted strings to HTML/XML markup." name = "markupsafe" +version = "2.0.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.6" -version = "2.0.0" [[package]] -category = "dev" -description = "Core utilities for Python packages" name = "packaging" +version = "20.9" +description = "Core utilities for Python packages" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "20.9" [package.dependencies] pyparsing = ">=2.0.2" [[package]] -category = "dev" -description = "plugin and hook calling mechanisms for python" name = "pluggy" +version = "0.13.1" +description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "0.13.1" [package.dependencies] -[package.dependencies.importlib-metadata] -python = "<3.8" -version = ">=0.12" +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} [package.extras] dev = ["pre-commit", "tox"] [[package]] -category = "main" -description = "Cross-platform lib for process and system monitoring in Python." name = "psutil" +version = "5.8.0" +description = "Cross-platform lib for process and system monitoring in Python." +category = "main" 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]] -category = "dev" -description = "library with cross-python path, ini-parsing, io, code, log facilities" name = "py" +version = "1.10.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.10.0" [[package]] -category = "main" -description = "Cryptographic library for Python" name = "pycryptodome" +version = "3.10.1" +description = "Cryptographic library for Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "3.10.1" [[package]] -category = "dev" -description = "Python parsing module" name = "pyparsing" +version = "2.4.7" +description = "Python parsing module" +category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -version = "2.4.7" [[package]] -category = "main" -description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." name = "pysocks" +version = "1.7.1" +description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.7.1" [[package]] -category = "dev" -description = "pytest: simple powerful testing with Python" name = "pytest" +version = "6.2.4" +description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.6" -version = "6.2.4" [package.dependencies] -atomicwrites = ">=1.0" +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} attrs = ">=19.2.0" -colorama = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} 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]] -category = "main" -description = "Engine.IO server" name = "python-engineio" +version = "4.2.0" +description = "Engine.IO server" +category = "main" 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]] -category = "main" -description = "Socket.IO server" name = "python-socketio" +version = "5.3.0" +description = "Socket.IO server" +category = "main" optional = false python-versions = "*" -version = "5.3.0" [package.dependencies] bidict = ">=0.21.0" @@ -336,109 +326,105 @@ asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"] client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] [[package]] -category = "main" -description = "Python HTTP for Humans." name = "requests" +version = "2.25.1" +description = "Python HTTP for Humans." +category = "main" 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 || >1.5.7)", "win-inet-pton"] +socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] [[package]] -category = "main" -description = "Python 2 and 3 compatibility utilities" name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -version = "1.16.0" [[package]] -category = "main" -description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)." 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" optional = false python-versions = "*" -version = "1.8.0" [[package]] -category = "dev" -description = "Python Library for Tom's Obvious, Minimal Language" name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -version = "0.10.2" [[package]] -category = "dev" -description = "Backported and Experimental Type Hints for Python 3.5+" -marker = "python_version < \"3.8\"" name = "typing-extensions" +version = "3.10.0.0" +description = "Backported and Experimental Type Hints for Python 3.5+" +category = "dev" optional = false python-versions = "*" -version = "3.10.0.0" [[package]] -category = "main" -description = "ASCII transliterations of Unicode text" name = "unidecode" +version = "1.2.0" +description = "ASCII transliterations of Unicode text" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.2.0" [[package]] -category = "main" -description = "HTTP library with thread-safe connection pooling, file post, and more." name = "urllib3" +version = "1.26.5" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" -version = "1.26.4" [package.extras] 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)"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] -category = "main" -description = "The comprehensive WSGI web application library." name = "werkzeug" +version = "1.0.1" +description = "The comprehensive WSGI web application library." +category = "main" 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]] -category = "dev" -description = "Backport of pathlib-compatible object wrapper for zip files" -marker = "python_version < \"3.8\"" name = "zipp" +version = "3.4.1" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "dev" 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] -content-hash = "e5b4d1dfb1871b971d8240c41fc16cb339246e880c5bf6be07d9303e6156fe93" +lock-version = "1.1" python-versions = "^3.6" +content-hash = "b33fc47db907e6db7cb254b5cac34b0d9558547418e8074280063159b291766a" [metadata.files] atomicwrites = [ @@ -454,8 +440,8 @@ bidict = [ {file = "bidict-0.21.2.tar.gz", hash = "sha256:4fa46f7ff96dc244abfc437383d987404ae861df797e2fd5b190e233c302be09"}, ] certifi = [ - {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"}, - {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"}, + {file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"}, + {file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"}, ] chardet = [ {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, @@ -545,8 +531,8 @@ idna = [ {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, ] importlib-metadata = [ - {file = "importlib_metadata-4.0.1-py3-none-any.whl", hash = "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d"}, - {file = "importlib_metadata-4.0.1.tar.gz", hash = "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581"}, + {file = "importlib_metadata-4.4.0-py3-none-any.whl", hash = "sha256:960d52ba7c21377c990412aca380bf3642d734c2eaab78a2c39319f67c6a5786"}, + {file = "importlib_metadata-4.4.0.tar.gz", hash = "sha256:e592faad8de1bda9fe920cf41e15261e7131bcf266c30306eec00e8e225c1dd5"}, ] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, @@ -561,40 +547,40 @@ jinja2 = [ {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, ] markupsafe = [ - {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"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, + {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, ] packaging = [ {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, @@ -716,8 +702,8 @@ unidecode = [ {file = "Unidecode-1.2.0.tar.gz", hash = "sha256:8d73a97d387a956922344f6b74243c2c6771594659778744b2dbdaad8f6b727d"}, ] urllib3 = [ - {file = "urllib3-1.26.4-py2.py3-none-any.whl", hash = "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df"}, - {file = "urllib3-1.26.4.tar.gz", hash = "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"}, + {file = "urllib3-1.26.5-py2.py3-none-any.whl", hash = "sha256:753a0374df26658f99d826cfe40394a686d05985786d946fbe4165b5148f5a7c"}, + {file = "urllib3-1.26.5.tar.gz", hash = "sha256:a7acd0977125325f516bda9735fa7142b909a8d01e8b2e4c8108d0984e6e0098"}, ] werkzeug = [ {file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"}, diff --git a/cli/pyproject.toml b/cli/pyproject.toml index b113e147..679a60de 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -18,19 +18,19 @@ classifiers = [ [tool.poetry.dependencies] python = "^3.6" click = "*" -flask = "^1.1.4" +flask = "1.1.4" flask-httpauth = "*" flask-socketio = "5.0.1" psutil = "*" pycryptodome = "*" pysocks = "*" -requests = {extras = ["socks"], version = "^2.25.1"} +requests = {extras = ["socks"], version = "*"} stem = "*" unidecode = "*" urllib3 = "*" eventlet = "*" setuptools = "*" -colorama = "^0.4.4" +colorama = "*" [tool.poetry.dev-dependencies] pytest = "*" From 5c4558ace570c183d756f5cfa4f244cfd0b0a2db Mon Sep 17 00:00:00 2001 From: BotMaster3000 Date: Mon, 7 Jun 2021 20:15:10 +0200 Subject: [PATCH 14/55] Set the Max-Width of the Chat-Window to 80% Too long single-line messages can cause the ChatUser-Panel to disappear. Allowing the windows of the Chat to be only 80% of width will cause a automatic linebreak in such a case. --- cli/onionshare_cli/resources/static/css/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/onionshare_cli/resources/static/css/style.css b/cli/onionshare_cli/resources/static/css/style.css index 57b23fdb..4805a3f2 100644 --- a/cli/onionshare_cli/resources/static/css/style.css +++ b/cli/onionshare_cli/resources/static/css/style.css @@ -202,6 +202,7 @@ ul.breadcrumbs li a:link, ul.breadcrumbs li a:visited { } .chat-wrapper { + max-width: 80%; display: flex; flex-direction: column; flex: 1; From a509bbae5b0188d57b5a1d4765aebfd4a1cae2a7 Mon Sep 17 00:00:00 2001 From: BotMaster3000 Date: Mon, 7 Jun 2021 22:29:40 +0200 Subject: [PATCH 15/55] Set the word-break to break-word for the message-class, and removed the max-width again As said by SaptakS, I applied the word-break to the message-Class. Since this breaks the line for long words without Spaces, as well as longer sentences, this is the better solution. Since the max-width now is redundant, it got removed again, as to not cause any future confusion. --- cli/onionshare_cli/resources/static/css/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/onionshare_cli/resources/static/css/style.css b/cli/onionshare_cli/resources/static/css/style.css index 4805a3f2..7cec9738 100644 --- a/cli/onionshare_cli/resources/static/css/style.css +++ b/cli/onionshare_cli/resources/static/css/style.css @@ -202,7 +202,6 @@ ul.breadcrumbs li a:link, ul.breadcrumbs li a:visited { } .chat-wrapper { - max-width: 80%; display: flex; flex-direction: column; flex: 1; @@ -230,6 +229,7 @@ ul.breadcrumbs li a:link, ul.breadcrumbs li a:visited { display: block; } .chat-wrapper .message { + word-break: break-word; font-weight: normal; display: block; margin-bottom: 0.3em; From 7b963f03563f4ebd6ffcba97362ca5a5d309518b Mon Sep 17 00:00:00 2001 From: BotMaster3000 Date: Wed, 9 Jun 2021 21:45:01 +0200 Subject: [PATCH 16/55] #1377 The Update-URL now links to the official OnionShare-Website instead of the Github-Release-Page As issued by micahflee in the Issue #1377 --- desktop/src/onionshare/update_checker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/onionshare/update_checker.py b/desktop/src/onionshare/update_checker.py index 08755e6e..e9dbc060 100644 --- a/desktop/src/onionshare/update_checker.py +++ b/desktop/src/onionshare/update_checker.py @@ -168,7 +168,7 @@ class UpdateChecker(QtCore.QObject): settings.save() # Do we need to update? - update_url = f"https://github.com/micahflee/onionshare/releases/tag/v{latest_version}" + update_url = "https://onionshare.org" installed_version = self.common.version if installed_version < latest_version: self.update_available.emit( From 5d3fca54fbf5031297261da4d52a8404d527d84b Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 4 Jul 2021 12:51:18 -0700 Subject: [PATCH 17/55] Update Tor Browser download scripts --- desktop/scripts/get-tor-osx.py | 6 +++--- desktop/scripts/get-tor-windows.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/desktop/scripts/get-tor-osx.py b/desktop/scripts/get-tor-osx.py index f53174b2..5a4f61e1 100755 --- a/desktop/scripts/get-tor-osx.py +++ b/desktop/scripts/get-tor-osx.py @@ -34,10 +34,10 @@ import requests def main(): - dmg_url = "https://www.torproject.org/dist/torbrowser/10.0.16/TorBrowser-10.0.16-osx64_en-US.dmg" - dmg_filename = "TorBrowser-10.0.16-osx64_en-US.dmg" + dmg_url = "https://dist.torproject.org/torbrowser/10.0.18/TorBrowser-10.0.18-osx64_en-US.dmg" + dmg_filename = "TorBrowser-10.0.18-osx64_en-US.dmg" expected_dmg_sha256 = ( - "95bf37d642bd05e9ae4337c5ab9706990bbd98cc885e25ee8ae81b07c7653f0a" + "d7e92e3803e65f11541555eb04b828feb9e8c98cf2cb1391692ade091bfb8b5f" ) # Build paths diff --git a/desktop/scripts/get-tor-windows.py b/desktop/scripts/get-tor-windows.py index 84a3a205..34389345 100644 --- a/desktop/scripts/get-tor-windows.py +++ b/desktop/scripts/get-tor-windows.py @@ -33,10 +33,10 @@ import requests def main(): - exe_url = "https://www.torproject.org/dist/torbrowser/10.0.16/torbrowser-install-10.0.16_en-US.exe" - exe_filename = "torbrowser-install-10.0.16_en-US.exe" + exe_url = "https://dist.torproject.org/torbrowser/10.0.18/torbrowser-install-10.0.18_en-US.exe" + exe_filename = "torbrowser-install-10.0.18_en-US.exe" expected_exe_sha256 = ( - "1f93d756b4aee1b2df7d85c8d58b626b0d38d89c974c0a02f324ff51f5b23ee1" + "a42f31fc7abe322e457d9f69bae76f935b7ab0a6f9d137d00b6dcc9974ca6e10" ) # Build paths root_path = os.path.dirname( From 3cbe55916bdd2ace57b4603764c97cea7a864d2e Mon Sep 17 00:00:00 2001 From: SIDDHANT DIXIT Date: Mon, 19 Jul 2021 18:27:02 +0530 Subject: [PATCH 18/55] Added user theme preference option in Settings Added an option to choose theme in settings dialog like auto, light and dark. Fixed Dark Mode Dark Text. --- cli/onionshare_cli/settings.py | 1 + desktop/src/onionshare/__init__.py | 19 ++++++++++++--- desktop/src/onionshare/gui_common.py | 2 +- .../src/onionshare/resources/locale/en.json | 4 ++++ desktop/src/onionshare/settings_dialog.py | 23 +++++++++++++++++++ 5 files changed, 45 insertions(+), 4 deletions(-) diff --git a/cli/onionshare_cli/settings.py b/cli/onionshare_cli/settings.py index 54a0fcd9..665c41c9 100644 --- a/cli/onionshare_cli/settings.py +++ b/cli/onionshare_cli/settings.py @@ -110,6 +110,7 @@ class Settings(object): "tor_bridges_use_custom_bridges": "", "persistent_tabs": [], "locale": None, # this gets defined in fill_in_defaults() + "theme": 0 } self._settings = {} self.fill_in_defaults() diff --git a/desktop/src/onionshare/__init__.py b/desktop/src/onionshare/__init__.py index 8276dae4..815dff0b 100644 --- a/desktop/src/onionshare/__init__.py +++ b/desktop/src/onionshare/__init__.py @@ -29,6 +29,7 @@ import getpass from PySide2 import QtCore, QtWidgets, QtGui from onionshare_cli.common import Common +from onionshare_cli.settings import Settings from .gui_common import GuiCommon from .widgets import Alert @@ -47,7 +48,8 @@ class Application(QtWidgets.QApplication): QtWidgets.QApplication.__init__(self, sys.argv) # Check color mode on starting the app - self.color_mode = self.get_color_mode() + # self.color_mode = self.get_color_mode() + self.color_mode = self.get_color_mode(common) self.installEventFilter(self) def eventFilter(self, obj, event): @@ -65,9 +67,20 @@ class Application(QtWidgets.QApplication): return False return True - def get_color_mode(self): - return "dark" if self.is_dark_mode() else "light" + def get_color_mode(self, common): + # return "dark" if self.is_dark_mode() else "light" + curr_settings = Settings(common) + curr_settings.load() + current_theme = curr_settings.get("theme") + if current_theme == 0: + return "dark" if self.is_dark_mode() else "light" + elif current_theme == 1: + return "light" + elif current_theme == 2: + return "dark" + else: + return "light" def main(): """ diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 441aff25..3cc353cf 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -89,7 +89,7 @@ class GuiCommon: new_tab_button_text_color = "#4e0d4e" if color_mode == "dark": header_color = "#F2F2F2" - title_color = "#F2F2F2" + # title_color = "#F2F2F2" stop_button_color = "#C32F2F" new_tab_button_background = "#5F5F5F" new_tab_button_border = "#878787" diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 0eacc618..3a5c2ecd 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -115,6 +115,10 @@ "gui_receive_mode_warning": "Receive mode lets people upload files to your computer.

Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.", "gui_open_folder_error": "Failed to open folder with xdg-open. The file is here: {}", "gui_settings_language_label": "Preferred language", + "gui_settings_theme_label": "Theme", + "gui_settings_theme_auto": "Auto", + "gui_settings_theme_light": "Light", + "gui_settings_theme_dark": "Dark", "gui_settings_language_changed_notice": "Restart OnionShare for the new language to be applied.", "gui_color_mode_changed_notice": "Restart OnionShare for the new color mode to be applied.", "systray_menu_exit": "Quit", diff --git a/desktop/src/onionshare/settings_dialog.py b/desktop/src/onionshare/settings_dialog.py index 190ae35d..72cc7fab 100644 --- a/desktop/src/onionshare/settings_dialog.py +++ b/desktop/src/onionshare/settings_dialog.py @@ -123,6 +123,20 @@ class SettingsDialog(QtWidgets.QDialog): language_layout.addWidget(self.language_combobox) language_layout.addStretch() + #Theme Settings + theme_label = QtWidgets.QLabel(strings._("gui_settings_theme_label")) + self.theme_combobox = QtWidgets.QComboBox() + theme_choices = [ + strings._("gui_settings_theme_auto"), + strings._("gui_settings_theme_light"), + strings._("gui_settings_theme_dark") + ] + self.theme_combobox.addItems(theme_choices) + theme_layout = QtWidgets.QHBoxLayout() + theme_layout.addWidget(theme_label) + theme_layout.addWidget(self.theme_combobox) + theme_layout.addStretch() + # Connection type: either automatic, control port, or socket file # Bundled Tor @@ -451,6 +465,8 @@ class SettingsDialog(QtWidgets.QDialog): layout.addSpacing(20) layout.addLayout(language_layout) layout.addSpacing(20) + layout.addLayout(theme_layout) + layout.addSpacing(20) layout.addStretch() layout.addLayout(buttons_layout) @@ -477,6 +493,9 @@ class SettingsDialog(QtWidgets.QDialog): locale_index = self.language_combobox.findData(locale) self.language_combobox.setCurrentIndex(locale_index) + theme_choice = self.old_settings.get("theme") + self.theme_combobox.setCurrentIndex(theme_choice) + connection_type = self.old_settings.get("connection_type") if connection_type == "bundled": if self.connection_type_bundled_radio.isEnabled(): @@ -931,6 +950,10 @@ class SettingsDialog(QtWidgets.QDialog): settings = Settings(self.common) settings.load() # To get the last update timestamp + # Theme + theme_index = self.theme_combobox.currentIndex() + settings.set("theme",theme_index) + # Language locale_index = self.language_combobox.currentIndex() locale = self.language_combobox.itemData(locale_index) From 58e16e29b0210caf6a5dc4c697eabbaee0a21c27 Mon Sep 17 00:00:00 2001 From: SIDDHANT DIXIT Date: Thu, 22 Jul 2021 02:37:24 +0530 Subject: [PATCH 19/55] Updated test cli settings Added theme key in test_cli_settings.py. --- cli/tests/test_cli_settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/tests/test_cli_settings.py b/cli/tests/test_cli_settings.py index 62f97267..4c012901 100644 --- a/cli/tests/test_cli_settings.py +++ b/cli/tests/test_cli_settings.py @@ -34,6 +34,7 @@ class TestSettings: "tor_bridges_use_meek_lite_azure": False, "tor_bridges_use_custom_bridges": "", "persistent_tabs": [], + "theme":0 } for key in settings_obj._settings: # Skip locale, it will not always default to the same thing From 610b37413e950686b61abc0adb588d7e87ff9b36 Mon Sep 17 00:00:00 2001 From: SIDDHANT DIXIT Date: Fri, 23 Jul 2021 22:42:43 +0530 Subject: [PATCH 20/55] Updated Dark Mode Added fusion dark palette. --- desktop/src/onionshare/__init__.py | 29 +++++++++++++++++++++-- desktop/src/onionshare/gui_common.py | 2 +- desktop/src/onionshare/settings_dialog.py | 2 ++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/desktop/src/onionshare/__init__.py b/desktop/src/onionshare/__init__.py index 815dff0b..b97ca0fc 100644 --- a/desktop/src/onionshare/__init__.py +++ b/desktop/src/onionshare/__init__.py @@ -28,6 +28,9 @@ import psutil import getpass from PySide2 import QtCore, QtWidgets, QtGui +from PySide2.QtCore import Slot,Qt +from PySide2.QtGui import QPalette, QColor + from onionshare_cli.common import Common from onionshare_cli.settings import Settings @@ -48,8 +51,12 @@ class Application(QtWidgets.QApplication): QtWidgets.QApplication.__init__(self, sys.argv) # Check color mode on starting the app - # self.color_mode = self.get_color_mode() self.color_mode = self.get_color_mode(common) + + # Enable Dark Theme + if self.color_mode == "dark": + self.setDarkMode() + self.installEventFilter(self) def eventFilter(self, obj, event): @@ -67,8 +74,26 @@ class Application(QtWidgets.QApplication): return False return True + def setDarkMode(self): + self.setStyle("Fusion") + dark_palette = QPalette() + dark_palette.setColor(QPalette.Window, QColor(53, 53, 53)) + dark_palette.setColor(QPalette.WindowText, Qt.white) + dark_palette.setColor(QPalette.Base, QColor(25, 25, 25)) + dark_palette.setColor(QPalette.AlternateBase, QColor(53, 53, 53)) + dark_palette.setColor(QPalette.ToolTipBase, Qt.white) + dark_palette.setColor(QPalette.ToolTipText, Qt.white) + dark_palette.setColor(QPalette.Text, Qt.white) + dark_palette.setColor(QPalette.Button, QColor(53, 53, 53)) + dark_palette.setColor(QPalette.ButtonText, Qt.white) + dark_palette.setColor(QPalette.BrightText, Qt.red) + dark_palette.setColor(QPalette.Link, QColor(42, 130, 218)) + dark_palette.setColor(QPalette.Highlight, QColor(42, 130, 218)) + dark_palette.setColor(QPalette.HighlightedText, Qt.black) + self.setPalette(dark_palette) + self.setStyleSheet("QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }") + def get_color_mode(self, common): - # return "dark" if self.is_dark_mode() else "light" curr_settings = Settings(common) curr_settings.load() current_theme = curr_settings.get("theme") diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 3cc353cf..441aff25 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -89,7 +89,7 @@ class GuiCommon: new_tab_button_text_color = "#4e0d4e" if color_mode == "dark": header_color = "#F2F2F2" - # title_color = "#F2F2F2" + title_color = "#F2F2F2" stop_button_color = "#C32F2F" new_tab_button_background = "#5F5F5F" new_tab_button_border = "#878787" diff --git a/desktop/src/onionshare/settings_dialog.py b/desktop/src/onionshare/settings_dialog.py index 72cc7fab..a29c4ee8 100644 --- a/desktop/src/onionshare/settings_dialog.py +++ b/desktop/src/onionshare/settings_dialog.py @@ -19,6 +19,8 @@ along with this program. If not, see . """ from PySide2 import QtCore, QtWidgets, QtGui +from PySide2.QtCore import Slot,Qt +from PySide2.QtGui import QPalette, QColor import sys import platform import datetime From aef4ba9bedb5fce4eea169c543664cb86707c71d Mon Sep 17 00:00:00 2001 From: SIDDHANT DIXIT Date: Sat, 24 Jul 2021 01:48:04 +0530 Subject: [PATCH 21/55] Update __init__.py --- desktop/src/onionshare/__init__.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/desktop/src/onionshare/__init__.py b/desktop/src/onionshare/__init__.py index b97ca0fc..9d8d8981 100644 --- a/desktop/src/onionshare/__init__.py +++ b/desktop/src/onionshare/__init__.py @@ -98,14 +98,12 @@ class Application(QtWidgets.QApplication): curr_settings.load() current_theme = curr_settings.get("theme") - if current_theme == 0: - return "dark" if self.is_dark_mode() else "light" - elif current_theme == 1: + if current_theme == 1: return "light" elif current_theme == 2: return "dark" else: - return "light" + return "dark" if self.is_dark_mode() else "light" def main(): """ From b6315c6bcf701347ff86de146f7a4206d9bb17bd Mon Sep 17 00:00:00 2001 From: Saptak S Date: Sat, 14 Aug 2021 13:37:44 +0530 Subject: [PATCH 22/55] Adds alert asking user to restart OnionShare to apply color mode change after changing it in settings --- desktop/src/onionshare/settings_dialog.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop/src/onionshare/settings_dialog.py b/desktop/src/onionshare/settings_dialog.py index a29c4ee8..e8d2752c 100644 --- a/desktop/src/onionshare/settings_dialog.py +++ b/desktop/src/onionshare/settings_dialog.py @@ -843,6 +843,12 @@ class SettingsDialog(QtWidgets.QDialog): notice = strings._("gui_settings_language_changed_notice") Alert(self.common, notice, QtWidgets.QMessageBox.Information) + + # If color mode changed, inform user they need to restart OnionShare + if changed(settings, self.old_settings, ["theme"]): + notice = strings._("gui_color_mode_changed_notice") + Alert(self.common, notice, QtWidgets.QMessageBox.Information) + # Save the new settings settings.save() From 251012f5597aa1f7811a3bf220ea7a129023c2ff Mon Sep 17 00:00:00 2001 From: SIDDHANT DIXIT Date: Sun, 15 Aug 2021 19:25:58 +0530 Subject: [PATCH 23/55] Adds color palette in History Tab with Dark Mode --- desktop/src/onionshare/gui_common.py | 17 +++++++++++++---- desktop/src/onionshare/tab/mode/history.py | 3 +++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 441aff25..8457f51d 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -87,6 +87,10 @@ class GuiCommon: new_tab_button_background = "#ffffff" new_tab_button_border = "#efeff0" new_tab_button_text_color = "#4e0d4e" + downloads_uploads_progress_bar_border_color = "#4E064F" + downloads_uploads_progress_bar_chunk_color = "#4E064F" + share_zip_progess_bar_border_color = "#4E064F" + share_zip_progess_bar_chunk_color = "#4E064F" if color_mode == "dark": header_color = "#F2F2F2" title_color = "#F2F2F2" @@ -94,6 +98,7 @@ class GuiCommon: new_tab_button_background = "#5F5F5F" new_tab_button_border = "#878787" new_tab_button_text_color = "#FFFFFF" + share_zip_progess_bar_border_color = "#F2F2F2" return { # OnionShareGui styles @@ -233,7 +238,7 @@ class GuiCommon: "downloads_uploads_progress_bar": """ QProgressBar { border: 1px solid """ - + header_color + + downloads_uploads_progress_bar_border_color + """; background-color: #ffffff !important; text-align: center; @@ -242,10 +247,14 @@ class GuiCommon: } QProgressBar::chunk { background-color: """ - + header_color + + downloads_uploads_progress_bar_chunk_color + """; width: 10px; }""", + "history_default_label" : """ + QLabel { + color: black; + }""", "history_individual_file_timestamp_label": """ QLabel { color: #666666; @@ -298,7 +307,7 @@ class GuiCommon: "share_zip_progess_bar": """ QProgressBar { border: 1px solid """ - + header_color + + share_zip_progess_bar_border_color + """; background-color: #ffffff !important; text-align: center; @@ -307,7 +316,7 @@ class GuiCommon: QProgressBar::chunk { border: 0px; background-color: """ - + header_color + + share_zip_progess_bar_chunk_color + """; width: 10px; }""", diff --git a/desktop/src/onionshare/tab/mode/history.py b/desktop/src/onionshare/tab/mode/history.py index 795b0cd9..53f50c0f 100644 --- a/desktop/src/onionshare/tab/mode/history.py +++ b/desktop/src/onionshare/tab/mode/history.py @@ -148,6 +148,7 @@ class ShareHistoryItem(HistoryItem): # Change the label self.label.setText(self.get_finished_label_text(self.started_dt)) + self.label.setStyleSheet(self.common.gui.css["history_default_label"]) self.status = HistoryItem.STATUS_FINISHED else: @@ -439,6 +440,7 @@ class ReceiveHistoryItem(HistoryItem): # Change the label self.label.setText(self.get_finished_label_text(self.started)) + self.label.setStyleSheet(self.common.gui.css["history_default_label"]) elif data["action"] == "canceled": # Change the status @@ -479,6 +481,7 @@ class IndividualFileHistoryItem(HistoryItem): self.common.gui.css["history_individual_file_timestamp_label"] ) self.path_label = QtWidgets.QLabel(self.path) + self.path_label.setStyleSheet(self.common.gui.css["history_default_label"]) self.status_code_label = QtWidgets.QLabel() # Progress bar From 95c7156f69d0e82b87c283df6135bf70e5b60046 Mon Sep 17 00:00:00 2001 From: SIDDHANT DIXIT Date: Sun, 15 Aug 2021 23:09:16 +0530 Subject: [PATCH 24/55] Adds Dark Background in History Window --- desktop/src/onionshare/gui_common.py | 18 ++++++++++++++++-- desktop/src/onionshare/tab/mode/history.py | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/desktop/src/onionshare/gui_common.py b/desktop/src/onionshare/gui_common.py index 8457f51d..182d63f2 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/src/onionshare/gui_common.py @@ -91,6 +91,8 @@ class GuiCommon: downloads_uploads_progress_bar_chunk_color = "#4E064F" share_zip_progess_bar_border_color = "#4E064F" share_zip_progess_bar_chunk_color = "#4E064F" + history_background_color = "#ffffff" + history_label_color = "#000000" if color_mode == "dark": header_color = "#F2F2F2" title_color = "#F2F2F2" @@ -99,6 +101,8 @@ class GuiCommon: new_tab_button_border = "#878787" new_tab_button_text_color = "#FFFFFF" share_zip_progess_bar_border_color = "#F2F2F2" + history_background_color = "#191919" + history_label_color = "#ffffff" return { # OnionShareGui styles @@ -198,9 +202,17 @@ class GuiCommon: border: 0; border-radius: 5px; }""", + "downloads_uploads_not_empty": """ + QWidget{ + background-color: """ + + history_background_color + +"""; + }""", "downloads_uploads_empty": """ QWidget { - background-color: #ffffff; + background-color: """ + + history_background_color + +"""; border: 1px solid #999999; } QWidget QLabel { @@ -253,7 +265,9 @@ class GuiCommon: }""", "history_default_label" : """ QLabel { - color: black; + color: """ + + history_label_color + + """; }""", "history_individual_file_timestamp_label": """ QLabel { diff --git a/desktop/src/onionshare/tab/mode/history.py b/desktop/src/onionshare/tab/mode/history.py index 53f50c0f..091905f7 100644 --- a/desktop/src/onionshare/tab/mode/history.py +++ b/desktop/src/onionshare/tab/mode/history.py @@ -714,6 +714,7 @@ class History(QtWidgets.QWidget): self.not_empty_layout.addLayout(header_layout) self.not_empty_layout.addWidget(self.item_list) self.not_empty = QtWidgets.QWidget() + self.not_empty.setStyleSheet(self.common.gui.css["downloads_uploads_not_empty"]) self.not_empty.setLayout(self.not_empty_layout) # Layout From 7f2619680a848689ab5a5cc1db240d90261e097b Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Thu, 19 Aug 2021 12:34:42 +0200 Subject: [PATCH 25/55] Translated using Weblate (Ukrainian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/uk/ Translated using Weblate (Polish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/pl/ Translated using Weblate (Indonesian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/id/ Translated using Weblate (Croatian) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Croatian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hr/ Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Turkish) Currently translated at 100.0% (32 of 32 strings) Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Hindi) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hi/ Translated using Weblate (Turkish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/tr/ Translated using Weblate (Ukrainian) Currently translated at 100.0% (31 of 31 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (32 of 32 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (27 of 27 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (9 of 9 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (11 of 11 strings) Translated using Weblate (Ukrainian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/uk/ Translated using Weblate (Danish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/da/ Translated using Weblate (Yoruba) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/yo/ Translated using Weblate (Bengali) Currently translated at 27.2% (3 of 11 strings) Translated using Weblate (Croatian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hr/ Translated using Weblate (Portuguese (Brazil)) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/pt_BR/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Co-authored-by: Algustionesa Yoshi Co-authored-by: Atrate Co-authored-by: Eduardo Addad de Oliveira Co-authored-by: Emmanuel Balogun Co-authored-by: Gediminas Murauskas Co-authored-by: Hosted Weblate Co-authored-by: Ihor Hordiichuk Co-authored-by: Jonatan Nyberg Co-authored-by: Milo Ivir Co-authored-by: Mohit Bansal (Philomath) Co-authored-by: Oymate Co-authored-by: Panina Nonbinary Co-authored-by: Tur Co-authored-by: scootergrisen Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-advanced/tr/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-advanced/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-develop/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-features/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-help/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-index/hr/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-install/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-security/bn/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-security/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-tor/uk/ Translation: OnionShare/Doc - Advanced Translation: OnionShare/Doc - Develop Translation: OnionShare/Doc - Features Translation: OnionShare/Doc - Help Translation: OnionShare/Doc - Index Translation: OnionShare/Doc - Install Translation: OnionShare/Doc - Security Translation: OnionShare/Doc - Tor --- .../src/onionshare/resources/locale/da.json | 12 +- .../src/onionshare/resources/locale/hi.json | 34 +-- .../src/onionshare/resources/locale/hr.json | 57 +++-- .../src/onionshare/resources/locale/id.json | 6 +- .../src/onionshare/resources/locale/lt.json | 218 ++++++++++-------- .../src/onionshare/resources/locale/pl.json | 5 +- .../onionshare/resources/locale/pt_BR.json | 11 +- .../src/onionshare/resources/locale/sv.json | 28 ++- .../src/onionshare/resources/locale/tr.json | 16 +- .../src/onionshare/resources/locale/uk.json | 6 +- .../src/onionshare/resources/locale/yo.json | 37 +-- docs/source/locale/bn/LC_MESSAGES/security.po | 8 +- docs/source/locale/hr/LC_MESSAGES/index.po | 6 +- docs/source/locale/tr/LC_MESSAGES/advanced.po | 10 +- docs/source/locale/uk/LC_MESSAGES/advanced.po | 20 +- docs/source/locale/uk/LC_MESSAGES/develop.po | 59 ++--- docs/source/locale/uk/LC_MESSAGES/features.po | 79 +++---- docs/source/locale/uk/LC_MESSAGES/help.po | 15 +- docs/source/locale/uk/LC_MESSAGES/install.po | 32 ++- docs/source/locale/uk/LC_MESSAGES/security.po | 31 ++- docs/source/locale/uk/LC_MESSAGES/tor.po | 23 +- 21 files changed, 395 insertions(+), 318 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/src/onionshare/resources/locale/da.json index 383b3d33..4bbdc94e 100644 --- a/desktop/src/onionshare/resources/locale/da.json +++ b/desktop/src/onionshare/resources/locale/da.json @@ -291,5 +291,15 @@ "gui_chat_url_description": "Alle med denne OnionShare-adresse kan deltage i chatrummet med Tor Browser: ", "error_port_not_available": "OnionShare-port ikke tilgængelig", "gui_rendezvous_cleanup": "Venter på at Tor-kredsløb lukker for at være sikker på, at det lykkedes at overføre dine filer.\n\nDet kan tage noget tid.", - "gui_rendezvous_cleanup_quit_early": "Afslut tidligt" + "gui_rendezvous_cleanup_quit_early": "Afslut tidligt", + "history_receive_read_message_button": "Læs meddelelse", + "mode_settings_receive_webhook_url_checkbox": "Brug underretningswebhook", + "mode_settings_receive_disable_files_checkbox": "Deaktivér upload af filer", + "mode_settings_receive_disable_text_checkbox": "Deaktivér indsendelse af tekst", + "mode_settings_title_label": "Tilpasset titel", + "gui_color_mode_changed_notice": "Genstart OnionShare for at anvende den nye farvetilstand.", + "gui_status_indicator_chat_started": "Chatter", + "gui_status_indicator_chat_scheduled": "Planlagt …", + "gui_status_indicator_chat_working": "Starter …", + "gui_status_indicator_chat_stopped": "Klar til at chatte" } diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json index e5a6d893..8efb9301 100644 --- a/desktop/src/onionshare/resources/locale/hi.json +++ b/desktop/src/onionshare/resources/locale/hi.json @@ -67,24 +67,24 @@ "gui_settings_sharing_label": "साझा सेटिंग्स", "gui_settings_close_after_first_download_option": "इस फाइल को भेजने के बाद साझा बंद कर दें", "gui_settings_connection_type_label": "OnionShare को Tor से कैसे जुड़ना चाहिए?", - "gui_settings_connection_type_bundled_option": "", - "gui_settings_connection_type_automatic_option": "", - "gui_settings_connection_type_control_port_option": "", - "gui_settings_connection_type_socket_file_option": "", + "gui_settings_connection_type_bundled_option": "OnionShare में निर्मित Tor संस्करण का उपयोग करें", + "gui_settings_connection_type_automatic_option": "Tor Browser के साथ ऑटो-कॉन्फ़िगरेशन का प्रयास करें", + "gui_settings_connection_type_control_port_option": "कंट्रोल पोर्ट का उपयोग करके कनेक्ट करें", + "gui_settings_connection_type_socket_file_option": "सॉकेट फ़ाइल का उपयोग करके कनेक्ट करें", "gui_settings_connection_type_test_button": "", - "gui_settings_control_port_label": "", - "gui_settings_socket_file_label": "", - "gui_settings_socks_label": "", - "gui_settings_authenticate_label": "", - "gui_settings_authenticate_no_auth_option": "", + "gui_settings_control_port_label": "कण्ट्रोल पोर्ट", + "gui_settings_socket_file_label": "सॉकेट फ़ाइल", + "gui_settings_socks_label": "SOCKS पोर्ट", + "gui_settings_authenticate_label": "Tor प्रमाणीकरण सेटिंग्स", + "gui_settings_authenticate_no_auth_option": "कोई प्रमाणीकरण या कुकी प्रमाणीकरण नहीं", "gui_settings_authenticate_password_option": "", "gui_settings_password_label": "", - "gui_settings_tor_bridges": "", - "gui_settings_tor_bridges_no_bridges_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "", + "gui_settings_tor_bridges": "Tor ब्रिज सपोर्ट", + "gui_settings_tor_bridges_no_bridges_radio_option": "ब्रिड्जेस का प्रयोग न करें", + "gui_settings_tor_bridges_obfs4_radio_option": "पहले से निर्मित obfs4 प्लगेबल ट्रांसपोर्टस का उपयोग करें", + "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "पहले से निर्मित obfs4 प्लगेबल ट्रांसपोर्टस का उपयोग करें (obfs4proxy अनिवार्य)", + "gui_settings_tor_bridges_meek_lite_azure_radio_option": "पहले से निर्मित meek_lite (Azure) प्लगेबल ट्रांसपोर्टस का उपयोग करें", + "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "पहले से निर्मित meek_lite (Azure) प्लगेबल ट्रांसपोर्टस का उपयोग करें (obfs4proxy अनिवार्य है)", "gui_settings_meek_lite_expensive_warning": "", "gui_settings_tor_bridges_custom_radio_option": "", "gui_settings_tor_bridges_custom_label": "", @@ -191,5 +191,7 @@ "gui_chat_stop_server": "चैट सर्वर बंद करें", "gui_chat_start_server": "चैट सर्वर शुरू करें", "gui_file_selection_remove_all": "सभी हटाएं", - "gui_remove": "हटाएं" + "gui_remove": "हटाएं", + "gui_qr_code_dialog_title": "OnionShare क्यूआर कोड", + "gui_receive_flatpak_data_dir": "चूँकि आपने फ़्लैटपैक का उपयोग करके OnionShare स्थापित किया है, इसलिए आपको फ़ाइलों को ~/OnionShare फ़ोल्डर में सहेजना होगा।" } diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/src/onionshare/resources/locale/hr.json index 6c399c89..29252c1d 100644 --- a/desktop/src/onionshare/resources/locale/hr.json +++ b/desktop/src/onionshare/resources/locale/hr.json @@ -4,8 +4,8 @@ "no_available_port": "Priključak za pokretanje Onion usluge nije pronađen", "other_page_loaded": "Adresa učitana", "incorrect_password": "Neispravna lozinka", - "close_on_autostop_timer": "Zaustavljeno, jer je vrijeme timera za automatsko zaustavljanje isteklo", - "closing_automatically": "Zaustavljeno, jer je prijenos završen", + "close_on_autostop_timer": "Prekinuto, jer je vrijeme timera za automatsko prekidanje isteklo", + "closing_automatically": "Prekinuto, jer je prijenos završen", "large_filesize": "Upozorenje: Slanje velike količine podataka može trajati satima", "gui_drag_and_drop": "Povuci i ispusti datoteke i mape koje želiš dijeliti", "gui_add": "Dodaj", @@ -14,13 +14,13 @@ "gui_delete": "Izbriši", "gui_choose_items": "Odaberi", "gui_share_start_server": "Pokreni dijeljenje", - "gui_share_stop_server": "Zaustavi dijeljenje", - "gui_share_stop_server_autostop_timer": "Zaustavi dijeljenje ({})", - "gui_stop_server_autostop_timer_tooltip": "Timer za automatsko zaustavljanje završava pri {}", + "gui_share_stop_server": "Prekini dijeljenje", + "gui_share_stop_server_autostop_timer": "Prekini dijeljenje ({})", + "gui_stop_server_autostop_timer_tooltip": "Timer za automatsko prekidanje završava u {}", "gui_start_server_autostart_timer_tooltip": "Timer za automatsko pokretanje završava u {}", "gui_receive_start_server": "Pokreni modus primanja", - "gui_receive_stop_server": "Zaustavi modus primanja", - "gui_receive_stop_server_autostop_timer": "Zaustavi modus primanja ({} preostalo)", + "gui_receive_stop_server": "Prekini modus primanja", + "gui_receive_stop_server_autostop_timer": "Prekini modus primanja ({} preostalo)", "gui_copy_url": "Kopiraj adresu", "gui_copy_hidservauth": "Kopiraj HidServAuth", "gui_canceled": "Prekinuto", @@ -95,7 +95,7 @@ "settings_error_bundled_tor_timeout": "Povezivanje s Torom traje predugo. Možda nemaš vezu s internetom ili imaš netočno postavljen sat sustava?", "settings_error_bundled_tor_broken": "Neuspjelo povezivanje OnionShare-a s Torom:\n{}", "settings_test_success": "Povezan s Tor kontrolerom.\n\nTor verzija: {}\nPodržava kratkotrajne Onion usluge: {}.\nPodržava autentifikaciju klijenta: {}.\nPodržava .onion adrese sljedeće generacije: {}.", - "error_tor_protocol_error": "Greška s Torom: {}", + "error_tor_protocol_error": "Dogodila se greška s Torom: {}", "error_tor_protocol_error_unknown": "Nepoznata greška s Torom", "connecting_to_tor": "Povezivanje s Tor mrežom", "update_available": "Objavljen je novi OnionShare. Pritisni ovdje za preuzimanje.

Trenutačno koristiš verziju {}, a najnovija verzija je {}.", @@ -108,10 +108,10 @@ "gui_tor_connection_error_settings": "U postavkama promijeni način na koji se OnionShare povezuje s Tor mrežom.", "gui_tor_connection_canceled": "Neuspjelo povezivanje s Torom.\n\nProvjeri vezu s internetom, a zatim ponovo pokreni OnionShare i postavi njegovu vezu s Torom.", "gui_tor_connection_lost": "Prekinuta veza s Torom.", - "gui_server_started_after_autostop_timer": "Vrijeme timera za automatsko zaustavljanje je isteklo prije nego što je poslužitelj započeo. Izradi novo dijeljenje.", - "gui_server_autostop_timer_expired": "Vrijeme timera za automatsko zaustavljanje je već isteklo. Za pokretanje dijeljenja, podesi vrijeme.", + "gui_server_started_after_autostop_timer": "Vrijeme timera za automatsko prekidanje je isteklo prije nego što je poslužitelj započeo. Izradi novo dijeljenje.", + "gui_server_autostop_timer_expired": "Vrijeme timera za automatsko prekidanje je već isteklo. Za pokretanje dijeljenja, podesi vrijeme.", "gui_server_autostart_timer_expired": "Planirano vrijeme je već prošlo. Za pokretanje dijeljenja, podesi vrijeme.", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko zaustavljanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko prekidanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.", "share_via_onionshare": "Dijeli putem OnionSharea", "gui_connect_to_tor_for_onion_settings": "Poveži se s Torom za prikaz postavki Onion usluge", "gui_use_legacy_v2_onions_checkbox": "Koristi stare adrese", @@ -119,10 +119,10 @@ "gui_share_url_description": "Svatko s ovom OnionShare adresom može preuzeti tvoje datoteke koristeći Tor preglednik: ", "gui_website_url_description": "Svatko s ovom OnionShare adresom može posjetiti tvoju web-stranicu koristeći Tor preglednik: ", "gui_receive_url_description": "Svatko s ovom OnionShare adresom može prenijeti datoteke na tvoje računalo koristeći Tor preglednik: ", - "gui_url_label_persistent": "Ovo se dijeljenje neće automatski zaustaviti.

Svako naredno dijeljenje ponovo koristi istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", - "gui_url_label_stay_open": "Ovo se dijeljenje neće automatski zaustaviti.", - "gui_url_label_onetime": "Ovo će se dijeljenje zaustaviti nakon prvog završavanja.", - "gui_url_label_onetime_and_persistent": "Ovo se dijeljenje neće automatski zaustaviti.

Svako naredno dijeljenje ponovo će koristiti istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", + "gui_url_label_persistent": "Ovo se dijeljenje neće automatski prekinuti.

Svako naredno dijeljenje koristit će istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", + "gui_url_label_stay_open": "Ovo se dijeljenje neće automatski prekinuti.", + "gui_url_label_onetime": "Ovo će se dijeljenje prekinuti nakon prvog završavanja.", + "gui_url_label_onetime_and_persistent": "Ovo se dijeljenje neće automatski prekinuti.

Svako naredno dijeljenje će koristit će istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", "gui_status_indicator_share_stopped": "Spremno za dijeljenje", "gui_status_indicator_share_working": "Pokretanje …", "gui_status_indicator_share_scheduled": "Planirano …", @@ -183,10 +183,10 @@ "mode_settings_website_disable_csp_checkbox": "Ne šalji zaglavlja politike sigurnosti sadržaja (omogućuje tvojim web-stranicama koristiti strane resurse)", "mode_settings_receive_data_dir_browse_button": "Pregledaj", "mode_settings_receive_data_dir_label": "Spremi datoteke u", - "mode_settings_share_autostop_sharing_checkbox": "Zaustavi dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)", + "mode_settings_share_autostop_sharing_checkbox": "Prekini dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)", "mode_settings_client_auth_checkbox": "Koristi autorizaciju klijenta", "mode_settings_legacy_checkbox": "Koristi stare adrese (v2 onion usluge, ne preporučuje se)", - "mode_settings_autostop_timer_checkbox": "Zaustavi onion uslugu u planirano vrijeme", + "mode_settings_autostop_timer_checkbox": "Prekini onion uslugu u planirano vrijeme", "mode_settings_autostart_timer_checkbox": "Pokreni onion uslugu u planirano vrijeme", "mode_settings_public_checkbox": "Nemoj koristiti lozinku", "mode_settings_persistent_checkbox": "Spremi ovu karticu i automatski je otvori kad otvorim OnionShare", @@ -212,10 +212,10 @@ "gui_new_tab": "Nova kartica", "gui_qr_code_description": "Skeniraj ovaj QR kȏd pomoću QR čitača, kao što je kamera na tvom telefonu, za lakše dijeljenje adrese OnionSharea.", "gui_receive_flatpak_data_dir": "Budući da je tvoj OnionShare instaliran pomoću Flatpak-a, datoteke moraš spremiti u jednu mapu u ~/OnionShare.", - "gui_tab_name_chat": "Chat", - "gui_new_tab_chat_button": "Anonimni chat", - "gui_chat_start_server": "Pokreni poslužitelja za chat", - "gui_chat_stop_server": "Zaustavi poslužitelja za chat", + "gui_tab_name_chat": "Razgovor", + "gui_new_tab_chat_button": "Razgovaraj anonimno", + "gui_chat_start_server": "Pokreni poslužitelja za razgovor", + "gui_chat_stop_server": "Prekini poslužitelja za razgovor", "gui_chat_stop_server_autostop_timer": "Zaustavi poslužitelja za chat ({})", "gui_tab_name_receive": "Primi", "gui_open_folder_error": "Otvaranje mape s xdg-open nije uspjelo. Datoteka je ovdje: {}", @@ -225,13 +225,22 @@ "gui_show_url_qr_code": "Prikaži QR-kod", "gui_file_selection_remove_all": "Ukloni sve", "gui_remove": "Ukloni", - "gui_main_page_chat_button": "Pokreni chat", + "gui_main_page_chat_button": "Pokreni razgovor", "gui_main_page_website_button": "Pokreni hosting", "gui_main_page_receive_button": "Pokreni primanje", "gui_main_page_share_button": "Pokreni dijeljenje", - "gui_chat_url_description": "Svatko s ovom OnionShare adresom može se pridružiti sobi za chat koristeći Tor preglednik: ", + "gui_chat_url_description": "Svatko s ovom OnionShare adresom može se pridružiti sobi za razgovor koristeći Tor preglednik: ", "error_port_not_available": "OnionShare priključak nije dostupan", "gui_rendezvous_cleanup_quit_early": "Prekini preuranjeno", "gui_rendezvous_cleanup": "Čekanje na zatvarnje Tor lanaca, kako bi se osigurao uspješan prijenos datoteka.\n\nOvo može potrajati nekoliko minuta.", - "gui_color_mode_changed_notice": "Za primjenu novog modusa boja ponovo pokreni OnionShare ." + "gui_color_mode_changed_notice": "Za primjenu novog modusa boja ponovo pokreni OnionShare .", + "history_receive_read_message_button": "Čitaj poruku", + "mode_settings_receive_disable_files_checkbox": "Onemogući prenošenje datoteka", + "mode_settings_receive_disable_text_checkbox": "Onemogući slanje teksta", + "mode_settings_title_label": "Prilagođeni naslov", + "gui_status_indicator_chat_scheduled": "Planirano …", + "gui_status_indicator_chat_working": "Pokretanje …", + "mode_settings_receive_webhook_url_checkbox": "Koristi automatsko obavještavanje", + "gui_status_indicator_chat_started": "Razgovor u tijeku", + "gui_status_indicator_chat_stopped": "Spremno za razgovor" } diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/src/onionshare/resources/locale/id.json index 9980a479..f4c299c5 100644 --- a/desktop/src/onionshare/resources/locale/id.json +++ b/desktop/src/onionshare/resources/locale/id.json @@ -277,5 +277,9 @@ "gui_close_tab_warning_persistent_description": "Tab ini persisten. Jika Anda menutup tab ini Anda akan kehilangan alamat onion yang sedang digunakan. Apakah Anda yakin mau menutup tab ini?", "gui_chat_url_description": "Siapa saja dengan alamat OnionShare ini dapat bergabung di ruang obrolan ini menggunakan Tor Browser:", "gui_website_url_description": "Siapa saja dengan alamat OnionShare ini dapat mengunjungi situs web Anda menggunakan Tor Browser:", - "gui_server_autostart_timer_expired": "Waktu yang dijadwalkan telah terlewati. Silakan sesuaikan waktu untuk memulai berbagi." + "gui_server_autostart_timer_expired": "Waktu yang dijadwalkan telah terlewati. Silakan sesuaikan waktu untuk memulai berbagi.", + "gui_status_indicator_chat_started": "Mengobrol", + "gui_status_indicator_chat_scheduled": "Menjadwalkan…", + "gui_status_indicator_chat_working": "Memulai…", + "gui_status_indicator_chat_stopped": "Siap untuk mengobrol" } diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/src/onionshare/resources/locale/lt.json index b34bb52a..f3e76e9b 100644 --- a/desktop/src/onionshare/resources/locale/lt.json +++ b/desktop/src/onionshare/resources/locale/lt.json @@ -4,10 +4,10 @@ "no_available_port": "", "other_page_loaded": "Adresas įkeltas", "incorrect_password": "Neteisingas slaptažodis", - "close_on_autostop_timer": "", + "close_on_autostop_timer": "Sustabdyta, nes baigėsi automatinio sustabdymo laikmatis", "closing_automatically": "Sustabdyta, nes perdavimas yra užbaigtas", "large_filesize": "Įspėjimas: Didelio viešinio siuntimas gali užtrukti ilgą laiką (kelias valandas)", - "gui_drag_and_drop": "Norėdami bendrinti,\ntempkite čia failus ir aplankus", + "gui_drag_and_drop": "Norėdami bendrinti, tempkite failus ir aplankus čia", "gui_add": "Pridėti", "gui_add_files": "Pridėti failus", "gui_add_folder": "Pridėti aplanką", @@ -16,8 +16,8 @@ "gui_share_start_server": "Pradėti bendrinti", "gui_share_stop_server": "Nustoti bendrinti", "gui_share_stop_server_autostop_timer": "Nustoti bendrinti ({})", - "gui_stop_server_autostop_timer_tooltip": "", - "gui_start_server_autostart_timer_tooltip": "", + "gui_stop_server_autostop_timer_tooltip": "Automatinio sustabdymo laikmatis baigiasi {}", + "gui_start_server_autostart_timer_tooltip": "Automatinio paleidimo laikmatis baigiasi {}", "gui_receive_start_server": "Įjungti gavimo veikseną", "gui_receive_stop_server": "Išjungti gavimo veikseną", "gui_receive_stop_server_autostop_timer": "Išjungti gavimo veikseną (Liko {})", @@ -28,9 +28,9 @@ "gui_copied_url": "OnionShare adresas nukopijuotas į iškarpinę", "gui_copied_hidservauth_title": "HidServAuth nukopijuota", "gui_copied_hidservauth": "HidServAuth eilutė nukopijuota į iškarpinę", - "gui_waiting_to_start": "", + "gui_waiting_to_start": "Planuojama pradėti {}. Spustelėkite , jei norite atšaukti.", "gui_please_wait": "Pradedama… Spustelėkite norėdami atsisakyti.", - "error_rate_limit": "", + "error_rate_limit": "Kažkas padarė per daug klaidingų bandymų atspėti jūsų slaptažodį, todėl „OnionShare“ sustabdė serverį. Vėl pradėkite bendrinti ir nusiųskite gavėjui naują bendrinimo adresą.", "zip_progress_bar_format": "Glaudinama: %p%", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", @@ -40,7 +40,7 @@ "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "Tikrinti, ar yra nauja versija", "gui_settings_autoupdate_option": "Pranešti, kai bus prieinama nauja versija", - "gui_settings_autoupdate_timestamp": "", + "gui_settings_autoupdate_timestamp": "Paskutinį kartą tikrinta: {}", "gui_settings_autoupdate_timestamp_never": "Niekada", "gui_settings_autoupdate_check_button": "Tikrinti, ar yra nauja versija", "gui_settings_general_label": "Bendri nustatymai", @@ -50,25 +50,25 @@ "gui_settings_csp_header_disabled_option": "", "gui_settings_individual_downloads_label": "", "gui_settings_connection_type_label": "Kaip OnionShare turėtų jungtis prie Tor?", - "gui_settings_connection_type_bundled_option": "", - "gui_settings_connection_type_automatic_option": "", - "gui_settings_connection_type_control_port_option": "", - "gui_settings_connection_type_socket_file_option": "", - "gui_settings_connection_type_test_button": "", - "gui_settings_control_port_label": "", - "gui_settings_socket_file_label": "", + "gui_settings_connection_type_bundled_option": "Naudokite „Tor“ versiją, integruotą į „OnionShare“", + "gui_settings_connection_type_automatic_option": "Bandyti automatiškai konfigūruoti naudojant „Tor“ naršyklę", + "gui_settings_connection_type_control_port_option": "Prisijunkti naudojant valdymo prievadą", + "gui_settings_connection_type_socket_file_option": "Prisijungti naudojant socket failą", + "gui_settings_connection_type_test_button": "Tikrinti ryšį su „Tor“", + "gui_settings_control_port_label": "Valdymo prievadas", + "gui_settings_socket_file_label": "Socket failas", "gui_settings_socks_label": "SOCKS prievadas", - "gui_settings_authenticate_label": "", - "gui_settings_authenticate_no_auth_option": "", + "gui_settings_authenticate_label": "Tor autentifikavimo nustatymai", + "gui_settings_authenticate_no_auth_option": "Jokio autentifikavimo ar slapukų autentifikavimo", "gui_settings_authenticate_password_option": "Slaptažodis", "gui_settings_password_label": "Slaptažodis", - "gui_settings_tor_bridges": "", - "gui_settings_tor_bridges_no_bridges_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "", - "gui_settings_meek_lite_expensive_warning": "", + "gui_settings_tor_bridges": "„Tor“ tilto palaikymas", + "gui_settings_tor_bridges_no_bridges_radio_option": "Nenaudoti tiltų", + "gui_settings_tor_bridges_obfs4_radio_option": "Naudoti integruotą obfs4 prijungiamą transportą", + "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Naudoti integruotą obfs4 prijungiamą transportą (reikalingas obfs4proxy)", + "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Naudoti integruotus meek_lite („Azure“) prijungiamus transportus", + "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Naudoti integruotus meek_lite („Azure“) prijungiamus transportus (reikalingas obfs4proxy)", + "gui_settings_meek_lite_expensive_warning": "Įspėjimas:

Meek_lite tiltai labai brangiai kainuoja „Tor“ projektui.

Jais naudokitės tik tuo atveju, jei negalite prisijungti prie „Tor“ tiesiogiai, per obfs4 transportą ar kitus įprastus tiltus.", "gui_settings_tor_bridges_custom_radio_option": "Naudoti tinkintus tinklų tiltus", "gui_settings_tor_bridges_custom_label": "Galite gauti tinklų tiltus iš https://bridges.torproject.org", "gui_settings_tor_bridges_invalid": "Nei vienas iš jūsų pridėtų tinklų tiltų neveikia.\nPatikrinkite juos dar kartą arba pridėkite kitus.", @@ -79,60 +79,60 @@ "gui_settings_autostop_timer": "", "gui_settings_autostart_timer_checkbox": "", "gui_settings_autostart_timer": "", - "settings_error_unknown": "", - "settings_error_automatic": "", - "settings_error_socket_port": "", - "settings_error_socket_file": "", - "settings_error_auth": "", - "settings_error_missing_password": "", - "settings_error_unreadable_cookie_file": "", - "settings_error_bundled_tor_not_supported": "", - "settings_error_bundled_tor_timeout": "", + "settings_error_unknown": "Nepavyksta prisijungti prie „Tor“ valdiklio, nes jūsų nustatymai nustatyti nesuprantamai.", + "settings_error_automatic": "Nepavyko prisijungti prie „Tor“ valdiklio. Ar „Tor“ naršyklė (prieinama torproject.org) veikia fone?", + "settings_error_socket_port": "Nepavyksta prisijungti prie „Tor“ valdiklio adresu {}:{}.", + "settings_error_socket_file": "Negalima prisijungti prie „Tor“ valdiklio naudojant lizdo failą {}.", + "settings_error_auth": "Prisijungta prie {}:{}, bet negalima patvirtinti autentiškumo. Galbūt tai ne „Tor“ valdiklis?", + "settings_error_missing_password": "Prisijungta prie „Tor“ valdiklio, tačiau norint jį autentifikuoti reikia slaptažodžio.", + "settings_error_unreadable_cookie_file": "Prisijungta prie „Tor“ valdiklio, bet slaptažodis gali būti klaidingas arba jūsų naudotojui neleidžiama skaityti slapukų failo.", + "settings_error_bundled_tor_not_supported": "Naudojant „Tor“ versiją, kuri pateikiama kartu su \"OnionShare\", \"Windows\" arba \"macOS\" sistemose ji neveiks kūrėjo režime.", + "settings_error_bundled_tor_timeout": "Per ilgai trunka prisijungimas prie „Tor“. Galbūt nesate prisijungę prie interneto arba turite netikslų sistemos laikrodį?", "settings_error_bundled_tor_broken": "OnionShare nepavyko prisijungti prie Tor:\n{}", - "settings_test_success": "", - "error_tor_protocol_error": "", + "settings_test_success": "Prisijungta prie „Tor“ valdiklio.\n\n„Tor“ versija: {}\nPalaiko efemerines onion paslaugas: {}.\nPalaiko kliento autentifikavimą: {}.\nPalaiko naujos kartos .onion adresus: {}.", + "error_tor_protocol_error": "Įvyko „Tor“ klaida: {}", "error_tor_protocol_error_unknown": "", "connecting_to_tor": "Jungiamasi prie Tor tinklo", - "update_available": "", - "update_error_invalid_latest_version": "", - "update_error_check_error": "", + "update_available": "Išleistas naujas „OnionShare“. Paspauskite čia, kad jį gautumėte.

Jūs naudojate {}, o naujausia versija yra {}.", + "update_error_invalid_latest_version": "Nepavyko patikrinti naujos versijos: „OnionShare“ svetainė sako, kad naujausia versija yra neatpažįstama „{}“…", + "update_error_check_error": "Nepavyko patikrinti naujos versijos: Galbūt nesate prisijungę prie „Tor“ arba „OnionShare“ svetainė neveikia?", "update_not_available": "Jūs naudojate naujausią OnionShare versiją.", - "gui_tor_connection_ask": "", + "gui_tor_connection_ask": "Atidarykite nustatymus, kad sutvarkytumėte ryšį su „Tor“?", "gui_tor_connection_ask_open_settings": "Taip", "gui_tor_connection_ask_quit": "Išeiti", "gui_tor_connection_error_settings": "Pabandykite nustatymuose pakeisti tai, kaip OnionShare jungiasi prie Tor tinklo.", "gui_tor_connection_canceled": "Nepavyko prisijungti prie Tor.\n\nĮsitikinkite, kad esate prisijungę prie interneto, o tuomet iš naujo atverkite OnionShare ir nustatykite prisijungimą prie Tor.", "gui_tor_connection_lost": "Atsijungta nuo Tor.", - "gui_server_started_after_autostop_timer": "", - "gui_server_autostop_timer_expired": "", - "gui_server_autostart_timer_expired": "", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "", + "gui_server_started_after_autostop_timer": "Automatinio sustabdymo laikmatis baigėsi prieš paleidžiant serverį. Prašome sukurti naują bendrinimą.", + "gui_server_autostop_timer_expired": "Automatinio sustabdymo laikmatis jau baigėsi. Sureguliuokite jį, kad pradėtumėte dalintis.", + "gui_server_autostart_timer_expired": "Numatytas laikas jau praėjo. Pakoreguokite jį, kad galėtumėte pradėti dalintis.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Automatinio sustabdymo laikas negali būti toks pat arba ankstesnis už automatinio paleidimo laiką. Sureguliuokite jį, kad galėtumėte pradėti dalytis.", "share_via_onionshare": "Bendrinti per OnionShare", "gui_connect_to_tor_for_onion_settings": "", "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "Visi, turintys šį OnionShare adresą gali atsisiųsti jūsų failus, naudodamiesi Tor Naršykle: ", - "gui_website_url_description": "", - "gui_receive_url_description": "", - "gui_url_label_persistent": "", - "gui_url_label_stay_open": "", - "gui_url_label_onetime": "", - "gui_url_label_onetime_and_persistent": "", - "gui_status_indicator_share_stopped": "", + "gui_website_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali apsilankyti jūsų svetainėje naudodamas „Tor“ naršyklę: ", + "gui_receive_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali įkelti failus į jūsų kompiuterį naudodamas „Tor“ naršyklę: ", + "gui_url_label_persistent": "Šis bendrinimas nebus automatiškai sustabdytas.

Kiekvienas vėlesnis bendrinimas pakartotinai naudoja adresą. (Norėdami naudoti vienkartinius adresus, nustatymuose išjunkite \"Naudoti nuolatinį adresą\".)", + "gui_url_label_stay_open": "Šis bendrinimas nebus automatiškai sustabdytas.", + "gui_url_label_onetime": "Šis bendrinimas pabaigus bus automatiškai sustabdytas.", + "gui_url_label_onetime_and_persistent": "Šis bendrinimas nebus automatiškai sustabdytas.

Kiekvienas vėlesnis bendrinimas pakartotinai naudos adresą. (Norėdami naudoti vienkartinius adresus, nustatymuose išjunkite \"Naudoti nuolatinį adresą\".)", + "gui_status_indicator_share_stopped": "Parengta dalintis", "gui_status_indicator_share_working": "Pradedama…", - "gui_status_indicator_share_scheduled": "", - "gui_status_indicator_share_started": "", - "gui_status_indicator_receive_stopped": "", - "gui_status_indicator_receive_working": "", - "gui_status_indicator_receive_scheduled": "", + "gui_status_indicator_share_scheduled": "Suplanuota…", + "gui_status_indicator_share_started": "Dalijimasis", + "gui_status_indicator_receive_stopped": "Parengta gauti", + "gui_status_indicator_receive_working": "Pradedama…", + "gui_status_indicator_receive_scheduled": "Suplanuota…", "gui_status_indicator_receive_started": "Gaunama", - "gui_file_info": "", - "gui_file_info_single": "", - "history_in_progress_tooltip": "", - "history_completed_tooltip": "", - "history_requests_tooltip": "", + "gui_file_info": "{} failai, {}", + "gui_file_info_single": "{} failas, {}", + "history_in_progress_tooltip": "{} vykdoma", + "history_completed_tooltip": "{} baigta", + "history_requests_tooltip": "{} žiniatinklio užklausos", "error_cannot_create_data_dir": "Nepavyko sukurti OnionShare duomenų aplanko: {}", - "gui_receive_mode_warning": "", + "gui_receive_mode_warning": "Gavimo režimas leidžia žmonėms nusiųsti failus į jūsų kompiuterį.

Kai kurie failai gali perimti kompiuterio valdymą, jei juos atidarysite. Atidarykite failus tik iš žmonių, kuriais pasitikite, arba jei žinote, ką darote.", "gui_mode_share_button": "", "gui_mode_receive_button": "", "gui_mode_website_button": "", @@ -147,67 +147,93 @@ "systray_menu_exit": "Išeiti", "systray_page_loaded_title": "Puslapis įkeltas", "systray_page_loaded_message": "OnionShare adresas įkeltas", - "systray_share_started_title": "", + "systray_share_started_title": "Pradėtas dalijimasis", "systray_share_started_message": "Pradedama kažkam siųsti failus", - "systray_share_completed_title": "", + "systray_share_completed_title": "Dalijimasis baigtas", "systray_share_completed_message": "Failų siuntimas užbaigtas", - "systray_share_canceled_title": "", - "systray_share_canceled_message": "", - "systray_receive_started_title": "", + "systray_share_canceled_title": "Dalijimasis atšauktas", + "systray_share_canceled_message": "Kažkas atšaukė jūsų failų gavimą", + "systray_receive_started_title": "Pradėtas gavimas", "systray_receive_started_message": "Kažkas siunčia jums failus", "gui_all_modes_history": "Istorija", - "gui_all_modes_clear_history": "", - "gui_all_modes_transfer_started": "", - "gui_all_modes_transfer_finished_range": "", - "gui_all_modes_transfer_finished": "", - "gui_all_modes_transfer_canceled_range": "", - "gui_all_modes_transfer_canceled": "", - "gui_all_modes_progress_complete": "", + "gui_all_modes_clear_history": "Išvalyti viską", + "gui_all_modes_transfer_started": "Pradėta {}", + "gui_all_modes_transfer_finished_range": "Perkelta {} - {}", + "gui_all_modes_transfer_finished": "Perkelta {}", + "gui_all_modes_transfer_canceled_range": "Atšaukta {} - {}", + "gui_all_modes_transfer_canceled": "Atšaukta {}", + "gui_all_modes_progress_complete": "Praėjo %p%, {0:s}.", "gui_all_modes_progress_starting": "{0:s}, %p% (apskaičiuojama)", - "gui_all_modes_progress_eta": "", + "gui_all_modes_progress_eta": "{0:s}, Preliminarus laikas: {1:s}, %p%", "gui_share_mode_no_files": "Kol kas nėra išsiųstų failų", - "gui_share_mode_autostop_timer_waiting": "", - "gui_website_mode_no_files": "", + "gui_share_mode_autostop_timer_waiting": "Laukiama, kol bus baigtas siuntimas", + "gui_website_mode_no_files": "Dar nėra bendrinama jokia svetainė", "gui_receive_mode_no_files": "Kol kas nėra gautų failų", - "gui_receive_mode_autostop_timer_waiting": "", - "days_first_letter": "d.", - "hours_first_letter": "", - "minutes_first_letter": "", - "seconds_first_letter": "", + "gui_receive_mode_autostop_timer_waiting": "Laukiama, kol bus baigtas gavimas", + "days_first_letter": "d", + "hours_first_letter": "val", + "minutes_first_letter": "min", + "seconds_first_letter": "s", "gui_new_tab": "Nauja kortelė", "gui_new_tab_tooltip": "Atverti naują kortelę", - "gui_new_tab_share_button": "", + "gui_new_tab_share_button": "Dalytis failais", "gui_new_tab_share_description": "", - "gui_new_tab_receive_button": "", + "gui_new_tab_receive_button": "Gauti failus", "gui_new_tab_receive_description": "", - "gui_new_tab_website_button": "", + "gui_new_tab_website_button": "Talpinti svetainę", "gui_new_tab_website_description": "", "gui_close_tab_warning_title": "Ar tikrai?", - "gui_close_tab_warning_persistent_description": "", - "gui_close_tab_warning_share_description": "", - "gui_close_tab_warning_receive_description": "", - "gui_close_tab_warning_website_description": "", + "gui_close_tab_warning_persistent_description": "Šis skirtukas yra nuolatinis. Jei jį uždarysite, prarasite jo naudojamą onion adresą. Ar tikrai norite jį uždaryti?", + "gui_close_tab_warning_share_description": "Šiuo metu siunčiate failus. Ar tikrai norite uždaryti šį skirtuką?", + "gui_close_tab_warning_receive_description": "Šiuo metu gaunate failus. Ar tikrai norite uždaryti šį skirtuką?", + "gui_close_tab_warning_website_description": "Aktyviai talpinate svetainę. Ar tikrai norite uždaryti šį skirtuką?", "gui_close_tab_warning_close": "Užverti", "gui_close_tab_warning_cancel": "Atsisakyti", "gui_quit_warning_title": "Ar tikrai?", - "gui_quit_warning_description": "", + "gui_quit_warning_description": "Kuriuose skirtukuose yra aktyviai dalijamasi . Jei išeisite, visi skirtukai bus uždaryti. Ar tikrai norite baigti?", "gui_quit_warning_quit": "Išeiti", "gui_quit_warning_cancel": "Atsisakyti", "mode_settings_advanced_toggle_show": "Rodyti išplėstinius nustatymus", "mode_settings_advanced_toggle_hide": "Slėpti išplėstinius nustatymus", - "mode_settings_persistent_checkbox": "", + "mode_settings_persistent_checkbox": "Išsaugoti šį skirtuką ir automatiškai jį atidaryti, kai atidarysiu „OnionShare“", "mode_settings_public_checkbox": "Nenaudoti slaptažodžio", - "mode_settings_autostart_timer_checkbox": "", - "mode_settings_autostop_timer_checkbox": "", - "mode_settings_legacy_checkbox": "", - "mode_settings_client_auth_checkbox": "", - "mode_settings_share_autostop_sharing_checkbox": "", + "mode_settings_autostart_timer_checkbox": "Pradėti onion paslaugos paleidimą suplanuotu laiku", + "mode_settings_autostop_timer_checkbox": "Sustabdyti onion paslaugos paleidimą suplanuotu laiku", + "mode_settings_legacy_checkbox": "Naudoti senąjį adresą (nerekomenduojama naudoti v2 onion paslaugos)", + "mode_settings_client_auth_checkbox": "Naudoti kliento autorizavimą", + "mode_settings_share_autostop_sharing_checkbox": "Sustabdyti dalijimąsi po to, kai failai buvo išsiųsti (atžymėkite, jei norite leisti atsisiųsti atskirus failus)", "mode_settings_receive_data_dir_label": "Įrašyti failus į", "mode_settings_receive_data_dir_browse_button": "Naršyti", - "mode_settings_website_disable_csp_checkbox": "", + "mode_settings_website_disable_csp_checkbox": "Nesiųskite turinio saugumo politikos antraštės (leidžia jūsų svetainei naudoti trečiųjų šalių išteklius)", "gui_file_selection_remove_all": "Šalinti visus", "gui_remove": "Šalinti", "gui_qr_code_dialog_title": "OnionShare QR kodas", "gui_show_url_qr_code": "Rodyti QR kodą", - "gui_open_folder_error": "Nepavyko atverti aplanko naudojant xdg-open. Failas yra čia: {}" + "gui_open_folder_error": "Nepavyko atverti aplanko naudojant xdg-open. Failas yra čia: {}", + "gui_chat_stop_server": "Sustabdyti pokalbių serverį", + "gui_chat_start_server": "Pradėti pokalbių serverį", + "history_receive_read_message_button": "Skaityti žinutę", + "mode_settings_title_label": "Pasirinktinis pavadinimas", + "gui_main_page_chat_button": "Pradėti pokalbį", + "gui_main_page_receive_button": "Pradėti gavimą", + "gui_main_page_share_button": "Pradėti dalintis", + "gui_new_tab_chat_button": "Kalbėtis anonimiškai", + "gui_status_indicator_chat_scheduled": "Suplanuota…", + "gui_status_indicator_chat_working": "Pradedama…", + "gui_tab_name_chat": "Pokalbiai", + "gui_tab_name_website": "Tinklalapis", + "gui_tab_name_receive": "Gauti", + "gui_tab_name_share": "Dalintis", + "gui_receive_flatpak_data_dir": "Kadangi „OnionShare“ įdiegėte naudodami „Flatpak“, turite išsaugoti failus aplanke, esančiame ~/OnionShare.", + "mode_settings_receive_webhook_url_checkbox": "Naudoti pranešimų webhook", + "gui_main_page_website_button": "Pradėti talpinimą", + "gui_status_indicator_chat_started": "Kalbamasi", + "gui_status_indicator_chat_stopped": "Paruošta pokalbiui", + "gui_color_mode_changed_notice": "Iš naujo paleiskite „OnionShare“, kad būtų pritaikytas naujas spalvų režimas.", + "mode_settings_receive_disable_files_checkbox": "Išjungti failų įkėlimą", + "mode_settings_receive_disable_text_checkbox": "Išjungti teksto pateikimą", + "gui_rendezvous_cleanup": "Laukiama, kol užsidarys „Tor“ grandinės, kad įsitikintume, jog jūsų failai sėkmingai perkelti.\n\nTai gali užtrukti kelias minutes.", + "gui_rendezvous_cleanup_quit_early": "Išeiti anksčiau", + "error_port_not_available": "„OnionShare“ prievadas nepasiekiamas", + "gui_chat_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali prisijungti prie šio pokalbių kambario naudodamas „Tor“ naršyklę: " } diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/src/onionshare/resources/locale/pl.json index 61b07d8b..2ef34565 100644 --- a/desktop/src/onionshare/resources/locale/pl.json +++ b/desktop/src/onionshare/resources/locale/pl.json @@ -283,5 +283,8 @@ "gui_close_tab_warning_share_description": "Jesteś w trakcie wysyłania plików. Czy na pewno chcesz zamknąć tę kartę?", "gui_close_tab_warning_persistent_description": "Ta zakładka jest trwała. Jeśli ją zamkniesz, stracisz adres cebulowy, którego używa. Czy na pewno chcesz ją zamknąć?", "gui_color_mode_changed_notice": "Uruchom ponownie OnionShare aby zastosować nowy tryb kolorów.", - "gui_chat_url_description": "Każdy z tym adresem OnionShare może dołączyć do tego pokoju używając Przeglądarki Tor: " + "gui_chat_url_description": "Każdy z tym adresem OnionShare może dołączyć do tego pokoju używając Przeglądarki Tor: ", + "mode_settings_receive_disable_files_checkbox": "Wyłącz wysyłanie plików", + "gui_status_indicator_chat_scheduled": "Zaplanowane…", + "gui_status_indicator_chat_working": "Uruchamianie…" } diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/src/onionshare/resources/locale/pt_BR.json index 2f261bc3..bc7fe0c7 100644 --- a/desktop/src/onionshare/resources/locale/pt_BR.json +++ b/desktop/src/onionshare/resources/locale/pt_BR.json @@ -287,5 +287,14 @@ "gui_chat_url_description": "Qualquer um com este endereço OnionShare pode entrar nesta sala de chat usando o Tor Browser: ", "gui_rendezvous_cleanup_quit_early": "Fechar facilmente", "gui_rendezvous_cleanup": "Aguardando o fechamento dos circuitos do Tor para ter certeza de que seus arquivos foram transferidos com sucesso.\n\nIsso pode demorar alguns minutos.", - "gui_color_mode_changed_notice": "Reinicie o OnionShare para que o novo modo de cor seja aplicado." + "gui_color_mode_changed_notice": "Reinicie o OnionShare para que o novo modo de cor seja aplicado.", + "history_receive_read_message_button": "Ler mensagem", + "mode_settings_receive_webhook_url_checkbox": "Usar webhook de notificação", + "mode_settings_receive_disable_files_checkbox": "Desativar o carregamento de arquivos", + "mode_settings_receive_disable_text_checkbox": "Desativar envio de texto", + "mode_settings_title_label": "Título personalizado", + "gui_status_indicator_chat_started": "Conversando", + "gui_status_indicator_chat_scheduled": "Programando…", + "gui_status_indicator_chat_working": "Começando…", + "gui_status_indicator_chat_stopped": "Pronto para conversar" } diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/src/onionshare/resources/locale/sv.json index 9e07d2c4..a3c97704 100644 --- a/desktop/src/onionshare/resources/locale/sv.json +++ b/desktop/src/onionshare/resources/locale/sv.json @@ -118,7 +118,7 @@ "settings_error_bundled_tor_timeout": "Det tar för lång tid att ansluta till Tor. Kanske är du inte ansluten till Internet, eller har en felaktig systemklocka?", "settings_error_bundled_tor_broken": "OnionShare kunde inte ansluta till Tor:\n{}", "settings_test_success": "Ansluten till Tor-regulatorn.\n\nTor-version: {}\nStöder efemära onion-tjänster: {}.\nStöder klientautentisering: {}.\nStöder nästa generations .onion-adresser: {}.", - "error_tor_protocol_error": "Det fanns ett fel med Tor: {}", + "error_tor_protocol_error": "Det uppstod ett fel med Tor: {}", "error_tor_protocol_error_unknown": "Det fanns ett okänt fel med Tor", "error_invalid_private_key": "Denna privata nyckeltyp stöds inte", "connecting_to_tor": "Ansluter till Tor-nätverket", @@ -126,7 +126,7 @@ "update_error_check_error": "Det gick inte att söka efter ny version: Kanske är du inte ansluten till Tor eller OnionShare-webbplatsen är nere?", "update_error_invalid_latest_version": "Det gick inte att söka efter ny version: OnionShare-webbplatsen säger att den senaste versionen är den oigenkännliga \"{}\"…", "update_not_available": "Du kör den senaste OnionShare.", - "gui_tor_connection_ask": "Öppna inställningarna för att sortera ut anslutning till Tor?", + "gui_tor_connection_ask": "Öppna inställningarna för att reda ut anslutning till Tor?", "gui_tor_connection_ask_open_settings": "Ja", "gui_tor_connection_ask_quit": "Avsluta", "gui_tor_connection_error_settings": "Försök att ändra hur OnionShare ansluter till Tor-nätverket i inställningarna.", @@ -219,7 +219,7 @@ "gui_settings_autostart_timer_checkbox": "Använd automatisk start-tidtagare", "gui_settings_autostart_timer": "Starta delning vid:", "gui_server_autostart_timer_expired": "Den schemalagda tiden har redan passerat. Vänligen justera den för att starta delning.", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Den automatiska stopp-tiden kan inte vara samma eller tidigare än den automatiska starttiden. Vänligen justera den för att starta delning.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Den automatiska stopp-tiden kan inte vara samma eller tidigare än den automatiska starttiden. Vänligen justera den för att starta delning.", "gui_status_indicator_share_scheduled": "Planerad…", "gui_status_indicator_receive_scheduled": "Planerad…", "days_first_letter": "d", @@ -248,7 +248,7 @@ "mode_settings_receive_data_dir_label": "Spara filer till", "mode_settings_share_autostop_sharing_checkbox": "Stoppa delning efter att filer har skickats (avmarkera för att tillåta hämtning av enskilda filer)", "mode_settings_client_auth_checkbox": "Använd klientauktorisering", - "mode_settings_legacy_checkbox": "Använd en äldre adress (v2 oniontjänst, rekommenderas inte)", + "mode_settings_legacy_checkbox": "Använd en äldre adress (v2-oniontjänst, rekommenderas inte)", "mode_settings_autostart_timer_checkbox": "Starta oniontjänsten vid schemalagd tid", "mode_settings_autostop_timer_checkbox": "Stoppa oniontjänsten vid schemalagd tid", "mode_settings_public_checkbox": "Använd inte ett lösenord", @@ -280,18 +280,28 @@ "gui_chat_start_server": "Starta chattservern", "gui_file_selection_remove_all": "Ta bort alla", "gui_remove": "Ta bort", - "gui_main_page_share_button": "Börja dela", + "gui_main_page_share_button": "Starta delning", "error_port_not_available": "OnionShare-porten är inte tillgänglig", "gui_rendezvous_cleanup_quit_early": "Avsluta tidigt", "gui_rendezvous_cleanup": "Väntar på att Tor-kretsar stänger för att vara säker på att dina filer har överförts.\n\nDet kan ta några minuter.", - "gui_tab_name_chat": "Chatta", + "gui_tab_name_chat": "Chatt", "gui_tab_name_website": "Webbplats", "gui_tab_name_receive": "Ta emot", "gui_tab_name_share": "Dela", "gui_main_page_chat_button": "Börja chatta", "gui_main_page_website_button": "Börja publicera", - "gui_main_page_receive_button": "Börja ta emot", + "gui_main_page_receive_button": "Starta mottagning", "gui_new_tab_chat_button": "Chatta anonymt", - "gui_open_folder_error": "Misslyckades att öppna mappen med xdg-open. Filen finns här: {}", - "gui_chat_url_description": "Alla med denna OnionShare-adress kan gå med i detta chattrum med Tor Browser: " + "gui_open_folder_error": "Det gick inte att öppna mappen med xdg-open. Filen finns här: {}", + "gui_chat_url_description": "Alla med denna OnionShare-adress kan gå med i detta chattrum med Tor Browser: ", + "gui_status_indicator_chat_stopped": "Redo att chatta", + "gui_status_indicator_chat_scheduled": "Schemalagd…", + "history_receive_read_message_button": "Läs meddelandet", + "mode_settings_receive_webhook_url_checkbox": "Använd aviseringswebhook", + "mode_settings_receive_disable_files_checkbox": "Inaktivera uppladdning av filer", + "mode_settings_receive_disable_text_checkbox": "Inaktivera att skicka text", + "mode_settings_title_label": "Anpassad titel", + "gui_color_mode_changed_notice": "Starta om OnionShare för att det nya färgläget ska tillämpas.", + "gui_status_indicator_chat_started": "Chattar", + "gui_status_indicator_chat_working": "Startar…" } diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json index 9b217970..e00c3aba 100644 --- a/desktop/src/onionshare/resources/locale/tr.json +++ b/desktop/src/onionshare/resources/locale/tr.json @@ -5,17 +5,17 @@ "not_a_file": "{0:s} dosya değil.", "other_page_loaded": "Adres yüklendi", "closing_automatically": "Aktarım tamamlandığından durduruldu", - "large_filesize": "Uyarı: Büyük bir paylaşma göndermek saatler sürebilir", + "large_filesize": "Uyarı: Büyük bir paylaşım saatler sürebilir", "help_local_only": "Tor kullanmayın (sadece geliştirme için)", "help_stay_open": "Dosyalar gönderildikten sonra paylaşmaya devam et", "help_debug": "OnionShare hatalarını stdout'a ve web hatalarını diske yaz", "help_filename": "Paylaşmak için dosya ve klasörler listesi", - "gui_drag_and_drop": "Paylaşmaya başlamak için dosya ve klasörleri sürükleyip bırakın", + "gui_drag_and_drop": "Paylaşıma başlamak için dosya ve klasörleri sürükleyip bırakın", "gui_add": "Ekle", "gui_delete": "Sil", "gui_choose_items": "Seç", "gui_share_start_server": "Paylaşmaya başla", - "gui_share_stop_server": "Paylaşmayı durdur", + "gui_share_stop_server": "Paylaşımı durdur", "gui_copy_url": "Adresi Kopyala", "gui_downloads": "İndirilenler:", "gui_canceled": "İptal edilen", @@ -33,9 +33,9 @@ "help_stealth": "İstemci yetkilendirmesini kullan (gelişmiş)", "help_receive": "Paylaşımı göndermek yerine, almak", "help_config": "Özel JSON config dosyası konumu (isteğe bağlı)", - "gui_add_files": "Dosya Ekle", - "gui_add_folder": "Klasör Ekle", - "gui_share_stop_server_autostop_timer": "Paylaşmayı Durdur ({})", + "gui_add_files": "Dosya ekle", + "gui_add_folder": "Klasör ekle", + "gui_share_stop_server_autostop_timer": "Paylaşımı Durdur ({})", "gui_share_stop_server_autostop_timer_tooltip": "Otomatik durdurma zamanlayıcısı {} sonra biter", "gui_receive_start_server": "Alma Modunu Başlat", "gui_receive_stop_server": "Alma Modunu Durdur", @@ -237,8 +237,8 @@ "gui_new_tab_tooltip": "Yeni bir sekme aç", "gui_new_tab": "Yeni Sekme", "gui_remove": "Kaldır", - "gui_file_selection_remove_all": "Tümünü Kaldır", - "gui_chat_start_server": "Sohbet sunucusu başlat", + "gui_file_selection_remove_all": "Tümünü kaldır", + "gui_chat_start_server": "Sohbet sunucusunu başlat", "gui_chat_stop_server": "Sohbet sunucusunu durdur", "gui_receive_flatpak_data_dir": "OnionShare'i Flatpak kullanarak kurduğunuz için, dosyaları ~/OnionShare içindeki bir klasöre kaydetmelisiniz.", "gui_show_url_qr_code": "QR Kodu Göster", diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json index 03ea9dfb..cf971be0 100644 --- a/desktop/src/onionshare/resources/locale/uk.json +++ b/desktop/src/onionshare/resources/locale/uk.json @@ -60,7 +60,7 @@ "gui_settings_control_port_label": "Порт керування", "gui_settings_socket_file_label": "Файл сокета", "gui_settings_socks_label": "SOCKS порт", - "gui_settings_authenticate_label": "Параметри автентифікації Tor", + "gui_settings_authenticate_label": "Налаштування автентифікації Tor", "gui_settings_authenticate_no_auth_option": "Без автентифікації або автентифікація через cookie", "gui_settings_authenticate_password_option": "Пароль", "gui_settings_password_label": "Пароль", @@ -99,7 +99,7 @@ "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": "Відкрити налаштування для перевірки з'єднання з Tor?", "gui_tor_connection_ask_open_settings": "Так", "gui_tor_connection_ask_quit": "Вийти", "gui_tor_connection_error_settings": "Спробуйте змінити в параметрах, як OnionShare з'єднується з мережею Tor.", @@ -132,7 +132,7 @@ "history_in_progress_tooltip": "{} в процесі", "history_completed_tooltip": "{} завершено", "error_cannot_create_data_dir": "Не вдалося створити теку даних OnionShare: {}", - "gui_receive_mode_warning": "Режим отримання дозволяє завантажувати файли до вашого комп'ютера.

Деякі файли, потенційно, можуть заволодіти вашим комп'ютером, у разі їх відкриття. Відкривайте файли лише від довірених осіб, або якщо впевнені в своїх діях.", + "gui_receive_mode_warning": "Режим отримання дозволяє завантажувати файли до вашого комп'ютера.

Деякі файли, потенційно, можуть заволодіти вашим комп'ютером, у разі їх відкриття. Відкривайте файли лише від довірених осіб, або якщо ви впевнені у своїх діях.", "gui_mode_share_button": "Поділитися файлами", "gui_mode_receive_button": "Отримання Файлів", "gui_settings_receiving_label": "Параметри отримання", diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/src/onionshare/resources/locale/yo.json index 96b5a0d1..fdd6dbea 100644 --- a/desktop/src/onionshare/resources/locale/yo.json +++ b/desktop/src/onionshare/resources/locale/yo.json @@ -7,14 +7,14 @@ "give_this_url_receive_stealth": "", "ctrlc_to_stop": "", "not_a_file": "", - "not_a_readable_file": "", + "not_a_readable_file": "{0:s} je oun ti a ko le ka.", "no_available_port": "", - "other_page_loaded": "", - "close_on_autostop_timer": "", - "closing_automatically": "", + "other_page_loaded": "Adiresi ti wole", + "close_on_autostop_timer": "O danuduro nitori akoko idaduro aifowoyi ti pe", + "closing_automatically": "Odanuduro nitori o ti fi ranse tan", "timeout_download_still_running": "", "timeout_upload_still_running": "", - "large_filesize": "", + "large_filesize": "Ikilo: Fi fi nkan repete ranse le gba aimoye wakati", "systray_menu_exit": "", "systray_download_started_title": "", "systray_download_started_message": "", @@ -32,16 +32,16 @@ "help_verbose": "", "help_filename": "", "help_config": "", - "gui_drag_and_drop": "", - "gui_add": "", + "gui_drag_and_drop": "Wo awon iwe pelebe ati apamowo re sibi lati bere sini fi ranse", + "gui_add": "Fikun", "gui_delete": "", - "gui_choose_items": "", - "gui_share_start_server": "", - "gui_share_stop_server": "", - "gui_share_stop_server_autostop_timer": "", + "gui_choose_items": "Yan", + "gui_share_start_server": "Bere si ni pin", + "gui_share_stop_server": "Dawo pinpin duro", + "gui_share_stop_server_autostop_timer": "Dawo pinpin duro ({})", "gui_share_stop_server_autostop_timer_tooltip": "", - "gui_receive_start_server": "", - "gui_receive_stop_server": "", + "gui_receive_start_server": "Bere ipele gbigba", + "gui_receive_stop_server": "Duro ipele gbigba", "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", @@ -181,5 +181,14 @@ "gui_download_in_progress": "", "gui_open_folder_error_nautilus": "", "gui_settings_language_label": "", - "gui_settings_language_changed_notice": "" + "gui_settings_language_changed_notice": "", + "gui_start_server_autostart_timer_tooltip": "Akoko ti nbere laifowoyi duro ni {}", + "gui_stop_server_autostop_timer_tooltip": "Akoko ti nduro laifowoyi dopin ni {}", + "gui_chat_stop_server": "Da olupin iregbe duro", + "gui_chat_start_server": "Bere olupin iregbe", + "gui_file_selection_remove_all": "Yo gbogbo re kuro", + "gui_remove": "Yokuro", + "gui_add_folder": "S'afikun folda", + "gui_add_files": "S'afikun faili", + "incorrect_password": "Ashiko oro igbaniwole" } diff --git a/docs/source/locale/bn/LC_MESSAGES/security.po b/docs/source/locale/bn/LC_MESSAGES/security.po index f8110093..b7413c02 100644 --- a/docs/source/locale/bn/LC_MESSAGES/security.po +++ b/docs/source/locale/bn/LC_MESSAGES/security.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3.1\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-02-22 13:40-0800\n" -"PO-Revision-Date: 2021-04-24 23:31+0000\n" +"PO-Revision-Date: 2021-06-27 06:32+0000\n" "Last-Translator: Oymate \n" "Language-Team: none\n" "Language: bn\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.7-dev\n" +"X-Generator: Weblate 4.7.1-dev\n" #: ../../source/security.rst:2 msgid "Security Design" @@ -32,7 +32,7 @@ msgstr "" #: ../../source/security.rst:9 msgid "What OnionShare protects against" -msgstr "" +msgstr "অনিয়নশেয়ার কিসের বিরুদ্ধে নিরাপত্তা দেয়" #: ../../source/security.rst:11 msgid "**Third parties don't have access to anything that happens in OnionShare.** Using OnionShare means hosting services directly on your computer. When sharing files with OnionShare, they are not uploaded to any server. If you make an OnionShare chat room, your computer acts as a server for that too. This avoids the traditional model of having to trust the computers of others." @@ -52,7 +52,7 @@ msgstr "" #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" -msgstr "" +msgstr "অনিওনশেয়ার কিসের বিরুদ্ধে রক্ষা করে না" #: ../../source/security.rst:22 msgid "**Communicating the OnionShare address might not be secure.** Communicating the OnionShare address to people is the responsibility of the OnionShare user. If sent insecurely (such as through an email message monitored by an attacker), an eavesdropper can tell that OnionShare is being used. If the eavesdropper loads the address in Tor Browser while the service is still up, they can access it. To avoid this, the address must be communicateed securely, via encrypted text message (probably with disappearing messages enabled), encrypted email, or in person. This isn't necessary when using OnionShare for something that isn't secret." diff --git a/docs/source/locale/hr/LC_MESSAGES/index.po b/docs/source/locale/hr/LC_MESSAGES/index.po index 711a4da0..14def152 100644 --- a/docs/source/locale/hr/LC_MESSAGES/index.po +++ b/docs/source/locale/hr/LC_MESSAGES/index.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-09-03 11:46-0700\n" -"PO-Revision-Date: 2020-12-17 19:29+0000\n" +"PO-Revision-Date: 2021-07-27 13:32+0000\n" "Last-Translator: Milo Ivir \n" "Language-Team: none\n" "Language: hr\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.7.2-dev\n" #: ../../source/index.rst:2 msgid "OnionShare's documentation" @@ -27,5 +27,5 @@ msgstr "OnionShare dokumentacija" 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 je alat otvorenog koda koji omogućuje sigurno i anonimno " -"dijeljenje datoteka, hosting za web-stranice te čavrljanje s prijateljima " +"dijeljenje datoteka, hosting za web-stranice te razgovaranje s prijateljima " "pomoću mreže Tor." diff --git a/docs/source/locale/tr/LC_MESSAGES/advanced.po b/docs/source/locale/tr/LC_MESSAGES/advanced.po index b3ac8a80..37073fe4 100644 --- a/docs/source/locale/tr/LC_MESSAGES/advanced.po +++ b/docs/source/locale/tr/LC_MESSAGES/advanced.po @@ -8,24 +8,24 @@ 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-07 18:32+0000\n" -"Last-Translator: Oğuz Ersen \n" +"PO-Revision-Date: 2021-07-15 20:32+0000\n" +"Last-Translator: Tur \n" "Language-Team: tr \n" "Language: tr\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" +"X-Generator: Weblate 4.7.2-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 msgid "Advanced Usage" -msgstr "Gelişmiş Kullanım" +msgstr "Gelişmiş kullanım" #: ../../source/advanced.rst:7 msgid "Save Tabs" -msgstr "Sekmeleri Kaydedin" +msgstr "Sekmeleri kaydedin" #: ../../source/advanced.rst:9 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/advanced.po b/docs/source/locale/uk/LC_MESSAGES/advanced.po index 12402413..ef1dbbc8 100644 --- a/docs/source/locale/uk/LC_MESSAGES/advanced.po +++ b/docs/source/locale/uk/LC_MESSAGES/advanced.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-07 18:32+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 @@ -83,10 +83,10 @@ msgid "" "wrong guesses at the password, your onion service is automatically " "stopped to prevent a brute force attack against the OnionShare service." msgstr "" -"Типово всі служби OnionShare захищені іменем користувача ``onionshare`` і" -" випадково створеним паролем. Якщо хтось вводить пароль неправильно 20 " -"разів, ваша служба onion автоматично зупинениться, щоб запобігти грубій " -"спробі зламу служби OnionShare." +"Типово всі служби OnionShare захищені іменем користувача ``onionshare`` і " +"випадково створеним паролем. Якщо хтось вводить пароль неправильно 20 разів, " +"ваша служба onion автоматично зупиняється, щоб запобігти спробі грубого " +"зламу служби OnionShare." #: ../../source/advanced.rst:31 msgid "" @@ -186,10 +186,10 @@ msgid "" "making sure they're not available on the Internet for more than a few " "days." msgstr "" -"**Планування автоматичної зупинки служби OnionShare може бути корисним " -"для обмеження надсилання**, наприклад, якщо ви хочете поділитися таємними" -" документами й буди певними, що вони не доступні в Інтернеті впродовж " -"більше кількох днів." +"**Планування автоматичної зупинки служби OnionShare може бути корисним для " +"обмеження надсилання**, наприклад, якщо ви хочете поділитися таємними " +"документами й бути певними, що вони не доступні в Інтернеті впродовж більше " +"кількох днів." #: ../../source/advanced.rst:65 msgid "Command-line Interface" diff --git a/docs/source/locale/uk/LC_MESSAGES/develop.po b/docs/source/locale/uk/LC_MESSAGES/develop.po index ce18e618..98c947b0 100644 --- a/docs/source/locale/uk/LC_MESSAGES/develop.po +++ b/docs/source/locale/uk/LC_MESSAGES/develop.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: 2021-01-26 22:32+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.5-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -41,12 +41,13 @@ msgid "" msgstr "" "OnionShare має відкриту команду Keybase для обговорення проєкту, включно з " "питаннями, обміном ідеями та побудовою, плануванням подальшого розвитку. (Це " -"також простий спосіб надсилати захищені наскрізним шифруванням прямі " -"повідомлення іншим у спільноті OnionShare, як-от адреси OnionShare.) Щоб " -"використовувати Keybase, потрібно завантажити програму `Keybase app " -"`_, створити обліковий запис та `приєднайтися " -"до цієї команди `_. У програмі перейдіть " -"до «Команди», натисніть «Приєднатися до команди» та введіть «onionshare»." +"також простий спосіб надсилати безпосередні захищені наскрізним шифруванням " +"повідомлення іншим спільноти OnionShare, наприклад адреси OnionShare.) Щоб " +"користуватися Keybase, потрібно завантажити застосунок `Keybase app " +"`_, створити обліковий запис та `приєднайтеся " +"до цієї команди `_. У застосунку " +"перейдіть до «Команди», натисніть «Приєднатися до команди» та введіть " +"«onionshare»." #: ../../source/develop.rst:12 msgid "" @@ -54,9 +55,9 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"OnionShare також має `список розсилки " -"` _ для " -"розробників та дизайнерів для обговорення проєкту." +"OnionShare також має `список розсилання `_ для розробників та дизайнерів для обговорення " +"проєкту." #: ../../source/develop.rst:15 msgid "Contributing Code" @@ -79,9 +80,9 @@ msgid "" "there are any you'd like to tackle." msgstr "" "Якщо ви хочете допомогти кодом OnionShare, приєднайтеся до команди Keybase і " -"запитайте над чим ви думаєте працювати. Ви також повинні переглянути всі `" -"відкриті запити `_ на " -"GitHub, щоб побачити, чи є такі, які ви хотіли б розв'язати." +"запитайте над чим можна попрацювати. Також варто переглянути всі `відкриті " +"завдання `_ на GitHub, щоб " +"побачити, чи є такі, які б ви хотіли розв'язати." #: ../../source/develop.rst:22 msgid "" @@ -89,7 +90,7 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Коли ви будете готові внести код, відкрийте запит надсилання до сховища " +"Коли ви будете готові допомогти код, відкрийте «pull request» до репозиторію " "GitHub і один із супровідників проєкту перегляне його та, можливо, поставить " "питання, попросить змінити щось, відхилить його або об’єднає з проєктом." @@ -107,10 +108,10 @@ msgid "" "graphical version." msgstr "" "OnionShare розроблено на Python. Для початку клонуйте сховище Git за адресою " -"https://github.com/micahflee/onionshare/, а потім зверніться до файлу ``cli/" -"README.md``, щоб дізнатися, як налаштувати середовище розробки для версії " -"командного рядка та файл ``desktop/README.md``, щоб дізнатися, як " -"налаштувати середовище розробки для графічної версії." +"https://github.com/micahflee/onionshare/, а потім перегляньте файл ``cli/" +"README.md``, щоб дізнатися, як налаштувати середовище розробки у командному " +"рядку або файл ``desktop/README.md``, щоб дізнатися, як налаштувати " +"середовище розробки у версії з графічним інтерфейсом." #: ../../source/develop.rst:32 msgid "" @@ -158,8 +159,8 @@ msgid "" " are manipulated." msgstr "" "Це може бути корисно для вивчення ланцюжка подій, що відбуваються під час " -"користування програмою, або значень певних змінних до та після того, як ними " -"маніпулюють." +"користування OnionShare, або значень певних змінних до та після взаємодії з " +"ними." #: ../../source/develop.rst:124 msgid "Local Only" @@ -218,8 +219,8 @@ msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." msgstr "" -"Іноді оригінальні англійські рядки містять помилки або не збігаються між " -"програмою та документацією." +"Іноді оригінальні англійські рядки містять помилки або відрізняються у " +"застосунку та документації." #: ../../source/develop.rst:178 msgid "" @@ -229,9 +230,9 @@ msgid "" "the usual code review processes." msgstr "" "Вдоскональте рядок джерела файлу, додавши @kingu до свого коментаря Weblate, " -"або повідомте про проблему на GitHub або запит на додавання. Останнє " -"гарантує, що всі основні розробники, бачать пропозицію та можуть потенційно " -"змінити рядок за допомогою звичайних процесів перегляду коду." +"або повідомте про проблему на GitHub, або надішліть запит на додавання. " +"Останнє гарантує, що всі основні розробники, бачать пропозицію та, ймовірно, " +"можуть змінити рядок за допомогою звичайних процесів перегляду коду." #: ../../source/develop.rst:182 msgid "Status of Translations" @@ -243,9 +244,9 @@ msgid "" "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Ось поточний стан перекладу. Якщо ви хочете розпочати переклад мовою, якої " -"тут немає, будь ласка, напишіть нам до списку розсилки: onionshare-dev@lists." -"riseup.net" +"Тут знаходиться поточний стан перекладу. Якщо ви хочете розпочати переклад " +"відсутньою тут мовою, будь ласка, напишіть нам до списку розсилання: " +"onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" diff --git a/docs/source/locale/uk/LC_MESSAGES/features.po b/docs/source/locale/uk/LC_MESSAGES/features.po index 486fe5bc..341da9ed 100644 --- a/docs/source/locale/uk/LC_MESSAGES/features.po +++ b/docs/source/locale/uk/LC_MESSAGES/features.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-07 18:32+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/features.rst:4 @@ -72,10 +72,9 @@ msgid "" "works best when working with people in real-time." msgstr "" "Якщо ви запустили OnionShare на ноутбуці, щоб надіслати комусь файли, а " -"потім зупинити його роботу перед надсиланням файлів, служба буде " -"недоступна, доки роботу ноутбука не буде поновлено і знову з'явиться в " -"Інтернеті. OnionShare найкраще працює під час роботи з людьми в режимі " -"реального часу." +"потім зупинили його роботу перед надсиланням файлів, служба буде недоступна, " +"доки роботу ноутбука не буде поновлено і він знову з'єднається з інтернетом. " +"OnionShare найкраще працює під час роботи з людьми в режимі реального часу." #: ../../source/features.rst:18 msgid "" @@ -101,18 +100,17 @@ msgid "" "anonymously. Open a share tab, drag in the files and folders you wish to " "share, and click \"Start sharing\"." msgstr "" -"Ви можете використовувати OnionShare, щоб безпечно та анонімно надсилати " -"файли та теки людям. Просто відкрийте вкладку спільного доступу, " -"перетягніть файли та теки, якими хочете поділитися і натисніть \"Почати " -"надсилання\"." +"Ви можете користуватися OnionShare, щоб безпечно та анонімно надсилати файли " +"та теки людям. Просто відкрийте вкладку спільного доступу, перетягніть файли " +"та теки, якими хочете поділитися і натисніть \"Почати надсилання\"." #: ../../source/features.rst:27 ../../source/features.rst:104 msgid "" "After you add files, you'll see some settings. Make sure you choose the " "setting you're interested in before you start sharing." msgstr "" -"Після додавання файлів з'являться параметри. Перед надсиланням, " -"переконайтеся, що вибрано потрібний параметр." +"Після додавання файлів з'являться налаштування. Перед надсиланням, " +"переконайтеся, що вибрано потрібні налаштування." #: ../../source/features.rst:31 msgid "" @@ -184,14 +182,14 @@ msgid "" "anonymous dropbox. Open a receive tab and choose the settings that you " "want." msgstr "" -"Ви можете використовувати OnionShare, щоб дозволити людям анонімно надсилати " +"Ви можете користуватися OnionShare, щоб дозволити людям анонімно надсилати " "файли та повідомлення безпосередньо на ваш комп’ютер, по суті, перетворюючи " "їх на анонімний буфер. Відкрийте вкладку отримання та виберіть потрібні " "налаштування." #: ../../source/features.rst:54 msgid "You can browse for a folder to save messages and files that get submitted." -msgstr "Можете вибрати теку для збереження повідомлень і файлів, які надіслано." +msgstr "Можете вибрати теку для збереження доставлених повідомлень і файлів." #: ../../source/features.rst:56 msgid "" @@ -226,10 +224,10 @@ msgstr "" "отримати зашифровані текстові повідомлення в програмі обміну повідомленнями `" "Keybase `_, ви можете почати розмову з `@webhookbot " "`_, введіть ``!webhook create onionshare-" -"alerts``, і він відповідатиме через URL-адресу. Використовуйте її URL-" -"адресою вебобробника сповіщень. Якщо хтось вивантажить файл до служби режиму " -"отримання, @webhookbot надішле вам повідомлення на Keybase, яке повідомить " -"вас, як тільки це станеться." +"alerts``, і він відповідатиме через URL-адресу. Застосовуйте її URL-адресою " +"вебобробника сповіщень. Якщо хтось вивантажить файл до служби отримання, @" +"webhookbot надішле вам повідомлення на Keybase, яке сповістить вас, як " +"тільки це станеться." #: ../../source/features.rst:63 msgid "" @@ -239,9 +237,9 @@ msgid "" "computer." msgstr "" "Коли все буде готово, натисніть кнопку «Запустити режим отримання». Це " -"запустить службу OnionShare. Будь-хто, хто завантажує цю адресу у своєму " -"браузері Tor, зможе надсилати файли та повідомлення, які завантажуються на " -"ваш комп'ютер." +"запустить службу OnionShare. Всі хто завантажить цю адресу у своєму браузері " +"Tor зможе надсилати файли та повідомлення, які завантажуватимуться на ваш " +"комп'ютер." #: ../../source/features.rst:67 msgid "" @@ -264,7 +262,7 @@ msgid "" msgstr "" "Коли хтось надсилає файли або повідомлення до вашої служби отримання, типово " "вони зберігаються до теки ``OnionShare`` у домашній теці на вашому " -"комп'ютері, автоматично впорядковуються в окремі підтеки залежно від часу " +"комп'ютері та автоматично впорядковуються в окремі підтеки залежно від часу " "передавання файлів." #: ../../source/features.rst:75 @@ -275,11 +273,11 @@ msgid "" "quite as secure version of `SecureDrop `_, the " "whistleblower submission system." msgstr "" -"Параметри служби отримання OnionShare корисні для журналістів та інших " -"осіб, яким потрібно безпечно отримувати документи від анонімних джерел. " -"Використовуючи таким чином, OnionShare як легку, простішу, не настільки " -"безпечну версію `SecureDrop `_, системи подання " -"таємних повідомлень викривачів." +"Служби отримання OnionShare корисні для журналістів та інших осіб, яким " +"потрібно безпечно отримувати документи від анонімних джерел. Користуючись " +"таким чином OnionShare як легкою, простішою, але не настільки безпечною " +"версією `SecureDrop `_, системи подання таємних " +"повідомлень викривачів." #: ../../source/features.rst:78 msgid "Use at your own risk" @@ -429,13 +427,13 @@ msgid "" "(see :ref:`save_tabs`) so you can resume the website with the same " "address if you close OnionShare and re-open it later." msgstr "" -"Якщо ви хочете розмістити довгостроковий вебсайт за допомогою OnionShare " -"(це не просто для того, щоб швидко комусь щось показати), рекомендовано " -"робити це на окремому виділеному комп’ютері, який завжди ввімкнено та " -"під'єднано до Інтернету, а не на той, яким ви користуєтеся регулярно. Вам" -" також слід зберегти вкладку (подробиці :ref:`save_tabs`), щоб ви могли " -"відновити вебсайт з тією ж адресою, якщо закриєте OnionShare і знову " -"відкриєте його пізніше." +"Якщо ви хочете розмістити постійний вебсайт за допомогою OnionShare (це не " +"просто для того, щоб швидко комусь щось показати), радимо робити це на " +"окремо виділеному комп’ютері, який завжди ввімкнено та під'єднано до " +"Інтернету, а не на той, яким ви користуєтеся регулярно. Вам також слід " +"зберегти вкладку (подробиці про :ref:`save_tabs`), щоб ви могли відновити " +"вебсайт з тією ж адресою, якщо закриєте OnionShare і знову відкриєте його " +"пізніше." #: ../../source/features.rst:121 msgid "" @@ -465,10 +463,10 @@ msgid "" "limit exactly who can join, use an encrypted messaging app to send out " "the OnionShare address." msgstr "" -"Після запуску сервера копіюйте адресу OnionShare і надішліть її людям, " -"які приєднаються до цієї анонімної кімнати чату. Якщо важливо обмежити " -"коло, хто може приєднатися, ви повинні використовувати зашифровані " -"програми обміну повідомленнями для надсилання адреси OnionShare." +"Після запуску сервера копіюйте адресу OnionShare і надішліть її людям, які " +"приєднаються до цієї анонімної кімнати чату. Якщо важливо обмежити коло " +"учасників, ви повинні скористатися застосунком обміну зашифрованими " +"повідомленнями для надсилання адреси OnionShare." #: ../../source/features.rst:135 msgid "" @@ -523,9 +521,8 @@ msgid "" "If you need to already be using an encrypted messaging app, what's the " "point of an OnionShare chat room to begin with? It leaves less traces." msgstr "" -"Якщо вам вже потрібно використовувати програму обміну зашифрованим " -"повідомленнями, то який сенс спілкування в OnionShare? Він залишає менше " -"слідів." +"Якщо вам потрібно застосовувати програму обміну зашифрованим повідомленнями, " +"то який сенс спілкування в OnionShare? Він залишає менше слідів." #: ../../source/features.rst:154 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/help.po b/docs/source/locale/uk/LC_MESSAGES/help.po index 914b6716..238f633e 100644 --- a/docs/source/locale/uk/LC_MESSAGES/help.po +++ b/docs/source/locale/uk/LC_MESSAGES/help.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: 2020-11-17 10:28+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -33,8 +33,9 @@ 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 "" -"Цей вебсайт містить настановами щодо користування OnionShare. Спочатку " -"перегляньте всі розділи, щоб дізнатися, чи відповідає він на ваші питання." +"Цей вебсайт містить настанови щодо користування OnionShare. Спочатку " +"перегляньте всі розділи, щоб дізнатися, чи містять вони відповідей на ваші " +"запитання." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" @@ -47,10 +48,10 @@ msgid "" " else has encountered the same problem and either raised it with the " "developers, or maybe even posted a solution." msgstr "" -"Якщо розв'язок відсутній на цьому вебсайті, перегляньте `GitHub issues " +"Якщо на цьому вебсайті не описано вашої проблеми, перегляньте `GitHub issues " "`_. Можливо, хтось інший " "зіткнувся з тією ж проблемою та запитав про неї у розробників, або, можливо, " -"навіть опублікував розв'язок." +"навіть опублікував як її виправити." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -64,7 +65,7 @@ msgid "" "`creating a GitHub account `_." msgstr "" -"Якщо не можете знайти розв'язку своєї проблеми або хочете запитати чи " +"Якщо не можете знайти як виправити свою проблему або хочете запитати чи " "запропонувати нову функцію, `поставте питання `_. Для цього потрібно `створити обліковий запис " "GitHub \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/install.rst:2 @@ -59,8 +59,8 @@ 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 вбудовано в Ubuntu, а Flatpak — у Fedora, але те, чим ви користуєтеся " -"залежить від вас. Обидва вони працюють у всіх дистрибутивах Linux." +"Snap вбудовано в Ubuntu, а Flatpak — у Fedora, але ви самі можете обрати чим " +"користуватися. Вони обоє працюють у всіх дистрибутивах Linux." #: ../../source/install.rst:19 msgid "" @@ -113,11 +113,10 @@ msgid "" "`_." msgstr "" -"Пакунки підписує Micah Lee, основний розробник, своїм відкритим ключем " -"PGP з цифровим відбитком ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. " -"Ключ Micah можна завантажити `з сервера ключів keys.openpgp.org " -"`_." +"Пакунки підписує основний розробник Micah Lee своїм відкритим ключем PGP з " +"цифровим відбитком ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Ключ Micah " +"можна завантажити `з сервера ключів keys.openpgp.org `_." #: ../../source/install.rst:38 msgid "" @@ -177,10 +176,10 @@ msgid "" " the package, it only means you haven't already defined any level of " "'trust' of Micah's PGP key.)" msgstr "" -"Якщо ви не бачите 'Good signature from', можливо, проблема з цілісністю " -"файлу (шкідлива чи інша), і, можливо, вам не слід встановлювати пакунок. (" -"Вказане раніше «ПОПЕРЕДЖЕННЯ» не є проблемою з пакунком: воно означає лише, " -"що ви не визначили жодного рівня 'довіри' щодо самого ключа PGP від Micah.)" +"Якщо ви не бачите «Good signature from», можливо, проблема з цілісністю " +"файлу (зловмисна чи інша), і, можливо, вам не слід встановлювати пакунок. (" +"Вказане раніше «ПОПЕРЕДЖЕННЯ» не є проблемою з пакунком: воно лише означає, " +"що ви не визначено рівня «довіри» до самого ключа PGP від Micah.)" #: ../../source/install.rst:71 msgid "" @@ -189,10 +188,9 @@ msgid "" " the `Tor Project `_ may be useful." msgstr "" -"Якщо ви хочете дізнатися докладніше про перевірку підписів PGP, настанови " -"для `Qubes OS `_ та " -"`Tor Project `_ " -"можуть допомогти." +"Докладніше про перевірку підписів PGP читайте у настановах для `Qubes OS " +"`_ та `Tor Project " +"`_." #~ msgid "For added security, see :ref:`verifying_sigs`." #~ msgstr "Для додаткової безпеки перегляньте :ref:`verifying_sigs`." diff --git a/docs/source/locale/uk/LC_MESSAGES/security.po b/docs/source/locale/uk/LC_MESSAGES/security.po index 0df854e6..80cfbe8c 100644 --- a/docs/source/locale/uk/LC_MESSAGES/security.po +++ b/docs/source/locale/uk/LC_MESSAGES/security.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2020-12-16 00:29+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/security.rst:2 @@ -103,12 +103,12 @@ msgstr "" "**Якщо зловмисник дізнається про службу onion, він все одно не може отримати " "доступ ні до чого.** Попередні напади на мережу Tor для виявлення служб " "onion дозволили зловмиснику виявити приватні адреси .onion. Якщо напад " -"виявить приватну адресу OnionShare, пароль не дозволить їм отримати до неї " +"виявить приватну адресу OnionShare, пароль не дозволить йому отримати до неї " "доступ (якщо користувач OnionShare не вирішив вимкнути його та зробити " "службу загальнодоступною). Пароль створюється шляхом вибору двох випадкових " -"слів зпереліку з 6800 слів, що робить 6800² або близько 46 мільйонів " +"слів з переліку у 6800 слів, що робить 6800² або близько 46 мільйонів " "можливих паролів. Можна здійснити лише 20 невдалих спроб, перш ніж " -"OnionShare зупинить сервер, запобігаючи грубому намаганню зламу пароля." +"OnionShare зупинить сервер, запобігаючи намаганню грубого зламу пароля." #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" @@ -126,17 +126,16 @@ msgid "" " disappearing messages enabled), encrypted email, or in person. This " "isn't necessary when using OnionShare for something that isn't secret." msgstr "" -"**Зв’язок з адресою OnionShare може бути ненадійним.** Передача адреси " -"OnionShare людям є відповідальністю користувача OnionShare. Якщо " -"надіслано ненадійно (наприклад, через повідомлення електронною поштою, " -"яку контролює зловмисник), підслуховувач може дізнатися, що " -"використовується OnionShare. Якщо підслуховувачі завантажать адресу в Tor" -" Browser, поки служба ще працює, вони можуть отримати до неї доступ. Щоб " -"уникнути цього, адресу потрібно передавати надійно, за допомогою " -"захищеного текстового повідомлення (можливо, з увімкненими " -"повідомленнями, що зникають), захищеного електронного листа або особисто." -" Це не потрібно при використанні OnionShare для чогось, що не є " -"таємницею." +"**Зв’язок з адресою OnionShare може бути ненадійним.** Відповідальність за " +"передавання адреси OnionShare людям покладено на користувача OnionShare. " +"Якщо її надіслано ненадійно (наприклад, через повідомлення електронною " +"поштою, яку контролює зловмисник), підслуховувач може дізнатися, що ви " +"користується OnionShare. Якщо підслуховувачі завантажать адресу в Tor " +"Browser, поки служба ще працює, вони можуть отримати до неї доступ. Щоб " +"уникнути цього, адресу потрібно передавати надійно, за допомогою захищеного " +"текстового повідомлення (можливо, з увімкненими повідомленнями, що зникають)" +", захищеного електронного листа або особисто. Це не потрібно якщо " +"користуватися OnionShare для даних, які не є таємницею." #: ../../source/security.rst:24 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/tor.po b/docs/source/locale/uk/LC_MESSAGES/tor.po index 9317e157..ddf4ab4f 100644 --- a/docs/source/locale/uk/LC_MESSAGES/tor.po +++ b/docs/source/locale/uk/LC_MESSAGES/tor.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2020-12-16 00:29+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/tor.rst:2 @@ -160,7 +160,7 @@ msgstr "" "Відкрийте OnionShare і натисніть на ньому піктограму «⚙». У розділі «Як " "OnionShare повинен з'єднуватися з Tor?\" виберіть «Під'єднатися через порт " "керування» та встановіть «Порт керування» на ``127.0.0.1`` та «Порт» на " -"``9051``. У розділі «Параметри автентифікації Tor» виберіть «Пароль» і " +"``9051``. У розділі «Налаштування автентифікації Tor» виберіть «Пароль» і " "встановіть пароль для пароля контрольного порту, який ви вибрали раніше. " "Натисніть кнопку «Перевірити з'єднання з Tor». Якщо все добре, ви побачите «" "З'єднано з контролером Tor»." @@ -194,11 +194,10 @@ msgid "" "cookie authentication\". Click the \"Test Connection to Tor\" button." msgstr "" "Відкрийте OnionShare. Клацніть піктограму «⚙». У розділі «Як OnionShare " -"повинен з'єднуватися з Tor?» виберіть «Під'єднуватися через файл сокета» " -"та встановіть для файлу сокета шлях " -"``/usr/local/var/run/tor/control.socket``. У розділі «Параметри " -"автентифікації Tor» виберіть «Без автентифікації або автентифікація через" -" cookie». Натисніть кнопку «Перевірити з'єднання з Tor»." +"повинен з'єднуватися з Tor?» виберіть «Під'єднуватися через файл сокета» та " +"встановіть для файлу сокета шлях ``/usr/local/var/run/tor/control.socket``. " +"У розділі «Налаштування автентифікації Tor» виберіть «Без автентифікації або " +"автентифікація через cookie». Натисніть кнопку «Перевірити з'єднання з Tor»." #: ../../source/tor.rst:84 ../../source/tor.rst:104 msgid "If all goes well, you should see \"Connected to the Tor controller\"." @@ -248,10 +247,10 @@ msgid "" msgstr "" "Перезапустіть комп'ютер. Після запуску, відкрийте OnionShare. Клацніть " "піктограму «⚙». У розділі «Як OnionShare повинен з'єднуватися з Tor?» " -"виберіть «Під'єднуватися через файл сокета» та встановіть для файлу " -"сокета шлях ``/var/run/tor/control``. У розділі «Параметри автентифікації" -" Tor» виберіть «Без автентифікації або автентифікація через cookie». " -"Натисніть кнопку «Перевірити з'єднання з Tor»." +"виберіть «Під'єднуватися через файл сокета» та встановіть для файлу сокета " +"шлях ``/var/run/tor/control``. У розділі «Налаштування автентифікації Tor» " +"виберіть «Без автентифікації або автентифікація через cookie». Натисніть " +"кнопку «Перевірити з'єднання з Tor»." #: ../../source/tor.rst:107 msgid "Using Tor bridges" From aa89c2192fa2ec1a9620dbc2ee32ae354df419cc Mon Sep 17 00:00:00 2001 From: Twann Date: Thu, 19 Aug 2021 16:15:53 +0200 Subject: [PATCH 26/55] Fix issue #1365 --- cli/onionshare_cli/web/web.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py index 56e307b4..3595c792 100644 --- a/cli/onionshare_cli/web/web.py +++ b/cli/onionshare_cli/web/web.py @@ -191,7 +191,7 @@ class Web: self.app.static_url_path = self.static_url_path self.app.add_url_rule( self.static_url_path + "/", - endpoint="static", + endpoint="onionshare-static", # This "static" line seems to raise an AssertionError, but it is not used anywhere else in the project view_func=self.app.send_static_file, ) From 3c897b66f9a1cd3bf28513ae68df2b6d4551dbcf Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 11:23:33 -0700 Subject: [PATCH 27/55] Bump Tor Browser version to grab tor binaries --- desktop/scripts/get-tor-osx.py | 4 ++-- desktop/scripts/get-tor-windows.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/desktop/scripts/get-tor-osx.py b/desktop/scripts/get-tor-osx.py index 5a4f61e1..a62703c8 100755 --- a/desktop/scripts/get-tor-osx.py +++ b/desktop/scripts/get-tor-osx.py @@ -34,10 +34,10 @@ import requests def main(): - dmg_url = "https://dist.torproject.org/torbrowser/10.0.18/TorBrowser-10.0.18-osx64_en-US.dmg" + dmg_url = "https://dist.torproject.org/torbrowser/10.5.5/TorBrowser-10.5.5-osx64_en-US.dmg" dmg_filename = "TorBrowser-10.0.18-osx64_en-US.dmg" expected_dmg_sha256 = ( - "d7e92e3803e65f11541555eb04b828feb9e8c98cf2cb1391692ade091bfb8b5f" + "f93d2174c58309d1d563deb3616fc3aec689b6eb0af4d70661b1695c26fc2af7" ) # Build paths diff --git a/desktop/scripts/get-tor-windows.py b/desktop/scripts/get-tor-windows.py index 34389345..92dfb540 100644 --- a/desktop/scripts/get-tor-windows.py +++ b/desktop/scripts/get-tor-windows.py @@ -33,10 +33,10 @@ import requests def main(): - exe_url = "https://dist.torproject.org/torbrowser/10.0.18/torbrowser-install-10.0.18_en-US.exe" - exe_filename = "torbrowser-install-10.0.18_en-US.exe" + exe_url = "https://dist.torproject.org/torbrowser/10.5.5/torbrowser-install-10.5.5_en-US.exe" + exe_filename = "torbrowser-install-10.5.5_en-US.exe" expected_exe_sha256 = ( - "a42f31fc7abe322e457d9f69bae76f935b7ab0a6f9d137d00b6dcc9974ca6e10" + "5a0248f6be61e94467fd6f951eb85d653138dea5a8793de42c6edad1507f1ae7" ) # Build paths root_path = os.path.dirname( From 29644d3eb469ccf879a611cb3edf99c527064897 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 11:26:15 -0700 Subject: [PATCH 28/55] Bump tor version to 0.4.6.7 in snapcraft package --- snap/snapcraft.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index f99242b1..57f3d7ae 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -134,8 +134,8 @@ parts: after: [tor, obfs4] tor: - source: https://dist.torproject.org/tor-0.4.5.8.tar.gz - source-checksum: sha256/57ded091e8bcdcebb0013fe7ef4a4439827cb169358c7874fd05fa00d813e227 + source: https://dist.torproject.org/tor-0.4.6.7.tar.gz + source-checksum: sha256/ff665ce121b2952110bd98b9c8741b5593bf6c01ac09033ad848ed92c2510f9a source-type: tar plugin: autotools build-packages: From c6451e097cc2baf91f0b1317604af2ed9418a63f Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 11:59:26 -0700 Subject: [PATCH 29/55] Remove endpoint altogether because it's not needed --- cli/onionshare_cli/web/web.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py index 3595c792..04919185 100644 --- a/cli/onionshare_cli/web/web.py +++ b/cli/onionshare_cli/web/web.py @@ -191,7 +191,6 @@ class Web: self.app.static_url_path = self.static_url_path self.app.add_url_rule( self.static_url_path + "/", - endpoint="onionshare-static", # This "static" line seems to raise an AssertionError, but it is not used anywhere else in the project view_func=self.app.send_static_file, ) From f71e320ca3708d891c902f2797f75ec8d295ef1b Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 13:13:39 -0700 Subject: [PATCH 30/55] Version bump to 2.3.3 --- RELEASE.md | 6 ++++++ cli/onionshare_cli/resources/version.txt | 2 +- cli/pyproject.toml | 2 +- cli/setup.py | 2 +- desktop/pyproject.toml | 4 ++-- desktop/src/setup.py | 2 +- docs/source/conf.py | 2 +- snap/snapcraft.yaml | 2 +- 8 files changed, 14 insertions(+), 8 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index b8724c81..1b426b5d 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -238,6 +238,12 @@ flatpak-builder build --force-clean --install-deps-from=flathub --install --user flatpak run org.onionshare.OnionShare ``` +Create a [single-file bundle](https://docs.flatpak.org/en/latest/single-file-bundles.html): + +```sh +flatpak build-bundle ~/repositories/apps dist/OnionShare-$VERSION.flatpak org.onionshare.OnionShare --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo +``` + ### Update Homebrew - Make a PR to [homebrew-cask](https://github.com/homebrew/homebrew-cask) to update the macOS version diff --git a/cli/onionshare_cli/resources/version.txt b/cli/onionshare_cli/resources/version.txt index e7034819..45674f16 100644 --- a/cli/onionshare_cli/resources/version.txt +++ b/cli/onionshare_cli/resources/version.txt @@ -1 +1 @@ -2.3.2 \ No newline at end of file +2.3.3 \ No newline at end of file diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 679a60de..51405d3d 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "onionshare_cli" -version = "2.3.2" +version = "2.3.3" description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service." authors = ["Micah Lee "] license = "GPLv3+" diff --git a/cli/setup.py b/cli/setup.py index 9d9441b4..ce5e229f 100644 --- a/cli/setup.py +++ b/cli/setup.py @@ -20,7 +20,7 @@ along with this program. If not, see . """ import setuptools -version = "2.3.2" +version = "2.3.3" setuptools.setup( name="onionshare-cli", diff --git a/desktop/pyproject.toml b/desktop/pyproject.toml index a39aa94d..fdb820b4 100644 --- a/desktop/pyproject.toml +++ b/desktop/pyproject.toml @@ -1,7 +1,7 @@ [tool.briefcase] project_name = "OnionShare" bundle = "org.onionshare" -version = "2.3.2" +version = "2.3.3" url = "https://onionshare.org" license = "GPLv3" author = 'Micah Lee' @@ -13,7 +13,7 @@ description = "Securely and anonymously share files, host websites, and chat wit icon = "src/onionshare/resources/onionshare" sources = ['src/onionshare'] requires = [ - "./onionshare_cli-2.3.2-py3-none-any.whl", + "./onionshare_cli-2.3.3-py3-none-any.whl", "pyside2==5.15.1", "qrcode" ] diff --git a/desktop/src/setup.py b/desktop/src/setup.py index 060fa93c..cd3c21f6 100644 --- a/desktop/src/setup.py +++ b/desktop/src/setup.py @@ -20,7 +20,7 @@ along with this program. If not, see . """ import setuptools -version = "2.3.2" +version = "2.3.3" setuptools.setup( name="onionshare", diff --git a/docs/source/conf.py b/docs/source/conf.py index 16ac89b6..10de0948 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,6 +1,6 @@ project = "OnionShare" author = copyright = "Micah Lee, et al." -version = release = "2.3.2" +version = release = "2.3.3" extensions = ["sphinx_rtd_theme"] templates_path = ["_templates"] diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 57f3d7ae..e1c79e7e 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,6 @@ name: onionshare base: core18 -version: '2.3.2' +version: '2.3.3' summary: Securely and anonymously share files, host websites, and chat using Tor description: | OnionShare lets you securely and anonymously send and receive files. It works by starting From e44dda09275c3e665f8938ba7b988abbee7cc6f2 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Fri, 20 Aug 2021 22:15:22 +0200 Subject: [PATCH 31/55] Translated using Weblate (Chinese (Simplified)) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/zh_Hans/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Translated using Weblate (Icelandic) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/is/ Translated using Weblate (Ukrainian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/uk/ Translated using Weblate (Polish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/pl/ Translated using Weblate (Indonesian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/id/ Translated using Weblate (Croatian) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Croatian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hr/ Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Turkish) Currently translated at 100.0% (32 of 32 strings) Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Hindi) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hi/ Translated using Weblate (Turkish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/tr/ Translated using Weblate (Ukrainian) Currently translated at 100.0% (31 of 31 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (32 of 32 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (27 of 27 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (9 of 9 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (11 of 11 strings) Translated using Weblate (Ukrainian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/uk/ Translated using Weblate (Danish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/da/ Translated using Weblate (Yoruba) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/yo/ Translated using Weblate (Bengali) Currently translated at 27.2% (3 of 11 strings) Translated using Weblate (Croatian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hr/ Translated using Weblate (Portuguese (Brazil)) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/pt_BR/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Co-authored-by: Algustionesa Yoshi Co-authored-by: Atrate Co-authored-by: Eduardo Addad de Oliveira Co-authored-by: Emmanuel Balogun Co-authored-by: Eric Co-authored-by: Gediminas Murauskas Co-authored-by: Hosted Weblate Co-authored-by: Ihor Hordiichuk Co-authored-by: Jonatan Nyberg Co-authored-by: Milo Ivir Co-authored-by: Mohit Bansal (Philomath) Co-authored-by: Oymate Co-authored-by: Panina Nonbinary Co-authored-by: Sveinn í Felli Co-authored-by: Tur Co-authored-by: scootergrisen Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-advanced/tr/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-advanced/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-develop/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-features/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-help/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-index/hr/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-install/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-security/bn/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-security/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-tor/uk/ Translation: OnionShare/Doc - Advanced Translation: OnionShare/Doc - Develop Translation: OnionShare/Doc - Features Translation: OnionShare/Doc - Help Translation: OnionShare/Doc - Index Translation: OnionShare/Doc - Install Translation: OnionShare/Doc - Security Translation: OnionShare/Doc - Tor --- .../src/onionshare/resources/locale/da.json | 12 +- .../src/onionshare/resources/locale/hi.json | 34 +-- .../src/onionshare/resources/locale/hr.json | 57 +++-- .../src/onionshare/resources/locale/id.json | 6 +- .../src/onionshare/resources/locale/is.json | 7 +- .../src/onionshare/resources/locale/lt.json | 218 ++++++++++-------- .../src/onionshare/resources/locale/pl.json | 5 +- .../onionshare/resources/locale/pt_BR.json | 11 +- .../src/onionshare/resources/locale/sv.json | 28 ++- .../src/onionshare/resources/locale/tr.json | 16 +- .../src/onionshare/resources/locale/uk.json | 6 +- .../src/onionshare/resources/locale/yo.json | 37 +-- .../onionshare/resources/locale/zh_Hans.json | 3 +- docs/source/locale/bn/LC_MESSAGES/security.po | 8 +- docs/source/locale/hr/LC_MESSAGES/index.po | 6 +- docs/source/locale/tr/LC_MESSAGES/advanced.po | 10 +- docs/source/locale/uk/LC_MESSAGES/advanced.po | 20 +- docs/source/locale/uk/LC_MESSAGES/develop.po | 59 ++--- docs/source/locale/uk/LC_MESSAGES/features.po | 79 +++---- docs/source/locale/uk/LC_MESSAGES/help.po | 15 +- docs/source/locale/uk/LC_MESSAGES/install.po | 32 ++- docs/source/locale/uk/LC_MESSAGES/security.po | 31 ++- docs/source/locale/uk/LC_MESSAGES/tor.po | 23 +- 23 files changed, 403 insertions(+), 320 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/src/onionshare/resources/locale/da.json index 383b3d33..4bbdc94e 100644 --- a/desktop/src/onionshare/resources/locale/da.json +++ b/desktop/src/onionshare/resources/locale/da.json @@ -291,5 +291,15 @@ "gui_chat_url_description": "Alle med denne OnionShare-adresse kan deltage i chatrummet med Tor Browser: ", "error_port_not_available": "OnionShare-port ikke tilgængelig", "gui_rendezvous_cleanup": "Venter på at Tor-kredsløb lukker for at være sikker på, at det lykkedes at overføre dine filer.\n\nDet kan tage noget tid.", - "gui_rendezvous_cleanup_quit_early": "Afslut tidligt" + "gui_rendezvous_cleanup_quit_early": "Afslut tidligt", + "history_receive_read_message_button": "Læs meddelelse", + "mode_settings_receive_webhook_url_checkbox": "Brug underretningswebhook", + "mode_settings_receive_disable_files_checkbox": "Deaktivér upload af filer", + "mode_settings_receive_disable_text_checkbox": "Deaktivér indsendelse af tekst", + "mode_settings_title_label": "Tilpasset titel", + "gui_color_mode_changed_notice": "Genstart OnionShare for at anvende den nye farvetilstand.", + "gui_status_indicator_chat_started": "Chatter", + "gui_status_indicator_chat_scheduled": "Planlagt …", + "gui_status_indicator_chat_working": "Starter …", + "gui_status_indicator_chat_stopped": "Klar til at chatte" } diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json index e5a6d893..8efb9301 100644 --- a/desktop/src/onionshare/resources/locale/hi.json +++ b/desktop/src/onionshare/resources/locale/hi.json @@ -67,24 +67,24 @@ "gui_settings_sharing_label": "साझा सेटिंग्स", "gui_settings_close_after_first_download_option": "इस फाइल को भेजने के बाद साझा बंद कर दें", "gui_settings_connection_type_label": "OnionShare को Tor से कैसे जुड़ना चाहिए?", - "gui_settings_connection_type_bundled_option": "", - "gui_settings_connection_type_automatic_option": "", - "gui_settings_connection_type_control_port_option": "", - "gui_settings_connection_type_socket_file_option": "", + "gui_settings_connection_type_bundled_option": "OnionShare में निर्मित Tor संस्करण का उपयोग करें", + "gui_settings_connection_type_automatic_option": "Tor Browser के साथ ऑटो-कॉन्फ़िगरेशन का प्रयास करें", + "gui_settings_connection_type_control_port_option": "कंट्रोल पोर्ट का उपयोग करके कनेक्ट करें", + "gui_settings_connection_type_socket_file_option": "सॉकेट फ़ाइल का उपयोग करके कनेक्ट करें", "gui_settings_connection_type_test_button": "", - "gui_settings_control_port_label": "", - "gui_settings_socket_file_label": "", - "gui_settings_socks_label": "", - "gui_settings_authenticate_label": "", - "gui_settings_authenticate_no_auth_option": "", + "gui_settings_control_port_label": "कण्ट्रोल पोर्ट", + "gui_settings_socket_file_label": "सॉकेट फ़ाइल", + "gui_settings_socks_label": "SOCKS पोर्ट", + "gui_settings_authenticate_label": "Tor प्रमाणीकरण सेटिंग्स", + "gui_settings_authenticate_no_auth_option": "कोई प्रमाणीकरण या कुकी प्रमाणीकरण नहीं", "gui_settings_authenticate_password_option": "", "gui_settings_password_label": "", - "gui_settings_tor_bridges": "", - "gui_settings_tor_bridges_no_bridges_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "", + "gui_settings_tor_bridges": "Tor ब्रिज सपोर्ट", + "gui_settings_tor_bridges_no_bridges_radio_option": "ब्रिड्जेस का प्रयोग न करें", + "gui_settings_tor_bridges_obfs4_radio_option": "पहले से निर्मित obfs4 प्लगेबल ट्रांसपोर्टस का उपयोग करें", + "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "पहले से निर्मित obfs4 प्लगेबल ट्रांसपोर्टस का उपयोग करें (obfs4proxy अनिवार्य)", + "gui_settings_tor_bridges_meek_lite_azure_radio_option": "पहले से निर्मित meek_lite (Azure) प्लगेबल ट्रांसपोर्टस का उपयोग करें", + "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "पहले से निर्मित meek_lite (Azure) प्लगेबल ट्रांसपोर्टस का उपयोग करें (obfs4proxy अनिवार्य है)", "gui_settings_meek_lite_expensive_warning": "", "gui_settings_tor_bridges_custom_radio_option": "", "gui_settings_tor_bridges_custom_label": "", @@ -191,5 +191,7 @@ "gui_chat_stop_server": "चैट सर्वर बंद करें", "gui_chat_start_server": "चैट सर्वर शुरू करें", "gui_file_selection_remove_all": "सभी हटाएं", - "gui_remove": "हटाएं" + "gui_remove": "हटाएं", + "gui_qr_code_dialog_title": "OnionShare क्यूआर कोड", + "gui_receive_flatpak_data_dir": "चूँकि आपने फ़्लैटपैक का उपयोग करके OnionShare स्थापित किया है, इसलिए आपको फ़ाइलों को ~/OnionShare फ़ोल्डर में सहेजना होगा।" } diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/src/onionshare/resources/locale/hr.json index 6c399c89..29252c1d 100644 --- a/desktop/src/onionshare/resources/locale/hr.json +++ b/desktop/src/onionshare/resources/locale/hr.json @@ -4,8 +4,8 @@ "no_available_port": "Priključak za pokretanje Onion usluge nije pronađen", "other_page_loaded": "Adresa učitana", "incorrect_password": "Neispravna lozinka", - "close_on_autostop_timer": "Zaustavljeno, jer je vrijeme timera za automatsko zaustavljanje isteklo", - "closing_automatically": "Zaustavljeno, jer je prijenos završen", + "close_on_autostop_timer": "Prekinuto, jer je vrijeme timera za automatsko prekidanje isteklo", + "closing_automatically": "Prekinuto, jer je prijenos završen", "large_filesize": "Upozorenje: Slanje velike količine podataka može trajati satima", "gui_drag_and_drop": "Povuci i ispusti datoteke i mape koje želiš dijeliti", "gui_add": "Dodaj", @@ -14,13 +14,13 @@ "gui_delete": "Izbriši", "gui_choose_items": "Odaberi", "gui_share_start_server": "Pokreni dijeljenje", - "gui_share_stop_server": "Zaustavi dijeljenje", - "gui_share_stop_server_autostop_timer": "Zaustavi dijeljenje ({})", - "gui_stop_server_autostop_timer_tooltip": "Timer za automatsko zaustavljanje završava pri {}", + "gui_share_stop_server": "Prekini dijeljenje", + "gui_share_stop_server_autostop_timer": "Prekini dijeljenje ({})", + "gui_stop_server_autostop_timer_tooltip": "Timer za automatsko prekidanje završava u {}", "gui_start_server_autostart_timer_tooltip": "Timer za automatsko pokretanje završava u {}", "gui_receive_start_server": "Pokreni modus primanja", - "gui_receive_stop_server": "Zaustavi modus primanja", - "gui_receive_stop_server_autostop_timer": "Zaustavi modus primanja ({} preostalo)", + "gui_receive_stop_server": "Prekini modus primanja", + "gui_receive_stop_server_autostop_timer": "Prekini modus primanja ({} preostalo)", "gui_copy_url": "Kopiraj adresu", "gui_copy_hidservauth": "Kopiraj HidServAuth", "gui_canceled": "Prekinuto", @@ -95,7 +95,7 @@ "settings_error_bundled_tor_timeout": "Povezivanje s Torom traje predugo. Možda nemaš vezu s internetom ili imaš netočno postavljen sat sustava?", "settings_error_bundled_tor_broken": "Neuspjelo povezivanje OnionShare-a s Torom:\n{}", "settings_test_success": "Povezan s Tor kontrolerom.\n\nTor verzija: {}\nPodržava kratkotrajne Onion usluge: {}.\nPodržava autentifikaciju klijenta: {}.\nPodržava .onion adrese sljedeće generacije: {}.", - "error_tor_protocol_error": "Greška s Torom: {}", + "error_tor_protocol_error": "Dogodila se greška s Torom: {}", "error_tor_protocol_error_unknown": "Nepoznata greška s Torom", "connecting_to_tor": "Povezivanje s Tor mrežom", "update_available": "Objavljen je novi OnionShare. Pritisni ovdje za preuzimanje.

Trenutačno koristiš verziju {}, a najnovija verzija je {}.", @@ -108,10 +108,10 @@ "gui_tor_connection_error_settings": "U postavkama promijeni način na koji se OnionShare povezuje s Tor mrežom.", "gui_tor_connection_canceled": "Neuspjelo povezivanje s Torom.\n\nProvjeri vezu s internetom, a zatim ponovo pokreni OnionShare i postavi njegovu vezu s Torom.", "gui_tor_connection_lost": "Prekinuta veza s Torom.", - "gui_server_started_after_autostop_timer": "Vrijeme timera za automatsko zaustavljanje je isteklo prije nego što je poslužitelj započeo. Izradi novo dijeljenje.", - "gui_server_autostop_timer_expired": "Vrijeme timera za automatsko zaustavljanje je već isteklo. Za pokretanje dijeljenja, podesi vrijeme.", + "gui_server_started_after_autostop_timer": "Vrijeme timera za automatsko prekidanje je isteklo prije nego što je poslužitelj započeo. Izradi novo dijeljenje.", + "gui_server_autostop_timer_expired": "Vrijeme timera za automatsko prekidanje je već isteklo. Za pokretanje dijeljenja, podesi vrijeme.", "gui_server_autostart_timer_expired": "Planirano vrijeme je već prošlo. Za pokretanje dijeljenja, podesi vrijeme.", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko zaustavljanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko prekidanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.", "share_via_onionshare": "Dijeli putem OnionSharea", "gui_connect_to_tor_for_onion_settings": "Poveži se s Torom za prikaz postavki Onion usluge", "gui_use_legacy_v2_onions_checkbox": "Koristi stare adrese", @@ -119,10 +119,10 @@ "gui_share_url_description": "Svatko s ovom OnionShare adresom može preuzeti tvoje datoteke koristeći Tor preglednik: ", "gui_website_url_description": "Svatko s ovom OnionShare adresom može posjetiti tvoju web-stranicu koristeći Tor preglednik: ", "gui_receive_url_description": "Svatko s ovom OnionShare adresom može prenijeti datoteke na tvoje računalo koristeći Tor preglednik: ", - "gui_url_label_persistent": "Ovo se dijeljenje neće automatski zaustaviti.

Svako naredno dijeljenje ponovo koristi istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", - "gui_url_label_stay_open": "Ovo se dijeljenje neće automatski zaustaviti.", - "gui_url_label_onetime": "Ovo će se dijeljenje zaustaviti nakon prvog završavanja.", - "gui_url_label_onetime_and_persistent": "Ovo se dijeljenje neće automatski zaustaviti.

Svako naredno dijeljenje ponovo će koristiti istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", + "gui_url_label_persistent": "Ovo se dijeljenje neće automatski prekinuti.

Svako naredno dijeljenje koristit će istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", + "gui_url_label_stay_open": "Ovo se dijeljenje neće automatski prekinuti.", + "gui_url_label_onetime": "Ovo će se dijeljenje prekinuti nakon prvog završavanja.", + "gui_url_label_onetime_and_persistent": "Ovo se dijeljenje neće automatski prekinuti.

Svako naredno dijeljenje će koristit će istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", "gui_status_indicator_share_stopped": "Spremno za dijeljenje", "gui_status_indicator_share_working": "Pokretanje …", "gui_status_indicator_share_scheduled": "Planirano …", @@ -183,10 +183,10 @@ "mode_settings_website_disable_csp_checkbox": "Ne šalji zaglavlja politike sigurnosti sadržaja (omogućuje tvojim web-stranicama koristiti strane resurse)", "mode_settings_receive_data_dir_browse_button": "Pregledaj", "mode_settings_receive_data_dir_label": "Spremi datoteke u", - "mode_settings_share_autostop_sharing_checkbox": "Zaustavi dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)", + "mode_settings_share_autostop_sharing_checkbox": "Prekini dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)", "mode_settings_client_auth_checkbox": "Koristi autorizaciju klijenta", "mode_settings_legacy_checkbox": "Koristi stare adrese (v2 onion usluge, ne preporučuje se)", - "mode_settings_autostop_timer_checkbox": "Zaustavi onion uslugu u planirano vrijeme", + "mode_settings_autostop_timer_checkbox": "Prekini onion uslugu u planirano vrijeme", "mode_settings_autostart_timer_checkbox": "Pokreni onion uslugu u planirano vrijeme", "mode_settings_public_checkbox": "Nemoj koristiti lozinku", "mode_settings_persistent_checkbox": "Spremi ovu karticu i automatski je otvori kad otvorim OnionShare", @@ -212,10 +212,10 @@ "gui_new_tab": "Nova kartica", "gui_qr_code_description": "Skeniraj ovaj QR kȏd pomoću QR čitača, kao što je kamera na tvom telefonu, za lakše dijeljenje adrese OnionSharea.", "gui_receive_flatpak_data_dir": "Budući da je tvoj OnionShare instaliran pomoću Flatpak-a, datoteke moraš spremiti u jednu mapu u ~/OnionShare.", - "gui_tab_name_chat": "Chat", - "gui_new_tab_chat_button": "Anonimni chat", - "gui_chat_start_server": "Pokreni poslužitelja za chat", - "gui_chat_stop_server": "Zaustavi poslužitelja za chat", + "gui_tab_name_chat": "Razgovor", + "gui_new_tab_chat_button": "Razgovaraj anonimno", + "gui_chat_start_server": "Pokreni poslužitelja za razgovor", + "gui_chat_stop_server": "Prekini poslužitelja za razgovor", "gui_chat_stop_server_autostop_timer": "Zaustavi poslužitelja za chat ({})", "gui_tab_name_receive": "Primi", "gui_open_folder_error": "Otvaranje mape s xdg-open nije uspjelo. Datoteka je ovdje: {}", @@ -225,13 +225,22 @@ "gui_show_url_qr_code": "Prikaži QR-kod", "gui_file_selection_remove_all": "Ukloni sve", "gui_remove": "Ukloni", - "gui_main_page_chat_button": "Pokreni chat", + "gui_main_page_chat_button": "Pokreni razgovor", "gui_main_page_website_button": "Pokreni hosting", "gui_main_page_receive_button": "Pokreni primanje", "gui_main_page_share_button": "Pokreni dijeljenje", - "gui_chat_url_description": "Svatko s ovom OnionShare adresom može se pridružiti sobi za chat koristeći Tor preglednik: ", + "gui_chat_url_description": "Svatko s ovom OnionShare adresom može se pridružiti sobi za razgovor koristeći Tor preglednik: ", "error_port_not_available": "OnionShare priključak nije dostupan", "gui_rendezvous_cleanup_quit_early": "Prekini preuranjeno", "gui_rendezvous_cleanup": "Čekanje na zatvarnje Tor lanaca, kako bi se osigurao uspješan prijenos datoteka.\n\nOvo može potrajati nekoliko minuta.", - "gui_color_mode_changed_notice": "Za primjenu novog modusa boja ponovo pokreni OnionShare ." + "gui_color_mode_changed_notice": "Za primjenu novog modusa boja ponovo pokreni OnionShare .", + "history_receive_read_message_button": "Čitaj poruku", + "mode_settings_receive_disable_files_checkbox": "Onemogući prenošenje datoteka", + "mode_settings_receive_disable_text_checkbox": "Onemogući slanje teksta", + "mode_settings_title_label": "Prilagođeni naslov", + "gui_status_indicator_chat_scheduled": "Planirano …", + "gui_status_indicator_chat_working": "Pokretanje …", + "mode_settings_receive_webhook_url_checkbox": "Koristi automatsko obavještavanje", + "gui_status_indicator_chat_started": "Razgovor u tijeku", + "gui_status_indicator_chat_stopped": "Spremno za razgovor" } diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/src/onionshare/resources/locale/id.json index 9980a479..f4c299c5 100644 --- a/desktop/src/onionshare/resources/locale/id.json +++ b/desktop/src/onionshare/resources/locale/id.json @@ -277,5 +277,9 @@ "gui_close_tab_warning_persistent_description": "Tab ini persisten. Jika Anda menutup tab ini Anda akan kehilangan alamat onion yang sedang digunakan. Apakah Anda yakin mau menutup tab ini?", "gui_chat_url_description": "Siapa saja dengan alamat OnionShare ini dapat bergabung di ruang obrolan ini menggunakan Tor Browser:", "gui_website_url_description": "Siapa saja dengan alamat OnionShare ini dapat mengunjungi situs web Anda menggunakan Tor Browser:", - "gui_server_autostart_timer_expired": "Waktu yang dijadwalkan telah terlewati. Silakan sesuaikan waktu untuk memulai berbagi." + "gui_server_autostart_timer_expired": "Waktu yang dijadwalkan telah terlewati. Silakan sesuaikan waktu untuk memulai berbagi.", + "gui_status_indicator_chat_started": "Mengobrol", + "gui_status_indicator_chat_scheduled": "Menjadwalkan…", + "gui_status_indicator_chat_working": "Memulai…", + "gui_status_indicator_chat_stopped": "Siap untuk mengobrol" } diff --git a/desktop/src/onionshare/resources/locale/is.json b/desktop/src/onionshare/resources/locale/is.json index e8a3bf3b..bdbc0e6b 100644 --- a/desktop/src/onionshare/resources/locale/is.json +++ b/desktop/src/onionshare/resources/locale/is.json @@ -293,5 +293,10 @@ "mode_settings_receive_webhook_url_checkbox": "Nota webhook fyrir tilkynningar", "mode_settings_receive_disable_files_checkbox": "Gera innsendingu skráa óvirka", "mode_settings_receive_disable_text_checkbox": "Gera innsendingu texta óvirka", - "mode_settings_title_label": "Sérsniðinn titill" + "mode_settings_title_label": "Sérsniðinn titill", + "gui_status_indicator_chat_started": "Spjalla", + "gui_status_indicator_chat_scheduled": "Áætlað…", + "gui_status_indicator_chat_working": "Ræsi…", + "gui_status_indicator_chat_stopped": "Tilbúið í spjall", + "gui_please_wait_no_button": "Ræsi…" } diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/src/onionshare/resources/locale/lt.json index b34bb52a..f3e76e9b 100644 --- a/desktop/src/onionshare/resources/locale/lt.json +++ b/desktop/src/onionshare/resources/locale/lt.json @@ -4,10 +4,10 @@ "no_available_port": "", "other_page_loaded": "Adresas įkeltas", "incorrect_password": "Neteisingas slaptažodis", - "close_on_autostop_timer": "", + "close_on_autostop_timer": "Sustabdyta, nes baigėsi automatinio sustabdymo laikmatis", "closing_automatically": "Sustabdyta, nes perdavimas yra užbaigtas", "large_filesize": "Įspėjimas: Didelio viešinio siuntimas gali užtrukti ilgą laiką (kelias valandas)", - "gui_drag_and_drop": "Norėdami bendrinti,\ntempkite čia failus ir aplankus", + "gui_drag_and_drop": "Norėdami bendrinti, tempkite failus ir aplankus čia", "gui_add": "Pridėti", "gui_add_files": "Pridėti failus", "gui_add_folder": "Pridėti aplanką", @@ -16,8 +16,8 @@ "gui_share_start_server": "Pradėti bendrinti", "gui_share_stop_server": "Nustoti bendrinti", "gui_share_stop_server_autostop_timer": "Nustoti bendrinti ({})", - "gui_stop_server_autostop_timer_tooltip": "", - "gui_start_server_autostart_timer_tooltip": "", + "gui_stop_server_autostop_timer_tooltip": "Automatinio sustabdymo laikmatis baigiasi {}", + "gui_start_server_autostart_timer_tooltip": "Automatinio paleidimo laikmatis baigiasi {}", "gui_receive_start_server": "Įjungti gavimo veikseną", "gui_receive_stop_server": "Išjungti gavimo veikseną", "gui_receive_stop_server_autostop_timer": "Išjungti gavimo veikseną (Liko {})", @@ -28,9 +28,9 @@ "gui_copied_url": "OnionShare adresas nukopijuotas į iškarpinę", "gui_copied_hidservauth_title": "HidServAuth nukopijuota", "gui_copied_hidservauth": "HidServAuth eilutė nukopijuota į iškarpinę", - "gui_waiting_to_start": "", + "gui_waiting_to_start": "Planuojama pradėti {}. Spustelėkite , jei norite atšaukti.", "gui_please_wait": "Pradedama… Spustelėkite norėdami atsisakyti.", - "error_rate_limit": "", + "error_rate_limit": "Kažkas padarė per daug klaidingų bandymų atspėti jūsų slaptažodį, todėl „OnionShare“ sustabdė serverį. Vėl pradėkite bendrinti ir nusiųskite gavėjui naują bendrinimo adresą.", "zip_progress_bar_format": "Glaudinama: %p%", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", @@ -40,7 +40,7 @@ "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "Tikrinti, ar yra nauja versija", "gui_settings_autoupdate_option": "Pranešti, kai bus prieinama nauja versija", - "gui_settings_autoupdate_timestamp": "", + "gui_settings_autoupdate_timestamp": "Paskutinį kartą tikrinta: {}", "gui_settings_autoupdate_timestamp_never": "Niekada", "gui_settings_autoupdate_check_button": "Tikrinti, ar yra nauja versija", "gui_settings_general_label": "Bendri nustatymai", @@ -50,25 +50,25 @@ "gui_settings_csp_header_disabled_option": "", "gui_settings_individual_downloads_label": "", "gui_settings_connection_type_label": "Kaip OnionShare turėtų jungtis prie Tor?", - "gui_settings_connection_type_bundled_option": "", - "gui_settings_connection_type_automatic_option": "", - "gui_settings_connection_type_control_port_option": "", - "gui_settings_connection_type_socket_file_option": "", - "gui_settings_connection_type_test_button": "", - "gui_settings_control_port_label": "", - "gui_settings_socket_file_label": "", + "gui_settings_connection_type_bundled_option": "Naudokite „Tor“ versiją, integruotą į „OnionShare“", + "gui_settings_connection_type_automatic_option": "Bandyti automatiškai konfigūruoti naudojant „Tor“ naršyklę", + "gui_settings_connection_type_control_port_option": "Prisijunkti naudojant valdymo prievadą", + "gui_settings_connection_type_socket_file_option": "Prisijungti naudojant socket failą", + "gui_settings_connection_type_test_button": "Tikrinti ryšį su „Tor“", + "gui_settings_control_port_label": "Valdymo prievadas", + "gui_settings_socket_file_label": "Socket failas", "gui_settings_socks_label": "SOCKS prievadas", - "gui_settings_authenticate_label": "", - "gui_settings_authenticate_no_auth_option": "", + "gui_settings_authenticate_label": "Tor autentifikavimo nustatymai", + "gui_settings_authenticate_no_auth_option": "Jokio autentifikavimo ar slapukų autentifikavimo", "gui_settings_authenticate_password_option": "Slaptažodis", "gui_settings_password_label": "Slaptažodis", - "gui_settings_tor_bridges": "", - "gui_settings_tor_bridges_no_bridges_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "", - "gui_settings_meek_lite_expensive_warning": "", + "gui_settings_tor_bridges": "„Tor“ tilto palaikymas", + "gui_settings_tor_bridges_no_bridges_radio_option": "Nenaudoti tiltų", + "gui_settings_tor_bridges_obfs4_radio_option": "Naudoti integruotą obfs4 prijungiamą transportą", + "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Naudoti integruotą obfs4 prijungiamą transportą (reikalingas obfs4proxy)", + "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Naudoti integruotus meek_lite („Azure“) prijungiamus transportus", + "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Naudoti integruotus meek_lite („Azure“) prijungiamus transportus (reikalingas obfs4proxy)", + "gui_settings_meek_lite_expensive_warning": "Įspėjimas:

Meek_lite tiltai labai brangiai kainuoja „Tor“ projektui.

Jais naudokitės tik tuo atveju, jei negalite prisijungti prie „Tor“ tiesiogiai, per obfs4 transportą ar kitus įprastus tiltus.", "gui_settings_tor_bridges_custom_radio_option": "Naudoti tinkintus tinklų tiltus", "gui_settings_tor_bridges_custom_label": "Galite gauti tinklų tiltus iš https://bridges.torproject.org", "gui_settings_tor_bridges_invalid": "Nei vienas iš jūsų pridėtų tinklų tiltų neveikia.\nPatikrinkite juos dar kartą arba pridėkite kitus.", @@ -79,60 +79,60 @@ "gui_settings_autostop_timer": "", "gui_settings_autostart_timer_checkbox": "", "gui_settings_autostart_timer": "", - "settings_error_unknown": "", - "settings_error_automatic": "", - "settings_error_socket_port": "", - "settings_error_socket_file": "", - "settings_error_auth": "", - "settings_error_missing_password": "", - "settings_error_unreadable_cookie_file": "", - "settings_error_bundled_tor_not_supported": "", - "settings_error_bundled_tor_timeout": "", + "settings_error_unknown": "Nepavyksta prisijungti prie „Tor“ valdiklio, nes jūsų nustatymai nustatyti nesuprantamai.", + "settings_error_automatic": "Nepavyko prisijungti prie „Tor“ valdiklio. Ar „Tor“ naršyklė (prieinama torproject.org) veikia fone?", + "settings_error_socket_port": "Nepavyksta prisijungti prie „Tor“ valdiklio adresu {}:{}.", + "settings_error_socket_file": "Negalima prisijungti prie „Tor“ valdiklio naudojant lizdo failą {}.", + "settings_error_auth": "Prisijungta prie {}:{}, bet negalima patvirtinti autentiškumo. Galbūt tai ne „Tor“ valdiklis?", + "settings_error_missing_password": "Prisijungta prie „Tor“ valdiklio, tačiau norint jį autentifikuoti reikia slaptažodžio.", + "settings_error_unreadable_cookie_file": "Prisijungta prie „Tor“ valdiklio, bet slaptažodis gali būti klaidingas arba jūsų naudotojui neleidžiama skaityti slapukų failo.", + "settings_error_bundled_tor_not_supported": "Naudojant „Tor“ versiją, kuri pateikiama kartu su \"OnionShare\", \"Windows\" arba \"macOS\" sistemose ji neveiks kūrėjo režime.", + "settings_error_bundled_tor_timeout": "Per ilgai trunka prisijungimas prie „Tor“. Galbūt nesate prisijungę prie interneto arba turite netikslų sistemos laikrodį?", "settings_error_bundled_tor_broken": "OnionShare nepavyko prisijungti prie Tor:\n{}", - "settings_test_success": "", - "error_tor_protocol_error": "", + "settings_test_success": "Prisijungta prie „Tor“ valdiklio.\n\n„Tor“ versija: {}\nPalaiko efemerines onion paslaugas: {}.\nPalaiko kliento autentifikavimą: {}.\nPalaiko naujos kartos .onion adresus: {}.", + "error_tor_protocol_error": "Įvyko „Tor“ klaida: {}", "error_tor_protocol_error_unknown": "", "connecting_to_tor": "Jungiamasi prie Tor tinklo", - "update_available": "", - "update_error_invalid_latest_version": "", - "update_error_check_error": "", + "update_available": "Išleistas naujas „OnionShare“. Paspauskite čia, kad jį gautumėte.

Jūs naudojate {}, o naujausia versija yra {}.", + "update_error_invalid_latest_version": "Nepavyko patikrinti naujos versijos: „OnionShare“ svetainė sako, kad naujausia versija yra neatpažįstama „{}“…", + "update_error_check_error": "Nepavyko patikrinti naujos versijos: Galbūt nesate prisijungę prie „Tor“ arba „OnionShare“ svetainė neveikia?", "update_not_available": "Jūs naudojate naujausią OnionShare versiją.", - "gui_tor_connection_ask": "", + "gui_tor_connection_ask": "Atidarykite nustatymus, kad sutvarkytumėte ryšį su „Tor“?", "gui_tor_connection_ask_open_settings": "Taip", "gui_tor_connection_ask_quit": "Išeiti", "gui_tor_connection_error_settings": "Pabandykite nustatymuose pakeisti tai, kaip OnionShare jungiasi prie Tor tinklo.", "gui_tor_connection_canceled": "Nepavyko prisijungti prie Tor.\n\nĮsitikinkite, kad esate prisijungę prie interneto, o tuomet iš naujo atverkite OnionShare ir nustatykite prisijungimą prie Tor.", "gui_tor_connection_lost": "Atsijungta nuo Tor.", - "gui_server_started_after_autostop_timer": "", - "gui_server_autostop_timer_expired": "", - "gui_server_autostart_timer_expired": "", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "", + "gui_server_started_after_autostop_timer": "Automatinio sustabdymo laikmatis baigėsi prieš paleidžiant serverį. Prašome sukurti naują bendrinimą.", + "gui_server_autostop_timer_expired": "Automatinio sustabdymo laikmatis jau baigėsi. Sureguliuokite jį, kad pradėtumėte dalintis.", + "gui_server_autostart_timer_expired": "Numatytas laikas jau praėjo. Pakoreguokite jį, kad galėtumėte pradėti dalintis.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Automatinio sustabdymo laikas negali būti toks pat arba ankstesnis už automatinio paleidimo laiką. Sureguliuokite jį, kad galėtumėte pradėti dalytis.", "share_via_onionshare": "Bendrinti per OnionShare", "gui_connect_to_tor_for_onion_settings": "", "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "Visi, turintys šį OnionShare adresą gali atsisiųsti jūsų failus, naudodamiesi Tor Naršykle: ", - "gui_website_url_description": "", - "gui_receive_url_description": "", - "gui_url_label_persistent": "", - "gui_url_label_stay_open": "", - "gui_url_label_onetime": "", - "gui_url_label_onetime_and_persistent": "", - "gui_status_indicator_share_stopped": "", + "gui_website_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali apsilankyti jūsų svetainėje naudodamas „Tor“ naršyklę: ", + "gui_receive_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali įkelti failus į jūsų kompiuterį naudodamas „Tor“ naršyklę: ", + "gui_url_label_persistent": "Šis bendrinimas nebus automatiškai sustabdytas.

Kiekvienas vėlesnis bendrinimas pakartotinai naudoja adresą. (Norėdami naudoti vienkartinius adresus, nustatymuose išjunkite \"Naudoti nuolatinį adresą\".)", + "gui_url_label_stay_open": "Šis bendrinimas nebus automatiškai sustabdytas.", + "gui_url_label_onetime": "Šis bendrinimas pabaigus bus automatiškai sustabdytas.", + "gui_url_label_onetime_and_persistent": "Šis bendrinimas nebus automatiškai sustabdytas.

Kiekvienas vėlesnis bendrinimas pakartotinai naudos adresą. (Norėdami naudoti vienkartinius adresus, nustatymuose išjunkite \"Naudoti nuolatinį adresą\".)", + "gui_status_indicator_share_stopped": "Parengta dalintis", "gui_status_indicator_share_working": "Pradedama…", - "gui_status_indicator_share_scheduled": "", - "gui_status_indicator_share_started": "", - "gui_status_indicator_receive_stopped": "", - "gui_status_indicator_receive_working": "", - "gui_status_indicator_receive_scheduled": "", + "gui_status_indicator_share_scheduled": "Suplanuota…", + "gui_status_indicator_share_started": "Dalijimasis", + "gui_status_indicator_receive_stopped": "Parengta gauti", + "gui_status_indicator_receive_working": "Pradedama…", + "gui_status_indicator_receive_scheduled": "Suplanuota…", "gui_status_indicator_receive_started": "Gaunama", - "gui_file_info": "", - "gui_file_info_single": "", - "history_in_progress_tooltip": "", - "history_completed_tooltip": "", - "history_requests_tooltip": "", + "gui_file_info": "{} failai, {}", + "gui_file_info_single": "{} failas, {}", + "history_in_progress_tooltip": "{} vykdoma", + "history_completed_tooltip": "{} baigta", + "history_requests_tooltip": "{} žiniatinklio užklausos", "error_cannot_create_data_dir": "Nepavyko sukurti OnionShare duomenų aplanko: {}", - "gui_receive_mode_warning": "", + "gui_receive_mode_warning": "Gavimo režimas leidžia žmonėms nusiųsti failus į jūsų kompiuterį.

Kai kurie failai gali perimti kompiuterio valdymą, jei juos atidarysite. Atidarykite failus tik iš žmonių, kuriais pasitikite, arba jei žinote, ką darote.", "gui_mode_share_button": "", "gui_mode_receive_button": "", "gui_mode_website_button": "", @@ -147,67 +147,93 @@ "systray_menu_exit": "Išeiti", "systray_page_loaded_title": "Puslapis įkeltas", "systray_page_loaded_message": "OnionShare adresas įkeltas", - "systray_share_started_title": "", + "systray_share_started_title": "Pradėtas dalijimasis", "systray_share_started_message": "Pradedama kažkam siųsti failus", - "systray_share_completed_title": "", + "systray_share_completed_title": "Dalijimasis baigtas", "systray_share_completed_message": "Failų siuntimas užbaigtas", - "systray_share_canceled_title": "", - "systray_share_canceled_message": "", - "systray_receive_started_title": "", + "systray_share_canceled_title": "Dalijimasis atšauktas", + "systray_share_canceled_message": "Kažkas atšaukė jūsų failų gavimą", + "systray_receive_started_title": "Pradėtas gavimas", "systray_receive_started_message": "Kažkas siunčia jums failus", "gui_all_modes_history": "Istorija", - "gui_all_modes_clear_history": "", - "gui_all_modes_transfer_started": "", - "gui_all_modes_transfer_finished_range": "", - "gui_all_modes_transfer_finished": "", - "gui_all_modes_transfer_canceled_range": "", - "gui_all_modes_transfer_canceled": "", - "gui_all_modes_progress_complete": "", + "gui_all_modes_clear_history": "Išvalyti viską", + "gui_all_modes_transfer_started": "Pradėta {}", + "gui_all_modes_transfer_finished_range": "Perkelta {} - {}", + "gui_all_modes_transfer_finished": "Perkelta {}", + "gui_all_modes_transfer_canceled_range": "Atšaukta {} - {}", + "gui_all_modes_transfer_canceled": "Atšaukta {}", + "gui_all_modes_progress_complete": "Praėjo %p%, {0:s}.", "gui_all_modes_progress_starting": "{0:s}, %p% (apskaičiuojama)", - "gui_all_modes_progress_eta": "", + "gui_all_modes_progress_eta": "{0:s}, Preliminarus laikas: {1:s}, %p%", "gui_share_mode_no_files": "Kol kas nėra išsiųstų failų", - "gui_share_mode_autostop_timer_waiting": "", - "gui_website_mode_no_files": "", + "gui_share_mode_autostop_timer_waiting": "Laukiama, kol bus baigtas siuntimas", + "gui_website_mode_no_files": "Dar nėra bendrinama jokia svetainė", "gui_receive_mode_no_files": "Kol kas nėra gautų failų", - "gui_receive_mode_autostop_timer_waiting": "", - "days_first_letter": "d.", - "hours_first_letter": "", - "minutes_first_letter": "", - "seconds_first_letter": "", + "gui_receive_mode_autostop_timer_waiting": "Laukiama, kol bus baigtas gavimas", + "days_first_letter": "d", + "hours_first_letter": "val", + "minutes_first_letter": "min", + "seconds_first_letter": "s", "gui_new_tab": "Nauja kortelė", "gui_new_tab_tooltip": "Atverti naują kortelę", - "gui_new_tab_share_button": "", + "gui_new_tab_share_button": "Dalytis failais", "gui_new_tab_share_description": "", - "gui_new_tab_receive_button": "", + "gui_new_tab_receive_button": "Gauti failus", "gui_new_tab_receive_description": "", - "gui_new_tab_website_button": "", + "gui_new_tab_website_button": "Talpinti svetainę", "gui_new_tab_website_description": "", "gui_close_tab_warning_title": "Ar tikrai?", - "gui_close_tab_warning_persistent_description": "", - "gui_close_tab_warning_share_description": "", - "gui_close_tab_warning_receive_description": "", - "gui_close_tab_warning_website_description": "", + "gui_close_tab_warning_persistent_description": "Šis skirtukas yra nuolatinis. Jei jį uždarysite, prarasite jo naudojamą onion adresą. Ar tikrai norite jį uždaryti?", + "gui_close_tab_warning_share_description": "Šiuo metu siunčiate failus. Ar tikrai norite uždaryti šį skirtuką?", + "gui_close_tab_warning_receive_description": "Šiuo metu gaunate failus. Ar tikrai norite uždaryti šį skirtuką?", + "gui_close_tab_warning_website_description": "Aktyviai talpinate svetainę. Ar tikrai norite uždaryti šį skirtuką?", "gui_close_tab_warning_close": "Užverti", "gui_close_tab_warning_cancel": "Atsisakyti", "gui_quit_warning_title": "Ar tikrai?", - "gui_quit_warning_description": "", + "gui_quit_warning_description": "Kuriuose skirtukuose yra aktyviai dalijamasi . Jei išeisite, visi skirtukai bus uždaryti. Ar tikrai norite baigti?", "gui_quit_warning_quit": "Išeiti", "gui_quit_warning_cancel": "Atsisakyti", "mode_settings_advanced_toggle_show": "Rodyti išplėstinius nustatymus", "mode_settings_advanced_toggle_hide": "Slėpti išplėstinius nustatymus", - "mode_settings_persistent_checkbox": "", + "mode_settings_persistent_checkbox": "Išsaugoti šį skirtuką ir automatiškai jį atidaryti, kai atidarysiu „OnionShare“", "mode_settings_public_checkbox": "Nenaudoti slaptažodžio", - "mode_settings_autostart_timer_checkbox": "", - "mode_settings_autostop_timer_checkbox": "", - "mode_settings_legacy_checkbox": "", - "mode_settings_client_auth_checkbox": "", - "mode_settings_share_autostop_sharing_checkbox": "", + "mode_settings_autostart_timer_checkbox": "Pradėti onion paslaugos paleidimą suplanuotu laiku", + "mode_settings_autostop_timer_checkbox": "Sustabdyti onion paslaugos paleidimą suplanuotu laiku", + "mode_settings_legacy_checkbox": "Naudoti senąjį adresą (nerekomenduojama naudoti v2 onion paslaugos)", + "mode_settings_client_auth_checkbox": "Naudoti kliento autorizavimą", + "mode_settings_share_autostop_sharing_checkbox": "Sustabdyti dalijimąsi po to, kai failai buvo išsiųsti (atžymėkite, jei norite leisti atsisiųsti atskirus failus)", "mode_settings_receive_data_dir_label": "Įrašyti failus į", "mode_settings_receive_data_dir_browse_button": "Naršyti", - "mode_settings_website_disable_csp_checkbox": "", + "mode_settings_website_disable_csp_checkbox": "Nesiųskite turinio saugumo politikos antraštės (leidžia jūsų svetainei naudoti trečiųjų šalių išteklius)", "gui_file_selection_remove_all": "Šalinti visus", "gui_remove": "Šalinti", "gui_qr_code_dialog_title": "OnionShare QR kodas", "gui_show_url_qr_code": "Rodyti QR kodą", - "gui_open_folder_error": "Nepavyko atverti aplanko naudojant xdg-open. Failas yra čia: {}" + "gui_open_folder_error": "Nepavyko atverti aplanko naudojant xdg-open. Failas yra čia: {}", + "gui_chat_stop_server": "Sustabdyti pokalbių serverį", + "gui_chat_start_server": "Pradėti pokalbių serverį", + "history_receive_read_message_button": "Skaityti žinutę", + "mode_settings_title_label": "Pasirinktinis pavadinimas", + "gui_main_page_chat_button": "Pradėti pokalbį", + "gui_main_page_receive_button": "Pradėti gavimą", + "gui_main_page_share_button": "Pradėti dalintis", + "gui_new_tab_chat_button": "Kalbėtis anonimiškai", + "gui_status_indicator_chat_scheduled": "Suplanuota…", + "gui_status_indicator_chat_working": "Pradedama…", + "gui_tab_name_chat": "Pokalbiai", + "gui_tab_name_website": "Tinklalapis", + "gui_tab_name_receive": "Gauti", + "gui_tab_name_share": "Dalintis", + "gui_receive_flatpak_data_dir": "Kadangi „OnionShare“ įdiegėte naudodami „Flatpak“, turite išsaugoti failus aplanke, esančiame ~/OnionShare.", + "mode_settings_receive_webhook_url_checkbox": "Naudoti pranešimų webhook", + "gui_main_page_website_button": "Pradėti talpinimą", + "gui_status_indicator_chat_started": "Kalbamasi", + "gui_status_indicator_chat_stopped": "Paruošta pokalbiui", + "gui_color_mode_changed_notice": "Iš naujo paleiskite „OnionShare“, kad būtų pritaikytas naujas spalvų režimas.", + "mode_settings_receive_disable_files_checkbox": "Išjungti failų įkėlimą", + "mode_settings_receive_disable_text_checkbox": "Išjungti teksto pateikimą", + "gui_rendezvous_cleanup": "Laukiama, kol užsidarys „Tor“ grandinės, kad įsitikintume, jog jūsų failai sėkmingai perkelti.\n\nTai gali užtrukti kelias minutes.", + "gui_rendezvous_cleanup_quit_early": "Išeiti anksčiau", + "error_port_not_available": "„OnionShare“ prievadas nepasiekiamas", + "gui_chat_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali prisijungti prie šio pokalbių kambario naudodamas „Tor“ naršyklę: " } diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/src/onionshare/resources/locale/pl.json index 61b07d8b..2ef34565 100644 --- a/desktop/src/onionshare/resources/locale/pl.json +++ b/desktop/src/onionshare/resources/locale/pl.json @@ -283,5 +283,8 @@ "gui_close_tab_warning_share_description": "Jesteś w trakcie wysyłania plików. Czy na pewno chcesz zamknąć tę kartę?", "gui_close_tab_warning_persistent_description": "Ta zakładka jest trwała. Jeśli ją zamkniesz, stracisz adres cebulowy, którego używa. Czy na pewno chcesz ją zamknąć?", "gui_color_mode_changed_notice": "Uruchom ponownie OnionShare aby zastosować nowy tryb kolorów.", - "gui_chat_url_description": "Każdy z tym adresem OnionShare może dołączyć do tego pokoju używając Przeglądarki Tor: " + "gui_chat_url_description": "Każdy z tym adresem OnionShare może dołączyć do tego pokoju używając Przeglądarki Tor: ", + "mode_settings_receive_disable_files_checkbox": "Wyłącz wysyłanie plików", + "gui_status_indicator_chat_scheduled": "Zaplanowane…", + "gui_status_indicator_chat_working": "Uruchamianie…" } diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/src/onionshare/resources/locale/pt_BR.json index 2f261bc3..bc7fe0c7 100644 --- a/desktop/src/onionshare/resources/locale/pt_BR.json +++ b/desktop/src/onionshare/resources/locale/pt_BR.json @@ -287,5 +287,14 @@ "gui_chat_url_description": "Qualquer um com este endereço OnionShare pode entrar nesta sala de chat usando o Tor Browser: ", "gui_rendezvous_cleanup_quit_early": "Fechar facilmente", "gui_rendezvous_cleanup": "Aguardando o fechamento dos circuitos do Tor para ter certeza de que seus arquivos foram transferidos com sucesso.\n\nIsso pode demorar alguns minutos.", - "gui_color_mode_changed_notice": "Reinicie o OnionShare para que o novo modo de cor seja aplicado." + "gui_color_mode_changed_notice": "Reinicie o OnionShare para que o novo modo de cor seja aplicado.", + "history_receive_read_message_button": "Ler mensagem", + "mode_settings_receive_webhook_url_checkbox": "Usar webhook de notificação", + "mode_settings_receive_disable_files_checkbox": "Desativar o carregamento de arquivos", + "mode_settings_receive_disable_text_checkbox": "Desativar envio de texto", + "mode_settings_title_label": "Título personalizado", + "gui_status_indicator_chat_started": "Conversando", + "gui_status_indicator_chat_scheduled": "Programando…", + "gui_status_indicator_chat_working": "Começando…", + "gui_status_indicator_chat_stopped": "Pronto para conversar" } diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/src/onionshare/resources/locale/sv.json index 9e07d2c4..a3c97704 100644 --- a/desktop/src/onionshare/resources/locale/sv.json +++ b/desktop/src/onionshare/resources/locale/sv.json @@ -118,7 +118,7 @@ "settings_error_bundled_tor_timeout": "Det tar för lång tid att ansluta till Tor. Kanske är du inte ansluten till Internet, eller har en felaktig systemklocka?", "settings_error_bundled_tor_broken": "OnionShare kunde inte ansluta till Tor:\n{}", "settings_test_success": "Ansluten till Tor-regulatorn.\n\nTor-version: {}\nStöder efemära onion-tjänster: {}.\nStöder klientautentisering: {}.\nStöder nästa generations .onion-adresser: {}.", - "error_tor_protocol_error": "Det fanns ett fel med Tor: {}", + "error_tor_protocol_error": "Det uppstod ett fel med Tor: {}", "error_tor_protocol_error_unknown": "Det fanns ett okänt fel med Tor", "error_invalid_private_key": "Denna privata nyckeltyp stöds inte", "connecting_to_tor": "Ansluter till Tor-nätverket", @@ -126,7 +126,7 @@ "update_error_check_error": "Det gick inte att söka efter ny version: Kanske är du inte ansluten till Tor eller OnionShare-webbplatsen är nere?", "update_error_invalid_latest_version": "Det gick inte att söka efter ny version: OnionShare-webbplatsen säger att den senaste versionen är den oigenkännliga \"{}\"…", "update_not_available": "Du kör den senaste OnionShare.", - "gui_tor_connection_ask": "Öppna inställningarna för att sortera ut anslutning till Tor?", + "gui_tor_connection_ask": "Öppna inställningarna för att reda ut anslutning till Tor?", "gui_tor_connection_ask_open_settings": "Ja", "gui_tor_connection_ask_quit": "Avsluta", "gui_tor_connection_error_settings": "Försök att ändra hur OnionShare ansluter till Tor-nätverket i inställningarna.", @@ -219,7 +219,7 @@ "gui_settings_autostart_timer_checkbox": "Använd automatisk start-tidtagare", "gui_settings_autostart_timer": "Starta delning vid:", "gui_server_autostart_timer_expired": "Den schemalagda tiden har redan passerat. Vänligen justera den för att starta delning.", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Den automatiska stopp-tiden kan inte vara samma eller tidigare än den automatiska starttiden. Vänligen justera den för att starta delning.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Den automatiska stopp-tiden kan inte vara samma eller tidigare än den automatiska starttiden. Vänligen justera den för att starta delning.", "gui_status_indicator_share_scheduled": "Planerad…", "gui_status_indicator_receive_scheduled": "Planerad…", "days_first_letter": "d", @@ -248,7 +248,7 @@ "mode_settings_receive_data_dir_label": "Spara filer till", "mode_settings_share_autostop_sharing_checkbox": "Stoppa delning efter att filer har skickats (avmarkera för att tillåta hämtning av enskilda filer)", "mode_settings_client_auth_checkbox": "Använd klientauktorisering", - "mode_settings_legacy_checkbox": "Använd en äldre adress (v2 oniontjänst, rekommenderas inte)", + "mode_settings_legacy_checkbox": "Använd en äldre adress (v2-oniontjänst, rekommenderas inte)", "mode_settings_autostart_timer_checkbox": "Starta oniontjänsten vid schemalagd tid", "mode_settings_autostop_timer_checkbox": "Stoppa oniontjänsten vid schemalagd tid", "mode_settings_public_checkbox": "Använd inte ett lösenord", @@ -280,18 +280,28 @@ "gui_chat_start_server": "Starta chattservern", "gui_file_selection_remove_all": "Ta bort alla", "gui_remove": "Ta bort", - "gui_main_page_share_button": "Börja dela", + "gui_main_page_share_button": "Starta delning", "error_port_not_available": "OnionShare-porten är inte tillgänglig", "gui_rendezvous_cleanup_quit_early": "Avsluta tidigt", "gui_rendezvous_cleanup": "Väntar på att Tor-kretsar stänger för att vara säker på att dina filer har överförts.\n\nDet kan ta några minuter.", - "gui_tab_name_chat": "Chatta", + "gui_tab_name_chat": "Chatt", "gui_tab_name_website": "Webbplats", "gui_tab_name_receive": "Ta emot", "gui_tab_name_share": "Dela", "gui_main_page_chat_button": "Börja chatta", "gui_main_page_website_button": "Börja publicera", - "gui_main_page_receive_button": "Börja ta emot", + "gui_main_page_receive_button": "Starta mottagning", "gui_new_tab_chat_button": "Chatta anonymt", - "gui_open_folder_error": "Misslyckades att öppna mappen med xdg-open. Filen finns här: {}", - "gui_chat_url_description": "Alla med denna OnionShare-adress kan gå med i detta chattrum med Tor Browser: " + "gui_open_folder_error": "Det gick inte att öppna mappen med xdg-open. Filen finns här: {}", + "gui_chat_url_description": "Alla med denna OnionShare-adress kan gå med i detta chattrum med Tor Browser: ", + "gui_status_indicator_chat_stopped": "Redo att chatta", + "gui_status_indicator_chat_scheduled": "Schemalagd…", + "history_receive_read_message_button": "Läs meddelandet", + "mode_settings_receive_webhook_url_checkbox": "Använd aviseringswebhook", + "mode_settings_receive_disable_files_checkbox": "Inaktivera uppladdning av filer", + "mode_settings_receive_disable_text_checkbox": "Inaktivera att skicka text", + "mode_settings_title_label": "Anpassad titel", + "gui_color_mode_changed_notice": "Starta om OnionShare för att det nya färgläget ska tillämpas.", + "gui_status_indicator_chat_started": "Chattar", + "gui_status_indicator_chat_working": "Startar…" } diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json index 9b217970..e00c3aba 100644 --- a/desktop/src/onionshare/resources/locale/tr.json +++ b/desktop/src/onionshare/resources/locale/tr.json @@ -5,17 +5,17 @@ "not_a_file": "{0:s} dosya değil.", "other_page_loaded": "Adres yüklendi", "closing_automatically": "Aktarım tamamlandığından durduruldu", - "large_filesize": "Uyarı: Büyük bir paylaşma göndermek saatler sürebilir", + "large_filesize": "Uyarı: Büyük bir paylaşım saatler sürebilir", "help_local_only": "Tor kullanmayın (sadece geliştirme için)", "help_stay_open": "Dosyalar gönderildikten sonra paylaşmaya devam et", "help_debug": "OnionShare hatalarını stdout'a ve web hatalarını diske yaz", "help_filename": "Paylaşmak için dosya ve klasörler listesi", - "gui_drag_and_drop": "Paylaşmaya başlamak için dosya ve klasörleri sürükleyip bırakın", + "gui_drag_and_drop": "Paylaşıma başlamak için dosya ve klasörleri sürükleyip bırakın", "gui_add": "Ekle", "gui_delete": "Sil", "gui_choose_items": "Seç", "gui_share_start_server": "Paylaşmaya başla", - "gui_share_stop_server": "Paylaşmayı durdur", + "gui_share_stop_server": "Paylaşımı durdur", "gui_copy_url": "Adresi Kopyala", "gui_downloads": "İndirilenler:", "gui_canceled": "İptal edilen", @@ -33,9 +33,9 @@ "help_stealth": "İstemci yetkilendirmesini kullan (gelişmiş)", "help_receive": "Paylaşımı göndermek yerine, almak", "help_config": "Özel JSON config dosyası konumu (isteğe bağlı)", - "gui_add_files": "Dosya Ekle", - "gui_add_folder": "Klasör Ekle", - "gui_share_stop_server_autostop_timer": "Paylaşmayı Durdur ({})", + "gui_add_files": "Dosya ekle", + "gui_add_folder": "Klasör ekle", + "gui_share_stop_server_autostop_timer": "Paylaşımı Durdur ({})", "gui_share_stop_server_autostop_timer_tooltip": "Otomatik durdurma zamanlayıcısı {} sonra biter", "gui_receive_start_server": "Alma Modunu Başlat", "gui_receive_stop_server": "Alma Modunu Durdur", @@ -237,8 +237,8 @@ "gui_new_tab_tooltip": "Yeni bir sekme aç", "gui_new_tab": "Yeni Sekme", "gui_remove": "Kaldır", - "gui_file_selection_remove_all": "Tümünü Kaldır", - "gui_chat_start_server": "Sohbet sunucusu başlat", + "gui_file_selection_remove_all": "Tümünü kaldır", + "gui_chat_start_server": "Sohbet sunucusunu başlat", "gui_chat_stop_server": "Sohbet sunucusunu durdur", "gui_receive_flatpak_data_dir": "OnionShare'i Flatpak kullanarak kurduğunuz için, dosyaları ~/OnionShare içindeki bir klasöre kaydetmelisiniz.", "gui_show_url_qr_code": "QR Kodu Göster", diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json index 03ea9dfb..cf971be0 100644 --- a/desktop/src/onionshare/resources/locale/uk.json +++ b/desktop/src/onionshare/resources/locale/uk.json @@ -60,7 +60,7 @@ "gui_settings_control_port_label": "Порт керування", "gui_settings_socket_file_label": "Файл сокета", "gui_settings_socks_label": "SOCKS порт", - "gui_settings_authenticate_label": "Параметри автентифікації Tor", + "gui_settings_authenticate_label": "Налаштування автентифікації Tor", "gui_settings_authenticate_no_auth_option": "Без автентифікації або автентифікація через cookie", "gui_settings_authenticate_password_option": "Пароль", "gui_settings_password_label": "Пароль", @@ -99,7 +99,7 @@ "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": "Відкрити налаштування для перевірки з'єднання з Tor?", "gui_tor_connection_ask_open_settings": "Так", "gui_tor_connection_ask_quit": "Вийти", "gui_tor_connection_error_settings": "Спробуйте змінити в параметрах, як OnionShare з'єднується з мережею Tor.", @@ -132,7 +132,7 @@ "history_in_progress_tooltip": "{} в процесі", "history_completed_tooltip": "{} завершено", "error_cannot_create_data_dir": "Не вдалося створити теку даних OnionShare: {}", - "gui_receive_mode_warning": "Режим отримання дозволяє завантажувати файли до вашого комп'ютера.

Деякі файли, потенційно, можуть заволодіти вашим комп'ютером, у разі їх відкриття. Відкривайте файли лише від довірених осіб, або якщо впевнені в своїх діях.", + "gui_receive_mode_warning": "Режим отримання дозволяє завантажувати файли до вашого комп'ютера.

Деякі файли, потенційно, можуть заволодіти вашим комп'ютером, у разі їх відкриття. Відкривайте файли лише від довірених осіб, або якщо ви впевнені у своїх діях.", "gui_mode_share_button": "Поділитися файлами", "gui_mode_receive_button": "Отримання Файлів", "gui_settings_receiving_label": "Параметри отримання", diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/src/onionshare/resources/locale/yo.json index 96b5a0d1..fdd6dbea 100644 --- a/desktop/src/onionshare/resources/locale/yo.json +++ b/desktop/src/onionshare/resources/locale/yo.json @@ -7,14 +7,14 @@ "give_this_url_receive_stealth": "", "ctrlc_to_stop": "", "not_a_file": "", - "not_a_readable_file": "", + "not_a_readable_file": "{0:s} je oun ti a ko le ka.", "no_available_port": "", - "other_page_loaded": "", - "close_on_autostop_timer": "", - "closing_automatically": "", + "other_page_loaded": "Adiresi ti wole", + "close_on_autostop_timer": "O danuduro nitori akoko idaduro aifowoyi ti pe", + "closing_automatically": "Odanuduro nitori o ti fi ranse tan", "timeout_download_still_running": "", "timeout_upload_still_running": "", - "large_filesize": "", + "large_filesize": "Ikilo: Fi fi nkan repete ranse le gba aimoye wakati", "systray_menu_exit": "", "systray_download_started_title": "", "systray_download_started_message": "", @@ -32,16 +32,16 @@ "help_verbose": "", "help_filename": "", "help_config": "", - "gui_drag_and_drop": "", - "gui_add": "", + "gui_drag_and_drop": "Wo awon iwe pelebe ati apamowo re sibi lati bere sini fi ranse", + "gui_add": "Fikun", "gui_delete": "", - "gui_choose_items": "", - "gui_share_start_server": "", - "gui_share_stop_server": "", - "gui_share_stop_server_autostop_timer": "", + "gui_choose_items": "Yan", + "gui_share_start_server": "Bere si ni pin", + "gui_share_stop_server": "Dawo pinpin duro", + "gui_share_stop_server_autostop_timer": "Dawo pinpin duro ({})", "gui_share_stop_server_autostop_timer_tooltip": "", - "gui_receive_start_server": "", - "gui_receive_stop_server": "", + "gui_receive_start_server": "Bere ipele gbigba", + "gui_receive_stop_server": "Duro ipele gbigba", "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", @@ -181,5 +181,14 @@ "gui_download_in_progress": "", "gui_open_folder_error_nautilus": "", "gui_settings_language_label": "", - "gui_settings_language_changed_notice": "" + "gui_settings_language_changed_notice": "", + "gui_start_server_autostart_timer_tooltip": "Akoko ti nbere laifowoyi duro ni {}", + "gui_stop_server_autostop_timer_tooltip": "Akoko ti nduro laifowoyi dopin ni {}", + "gui_chat_stop_server": "Da olupin iregbe duro", + "gui_chat_start_server": "Bere olupin iregbe", + "gui_file_selection_remove_all": "Yo gbogbo re kuro", + "gui_remove": "Yokuro", + "gui_add_folder": "S'afikun folda", + "gui_add_files": "S'afikun faili", + "incorrect_password": "Ashiko oro igbaniwole" } diff --git a/desktop/src/onionshare/resources/locale/zh_Hans.json b/desktop/src/onionshare/resources/locale/zh_Hans.json index af0a2a99..d14b5754 100644 --- a/desktop/src/onionshare/resources/locale/zh_Hans.json +++ b/desktop/src/onionshare/resources/locale/zh_Hans.json @@ -294,5 +294,6 @@ "gui_status_indicator_chat_started": "正在聊天", "gui_status_indicator_chat_scheduled": "已安排…", "gui_status_indicator_chat_working": "启动中…", - "gui_status_indicator_chat_stopped": "准备好聊天" + "gui_status_indicator_chat_stopped": "准备好聊天", + "gui_please_wait_no_button": "启动中…" } diff --git a/docs/source/locale/bn/LC_MESSAGES/security.po b/docs/source/locale/bn/LC_MESSAGES/security.po index f8110093..b7413c02 100644 --- a/docs/source/locale/bn/LC_MESSAGES/security.po +++ b/docs/source/locale/bn/LC_MESSAGES/security.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3.1\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-02-22 13:40-0800\n" -"PO-Revision-Date: 2021-04-24 23:31+0000\n" +"PO-Revision-Date: 2021-06-27 06:32+0000\n" "Last-Translator: Oymate \n" "Language-Team: none\n" "Language: bn\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.7-dev\n" +"X-Generator: Weblate 4.7.1-dev\n" #: ../../source/security.rst:2 msgid "Security Design" @@ -32,7 +32,7 @@ msgstr "" #: ../../source/security.rst:9 msgid "What OnionShare protects against" -msgstr "" +msgstr "অনিয়নশেয়ার কিসের বিরুদ্ধে নিরাপত্তা দেয়" #: ../../source/security.rst:11 msgid "**Third parties don't have access to anything that happens in OnionShare.** Using OnionShare means hosting services directly on your computer. When sharing files with OnionShare, they are not uploaded to any server. If you make an OnionShare chat room, your computer acts as a server for that too. This avoids the traditional model of having to trust the computers of others." @@ -52,7 +52,7 @@ msgstr "" #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" -msgstr "" +msgstr "অনিওনশেয়ার কিসের বিরুদ্ধে রক্ষা করে না" #: ../../source/security.rst:22 msgid "**Communicating the OnionShare address might not be secure.** Communicating the OnionShare address to people is the responsibility of the OnionShare user. If sent insecurely (such as through an email message monitored by an attacker), an eavesdropper can tell that OnionShare is being used. If the eavesdropper loads the address in Tor Browser while the service is still up, they can access it. To avoid this, the address must be communicateed securely, via encrypted text message (probably with disappearing messages enabled), encrypted email, or in person. This isn't necessary when using OnionShare for something that isn't secret." diff --git a/docs/source/locale/hr/LC_MESSAGES/index.po b/docs/source/locale/hr/LC_MESSAGES/index.po index 711a4da0..14def152 100644 --- a/docs/source/locale/hr/LC_MESSAGES/index.po +++ b/docs/source/locale/hr/LC_MESSAGES/index.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-09-03 11:46-0700\n" -"PO-Revision-Date: 2020-12-17 19:29+0000\n" +"PO-Revision-Date: 2021-07-27 13:32+0000\n" "Last-Translator: Milo Ivir \n" "Language-Team: none\n" "Language: hr\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.7.2-dev\n" #: ../../source/index.rst:2 msgid "OnionShare's documentation" @@ -27,5 +27,5 @@ msgstr "OnionShare dokumentacija" 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 je alat otvorenog koda koji omogućuje sigurno i anonimno " -"dijeljenje datoteka, hosting za web-stranice te čavrljanje s prijateljima " +"dijeljenje datoteka, hosting za web-stranice te razgovaranje s prijateljima " "pomoću mreže Tor." diff --git a/docs/source/locale/tr/LC_MESSAGES/advanced.po b/docs/source/locale/tr/LC_MESSAGES/advanced.po index b3ac8a80..37073fe4 100644 --- a/docs/source/locale/tr/LC_MESSAGES/advanced.po +++ b/docs/source/locale/tr/LC_MESSAGES/advanced.po @@ -8,24 +8,24 @@ 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-07 18:32+0000\n" -"Last-Translator: Oğuz Ersen \n" +"PO-Revision-Date: 2021-07-15 20:32+0000\n" +"Last-Translator: Tur \n" "Language-Team: tr \n" "Language: tr\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" +"X-Generator: Weblate 4.7.2-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 msgid "Advanced Usage" -msgstr "Gelişmiş Kullanım" +msgstr "Gelişmiş kullanım" #: ../../source/advanced.rst:7 msgid "Save Tabs" -msgstr "Sekmeleri Kaydedin" +msgstr "Sekmeleri kaydedin" #: ../../source/advanced.rst:9 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/advanced.po b/docs/source/locale/uk/LC_MESSAGES/advanced.po index 12402413..ef1dbbc8 100644 --- a/docs/source/locale/uk/LC_MESSAGES/advanced.po +++ b/docs/source/locale/uk/LC_MESSAGES/advanced.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-07 18:32+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 @@ -83,10 +83,10 @@ msgid "" "wrong guesses at the password, your onion service is automatically " "stopped to prevent a brute force attack against the OnionShare service." msgstr "" -"Типово всі служби OnionShare захищені іменем користувача ``onionshare`` і" -" випадково створеним паролем. Якщо хтось вводить пароль неправильно 20 " -"разів, ваша служба onion автоматично зупинениться, щоб запобігти грубій " -"спробі зламу служби OnionShare." +"Типово всі служби OnionShare захищені іменем користувача ``onionshare`` і " +"випадково створеним паролем. Якщо хтось вводить пароль неправильно 20 разів, " +"ваша служба onion автоматично зупиняється, щоб запобігти спробі грубого " +"зламу служби OnionShare." #: ../../source/advanced.rst:31 msgid "" @@ -186,10 +186,10 @@ msgid "" "making sure they're not available on the Internet for more than a few " "days." msgstr "" -"**Планування автоматичної зупинки служби OnionShare може бути корисним " -"для обмеження надсилання**, наприклад, якщо ви хочете поділитися таємними" -" документами й буди певними, що вони не доступні в Інтернеті впродовж " -"більше кількох днів." +"**Планування автоматичної зупинки служби OnionShare може бути корисним для " +"обмеження надсилання**, наприклад, якщо ви хочете поділитися таємними " +"документами й бути певними, що вони не доступні в Інтернеті впродовж більше " +"кількох днів." #: ../../source/advanced.rst:65 msgid "Command-line Interface" diff --git a/docs/source/locale/uk/LC_MESSAGES/develop.po b/docs/source/locale/uk/LC_MESSAGES/develop.po index ce18e618..98c947b0 100644 --- a/docs/source/locale/uk/LC_MESSAGES/develop.po +++ b/docs/source/locale/uk/LC_MESSAGES/develop.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: 2021-01-26 22:32+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.5-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -41,12 +41,13 @@ msgid "" msgstr "" "OnionShare має відкриту команду Keybase для обговорення проєкту, включно з " "питаннями, обміном ідеями та побудовою, плануванням подальшого розвитку. (Це " -"також простий спосіб надсилати захищені наскрізним шифруванням прямі " -"повідомлення іншим у спільноті OnionShare, як-от адреси OnionShare.) Щоб " -"використовувати Keybase, потрібно завантажити програму `Keybase app " -"`_, створити обліковий запис та `приєднайтися " -"до цієї команди `_. У програмі перейдіть " -"до «Команди», натисніть «Приєднатися до команди» та введіть «onionshare»." +"також простий спосіб надсилати безпосередні захищені наскрізним шифруванням " +"повідомлення іншим спільноти OnionShare, наприклад адреси OnionShare.) Щоб " +"користуватися Keybase, потрібно завантажити застосунок `Keybase app " +"`_, створити обліковий запис та `приєднайтеся " +"до цієї команди `_. У застосунку " +"перейдіть до «Команди», натисніть «Приєднатися до команди» та введіть " +"«onionshare»." #: ../../source/develop.rst:12 msgid "" @@ -54,9 +55,9 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"OnionShare також має `список розсилки " -"` _ для " -"розробників та дизайнерів для обговорення проєкту." +"OnionShare також має `список розсилання `_ для розробників та дизайнерів для обговорення " +"проєкту." #: ../../source/develop.rst:15 msgid "Contributing Code" @@ -79,9 +80,9 @@ msgid "" "there are any you'd like to tackle." msgstr "" "Якщо ви хочете допомогти кодом OnionShare, приєднайтеся до команди Keybase і " -"запитайте над чим ви думаєте працювати. Ви також повинні переглянути всі `" -"відкриті запити `_ на " -"GitHub, щоб побачити, чи є такі, які ви хотіли б розв'язати." +"запитайте над чим можна попрацювати. Також варто переглянути всі `відкриті " +"завдання `_ на GitHub, щоб " +"побачити, чи є такі, які б ви хотіли розв'язати." #: ../../source/develop.rst:22 msgid "" @@ -89,7 +90,7 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Коли ви будете готові внести код, відкрийте запит надсилання до сховища " +"Коли ви будете готові допомогти код, відкрийте «pull request» до репозиторію " "GitHub і один із супровідників проєкту перегляне його та, можливо, поставить " "питання, попросить змінити щось, відхилить його або об’єднає з проєктом." @@ -107,10 +108,10 @@ msgid "" "graphical version." msgstr "" "OnionShare розроблено на Python. Для початку клонуйте сховище Git за адресою " -"https://github.com/micahflee/onionshare/, а потім зверніться до файлу ``cli/" -"README.md``, щоб дізнатися, як налаштувати середовище розробки для версії " -"командного рядка та файл ``desktop/README.md``, щоб дізнатися, як " -"налаштувати середовище розробки для графічної версії." +"https://github.com/micahflee/onionshare/, а потім перегляньте файл ``cli/" +"README.md``, щоб дізнатися, як налаштувати середовище розробки у командному " +"рядку або файл ``desktop/README.md``, щоб дізнатися, як налаштувати " +"середовище розробки у версії з графічним інтерфейсом." #: ../../source/develop.rst:32 msgid "" @@ -158,8 +159,8 @@ msgid "" " are manipulated." msgstr "" "Це може бути корисно для вивчення ланцюжка подій, що відбуваються під час " -"користування програмою, або значень певних змінних до та після того, як ними " -"маніпулюють." +"користування OnionShare, або значень певних змінних до та після взаємодії з " +"ними." #: ../../source/develop.rst:124 msgid "Local Only" @@ -218,8 +219,8 @@ msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." msgstr "" -"Іноді оригінальні англійські рядки містять помилки або не збігаються між " -"програмою та документацією." +"Іноді оригінальні англійські рядки містять помилки або відрізняються у " +"застосунку та документації." #: ../../source/develop.rst:178 msgid "" @@ -229,9 +230,9 @@ msgid "" "the usual code review processes." msgstr "" "Вдоскональте рядок джерела файлу, додавши @kingu до свого коментаря Weblate, " -"або повідомте про проблему на GitHub або запит на додавання. Останнє " -"гарантує, що всі основні розробники, бачать пропозицію та можуть потенційно " -"змінити рядок за допомогою звичайних процесів перегляду коду." +"або повідомте про проблему на GitHub, або надішліть запит на додавання. " +"Останнє гарантує, що всі основні розробники, бачать пропозицію та, ймовірно, " +"можуть змінити рядок за допомогою звичайних процесів перегляду коду." #: ../../source/develop.rst:182 msgid "Status of Translations" @@ -243,9 +244,9 @@ msgid "" "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Ось поточний стан перекладу. Якщо ви хочете розпочати переклад мовою, якої " -"тут немає, будь ласка, напишіть нам до списку розсилки: onionshare-dev@lists." -"riseup.net" +"Тут знаходиться поточний стан перекладу. Якщо ви хочете розпочати переклад " +"відсутньою тут мовою, будь ласка, напишіть нам до списку розсилання: " +"onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" diff --git a/docs/source/locale/uk/LC_MESSAGES/features.po b/docs/source/locale/uk/LC_MESSAGES/features.po index 486fe5bc..341da9ed 100644 --- a/docs/source/locale/uk/LC_MESSAGES/features.po +++ b/docs/source/locale/uk/LC_MESSAGES/features.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-07 18:32+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/features.rst:4 @@ -72,10 +72,9 @@ msgid "" "works best when working with people in real-time." msgstr "" "Якщо ви запустили OnionShare на ноутбуці, щоб надіслати комусь файли, а " -"потім зупинити його роботу перед надсиланням файлів, служба буде " -"недоступна, доки роботу ноутбука не буде поновлено і знову з'явиться в " -"Інтернеті. OnionShare найкраще працює під час роботи з людьми в режимі " -"реального часу." +"потім зупинили його роботу перед надсиланням файлів, служба буде недоступна, " +"доки роботу ноутбука не буде поновлено і він знову з'єднається з інтернетом. " +"OnionShare найкраще працює під час роботи з людьми в режимі реального часу." #: ../../source/features.rst:18 msgid "" @@ -101,18 +100,17 @@ msgid "" "anonymously. Open a share tab, drag in the files and folders you wish to " "share, and click \"Start sharing\"." msgstr "" -"Ви можете використовувати OnionShare, щоб безпечно та анонімно надсилати " -"файли та теки людям. Просто відкрийте вкладку спільного доступу, " -"перетягніть файли та теки, якими хочете поділитися і натисніть \"Почати " -"надсилання\"." +"Ви можете користуватися OnionShare, щоб безпечно та анонімно надсилати файли " +"та теки людям. Просто відкрийте вкладку спільного доступу, перетягніть файли " +"та теки, якими хочете поділитися і натисніть \"Почати надсилання\"." #: ../../source/features.rst:27 ../../source/features.rst:104 msgid "" "After you add files, you'll see some settings. Make sure you choose the " "setting you're interested in before you start sharing." msgstr "" -"Після додавання файлів з'являться параметри. Перед надсиланням, " -"переконайтеся, що вибрано потрібний параметр." +"Після додавання файлів з'являться налаштування. Перед надсиланням, " +"переконайтеся, що вибрано потрібні налаштування." #: ../../source/features.rst:31 msgid "" @@ -184,14 +182,14 @@ msgid "" "anonymous dropbox. Open a receive tab and choose the settings that you " "want." msgstr "" -"Ви можете використовувати OnionShare, щоб дозволити людям анонімно надсилати " +"Ви можете користуватися OnionShare, щоб дозволити людям анонімно надсилати " "файли та повідомлення безпосередньо на ваш комп’ютер, по суті, перетворюючи " "їх на анонімний буфер. Відкрийте вкладку отримання та виберіть потрібні " "налаштування." #: ../../source/features.rst:54 msgid "You can browse for a folder to save messages and files that get submitted." -msgstr "Можете вибрати теку для збереження повідомлень і файлів, які надіслано." +msgstr "Можете вибрати теку для збереження доставлених повідомлень і файлів." #: ../../source/features.rst:56 msgid "" @@ -226,10 +224,10 @@ msgstr "" "отримати зашифровані текстові повідомлення в програмі обміну повідомленнями `" "Keybase `_, ви можете почати розмову з `@webhookbot " "`_, введіть ``!webhook create onionshare-" -"alerts``, і він відповідатиме через URL-адресу. Використовуйте її URL-" -"адресою вебобробника сповіщень. Якщо хтось вивантажить файл до служби режиму " -"отримання, @webhookbot надішле вам повідомлення на Keybase, яке повідомить " -"вас, як тільки це станеться." +"alerts``, і він відповідатиме через URL-адресу. Застосовуйте її URL-адресою " +"вебобробника сповіщень. Якщо хтось вивантажить файл до служби отримання, @" +"webhookbot надішле вам повідомлення на Keybase, яке сповістить вас, як " +"тільки це станеться." #: ../../source/features.rst:63 msgid "" @@ -239,9 +237,9 @@ msgid "" "computer." msgstr "" "Коли все буде готово, натисніть кнопку «Запустити режим отримання». Це " -"запустить службу OnionShare. Будь-хто, хто завантажує цю адресу у своєму " -"браузері Tor, зможе надсилати файли та повідомлення, які завантажуються на " -"ваш комп'ютер." +"запустить службу OnionShare. Всі хто завантажить цю адресу у своєму браузері " +"Tor зможе надсилати файли та повідомлення, які завантажуватимуться на ваш " +"комп'ютер." #: ../../source/features.rst:67 msgid "" @@ -264,7 +262,7 @@ msgid "" msgstr "" "Коли хтось надсилає файли або повідомлення до вашої служби отримання, типово " "вони зберігаються до теки ``OnionShare`` у домашній теці на вашому " -"комп'ютері, автоматично впорядковуються в окремі підтеки залежно від часу " +"комп'ютері та автоматично впорядковуються в окремі підтеки залежно від часу " "передавання файлів." #: ../../source/features.rst:75 @@ -275,11 +273,11 @@ msgid "" "quite as secure version of `SecureDrop `_, the " "whistleblower submission system." msgstr "" -"Параметри служби отримання OnionShare корисні для журналістів та інших " -"осіб, яким потрібно безпечно отримувати документи від анонімних джерел. " -"Використовуючи таким чином, OnionShare як легку, простішу, не настільки " -"безпечну версію `SecureDrop `_, системи подання " -"таємних повідомлень викривачів." +"Служби отримання OnionShare корисні для журналістів та інших осіб, яким " +"потрібно безпечно отримувати документи від анонімних джерел. Користуючись " +"таким чином OnionShare як легкою, простішою, але не настільки безпечною " +"версією `SecureDrop `_, системи подання таємних " +"повідомлень викривачів." #: ../../source/features.rst:78 msgid "Use at your own risk" @@ -429,13 +427,13 @@ msgid "" "(see :ref:`save_tabs`) so you can resume the website with the same " "address if you close OnionShare and re-open it later." msgstr "" -"Якщо ви хочете розмістити довгостроковий вебсайт за допомогою OnionShare " -"(це не просто для того, щоб швидко комусь щось показати), рекомендовано " -"робити це на окремому виділеному комп’ютері, який завжди ввімкнено та " -"під'єднано до Інтернету, а не на той, яким ви користуєтеся регулярно. Вам" -" також слід зберегти вкладку (подробиці :ref:`save_tabs`), щоб ви могли " -"відновити вебсайт з тією ж адресою, якщо закриєте OnionShare і знову " -"відкриєте його пізніше." +"Якщо ви хочете розмістити постійний вебсайт за допомогою OnionShare (це не " +"просто для того, щоб швидко комусь щось показати), радимо робити це на " +"окремо виділеному комп’ютері, який завжди ввімкнено та під'єднано до " +"Інтернету, а не на той, яким ви користуєтеся регулярно. Вам також слід " +"зберегти вкладку (подробиці про :ref:`save_tabs`), щоб ви могли відновити " +"вебсайт з тією ж адресою, якщо закриєте OnionShare і знову відкриєте його " +"пізніше." #: ../../source/features.rst:121 msgid "" @@ -465,10 +463,10 @@ msgid "" "limit exactly who can join, use an encrypted messaging app to send out " "the OnionShare address." msgstr "" -"Після запуску сервера копіюйте адресу OnionShare і надішліть її людям, " -"які приєднаються до цієї анонімної кімнати чату. Якщо важливо обмежити " -"коло, хто може приєднатися, ви повинні використовувати зашифровані " -"програми обміну повідомленнями для надсилання адреси OnionShare." +"Після запуску сервера копіюйте адресу OnionShare і надішліть її людям, які " +"приєднаються до цієї анонімної кімнати чату. Якщо важливо обмежити коло " +"учасників, ви повинні скористатися застосунком обміну зашифрованими " +"повідомленнями для надсилання адреси OnionShare." #: ../../source/features.rst:135 msgid "" @@ -523,9 +521,8 @@ msgid "" "If you need to already be using an encrypted messaging app, what's the " "point of an OnionShare chat room to begin with? It leaves less traces." msgstr "" -"Якщо вам вже потрібно використовувати програму обміну зашифрованим " -"повідомленнями, то який сенс спілкування в OnionShare? Він залишає менше " -"слідів." +"Якщо вам потрібно застосовувати програму обміну зашифрованим повідомленнями, " +"то який сенс спілкування в OnionShare? Він залишає менше слідів." #: ../../source/features.rst:154 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/help.po b/docs/source/locale/uk/LC_MESSAGES/help.po index 914b6716..238f633e 100644 --- a/docs/source/locale/uk/LC_MESSAGES/help.po +++ b/docs/source/locale/uk/LC_MESSAGES/help.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: 2020-11-17 10:28+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -33,8 +33,9 @@ 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 "" -"Цей вебсайт містить настановами щодо користування OnionShare. Спочатку " -"перегляньте всі розділи, щоб дізнатися, чи відповідає він на ваші питання." +"Цей вебсайт містить настанови щодо користування OnionShare. Спочатку " +"перегляньте всі розділи, щоб дізнатися, чи містять вони відповідей на ваші " +"запитання." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" @@ -47,10 +48,10 @@ msgid "" " else has encountered the same problem and either raised it with the " "developers, or maybe even posted a solution." msgstr "" -"Якщо розв'язок відсутній на цьому вебсайті, перегляньте `GitHub issues " +"Якщо на цьому вебсайті не описано вашої проблеми, перегляньте `GitHub issues " "`_. Можливо, хтось інший " "зіткнувся з тією ж проблемою та запитав про неї у розробників, або, можливо, " -"навіть опублікував розв'язок." +"навіть опублікував як її виправити." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -64,7 +65,7 @@ msgid "" "`creating a GitHub account `_." msgstr "" -"Якщо не можете знайти розв'язку своєї проблеми або хочете запитати чи " +"Якщо не можете знайти як виправити свою проблему або хочете запитати чи " "запропонувати нову функцію, `поставте питання `_. Для цього потрібно `створити обліковий запис " "GitHub \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/install.rst:2 @@ -59,8 +59,8 @@ 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 вбудовано в Ubuntu, а Flatpak — у Fedora, але те, чим ви користуєтеся " -"залежить від вас. Обидва вони працюють у всіх дистрибутивах Linux." +"Snap вбудовано в Ubuntu, а Flatpak — у Fedora, але ви самі можете обрати чим " +"користуватися. Вони обоє працюють у всіх дистрибутивах Linux." #: ../../source/install.rst:19 msgid "" @@ -113,11 +113,10 @@ msgid "" "`_." msgstr "" -"Пакунки підписує Micah Lee, основний розробник, своїм відкритим ключем " -"PGP з цифровим відбитком ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. " -"Ключ Micah можна завантажити `з сервера ключів keys.openpgp.org " -"`_." +"Пакунки підписує основний розробник Micah Lee своїм відкритим ключем PGP з " +"цифровим відбитком ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Ключ Micah " +"можна завантажити `з сервера ключів keys.openpgp.org `_." #: ../../source/install.rst:38 msgid "" @@ -177,10 +176,10 @@ msgid "" " the package, it only means you haven't already defined any level of " "'trust' of Micah's PGP key.)" msgstr "" -"Якщо ви не бачите 'Good signature from', можливо, проблема з цілісністю " -"файлу (шкідлива чи інша), і, можливо, вам не слід встановлювати пакунок. (" -"Вказане раніше «ПОПЕРЕДЖЕННЯ» не є проблемою з пакунком: воно означає лише, " -"що ви не визначили жодного рівня 'довіри' щодо самого ключа PGP від Micah.)" +"Якщо ви не бачите «Good signature from», можливо, проблема з цілісністю " +"файлу (зловмисна чи інша), і, можливо, вам не слід встановлювати пакунок. (" +"Вказане раніше «ПОПЕРЕДЖЕННЯ» не є проблемою з пакунком: воно лише означає, " +"що ви не визначено рівня «довіри» до самого ключа PGP від Micah.)" #: ../../source/install.rst:71 msgid "" @@ -189,10 +188,9 @@ msgid "" " the `Tor Project `_ may be useful." msgstr "" -"Якщо ви хочете дізнатися докладніше про перевірку підписів PGP, настанови " -"для `Qubes OS `_ та " -"`Tor Project `_ " -"можуть допомогти." +"Докладніше про перевірку підписів PGP читайте у настановах для `Qubes OS " +"`_ та `Tor Project " +"`_." #~ msgid "For added security, see :ref:`verifying_sigs`." #~ msgstr "Для додаткової безпеки перегляньте :ref:`verifying_sigs`." diff --git a/docs/source/locale/uk/LC_MESSAGES/security.po b/docs/source/locale/uk/LC_MESSAGES/security.po index 0df854e6..80cfbe8c 100644 --- a/docs/source/locale/uk/LC_MESSAGES/security.po +++ b/docs/source/locale/uk/LC_MESSAGES/security.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2020-12-16 00:29+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/security.rst:2 @@ -103,12 +103,12 @@ msgstr "" "**Якщо зловмисник дізнається про службу onion, він все одно не може отримати " "доступ ні до чого.** Попередні напади на мережу Tor для виявлення служб " "onion дозволили зловмиснику виявити приватні адреси .onion. Якщо напад " -"виявить приватну адресу OnionShare, пароль не дозволить їм отримати до неї " +"виявить приватну адресу OnionShare, пароль не дозволить йому отримати до неї " "доступ (якщо користувач OnionShare не вирішив вимкнути його та зробити " "службу загальнодоступною). Пароль створюється шляхом вибору двох випадкових " -"слів зпереліку з 6800 слів, що робить 6800² або близько 46 мільйонів " +"слів з переліку у 6800 слів, що робить 6800² або близько 46 мільйонів " "можливих паролів. Можна здійснити лише 20 невдалих спроб, перш ніж " -"OnionShare зупинить сервер, запобігаючи грубому намаганню зламу пароля." +"OnionShare зупинить сервер, запобігаючи намаганню грубого зламу пароля." #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" @@ -126,17 +126,16 @@ msgid "" " disappearing messages enabled), encrypted email, or in person. This " "isn't necessary when using OnionShare for something that isn't secret." msgstr "" -"**Зв’язок з адресою OnionShare може бути ненадійним.** Передача адреси " -"OnionShare людям є відповідальністю користувача OnionShare. Якщо " -"надіслано ненадійно (наприклад, через повідомлення електронною поштою, " -"яку контролює зловмисник), підслуховувач може дізнатися, що " -"використовується OnionShare. Якщо підслуховувачі завантажать адресу в Tor" -" Browser, поки служба ще працює, вони можуть отримати до неї доступ. Щоб " -"уникнути цього, адресу потрібно передавати надійно, за допомогою " -"захищеного текстового повідомлення (можливо, з увімкненими " -"повідомленнями, що зникають), захищеного електронного листа або особисто." -" Це не потрібно при використанні OnionShare для чогось, що не є " -"таємницею." +"**Зв’язок з адресою OnionShare може бути ненадійним.** Відповідальність за " +"передавання адреси OnionShare людям покладено на користувача OnionShare. " +"Якщо її надіслано ненадійно (наприклад, через повідомлення електронною " +"поштою, яку контролює зловмисник), підслуховувач може дізнатися, що ви " +"користується OnionShare. Якщо підслуховувачі завантажать адресу в Tor " +"Browser, поки служба ще працює, вони можуть отримати до неї доступ. Щоб " +"уникнути цього, адресу потрібно передавати надійно, за допомогою захищеного " +"текстового повідомлення (можливо, з увімкненими повідомленнями, що зникають)" +", захищеного електронного листа або особисто. Це не потрібно якщо " +"користуватися OnionShare для даних, які не є таємницею." #: ../../source/security.rst:24 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/tor.po b/docs/source/locale/uk/LC_MESSAGES/tor.po index 9317e157..ddf4ab4f 100644 --- a/docs/source/locale/uk/LC_MESSAGES/tor.po +++ b/docs/source/locale/uk/LC_MESSAGES/tor.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2020-12-16 00:29+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/tor.rst:2 @@ -160,7 +160,7 @@ msgstr "" "Відкрийте OnionShare і натисніть на ньому піктограму «⚙». У розділі «Як " "OnionShare повинен з'єднуватися з Tor?\" виберіть «Під'єднатися через порт " "керування» та встановіть «Порт керування» на ``127.0.0.1`` та «Порт» на " -"``9051``. У розділі «Параметри автентифікації Tor» виберіть «Пароль» і " +"``9051``. У розділі «Налаштування автентифікації Tor» виберіть «Пароль» і " "встановіть пароль для пароля контрольного порту, який ви вибрали раніше. " "Натисніть кнопку «Перевірити з'єднання з Tor». Якщо все добре, ви побачите «" "З'єднано з контролером Tor»." @@ -194,11 +194,10 @@ msgid "" "cookie authentication\". Click the \"Test Connection to Tor\" button." msgstr "" "Відкрийте OnionShare. Клацніть піктограму «⚙». У розділі «Як OnionShare " -"повинен з'єднуватися з Tor?» виберіть «Під'єднуватися через файл сокета» " -"та встановіть для файлу сокета шлях " -"``/usr/local/var/run/tor/control.socket``. У розділі «Параметри " -"автентифікації Tor» виберіть «Без автентифікації або автентифікація через" -" cookie». Натисніть кнопку «Перевірити з'єднання з Tor»." +"повинен з'єднуватися з Tor?» виберіть «Під'єднуватися через файл сокета» та " +"встановіть для файлу сокета шлях ``/usr/local/var/run/tor/control.socket``. " +"У розділі «Налаштування автентифікації Tor» виберіть «Без автентифікації або " +"автентифікація через cookie». Натисніть кнопку «Перевірити з'єднання з Tor»." #: ../../source/tor.rst:84 ../../source/tor.rst:104 msgid "If all goes well, you should see \"Connected to the Tor controller\"." @@ -248,10 +247,10 @@ msgid "" msgstr "" "Перезапустіть комп'ютер. Після запуску, відкрийте OnionShare. Клацніть " "піктограму «⚙». У розділі «Як OnionShare повинен з'єднуватися з Tor?» " -"виберіть «Під'єднуватися через файл сокета» та встановіть для файлу " -"сокета шлях ``/var/run/tor/control``. У розділі «Параметри автентифікації" -" Tor» виберіть «Без автентифікації або автентифікація через cookie». " -"Натисніть кнопку «Перевірити з'єднання з Tor»." +"виберіть «Під'єднуватися через файл сокета» та встановіть для файлу сокета " +"шлях ``/var/run/tor/control``. У розділі «Налаштування автентифікації Tor» " +"виберіть «Без автентифікації або автентифікація через cookie». Натисніть " +"кнопку «Перевірити з'єднання з Tor»." #: ../../source/tor.rst:107 msgid "Using Tor bridges" From 300189d95be0a273f2ca3f0cba10128aeb116ff5 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 13:24:15 -0700 Subject: [PATCH 32/55] Add Lithuanian --- cli/onionshare_cli/settings.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cli/onionshare_cli/settings.py b/cli/onionshare_cli/settings.py index 665c41c9..137b690e 100644 --- a/cli/onionshare_cli/settings.py +++ b/cli/onionshare_cli/settings.py @@ -75,6 +75,7 @@ class Settings(object): "it": "Italiano", # Italian "ja": "日本語", # Japanese "ckb": "Soranî", # Kurdish (Central) + "lt": "Lietuvių Kalba", # Lithuanian "nb_NO": "Norsk Bokmål", # Norwegian Bokmål # "fa": "فارسی", # Persian "pl": "Polski", # Polish @@ -110,7 +111,7 @@ class Settings(object): "tor_bridges_use_custom_bridges": "", "persistent_tabs": [], "locale": None, # this gets defined in fill_in_defaults() - "theme": 0 + "theme": 0, } self._settings = {} self.fill_in_defaults() From 601f81899064447e3033a3028f2493a1b56c3391 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 13:24:24 -0700 Subject: [PATCH 33/55] Build docs for 2.3.3 --- docs/gettext/.doctrees/advanced.doctree | Bin 30413 -> 30413 bytes docs/gettext/.doctrees/develop.doctree | Bin 37736 -> 37736 bytes docs/gettext/.doctrees/environment.pickle | Bin 37841 -> 37974 bytes docs/gettext/.doctrees/features.doctree | Bin 47169 -> 47169 bytes docs/gettext/.doctrees/help.doctree | Bin 7679 -> 7679 bytes docs/gettext/.doctrees/index.doctree | Bin 3439 -> 3439 bytes docs/gettext/.doctrees/install.doctree | Bin 20613 -> 20613 bytes docs/gettext/.doctrees/security.doctree | Bin 13526 -> 13526 bytes docs/gettext/.doctrees/tor.doctree | Bin 30114 -> 30114 bytes docs/gettext/advanced.pot | 4 ++-- docs/gettext/develop.pot | 4 ++-- docs/gettext/features.pot | 4 ++-- docs/gettext/help.pot | 4 ++-- docs/gettext/index.pot | 4 ++-- docs/gettext/install.pot | 4 ++-- docs/gettext/security.pot | 4 ++-- docs/gettext/sphinx.pot | 4 ++-- docs/gettext/tor.pot | 4 ++-- docs/source/conf.py | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree index 29e035cc124c21ddbf593af42323fd53275cd012..51c0558ef10052d7b1bc8b4e3ff8a374992b278d 100644 GIT binary patch delta 1220 zcmWlZJ*!?t5XU*sy@o(UM1mOg<~acc1&On}GrKbgevK3obY^GQA~yE=2?Rl|R@#VS zBN1fYrP;CMteqxvd^xpIb*`Temrss;M4||_&WNL1G9cpC=ZMQx*To}G zAC9$vIT(2nWMZpHEotppE7h*+`OCi^cEpO-nG#JzNQng;kf6-&y%4RdSKi!qCm(qv z!rThZv9r^iN&*)xJ#$Bp zrif}N&OVWP?(35$K0VpNBNi8NdO;Po-g|Z{%ENnAS+}43A^P&v3i*slQ`9AMtZsEg zX@Qy2s!zSM?bSv{8le>dYC{<^XKgL?>QaWTKdxPDd#?s53knoO#%!806>k|h56`~- zdIq*#eMDSE9U4LvE7P$+FFd%Bv~~0BY}-pggHRntBea~Y)sZBcn@Yx!>(2E{Cws|I zNJj<_AW{t!O2P^arjFiutPgH{aoBzMtWF9(TM)rw5RiCiI!aG1ty|AsJ>4ry=_O;O zsaP=dijZNT0of?idhdm2PxmBTWdKErggR#YCIKNzor0#h?!EN;wzrz%pqJ#s5U6sq z$^)gQ)>F~EzQ6f+=;e?KCt?oOLw+06w8ycBG=?DS@0WjyT-u_CpgSN#X{a8%?t~%Z z%oXSQCB1qQr>MX%rdb73iy28n{4PRinCSV7^vw~yHshGuO2sTwqy}hV9+@Z^Zm@ip4i6F*P7#goZ9iv&X_0b!b4#$y2p-sv2 z;R_Hi#Dv-d9B1&b`1;Y_J=x<@EF-H&#V8!p0*sylpo-iFuUqr8)8pjYqkqh-7}knK S&t$Dbo~^0&b?wf#SN;d@OkMy0 delta 1220 zcmXAoJ*!?t5XU+9UV{)3kswCBc}_qg8|0zr_gl{TW- zNJLq|msTW&1Ya6EYm21ULU0~DaLy@q=D#z)`Om!v+r0g3QxtIftaRTT3El&sPyN)>=?J@@c0Cp&isXgZ0wBeW@MNDLS{tqrqv6MWrz;`?of;W%-qDG!YD zb1a^V$Er`hz3pZ8f@n3G0-V%ZC+r<9K8cBN{eJcSwkytF86%=)EYZ3`GyzG7 zbq3t^=hJE1{};|VY7PwCguYZ2BOXL?H?i{YDG1QrI3lcpQ*5tBoK6~YC?}fuM zqI$fqGPImaj*h*+C}Y@q_xWeecA!jX**ymWDP&VyTt}Ia`joNmzWCd=d(;VHk`p^N z58}}nh1pPM@n-A08;@-}m6?k~z=%5`{ye;fPlI9!?Y{nc>BnuaksscHS%}f8MM9}8 zRfn(ul=X9d<#f*qsR9o6C$25l`&TD#>G*5JPW zAw9j$lbmuoR&6LS)l=zX8VndbxPEYP=lt5mTl(hioWZl^s;F37Q<_Z0)p}Nx2J2t_ zbvuOVKp?wOn&?V)>|x|Obs|q+_h0_vuw&|6UD%2tb{FmJqvsrN%F3|5ef5uRA2yt= zMXQq|qg&TjFhL2oQsK0|ymj|vk44s*Q-ng8u~!kY)U+Ol2$1sn@byb42iLG2K+eZq z&1DGo@KVVV)s`vi2YcsqAFCU!Q#Y zu|wLLvo4uj2G#to2*ZJ@SThmX?ddmiud-^JHX^b_HoRA9pkR$4IDCKm%zvk2L|xkF z=xr$FSOr|F#w$-?i0>b-ym;xT76TP$_7Os~-ZZ7GO428r$A0kq_4A?33@zp0bQ&Bf z4(4R`(I=(kedDE%PY0|50V%8mP^+LFWhu9jBFdO;-+TF$Cyrv)v=(e78hK%*oU?*v zSy@8=`P%oVgA-vw9y+CyC;Dy$92P1Ub!hvy>#v@US}Q@fT0I3Ah7ZDC8>V4SQpW|} zx_WW*#wQ2P*$n~Al4}GSS7n{Rj4M6n{rinKFCD?F5Ll82q$0)9q8DecBdBZLH($H+ z`qkVg)YF}%)mh8hfGzbB(TyUU(*t4_a3I*B??{Ke(&!itsjV^ z*Fi$WOQm(pzs(HT*VuR7|0CH$RrKsKz(@o;iCQnySL4b!_SgN&b4SM1GFXuo2Ze}- z)sVu=TXO^2_dk3mvs$`9iSFqgB~fd2QH&B9SV%UzeRS{fbXz2c=1QFFxH@;9wSsGt zO1=H??5B_7mE;;XjZ!Eqp>%%qppFprp6vfT(%C#6S+qqRs*?+6f|jk+Qf*)R?5*5t z$wrWlOY$bJD=J70+_yhp=K~}tqczfSCVu4i$kD1Rfn}u2e&GwtwP5v3@laTe tN&;_|@1rGsRMWLT`0}6gK|^s!k%4)gC2#bsJ!CEe6fQXTt*`!l>VL_GB`E*^ delta 1033 zcmWlYy~>_N5QceQjRZv0Sol}uAu)xqaCc{Rekwa_D-l6qc4oI1L_wpVU?o^2R;E)3 z*ooUof*>A%oW+&krsiJ$L~$96T5u*02G^L$Ek?ioSn+^6keC z^~mQ~0T{3l+9(a?>gwWAm+k)a8>eHkaFhZBbKtOMQ=)>G;7P%#``c&!I~{8lfwIt? z5Y^2PQDjD~m7P@gk5^v2bQn?-bj7ZQQ$&Ho%vj7#Y_|RI`RnJSM3E?-QAR`4qSPAq zDU}>sDYS3A^zrG?&V;LXp@vw+#37^gQ6@GT&G!A5UwPuFs|s4Lkbj{Cn@@t49kYaa zwV$tje>!?q9ZgpeZCDl)q{6Is>aDAH zZr=Fh2yK1vvL0cWWHM6GSb=iE3uOO(;kO5@4o-X`N-x*^mJ;{#H2S`l#v*wl^VpdzqTvS9Yw7Y>O}{+RZYIE zO~oyvj}&1)`0$<6F+zlE(lo~0fk)vH)JT%)@CCbnbpP@63%Cx&9HbOB?IT)QYrtxS zs{HWmr`dhVJ{;@HhLBR2M8U13g|nsGp56bMtQi~V7`3Dl(}r`*0gSV*HKFZmpS_iL zhDKUPACz#HlC&gIVUY}q>AY`$zRpKqpbE;CY!DF4R>9h}CsI>e`-Ly`bhK85s;!uk u+8fwPA$gVyhUC`w2Veek&O6JyYaOvqN9T+Wgf+=(DwjvTZ+-ReQ~v`#|0gs6 diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle index 4263632bfb9475a99a4f04b08a22e279119ffab3..ca393abe2afd9c4a687ee5a0f112cf0936d1fb79 100644 GIT binary patch literal 37974 zcmd6Qd5|2}c^`oVuow2k&2z|=#HFO!wIte9WXmQ9kOaK|2w?${3JDE+XL`50ccy#L z2Nr9IkrbCnZq&Bn;>hu(Sc&Y&2X#3vJ7TOj4(-IMav0ExEya$?F6ED;qADdyNhv4J z_4~f>^))@Coo+5r2C90e-|@Zgeb@Wm_g=sE;k_SQ>fFNr!db6vnD*5L-M(VFj@{C2 zzY|VB6qwD%!>ObfJNJF0^K5569ManD&e?FR;naOs*BhqW2_INAoR+>Ac)Gh-cN+Sl zW1Eic8JepvqMWz5Lf{tHbl=yn`il#yuGb0od2XFSylFcSo)frr9X0BXy=ty?!U=_V z^uF(eWW<<`I#+bpH5If(c!l1Sb7~a8+)8Oy-b}3mRjH&4oEX|#;j{b<+QH9 zwW9kKt+~(%N9#^|(>2!&zhm4P4g*WV1}MIL;T;R_=!C zazAIUYFA9qvJ)PNN~n|tBzMBu1Z2%=`%FHNRqCQ1ah3&SFAY_By<&*&IO zoVfao4G^`VcaSjs>c?LFXZZiyuYU2>FTDElt1l6`o0Kzo{S&YK=xZN&?IYJ; zzWz_Ie*x)kK2b=1SANG`f8|reD&M7)gV#TK{pHs_eEoB;{r&4- z1dI?cK8M_39l3fqqR1^64uRx~@NZLp-wv|t;Z!|vUFbqB;*N255Kc1&Q=7R(^(~vHlE+~f81^8uHHCl0x-1Z zd?(zq;CiI~uI~A6Q1=65Gh@AQ!VX%{yV|Pbwlv}NuqUw4%Vqghc_ZmGilHJH{)oA@ zz)5?3ZKa8nkqh*flg7wUR9B!$>!^R)^nBA^qnsezcSUOkARo+)ahq{_I0W0&Is1Ia zxWl;9xJ*Cpg5K<*?s9U)xLcC%Q9r`HzSGb)JK-%I&Im{Oy|&u&J7=ZnVdIGWIBFb| zGDijNTBQ5TLtBGE2oHb2bsYcMg%3n|&wc>X{;UE%*3vv^UJX_aB4pYP{i@^`?>ANi z_LO3TZll-eCu~6AuU6k#^b&6hCgWZyu)m?NYC+SlxeiDv-3X6r zjYe%Xu$iY2NfKE@_dvWCq}DVQXgQ4l=8HNLXWZetW((YOeB1H$nyaru7VNrSgNDJ* zZmC8+l1DLSUX(c5-dv+`!h_^*GA=%t0t*3?)+DnQ(-1PCuvWdCNy;QfL^?WWyun~N zQ;~VAt-yN22%nYoiFI9X*ETfQ1_fheX1t)?hP--7&L!2@Vf35XLF&_T>>A3E9w46^ z8iTOc^tK607}1lHVA4}bvrH%&vY-^T)ux8F6>%rqprPh&g7q!Ugz4Pf-c)Vxw=p(? zK%&WK&k}*AB`r1nJlo-n{VmOIW4Q5ZfeVoq(vR4t-!|*(o1HB#G^yTe=9=w5y)H@J zeWI5UZw@Fmg=*qgt)aIuXe{j#66?mQz@CB%8#NSIf!u1%W>kBI)Ah@sQ>5q$oAIay zv?S{OnBVlsKANkWQPMai)geHx??oLMBfp@A?!mK&pm`vhe>s5U#l)OVrPW~Tct{+& zd=kST>3n!Fov#Kxwh`fIq?T-PcUu~)>IG0yG0*o31 z5rm??V9b(CooE_ua zk~qS(0<%FWOmD%vPEJ(kzI4(WO6gIO!p_y>Ay0}57Hx-AMvaA>VLWNPPg)e3MczxM zP$;DEow}0WApt6wQ!+d`rGs%%52QeUelFcUw7mumg=R$(evtdw(o}kF!)%a(+#%W|;6Z>#oV3QA}0IA@9gFR{|dnVMOm4uCw8q zH0+Uq#xOGmkJ0=Q6xN#3pfPV8QZ|vtb{4wG@!$-jYAh&YCM8(R!aEaRw8Bnh1@YkrZ6;$EhWzj2@OWvb&=2lc|7mNoz1mu=N5@F;E5{8e1aIbN50;Rh9;% zQ;DCT`k+wd9;Xc{Q(c->HKFY;8N*Gs+KQ|+No$D011)&f3M-kUkg2EfHKOG0+*NWz z*$br_y6r?xjj=8Skyd&1gMUO0vm1?K4EFvSDKQcihcTA>h6Ve=)3xv^!}r_XyA~Jg z4cqb->P;tTz=v@41<-F%L&3$Sx#BIVT8nRAcwpgyMV|2a3zqjoupJn2-+e)UvU>c? za`nua)3s9<&YX5!{8AL?{LQ{zE9vh26US&3@%neSs}t+n84oIZZ`(Tm3)Mb*=%A8eWnj=Pqswx8H@ z722^zLqj;yCXOOS9I`3NjSMb3AjXe|lSxcufy!p%1&4BBf~Oz+0H)Xb;J5@B4*ZVB zf<7j|c`C1*N=ZRf2GYs4O*w|QNd}n_`PIVY0aN*A(6W_FsZgaNS78|=PxF|R_nmfA zzoIv5YMMv$7HRXK6zI08jG=;=8bf#6j!@=+RO2kN(eN@cE_1C($wJ(NCl)Z?qSum~ zvh9(dz}e%HExwrbGbCyxYpNX?Efb~Syy;YxXzbw(g#p-Bhb+w{hFa`FdH$%nRE&G1sIK%c5z#&9N%o|Fv5!7sf-QBT_<2m zd%LS>b{!)*EHP&sOWW0Y3mrEBq~60GyHPgNWczwkfkOp5C;2rIJdqJ{1c-z0|hbdRfne3?6pKn zl*SIe^qtn%Q763Xaa*sTzj`I*gH@c>N*tS;IAeNsy$RnMRP|zQnvL4YYtM9)l@rM* zqo?%8m?uODN1{o#NYtSSfQ|m?zGgNd@`2I=s_#d1t0R^OcVzg@@2>uxd*1SlGIc$H?9j*qGCbIXu95s@Kd$4Ut9m zU(sA-cxUSn8w`lO@+Rvvr$pQUuxeM{5xL$+>pVrTVIt1i7^+nP<;owax7*@RWk4dQ3!Vd+iX?+MMj`De?-*iWW*Y*!W@{7)tF37D zbqp_vXR7GPA;=BHSZ}s5a@h?PV!^KIJ z!cpS#>CCC51vSN)N*T3NU|mAE+mf>66%yki{WOn;LL~U4*boHx!56crMsuDw1T z%Mua5BAjZ9^liZ=)$W8-rdNyR3%oe-BEoo?>R53>m=$vz)nT}VA(-b=#D=^%kX=Ur z6=N+$!4aDSWw*jZnBr;cH64s-)-V!NXd3Ok5bkdydQC#lW-_cq6T^*-jRomDO*0mu zjf*JhEn*dnYQ%wglEwY*YCQ!5Ggz5ivZ61Ty1&XWNQtRFmCn?kH0{j1-grKogov_b ztX-w09rR$9+%_**$)=7O8rB|oLICG8Jj`kjSwo~3gB2!2M8pRAc_1C96@yG}gRJ5h zL*aG{58*@<0tE{Z7Bh~7`x#^{iWdh^g=UkSLuP|zV;Ft(_*YL2{mEB8ylAb*Z(n`+ zpIB!6_Gka~kkyRe{`|SutXBN?ABO(Wvf{U|jr|wPNZvku$y$rw{^HGF2tq8y&}<9g z5%S)RS~#v&IWPgEr8J2?Lrx%PL!@voc7CjLzBA95k|nsGjSm)Kp(Z*)Jci?Yi;;R) zDKtw9HdPw#sx%dFWuf+a2d#$Sdb-}5zk5CHieAM6oyUz_W0Db)J!`>{*G($#xGS!+ z0rm@OZ|Kzo99X|f+W??3Qf$6gG2SSUgLrSRqEYi1pl|F|Qh;X4-O;z4AUD@Hzsl22 zDRoz`QVK6AaeJ>4L<`C8iSCBJ;vtNbZm1^#n55mr?}?Iv$ZcL@Stq9U#4W{ql5{Fp z>D7nG_z6s?p=tBpgGR^t1=O>C5f2jdZ~{>>%zEMHZ)lrd=O>{NElhO~(bZJZkE3X~ zN9haK*~j)K(P*|zWU;--Wbfq?v{WryQAS;DLqe%=O2U!4flVfulEBzluQ2!v7~4r5 zCy%RS3ps;Ae94UYW!0){> z%;VPx7AKMynlo^m;}RCOhkXrm39PzUzt5oAR#|_5-_j#S$k?>LgcNk*kMJivbdq8) zP8%vzNj%qV7y6X3{ultPzr+K*u)d7Hz~1^3`~~o@$e({NfBszle2xDE)?eUngdmSA-Bbz(&0 z?=~1sEh|U5a+2q2S+?eK1+O=~PQ1uIZiCm%3CFhKLXpP$PUQlk(HU~}$QRu1e|@+G z;aJnb+?iJL5;MwHObiWK0v_Eh(l~a8ERu8{94wL{c7iP89Xmi4QHz})i*dsWdfMj_ zD?7dtU{euXL#zYEwz45;Y8RtvEG@@juL6S6 z&lm30pzJs>he)Yibyioa?HH>ZUw)==`#HXRtSpEd&Xk{2K;5=#&hiWT3HYSvtz#OXmR)ic42CEqsmKlkI^`}N?T1cZ0T1> zxHG)xMvWs!=HO_=*j0HHXY6uJ+EW;Z9Ful2h`s~$jt>=kdrW&(n$UH=aGwU1`h9Z& zPq}ksd}HAzb7Z`yEQmzb?&x%#QXTmc0a!UK@!cFJs`)g%EBUu_uYlNIH<%=%wgLEVNzvGa>RXC;g)m6eV{CeMAGjU{_OPNFm{?g4aeeF zb2Dpw(iy@5t#Bs><-qtH@3W{nghh`2?=ReLj{Z-T1<_6a67F!~QHzR|0Fhv^jf+s) z-W|*M2p80M2-q0YW%|BLIT4bdDop7?h2++(&k*f>VjOca^Am;9$jQt{8N^LAi1W)B zaj@Z@dQ`z)rpn_uW5L8e$cj3Kpt1}%j`nV4jOF0fghRhkm^6cO=)O5G=|L4esN#D- z?m-oMV(Ifw>|r>2e&ErT{{E`fuaI!?acg&5)zAW~Sc`&$A;g2fAE zJ!lnR;k_|8FTm1!6HVHhS>K7{E4S_28GoAkxLthZXyLYUl6{Cl+{EExe3_2wsXW48 zr>AKcW^%-QysK~rdz+6OF~j|HvQv?F80MX~2MRZwqwM`sl<=>3IzIVgv2n~QdxGLNdXgoWiq!BSB>S;Kp(FdjLE zJt@@gXIFMU)OheBrjeRo*~A%J6&w^%aZPVM>m~IrBBcLN;VutK`a@Vf(yQ1+Oqf-H zS(P!%5&eUOF~|{pvn+^2ORfmt`e{kob<=w;AZEc1tsB^M_Dw~rD2c3K|20nS>Iz5> zQb9QP$-G{+c}Z=Hw@w?x)w($ z8i06oCElTW&S{$Ut_V@zQbP1^7w-6=L_f-r0N_`RK1Hjx1;3m^eycDNIqHA2EQmxE zz99^}8HQEK;oyd~yMi$9=%5ae5iNtZe=Ve?Fv*XcLGy>Q!&uJ}LTIKqOeqmUS!$ z3+#^K&&K*qvUh%WRQ5ZwbacZS0zxA1e_U8ZddoZYZM&e|zb)KWPNM&aLEJ>sKXV?R zl~yj0;eVpn{G~^}5cXSzJ3Am@!&!ufG;HZ6qp$q1y!H5I;pTI+{zh34iN^eAVb@Mu z{Uaynd@MHkkDC6eV5Rby=g|SqX(12$mJ$XX!bz(;@rh7Q@1mD;T61 zKSkptcsE-Zi5#1z%7VDzY&yCeth7u_{cYh-<$VaMd3tj-%cuUugi(L1a0ds~q+?kB zBn%N@6%KLOk1@<~>iY^~k>k`m%7VDzoI3Qwj%imY7`voz(vcyR3v@1FMxFYU5guJC z+_gb@ba>7JZdD4$t_yBeJ~J`Lpub%hg&c#PC<~&SK_%Rb#8Z(mt^|k#i!YTm-O5wp z&&h9|r!x4b>DEl_x%_ltX7v_1>g#r%%Zr8E%E{I>2GQ4ZvCg4mIIlr2IqCN;@!&@) zB!^0H|ArBK?xx6b_2vv!9;B5kJY9Q2Z7h3WKX7&dLE&^g~XD;sQ|!j|ofVu8w9habIQa&@CKUWQVMIq+*7fKz9j1`jfl~E3E+x(5DJe(*F`E`m#+W#>%juE5$m9r_KUlbfgOV8=o&*n?K;)HRvv9*X%3di8B2fZQn6uN7k}+a| zI`T6;*5U%KBtsbRiNc*2lmX++0EI=)2z|V8yE*#*Tv-q|oc^P+4azD&DqX1m`-QtO zDD}q@E0Y)g-z(f~j`;t)EQoI6m+*oUM_PARb!8SbZlo_PwL)w9{s+;ZRLb|h(X-Mv9j_6t>q`@?$K2OJ{^l& z(bnjM<*rXnw=XVcWxg;edYhFT*~7c%Ht4WbC%$;K8ev?GFwU9!Hx|Yw$C!J{f=D#% zF5&G?54HDobC8yLZ5*}eN4)IK%6og(yEk7;IC{D;0S4vhe2$~sgQ_2Kwm)MZD~wc* zv5%Am(aqQr);BTWqW2|0Bv{;1wj;`b^MQ{y&w%$h95Q3VzdttNKUTP7y(N!2xSa|A zyM^1z3Dk!e#7!~b^Kx?T2<>X8eJEL9FG&^+{v|<-kEk5Rjc&S&`<9|JhUJLh;b)$~ zk;~6K)5)C7%g6brnS+yi`6$QFl%>{7sA&BuJdU&0SNX}{6oP!>;?auS{L!dvU?np( zKxO;bzgW7@Mf7Sw*$LmkJN9Wu4JcMs$W{s2)Yz1FeE(rtk|n2K{)4h05?k@}3}VNF zQExepo4H$Uti0lmGaS}IH@XFMtczm{8*xNzJHHEcbD@=w#S^L&Gx?vps zsOI}29A=iQe&oE3KP!w_&W3!YEQlM(Vr6WmF4CP=6|LfJ;xgz~m(9uL3a@sJlNWA% z8r@1A*cuizH=_)t!~x&E&5c5e&CNK)PgQU`E18*`bZ>5iQMnUF1=Pi70zzH3Er_G4 zAa~xJ{NJ*Il9-dfE(_vssI0wnM`Z26os~6(6wBHu$y$%qlT^CMnN+$Fa&~(kIqS26 z^1Wq=kx1Fw%YyhDDrL@&NZCeNs`R#K3aLcOdaMYslu5csnN+%&Qr2fxs9Ba6iIkaT zLEJzo6CZs>hD~ySR$Q||_co_J>aa(?u;(8a?$V%c&a5&5;>-w6IcMgRg`3YgGoL66 zqMIp2WK?01%&=uzRsuwV#RtodlrqB(!YORCsbTL3E|HR5F?3A{UFw9L9dw%4(iq=b zur$tFwwLzueFaOqc&o(HFyBRzobFW8wA$K(`zHAc z8!E?e2izy)h10yR26yb?iY>Xfn9!yzHn=~BL0#j$Hpv@px=G$>_f7If+i;RM+K-dG z(Z-zkEeI!QCl1=J(`A)>xz0?q@g|cxCij-{r8__^+*RjG%f?;D!9AdxtrZ8C4_>C( z|Gs5;i)Xzw@5F6mp1A^}w03;OxuVnUW9t1OY%$uv`(C~r5kGMK6|TaO84X@>VH)3h zhdUE_8cTPro!8T4w!+a`>bjnAqDCJnok%Y5p$qPu6^kOS#2AO9;Fcg9#RpC54m;}6 zuzF1w8L3A%*%3RWBI>C`7Ke%GjV?!{lpq|!J)lG#>%T!OEg#KU-@>mfL9Fi}>8$lX z=oyZ3=O1?;Z==VPG%uo?h0lQsExxHON;&T0z@f9&Uvbs{$xoTv|1bRBvi=%R+{W{N z_z!xm?h#7$d9U2Fm+DQtdyLXZPXK`Q1b^s!3H)iwAKGh%H`;cCKNK{^ABy+jGNK^d zZBgInt^bF%p(MjNy$zR+W$3+!FY8McnlLo4hI@^9@+#E{fh}%-i<{r#*0)##wz%yr zZhDJb-U?!7?rv|U+PB`cpU{YNhv?S7q~#=?uKh!LIF11KT5`K{)Qx>OGgZf}msDhA zO~-YNKlG&(^nISLxpkvsy$6Z?K#nhSA>0>%JFt4;dp-p*gJd_#;em5}TVo}I zBzieYw{g_yJ~4Ic2`BLFa>z`s3qjFYx+$WDn<8*AYIJ{v+?2vOU3WYR7q*b3eo0 zr;q~Heta#6+i+_1xf!U%C&N%$6&v6sE$n^X59;m}Uy-#ddI|G;o=|c!-qS)C8KWKE zgO{YzE*IQV*nii}^RSM%x(53=W4&T!QX2JK$9fD>WBoA89o|R)l@#LbNqT!i4!zQXv7J+Bp8%H#?3M%p&2K%B%w_SL_O=WB>0rT+b9D`xEd#Hazbo^ zf^eVN;=^Xb@zfQexDojgoC-uY^<1>g%O~YhM?`4mtzSkvG!#=Ou7!uA-MQ8H5*of5 z4?X*(Ou@U8g2~;E*-IKx=aZQ_m0oo+_d%k{OR5U>{~EN9jx>r;_;e<3Ds{|IRN~h& zC1#`qJu&D>PClV8bXP4g$zT{QW8rpN&2j&8!Y&{QyGBC$3-tIG^!P{gc$prbp~tV&<5%eMd3yXd zJ${-VzetZ4>G8|-_*r^WmPxIu6CvS93R7~dNTDQ0i7mT)(2V3HQrU@Zg$C`E%C5>EQA$;+C}pJ_+c{iL zCBN_cUSHEQ-08*wWuU5e`W@f<-gm#F-}~skPyhCdxA4Dkzt=Xc*5;zox?;Ibt7)|S zPB{C%z-rV_r;=Xm-1D){bDf27NN=}0=fd&2Q}bQJs9SC)eD{*+G>xUeGu)+`Q#Y2J zmgTfOQ+JIel=GHW3Ea}U;rqs>zqF|8dYy3Cb88IZtviA6oWQLas8MrTYu0)voKlEK z@53i0BgS;hxnj7kRX02!9`5rDKVZy(g3Va=MAkExatEQWkGluc@ zis4uE#$qQNt2ym0*IGCIj(Jx&0xSs|pm_h{I~VWogd?ueFm%u8n8(9u-)OcQx^H+| zTlY=EcwCFqfWWM=S!)D!gR*_Yl}?SDezT#vV;%~}__g7zJLs?G`MPh_mgse{-2x>i zIeSgNVu6;O@IX{Tr7R-36YftyYEIi{@`0>U7xjpD3e6MDLsCA=*gxS|V{o236|6hOY8?XJwYp=fcFNoX?%9+0Q`PYB?^^d*&v1_kh zd*#}1Al(fpee|@~*1z>jPJ>E%oO1D7Uw1Em>&wI{-=&m;*S>h|)z?3I?Q5@p_S!c9 zBLs}EAvd^;Tq7J+=bq8=A;+!)jgbY)8O3omCNOGfGvon$v9Skgn}; z+Gq!>TDlGMF#$ZqfbCS{Q__Iu1#4^8Cgiu~G#U_6W?DFL-mM$1Q9oq?Ftp|IPPli` z^+@eq!}Hys<_E}ThI-*tD`-OBv^B?V>cZg>Phg>!EAp%IBc#hHhKgYHL)Q8tC++j~ z)do^VFVbI58Ycr$U4;f+M*TCE=Uc6H$_c{ZD|#aU`Cw+u+s!+|A=sqOxfeR-o#tI; zn|{0r`m&e0%gGh{RsE@PF>&Xgtv4!BOK#*ZLR5d&Pmb3<`MaE)I26-jtbgZ zr1Q+fmJUM@9)8w!9RIn+XQRC5o`sY@r+|+)bq^Y+!J0vYtXAFFlpOPtsSE5G#R#K? zUZbDT{lH(VzNhNJf=Q8SRiv%EFrUAO}F+;sew;~Sc5tU(r9HA91D!M<**Mm>^8 zF=AenINjb_C;#9<^0ycl4@`k&fGKN`Ig4os8BkcOUd|JE!uM!Y$o z)D)_TUs~O0!&xlfDkQF(hQOYI3Y!`VtU_+}MkA^{$LYp1pi`vi3Y&?j2DBvV{(~_zJ#z}~k90mf zn9f(uj%`FZ7O5p$+qD?7@e1}PFbpdk<#){RY>5eU2~Hl(ZYudL+e9l{Dujg0=o z500wvXfLIcwF$?$goFs@cg^oo+WsUhlV?8^EYB5J4#F3w)&{ zi@`_hVXvK&r9j{q3s$p6q*%D_(ASxQ&;KQhE*p8xkYM8Z`kHR6UmoZ zEx2cZWe!O;#90$7{|QN+WtfOBYp%r+QA}0Ip{U5URs$b_U_|dZuCw7<F=AtrYQi8=Syeo-8D;!K#V7~&g*$DX%+esA_ z&Y)Fa^NUoJurh7@&3nvy1);Z@ZBh<4%J*k`l7mH@|t^sT~4l85AEsRTaqTRqE;c%Ezi(h1k2`Tx(QO3sIGF4(l&LWD?`AsP$$+x;q`>zWiFZb33!Q4 zoxpDg@Qrb}vX8?Rg`W%oR7k49EWy?bJjFn9KIB`X$aBwPMO9YeFLx@56I34*s*;%s z5SZ%HtdK*4w!35uH`!_{veMwJE(#B{5LGLzWN<>Jp8RV>$vc=A6ozsXN;Qm@69qM< zEd-HP+4~_rqJY_rycmOhmqtpAM8#qFa^JLJUwD`ne#rFww)Z!emTL8u?Jd?CPEbb- z;Tnse-;$1kOATw)TT-=_?q7WO;=7l4pyw~z-UF~5@VGyI(fC01#MzbV*|TS~M=qW{ zxD9X;9TI?p+bcBjBV&n<;JhcD;f9jr&A>E5B*DVj@%Pn@7d!G6b6}l7^iUA2W z=syef`?tdpH9%p{I2(;tXjsg4<`ecuZoTCe@{p5JUO+x(J5JvprNbFI8awUCvfmbG zC93V~E>g*udRnMGxuwgAa?s}@)B(Y}`+ObZqAslTJN0A}{ z*^J~y2A2a6^QXe;WG-Zp%4X*Y4&|l?o_g?E46BC`xCC$qen)3P9~a;}gjYeOq+m7% z(#f_>1%|gv2AL80)x_WdL-AZtmvJ}*l^s-1Z;U8m*?WT)#}XO< zH5ZLj!&~2x6q`2Md6dU4VGA(o|fps{6#hphiECJyRmPg#BRjajR zT7hphk}4^B#c-w0TwEv0NNQD*h7iKh^r}V^OfC(Ce8<5cHX-*cq)VhVnf0I|jz8(e3Tw zv|3b(J;=xfwZ0QAE19F_7)|hoqacdRtbPjdwVMA8N30gs2{5w;^KY>EAWIHX8x5xo zqfI109?W!r;RB|shd62-)$3QFCPuw;HCQz(m;sL#rm$E>bBq{5be8voM-_f?qKU;8 z%=`M(!6V(7mKydWFIwh{D`FLIc?gqhvicV#v&<5#V_g}xenppg4npHVS1t`WDE&}Z zdV342U@gk&ZlBg0dL(;(omw9jIGyG91mQtt>}b9O9F);M7S>c#q)Uq}Qrk{AV|iLM z7T|@47coVbsgBhYOrc`@qB@LlkC@@pYz#$eAiIIdQTS1s;l{ihD7zgV!thPMtQlZL zLxY#4X=k+eiEy%wnQ0PeHi2O!8uV>!Y%EIOX$Y|d_AjBNw}h1~su54RL+HXucdeF! zfzhc999fAMEyG`97^I+7pGs%yPg||bnB9CnoQ7z!)zda<*#Pa&BXtY%ZkO&#kB z9PA^o3=gwPL)I{h3rB>34iT}AejZ5A!HTh!kiZ-=|KWBx6-{1(L731okA#z4L5pU3 zgK!i&L17&e*|y;TA3pI%)rU@duhi|e_|1R)xNXF5SN`x9?e+L=)cOR5PP7On^Tv<@NYN0f(~F&- z={(+9U`$EB?`5-rWm71Dfyo)u@x7%;X{(-o#i(Mf%aaAwAARG(7(LLsOcjR0^{W)} zyHf96gVuA}scKi5WPOoD2yR$}p5v~%&IXt(jV<(QjMwaQMepuaG=fW2pgjWgM|zbM zpqX-S=~WJKuV2j+>)9|D>+a2bFM!f84;=-)H}xu|I`Re`*f3T-%=J`vf~3j`q&s@G zMYv1$oxQRdVa~tGvQA9x2`84dt1RhMuF?~rGHn7AYG}21w?MsPe;OKM|06s|(8DRr zZ(+QO2z^7}@;aY_Ml>--Y#teN z^$nQ>CC58jGqEiMg9(f-?5{KUi}1>%j?*WUKde0AVa5Q;$N=nrOQpIq!(mwf?b!bs z*}NBA4zNEUPl91lL?Y^0E@Jc;QAFN=GbVtI>|MJn7yso8{42HKQMept|DEJNyT^|L> z_w9i1T(02trt8FuB7q(7nmg&V zS_qIxV|}M`5%b6ya`ng;+^W}yTM&*n9E^Ht4K6XGY{kUTkR@R6Zj;7wFl3XYvvaUX zhByeaiFX_T*+eaN2{z+~weNJyC02G~HNbWt1b$e-iEVS2C1Z0uMkO?OzGk0d3*n3k z!x0s$Abc)bAc9fW*Im7B_Ngq$jK#rhzhZ1uyKR1&KlbkuN!WBgR+u5=5@pzoICmJx zU|iPWun%5@r&ihio14nUo+koxTW1Qlr9k{d4B{aMVLymJz5L07eY#JMz1%P3Lca_q z27~Zi@$T8wq3pbr(#4ncxal;ugv!aH^ zb?}1rEM{1d%N1t)r^4MClo_-0v{{OV>UAD&V~?uD*@+MMc~LRoKd z_$2mE>aBW}7ug;qKec3gmsc_Rd z`hKx2h(ujJFD%;aQ7+Bb$j%j-(K$(LQW<9S$QOqEhr(SNlp*`UkOZeHuao7N^1Fqb z&oSlSl?8FbnR0N2mb-`{YJQw{{AKylyNIynPYZW!P}Urp=Y=?6R#oftj9HF5KP-$v zjywOYEQo=*Q`!|wpQ3G2*x8CHP^;ZF^yFUEs*FjFxbH07a*nw7 zl?9PVdR6$d+sgL3T%1$@8`iyqZCR;q6o#v#X}-zf{Cn@1(AXkv&(wM&3V zunWGIdlOCCn%O^$=T{C6?@l~TecWk&Wv*~r zImw=85I50XOsvr1I+cg`yYe&*!%U8tk9QXCU~lu0BW5@`pW0WL58m!8+;EPv)v_QG zJ-Jty)6cG#4x4U!T(*-67b;jBs+`4cX#Vm#!;&{DC>(mSa4!et(Czcl=2YIXS*0Z` zEGG(sr!{JoQhS!5f2sD@-Aniq~1k@^qYmd zJSgc8VfDzUVjnMIRt08N#w%%5U&NdR2efX`qEl-s zdPPZO1^cgY&Q{liT zk0k<&BsLKhE&(FJ;zrrr=|^y!3Pk8h*@m7~^X^O$lW!NM>7ZgVGj9SLh=$tio_B!1 zQ@HJ%Nc=W~xQU^~5t}+ign4r#Hz@cHdm2`S1o$cLAjik)!uaI) zI8hcvHy=w_#l*0RE|&n2U~!`i>+DH}zT?f_kxq1G$ zNl#&v6O8v3ZapU$e~UrfMDu!pJ~y$vif`h90C6p7Jdkx`Jxd6=R||J|P;wuDFWabE zUX}2|C-;O`-k)iO+s_gFsj?sv9r&Q|Y_~1yoy3{CV-RnQ3cinYxA-Wt3LQAo#iJd{ z3b&pw+|@z3btiL+a0R~%Ot40{RteWU-+sCSB9xQ- z5W^k9kInqL<(t7OoHXO7Xq-&mO%z5V$EMM;AZ|FDj;;i&O$$T+mhh+YK}@Q7Mq@3@ zr~bu+QTG?_;Gmjx4C|kSA!b;GLp<%r80I*&R2YjKr`}!`#0}@vp`UQ9R)r>GmyInt z5TtUEP87_jQ=c-zqxTo?+Mql-JZ}THDow{;7Tl_Q+F_1CD}_`4G;FBEm#Bb4|Fu3&LoSg1N zKjh#iE)Y%Oae??~sONDv#iTl&gIBF^M#X~tYv{E73O!z>$JgocoAmfM^!O$oxX}Wq zTC4N2_uzyJU5=tglj{v<6=(kpn^qks-{9Ajf*&W0%9(&T<7XKxly44sOWJlgj-xt~ zJ}Yi~1r6eGCfE|Xisin+?rd4&L#5<~iM{kCS!a1vB=BW`D;7a0JQ7_Oskkm(fBt%~ zz^H_eVz_y_o;|xE?P2Vrv2OoK;Xd`&ZR*=jy8VN~ZRK?P`wXJ5Ztwp3>FkpbN*sn% z!KSmOUOT^%b=CQ75!lJGq5?Z0S;M*c4Z#RI$g04|>9OZ|tZ?f&LJyY(k+{Yo2GMu4 zU3SfMR-IN-K^%3)Y6Y8J9LZ%1NA4@!p}{$V)4=E`KYUtBAHV`5Mb2dOQ7znhjwAP$ z1u-y3O7HbJiv8-iutJKM~-am zp*)Wj#v;e6a}44pTB(T@bco20z&)!DnH(W=P`HDGk{KJG1P>ZOCI@Ex6@$2mzOwQp zt>q`@?$IRxJ{@{n(bwtx zYjb;95Q&BzWe~eQ0=TD}gS6D!!cmKU#LM2Syt`+;yYsb#qo)fKptqyQDN?wQ<0$u_ z>PMXI&)D}BMk>eH2g-uzW^4)Tn;3A>`w}1$EdEbf>!S=fANY9l40w;jAu}fYU9k!O zNMR23mOSd!foXQYLh|S6cfH6C+CjRu6Ejol8yC}WYOTC6~y?6$`RbfX1KU1 zDLP|VjtCxk`e~dH{q)nF%*nib)_$5fIJuXPa{O{xYQ2n#_U|L&IA_1kPX?zDy*hC&OVKbQfDd$GSKzVIz)+t-Mc8Q_u3TP)%X&cM6kX zP}aVEp6&!kKdSkD2#1;Fsvo&%;|~iXma`$(%7VCoELO&5<_Wrus-joCEnMT=?6Ntz zT;bJUioAUZe^Ljwh6T;do{6HdydrFGbEA-Ab2CBnr)qLLE18*`bZ>5iQMn671=Pi7 z0zzH3Etp4DliYc8^1sRoN@7m_yex>nrn2@9mJ<6qW$kb5uB<7fSk}f!)_Sa-q|!ys zq|%L$vpf38S)Ub@#j?amr0i{FLHsq9GILj?tX-BWy)BwTDv`1tD?%(~k}gsvm2Re# z^;s1%$`T`yvemL6ZlIJ&j6NrBlLDYs*Q(Qv%jt+Z?2#|*`MJVf8Z^w=uZ(~MGlEkt znE71c=5xW!OJzZHGo^@(DlC!_whYTkfJm?i%6du}VF%$1w%KUdJAx~sWLFGbQ$m+I zVP^-O=CwS|w-zi<@Rsf6eSBZR@~ym8VtIsbDp(%kYYLV}f^eFkVONZ7Mxl!kBnd%x zDrr`2?ZHive1#2_W4HtElkvh?-dBU$@o<5b+&D~V(-s@tpTnT8@?M+djW*pRZ?yX+ zd82JO$s6s*N#1BxQ?wHY?bhg;NxocXF4}mLNgbD4$@tP8pcdX*<15J~T*tu; zo?FdT2iFERX!Jk4B5(1im&TpAOU$!YVU*TStU6Z=x?4=WzYn+1ZQy+$Uu%dTxc&-P z;mC*vuec74@3O;fhdhj>o75gR(q*>8F)ejnPdKH~M@lD?3w&_p-iWhm(~K*SHY>}w z1mPIIW>VMFQFlhvYn(q?i*BexHdR3lmBLam6}{1oXOt3zL%6t;h+_X&D5LG5*Y*$a zD@zCahe$eS|95(ZW8CNS?)f%4I!(hNx(fILI^X2$*P@gYF3uS`Xa6Zz{U7|4A^o4> z_qP4#c;XVC|H*%_>xZu4QT;T3DndWrB}N#MKA;Ba1O6EDhc-LojrNq`4{fi(ADT+U zADY*}r9(lu$EMCM*#8@iK^aDHN*fL#Pw2Xr@7qh2m@;)w!?nXaLY2DI`ZhPd&24Y9 zDsFSj+uZOrx4X^FZU@XU^J@uE`_9R@hv5+2*O%l8dxz+@J|u<{n7Lk0E?kcA9>!s) z1}>tcBBSdDR)H({t5Rz%FumW6lMPy>TtgOZu<2eJYK+VyH(s@ISN_|9>98w&cBm4 z%mlp)#TL5ihLdNR_Lct7A51|XmRssO_CrYQ2XbPC@43e%5V+W?7rqatAZC!X&obEX zzy-cnv68_Jog1T@H8i>#Ox<9@34AdfGLx%6P;@`t`k>*~2V74Y-9;g{o^VdreGolw zrT~8bnd=p}TIO(CmQuQ~Gktn)_ldcvb}%}p6Ic53eVTku zr__$~GG};(y-ySctVw+NhnsCQ`g9D`BJJd~DmJrATG;#S9@O0@aUUyD^b+RxFQMdg zyg!Am6Gl6{pDszI9V@tTu>TI47hv*m4Gs2W#;U~nqm=0Rj{RPUg#7@^1>Q*Rlim;Tol37dnL8Iz<*TX+b^a<;kIp9IYxa=$rA*#T z>b#(+#1}Iq=A;BY;k~0W|1?wPpp-$7o4&>ojeR*&Y(gE`5drx^Cig&mphvc;&u2;< zj!NYl`}s`43HA9@)Yw-txpUD+?i_bTW&U}l4DJ9_HzJ}Z|16U=%iltG(d6Y!kpo;L zkLABqrO3@*4M*eK64Aylsw{H0R}ml?a`&skE+7f}DoN~%^mu_Dze11C(BpITxJr*- zpvTAQ@k{jhd-Qmj9$%ry&(Y&0dVGN%pTy%T!lQaaHg?;87YX6iDV&ajdu8h+@Sdz+ ng!`lO12xtTTq|qAeTHKcq-ZKG48h_xx(b&rc1Lcoy7>PAgA2F+ diff --git a/docs/gettext/.doctrees/features.doctree b/docs/gettext/.doctrees/features.doctree index 00a9a3bad720e7bf48f094365f4b38a7e43641e3..dd8fab1b39644ed0ce619852a449d497488e40c9 100644 GIT binary patch delta 2193 zcmWkv%j?}o73bdHF9|lqLcuOf% zzTZOA&Uu8HvPv4IN=}ruq}YnaTGpfc|D0|fbFdMaN_OFCeKO;979nqG(0c5`Tf0rl zG;JDNMwv*tTA8fb3Ry3n^ZMM|{(WxaC}gBP$Ko;_pPFhkvpl^dBlYSD#cT8+Blfi7KL;u@S)D(#lo;t=-Af&@lyw1=Yr}ew*zdGHlx0Dp*1Reskq3qz&qaB4ds;%#S z^!m9?o5OU|N1Y}Zy+#3HO6Z<@tKsmkkNo-r|cYcE?nlpls zTZL3%jzp;DSP#8pS+9Nhm-|fuw2`rK8}Ob0HbTxd>ONe6(|Yl1U)-I!A?er=bvn@O zm;r{gf_t4x(Zk(qjK&uZe}3k^_04ClAwg?IO2h$3ptl~ibZ!*9;V*)5)?dHz!_zH; z!`Qe7;t3Fk=Fn4|Q!4}w`K%i^Ke<1f$FaK@^f4iFq>us>U^#_2m-Xhi0(eUU6BWwP zlFXhoNYprl0$Jvw>x19<0s^#PC-PL29>*d@at?3qks7XoufIL}*8Yr?psiE`i5P?z zQbOiNLYv|hjUb;t=s2wc}=0!$7zdNU=^Yn6F~b@TS^-5K=&zEf#>tmS}@=RkfV zYL8l3*S>!b;R1s=hCI4X#_$>kLpmO(#f;Qj^#@l^HgUsA8|u*z$O;k9Ik<%gij#!C zZanwL{gnia_-G{zii~x&DS1F~9O3!H^~d9S_W8^EE&DMh;P?Q*(wG&ebC~=m7&Ipi&eV$;iy0E%3w{Yi1~JEv{R4`zfv*p%7APfE+|qAwdq9G~{SS)=dr}!)0aUJgBbce)h!4=Ez=8 yj9+1T%+ynkRR*NX1G$~o{l9n;5>s5=4CDm}fntDx6mQ8pjx<17w_g1H#s344wRDyM delta 2196 zcmW-j&8wwH5ym<1y)%QEU?89iXUuJ6lre_b-Bn%PwGx6D1zjjASxB@$stHLJe#ga( z9}9_G20>0RM22J`C}L2d{XlVH2)fXJAR7a&f*@u<7cN5Zc>`y0?m6%6u6pYCJat~W zv%Pd@`_iYe?H#Zlkgw(=dri!O*wm$ogix-_Q znb>-afd*?JtQSj&${7b>tmMYeP9k$LzRfKR8uqNvgqn7hqL|v11AxJ z5JN^yy`#j@Ajz1t?!WK;&Bc%`)oGm~PU5M#Lxw)krU}tlUv*zPak*CC@Cv07quSD2 z@v*knr!;iAE?j&503BKxR((j-I2qNUW?qxkkaJ~QFTeMXn=7H`s3>hx;h0C2>09$N zksqWptrxEU9kccrZ0Xz*RALD_`-lzld0(4QShqj$(aoipMrQG|U_PBPx~C3F=E$j~ z(AVjMe?B-LiIuptVG1dz&M~1H=TST~4C|jCychFH+(lFN_>fbh;%DRBaAd&X>Reai z0ylZ|mQuh;!Wv_n#Z*E2FT=2UtVl~NL(8eukrASoB=-jk)guF2mnJJjTJ z8Z z)T<5jTMMS;2i_ik^pQ7Q_Y^gFD4z?nX02drhq>?FgtC77@GnnY>3sqRsksiW2?Lbj z^R$9X(Lr0^{rJNdTu(Yop0{kj7m(ma;QZd~|5p7dZfWAKQ`3E+a zQLPp6i3gC!2rnHEJ=rCIb1BUSGz?)iWK+aFZLIBKhz53-}Y)-;7nFIaf@gf9%C{2W1;2eR*dhu&t zJUFX}ixMJWBn~yT-SejSGsB>fjxSu_Z@zT=(^Ge?Z$5SX;7BHyQR0N-Ia+Eu)h7B% zr2@vj{_>3c?^zcLIQ=F*&~rn71@Jag!+9nj_X6;dE%mj|3|_glJ>;4!V)%wlEG;u3f%tJ zr{CPpxEFX4M}UQ3Q;Q-aD{2Ta_B7XP=U+#ML_kguOmL`HNQBIrAr;=C;=XR)x^*~H zIK0qq1`nRNX{Cr*q+W}~8Q1mi-`O02IL}BcEC$RBiwDBiI$<-7NqLnYTsv{KC(`}O zIwJgO*io?p4-g<2M_xCc`NQUh#9Sx9m@o{yhp`J3 tm?3*JJVLkoq)y=VGEz~eo z6Q%*ZBJA($z((=dLF?t`7(0M?G;N?LMFyoM_!g%&*sz7kf}L}Al-u9iJ--`%!he%> zdQ^li{k~sdjnvnxw{L-T4UhuYDndp8*uF6;!5|PDA+XM$Z>KJ_XaIJgB%~j{Gs~6- zf^?5BEX})r{J@DTV@}L}P@k2_2BgIjoW5g6Q9}4V@{_A@jfW2sb@SO+VyWoEe9e?8 zhEnr-=BJOGII&o;M8O0q28eih#!A89kQybeyMO-Z!J$I?9?41f@S14PLd3=&ek z@*Q@E-RH}+1!DlNkrE}M4vM8w7mrkln)>VhVST&*nV#-I6x@no0qWs4!dpNyN;Sra z<#F{q&8jMhfTm&820BBsE~A?meepU+mrY8>=ltK zqyiws#?@1?z>p|C=Vr^_`Q>`PySkp{k{we``A8$CUdejzBn@&VDZcz}zE|@x(ySQF(y6g%F^Xm_kt?&? J@^N#2_76jHVjTbg delta 351 zcmWNMJ#H335Ja`s2LcfwEJ$H}gP!T0{*g~Xj)b~*zO%`emrZ!A?Zg8x$H|V*lTlD2Wd$V0xfM9dFFpNZJ=XU#Whm&B!I(P z*UEFSb_URlI*NcKTEFnTL>b@?3VBv%quwS>ERNu($(7dQ`U)}AsBDRP7v+q}5Z%cd M6tQ#A^||f$KV`!r$^ZZW diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree index 2c4cbb2200ff9db1c8f080a59c9b47915227bb1e..3ebc0f677bdb8eda3e3c02de062674dca13885b2 100644 GIT binary patch delta 844 zcmWlXKdYWa5XE`#^79Jve+ir=zwa%V}aXpB6$@r*i=y zl%J1Zo!>bAak#hDX4tA?$~$6HHSUv?q674pW5089<#Y=o^DuKKMW}PK8^zS>Q9+mP z56*5Mwl07z1(T+twJvQ%*u>>B0wnhT&L5p^qfZw}jgN-Cbam{pdiAOc4S9e5?!{rl zHAGB1*CHtCsWEpkYe8Jp=KkY*-=1u(1kHSdfhQVIZCDIzz7=eZc>n$Ve-4`~wWXq_ zL$MU&5>3m{TLwTqe)z@f z4G}vJ8wI>zgiB}`5_Om}YC^pB<@e`XspM;*LWV)>a~2g|khQ2ebU)s|`S-?^0i8$f zwvddn`4CP#18^~w$3NZ5Letckxd0dgi%!i>8V{<2wNY*Rlltbcg;MFAT3!|eHd(!8 zU;(ZQ9Jar}zf#5OVtLX^223Cc5}b3R$(-Hy-^TST+kj{wHRffd+CvvmvK#}*)oJYi he*Np&)@u%6W=&BP2~gFW_0^M+<X;+MYbz-m(!ILheeyQ)o1XQlx=-=q&Qh z>BH;0r{A_OcZd}M3)lwm=wb@)Scs4vX657ai(8j_rwJ8EjF@;y8`ZQAL|&~0)^a?& zda&)KcyC1qQ#59e!7?h_nq|zT#K*takFR!`PR*%zg2v8jQLDp3bmtj@$Ima`Y`ct> zS6ZnR7w7G4pd}EbG8JuneD=~u7yC5Dtka7qGp;^Hr?zA)1FTl-@ypA9ZMy-}7!%4U z!d5~x{~IM~jOo?z`2CeHE_Ww!4-r5tnX2|-4Pkl1v7nUhUaL_hHcMo6 zF2c1sM`@}@d;PzQU8c&a3w)HxO~x>jpwdz5EEINn@W!`yYsZ2aGLdpJ)MAaYK~WUf z<;Ufncdqw9Dt<1Iv*aF+?^HWfcAZn0o15j9HA$e$$TM{M>is`=t)e&h~G|))FbHbn6o45AaIs!zHwG7W;wWanZ44G`e iJf7eC@oJCUZ%NO?GgyUto76M|f#LLp$J6_N-2NXb((J4N diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree index ed5e9f6823060e187eed499b5fc3ce0d80be7df1..c5da8c140cb6039701bc624f43c902782419237d 100644 GIT binary patch delta 422 zcmWMiJ8qOQ5Z0nyv=S9fO7d5Tf=Hh6j6EY!QRWDA_B^C;k{}9-w1_K!v5_E6@ zTzuX4etvj<`1S2{gtV&ATbOnt1f_B^_V~Fz<1yqHAWM5xi{k!bE62VYPw@J!AMsOA-Q`n2r*7w(+&j)vRCyv4%)W)2^ z+UMM9F(C}r+nbNq!?ARkP#Lok6`Hl^re?I1B7y7i&Hd@%@coo14cbuDkVG1hqxWb~ z*56yX9yBD!~z@(HT1>ITEJ;pek2i;H1FEkJFcD1$?k*A~y+S5oxVY({yH? zIospM^Y0>48DY}0j>wtrC_oJicm)JJ&daY`vSC_@WS=o(S#~fK9f9Osj`z>sT}o?n zm{$g_3nNTcpEQDblJ+WeJiPdODQgQ1X0HtmjYJG}L7Off+<}g7FF&2jaO0?;HUIl} zP}-8z6;Xww;qm(B!?hr=6Yc6no3a^6s}7XeU;{~Q-QTIiI|PS=ozIn@J_hjKlkiWV#02!G%QN3MP0S6tb}>y zVx{jpC!ZXWoUO>jBseI?h5|Kr9F1d%f$kSCe0`jjmNvb$#g(bAsk6Fvkul86C~g1t z*tJ8#1;ZMN_DLkAikDT48r9L4OWkihart~|CNA;T;yZaA!i7iNy|Xzx?@yol>yRMo zgb=Y+N17I^1|T*mFxx_y`}3!-9@3&EQYDww3n8*m;faz%)1w3f!~3{EM|989D5}JxSqxHaKgpk+Pd!|baB1Wbs+KOwv2zJ~<{|>v_g?+w zaE0@Tal-6ORA+Ehi;LIhb>W=8zk2Q4qhwPJ4P9b4vY91k=+&AMNJvulyI1cXl4E96 zU!@>Z8AFM%1cWW50hO{Zz5e@A8l#3j4rO2oCPF0QX3NaLh;8o2-@J8_maiGObfD76 z%8;p9O|s0eM;%Xpc>BLpLPea$068YB@iT|deFTqQ)!_8u&6oB+?|c(XXABR)gM>z0 zMIuORE-SeT#=XD0_VaPV$d+ecEssgLz9sGmBEpbwH9^?YCa58?kGrLE87N8~>i9u}YA{o!pto16FbFCf3#{ z8A?of|MZQU*U~~9mFALFqyGYmWocxf41f@M?T0rnM?xfwY1~HX(OC;}twPWXdN$~i z{ioeKP8xsqnSIo#MH9rjp=K}8oCo6R1OGcIXqD;fj3E*TYMHZXcop%3h~$qSeSe(d dsNvPQO`eUSXN~iLL$Msed!~JqPdW{HPJCa zfCPiFr1j;?XID1hm^mgYWv5aDdJQ&4Qb*%H<|?mTyBZF$Vyz`58id$;9(n3s)0P+l z*N5r+AaG^qa~fJRvgT4Ui_PiPMlS^G$@1CpmRo`0gBt{?;MTE2N15z8s`*&=U;Slw z64slR;N)Spw;o?Y(y#)cOi$~p*S+v`59&I4%T|GH9C!Vfx zNjN1Ow>rxC4{!gs3HeZtJcY5;T7+y-M#(q(bf!_WTUDj)669b**VJY6trzn zuzYa-#+}nGDpT6N@s1@j<|;fwZSm2vjh5Esog2GNVvAzKNJF\n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot index 57cfdb8e..e26205eb 100644 --- a/docs/gettext/develop.pot +++ b/docs/gettext/develop.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.3.2\n" +"Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"POT-Creation-Date: 2021-08-20 13:23-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/features.pot b/docs/gettext/features.pot index 32470e11..61d5a8b2 100644 --- a/docs/gettext/features.pot +++ b/docs/gettext/features.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.3.2\n" +"Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"POT-Creation-Date: 2021-08-20 13:23-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/help.pot b/docs/gettext/help.pot index 6081589d..bf561a1e 100644 --- a/docs/gettext/help.pot +++ b/docs/gettext/help.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.3.2\n" +"Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"POT-Creation-Date: 2021-08-20 13:23-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/index.pot b/docs/gettext/index.pot index 0d30e83d..2564494e 100644 --- a/docs/gettext/index.pot +++ b/docs/gettext/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.3.2\n" +"Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"POT-Creation-Date: 2021-08-20 13:23-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/install.pot b/docs/gettext/install.pot index 2a4bd757..b4798622 100644 --- a/docs/gettext/install.pot +++ b/docs/gettext/install.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.3.2\n" +"Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"POT-Creation-Date: 2021-08-20 13:23-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/security.pot b/docs/gettext/security.pot index 60c6d4b6..b48c38d0 100644 --- a/docs/gettext/security.pot +++ b/docs/gettext/security.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.3.2\n" +"Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"POT-Creation-Date: 2021-08-20 13:23-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/sphinx.pot b/docs/gettext/sphinx.pot index c4770634..74db04e2 100644 --- a/docs/gettext/sphinx.pot +++ b/docs/gettext/sphinx.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.3.2\n" +"Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"POT-Creation-Date: 2021-08-20 13:23-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/tor.pot b/docs/gettext/tor.pot index 55131838..917cf372 100644 --- a/docs/gettext/tor.pot +++ b/docs/gettext/tor.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.3.2\n" +"Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"POT-Creation-Date: 2021-08-20 13:23-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/source/conf.py b/docs/source/conf.py index 10de0948..df11ed68 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -16,7 +16,7 @@ languages = [ ("Українська", "uk"), # Ukranian ] -versions = ["2.3", "2.3.1", "2.3.2"] +versions = ["2.3", "2.3.1", "2.3.2", "2.3.3"] html_theme = "sphinx_rtd_theme" html_logo = "_static/logo.png" From 4b4fecc802f402c6d85f3620cb0f5101854959ac Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 13:30:42 -0700 Subject: [PATCH 34/55] Update changelog, and update appdata XML --- CHANGELOG.md | 6 ++++++ desktop/src/org.onionshare.OnionShare.appdata.xml | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25bdbe31..0db797bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # OnionShare Changelog +## 2.3.3 + +* New feature: Setting for light or dark theme +* Updated Tor to 0.4.6.7 for Linux, 0.4.5.10 for Windows and macOS +* Various bug fixes + ## 2.3.2 * New feature: Custom titles can be set for OnionShare's various modes diff --git a/desktop/src/org.onionshare.OnionShare.appdata.xml b/desktop/src/org.onionshare.OnionShare.appdata.xml index 5ae702ff..9e401472 100644 --- a/desktop/src/org.onionshare.OnionShare.appdata.xml +++ b/desktop/src/org.onionshare.OnionShare.appdata.xml @@ -13,7 +13,7 @@ org.onionshare.OnionShare.desktop - https://docs.onionshare.org/2.3.2/en/_images/tabs.png + https://docs.onionshare.org/2.3.3/en/_images/tabs.png Types of services that OnionShare supports @@ -24,6 +24,6 @@ micah@micahflee.com - + From 6049509db6b3a8fd90cdf07d2d63b0d58c5d62ca Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 13:34:55 -0700 Subject: [PATCH 35/55] Change github URLs from micahflee/onionshare to onionshare/onionshare --- build-source.sh | 2 +- cli/onionshare_cli/onion.py | 2 +- desktop/README.md | 2 +- desktop/src/onionshare/tab/mode/__init__.py | 2 +- desktop/src/org.onionshare.OnionShare.appdata.xml | 2 +- docs/source/develop.rst | 6 +++--- docs/source/help.rst | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build-source.sh b/build-source.sh index b7bd700a..add57583 100755 --- a/build-source.sh +++ b/build-source.sh @@ -36,7 +36,7 @@ fi mkdir -p build/source mkdir -p dist cd build/source -git clone https://github.com/micahflee/onionshare.git +git clone https://github.com/onionshare/onionshare.git cd onionshare # Verify tag diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index 38062d43..f9c7177e 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -651,7 +651,7 @@ class Onion(object): key_content = "RSA1024" # v3 onions don't yet support basic auth. Our ticket: - # https://github.com/micahflee/onionshare/issues/697 + # https://github.com/onionshare/onionshare/issues/697 if ( key_type == "NEW" and key_content == "ED25519-V3" diff --git a/desktop/README.md b/desktop/README.md index eb91e315..4a59fe03 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -5,7 +5,7 @@ Start by getting the source code and changing to the `desktop` folder: ```sh -git clone https://github.com/micahflee/onionshare.git +git clone https://github.com/onionshare/onionshare.git cd onionshare/desktop ``` diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index 683c2e73..aeecaf66 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -363,7 +363,7 @@ class Mode(QtWidgets.QWidget): self.startup_thread.quit() # Canceling only works in Windows - # https://github.com/micahflee/onionshare/issues/1371 + # https://github.com/onionshare/onionshare/issues/1371 if self.common.platform == "Windows": if self.onion_thread: self.common.log("Mode", "cancel_server: quitting onion thread") diff --git a/desktop/src/org.onionshare.OnionShare.appdata.xml b/desktop/src/org.onionshare.OnionShare.appdata.xml index 9e401472..a53bc930 100644 --- a/desktop/src/org.onionshare.OnionShare.appdata.xml +++ b/desktop/src/org.onionshare.OnionShare.appdata.xml @@ -17,7 +17,7 @@ Types of services that OnionShare supports - https://github.com/micahflee/onionshare/issues/ + https://github.com/onionshare/onionshare/issues/ https://onionshare.org/ https://onionshare.org/ Micah Lee diff --git a/docs/source/develop.rst b/docs/source/develop.rst index 6ac1da61..6e429e6a 100644 --- a/docs/source/develop.rst +++ b/docs/source/develop.rst @@ -14,10 +14,10 @@ OnionShare also has a `mailing list `_ on GitHub to see if there are any you'd like to tackle. +You should also review all of the `open issues `_ on GitHub to see if there are any you'd like to tackle. When you're ready to contribute code, open a pull request in the GitHub repository and one of the project maintainers will review it and possibly ask questions, request changes, reject it, or merge it into the project. @@ -27,7 +27,7 @@ Starting Development -------------------- OnionShare is developed in Python. -To get started, clone the Git repository at https://github.com/micahflee/onionshare/ and then consult the ``cli/README.md`` file to learn how to set up your development environment for the command-line version, and the ``desktop/README.md`` file to learn how to set up your development environment for the graphical version. +To get started, clone the Git repository at https://github.com/onionshare/onionshare/ and then consult the ``cli/README.md`` file to learn how to set up your development environment for the command-line version, and the ``desktop/README.md`` file to learn how to set up your development environment for the graphical version. Those files contain the necessary technical instructions and commands install dependencies for your platform, and to run OnionShare from the source tree. diff --git a/docs/source/help.rst b/docs/source/help.rst index 8c04350a..ad7b76cd 100644 --- a/docs/source/help.rst +++ b/docs/source/help.rst @@ -9,12 +9,12 @@ You will find instructions on how to use OnionShare. Look through all of the sec Check the GitHub Issues ----------------------- -If it isn't on the website, please check the `GitHub issues `_. It's possible someone else has encountered the same problem and either raised it with the developers, or maybe even posted a solution. +If it isn't on the website, please check the `GitHub issues `_. It's possible someone else has encountered the same problem and either raised it with the developers, or maybe even posted a solution. Submit an Issue Yourself ------------------------ -If you are unable to find a solution, or wish to ask a question or suggest a new feature, please `submit an issue `_. This requires `creating a GitHub account `_. +If you are unable to find a solution, or wish to ask a question or suggest a new feature, please `submit an issue `_. This requires `creating a GitHub account `_. Join our Keybase Team --------------------- From 1cc3a1111f5b29e33a086ac1368582c9d3cea9aa Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 13:36:27 -0700 Subject: [PATCH 36/55] Update version in docs --- docs/source/advanced.rst | 2 +- docs/source/develop.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/advanced.rst b/docs/source/advanced.rst index c41a2a0c..5f3e6cd7 100644 --- a/docs/source/advanced.rst +++ b/docs/source/advanced.rst @@ -101,7 +101,7 @@ You can browse the command-line documentation by running ``onionshare --help``:: │ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │ │ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │ │ │ - │ v2.3.2 │ + │ v2.3.3 │ │ │ │ https://onionshare.org/ │ ╰───────────────────────────────────────────╯ diff --git a/docs/source/develop.rst b/docs/source/develop.rst index 6e429e6a..fc6f0c92 100644 --- a/docs/source/develop.rst +++ b/docs/source/develop.rst @@ -58,7 +58,7 @@ This prints a lot of helpful messages to the terminal, such as when certain obje │ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │ │ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │ │ │ - │ v2.3.2.dev1 │ + │ v2.3.3 │ │ │ │ https://onionshare.org/ │ ╰───────────────────────────────────────────╯ @@ -148,7 +148,7 @@ You can do this with the ``--local-only`` flag. For example:: │ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │ │ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │ │ │ - │ v2.3.2.dev1 │ + │ v2.3.3 │ │ │ │ https://onionshare.org/ │ ╰───────────────────────────────────────────╯ From 675c8cbe57f77dcd3e8f7d3aadca5b54a00eeb2f Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 13:37:24 -0700 Subject: [PATCH 37/55] Build docs again --- docs/gettext/.doctrees/advanced.doctree | Bin 30413 -> 30413 bytes docs/gettext/.doctrees/develop.doctree | Bin 37736 -> 37742 bytes docs/gettext/.doctrees/environment.pickle | Bin 37974 -> 38056 bytes docs/gettext/.doctrees/help.doctree | Bin 7679 -> 7687 bytes docs/gettext/.doctrees/install.doctree | Bin 20613 -> 20613 bytes docs/gettext/develop.pot | 8 +- docs/gettext/help.pot | 6 +- docs/source/locale/de/LC_MESSAGES/develop.po | 169 ++++++++++-------- docs/source/locale/de/LC_MESSAGES/help.po | 59 ++++--- docs/source/locale/el/LC_MESSAGES/develop.po | 162 +++++++++-------- docs/source/locale/el/LC_MESSAGES/help.po | 53 ++++-- docs/source/locale/en/LC_MESSAGES/develop.po | 65 +++++-- docs/source/locale/en/LC_MESSAGES/help.po | 31 +++- docs/source/locale/es/LC_MESSAGES/develop.po | 151 +++++++++------- docs/source/locale/es/LC_MESSAGES/help.po | 57 +++--- docs/source/locale/ru/LC_MESSAGES/develop.po | 173 +++++++++++-------- docs/source/locale/ru/LC_MESSAGES/help.po | 57 +++--- docs/source/locale/tr/LC_MESSAGES/develop.po | 150 +++++++++------- docs/source/locale/tr/LC_MESSAGES/help.po | 59 ++++--- docs/source/locale/uk/LC_MESSAGES/develop.po | 157 ++++++++++------- docs/source/locale/uk/LC_MESSAGES/help.po | 58 ++++--- 21 files changed, 848 insertions(+), 567 deletions(-) diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree index 51c0558ef10052d7b1bc8b4e3ff8a374992b278d..57624bf45e9134ac2ef3126bda118d0d237c3087 100644 GIT binary patch delta 1287 zcmaJ>y{lhE5aqu25!Mov9q>FdKCocVehT(y?gJRb7sz&+xNEH_qH#tZ(&9m6;m>{$W5qP zBHc!)L0G$Ck|`q@86d15_wL&du~08qm}Bj1DND&vq#|Yi zMVQvz6Nh`j51~|sNutb6rOqOwQE#R*b6?Ni|MOl@KS@#$L?@5P6|KaY=F~})x~$Wu z-q`}8CC&)5bK+UEDu~%|HQ?N(tdAf1bPLH8qI0H*gB?k+_wGo5WehN0Z#{f;5G;>A zd!`)c;DT65r=ZQ6SY26MpFDPB|EzT?tdJ6Sjx$!x0!b52#)OgAv2V`^7{QL+|HUr4kjx?(DK6fvqF9SL4R*E1D?@^)Jdh0{j zJz}Xd_Xq%!4IGi&MyH)PhFq>opnwuo+ zz#dWHK@!{g{PL~6z#b-V+EnP>qcWYVc_E7+eRn$@N!B3 delta 1287 zcmaKsy{nx?5XO1Wxk=P3DjLL#-rP5!7*XQP?#%8if+nq%T?z@hv$JcFH1_!qB!wQW zvb!@UosVaK&)z*=?jA2+++5aLODTN-hh}7z zYEl)gsft+g(C+r~*HO#rdBivx#Sm)aA>zM+xu-hjkDD{w63ZTO<- zZCQG3pRg$8kZyM9A+qBsrKQ2u|Q$Q#tze%cV4=;tT~}4 zT14wgz)7+u=~NQthOvhE&Be!DE(45$EaIZO`r3!q=4mG|x*+q9mw)hDHTw(>w4PZsU__0U3y~o{c8_>aQV^QrOOBZ zeV&=u-?;hU{PXq0|I2uB-~EiabPaAdqYhHCFYcaHjKJm?fBoif%gQ+@A-H{=1Rm}e zr<@7Ry&7|}`T5m5n-#jN=K`U+5gA;c3cdPsl6ub?b$;~r>CM_hsgOqrPx*C*YTnX2yIcUhp(B_`T9w{{6i3WOjmn_DD7c<2~Gr%pTo*TtrkBY0;iInCOYlnGVVu6=v|^OJolTv*%eV#q+jkpZrxC@>Zs(Kq+d zk?t@kZ){L0T4$khNsuGjVoU%?zNn2i(%P}5vm0kN4z5j~tHX<1pBQdznH^q!X2&qI z^~x}_uzho_7v?v=4{kecD8!@?AYigkl);p|^90Hyi>dM*Z>}EfCMJf@w|_ajI=grL zM7uQmbJsmNtnb*|4p(=a><-_q`Rv@@Nz*@mYu_%;J=XOIrerCpEJkpmi?hyIlMHCB zT{i9J&i$jFk}*yr=Aa#TWCFGUZE{#yEAZ{Wt~WcQjrA5Z7?Dz*)fBad%oehs=V0#y zzcvPcWY4i-&-|t)?dkdJUAJ@#-hGER*6umJu{L+^_EDpScP4wpnmL!EeFktjrXVfJ z$~r+8Lor|N`$T9Vf`G9(Km=AQ1*KV<$;bjFhW6e5C2^Mau4d(ggxu03Ztxz2ApjIW z9Q69)aOl8WJ!J=+R1u0oU6!7d;}Qxd(x|arKX7!qw*?difrPHW*knw)q_Jx3u_zu6 zJ=%{RnHw&hSZp6XwJ<%?_ovLVUADuG<=Nqjx^wvJ=&s>P-PU%moZoWqzw}q{@`ul6 zdn^-WnlI1 z_VJ0O|EE3dUb)hKdhL2Q^B?uQyZ`-^G*ZwDYlT+a=1l|`qcE%-MGCoHdwsR*K_|^A zg{p)ed!I^_^cU+3I_G0;?$kF^y@(ZUaLDL9pg035iAbmdIinPOy7hF|TQ5VYjJ;JE za9qQvx lyWrc&_kJJsN(!N=K1FW;W2Et%u~lLu7ARG>_4ogH;2)%|tKk3u delta 1475 zcmai!Pl#7l6vyZNoL@5~HcsP=P&)G_6P3!jf6l%4913kBaw%RR^aTkGDE`nAO18rMaoBm0(Y8Q5pE8turNOU0k**f#x_$k%9p2$dGfc znvwm@j8R3KOeseG1eAi;&IlA_KtvnE@~dIt;GR>gC-XObBG&r9vg;;;xx}(>kwN@B*LgoO;M)pPIY;8zB z1G`lpy7zdaL{TCN_C!SiMho=P6|^R?{wig&PSUyOR~tL9{b2XNwl!7jW7}4m?u*ea zn$|K+%v-|jJOrlD zlM+D`iB@3{rhdC)PcyBx2H{ETz=DvBA%XPTNM<*H(`mVry~z%CzShc|JxL*mn6Vfo zS&bI6uvQl4-PZ4RKG|=hEeZrNg+hXIDoBc61simV;8Az*VB74fXJ+^HyOq+vL+wrZ znCy-ozOVc9@r~V$r61~f`SZwaQ?8A4=a1f9uRgtr>F53;1_r+%1f$VMt`gZ1sREFw z*PnT>*Sd^ofgLIge<+#Qavyvo^ua|1-AD7kO(jM{Ca)7X09()*FFBcrgbgLt3(v0f zGzyI}@F7VMI43+S0tu*JzcR1d#{CrGCAdv Y@pXzkPkvKl~cT<^TWy diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle index ca393abe2afd9c4a687ee5a0f112cf0936d1fb79..07e8717c0f0f1ef7c8772b1d1bdba57ecab46850 100644 GIT binary patch literal 38056 zcmd6Q36LDuc^-kq-q;IRoIEtt%H~qi?8=mNB(Wty07X&@fDjfWO_9*BXQp?%duO_b zePFSY5mUvO;#PIasBjb?v>jQtb<37w*%s*|hf=ZS*bJD8V#SW)L{2JIPF!|HaVklr zD*68Ze|=5QYNwkEl!2ymmGnaQ-j8;#br-`St<&kA4=0*V!*_MPX}aC;9m|H()|UfMcb6MZQ(ty$ z)3H56bM?6zdl_97Fg4e2)_g;6>s>7zYiag+psl01 z{kq)^CtFTKYw0y$%5_HNeHleZJFa8t4bW`jVe0fMbsAV|fp0h<&D=S&p&6C4y8h;h z?pL(dQa2oLIGrumTsQo#aaTABED0N+c;C`nm)_b9M_s+8Yo6XU?hdDYz1?YPzV6jJ znr{%s6SX)E2+ZnN8?B(JQ?{?W(y0l()+;Z)^71QRAab`TXZpq`UVZk}kG}fR8!zAZ z>W!C>?go@TcE8urzV>COMI}8>x%9Q)bT_{CX=0V{Qp)^|pTF_)tIyo{(yKpy=m8cY}r>Ae$NMg;RFWhThfI9Jj3rr$;@3goyNEy3CznnBdhN4=BCT*bpS<~}Pd!2HEaO8^C3P3)X8{>B4j&KOJseAroUE@yU zF5_wX<8{!R1Jqqkt{8Vq^6S+f;jr&CwXJS=TbDD!ael9@wf*jSDSFg6CVw0^PDq*K zf_5#^edeL9!61Z3KjJ!$e{Ja_QQozWK-#Y<;1g}lgXYy>)gVHq-PEs2j`1O*F0f}5 zBXk?RMn7Q#0)MUg&Z-AXCPk)Ik&foVj8f+Xzwb5fkpc&s`kEHB{F>{4l+umxxYlge z)&iS(3Xvp{HFOWedtPeIQh~P93}C*fGjYb9zH7F@O~+3{!V@J_%W(TQH+p%jXM|yyKZfF9+ zUeh}!EMY`XPJ&5KB^_cyk;{To)Ye)W+E&D!?tq4xy9L&_H4~G#=*8`ci?WkTHr#Yh4f>#>37V=##VQm3r(x{nz?Q}P_N5UcSQ6u z;>}^Drch1%Rcq=UIE|HkLSo%m6WB9QVWWlub;zyOYDKl@I9-1lbcz&RVKW)kfR;qv zpYU5A*++A2D@vNAqy_}Y^}VPg6BHNJ&^<&J5i}2E^PdhNc`-2$rP6A!b?g#{o<0LN zNID|$d*uJ@DqCz+t*c-O9X?LZ7G!92h!H)4iByo&u z1!j{{nBIbSgMz5;z3HTNl+vRlg`KO%E>DUI79EFFM)^X{Fn-8*Tv`;GMbS&9P$;DE zoraR%Apt6wQ!*ksrGs%%52QeUek$EQw7mumg=R$(KF|GZYbw3AX*NkgZj)Nl8@74S zMDk^(4fhPN%pu8!IM>9=KQGC%3=?r?!!Woc3|jSTevyh2UZ#z|aj)@4LFi4!o8^xS#s}n&CymSU$2mh;@)^bzcF@%_y$R7< z#H}s((^}AJBI<>6W1r3TS^^vo(pQI*BoE2SQVD(zv~+B(1(3w>DElzO6bns!GaGDk zxT@rli|ptKYbX)})A#?=UsIqZpi48Ht0}^DTBffgVOvm<4AMyz+d)dHhVh6haFmfr z;=VXEJFw&muaOcXQE?c)+&3)P7ap#KPZ+-6@&4xWa-(Tm-cqCG z1Wm*cuD%5NEo&&a+%oIlvZ}Rw-_kpl-m%OBK7Yyb-VNIUkNbm{^dG98I=5OqckXQM z!As}PIxhZF6lG^lEv6zWCfIa@iZWv43HLv_2mycc-mWg)iz_!x597=&c9;8~e1ZyH zjta$q1RM09h5E7Wa8wOYy5t3CqtOZtkJ-*VZ~e%=+is)0gHc{UK4v>kKNO|I89Fs~ z+L2{H8D}M`?Q1Sl$*GIMJ{FZ>n*n=bd!QW+yidIEk+Wwj=TDuxzw!h3pF8!?+4r0} zbLQgxtE=zo#*H6IYRh;ZBWtaVP~+^W^A9|7>H$@J6~`lH%;*5dp?5U^#}r&0Peu=YAomz0-T5P zDyWnc%*sGI*|w>`@OH@{Ga`SrF?hgGz7@1>6;dixsmN7W#wgM}A?1Ci)6%c#t(qF< z(YQt0oRSwBIdMzW^b5pS6&1?SDCszknrGZY43TLZF0?n9M_9YLtn*yxG7r^&!b2E}nv zIDR5YcJ-$*iuG%TuEA`?5a-e*5EsB3t?c8rQaQfa)?tJdy;B*Rj=Mp?R)%}4Xm$gh z9F~|fjwh|Cj0FF1|A+2Y@-z?yGvWy7m4E(RZmzgygW&X zZEXV%N@fLU-VA>^ZX{rbJ;+iE76{HhcIVdH!9Oudb5Ib|UUO(j%~4CFL}~00OW$RE z8+F3hJ#6b0^jEK>Vz7#{R*C24rp}pOLvJCr235USn+`?obJq#h&t zKwx7`E9USp=TSTpyWn_yMeQVH=SHnTjNXIYv|3QQis6ftei$=(?@ZOjxb1H8$X0FrTSr zM~*;lAjW#D1J7kQ)f5XxdEt1R!=CYQ{2CR66FhI-zF(Z_ex?P2| z#>I{&#Z+_AI5ph&eMzzDq!>@=_HAdQ4&q~4h-R)+YF?Eo=(x$*1Qu%W>_nWG!rIl_ zG>MeWKbF*$S(wN|ZO0%^Bt_b$4e#r=Yc2Ry*wX~-6!9>X+JOaZdKewYKvFo$ynH%y zCTT$pab{9R?Ln|EA>8drS&9mY@sNHRM?)bJd{S(Pi^;Umwvs9-dc|<1&Rkq4%1CNel7FhKL2N?qSxA>iYclIW zGjyEDf;vYwIa?&0N?Zc$F@@Yv91i2TV4tB#l1W}D8U&~qf97d8X404h2eJCIDubsf zc@k39IH)qj&xgY{MtN6M@H?N*>y3bepdL<1%*vDWP^OiA(0PujRSHqd)zGVO1i=m_ zHLyIJa9@CmvAohAQo*52@I6NJL zfetWmz$Eq9n$GrxOucDibpi8nnB6APWaj8Cr_;TTuEZ-vm>7@Nt+19xQ;!%~bXWF= z#}&G9qJgy-Ob7ea?_<50rkV{vUbG4rSHvRU$`IzF?sCwek0?TRMTAB4u? zo?IG-Q2LRc^v)I*$!yB$ZJ(AQ`XqaPlUg4UINgylB*4&K6F}+$eMBw#^7cg^|sg6Y!%&cNqqdJTzFa)Q3nxvrs4rJFcXA1X96W^GQ17)|v zBN)|b8#Nt_Xw~3+X*L?|Js%$IV8WW@oGoKmiN=DPo1070cN$qNLjjjj(p$#D7uAU8 z;z&NyhbU6> zf_gS}!qBkXz+(W!o8eK`bjTVecj2Ef{vjeZ(a*!_sadhX6e-BUjWHDNw$>0%MYEn@ zA!fpiW8pytS&OEK187pKMe(4pA<>x!PJQ#ip>O=rUmS^+UL@h)4gD^0PU)DWed~*t zMf>FSPu}>FwFVDNZwFp{{6oKDwd1!BUbU@O^7dEj)<*pH#Gf4sLafHnfD1Du6u=v` za8fOFU<^j9X)*x~xq;jbkpjNZ{n75l?xOXRfJ2tyjck9g4hyx>G0S5(zPF4pSvRlf zRhWpn>uiG3vO>GquQ0E#=Ze0rU(rpy?qQNbfZf@z1Ot=&H}uO#Eb3RO5HvxGeNVq) zs-Y?m)1=%z{mL=8-d^^FD80Ht#}ccCCK^ysb~-LGm6>VZIFGUqt+y+LqV-F(^hGgC5N7YO3fb zP&7QC)Q0Pfuo+@SXLVtNMTXpqEcq~(phauhlrrvWn=+|Nj(n_PV7mzhC$K@*?=bjF z@baXU^A9?kl~e%u7>3gxG?T$tzfWcR7YRpXakXpx9ts6@Eu2V=ipVnznFvc^^hSC9 z07e0S4@)F~zs9g+k-X4If@eQ2W4U|O*D%7Mb!OGApw0qieH|@H2N^SC%lZSPpiegl z&pVQCeEXT7^m=CaGhI5F6uqanp!IJ6%=*uGpi|Z#;uoE<{w;pd&>zdsx8&zf`%@nL=vRIWCOJVQtGX2>x?t zrpKv74S`B~hhmH2jEd_KW~-=vE?S6!f!5Yttz+y^S&$izqvM^5v32e51=0+%zCk2n z>sbd8(t@(P^(2QWgLH(?BR~mb!LB&F37IBgk6>(xjE5<#rOC^Mn^chckV_yw#t^L! z;HRI{S+pMAA;)@hrwnbU3?}j9D(#i5ypOjBq$wL_as<0)0qUlZI6SzJ3LU%3rnqQM z8h)m5!wSS!4B}cz5ZKrf>w_TkVTQCLCl<@H;^ajccnC8pn%%6N!yuN|(KDR+ZUqI! z&lK+LfVvRgz7R$49OYMmWfdFR1j`)Xez7nfIlg^TsD0}+V*U|NuV{W{3wxa_*sxP^ zO>ZOXr}`HW(to{hmj@;Nkp-*~Rxtu3%&New%9!Pd{?7|zkR$rn%7XYgR1`Y=V+OIK zmXuYJ*IzO_UIjBI6*sVH4`M~DD2c3Kq>kOwJptMv6$IlyFWl)tIk&Lj1M4cVt}3jn zS~b$62OM9|3+C5i7LEZ7`WFFVLyYZtd4Klh!tLh>{!3*+Bs%bU z;n`kW)H{hYO-Co*=oPG1xm&zLy+ZrQdU&);S>e_<3wL!;Zr#b;B3!{Qy_(=!C0z4- z`$l0*a(w$&WkK}vt%UhYEU2h!2@nYuVnIuQNU)IUpAsMvEH0J}`3Z|?(PO94_Kw53 z(vu#8FQ8ceEuQMTb9iqeZ(1?L5)$v(%uMxJ$<))y!foXw{1}7S(G^%91k11hh5Z1u z@hw_U>zSJ!d{HP_CFA~$BBbRFu9v%u*j0nYaNgYV9JVzi3;6sNtxe(!+4HhSPk+cJ z7%mV6#$155Eb*=w`k?oqT6*M3AuPHrT4&H{>wWZikRI=+$60!ur^f|6@EI^Z0a70q z?Z=XxCg1I#$@P{~$Bu{*!)#)8AAe0L_;JFRY@o!>hZV3;Ces}o(ZzN+fpy5F&%%v_ zyx6y*K4O2%U|+j0^L`uoCiehs_w25Wi5Y$?I#FyoREb8S@FE(oN#W;T3l`C;;jL5n z+!|wgYSa2Zv5x<6;coT!akMD9n~rZ4ZY!tbR~W>OI==T4_m#&eu1*&DXrHxD8;B~} zI_*XCv$5aq#YLuHEKG_4$sXRluu0ojocL6VYJ_n$!dOu?F}^=h7@HhpK3*0?;!^*f z@OH1m!h3r;NMVyOVgAbDBBWy~JzfcQeG|J9@&ndFw-<)_LnGelkpjC9f(UugJF%&B~_f8!0c9 z?dZy|N=V%f~`Bg|#0jOol;O`{o5Yg9-hp=KCQW zW|pgdSEnasLQs+v>|kYSx(m6 zvLs2&iBlHDUsGB80{6#yjk5NYvQ+6WYYHirwQ-WDw$^xfH7jYUbdfWubTj1ajveF- zSUEVlOE!%rgQ(AzB}O7;pDGLDuc?&%>7Gd0e=SRu{!*rpN~G+pX$M#PNSUOIlu4yq zDP@=f16DaH`wwM_kx1FM%7VCwQYL}=oVZO2faEx|9yik`U)XbUwCEJ!pkdA-WdtOc zp(EP*sQ$6S&F6xd`LZB-nNmbX6&A@bTgGN3KqOfFMcEOe8fNpC0=I6M-TPrddKhON zjmOxlJ?zGSl_F}wmlq1RpX1B*vLJ3cU#3p;dAOBJ@(oIc zB|UkxG-nG2$y_LELmk%&e-fK%3wNoeP^`MJ`vE z@$USA+K53wJ-pWJt zbp zsfk=jG+qKkg2nsGni|3ayHDt}kK$IQw1MB@hpA;7D^+1c(0}pTh&q*lPF2nFrGF7&&36iSY*5x5S>Q8gh%IUlCu5f5&R-VB zAjh3QFAHK|?v!=~(`V=?N}L{y6G!lMW|lF%nZlA|<9id^=lnr9v%m*q5;hol0h=5% z<_ou-W5yhVxP|`V;G?=*cd*BWkJisvq->Uu_nn2iIH<%=E#QPX!lcTWraSILN;wn52jw7cY@gW8e;|4ktr^Hs&C2f^egmHAtWyV+zUQIak z#loZ+ltcF}cu5cVKm**C!acyZVtmaU&a;yqoeBxpUM<|YLAiE}0zP1eMUU!tSE^SETd#8dinqBW`uBLOzVU zuW<7@S}&Ick!Z}DgJgx@Y_pjgvLJM++m7W7BF`5I3Do$5(@T+r%bzTliCX9G`o7dTTAq zr=5!lqplV1;Gm2;fe?x?#L;QOAwJKGG0bu5!-cWPacZ+Hh?~x-Bky;xm6lFfThX`Z zfcDBIy7(!hPCJwl9{pV5t_{kgqYD;rtI|1Z8-iPvFQv*c=w}O~kYmt`WkK{Zs6?2N zL@MIrN`OePm@3;56{+w^t+y~z$sFyPmOAVHI8yne!hPy5V$`?YB9%WZ+*VGO{xyTR zg^|jv`s$*Bow0p3#pkm{bN_eYt`11naBe|;ZBfN{U6~E>iU0ebgm9lfU2fazvkvjD z!dT>3^|u(rEwoaTtLPAsAI>}*Uu1HG%=N+@9F)vBSIHZlffc_6;S?Qug?9NA zFutT`E;{2XlR6>SqVeTDKrP(Y;5*SKUB|)AqFe2{gX;`CG~O6lmACk)2s)<$mzjBH z9dX$Dsk(DTr_0UM`+ISk*CyVF`MO2?f!nljjSg+@!u@bKI!s-vhg%r=*ay1G?V_G8 zvmK7tQrG^3Q#Cqe^K^0%5Z#~W)Ga!uh!|rNr*8|wah%AhuE?VvjjGplk+DW}Q68~F zDx#iBWO0~^-stW%N(sUt+$>7ev2HtvZH6A2v-aVyEJ3VcB%QZL=oyZ4=O1<-?x4rh zbdCVsReS+dX!AvIQOYS7i*)C$F|In!PdN)?0)KB?lX&9Zlqvo}uhktysXh8MF;08O4qV zZ0OI>`vBhsm?|`7XkHCBB{Qp~Iw7#l?Qe7Q+uZs#H@?knZ*$Yz-12r1Gjo4uE7iXB zc19!49imGGla`Zox>XSA;UrFlT2Jnaj=C{|eTF*j(WD|{>pG&jChqUHRsbEBO--o_ zNz~P&;an}X2#3oeuWsSIltt?-N{2JJiTlG_@g0P8;9h)}Azh_z^YJR-@I%~!k6Wp% z3#ey(fF2j=v5LpXa0Xr-S8$Gjyn+ib-=gg$@`jUE&ZF33Pu=j~Ic5jGEg<~+L4P6z zeZw_$WG4T(E}oLuEX_{IvG*!w}OryypK>_s^|e1R{6tYnZxFAw4jS6m5GqeDP( z7cR*Lr&TeHDQP?0*oC^|^z~bfu0<2cl?1*g4VlU3c_?~_zRarO%Pd^e8htOu0w*~= z-)!~$dJIse+HqcHpIz90*B@XF%kY>rDtZa?BX*RWjt6XXH8Lp6sqmuA^oUqLau?Y&o5wp$Lri7EJ8%S}- zGF@{+2Yo(bn@^vSJ0fwS$)fdHfF)N20(P?moj-Xse5Xo5?{=en3EFp zgp-ZRd^%HRUdrIx?eqWBDtp6uH9d;aGgX zBHH*>l|_E>I^q~z?ud=B`>M(&NxU8&jgB|%xu+3uUdj}_J1MBXhRfa2h&nH4>QwsG z$=uKQTsI&I`#loce@Krn(BrH0_yj$EgC4(4kI&NM20i|O9{-FU|AZbtPmkZB$1l_4 zSLyL7Jgy_EYPRI)RqI70gi~j5Jq+%{ZIZxya#mP)DB7x1W9`6oxF+0bI8Gr=O@)&o RL~f0)@TGg|ksH*P{y!l-2CD!7 literal 37974 zcmd6Qd5|2}c^`oVuow2k&2z|=#HFO!wIte9WXmQ9kOaK|2w?${3JDE+XL`50ccy#L z2Nr9IkrbCnZq&Bn;>hu(Sc&Y&2X#3vJ7TOj4(-IMav0ExEya$?F6ED;qADdyNhv4J z_4~f>^))@Coo+5r2C90e-|@Zgeb@Wm_g=sE;k_SQ>fFNr!db6vnD*5L-M(VFj@{C2 zzY|VB6qwD%!>ObfJNJF0^K5569ManD&e?FR;naOs*BhqW2_INAoR+>Ac)Gh-cN+Sl zW1Eic8JepvqMWz5Lf{tHbl=yn`il#yuGb0od2XFSylFcSo)frr9X0BXy=ty?!U=_V z^uF(eWW<<`I#+bpH5If(c!l1Sb7~a8+)8Oy-b}3mRjH&4oEX|#;j{b<+QH9 zwW9kKt+~(%N9#^|(>2!&zhm4P4g*WV1}MIL;T;R_=!C zazAIUYFA9qvJ)PNN~n|tBzMBu1Z2%=`%FHNRqCQ1ah3&SFAY_By<&*&IO zoVfao4G^`VcaSjs>c?LFXZZiyuYU2>FTDElt1l6`o0Kzo{S&YK=xZN&?IYJ; zzWz_Ie*x)kK2b=1SANG`f8|reD&M7)gV#TK{pHs_eEoB;{r&4- z1dI?cK8M_39l3fqqR1^64uRx~@NZLp-wv|t;Z!|vUFbqB;*N255Kc1&Q=7R(^(~vHlE+~f81^8uHHCl0x-1Z zd?(zq;CiI~uI~A6Q1=65Gh@AQ!VX%{yV|Pbwlv}NuqUw4%Vqghc_ZmGilHJH{)oA@ zz)5?3ZKa8nkqh*flg7wUR9B!$>!^R)^nBA^qnsezcSUOkARo+)ahq{_I0W0&Is1Ia zxWl;9xJ*Cpg5K<*?s9U)xLcC%Q9r`HzSGb)JK-%I&Im{Oy|&u&J7=ZnVdIGWIBFb| zGDijNTBQ5TLtBGE2oHb2bsYcMg%3n|&wc>X{;UE%*3vv^UJX_aB4pYP{i@^`?>ANi z_LO3TZll-eCu~6AuU6k#^b&6hCgWZyu)m?NYC+SlxeiDv-3X6r zjYe%Xu$iY2NfKE@_dvWCq}DVQXgQ4l=8HNLXWZetW((YOeB1H$nyaru7VNrSgNDJ* zZmC8+l1DLSUX(c5-dv+`!h_^*GA=%t0t*3?)+DnQ(-1PCuvWdCNy;QfL^?WWyun~N zQ;~VAt-yN22%nYoiFI9X*ETfQ1_fheX1t)?hP--7&L!2@Vf35XLF&_T>>A3E9w46^ z8iTOc^tK607}1lHVA4}bvrH%&vY-^T)ux8F6>%rqprPh&g7q!Ugz4Pf-c)Vxw=p(? zK%&WK&k}*AB`r1nJlo-n{VmOIW4Q5ZfeVoq(vR4t-!|*(o1HB#G^yTe=9=w5y)H@J zeWI5UZw@Fmg=*qgt)aIuXe{j#66?mQz@CB%8#NSIf!u1%W>kBI)Ah@sQ>5q$oAIay zv?S{OnBVlsKANkWQPMai)geHx??oLMBfp@A?!mK&pm`vhe>s5U#l)OVrPW~Tct{+& zd=kST>3n!Fov#Kxwh`fIq?T-PcUu~)>IG0yG0*o31 z5rm??V9b(CooE_ua zk~qS(0<%FWOmD%vPEJ(kzI4(WO6gIO!p_y>Ay0}57Hx-AMvaA>VLWNPPg)e3MczxM zP$;DEow}0WApt6wQ!+d`rGs%%52QeUelFcUw7mumg=R$(evtdw(o}kF!)%a(+#%W|;6Z>#oV3QA}0IA@9gFR{|dnVMOm4uCw8q zH0+Uq#xOGmkJ0=Q6xN#3pfPV8QZ|vtb{4wG@!$-jYAh&YCM8(R!aEaRw8Bnh1@YkrZ6;$EhWzj2@OWvb&=2lc|7mNoz1mu=N5@F;E5{8e1aIbN50;Rh9;% zQ;DCT`k+wd9;Xc{Q(c->HKFY;8N*Gs+KQ|+No$D011)&f3M-kUkg2EfHKOG0+*NWz z*$br_y6r?xjj=8Skyd&1gMUO0vm1?K4EFvSDKQcihcTA>h6Ve=)3xv^!}r_XyA~Jg z4cqb->P;tTz=v@41<-F%L&3$Sx#BIVT8nRAcwpgyMV|2a3zqjoupJn2-+e)UvU>c? za`nua)3s9<&YX5!{8AL?{LQ{zE9vh26US&3@%neSs}t+n84oIZZ`(Tm3)Mb*=%A8eWnj=Pqswx8H@ z722^zLqj;yCXOOS9I`3NjSMb3AjXe|lSxcufy!p%1&4BBf~Oz+0H)Xb;J5@B4*ZVB zf<7j|c`C1*N=ZRf2GYs4O*w|QNd}n_`PIVY0aN*A(6W_FsZgaNS78|=PxF|R_nmfA zzoIv5YMMv$7HRXK6zI08jG=;=8bf#6j!@=+RO2kN(eN@cE_1C($wJ(NCl)Z?qSum~ zvh9(dz}e%HExwrbGbCyxYpNX?Efb~Syy;YxXzbw(g#p-Bhb+w{hFa`FdH$%nRE&G1sIK%c5z#&9N%o|Fv5!7sf-QBT_<2m zd%LS>b{!)*EHP&sOWW0Y3mrEBq~60GyHPgNWczwkfkOp5C;2rIJdqJ{1c-z0|hbdRfne3?6pKn zl*SIe^qtn%Q763Xaa*sTzj`I*gH@c>N*tS;IAeNsy$RnMRP|zQnvL4YYtM9)l@rM* zqo?%8m?uODN1{o#NYtSSfQ|m?zGgNd@`2I=s_#d1t0R^OcVzg@@2>uxd*1SlGIc$H?9j*qGCbIXu95s@Kd$4Ut9m zU(sA-cxUSn8w`lO@+Rvvr$pQUuxeM{5xL$+>pVrTVIt1i7^+nP<;owax7*@RWk4dQ3!Vd+iX?+MMj`De?-*iWW*Y*!W@{7)tF37D zbqp_vXR7GPA;=BHSZ}s5a@h?PV!^KIJ z!cpS#>CCC51vSN)N*T3NU|mAE+mf>66%yki{WOn;LL~U4*boHx!56crMsuDw1T z%Mua5BAjZ9^liZ=)$W8-rdNyR3%oe-BEoo?>R53>m=$vz)nT}VA(-b=#D=^%kX=Ur z6=N+$!4aDSWw*jZnBr;cH64s-)-V!NXd3Ok5bkdydQC#lW-_cq6T^*-jRomDO*0mu zjf*JhEn*dnYQ%wglEwY*YCQ!5Ggz5ivZ61Ty1&XWNQtRFmCn?kH0{j1-grKogov_b ztX-w09rR$9+%_**$)=7O8rB|oLICG8Jj`kjSwo~3gB2!2M8pRAc_1C96@yG}gRJ5h zL*aG{58*@<0tE{Z7Bh~7`x#^{iWdh^g=UkSLuP|zV;Ft(_*YL2{mEB8ylAb*Z(n`+ zpIB!6_Gka~kkyRe{`|SutXBN?ABO(Wvf{U|jr|wPNZvku$y$rw{^HGF2tq8y&}<9g z5%S)RS~#v&IWPgEr8J2?Lrx%PL!@voc7CjLzBA95k|nsGjSm)Kp(Z*)Jci?Yi;;R) zDKtw9HdPw#sx%dFWuf+a2d#$Sdb-}5zk5CHieAM6oyUz_W0Db)J!`>{*G($#xGS!+ z0rm@OZ|Kzo99X|f+W??3Qf$6gG2SSUgLrSRqEYi1pl|F|Qh;X4-O;z4AUD@Hzsl22 zDRoz`QVK6AaeJ>4L<`C8iSCBJ;vtNbZm1^#n55mr?}?Iv$ZcL@Stq9U#4W{ql5{Fp z>D7nG_z6s?p=tBpgGR^t1=O>C5f2jdZ~{>>%zEMHZ)lrd=O>{NElhO~(bZJZkE3X~ zN9haK*~j)K(P*|zWU;--Wbfq?v{WryQAS;DLqe%=O2U!4flVfulEBzluQ2!v7~4r5 zCy%RS3ps;Ae94UYW!0){> z%;VPx7AKMynlo^m;}RCOhkXrm39PzUzt5oAR#|_5-_j#S$k?>LgcNk*kMJivbdq8) zP8%vzNj%qV7y6X3{ultPzr+K*u)d7Hz~1^3`~~o@$e({NfBszle2xDE)?eUngdmSA-Bbz(&0 z?=~1sEh|U5a+2q2S+?eK1+O=~PQ1uIZiCm%3CFhKLXpP$PUQlk(HU~}$QRu1e|@+G z;aJnb+?iJL5;MwHObiWK0v_Eh(l~a8ERu8{94wL{c7iP89Xmi4QHz})i*dsWdfMj_ zD?7dtU{euXL#zYEwz45;Y8RtvEG@@juL6S6 z&lm30pzJs>he)Yibyioa?HH>ZUw)==`#HXRtSpEd&Xk{2K;5=#&hiWT3HYSvtz#OXmR)ic42CEqsmKlkI^`}N?T1cZ0T1> zxHG)xMvWs!=HO_=*j0HHXY6uJ+EW;Z9Ful2h`s~$jt>=kdrW&(n$UH=aGwU1`h9Z& zPq}ksd}HAzb7Z`yEQmzb?&x%#QXTmc0a!UK@!cFJs`)g%EBUu_uYlNIH<%=%wgLEVNzvGa>RXC;g)m6eV{CeMAGjU{_OPNFm{?g4aeeF zb2Dpw(iy@5t#Bs><-qtH@3W{nghh`2?=ReLj{Z-T1<_6a67F!~QHzR|0Fhv^jf+s) z-W|*M2p80M2-q0YW%|BLIT4bdDop7?h2++(&k*f>VjOca^Am;9$jQt{8N^LAi1W)B zaj@Z@dQ`z)rpn_uW5L8e$cj3Kpt1}%j`nV4jOF0fghRhkm^6cO=)O5G=|L4esN#D- z?m-oMV(Ifw>|r>2e&ErT{{E`fuaI!?acg&5)zAW~Sc`&$A;g2fAE zJ!lnR;k_|8FTm1!6HVHhS>K7{E4S_28GoAkxLthZXyLYUl6{Cl+{EExe3_2wsXW48 zr>AKcW^%-QysK~rdz+6OF~j|HvQv?F80MX~2MRZwqwM`sl<=>3IzIVgv2n~QdxGLNdXgoWiq!BSB>S;Kp(FdjLE zJt@@gXIFMU)OheBrjeRo*~A%J6&w^%aZPVM>m~IrBBcLN;VutK`a@Vf(yQ1+Oqf-H zS(P!%5&eUOF~|{pvn+^2ORfmt`e{kob<=w;AZEc1tsB^M_Dw~rD2c3K|20nS>Iz5> zQb9QP$-G{+c}Z=Hw@w?x)w($ z8i06oCElTW&S{$Ut_V@zQbP1^7w-6=L_f-r0N_`RK1Hjx1;3m^eycDNIqHA2EQmxE zz99^}8HQEK;oyd~yMi$9=%5ae5iNtZe=Ve?Fv*XcLGy>Q!&uJ}LTIKqOeqmUS!$ z3+#^K&&K*qvUh%WRQ5ZwbacZS0zxA1e_U8ZddoZYZM&e|zb)KWPNM&aLEJ>sKXV?R zl~yj0;eVpn{G~^}5cXSzJ3Am@!&!ufG;HZ6qp$q1y!H5I;pTI+{zh34iN^eAVb@Mu z{Uaynd@MHkkDC6eV5Rby=g|SqX(12$mJ$XX!bz(;@rh7Q@1mD;T61 zKSkptcsE-Zi5#1z%7VDzY&yCeth7u_{cYh-<$VaMd3tj-%cuUugi(L1a0ds~q+?kB zBn%N@6%KLOk1@<~>iY^~k>k`m%7VDzoI3Qwj%imY7`voz(vcyR3v@1FMxFYU5guJC z+_gb@ba>7JZdD4$t_yBeJ~J`Lpub%hg&c#PC<~&SK_%Rb#8Z(mt^|k#i!YTm-O5wp z&&h9|r!x4b>DEl_x%_ltX7v_1>g#r%%Zr8E%E{I>2GQ4ZvCg4mIIlr2IqCN;@!&@) zB!^0H|ArBK?xx6b_2vv!9;B5kJY9Q2Z7h3WKX7&dLE&^g~XD;sQ|!j|ofVu8w9habIQa&@CKUWQVMIq+*7fKz9j1`jfl~E3E+x(5DJe(*F`E`m#+W#>%juE5$m9r_KUlbfgOV8=o&*n?K;)HRvv9*X%3di8B2fZQn6uN7k}+a| zI`T6;*5U%KBtsbRiNc*2lmX++0EI=)2z|V8yE*#*Tv-q|oc^P+4azD&DqX1m`-QtO zDD}q@E0Y)g-z(f~j`;t)EQoI6m+*oUM_PARb!8SbZlo_PwL)w9{s+;ZRLb|h(X-Mv9j_6t>q`@?$K2OJ{^l& z(bnjM<*rXnw=XVcWxg;edYhFT*~7c%Ht4WbC%$;K8ev?GFwU9!Hx|Yw$C!J{f=D#% zF5&G?54HDobC8yLZ5*}eN4)IK%6og(yEk7;IC{D;0S4vhe2$~sgQ_2Kwm)MZD~wc* zv5%Am(aqQr);BTWqW2|0Bv{;1wj;`b^MQ{y&w%$h95Q3VzdttNKUTP7y(N!2xSa|A zyM^1z3Dk!e#7!~b^Kx?T2<>X8eJEL9FG&^+{v|<-kEk5Rjc&S&`<9|JhUJLh;b)$~ zk;~6K)5)C7%g6brnS+yi`6$QFl%>{7sA&BuJdU&0SNX}{6oP!>;?auS{L!dvU?np( zKxO;bzgW7@Mf7Sw*$LmkJN9Wu4JcMs$W{s2)Yz1FeE(rtk|n2K{)4h05?k@}3}VNF zQExepo4H$Uti0lmGaS}IH@XFMtczm{8*xNzJHHEcbD@=w#S^L&Gx?vps zsOI}29A=iQe&oE3KP!w_&W3!YEQlM(Vr6WmF4CP=6|LfJ;xgz~m(9uL3a@sJlNWA% z8r@1A*cuizH=_)t!~x&E&5c5e&CNK)PgQU`E18*`bZ>5iQMnUF1=Pi70zzH3Er_G4 zAa~xJ{NJ*Il9-dfE(_vssI0wnM`Z26os~6(6wBHu$y$%qlT^CMnN+$Fa&~(kIqS26 z^1Wq=kx1Fw%YyhDDrL@&NZCeNs`R#K3aLcOdaMYslu5csnN+%&Qr2fxs9Ba6iIkaT zLEJzo6CZs>hD~ySR$Q||_co_J>aa(?u;(8a?$V%c&a5&5;>-w6IcMgRg`3YgGoL66 zqMIp2WK?01%&=uzRsuwV#RtodlrqB(!YORCsbTL3E|HR5F?3A{UFw9L9dw%4(iq=b zur$tFwwLzueFaOqc&o(HFyBRzobFW8wA$K(`zHAc z8!E?e2izy)h10yR26yb?iY>Xfn9!yzHn=~BL0#j$Hpv@px=G$>_f7If+i;RM+K-dG z(Z-zkEeI!QCl1=J(`A)>xz0?q@g|cxCij-{r8__^+*RjG%f?;D!9AdxtrZ8C4_>C( z|Gs5;i)Xzw@5F6mp1A^}w03;OxuVnUW9t1OY%$uv`(C~r5kGMK6|TaO84X@>VH)3h zhdUE_8cTPro!8T4w!+a`>bjnAqDCJnok%Y5p$qPu6^kOS#2AO9;Fcg9#RpC54m;}6 zuzF1w8L3A%*%3RWBI>C`7Ke%GjV?!{lpq|!J)lG#>%T!OEg#KU-@>mfL9Fi}>8$lX z=oyZ3=O1?;Z==VPG%uo?h0lQsExxHON;&T0z@f9&Uvbs{$xoTv|1bRBvi=%R+{W{N z_z!xm?h#7$d9U2Fm+DQtdyLXZPXK`Q1b^s!3H)iwAKGh%H`;cCKNK{^ABy+jGNK^d zZBgInt^bF%p(MjNy$zR+W$3+!FY8McnlLo4hI@^9@+#E{fh}%-i<{r#*0)##wz%yr zZhDJb-U?!7?rv|U+PB`cpU{YNhv?S7q~#=?uKh!LIF11KT5`K{)Qx>OGgZf}msDhA zO~-YNKlG&(^nISLxpkvsy$6Z?K#nhSA>0>%JFt4;dp-p*gJd_#;em5}TVo}I zBzieYw{g_yJ~4Ic2`BLFa>z`s3qjFYx+$WDn<8*AYIJ{v+?2vOU3WYR7q*b3eo0 zr;q~Heta#6+i+_1xf!U%C&N%$6&v6sE$n^X59;m}Uy-#ddI|G;o=|c!-qS)C8KWKE zgO{YzE*IQV*nii}^RSM%x(53=W4&T!QX2JK$9fD>WBoA89o|R)l@#LbNqT!i4!zQXv7J+Bp8%H#?3M%p&2K%B%w_SL_O=WB>0rT+b9D`xEd#Hazbo^ zf^eVN;=^Xb@zfQexDojgoC-uY^<1>g%O~YhM?`4mtzSkvG!#=Ou7!uA-MQ8H5*of5 z4?X*(Ou@U8g2~;E*-IKx=aZQ_m0oo+_d%k{OR5U>{~EN9jx>r;_;e<3Ds{|IRN~h& zC1#`qJu&D>PClV8bXP4g$zT{QW8rpN&2j&8!Y&{QyGBC$3-tIG^!P{gc$prbp~tV&<5%eMd3yXd zJ${-VzetZ4>G8|-_*r^^EbOMxjfRN*r!3J#RDen&fnwE9lC+kh(^C3T_NrkyL@?GD9@G;*7bk-ua=7|7li!>L%VY3MCC$H;gb!1n11V@E_NPNk MsQbRegLr(to#nPDa1<9Sgl(f_!Z~;&e5Ged!xhV?avRRnYyYYX-!FtL4#Oy0GF|N z7LyQj;J)5JbESS!FI%I1&>UR^r?CjfPB@Fs5lxb=li~65Otm2d51=6iiI_WJ(k2!k zf`GB)@Z(6S+X=*WEFvTwcA+r&2n=9=yvbnt7d)NZn)R>xo73jaud189fj$MIg)KxU(2oSUiT3b4MuzHhIDH;bpb7RQESheZ78TKDjl%G<;h> zQ0iXY+g#-JaPyh6i_%-;T}6x1{~Df;H%_(D`=T{#Bw>^i6C}%?iuc4mIvC!c+g7c! z3?>ZZvh~w~S=fT=vBT}UO diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree index 3ebc0f677bdb8eda3e3c02de062674dca13885b2..70a22595197dd8a087935e12ba18dcd8972bc674 100644 GIT binary patch delta 844 zcmWlYF{@rh5QaJTdM|;9h+q&5$!eiiW_EXWcBY7xMZ{FLHqOlMLjFPiz$GE=7qAYu z3o!@>gw(N!VCydkXcI^ysWV@7V9)N(Gtazx@npMrvi<&W`$FfMm3fi_;xIGFSXdMm zf%1~ahuh~j53jcS3Al>)(M+k}TFuPSaAtzq;}`6|oLo6g4#k0|FT;v37PC*JI@~g9 zM%f>p-QALqwQfap;6kmekZTo|Wo>aW+5bPkJiF;5R~p8B1`}4(QR?J6w6-Bj_dh@tiR)xP4J1#s5==a253By7zYDo%!l0nQv(6z?Sy33c3Ge*Ev2RugQi zVK#M~3Jj$Uj#>nm$$0AEomHnq{e+E~p)up-mSlBF^ zC`pgop?mdGcKYnyNhiI5NhfH}F~xcR&9%8S-ct(8V?C_UJdf7ACck zm25w~{?&QP6wVtIEtPQ2B?jIn?IuM~Yir_`2Joa-f+1mcJyxo#lZaN|*LKRyF z#@hSx7`p-p@csh-*;2#E%FL0b-cY7XFc%K}A<#72{+w=HNs%E~Ro#OEdl$)V)Z;=t lf`FU*o9})*OA$`Tz;uZsBMaxr)56oN(T24B#rJ<-eGmBd?o9vy delta 844 zcmWlXKZ~A46vcUW-6aqa5ez~?@@Sz}dS~X&+_^=pEEH3vwekL$3w{H?z><*m4OoZm zLL$NgLh7W5VCyFkv=MA1b?(-4X6BspI~Pw57f%kqK0JIpr=zwa%V}aXpB6$@r*i=y zl*h-r=XZ{;4?k_S8MdmJ@{ZV4jr$~}=m0(D*nc>=cDeDABGftAjbdu`sGv*t zhiCT=TNl8Vf=N@+T9>vWY~pem0TTQF=a*-9`gD<$_-NQmSH~W!SFgIzkoVu-y*O;R zhKOnBS_CC6HRdj6Er^TS+`oVCo0F}TpqXzl@I>RO4U1vTw}Pz^?=Ro~`>?rETPkWg z6iYEK(KKBxk|{Cz{`&_%o~HRySXwu$mOs*5WZ>AaarP*>-@oxHBl;)WdbKJL$*n3or}s!nv1n2DZ$EkV&Q=$Tf=X%OD86{H%AhN^WdPLUhoAkk zA!6rYqktETa0v}Vq7HLLO^CNX|L%M%m3$3U$TVnu&Z5E#vKKXn?#BmT{IzjqK<81r zEhM9?K7^Cc09;Jv^3j*sXqp-`7XV{m(WzNV<3V+>HmYrZTK_w2p;UUOmX`&AO;&Fi zSb(bnhwU%$&s4FxSe~?!0h36Q1n1mnLTC5=mvQ^rHXs^Ejd@k6_Rs~CFvkFLbsGD> gUp+tDdd&sQtSO2j0jhelzIsBk9D3VdeErAuw`#BT00000 diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot index e26205eb..858b9f87 100644 --- a/docs/gettext/develop.pot +++ b/docs/gettext/develop.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-20 13:23-0700\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,11 +37,11 @@ msgid "Contributing Code" msgstr "" #: ../../source/develop.rst:17 -msgid "OnionShare source code is to be found in this Git repository: https://github.com/micahflee/onionshare" +msgid "OnionShare source code is to be found in this Git repository: https://github.com/onionshare/onionshare" msgstr "" #: ../../source/develop.rst:19 -msgid "If you'd like to contribute code to OnionShare, it helps to join the Keybase team and ask questions about what you're thinking of working on. You should also review all of the `open issues `_ on GitHub to see if there are any you'd like to tackle." +msgid "If you'd like to contribute code to OnionShare, it helps to join the Keybase team and ask questions about what you're thinking of working on. You should also review all of the `open issues `_ on GitHub to see if there are any you'd like to tackle." msgstr "" #: ../../source/develop.rst:22 @@ -53,7 +53,7 @@ msgid "Starting Development" msgstr "" #: ../../source/develop.rst:29 -msgid "OnionShare is developed in Python. To get started, clone the Git repository at https://github.com/micahflee/onionshare/ and then consult the ``cli/README.md`` file to learn how to set up your development environment for the command-line version, and the ``desktop/README.md`` file to learn how to set up your development environment for the graphical version." +msgid "OnionShare is developed in Python. To get started, clone the Git repository at https://github.com/onionshare/onionshare/ and then consult the ``cli/README.md`` file to learn how to set up your development environment for the command-line version, and the ``desktop/README.md`` file to learn how to set up your development environment for the graphical version." msgstr "" #: ../../source/develop.rst:32 diff --git a/docs/gettext/help.pot b/docs/gettext/help.pot index bf561a1e..a113b697 100644 --- a/docs/gettext/help.pot +++ b/docs/gettext/help.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-20 13:23-0700\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,7 +33,7 @@ msgid "Check the GitHub Issues" msgstr "" #: ../../source/help.rst:12 -msgid "If it isn't on the website, please check the `GitHub issues `_. It's possible someone else has encountered the same problem and either raised it with the developers, or maybe even posted a solution." +msgid "If it isn't on the website, please check the `GitHub issues `_. It's possible someone else has encountered the same problem and either raised it with the developers, or maybe even posted a solution." msgstr "" #: ../../source/help.rst:15 @@ -41,7 +41,7 @@ msgid "Submit an Issue Yourself" msgstr "" #: ../../source/help.rst:17 -msgid "If you are unable to find a solution, or wish to ask a question or suggest a new feature, please `submit an issue `_. This requires `creating a GitHub account `_." +msgid "If you are unable to find a solution, or wish to ask a question or suggest a new feature, please `submit an issue `_. This requires `creating a GitHub account `_." msgstr "" #: ../../source/help.rst:20 diff --git a/docs/source/locale/de/LC_MESSAGES/develop.po b/docs/source/locale/de/LC_MESSAGES/develop.po index be0a1059..f0eaf737 100644 --- a/docs/source/locale/de/LC_MESSAGES/develop.po +++ b/docs/source/locale/de/LC_MESSAGES/develop.po @@ -7,16 +7,15 @@ msgid "" 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" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2020-11-17 10:28+0000\n" "Last-Translator: mv87 \n" -"Language-Team: de \n" "Language: de\n" +"Language-Team: de \n" +"Plural-Forms: nplurals=2; plural=n != 1\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" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -39,14 +38,15 @@ msgid "" "click \"Join a Team\", and type \"onionshare\"." msgstr "" "OnionShare hat ein offenes Team auf Keybase, um über das Projekt zu " -"diskutieren, Fragen zu stellen, Ideen und Designs zu teilen und um Pläne für " -"die künftige Entwicklung zu schmieden. (Außerdem ist dies ein einfacher Weg, " -"um Ende zu Ende verschlüsselte Nachrichten, z.B. OnionShare-Adressen, an " -"andere Leute in der OnionShare-Community zu senden.) Um Keybase zu nutzen, " -"lade die Keybase-App `_ herunter, erstelle dir " -"einen Account und `trete diesem Team bei `_. In der App, gehe auf „Teams“, klicke auf “Team beitreten“ und " -"gib „onionshare“ ein." +"diskutieren, Fragen zu stellen, Ideen und Designs zu teilen und um Pläne " +"für die künftige Entwicklung zu schmieden. (Außerdem ist dies ein " +"einfacher Weg, um Ende zu Ende verschlüsselte Nachrichten, z.B. " +"OnionShare-Adressen, an andere Leute in der OnionShare-Community zu " +"senden.) Um Keybase zu nutzen, lade die Keybase-App " +"`_ herunter, erstelle dir einen Account und " +"`trete diesem Team bei `_. In der " +"App, gehe auf „Teams“, klicke auf “Team beitreten“ und gib „onionshare“ " +"ein." #: ../../source/develop.rst:12 msgid "" @@ -63,26 +63,29 @@ msgid "Contributing Code" msgstr "Code beitragen" #: ../../source/develop.rst:17 +#, fuzzy msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" -"OnionShares Quellcode findet sich in diesem git-Repository: https://github." -"com/micahflee/onionshare" +"OnionShares Quellcode findet sich in diesem git-Repository: " +"https://github.com/micahflee/onionshare" #: ../../source/develop.rst:19 +#, fuzzy msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" -"Wenn du Code zu OnionShare beitragen willst, solltest du dem Keybase-Team " -"beitreten und dort zur Diskussion stellen, was du gerne beitragen möchtest. " -"Du solltest auch einen Blick auf alle `offenen Issues `_ auf GitHub werfen, um zu sehen, ob dort etwas " -"für dich dabei ist, das du in Angriff nehmen möchtest." +"Wenn du Code zu OnionShare beitragen willst, solltest du dem Keybase-Team" +" beitreten und dort zur Diskussion stellen, was du gerne beitragen " +"möchtest. Du solltest auch einen Blick auf alle `offenen Issues " +"`_ auf GitHub werfen, um " +"zu sehen, ob dort etwas für dich dabei ist, das du in Angriff nehmen " +"möchtest." #: ../../source/develop.rst:22 msgid "" @@ -90,10 +93,10 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Wenn du bereit bist, Code beizusteuern, lege einen Pull-Request im GitHub-" -"Repository an und einer der Projektbetreuer wird einen Blick darüber werfen " -"und ggfs. Fragen stellen, Änderungen anfragen, ihn zurückweisen oder ihn in " -"das Projekt einpflegen." +"Wenn du bereit bist, Code beizusteuern, lege einen Pull-Request im " +"GitHub-Repository an und einer der Projektbetreuer wird einen Blick " +"darüber werfen und ggfs. Fragen stellen, Änderungen anfragen, ihn " +"zurückweisen oder ihn in das Projekt einpflegen." #: ../../source/develop.rst:27 msgid "Starting Development" @@ -102,17 +105,12 @@ msgstr "Mit der Entwicklung beginnen" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " "graphical version." msgstr "" -"OnionShare ist in Python geschrieben. Klone zunächst das git-Repository " -"unter https://github.com/micahflee/onionshare/ und lies in der ``cli/README." -"md``-Datei nach, wie du deine Entwicklungsumgebung für die Kommandozeilen-" -"Version aufsetzt; lies in der ``desktop/README.md``-Datei nach, wie du deine " -"Entwicklungsumgebung für die grafische Version aufsetzt." #: ../../source/develop.rst:32 msgid "" @@ -121,8 +119,8 @@ msgid "" "source tree." msgstr "" "Diese Dateien enthalten die notwendigen technischen Instruktionen und " -"Befehle, um die Abhängigkeiten für deine Plattform zu installieren,und um " -"OnionShare aus dem Sourcetree auszuführen." +"Befehle, um die Abhängigkeiten für deine Plattform zu installieren,und um" +" OnionShare aus dem Sourcetree auszuführen." #: ../../source/develop.rst:35 msgid "Debugging tips" @@ -141,13 +139,14 @@ msgid "" "reloaded), and other debug info. For example::" msgstr "" "Beim Entwickeln ist es hilfreich, OnionShare über die Kommandozeile " -"auszuführen und dabei die ``--verbose``- (oder ``-v``-) Flagge zu setzen. " -"Dadurch werden viele hilfreiche Nachrichten auf der Kommandozeile " +"auszuführen und dabei die ``--verbose``- (oder ``-v``-) Flagge zu setzen." +" Dadurch werden viele hilfreiche Nachrichten auf der Kommandozeile " "ausgegeben, zum Bespiel wenn bestimmte Objekte initialisiert wurden oder " -"wenn Ereignisse eintreten (Klicken von Buttons, Speichern oder Auffrischen " -"von Einstellungen o.ä.), sowie andere Debug-Informationen. Zum Beispiel::" +"wenn Ereignisse eintreten (Klicken von Buttons, Speichern oder " +"Auffrischen von Einstellungen o.ä.), sowie andere Debug-Informationen. " +"Zum Beispiel::" -#: ../../source/develop.rst:117 +#: ../../source/develop.rst:121 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" @@ -156,21 +155,21 @@ msgstr "" "``Common.log``-Methode aus ``onionshare/common.py`` ausführst. Zum " "Beispiel::" -#: ../../source/develop.rst:121 +#: ../../source/develop.rst:125 msgid "" "This can be useful when learning the chain of events that occur when " "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" "Das kann nützlich sein, wenn du die Abfolge von Events beim Benutzen der " -"Anwendung oder den Wert bestimmter Variablen vor oder nach deren Änderung " -"herausfinden möchtest." +"Anwendung oder den Wert bestimmter Variablen vor oder nach deren Änderung" +" herausfinden möchtest." -#: ../../source/develop.rst:124 +#: ../../source/develop.rst:128 msgid "Local Only" msgstr "Nur lokal" -#: ../../source/develop.rst:126 +#: ../../source/develop.rst:130 msgid "" "Tor is slow, and it's often convenient to skip starting onion services " "altogether during development. You can do this with the ``--local-only`` " @@ -180,20 +179,21 @@ msgstr "" "Dienste zu starten. Dies kannst du mit der ``--local-only``-Flagge tun. " "Zum Beispiel::" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:167 msgid "" "In this case, you load the URL ``http://onionshare:train-" "system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" " using the Tor Browser." msgstr "" -"In diesem Fall lädst du die URL ``http://onionshare:eject-snack@127.0.0." -"1:17614`` in einem normalen Webbrowser wie Firefox anstelle des Tor Browsers." +"In diesem Fall lädst du die URL ``http://onionshare:eject-" +"snack@127.0.0.1:17614`` in einem normalen Webbrowser wie Firefox anstelle" +" des Tor Browsers." -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:170 msgid "Contributing Translations" msgstr "Übersetzungen beitragen" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:172 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -202,55 +202,57 @@ msgid "" "needed." msgstr "" "Hilf mit, OnionShare für die Leute einfacher zu benutzen, vertrauter und " -"einladender zu machen, indem du es auf `Hosted Weblate `_ übersetzt. Halte „OnionShare“ immer in " -"lateinischen Lettern und nutze „OnionShare (localname)“ bei Bedarf." - -#: ../../source/develop.rst:171 -msgid "To help translate, make a Hosted Weblate account and start contributing." -msgstr "" -"Um bei der Übersetzung mitzuhelfen, erstelle dir ein Benutzerkonto für ``" -"Hosted Weblate``, und schon kann es losgehen." +"einladender zu machen, indem du es auf `Hosted Weblate " +"`_ übersetzt. Halte " +"„OnionShare“ immer in lateinischen Lettern und nutze „OnionShare " +"(localname)“ bei Bedarf." #: ../../source/develop.rst:174 -msgid "Suggestions for Original English Strings" +msgid "To help translate, make a Hosted Weblate account and start contributing." msgstr "" -"Vorschläge für die ursprüngliche englischsprache Zeichenketten („strings“)" +"Um bei der Übersetzung mitzuhelfen, erstelle dir ein Benutzerkonto für " +"``Hosted Weblate``, und schon kann es losgehen." -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:177 +msgid "Suggestions for Original English Strings" +msgstr "Vorschläge für die ursprüngliche englischsprache Zeichenketten („strings“)" + +#: ../../source/develop.rst:179 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." msgstr "" -"Manchmal sind die originalen englischsprachigen Zeichenketten falschen oder " -"stimmen nicht zwischen Anwendung und dem Handbuch überein." +"Manchmal sind die originalen englischsprachigen Zeichenketten falschen " +"oder stimmen nicht zwischen Anwendung und dem Handbuch überein." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:181 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " "developers see the suggestion, and can potentially modify the string via " "the usual code review processes." msgstr "" -"Verbesserungen an den originalen Zeichenketten können vorgeschlagen werden, " -"indem du @kingu in deinem Weblate-Kommentar hinzufügst, oder indem du ein " -"Issue oder einen Pull Request auf GitHub anlegst. Letzterer Weg stellt " -"sicher, dass alle Hauptentwickler den Vorschlag sehen und die Zeichenkette " -"gegebenenfalls im Rahmen des üblichen Code-Review-Vorgangs abändern können." +"Verbesserungen an den originalen Zeichenketten können vorgeschlagen " +"werden, indem du @kingu in deinem Weblate-Kommentar hinzufügst, oder " +"indem du ein Issue oder einen Pull Request auf GitHub anlegst. Letzterer " +"Weg stellt sicher, dass alle Hauptentwickler den Vorschlag sehen und die " +"Zeichenkette gegebenenfalls im Rahmen des üblichen Code-Review-Vorgangs " +"abändern können." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:185 msgid "Status of Translations" msgstr "Übersetzungsstatus" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:186 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" "Hier siehst du den aktuellen Stand der Übersetzungen. Wenn du eine " -"Übersetzung in einer Sprache beginnen möchtest, die hier nicht gelistet ist, " -"schreibe uns bitte auf der Mailinglist: onionshare-dev@lists.riseup.net" +"Übersetzung in einer Sprache beginnen möchtest, die hier nicht gelistet " +"ist, schreibe uns bitte auf der Mailinglist: onionshare-" +"dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" @@ -456,3 +458,26 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "Tu dasselbe für die anderen noch nicht übersetzten Zeilen." + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" +#~ "OnionShare ist in Python geschrieben. " +#~ "Klone zunächst das git-Repository unter" +#~ " https://github.com/micahflee/onionshare/ und lies " +#~ "in der ``cli/README.md``-Datei nach, wie " +#~ "du deine Entwicklungsumgebung für die " +#~ "Kommandozeilen-Version aufsetzt; lies in " +#~ "der ``desktop/README.md``-Datei nach, wie du" +#~ " deine Entwicklungsumgebung für die " +#~ "grafische Version aufsetzt." + diff --git a/docs/source/locale/de/LC_MESSAGES/help.po b/docs/source/locale/de/LC_MESSAGES/help.po index f8bae48b..4ecb3679 100644 --- a/docs/source/locale/de/LC_MESSAGES/help.po +++ b/docs/source/locale/de/LC_MESSAGES/help.po @@ -7,16 +7,15 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2020-11-19 08:28+0000\n" "Last-Translator: Allan Nordhøy \n" -"Language-Team: de \n" "Language: de\n" +"Language-Team: de \n" +"Plural-Forms: nplurals=2; plural=n != 1\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" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -32,26 +31,27 @@ 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 "" -"Auf dieser Webseite finden sich zahlreiche Anleitungen, wie man OnionShare " -"benutzt. Sieh dort zuerst alle Kapitel durch, ob sie alle deine Fragen " -"beantworten." +"Auf dieser Webseite finden sich zahlreiche Anleitungen, wie man " +"OnionShare benutzt. Sieh dort zuerst alle Kapitel durch, ob sie alle " +"deine Fragen beantworten." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" msgstr "Siehe die Problemsektion auf GitHub durch" #: ../../source/help.rst:12 +#, fuzzy msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" -"Falls du auf dieser Webseite keine Lösung findest, siehe bitte die `GitHub " -"issues `_ durch. " -"Möglicherweise ist bereits jemand anderes auf das gleiche Problem gestoßen " -"und hat es den Entwicklern gemeldet, und vielleicht wurde dort sogar schon " -"eine Lösung gepostet." +"Falls du auf dieser Webseite keine Lösung findest, siehe bitte die " +"`GitHub issues `_ durch. " +"Möglicherweise ist bereits jemand anderes auf das gleiche Problem " +"gestoßen und hat es den Entwicklern gemeldet, und vielleicht wurde dort " +"sogar schon eine Lösung gepostet." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -61,15 +61,10 @@ msgstr "Selber ein Problem melden" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" -"Falls du keine Lösung zu deinem Problem findest, eine Frage stellen möchtest " -"oder einen Vorschlag für ein Feature hast, `erstelle ein Ticket auf GitHub " -"`_. Hierfür benötigt man`" -"einen GitHub-Account `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" @@ -85,3 +80,25 @@ msgstr "" #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "Falls du Hilfe mit OnionShare benötigst, kannst du Folgendes tun." + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" +#~ "Falls du keine Lösung zu deinem " +#~ "Problem findest, eine Frage stellen " +#~ "möchtest oder einen Vorschlag für ein" +#~ " Feature hast, `erstelle ein Ticket " +#~ "auf GitHub " +#~ "`_. Hierfür" +#~ " benötigt man`einen GitHub-Account " +#~ "`_." + diff --git a/docs/source/locale/el/LC_MESSAGES/develop.po b/docs/source/locale/el/LC_MESSAGES/develop.po index 3fb9a79d..c844e2e9 100644 --- a/docs/source/locale/el/LC_MESSAGES/develop.po +++ b/docs/source/locale/el/LC_MESSAGES/develop.po @@ -7,16 +7,15 @@ msgid "" 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" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2021-05-11 20:47+0000\n" "Last-Translator: Panagiotis Vasilopoulos \n" -"Language-Team: LANGUAGE \n" "Language: el\n" +"Language-Team: el \n" +"Plural-Forms: nplurals=2; plural=n != 1\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/develop.rst:2 @@ -39,14 +38,15 @@ msgid "" "click \"Join a Team\", and type \"onionshare\"." msgstr "" "Το OnionShare έχει ένα κανάλι συζητήσεων στο Keybase για να μπορέσει ο " -"καθένας να μιλήσει για αυτό, να υποβάλει ερωτήσεις, να μοιραστεί ιδέες και " -"σχέδια και να κάνει μελλοντικά σχέδια πάνω σε αυτό. (Είναι επίσης ένας " -"εύκολος τρόπος για την αποστολή κρυπτογραφημένων μηνυμάτων στην κοινότητα " -"του OnionShare, όπως οι διευθύνσεις OnionShare.) Για να χρησιμοποιήσετε το " -"Keybase, κατεβάστε την `εφαρμογή Keybase `_ , " -"δημιουργήστε λογαριασμό και `εγγραφείτε στην ομάδα `_. Μέσα στην εφαρμογή, μεταβείτε στην ενότητα \"Ομάδες\", κάντε " -"κλικ στην επιλογή \"Συμμετοχή σε ομάδα\" και πληκτρολογήστε \"onionshare\"." +"καθένας να μιλήσει για αυτό, να υποβάλει ερωτήσεις, να μοιραστεί ιδέες " +"και σχέδια και να κάνει μελλοντικά σχέδια πάνω σε αυτό. (Είναι επίσης " +"ένας εύκολος τρόπος για την αποστολή κρυπτογραφημένων μηνυμάτων στην " +"κοινότητα του OnionShare, όπως οι διευθύνσεις OnionShare.) Για να " +"χρησιμοποιήσετε το Keybase, κατεβάστε την `εφαρμογή Keybase " +"`_ , δημιουργήστε λογαριασμό και `εγγραφείτε" +" στην ομάδα `_. Μέσα στην εφαρμογή, " +"μεταβείτε στην ενότητα \"Ομάδες\", κάντε κλικ στην επιλογή \"Συμμετοχή σε" +" ομάδα\" και πληκτρολογήστε \"onionshare\"." #: ../../source/develop.rst:12 msgid "" @@ -54,35 +54,37 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"Το OnionShare διαθέτει `λίστα ηλεκτρονικού ταχυδρομίου `_ για προγραμματιστές και σχεδιαστές με " -"σκοό την ανταλλαγή απόψεων." +"Το OnionShare διαθέτει `λίστα ηλεκτρονικού ταχυδρομίου " +"`_ για " +"προγραμματιστές και σχεδιαστές με σκοό την ανταλλαγή απόψεων." #: ../../source/develop.rst:15 msgid "Contributing Code" msgstr "Συνεισφορά κώδικα" #: ../../source/develop.rst:17 +#, fuzzy msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" -"Ο πηγαίος κώδικας του OnionShare βρίσκεται στο αποθετήριο Git: https://github" -".com/micahflee/onionshare" +"Ο πηγαίος κώδικας του OnionShare βρίσκεται στο αποθετήριο Git: " +"https://github.com/micahflee/onionshare" #: ../../source/develop.rst:19 +#, fuzzy msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" -"Εάν θέλετε να συνεισφέρετε με κώδικα στο OnionShare, θα πρέπει να εγγραφείτε " -"στην ομάδα του Keybase για την υποβολή σχετικών ερωτήσεων. Θα πρέπει επίσης " -"να έχετε διαβάσει όλα τα `ανοιχτά ζητήματα `_ στο GitHub για να δείτε αν υπάρχουν κάποια που θέλετε " -"να συμμετέχετε." +"Εάν θέλετε να συνεισφέρετε με κώδικα στο OnionShare, θα πρέπει να " +"εγγραφείτε στην ομάδα του Keybase για την υποβολή σχετικών ερωτήσεων. Θα " +"πρέπει επίσης να έχετε διαβάσει όλα τα `ανοιχτά ζητήματα " +"`_ στο GitHub για να " +"δείτε αν υπάρχουν κάποια που θέλετε να συμμετέχετε." #: ../../source/develop.rst:22 msgid "" @@ -90,10 +92,10 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Όταν είστε έτοιμοι να συνεισφέρετε κώδικα, ανοίξτε ένα αίτημα στο αποθετήριο " -"του GitHub και ένας διαχειριστής του έργου θα το εξετάσει και πιθανώς θα " -"υποβάλει ερωτήσεις, θα ζητήσει αλλαγές, θα τον απορρίψει ή θα τον " -"συγχωνεύσει στο έργο." +"Όταν είστε έτοιμοι να συνεισφέρετε κώδικα, ανοίξτε ένα αίτημα στο " +"αποθετήριο του GitHub και ένας διαχειριστής του έργου θα το εξετάσει και " +"πιθανώς θα υποβάλει ερωτήσεις, θα ζητήσει αλλαγές, θα τον απορρίψει ή θα " +"τον συγχωνεύσει στο έργο." #: ../../source/develop.rst:27 msgid "Starting Development" @@ -102,17 +104,12 @@ msgstr "Έναρξη ανάπτυξης" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " "graphical version." msgstr "" -"Το OnionShare αναπτύσετε με το Python. Για να ξεκινήσετε, αντιγράψτε το " -"αποθετήριο από https://github.com/micahflee/onionshare/ και συμβουλευτείτε " -"το αρχείο ``cli/README.md`` για να μάθετε περισσότερα για τη ρύθμιση της " -"έκδοσης περιβάλλοντος γραμμής εντολών και του αρχείου ``desktop/README.md`` " -"για την έκδοση γραφικού περιβάλλοντος." #: ../../source/develop.rst:32 msgid "" @@ -120,8 +117,9 @@ msgid "" "install dependencies for your platform, and to run OnionShare from the " "source tree." msgstr "" -"Αυτά τα αρχεία περιέχουν τις απαραίτητες οδηγίες και εντολές για εγκατάσταση " -"στην πλατφόρμα σας και την εκτέλεση του OnionShare από τον πηγαίο κώδικα." +"Αυτά τα αρχεία περιέχουν τις απαραίτητες οδηγίες και εντολές για " +"εγκατάσταση στην πλατφόρμα σας και την εκτέλεση του OnionShare από τον " +"πηγαίο κώδικα." #: ../../source/develop.rst:35 msgid "Debugging tips" @@ -139,13 +137,14 @@ msgid "" "initialized, when events occur (like buttons clicked, settings saved or " "reloaded), and other debug info. For example::" msgstr "" -"Όταν προγραμματίζεται, προτείνεται η εκτέλεση του OnionShare από τερματικό " -"και τη χρήση εντολής με ``--verbose`` (or ``-v``). Έτσι εμφανίζονται αρκετές " -"πληροφορίες στο τερματικό όπως την επίδραση της εντολής στα διάφορα " -"αντικείμενα, όπως τι σημβαίνει (κάνοντας κλικ στα κουμπιά, αποθήκευση " -"ρυθμίσεων ή ανανέωση) και άλλων πληροφοριών. Για παράδειγμα::" +"Όταν προγραμματίζεται, προτείνεται η εκτέλεση του OnionShare από " +"τερματικό και τη χρήση εντολής με ``--verbose`` (or ``-v``). Έτσι " +"εμφανίζονται αρκετές πληροφορίες στο τερματικό όπως την επίδραση της " +"εντολής στα διάφορα αντικείμενα, όπως τι σημβαίνει (κάνοντας κλικ στα " +"κουμπιά, αποθήκευση ρυθμίσεων ή ανανέωση) και άλλων πληροφοριών. Για " +"παράδειγμα::" -#: ../../source/develop.rst:117 +#: ../../source/develop.rst:121 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" @@ -154,45 +153,45 @@ msgstr "" "εκτέλεση της μεθόδου ``Common.log`` από ``onionshare/common.py``. Για " "παράδειγμα::" -#: ../../source/develop.rst:121 +#: ../../source/develop.rst:125 msgid "" "This can be useful when learning the chain of events that occur when " "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" -"Αυτό είναι χρήσιμο όταν μαθένετ για την αλυσίδα των γεγονότων που συμβαίνουν " -"κατά τη χρήση του OnionShare, ή την τιμή ορισμένων μεταβλητών πριν και μετά " -"την επεξεργασία τους." +"Αυτό είναι χρήσιμο όταν μαθένετ για την αλυσίδα των γεγονότων που " +"συμβαίνουν κατά τη χρήση του OnionShare, ή την τιμή ορισμένων μεταβλητών " +"πριν και μετά την επεξεργασία τους." -#: ../../source/develop.rst:124 +#: ../../source/develop.rst:128 msgid "Local Only" msgstr "Μόνο τοπικά" -#: ../../source/develop.rst:126 +#: ../../source/develop.rst:130 msgid "" "Tor is slow, and it's often convenient to skip starting onion services " "altogether during development. You can do this with the ``--local-only`` " "flag. For example::" msgstr "" "Το Tor είναι αργό και είναι συχνά χρήσιμο να παραλείψετε την έναρξη των " -"υπηρεσιών onion κατά τη διάρκεια της ανάπτυξης. Μπορείτε να το κάνετε αυτό " -"προσθέτοντας το ``--local-only``. Για παράδειγμα::" +"υπηρεσιών onion κατά τη διάρκεια της ανάπτυξης. Μπορείτε να το κάνετε " +"αυτό προσθέτοντας το ``--local-only``. Για παράδειγμα::" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:167 msgid "" "In this case, you load the URL ``http://onionshare:train-" "system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" " using the Tor Browser." msgstr "" "Σε αυτή την περίπτωση, θα φορτώσει το URL ``http://onionshare:train-" -"system@127.0.0.1:17635`` σε κανονικό περιηγητή όπως το Firefox αντί του Tor " -"Browser." +"system@127.0.0.1:17635`` σε κανονικό περιηγητή όπως το Firefox αντί του " +"Tor Browser." -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:170 msgid "Contributing Translations" msgstr "Συνεισφορά μεταφράσεων" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:172 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -203,20 +202,20 @@ msgstr "" "Βοηθήστε το OnionShare να είναι ευκολότερο στη χρήση, πιο οικείο και " "φιλόξενο για τους χρήστες, μεταφράζοντάς το στο `Hosted Weblate " "`_. Διατηρείτε πάντα το " -"\"OnionShare\" με λατινικά γράμματα και χρησιμοποιήστε το \"OnionShare (" -"τοπικο όνομα)\" εάν χρειάζεται." - -#: ../../source/develop.rst:171 -msgid "To help translate, make a Hosted Weblate account and start contributing." -msgstr "" -"Για να βοηθήσετε στη μετάφραση, δημιουργήστε ένα λογαριασμό στο Weblate και " -"αρχίστε τη συνεισφορά σας." +"\"OnionShare\" με λατινικά γράμματα και χρησιμοποιήστε το \"OnionShare " +"(τοπικο όνομα)\" εάν χρειάζεται." #: ../../source/develop.rst:174 +msgid "To help translate, make a Hosted Weblate account and start contributing." +msgstr "" +"Για να βοηθήσετε στη μετάφραση, δημιουργήστε ένα λογαριασμό στο Weblate " +"και αρχίστε τη συνεισφορά σας." + +#: ../../source/develop.rst:177 msgid "Suggestions for Original English Strings" msgstr "Προτάσεις αυθεντικών Αγγλικών ορισμών" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:179 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." @@ -224,7 +223,7 @@ msgstr "" "Κάποιες φορές οι πρωτότυποι Αγγλικοί ορισμοί είναι λάθος ή δεν συμφωνούν " "μεταξύ της εφαρμογής και της τεκμηρίωσης." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:181 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " @@ -232,15 +231,15 @@ msgid "" "the usual code review processes." msgstr "" "Για βελτιώσεις ορισμών του αρχείου προέλευσης, προσθέστε το @kingu στο " -"σχόλιό σας στο Weblate ή ανοίξτε ένα ζήτημα στο GitHub. Έτσι διασφαλίζετε " -"ότι όλοι οι προγραμματιστές θα δούν την πρόταση και μπορούν ενδεχομένως να " -"προβούν σε τροποποίηση μέσω των συνήθων διαδικασιών ελέγχου κώδικα." +"σχόλιό σας στο Weblate ή ανοίξτε ένα ζήτημα στο GitHub. Έτσι διασφαλίζετε" +" ότι όλοι οι προγραμματιστές θα δούν την πρόταση και μπορούν ενδεχομένως " +"να προβούν σε τροποποίηση μέσω των συνήθων διαδικασιών ελέγχου κώδικα." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:185 msgid "Status of Translations" msgstr "Κατάσταση μεταφράσεων" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:186 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " @@ -465,3 +464,26 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "" + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" +#~ "Το OnionShare αναπτύσετε με το Python." +#~ " Για να ξεκινήσετε, αντιγράψτε το " +#~ "αποθετήριο από https://github.com/micahflee/onionshare/" +#~ " και συμβουλευτείτε το αρχείο " +#~ "``cli/README.md`` για να μάθετε περισσότερα" +#~ " για τη ρύθμιση της έκδοσης " +#~ "περιβάλλοντος γραμμής εντολών και του " +#~ "αρχείου ``desktop/README.md`` για την έκδοση" +#~ " γραφικού περιβάλλοντος." + diff --git a/docs/source/locale/el/LC_MESSAGES/help.po b/docs/source/locale/el/LC_MESSAGES/help.po index 62e20fd7..d411297d 100644 --- a/docs/source/locale/el/LC_MESSAGES/help.po +++ b/docs/source/locale/el/LC_MESSAGES/help.po @@ -7,16 +7,15 @@ msgid "" 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" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2020-11-28 11:28+0000\n" "Last-Translator: george k \n" -"Language-Team: LANGUAGE \n" "Language: el\n" +"Language-Team: el \n" +"Plural-Forms: nplurals=2; plural=n != 1\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" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -32,23 +31,24 @@ 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 "" -"Θα βρείτε οδηγίες σχετικά με τη χρήση του OnionShare. Ερευνήστε πρώτα όλες " -"τις ενότητες για να βρείτε σχετικές απαντήσεις." +"Θα βρείτε οδηγίες σχετικά με τη χρήση του OnionShare. Ερευνήστε πρώτα " +"όλες τις ενότητες για να βρείτε σχετικές απαντήσεις." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" msgstr "Ελέγξτε τα ζητήματα στο GitHub" #: ../../source/help.rst:12 +#, fuzzy msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" "Εάν δεν υπάρχει στην ιστοσελίδα, παρακαλούμε ελέγξτε στο `GitHub issues " -"`_. Είναι πιθανό και κάποιος " -"άλλος να αντιμετώπισε το ίδιο πρόβλημα και συνομίλησε με τους " +"`_. Είναι πιθανό και " +"κάποιος άλλος να αντιμετώπισε το ίδιο πρόβλημα και συνομίλησε με τους " "προγραμματιστές ή να δημοσίευσε τη λύση." #: ../../source/help.rst:15 @@ -59,15 +59,10 @@ msgstr "Υποβάλετε ένα ζήτημα" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" -"Εάν δεν μπορείτε να βρείτε λύση ή επιθυμείτε να υποβάλετε ερώτημα ή πρόταση " -"νέας λειτουργίας, παρακαλούμε για την `υποβολή ζητήματος `_. Απαιτείται η `δημιουργία λογαριασμού " -"GitHub `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" @@ -78,8 +73,8 @@ msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" -"Δείτε:ref:`collaborating` σχετικά με τον τρόπο συμμετοχής στην ομάδα Keybase " -"για τη συζήτηση του έργου." +"Δείτε:ref:`collaborating` σχετικά με τον τρόπο συμμετοχής στην ομάδα " +"Keybase για τη συζήτηση του έργου." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" @@ -132,3 +127,23 @@ msgstr "" #~ "that we use to discuss the " #~ "project." #~ msgstr "" + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" +#~ "Εάν δεν μπορείτε να βρείτε λύση ή" +#~ " επιθυμείτε να υποβάλετε ερώτημα ή " +#~ "πρόταση νέας λειτουργίας, παρακαλούμε για " +#~ "την `υποβολή ζητήματος " +#~ "`_. " +#~ "Απαιτείται η `δημιουργία λογαριασμού GitHub" +#~ " `_." + diff --git a/docs/source/locale/en/LC_MESSAGES/develop.po b/docs/source/locale/en/LC_MESSAGES/develop.po index 0de31f00..981a5b2f 100644 --- a/docs/source/locale/en/LC_MESSAGES/develop.po +++ b/docs/source/locale/en/LC_MESSAGES/develop.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-15 14:43-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -51,7 +51,7 @@ msgstr "" #: ../../source/develop.rst:17 msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" #: ../../source/develop.rst:19 @@ -59,7 +59,7 @@ msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" @@ -77,7 +77,7 @@ msgstr "" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " @@ -108,42 +108,42 @@ msgid "" "reloaded), and other debug info. For example::" msgstr "" -#: ../../source/develop.rst:117 +#: ../../source/develop.rst:121 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" msgstr "" -#: ../../source/develop.rst:121 +#: ../../source/develop.rst:125 msgid "" "This can be useful when learning the chain of events that occur when " "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" -#: ../../source/develop.rst:124 +#: ../../source/develop.rst:128 msgid "Local Only" msgstr "" -#: ../../source/develop.rst:126 +#: ../../source/develop.rst:130 msgid "" "Tor is slow, and it's often convenient to skip starting onion services " "altogether during development. You can do this with the ``--local-only`` " "flag. For example::" msgstr "" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:167 msgid "" "In this case, you load the URL ``http://onionshare:train-" "system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" " using the Tor Browser." msgstr "" -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:170 msgid "Contributing Translations" msgstr "" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:172 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -152,21 +152,21 @@ msgid "" "needed." msgstr "" -#: ../../source/develop.rst:171 +#: ../../source/develop.rst:174 msgid "To help translate, make a Hosted Weblate account and start contributing." msgstr "" -#: ../../source/develop.rst:174 +#: ../../source/develop.rst:177 msgid "Suggestions for Original English Strings" msgstr "" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:179 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." msgstr "" -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:181 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " @@ -174,11 +174,11 @@ msgid "" "the usual code review processes." msgstr "" -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:185 msgid "Status of Translations" msgstr "" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:186 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " @@ -401,3 +401,34 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "" +#~ msgid "" +#~ "OnionShare source code is to be " +#~ "found in this Git repository: " +#~ "https://github.com/micahflee/onionshare" +#~ msgstr "" + +#~ msgid "" +#~ "If you'd like to contribute code " +#~ "to OnionShare, it helps to join " +#~ "the Keybase team and ask questions " +#~ "about what you're thinking of working" +#~ " on. You should also review all " +#~ "of the `open issues " +#~ "`_ on " +#~ "GitHub to see if there are any " +#~ "you'd like to tackle." +#~ msgstr "" + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" + diff --git a/docs/source/locale/en/LC_MESSAGES/help.po b/docs/source/locale/en/LC_MESSAGES/help.po index d1eb81e9..2d8bbb2e 100644 --- a/docs/source/locale/en/LC_MESSAGES/help.po +++ b/docs/source/locale/en/LC_MESSAGES/help.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -38,9 +38,9 @@ msgstr "" #: ../../source/help.rst:12 msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" #: ../../source/help.rst:15 @@ -51,7 +51,7 @@ msgstr "" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" @@ -118,3 +118,24 @@ msgstr "" #~ "project." #~ msgstr "" +#~ msgid "" +#~ "If it isn't on the website, please" +#~ " check the `GitHub issues " +#~ "`_. It's " +#~ "possible someone else has encountered " +#~ "the same problem and either raised " +#~ "it with the developers, or maybe " +#~ "even posted a solution." +#~ msgstr "" + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" + diff --git a/docs/source/locale/es/LC_MESSAGES/develop.po b/docs/source/locale/es/LC_MESSAGES/develop.po index bb0ec119..6f40b676 100644 --- a/docs/source/locale/es/LC_MESSAGES/develop.po +++ b/docs/source/locale/es/LC_MESSAGES/develop.po @@ -7,16 +7,15 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2020-12-04 23:29+0000\n" "Last-Translator: Zuhualime Akoochimoya \n" -"Language-Team: none\n" "Language: es\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\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" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -38,14 +37,15 @@ msgid "" "`_. Within the app, go to \"Teams\", " "click \"Join a Team\", and type \"onionshare\"." msgstr "" -"OnionShare tiene un equipo Keybase abierto para discutir el proyecto, hacer " -"preguntas, compartir ideas y diseños, y hacer planes para futuro desarrollo. " -"(También es una manera fácil de enviar mensajes directos cifrados de extremo " -"a extremo a otros en la comunidad OnionShare, como por ejemplo, direcciones " -"OnionShare.) Para usar Keybase, descarga la `aplicación Keybase " -"`_, crea una cuenta, y `únete a este equipo " -"`_. Dentro de la aplicación, vé hacia " -"\"Equipos\", haz clic en \"Unirse a un Equipo\", y tipea \"onionshare\"." +"OnionShare tiene un equipo Keybase abierto para discutir el proyecto, " +"hacer preguntas, compartir ideas y diseños, y hacer planes para futuro " +"desarrollo. (También es una manera fácil de enviar mensajes directos " +"cifrados de extremo a extremo a otros en la comunidad OnionShare, como " +"por ejemplo, direcciones OnionShare.) Para usar Keybase, descarga la " +"`aplicación Keybase `_, crea una cuenta, y " +"`únete a este equipo `_. Dentro de la" +" aplicación, vé hacia \"Equipos\", haz clic en \"Unirse a un Equipo\", y " +"tipea \"onionshare\"." #: ../../source/develop.rst:12 msgid "" @@ -62,26 +62,28 @@ msgid "Contributing Code" msgstr "Contribuyendo código" #: ../../source/develop.rst:17 +#, fuzzy msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" -"El código fuente de OnionShare está en este repositorio git: https://github." -"com/micahflee/onionshare" +"El código fuente de OnionShare está en este repositorio git: " +"https://github.com/micahflee/onionshare" #: ../../source/develop.rst:19 +#, fuzzy msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" -"Si quisieras contribuir código a OnionShare, ayuda unirse al equipo Keybase " -"y hacer preguntas acerca de en qué estás pensando trabajar. También deberías " -"revisar todas las `cuestiones abiertas `_ en GitHub para ver si hay alguna a la cual te gustaría " -"encarar." +"Si quisieras contribuir código a OnionShare, ayuda unirse al equipo " +"Keybase y hacer preguntas acerca de en qué estás pensando trabajar. " +"También deberías revisar todas las `cuestiones abiertas " +"`_ en GitHub para ver si " +"hay alguna a la cual te gustaría encarar." #: ../../source/develop.rst:22 msgid "" @@ -89,10 +91,10 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Cuando estés listo para contribuir código, abre una solicitud de tiraje en " -"el repositorio GitHub, y uno de los mantenedores del proyecto la revisará, y " -"posiblemente haga preguntas, solicite cambios, la rechace o la incorpore " -"dentro del proyecto." +"Cuando estés listo para contribuir código, abre una solicitud de tiraje " +"en el repositorio GitHub, y uno de los mantenedores del proyecto la " +"revisará, y posiblemente haga preguntas, solicite cambios, la rechace o " +"la incorpore dentro del proyecto." #: ../../source/develop.rst:27 msgid "Starting Development" @@ -101,17 +103,12 @@ msgstr "Iniciando el desarrollo" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " "graphical version." msgstr "" -"OnionShare está desarrollado en Python. Para arrancar, clona el repositorio " -"Git en https://github.com/micahflee/onionshare/ y luego consulta el archivo " -"``cli/README.md`` para aprender cómo configurar tu entorno de desarrollo " -"para la versión de línea de comando, y el archivo ``desktop/README.md`` para " -"aprender cómo hacerlo para la versión gráfica." #: ../../source/develop.rst:32 msgid "" @@ -139,14 +136,14 @@ msgid "" "initialized, when events occur (like buttons clicked, settings saved or " "reloaded), and other debug info. For example::" msgstr "" -"Durante el desarrollo, es conveniente ejecutar OnionShare desde un terminal " -"y agregar el modificador ``--verbose`` (o ``-v``) al comando. Esto imprime " -"una cantidad de mensajes útiles a la terminal, tales como cuándo son " -"inicializados ciertos objetos, cuándo ocurren eventos (como botones " -"cliqueados, ajustes guardados o recargados), y otra información de " -"depuración. Por ejemplo::" +"Durante el desarrollo, es conveniente ejecutar OnionShare desde un " +"terminal y agregar el modificador ``--verbose`` (o ``-v``) al comando. " +"Esto imprime una cantidad de mensajes útiles a la terminal, tales como " +"cuándo son inicializados ciertos objetos, cuándo ocurren eventos (como " +"botones cliqueados, ajustes guardados o recargados), y otra información " +"de depuración. Por ejemplo::" -#: ../../source/develop.rst:117 +#: ../../source/develop.rst:121 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" @@ -154,21 +151,21 @@ msgstr "" "Puedes agregar tus propios mensajes de depuración ejecutando el método " "``Common.log`` desde ``onionshare/common.py``. Por ejemplo:" -#: ../../source/develop.rst:121 +#: ../../source/develop.rst:125 msgid "" "This can be useful when learning the chain of events that occur when " "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" -"Esto puede ser útil para conocer la cadena de eventos que ocurre cuando usas " -"OnionShare, o el valor de ciertas variables antes y después de que sean " -"manipuladas." +"Esto puede ser útil para conocer la cadena de eventos que ocurre cuando " +"usas OnionShare, o el valor de ciertas variables antes y después de que " +"sean manipuladas." -#: ../../source/develop.rst:124 +#: ../../source/develop.rst:128 msgid "Local Only" msgstr "Solo local" -#: ../../source/develop.rst:126 +#: ../../source/develop.rst:130 msgid "" "Tor is slow, and it's often convenient to skip starting onion services " "altogether during development. You can do this with the ``--local-only`` " @@ -178,21 +175,21 @@ msgstr "" "onion sin excepción durante el desarrollo. Puedes hacer esto con el " "modoficador ``--local-only``. Por ejemplo:" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:167 msgid "" "In this case, you load the URL ``http://onionshare:train-" "system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" " using the Tor Browser." msgstr "" -"En este caso, cargas el URL ``http://onionshare:train-system@127.0.0." -"1:17635`` en un navegador web normal como Firefox, en vez de usar al " -"Navegador Tor." +"En este caso, cargas el URL ``http://onionshare:train-" +"system@127.0.0.1:17635`` en un navegador web normal como Firefox, en vez " +"de usar al Navegador Tor." -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:170 msgid "Contributing Translations" msgstr "Contribuyendo traducciones" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:172 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -200,22 +197,23 @@ msgid "" "\"OnionShare\" in latin letters, and use \"OnionShare (localname)\" if " "needed." msgstr "" -"Ayuda a que OnionShare sea más fácil de usar, y más familiar y amigable para " -"las personas, traduciéndolo en `Hosted Weblate `_. Siempre mantén \"OnionShare\" en el alfabeto " -"latino, y usa \"OnionShare (nombre local)\" si fuera necesario." +"Ayuda a que OnionShare sea más fácil de usar, y más familiar y amigable " +"para las personas, traduciéndolo en `Hosted Weblate " +"`_. Siempre mantén " +"\"OnionShare\" en el alfabeto latino, y usa \"OnionShare (nombre local)\"" +" si fuera necesario." -#: ../../source/develop.rst:171 +#: ../../source/develop.rst:174 msgid "To help translate, make a Hosted Weblate account and start contributing." msgstr "" "Para ayudar a traducir, crea una cuenta Hosted Weblate y empieza a " "contribuir." -#: ../../source/develop.rst:174 +#: ../../source/develop.rst:177 msgid "Suggestions for Original English Strings" msgstr "Sugerencias para cadenas de caracteres en el original en Inglés" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:179 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." @@ -223,32 +221,32 @@ msgstr "" "A veces, las cadenas de caracteres en Inglés están equivocadas, o no se " "corresponden entre la aplicación y la documentación." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:181 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " "developers see the suggestion, and can potentially modify the string via " "the usual code review processes." msgstr "" -"Propone mejoras en las cadenas fuente añadiendo @kingu a tu comentario en " -"Weblate, o abre una cuestión o solicitud de tiraje en GitHub. Esta última " -"asegura que todos los desarrolladores de nivel superior vean las " +"Propone mejoras en las cadenas fuente añadiendo @kingu a tu comentario en" +" Weblate, o abre una cuestión o solicitud de tiraje en GitHub. Esta " +"última asegura que todos los desarrolladores de nivel superior vean las " "sugerencias, y potencialmente puede modificar la cadena a través de los " "procesos usuales de revisión de código." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:185 msgid "Status of Translations" msgstr "Estado de las traducciones" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:186 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" "Aquí está el estado actual de las traducciones. Si quieres empezar una " -"traducción en un lenguaje que no se encuentra aquí, por favor escríbenos a " -"la lista de correo: onionshare-dev@lists.riseup.net" +"traducción en un lenguaje que no se encuentra aquí, por favor escríbenos " +"a la lista de correo: onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare has an open Keybase team " @@ -442,3 +440,26 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "Haz lo mismo para otras líneas no traducidas." + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" +#~ "OnionShare está desarrollado en Python. " +#~ "Para arrancar, clona el repositorio Git" +#~ " en https://github.com/micahflee/onionshare/ y " +#~ "luego consulta el archivo ``cli/README.md``" +#~ " para aprender cómo configurar tu " +#~ "entorno de desarrollo para la versión" +#~ " de línea de comando, y el " +#~ "archivo ``desktop/README.md`` para aprender " +#~ "cómo hacerlo para la versión gráfica." + diff --git a/docs/source/locale/es/LC_MESSAGES/help.po b/docs/source/locale/es/LC_MESSAGES/help.po index eb301797..37e9697a 100644 --- a/docs/source/locale/es/LC_MESSAGES/help.po +++ b/docs/source/locale/es/LC_MESSAGES/help.po @@ -7,16 +7,15 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2020-12-01 17:29+0000\n" "Last-Translator: Zuhualime Akoochimoya \n" -"Language-Team: none\n" "Language: es\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\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" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -32,24 +31,25 @@ 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 "" -"Encontrarás instrucciones sobre cómo usar OnionShare. Mira primero a través " -"de todas las secciones para ver si responde a tus preguntas." +"Encontrarás instrucciones sobre cómo usar OnionShare. Mira primero a " +"través de todas las secciones para ver si responde a tus preguntas." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" msgstr "Comprueba las cuestiones con GitHub" #: ../../source/help.rst:12 +#, fuzzy msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" -"Si no está en este sitio web, por favor comprueba las `cuestiones con GitHub " -"`_. Es posible que alguien " -"más se haya encontrado con el mismo problema y lo haya elevado a los " -"desarrolladores, o incluso también que haya publicado una solución." +"Si no está en este sitio web, por favor comprueba las `cuestiones con " +"GitHub `_. Es posible que" +" alguien más se haya encontrado con el mismo problema y lo haya elevado a" +" los desarrolladores, o incluso también que haya publicado una solución." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -59,15 +59,10 @@ msgstr "Envía una cuestión" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" -"Si no puedes encontrar una solución a tu problema, o deseas hacer una " -"pregunta o sugerir una característica nueva, por favor `envía una cuestión " -"`_. Esto requiere `crear " -"una cuenta en GitHub `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" @@ -78,11 +73,31 @@ msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" -"Mira :ref:`collaborating` por instrucciones acerca de cómo unirse al equipo " -"Keybase que usamos para discutir el proyecto." +"Mira :ref:`collaborating` por instrucciones acerca de cómo unirse al " +"equipo Keybase que usamos para discutir el proyecto." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" #~ "Si necesitas ayuda con OnionShare, por" #~ " favor sigue las instrucciones de " #~ "abajo." + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" +#~ "Si no puedes encontrar una solución " +#~ "a tu problema, o deseas hacer una" +#~ " pregunta o sugerir una característica " +#~ "nueva, por favor `envía una cuestión " +#~ "`_. Esto " +#~ "requiere `crear una cuenta en GitHub " +#~ "`_." + diff --git a/docs/source/locale/ru/LC_MESSAGES/develop.po b/docs/source/locale/ru/LC_MESSAGES/develop.po index c7e09f76..9887fec3 100644 --- a/docs/source/locale/ru/LC_MESSAGES/develop.po +++ b/docs/source/locale/ru/LC_MESSAGES/develop.po @@ -7,17 +7,16 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2021-04-01 18:26+0000\n" "Last-Translator: Alexander Tarasenko \n" -"Language-Team: ru \n" "Language: ru\n" +"Language-Team: ru \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" "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.6-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -39,16 +38,16 @@ msgid "" "`_. Within the app, go to \"Teams\", " "click \"Join a Team\", and type \"onionshare\"." msgstr "" -"Существует открытая команда на платформе KeyBase, чтобы обсуждать проект в " -"целом, задавать вопросы, делиться идеями и планами относительно последующей " -"разработки OnionShare. (Так же, это лёгкий способ делиться зашифрованными " -"сквозным шифрованием сообщениями с другими пользователями OnionShare, " -"например, чтобы делиться адресами OnionShare). Для того, чтобы начать " -"пользоваться Keybase, нужно загрузить приложение по ссылке `Keybase app " -"`_, создать учётную запись и `присоединиться к " -"этой команде `_. Внутри самого " -"приложения, нужно перейти в раздел \"Teams\", нажать кнопку \"Join a Team\" " -"и ввести название \"onionshare\"." +"Существует открытая команда на платформе KeyBase, чтобы обсуждать проект " +"в целом, задавать вопросы, делиться идеями и планами относительно " +"последующей разработки OnionShare. (Так же, это лёгкий способ делиться " +"зашифрованными сквозным шифрованием сообщениями с другими пользователями " +"OnionShare, например, чтобы делиться адресами OnionShare). Для того, " +"чтобы начать пользоваться Keybase, нужно загрузить приложение по ссылке " +"`Keybase app `_, создать учётную запись и " +"`присоединиться к этой команде `_. " +"Внутри самого приложения, нужно перейти в раздел \"Teams\", нажать кнопку" +" \"Join a Team\" и ввести название \"onionshare\"." #: ../../source/develop.rst:12 msgid "" @@ -56,34 +55,37 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"У OnionShare также существует `почтовая рассылка `_ для разработчиков и дизайнеров интерфейса." +"У OnionShare также существует `почтовая рассылка " +"`_ для " +"разработчиков и дизайнеров интерфейса." #: ../../source/develop.rst:15 msgid "Contributing Code" msgstr "Участие в программировании" #: ../../source/develop.rst:17 +#, fuzzy msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" -"Исходный код OnionShare можно найти в репозитории Git: https://github.com/" -"micahflee/onionshare" +"Исходный код OnionShare можно найти в репозитории Git: " +"https://github.com/micahflee/onionshare" #: ../../source/develop.rst:19 +#, fuzzy msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" -"Если Вы хотите написать код для OnionShare, рекомендуется присоединиться к " -"команде OnionShare и задать несколько вопросов относительно планов своей " -"работы. Так же рекомендуется просмотреть `открытые задачи `_ на GitHub, возможно Вы сможете решить " -"какую-то из них." +"Если Вы хотите написать код для OnionShare, рекомендуется присоединиться " +"к команде OnionShare и задать несколько вопросов относительно планов " +"своей работы. Так же рекомендуется просмотреть `открытые задачи " +"`_ на GitHub, возможно Вы" +" сможете решить какую-то из них." #: ../../source/develop.rst:22 msgid "" @@ -92,9 +94,9 @@ msgid "" " ask questions, request changes, reject it, or merge it into the project." msgstr "" "Когда Вы будете готовы поделиться кодом, создайте \"pull request\" в " -"репозитории GitHub, после чего один из разработчиков сопровождающих проект " -"просмотрит изменения, возможно, задаст какие-то вопросы, попросит что-то " -"переделать, отклонит или интегрирует Ваш код в проект." +"репозитории GitHub, после чего один из разработчиков сопровождающих " +"проект просмотрит изменения, возможно, задаст какие-то вопросы, попросит " +"что-то переделать, отклонит или интегрирует Ваш код в проект." #: ../../source/develop.rst:27 msgid "Starting Development" @@ -103,18 +105,12 @@ msgstr "Начало разработки" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " "graphical version." msgstr "" -"OnionShare написан на языке программирования Python. Для начала, нужно " -"склонировать репозиторий Git расположенный по адресу https://github.com/" -"micahflee/onionshare/. Файл ``cli/README.md``содержит информацию о том, как " -"настроить рабочее окружение для разработки консольной версии, файл ``desktop/" -"README.md``, соответственно, о том, что нужно дла разработки версии " -"OnionShare с графическим интерфейсом." #: ../../source/develop.rst:32 msgid "" @@ -122,10 +118,10 @@ msgid "" "install dependencies for your platform, and to run OnionShare from the " "source tree." msgstr "" -"Эти файлы содержат инструкции и команды установки необходимых библиотек/" -"зависимостей для платформы, на которой планируется разработка приложения, а " -"так же рассказывают как запустить OnionShare с использованием файлов " -"репозитория, без установки." +"Эти файлы содержат инструкции и команды установки необходимых " +"библиотек/зависимостей для платформы, на которой планируется разработка " +"приложения, а так же рассказывают как запустить OnionShare с " +"использованием файлов репозитория, без установки." #: ../../source/develop.rst:35 msgid "Debugging tips" @@ -144,13 +140,13 @@ msgid "" "reloaded), and other debug info. For example::" msgstr "" "Во время разработки, для удобства рекомендуется запускать OnionShare при " -"помщи терминала с добавлением флагов ``--verbose`` или ``-v``. В этом случае " -"выводится много вспомогательных сообщений, например, о том, какие " +"помщи терминала с добавлением флагов ``--verbose`` или ``-v``. В этом " +"случае выводится много вспомогательных сообщений, например, о том, какие " "инициализируются объекты, когда происходит какое-либо событие (нажатие " "кнопки, сохраняются или загружаются настройки) и другая отладочная " "информация. Например::" -#: ../../source/develop.rst:117 +#: ../../source/develop.rst:121 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" @@ -158,45 +154,45 @@ msgstr "" "Можно добавить собственные отладочные сообщения, если запустить метод " "``Common.log`` из ``onionshare/common.py``. Например::" -#: ../../source/develop.rst:121 +#: ../../source/develop.rst:125 msgid "" "This can be useful when learning the chain of events that occur when " "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" "Это может быть полезно, например, во время изучения последовательности " -"событий, происходящей во время использования OnionShare, или чтобы узнать " -"значение определённых переменных до и после их использования." +"событий, происходящей во время использования OnionShare, или чтобы узнать" +" значение определённых переменных до и после их использования." -#: ../../source/develop.rst:124 +#: ../../source/develop.rst:128 msgid "Local Only" msgstr "Локальная Разработка" -#: ../../source/develop.rst:126 +#: ../../source/develop.rst:130 msgid "" "Tor is slow, and it's often convenient to skip starting onion services " "altogether during development. You can do this with the ``--local-only`` " "flag. For example::" msgstr "" -"Сеть Tor медленная, и часто может быть удобно полностью пропустить запуск " -"onion сервисов во время разработки. Это можно сделать с использованием флага " -"``--local-only``. Например::" +"Сеть Tor медленная, и часто может быть удобно полностью пропустить запуск" +" onion сервисов во время разработки. Это можно сделать с использованием " +"флага ``--local-only``. Например::" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:167 msgid "" "In this case, you load the URL ``http://onionshare:train-" "system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" " using the Tor Browser." msgstr "" -"В таком случае можно использовать URL ``http://onionshare:train-system@127.0." -"0.1:17635`` в обычном веб-браузере, например, Firefox, вместо использования " -"Tor Browser." +"В таком случае можно использовать URL ``http://onionshare:train-" +"system@127.0.0.1:17635`` в обычном веб-браузере, например, Firefox, " +"вместо использования Tor Browser." -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:170 msgid "Contributing Translations" msgstr "Участие в переводах" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:172 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -205,22 +201,23 @@ msgid "" "needed." msgstr "" "Помогите сделать OnionShare легче для использования, более приветливым и " -"знакомым для людей при помощи платформы переводов на другие языки `Hosted " -"Weblate `_. Всегда " -"используйте латинские буквы при написании \"OnionShare\" и при необходимости " -"добавляйте переведённое название в виде \"OnionShare (перевод)\"." - -#: ../../source/develop.rst:171 -msgid "To help translate, make a Hosted Weblate account and start contributing." -msgstr "" -"Чтобы начать заниматься переводом, нужно создать учётную запись на платформе " -"Hosted Weblate." +"знакомым для людей при помощи платформы переводов на другие языки `Hosted" +" Weblate `_. Всегда " +"используйте латинские буквы при написании \"OnionShare\" и при " +"необходимости добавляйте переведённое название в виде \"OnionShare " +"(перевод)\"." #: ../../source/develop.rst:174 +msgid "To help translate, make a Hosted Weblate account and start contributing." +msgstr "" +"Чтобы начать заниматься переводом, нужно создать учётную запись на " +"платформе Hosted Weblate." + +#: ../../source/develop.rst:177 msgid "Suggestions for Original English Strings" msgstr "Предложения по исходному английскому тексту" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:179 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." @@ -228,7 +225,7 @@ msgstr "" "Иногда исходный текст на английском языке содержит ошибки, или работа " "приложения не совпадает с документацией." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:181 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " @@ -236,23 +233,23 @@ msgid "" "the usual code review processes." msgstr "" "Чтобы прежложить изменения к исходному тексту, добавьте @kingu к своему " -"комментарию на Weblate. Так же можно создать 'issue' или 'pull request' в " -"проекте OnionShare на портале GitHub, это гарантирует, что основные " +"комментарию на Weblate. Так же можно создать 'issue' или 'pull request' в" +" проекте OnionShare на портале GitHub, это гарантирует, что основные " "разработчики увидят предложение и, возможно, изменят исходный текст." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:185 msgid "Status of Translations" msgstr "Статус Переводов" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:186 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Это текущий статус передов. Если Вы хотите начать делать перевод на языке, " -"которого пока нет в списке доступных на Weblate, пожалуйста, напишите письмо " -"на этот адрес: onionshare-dev@lists.riseup.net" +"Это текущий статус передов. Если Вы хотите начать делать перевод на " +"языке, которого пока нет в списке доступных на Weblate, пожалуйста, " +"напишите письмо на этот адрес: onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" @@ -469,3 +466,27 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "" + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" +#~ "OnionShare написан на языке программирования" +#~ " Python. Для начала, нужно склонировать " +#~ "репозиторий Git расположенный по адресу " +#~ "https://github.com/micahflee/onionshare/. Файл " +#~ "``cli/README.md``содержит информацию о том, " +#~ "как настроить рабочее окружение для " +#~ "разработки консольной версии, файл " +#~ "``desktop/README.md``, соответственно, о том, " +#~ "что нужно дла разработки версии " +#~ "OnionShare с графическим интерфейсом." + diff --git a/docs/source/locale/ru/LC_MESSAGES/help.po b/docs/source/locale/ru/LC_MESSAGES/help.po index ca800915..d252bebd 100644 --- a/docs/source/locale/ru/LC_MESSAGES/help.po +++ b/docs/source/locale/ru/LC_MESSAGES/help.po @@ -7,17 +7,16 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2021-04-01 18:26+0000\n" "Last-Translator: Alexander Tarasenko \n" -"Language-Team: ru \n" "Language: ru\n" +"Language-Team: ru \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" "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.6-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -42,16 +41,18 @@ msgid "Check the GitHub Issues" msgstr "Проверьте раздел \"Issues\" на сайте Github" #: ../../source/help.rst:12 +#, fuzzy msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" -"Если решение проблемы отсутстует на данном вебсайте, пожалуйста, проверьте " -"эту страницу: `GitHub issues `_. Возможно, кто-то еще столкнулся с аналогичной проблемой и сообщил " -"об этом разработчикам приложения или даже поделился своим решением." +"Если решение проблемы отсутстует на данном вебсайте, пожалуйста, " +"проверьте эту страницу: `GitHub issues " +"`_. Возможно, кто-то еще " +"столкнулся с аналогичной проблемой и сообщил об этом разработчикам " +"приложения или даже поделился своим решением." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -61,15 +62,10 @@ msgstr "Сообщите о проблеме" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" -"Если найти решение проблемы не удалось или Вы хотите задать вопрос/сделать " -"предложение, пожалуйста используйте ссылку: `submit an issue `_. Предварительно необходимо `создать " -"аккаунт на Github `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" @@ -80,10 +76,31 @@ msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" -"Ознакомьтесь с инструкцией :ref: `collaborating` о том, как присоединиться к " -"команде Keybase, в которой мы обсуждаем проект Onionshare." +"Ознакомьтесь с инструкцией :ref: `collaborating` о том, как " +"присоединиться к команде Keybase, в которой мы обсуждаем проект " +"Onionshare." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" #~ "Если Вам нужна помощь с OnionShare, " #~ "пожалуйста, следуйте следующим интсрукциям." + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" +#~ "Если найти решение проблемы не удалось" +#~ " или Вы хотите задать вопрос/сделать " +#~ "предложение, пожалуйста используйте ссылку: " +#~ "`submit an issue " +#~ "`_. " +#~ "Предварительно необходимо `создать аккаунт на" +#~ " Github `_." + diff --git a/docs/source/locale/tr/LC_MESSAGES/develop.po b/docs/source/locale/tr/LC_MESSAGES/develop.po index 6d87cabe..ed0cfa96 100644 --- a/docs/source/locale/tr/LC_MESSAGES/develop.po +++ b/docs/source/locale/tr/LC_MESSAGES/develop.po @@ -7,16 +7,15 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2021-01-01 20:29+0000\n" "Last-Translator: Oğuz Ersen \n" -"Language-Team: LANGUAGE \n" "Language: tr\n" +"Language-Team: tr \n" +"Plural-Forms: nplurals=2; plural=n != 1\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" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -43,10 +42,10 @@ msgstr "" "Keybase ekibine sahiptir. (Ayrıca OnionShare adresleri gibi, OnionShare " "topluluğundaki diğer kişilere uçtan uca şifrelenmiş doğrudan mesajlar " "göndermenin kolay bir yoludur.) Keybase'i kullanmak için `Keybase " -"uygulamasını `_ indirin, bir hesap oluşturun ve " -"`bu ekibe katılın `_. Uygulama içinde " -"\"Teams\" bölümüne gidin, \"Join a Team\" düğmesine tıklayın ve \"onionshare" -"\" yazın." +"uygulamasını `_ indirin, bir hesap oluşturun" +" ve `bu ekibe katılın `_. Uygulama " +"içinde \"Teams\" bölümüne gidin, \"Join a Team\" düğmesine tıklayın ve " +"\"onionshare\" yazın." #: ../../source/develop.rst:12 msgid "" @@ -54,35 +53,38 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"OnionShare ayrıca geliştiricilerin ve tasarımcıların projeyi tartışmaları " -"için bir `e-posta listesine `_ sahiptir." +"OnionShare ayrıca geliştiricilerin ve tasarımcıların projeyi tartışmaları" +" için bir `e-posta listesine `_ sahiptir." #: ../../source/develop.rst:15 msgid "Contributing Code" msgstr "Kodlara Katkıda Bulunma" #: ../../source/develop.rst:17 +#, fuzzy msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" -"OnionShare kaynak kodları şu Git deposunda bulunabilir: https://github.com/" -"micahflee/onionshare" +"OnionShare kaynak kodları şu Git deposunda bulunabilir: " +"https://github.com/micahflee/onionshare" #: ../../source/develop.rst:19 +#, fuzzy msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" "OnionShare kodlarına katkıda bulunmak istiyorsanız, Keybase ekibine " "katılmanız ve üzerinde çalışmayı düşündüğünüz şeyler hakkında sorular " "sormanız yardımcı olacaktır. Ayrıca üzerinde çalışmak isteyebileceğiniz " "herhangi bir sorun olup olmadığını görmek için GitHub'daki tüm `açık " -"sorunları `_ incelemelisiniz." +"sorunları `_ " +"incelemelisiniz." #: ../../source/develop.rst:22 msgid "" @@ -102,17 +104,12 @@ msgstr "Geliştirmeye Başlama" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " "graphical version." msgstr "" -"OnionShare, Python ile geliştirilmektedir. Başlamak için https://github.com/" -"micahflee/onionshare/ adresindeki Git deposunu klonlayın ve ardından komut " -"satırı sürümü için geliştirme ortamınızı nasıl kuracağınızı öğrenmek için ``" -"cli/README.md`` dosyasına, grafiksel sürüm için geliştirme ortamınızı nasıl " -"kuracağınızı öğrenmek için ``desktop/README.md`` dosyasına bakın." #: ../../source/develop.rst:32 msgid "" @@ -121,7 +118,8 @@ msgid "" "source tree." msgstr "" "Bu dosyalar, platformunuz için bağımlılıkları kurmak ve kaynak ağacından " -"OnionShare'i çalıştırmak için gerekli teknik talimatları ve komutları içerir." +"OnionShare'i çalıştırmak için gerekli teknik talimatları ve komutları " +"içerir." #: ../../source/develop.rst:35 msgid "Debugging tips" @@ -140,57 +138,59 @@ msgid "" "reloaded), and other debug info. For example::" msgstr "" "Geliştirme sırasında, OnionShare'i bir terminalden çalıştırmak ve komuta " -"``--verbose`` (veya ``-v``) seçeneklerini eklemek faydalıdır. Bu, terminale " -"birçok yararlı mesajlar, örneğin belirli nesneler başlatıldığında, olaylar " -"gerçekleştiğinde (düğmeler tıklandı, ayarlar kaydedildi veya yeniden " -"yüklendi gibi) ve diğer hata ayıklama bilgileri yazdırır. Örneğin::" +"``--verbose`` (veya ``-v``) seçeneklerini eklemek faydalıdır. Bu, " +"terminale birçok yararlı mesajlar, örneğin belirli nesneler " +"başlatıldığında, olaylar gerçekleştiğinde (düğmeler tıklandı, ayarlar " +"kaydedildi veya yeniden yüklendi gibi) ve diğer hata ayıklama bilgileri " +"yazdırır. Örneğin::" -#: ../../source/develop.rst:117 +#: ../../source/develop.rst:121 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" msgstr "" -"``onionshare/common.py`` içinden ``Common.log`` yöntemini çalıştırarak kendi " -"hata ayıklama mesajlarınızı ekleyebilirsiniz. Örneğin::" +"``onionshare/common.py`` içinden ``Common.log`` yöntemini çalıştırarak " +"kendi hata ayıklama mesajlarınızı ekleyebilirsiniz. Örneğin::" -#: ../../source/develop.rst:121 +#: ../../source/develop.rst:125 msgid "" "This can be useful when learning the chain of events that occur when " "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" -"Bu, OnionShare kullanılırken meydana gelen olaylar zincirini veya belirli " -"değişkenlerin değiştirilmeden önce ve sonra değerini öğrenirken faydalı " +"Bu, OnionShare kullanılırken meydana gelen olaylar zincirini veya belirli" +" değişkenlerin değiştirilmeden önce ve sonra değerini öğrenirken faydalı " "olabilir." -#: ../../source/develop.rst:124 +#: ../../source/develop.rst:128 msgid "Local Only" msgstr "Yalnızca Yerel" -#: ../../source/develop.rst:126 +#: ../../source/develop.rst:130 msgid "" "Tor is slow, and it's often convenient to skip starting onion services " "altogether during development. You can do this with the ``--local-only`` " "flag. For example::" msgstr "" -"Tor yavaştır ve geliştirme sırasında onion hizmetlerini başlatmayı tamamen " -"atlamak genellikle uygundur. Bunu ``--local-only`` seçeneğiyle " +"Tor yavaştır ve geliştirme sırasında onion hizmetlerini başlatmayı " +"tamamen atlamak genellikle uygundur. Bunu ``--local-only`` seçeneğiyle " "yapabilirsiniz. Örneğin::" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:167 msgid "" "In this case, you load the URL ``http://onionshare:train-" "system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" " using the Tor Browser." msgstr "" -"Bu durumda, ``http://onionshare:train-system@127.0.0.1:17635`` URL'sini Tor " -"Browser kullanmak yerine Firefox gibi normal bir web tarayıcısında açarsınız." +"Bu durumda, ``http://onionshare:train-system@127.0.0.1:17635`` URL'sini " +"Tor Browser kullanmak yerine Firefox gibi normal bir web tarayıcısında " +"açarsınız." -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:170 msgid "Contributing Translations" msgstr "Çevirilere Katkıda Bulunma" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:172 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -199,22 +199,22 @@ msgid "" "needed." msgstr "" "`Hosted Weblate `_ " -"adresinde OnionShare'i çevirerek daha kolay kullanılmasına ve insanlar için " -"daha bilindik ve kullanıcı dostu olmasına yardımcı olun. \"OnionShare\" " -"sözcüğünü her zaman latin harflerinde tutun ve gerekirse \"OnionShare (yerel " -"adı)\" kullanın." - -#: ../../source/develop.rst:171 -msgid "To help translate, make a Hosted Weblate account and start contributing." -msgstr "" -"Çeviriye yardımcı olmak için bir Hosted Weblate hesabı oluşturun ve katkıda " -"bulunmaya başlayın." +"adresinde OnionShare'i çevirerek daha kolay kullanılmasına ve insanlar " +"için daha bilindik ve kullanıcı dostu olmasına yardımcı olun. " +"\"OnionShare\" sözcüğünü her zaman latin harflerinde tutun ve gerekirse " +"\"OnionShare (yerel adı)\" kullanın." #: ../../source/develop.rst:174 +msgid "To help translate, make a Hosted Weblate account and start contributing." +msgstr "" +"Çeviriye yardımcı olmak için bir Hosted Weblate hesabı oluşturun ve " +"katkıda bulunmaya başlayın." + +#: ../../source/develop.rst:177 msgid "Suggestions for Original English Strings" msgstr "Asıl İngilizce Dizgeler için Öneriler" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:179 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." @@ -222,31 +222,32 @@ msgstr "" "Bazen asıl İngilizce dizgeler yanlıştır veya uygulama ile belgelendirme " "arasında uyumsuzluk vardır." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:181 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " "developers see the suggestion, and can potentially modify the string via " "the usual code review processes." msgstr "" -"Weblate'teki yorumunuza @kingu ekleyerek veya bir GitHub sorunu veya çekme " -"isteği açarak kaynağı dizgesi için iyileştirmeler önerin. İkinci seçenek, " -"tüm proje geliştiricilerinin öneriyi görmesini sağlar ve dizge üzerinde " -"olağan kod inceleme süreçleri aracılığıyla değişiklikler yapabilir." +"Weblate'teki yorumunuza @kingu ekleyerek veya bir GitHub sorunu veya " +"çekme isteği açarak kaynağı dizgesi için iyileştirmeler önerin. İkinci " +"seçenek, tüm proje geliştiricilerinin öneriyi görmesini sağlar ve dizge " +"üzerinde olağan kod inceleme süreçleri aracılığıyla değişiklikler " +"yapabilir." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:185 msgid "Status of Translations" msgstr "Çevirilerin Durumu" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:186 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Şu anki çeviri durumu aşağıdaki gibidir. Henüz başlamamış bir dilde çeviriye " -"başlamak istiyorsanız lütfen e-posta listesine yazın: onionshare-dev@lists." -"riseup.net" +"Şu anki çeviri durumu aşağıdaki gibidir. Henüz başlamamış bir dilde " +"çeviriye başlamak istiyorsanız lütfen e-posta listesine yazın: " +"onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" @@ -463,3 +464,26 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "" + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" +#~ "OnionShare, Python ile geliştirilmektedir. " +#~ "Başlamak için https://github.com/micahflee/onionshare/ " +#~ "adresindeki Git deposunu klonlayın ve " +#~ "ardından komut satırı sürümü için " +#~ "geliştirme ortamınızı nasıl kuracağınızı " +#~ "öğrenmek için ``cli/README.md`` dosyasına, " +#~ "grafiksel sürüm için geliştirme ortamınızı " +#~ "nasıl kuracağınızı öğrenmek için " +#~ "``desktop/README.md`` dosyasına bakın." + diff --git a/docs/source/locale/tr/LC_MESSAGES/help.po b/docs/source/locale/tr/LC_MESSAGES/help.po index b0533068..f97d1bd0 100644 --- a/docs/source/locale/tr/LC_MESSAGES/help.po +++ b/docs/source/locale/tr/LC_MESSAGES/help.po @@ -7,16 +7,15 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2020-11-17 10:28+0000\n" "Last-Translator: Oğuz Ersen \n" -"Language-Team: tr \n" "Language: tr\n" +"Language-Team: tr \n" +"Plural-Forms: nplurals=2; plural=n != 1\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" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -32,25 +31,26 @@ 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 "" -"Burada OnionShare'in nasıl kullanılacağına ilişkin talimatları bulacaksınız. " -"Sorularınızı yanıtlayan bir şey olup olmadığını görmek için önce tüm " -"bölümlere bakın." +"Burada OnionShare'in nasıl kullanılacağına ilişkin talimatları " +"bulacaksınız. Sorularınızı yanıtlayan bir şey olup olmadığını görmek için" +" önce tüm bölümlere bakın." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" msgstr "GitHub Sorunlarına Bakın" #: ../../source/help.rst:12 +#, fuzzy msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" -"Web sitesinde yoksa, lütfen `GitHub sorunlarına `_ bakın. Bir başkasının aynı sorunla " -"karşılaşması ve bunu geliştiricilere iletmesi, hatta bir çözüm göndermesi " -"mümkündür." +"Web sitesinde yoksa, lütfen `GitHub sorunlarına " +"`_ bakın. Bir başkasının " +"aynı sorunla karşılaşması ve bunu geliştiricilere iletmesi, hatta bir " +"çözüm göndermesi mümkündür." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -60,15 +60,10 @@ msgstr "Kendiniz Bir Sorun Gönderin" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" -"Sorununuza bir çözüm bulamazsanız ya da bir soru sormak veya yeni bir " -"özellik önermek istiyorsanız, lütfen `bir sorun gönderin `_. Bunun için `bir GitHub hesabı " -"oluşturulması `_ gerekir." #: ../../source/help.rst:20 msgid "Join our Keybase Team" @@ -79,10 +74,30 @@ msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" -"Projeyi tartışmak için kullandığımız Keybase ekibimize nasıl katılacağınızla " -"ilgili :ref:`collaborating` bölümüne bakın." +"Projeyi tartışmak için kullandığımız Keybase ekibimize nasıl " +"katılacağınızla ilgili :ref:`collaborating` bölümüne bakın." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" #~ "OnionShare ile ilgili yardıma ihtiyacınız " #~ "varsa, lütfen aşağıdaki talimatları izleyin." + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" +#~ "Sorununuza bir çözüm bulamazsanız ya da" +#~ " bir soru sormak veya yeni bir " +#~ "özellik önermek istiyorsanız, lütfen `bir " +#~ "sorun gönderin " +#~ "`_. Bunun" +#~ " için `bir GitHub hesabı oluşturulması " +#~ "`_ gerekir." + diff --git a/docs/source/locale/uk/LC_MESSAGES/develop.po b/docs/source/locale/uk/LC_MESSAGES/develop.po index 98c947b0..60330eb5 100644 --- a/docs/source/locale/uk/LC_MESSAGES/develop.po +++ b/docs/source/locale/uk/LC_MESSAGES/develop.po @@ -7,17 +7,16 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" -"Language-Team: none\n" "Language: uk\n" +"Language-Team: none\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" "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.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -39,15 +38,15 @@ msgid "" "`_. Within the app, go to \"Teams\", " "click \"Join a Team\", and type \"onionshare\"." msgstr "" -"OnionShare має відкриту команду Keybase для обговорення проєкту, включно з " -"питаннями, обміном ідеями та побудовою, плануванням подальшого розвитку. (Це " -"також простий спосіб надсилати безпосередні захищені наскрізним шифруванням " -"повідомлення іншим спільноти OnionShare, наприклад адреси OnionShare.) Щоб " -"користуватися Keybase, потрібно завантажити застосунок `Keybase app " -"`_, створити обліковий запис та `приєднайтеся " -"до цієї команди `_. У застосунку " -"перейдіть до «Команди», натисніть «Приєднатися до команди» та введіть " -"«onionshare»." +"OnionShare має відкриту команду Keybase для обговорення проєкту, включно " +"з питаннями, обміном ідеями та побудовою, плануванням подальшого " +"розвитку. (Це також простий спосіб надсилати безпосередні захищені " +"наскрізним шифруванням повідомлення іншим спільноти OnionShare, наприклад" +" адреси OnionShare.) Щоб користуватися Keybase, потрібно завантажити " +"застосунок `Keybase app `_, створити " +"обліковий запис та `приєднайтеся до цієї команди " +"`_. У застосунку перейдіть до " +"«Команди», натисніть «Приєднатися до команди» та введіть «onionshare»." #: ../../source/develop.rst:12 msgid "" @@ -55,34 +54,36 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"OnionShare також має `список розсилання `_ для розробників та дизайнерів для обговорення " -"проєкту." +"OnionShare також має `список розсилання " +"`_ для розробників" +" та дизайнерів для обговорення проєкту." #: ../../source/develop.rst:15 msgid "Contributing Code" msgstr "Внесок до кодової бази" #: ../../source/develop.rst:17 +#, fuzzy msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" -"Джерельний код OnionShare розміщено в цьому сховищі Git: https://github.com/" -"micahflee/onionshare" +"Джерельний код OnionShare розміщено в цьому сховищі Git: " +"https://github.com/micahflee/onionshare" #: ../../source/develop.rst:19 +#, fuzzy msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" -"Якщо ви хочете допомогти кодом OnionShare, приєднайтеся до команди Keybase і " -"запитайте над чим можна попрацювати. Також варто переглянути всі `відкриті " -"завдання `_ на GitHub, щоб " -"побачити, чи є такі, які б ви хотіли розв'язати." +"Якщо ви хочете допомогти кодом OnionShare, приєднайтеся до команди " +"Keybase і запитайте над чим можна попрацювати. Також варто переглянути " +"всі `відкриті завдання `_" +" на GitHub, щоб побачити, чи є такі, які б ви хотіли розв'язати." #: ../../source/develop.rst:22 msgid "" @@ -90,9 +91,10 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Коли ви будете готові допомогти код, відкрийте «pull request» до репозиторію " -"GitHub і один із супровідників проєкту перегляне його та, можливо, поставить " -"питання, попросить змінити щось, відхилить його або об’єднає з проєктом." +"Коли ви будете готові допомогти код, відкрийте «pull request» до " +"репозиторію GitHub і один із супровідників проєкту перегляне його та, " +"можливо, поставить питання, попросить змінити щось, відхилить його або " +"об’єднає з проєктом." #: ../../source/develop.rst:27 msgid "Starting Development" @@ -101,17 +103,12 @@ msgstr "Початок розробки" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " "graphical version." msgstr "" -"OnionShare розроблено на Python. Для початку клонуйте сховище Git за адресою " -"https://github.com/micahflee/onionshare/, а потім перегляньте файл ``cli/" -"README.md``, щоб дізнатися, як налаштувати середовище розробки у командному " -"рядку або файл ``desktop/README.md``, щоб дізнатися, як налаштувати " -"середовище розробки у версії з графічним інтерфейсом." #: ../../source/develop.rst:32 msgid "" @@ -120,7 +117,8 @@ msgid "" "source tree." msgstr "" "Ці файли містять необхідні технічні вказівки та команди встановлення " -"залежностей для вашої платформи та запуску OnionShare з джерельного дерева." +"залежностей для вашої платформи та запуску OnionShare з джерельного " +"дерева." #: ../../source/develop.rst:35 msgid "Debugging tips" @@ -140,11 +138,12 @@ msgid "" msgstr "" "Під час розробки зручно запустити OnionShare з термінала та додати до " "команди прапор ``--verbose`` (або ``-v``). До термінала виводитиметься " -"багато корисних повідомлень, наприклад, про ініціалізацію певних об'єктів, " -"про події (наприклад, натискання кнопок, збереження або перезавантаження " -"параметрів) та інші подробиці для зневаджування. Наприклад::" +"багато корисних повідомлень, наприклад, про ініціалізацію певних " +"об'єктів, про події (наприклад, натискання кнопок, збереження або " +"перезавантаження параметрів) та інші подробиці для зневаджування. " +"Наприклад::" -#: ../../source/develop.rst:117 +#: ../../source/develop.rst:121 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" @@ -152,21 +151,21 @@ msgstr "" "Ви можете додати власні повідомлення про зневадження, запустивши метод " "``Common.log`` з ``onionshare/common.py``. Наприклад::" -#: ../../source/develop.rst:121 +#: ../../source/develop.rst:125 msgid "" "This can be useful when learning the chain of events that occur when " "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" -"Це може бути корисно для вивчення ланцюжка подій, що відбуваються під час " -"користування OnionShare, або значень певних змінних до та після взаємодії з " -"ними." +"Це може бути корисно для вивчення ланцюжка подій, що відбуваються під час" +" користування OnionShare, або значень певних змінних до та після " +"взаємодії з ними." -#: ../../source/develop.rst:124 +#: ../../source/develop.rst:128 msgid "Local Only" msgstr "Лише локально" -#: ../../source/develop.rst:126 +#: ../../source/develop.rst:130 msgid "" "Tor is slow, and it's often convenient to skip starting onion services " "altogether during development. You can do this with the ``--local-only`` " @@ -176,21 +175,21 @@ msgstr "" "початковими службами onion. Ви можете зробити це за допомогою прапора " "``--local-only``. Наприклад::" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:167 msgid "" "In this case, you load the URL ``http://onionshare:train-" "system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" " using the Tor Browser." msgstr "" "У цьому випадку ви завантажуєте URL-адресу ``http://onionshare:train-" -"system@127.0.0.1:17635`` у звичайному переглядачі, як-от Firefox, замість " -"користування Tor Browser." +"system@127.0.0.1:17635`` у звичайному переглядачі, як-от Firefox, замість" +" користування Tor Browser." -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:170 msgid "Contributing Translations" msgstr "Допомога з перекладами" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:172 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -199,22 +198,22 @@ msgid "" "needed." msgstr "" "Допоможіть зробити OnionShare простішим у користуванні та звичнішим та " -"приємнішим для людей, переклавши його на `Hosted Weblate `_. Завжди зберігайте «OnionShare» " -"латинськими літерами та використовуйте «OnionShare (місцева назва)», якщо це " -"необхідно." +"приємнішим для людей, переклавши його на `Hosted Weblate " +"`_. Завжди зберігайте " +"«OnionShare» латинськими літерами та використовуйте «OnionShare (місцева " +"назва)», якщо це необхідно." -#: ../../source/develop.rst:171 +#: ../../source/develop.rst:174 msgid "To help translate, make a Hosted Weblate account and start contributing." msgstr "" "Щоб допомогти перекласти, створіть обліковий запис на Hosted Weblate і " "почніть допомагати." -#: ../../source/develop.rst:174 +#: ../../source/develop.rst:177 msgid "Suggestions for Original English Strings" msgstr "Пропозиції для оригінальних рядків англійською" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:179 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." @@ -222,31 +221,32 @@ msgstr "" "Іноді оригінальні англійські рядки містять помилки або відрізняються у " "застосунку та документації." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:181 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " "developers see the suggestion, and can potentially modify the string via " "the usual code review processes." msgstr "" -"Вдоскональте рядок джерела файлу, додавши @kingu до свого коментаря Weblate, " -"або повідомте про проблему на GitHub, або надішліть запит на додавання. " -"Останнє гарантує, що всі основні розробники, бачать пропозицію та, ймовірно, " -"можуть змінити рядок за допомогою звичайних процесів перегляду коду." +"Вдоскональте рядок джерела файлу, додавши @kingu до свого коментаря " +"Weblate, або повідомте про проблему на GitHub, або надішліть запит на " +"додавання. Останнє гарантує, що всі основні розробники, бачать пропозицію" +" та, ймовірно, можуть змінити рядок за допомогою звичайних процесів " +"перегляду коду." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:185 msgid "Status of Translations" msgstr "Стан перекладів" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:186 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Тут знаходиться поточний стан перекладу. Якщо ви хочете розпочати переклад " -"відсутньою тут мовою, будь ласка, напишіть нам до списку розсилання: " -"onionshare-dev@lists.riseup.net" +"Тут знаходиться поточний стан перекладу. Якщо ви хочете розпочати " +"переклад відсутньою тут мовою, будь ласка, напишіть нам до списку " +"розсилання: onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" @@ -437,3 +437,26 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "Зробіть те ж саме для інших неперекладених рядків." + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" +#~ "OnionShare розроблено на Python. Для " +#~ "початку клонуйте сховище Git за адресою" +#~ " https://github.com/micahflee/onionshare/, а потім " +#~ "перегляньте файл ``cli/README.md``, щоб " +#~ "дізнатися, як налаштувати середовище розробки" +#~ " у командному рядку або файл " +#~ "``desktop/README.md``, щоб дізнатися, як " +#~ "налаштувати середовище розробки у версії " +#~ "з графічним інтерфейсом." + diff --git a/docs/source/locale/uk/LC_MESSAGES/help.po b/docs/source/locale/uk/LC_MESSAGES/help.po index 238f633e..c55cf34a 100644 --- a/docs/source/locale/uk/LC_MESSAGES/help.po +++ b/docs/source/locale/uk/LC_MESSAGES/help.po @@ -7,17 +7,16 @@ msgid "" 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:42-0800\n" +"POT-Creation-Date: 2021-08-20 13:37-0700\n" "PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" -"Language-Team: none\n" "Language: uk\n" +"Language-Team: none\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" "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.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -34,24 +33,25 @@ msgid "" "the sections first to see if anything answers your questions." msgstr "" "Цей вебсайт містить настанови щодо користування OnionShare. Спочатку " -"перегляньте всі розділи, щоб дізнатися, чи містять вони відповідей на ваші " -"запитання." +"перегляньте всі розділи, щоб дізнатися, чи містять вони відповідей на " +"ваші запитання." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" msgstr "Перегляньте наявні проблеми на GitHub" #: ../../source/help.rst:12 +#, fuzzy msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" -"Якщо на цьому вебсайті не описано вашої проблеми, перегляньте `GitHub issues " -"`_. Можливо, хтось інший " -"зіткнувся з тією ж проблемою та запитав про неї у розробників, або, можливо, " -"навіть опублікував як її виправити." +"Якщо на цьому вебсайті не описано вашої проблеми, перегляньте `GitHub " +"issues `_. Можливо, хтось" +" інший зіткнувся з тією ж проблемою та запитав про неї у розробників, " +"або, можливо, навіть опублікував як її виправити." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -61,15 +61,10 @@ msgstr "Повідомте про ваду" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" -"Якщо не можете знайти як виправити свою проблему або хочете запитати чи " -"запропонувати нову функцію, `поставте питання `_. Для цього потрібно `створити обліковий запис " -"GitHub `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" @@ -80,8 +75,27 @@ msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" -"Читайте про :ref:`співпрацю`, щоб отримати вказівки щодо приєднання до нашої " -"команди Keybase, де ми обговорюємо проєкт." +"Читайте про :ref:`співпрацю`, щоб отримати вказівки щодо приєднання до " +"нашої команди Keybase, де ми обговорюємо проєкт." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "Якщо вам потрібна допомога з OnionShare, виконайте ці настанови." + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" +#~ "Якщо не можете знайти як виправити " +#~ "свою проблему або хочете запитати чи " +#~ "запропонувати нову функцію, `поставте питання" +#~ " `_. Для" +#~ " цього потрібно `створити обліковий запис" +#~ " GitHub `_." + From 02254b13bb4818745193092f2144fd83726d79e7 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 20 Aug 2021 14:13:44 -0700 Subject: [PATCH 38/55] Update release instructions to include making a flatpak bundle --- RELEASE.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 1b426b5d..3409cf5c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -180,7 +180,7 @@ After following all of the previous steps, gather these files: Create a PGP signature for each of these files, e.g: ```sh -gpg -a --detach-sign OnionShare-$VERSION.flatpak +gpg -a --detach-sign OnionShare-$VERSION.tar.gz gpg -a --detach-sign [... and so on] ``` @@ -241,9 +241,17 @@ flatpak run org.onionshare.OnionShare Create a [single-file bundle](https://docs.flatpak.org/en/latest/single-file-bundles.html): ```sh -flatpak build-bundle ~/repositories/apps dist/OnionShare-$VERSION.flatpak org.onionshare.OnionShare --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo +flatpak build-bundle ~/.local/share/flatpak/repo OnionShare-$VERSION.flatpak org.onionshare.OnionShare --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo ``` +Create a PGP signature for the flatpak single-file bundle: + +```sh +gpg -a --detach-sign OnionShare-$VERSION.flatpak +``` + +Upload this `.flatpak` and its sig to the GitHub release as well. + ### Update Homebrew - Make a PR to [homebrew-cask](https://github.com/homebrew/homebrew-cask) to update the macOS version From cad8b7bf9f351bc44cd0744c224c45c50af49789 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 25 Aug 2021 20:33:39 +0200 Subject: [PATCH 39/55] Translated using Weblate (Finnish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (31 of 31 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (27 of 27 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Finnish) Currently translated at 74.1% (23 of 31 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (11 of 11 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (9 of 9 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Finnish) Currently translated at 12.5% (7 of 56 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (27 of 27 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (32 of 32 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Galician) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/gl/ Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Ukrainian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/uk/ Translated using Weblate (Chinese (Simplified)) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/zh_Hans/ Translated using Weblate (Icelandic) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/is/ Translated using Weblate (Turkish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/tr/ Translated using Weblate (Finnish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/fi/ Added translation using Weblate (Finnish) Added translation using Weblate (Finnish) Added translation using Weblate (Finnish) Added translation using Weblate (Finnish) Added translation using Weblate (Finnish) Added translation using Weblate (Finnish) Added translation using Weblate (Finnish) Added translation using Weblate (Finnish) Added translation using Weblate (Finnish) Merge branch 'origin/develop' into Weblate. Translated using Weblate (Chinese (Simplified)) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/zh_Hans/ Translated using Weblate (Icelandic) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/is/ Translated using Weblate (Ukrainian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/uk/ Translated using Weblate (Polish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/pl/ Translated using Weblate (Indonesian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/id/ Translated using Weblate (Croatian) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Croatian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hr/ Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Turkish) Currently translated at 100.0% (32 of 32 strings) Translated using Weblate (Lithuanian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/lt/ Translated using Weblate (Hindi) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hi/ Translated using Weblate (Turkish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/tr/ Translated using Weblate (Ukrainian) Currently translated at 100.0% (31 of 31 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (32 of 32 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (27 of 27 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (9 of 9 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (11 of 11 strings) Translated using Weblate (Ukrainian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/uk/ Translated using Weblate (Danish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/da/ Translated using Weblate (Yoruba) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/yo/ Translated using Weblate (Bengali) Currently translated at 27.2% (3 of 11 strings) Translated using Weblate (Croatian) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/hr/ Translated using Weblate (Portuguese (Brazil)) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/pt_BR/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Translated using Weblate (Swedish) Translate-URL: https://hosted.weblate.org/projects/onionshare/translations/sv/ Co-authored-by: Algustionesa Yoshi Co-authored-by: Atrate Co-authored-by: Eduardo Addad de Oliveira Co-authored-by: Emmanuel Balogun Co-authored-by: Eric Co-authored-by: Gediminas Murauskas Co-authored-by: Hosted Weblate Co-authored-by: Ihor Hordiichuk Co-authored-by: Jonatan Nyberg Co-authored-by: Kaantaja Co-authored-by: Milo Ivir Co-authored-by: Mohit Bansal (Philomath) Co-authored-by: Oymate Co-authored-by: Oğuz Ersen Co-authored-by: Panina Nonbinary Co-authored-by: Sveinn í Felli Co-authored-by: Tur Co-authored-by: Xosé M Co-authored-by: scootergrisen Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-advanced/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-advanced/tr/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-advanced/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-develop/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-develop/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-features/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-features/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-help/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-help/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-index/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-index/hr/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-install/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-install/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-security/bn/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-security/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-security/uk/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-sphinx/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-tor/fi/ Translate-URL: https://hosted.weblate.org/projects/onionshare/doc-tor/uk/ Translation: OnionShare/Doc - Advanced Translation: OnionShare/Doc - Develop Translation: OnionShare/Doc - Features Translation: OnionShare/Doc - Help Translation: OnionShare/Doc - Index Translation: OnionShare/Doc - Install Translation: OnionShare/Doc - Security Translation: OnionShare/Doc - Sphinx Translation: OnionShare/Doc - Tor --- .../src/onionshare/resources/locale/da.json | 12 +- .../src/onionshare/resources/locale/fi.json | 36 +- .../src/onionshare/resources/locale/gl.json | 7 +- .../src/onionshare/resources/locale/hi.json | 34 +- .../src/onionshare/resources/locale/hr.json | 57 ++- .../src/onionshare/resources/locale/id.json | 6 +- .../src/onionshare/resources/locale/is.json | 11 +- .../src/onionshare/resources/locale/lt.json | 223 +++++---- .../src/onionshare/resources/locale/pl.json | 5 +- .../onionshare/resources/locale/pt_BR.json | 11 +- .../src/onionshare/resources/locale/sv.json | 28 +- .../src/onionshare/resources/locale/tr.json | 23 +- .../src/onionshare/resources/locale/uk.json | 13 +- .../src/onionshare/resources/locale/yo.json | 37 +- .../onionshare/resources/locale/zh_Hans.json | 7 +- docs/source/locale/bn/LC_MESSAGES/security.po | 8 +- docs/source/locale/fi/LC_MESSAGES/advanced.po | 223 +++++++++ docs/source/locale/fi/LC_MESSAGES/develop.po | 185 ++++++++ docs/source/locale/fi/LC_MESSAGES/features.po | 423 ++++++++++++++++++ docs/source/locale/fi/LC_MESSAGES/help.po | 67 +++ docs/source/locale/fi/LC_MESSAGES/index.po | 30 ++ docs/source/locale/fi/LC_MESSAGES/install.po | 151 +++++++ docs/source/locale/fi/LC_MESSAGES/security.po | 106 +++++ docs/source/locale/fi/LC_MESSAGES/sphinx.po | 27 ++ docs/source/locale/fi/LC_MESSAGES/tor.po | 215 +++++++++ docs/source/locale/hr/LC_MESSAGES/index.po | 6 +- docs/source/locale/tr/LC_MESSAGES/advanced.po | 10 +- docs/source/locale/uk/LC_MESSAGES/advanced.po | 20 +- docs/source/locale/uk/LC_MESSAGES/develop.po | 59 +-- docs/source/locale/uk/LC_MESSAGES/features.po | 79 ++-- docs/source/locale/uk/LC_MESSAGES/help.po | 15 +- docs/source/locale/uk/LC_MESSAGES/install.po | 36 +- docs/source/locale/uk/LC_MESSAGES/security.po | 31 +- docs/source/locale/uk/LC_MESSAGES/tor.po | 23 +- 34 files changed, 1895 insertions(+), 329 deletions(-) create mode 100644 docs/source/locale/fi/LC_MESSAGES/advanced.po create mode 100644 docs/source/locale/fi/LC_MESSAGES/develop.po create mode 100644 docs/source/locale/fi/LC_MESSAGES/features.po create mode 100644 docs/source/locale/fi/LC_MESSAGES/help.po create mode 100644 docs/source/locale/fi/LC_MESSAGES/index.po create mode 100644 docs/source/locale/fi/LC_MESSAGES/install.po create mode 100644 docs/source/locale/fi/LC_MESSAGES/security.po create mode 100644 docs/source/locale/fi/LC_MESSAGES/sphinx.po create mode 100644 docs/source/locale/fi/LC_MESSAGES/tor.po diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/src/onionshare/resources/locale/da.json index 383b3d33..4bbdc94e 100644 --- a/desktop/src/onionshare/resources/locale/da.json +++ b/desktop/src/onionshare/resources/locale/da.json @@ -291,5 +291,15 @@ "gui_chat_url_description": "Alle med denne OnionShare-adresse kan deltage i chatrummet med Tor Browser: ", "error_port_not_available": "OnionShare-port ikke tilgængelig", "gui_rendezvous_cleanup": "Venter på at Tor-kredsløb lukker for at være sikker på, at det lykkedes at overføre dine filer.\n\nDet kan tage noget tid.", - "gui_rendezvous_cleanup_quit_early": "Afslut tidligt" + "gui_rendezvous_cleanup_quit_early": "Afslut tidligt", + "history_receive_read_message_button": "Læs meddelelse", + "mode_settings_receive_webhook_url_checkbox": "Brug underretningswebhook", + "mode_settings_receive_disable_files_checkbox": "Deaktivér upload af filer", + "mode_settings_receive_disable_text_checkbox": "Deaktivér indsendelse af tekst", + "mode_settings_title_label": "Tilpasset titel", + "gui_color_mode_changed_notice": "Genstart OnionShare for at anvende den nye farvetilstand.", + "gui_status_indicator_chat_started": "Chatter", + "gui_status_indicator_chat_scheduled": "Planlagt …", + "gui_status_indicator_chat_working": "Starter …", + "gui_status_indicator_chat_stopped": "Klar til at chatte" } diff --git a/desktop/src/onionshare/resources/locale/fi.json b/desktop/src/onionshare/resources/locale/fi.json index e7020b3c..f3a90bfe 100644 --- a/desktop/src/onionshare/resources/locale/fi.json +++ b/desktop/src/onionshare/resources/locale/fi.json @@ -10,7 +10,7 @@ "help_stay_open": "Jatka jakoa tiedostojen lähetyksen jälkeen", "help_verbose": "Kirjaa OnionShare virheet stdout:tiin, ja verkko virheet levylle", "help_filename": "Luettele jaettavat tiedostot tai kansiot", - "gui_drag_and_drop": "Vedä ja pudota\ntiedostot tänne", + "gui_drag_and_drop": "Vedä ja pudota tiedostot tänne aloittaaksesi jakamisen", "gui_add": "Lisää", "gui_delete": "Poista", "gui_choose_items": "Valitse", @@ -120,8 +120,8 @@ "gui_tor_connection_error_settings": "Yritä muuttaa miten OnionShare yhdistää Tor-verkkoon asetuksista.", "gui_tor_connection_canceled": "Tor-yhteyden muodostus epäonnistui.\n\nVarmista että sinulla on toimiva internet yhteys, jonka jälkeen avaa OnionShare uudelleen ja ota käyttöön sen Tor-yhteys.", "gui_tor_connection_lost": "Tor-yhteys katkaistu.", - "gui_server_started_after_autostop_timer": "Automaattinen lopeutusajastin pysäytti toiminnon ennen palvelimen käynnistymistä.\nLuo uusi jako.", - "gui_server_autostop_timer_expired": "Automaattinen pysäytysajastin päättyi jo.\nSäädä se jaon aloittamiseksi.", + "gui_server_started_after_autostop_timer": "Automaattinen loputusajastin pysäytti toiminnon ennen palvelimen käynnistymistä. Luo uusi jako.", + "gui_server_autostop_timer_expired": "Automaattinen pysäytysajastin päättyi jo. Säädä se jaon aloittamiseksi.", "share_via_onionshare": "Jaa OnionSharella", "gui_connect_to_tor_for_onion_settings": "Yhdistä Tor-verkkoon nähdäksesi onion palvelun asetukset", "gui_use_legacy_v2_onions_checkbox": "Käytä vanhoja osoitteita", @@ -240,5 +240,33 @@ "gui_tab_name_receive": "Vastaanota", "gui_tab_name_share": "Jaa", "gui_file_selection_remove_all": "Poista kaikki", - "gui_remove": "Poista" + "gui_remove": "Poista", + "mode_settings_receive_webhook_url_checkbox": "Käytä ilmoitusten verkkotoimintokutsua", + "history_receive_read_message_button": "Lue viesti", + "error_port_not_available": "OnionSharen portti ei saatavilla", + "gui_rendezvous_cleanup_quit_early": "Poistu aikaisin", + "gui_rendezvous_cleanup": "Odotetaan Tor-kierrosten sulkeutumista, jotta voidaan varmistaa onnistunut tiedonsiirto.\n\nTässä voi kestää joitain minuutteja.", + "mode_settings_receive_disable_files_checkbox": "Poista käytöstä tiedostojen lataaminen", + "mode_settings_receive_disable_text_checkbox": "Poista käytöstä tekstin syöttö", + "mode_settings_title_label": "Muokattu otsikko", + "gui_main_page_chat_button": "Aloita keskustelu", + "gui_main_page_website_button": "Aloita isännöinti", + "gui_new_tab_chat_button": "Keskustele anonyymisti", + "gui_color_mode_changed_notice": "Käynnistä uudelleen Onionshare, jotta uusi väritila tulee voimaan.", + "gui_settings_theme_dark": "Tumma", + "gui_settings_theme_light": "Vaalea", + "gui_settings_theme_auto": "Automaattinen", + "gui_settings_theme_label": "Teema", + "gui_open_folder_error": "Ei voitu avata kansiota xdg-open:lla. Tiedosto on tässä: {}", + "gui_status_indicator_chat_started": "Keskustellaan", + "gui_status_indicator_chat_scheduled": "Ajastettu…", + "gui_status_indicator_chat_working": "Aloitetaan…", + "gui_status_indicator_chat_stopped": "Valmiina keskustelemaan", + "gui_chat_url_description": "Kuka tahansa tällä Onionshare-osoitteella voi liittyä tähän keskusteluryhmään käyttämällä Tor-selainta: ", + "gui_please_wait_no_button": "Aloitetaan…", + "gui_qr_code_dialog_title": "OnionSharen QR-koodi", + "gui_show_url_qr_code": "Näytä QR-koodi", + "gui_receive_flatpak_data_dir": "Koska asensin OnionSharen käyttämällä Flatpakia, sinun täytyy tallentaa tiedostot kansioon sijainnissa ~/OnionShare.", + "gui_chat_stop_server": "Pysäytä chat-palvelin", + "gui_chat_start_server": "Perusta chat-palvelin" } diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/src/onionshare/resources/locale/gl.json index 67b095cc..314ae47a 100644 --- a/desktop/src/onionshare/resources/locale/gl.json +++ b/desktop/src/onionshare/resources/locale/gl.json @@ -201,5 +201,10 @@ "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" + "gui_status_indicator_chat_stopped": "Preparado para conversar", + "gui_settings_theme_dark": "Escuro", + "gui_settings_theme_light": "Claro", + "gui_settings_theme_auto": "Auto", + "gui_settings_theme_label": "Decorado", + "gui_please_wait_no_button": "Iniciando…" } diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json index e5a6d893..8efb9301 100644 --- a/desktop/src/onionshare/resources/locale/hi.json +++ b/desktop/src/onionshare/resources/locale/hi.json @@ -67,24 +67,24 @@ "gui_settings_sharing_label": "साझा सेटिंग्स", "gui_settings_close_after_first_download_option": "इस फाइल को भेजने के बाद साझा बंद कर दें", "gui_settings_connection_type_label": "OnionShare को Tor से कैसे जुड़ना चाहिए?", - "gui_settings_connection_type_bundled_option": "", - "gui_settings_connection_type_automatic_option": "", - "gui_settings_connection_type_control_port_option": "", - "gui_settings_connection_type_socket_file_option": "", + "gui_settings_connection_type_bundled_option": "OnionShare में निर्मित Tor संस्करण का उपयोग करें", + "gui_settings_connection_type_automatic_option": "Tor Browser के साथ ऑटो-कॉन्फ़िगरेशन का प्रयास करें", + "gui_settings_connection_type_control_port_option": "कंट्रोल पोर्ट का उपयोग करके कनेक्ट करें", + "gui_settings_connection_type_socket_file_option": "सॉकेट फ़ाइल का उपयोग करके कनेक्ट करें", "gui_settings_connection_type_test_button": "", - "gui_settings_control_port_label": "", - "gui_settings_socket_file_label": "", - "gui_settings_socks_label": "", - "gui_settings_authenticate_label": "", - "gui_settings_authenticate_no_auth_option": "", + "gui_settings_control_port_label": "कण्ट्रोल पोर्ट", + "gui_settings_socket_file_label": "सॉकेट फ़ाइल", + "gui_settings_socks_label": "SOCKS पोर्ट", + "gui_settings_authenticate_label": "Tor प्रमाणीकरण सेटिंग्स", + "gui_settings_authenticate_no_auth_option": "कोई प्रमाणीकरण या कुकी प्रमाणीकरण नहीं", "gui_settings_authenticate_password_option": "", "gui_settings_password_label": "", - "gui_settings_tor_bridges": "", - "gui_settings_tor_bridges_no_bridges_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "", + "gui_settings_tor_bridges": "Tor ब्रिज सपोर्ट", + "gui_settings_tor_bridges_no_bridges_radio_option": "ब्रिड्जेस का प्रयोग न करें", + "gui_settings_tor_bridges_obfs4_radio_option": "पहले से निर्मित obfs4 प्लगेबल ट्रांसपोर्टस का उपयोग करें", + "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "पहले से निर्मित obfs4 प्लगेबल ट्रांसपोर्टस का उपयोग करें (obfs4proxy अनिवार्य)", + "gui_settings_tor_bridges_meek_lite_azure_radio_option": "पहले से निर्मित meek_lite (Azure) प्लगेबल ट्रांसपोर्टस का उपयोग करें", + "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "पहले से निर्मित meek_lite (Azure) प्लगेबल ट्रांसपोर्टस का उपयोग करें (obfs4proxy अनिवार्य है)", "gui_settings_meek_lite_expensive_warning": "", "gui_settings_tor_bridges_custom_radio_option": "", "gui_settings_tor_bridges_custom_label": "", @@ -191,5 +191,7 @@ "gui_chat_stop_server": "चैट सर्वर बंद करें", "gui_chat_start_server": "चैट सर्वर शुरू करें", "gui_file_selection_remove_all": "सभी हटाएं", - "gui_remove": "हटाएं" + "gui_remove": "हटाएं", + "gui_qr_code_dialog_title": "OnionShare क्यूआर कोड", + "gui_receive_flatpak_data_dir": "चूँकि आपने फ़्लैटपैक का उपयोग करके OnionShare स्थापित किया है, इसलिए आपको फ़ाइलों को ~/OnionShare फ़ोल्डर में सहेजना होगा।" } diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/src/onionshare/resources/locale/hr.json index 6c399c89..29252c1d 100644 --- a/desktop/src/onionshare/resources/locale/hr.json +++ b/desktop/src/onionshare/resources/locale/hr.json @@ -4,8 +4,8 @@ "no_available_port": "Priključak za pokretanje Onion usluge nije pronađen", "other_page_loaded": "Adresa učitana", "incorrect_password": "Neispravna lozinka", - "close_on_autostop_timer": "Zaustavljeno, jer je vrijeme timera za automatsko zaustavljanje isteklo", - "closing_automatically": "Zaustavljeno, jer je prijenos završen", + "close_on_autostop_timer": "Prekinuto, jer je vrijeme timera za automatsko prekidanje isteklo", + "closing_automatically": "Prekinuto, jer je prijenos završen", "large_filesize": "Upozorenje: Slanje velike količine podataka može trajati satima", "gui_drag_and_drop": "Povuci i ispusti datoteke i mape koje želiš dijeliti", "gui_add": "Dodaj", @@ -14,13 +14,13 @@ "gui_delete": "Izbriši", "gui_choose_items": "Odaberi", "gui_share_start_server": "Pokreni dijeljenje", - "gui_share_stop_server": "Zaustavi dijeljenje", - "gui_share_stop_server_autostop_timer": "Zaustavi dijeljenje ({})", - "gui_stop_server_autostop_timer_tooltip": "Timer za automatsko zaustavljanje završava pri {}", + "gui_share_stop_server": "Prekini dijeljenje", + "gui_share_stop_server_autostop_timer": "Prekini dijeljenje ({})", + "gui_stop_server_autostop_timer_tooltip": "Timer za automatsko prekidanje završava u {}", "gui_start_server_autostart_timer_tooltip": "Timer za automatsko pokretanje završava u {}", "gui_receive_start_server": "Pokreni modus primanja", - "gui_receive_stop_server": "Zaustavi modus primanja", - "gui_receive_stop_server_autostop_timer": "Zaustavi modus primanja ({} preostalo)", + "gui_receive_stop_server": "Prekini modus primanja", + "gui_receive_stop_server_autostop_timer": "Prekini modus primanja ({} preostalo)", "gui_copy_url": "Kopiraj adresu", "gui_copy_hidservauth": "Kopiraj HidServAuth", "gui_canceled": "Prekinuto", @@ -95,7 +95,7 @@ "settings_error_bundled_tor_timeout": "Povezivanje s Torom traje predugo. Možda nemaš vezu s internetom ili imaš netočno postavljen sat sustava?", "settings_error_bundled_tor_broken": "Neuspjelo povezivanje OnionShare-a s Torom:\n{}", "settings_test_success": "Povezan s Tor kontrolerom.\n\nTor verzija: {}\nPodržava kratkotrajne Onion usluge: {}.\nPodržava autentifikaciju klijenta: {}.\nPodržava .onion adrese sljedeće generacije: {}.", - "error_tor_protocol_error": "Greška s Torom: {}", + "error_tor_protocol_error": "Dogodila se greška s Torom: {}", "error_tor_protocol_error_unknown": "Nepoznata greška s Torom", "connecting_to_tor": "Povezivanje s Tor mrežom", "update_available": "Objavljen je novi OnionShare. Pritisni ovdje za preuzimanje.

Trenutačno koristiš verziju {}, a najnovija verzija je {}.", @@ -108,10 +108,10 @@ "gui_tor_connection_error_settings": "U postavkama promijeni način na koji se OnionShare povezuje s Tor mrežom.", "gui_tor_connection_canceled": "Neuspjelo povezivanje s Torom.\n\nProvjeri vezu s internetom, a zatim ponovo pokreni OnionShare i postavi njegovu vezu s Torom.", "gui_tor_connection_lost": "Prekinuta veza s Torom.", - "gui_server_started_after_autostop_timer": "Vrijeme timera za automatsko zaustavljanje je isteklo prije nego što je poslužitelj započeo. Izradi novo dijeljenje.", - "gui_server_autostop_timer_expired": "Vrijeme timera za automatsko zaustavljanje je već isteklo. Za pokretanje dijeljenja, podesi vrijeme.", + "gui_server_started_after_autostop_timer": "Vrijeme timera za automatsko prekidanje je isteklo prije nego što je poslužitelj započeo. Izradi novo dijeljenje.", + "gui_server_autostop_timer_expired": "Vrijeme timera za automatsko prekidanje je već isteklo. Za pokretanje dijeljenja, podesi vrijeme.", "gui_server_autostart_timer_expired": "Planirano vrijeme je već prošlo. Za pokretanje dijeljenja, podesi vrijeme.", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko zaustavljanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko prekidanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.", "share_via_onionshare": "Dijeli putem OnionSharea", "gui_connect_to_tor_for_onion_settings": "Poveži se s Torom za prikaz postavki Onion usluge", "gui_use_legacy_v2_onions_checkbox": "Koristi stare adrese", @@ -119,10 +119,10 @@ "gui_share_url_description": "Svatko s ovom OnionShare adresom može preuzeti tvoje datoteke koristeći Tor preglednik: ", "gui_website_url_description": "Svatko s ovom OnionShare adresom može posjetiti tvoju web-stranicu koristeći Tor preglednik: ", "gui_receive_url_description": "Svatko s ovom OnionShare adresom može prenijeti datoteke na tvoje računalo koristeći Tor preglednik: ", - "gui_url_label_persistent": "Ovo se dijeljenje neće automatski zaustaviti.

Svako naredno dijeljenje ponovo koristi istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", - "gui_url_label_stay_open": "Ovo se dijeljenje neće automatski zaustaviti.", - "gui_url_label_onetime": "Ovo će se dijeljenje zaustaviti nakon prvog završavanja.", - "gui_url_label_onetime_and_persistent": "Ovo se dijeljenje neće automatski zaustaviti.

Svako naredno dijeljenje ponovo će koristiti istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", + "gui_url_label_persistent": "Ovo se dijeljenje neće automatski prekinuti.

Svako naredno dijeljenje koristit će istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", + "gui_url_label_stay_open": "Ovo se dijeljenje neće automatski prekinuti.", + "gui_url_label_onetime": "Ovo će se dijeljenje prekinuti nakon prvog završavanja.", + "gui_url_label_onetime_and_persistent": "Ovo se dijeljenje neće automatski prekinuti.

Svako naredno dijeljenje će koristit će istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)", "gui_status_indicator_share_stopped": "Spremno za dijeljenje", "gui_status_indicator_share_working": "Pokretanje …", "gui_status_indicator_share_scheduled": "Planirano …", @@ -183,10 +183,10 @@ "mode_settings_website_disable_csp_checkbox": "Ne šalji zaglavlja politike sigurnosti sadržaja (omogućuje tvojim web-stranicama koristiti strane resurse)", "mode_settings_receive_data_dir_browse_button": "Pregledaj", "mode_settings_receive_data_dir_label": "Spremi datoteke u", - "mode_settings_share_autostop_sharing_checkbox": "Zaustavi dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)", + "mode_settings_share_autostop_sharing_checkbox": "Prekini dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)", "mode_settings_client_auth_checkbox": "Koristi autorizaciju klijenta", "mode_settings_legacy_checkbox": "Koristi stare adrese (v2 onion usluge, ne preporučuje se)", - "mode_settings_autostop_timer_checkbox": "Zaustavi onion uslugu u planirano vrijeme", + "mode_settings_autostop_timer_checkbox": "Prekini onion uslugu u planirano vrijeme", "mode_settings_autostart_timer_checkbox": "Pokreni onion uslugu u planirano vrijeme", "mode_settings_public_checkbox": "Nemoj koristiti lozinku", "mode_settings_persistent_checkbox": "Spremi ovu karticu i automatski je otvori kad otvorim OnionShare", @@ -212,10 +212,10 @@ "gui_new_tab": "Nova kartica", "gui_qr_code_description": "Skeniraj ovaj QR kȏd pomoću QR čitača, kao što je kamera na tvom telefonu, za lakše dijeljenje adrese OnionSharea.", "gui_receive_flatpak_data_dir": "Budući da je tvoj OnionShare instaliran pomoću Flatpak-a, datoteke moraš spremiti u jednu mapu u ~/OnionShare.", - "gui_tab_name_chat": "Chat", - "gui_new_tab_chat_button": "Anonimni chat", - "gui_chat_start_server": "Pokreni poslužitelja za chat", - "gui_chat_stop_server": "Zaustavi poslužitelja za chat", + "gui_tab_name_chat": "Razgovor", + "gui_new_tab_chat_button": "Razgovaraj anonimno", + "gui_chat_start_server": "Pokreni poslužitelja za razgovor", + "gui_chat_stop_server": "Prekini poslužitelja za razgovor", "gui_chat_stop_server_autostop_timer": "Zaustavi poslužitelja za chat ({})", "gui_tab_name_receive": "Primi", "gui_open_folder_error": "Otvaranje mape s xdg-open nije uspjelo. Datoteka je ovdje: {}", @@ -225,13 +225,22 @@ "gui_show_url_qr_code": "Prikaži QR-kod", "gui_file_selection_remove_all": "Ukloni sve", "gui_remove": "Ukloni", - "gui_main_page_chat_button": "Pokreni chat", + "gui_main_page_chat_button": "Pokreni razgovor", "gui_main_page_website_button": "Pokreni hosting", "gui_main_page_receive_button": "Pokreni primanje", "gui_main_page_share_button": "Pokreni dijeljenje", - "gui_chat_url_description": "Svatko s ovom OnionShare adresom može se pridružiti sobi za chat koristeći Tor preglednik: ", + "gui_chat_url_description": "Svatko s ovom OnionShare adresom može se pridružiti sobi za razgovor koristeći Tor preglednik: ", "error_port_not_available": "OnionShare priključak nije dostupan", "gui_rendezvous_cleanup_quit_early": "Prekini preuranjeno", "gui_rendezvous_cleanup": "Čekanje na zatvarnje Tor lanaca, kako bi se osigurao uspješan prijenos datoteka.\n\nOvo može potrajati nekoliko minuta.", - "gui_color_mode_changed_notice": "Za primjenu novog modusa boja ponovo pokreni OnionShare ." + "gui_color_mode_changed_notice": "Za primjenu novog modusa boja ponovo pokreni OnionShare .", + "history_receive_read_message_button": "Čitaj poruku", + "mode_settings_receive_disable_files_checkbox": "Onemogući prenošenje datoteka", + "mode_settings_receive_disable_text_checkbox": "Onemogući slanje teksta", + "mode_settings_title_label": "Prilagođeni naslov", + "gui_status_indicator_chat_scheduled": "Planirano …", + "gui_status_indicator_chat_working": "Pokretanje …", + "mode_settings_receive_webhook_url_checkbox": "Koristi automatsko obavještavanje", + "gui_status_indicator_chat_started": "Razgovor u tijeku", + "gui_status_indicator_chat_stopped": "Spremno za razgovor" } diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/src/onionshare/resources/locale/id.json index 9980a479..f4c299c5 100644 --- a/desktop/src/onionshare/resources/locale/id.json +++ b/desktop/src/onionshare/resources/locale/id.json @@ -277,5 +277,9 @@ "gui_close_tab_warning_persistent_description": "Tab ini persisten. Jika Anda menutup tab ini Anda akan kehilangan alamat onion yang sedang digunakan. Apakah Anda yakin mau menutup tab ini?", "gui_chat_url_description": "Siapa saja dengan alamat OnionShare ini dapat bergabung di ruang obrolan ini menggunakan Tor Browser:", "gui_website_url_description": "Siapa saja dengan alamat OnionShare ini dapat mengunjungi situs web Anda menggunakan Tor Browser:", - "gui_server_autostart_timer_expired": "Waktu yang dijadwalkan telah terlewati. Silakan sesuaikan waktu untuk memulai berbagi." + "gui_server_autostart_timer_expired": "Waktu yang dijadwalkan telah terlewati. Silakan sesuaikan waktu untuk memulai berbagi.", + "gui_status_indicator_chat_started": "Mengobrol", + "gui_status_indicator_chat_scheduled": "Menjadwalkan…", + "gui_status_indicator_chat_working": "Memulai…", + "gui_status_indicator_chat_stopped": "Siap untuk mengobrol" } diff --git a/desktop/src/onionshare/resources/locale/is.json b/desktop/src/onionshare/resources/locale/is.json index e8a3bf3b..20835712 100644 --- a/desktop/src/onionshare/resources/locale/is.json +++ b/desktop/src/onionshare/resources/locale/is.json @@ -293,5 +293,14 @@ "mode_settings_receive_webhook_url_checkbox": "Nota webhook fyrir tilkynningar", "mode_settings_receive_disable_files_checkbox": "Gera innsendingu skráa óvirka", "mode_settings_receive_disable_text_checkbox": "Gera innsendingu texta óvirka", - "mode_settings_title_label": "Sérsniðinn titill" + "mode_settings_title_label": "Sérsniðinn titill", + "gui_status_indicator_chat_started": "Spjalla", + "gui_status_indicator_chat_scheduled": "Áætlað…", + "gui_status_indicator_chat_working": "Ræsi…", + "gui_status_indicator_chat_stopped": "Tilbúið í spjall", + "gui_please_wait_no_button": "Ræsi…", + "gui_settings_theme_dark": "Dökkt", + "gui_settings_theme_light": "Ljóst", + "gui_settings_theme_auto": "Sjálfvirkt", + "gui_settings_theme_label": "Þema" } diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/src/onionshare/resources/locale/lt.json index b34bb52a..47b61dd8 100644 --- a/desktop/src/onionshare/resources/locale/lt.json +++ b/desktop/src/onionshare/resources/locale/lt.json @@ -4,10 +4,10 @@ "no_available_port": "", "other_page_loaded": "Adresas įkeltas", "incorrect_password": "Neteisingas slaptažodis", - "close_on_autostop_timer": "", + "close_on_autostop_timer": "Sustabdyta, nes baigėsi automatinio sustabdymo laikmatis", "closing_automatically": "Sustabdyta, nes perdavimas yra užbaigtas", "large_filesize": "Įspėjimas: Didelio viešinio siuntimas gali užtrukti ilgą laiką (kelias valandas)", - "gui_drag_and_drop": "Norėdami bendrinti,\ntempkite čia failus ir aplankus", + "gui_drag_and_drop": "Norėdami bendrinti, tempkite failus ir aplankus čia", "gui_add": "Pridėti", "gui_add_files": "Pridėti failus", "gui_add_folder": "Pridėti aplanką", @@ -16,8 +16,8 @@ "gui_share_start_server": "Pradėti bendrinti", "gui_share_stop_server": "Nustoti bendrinti", "gui_share_stop_server_autostop_timer": "Nustoti bendrinti ({})", - "gui_stop_server_autostop_timer_tooltip": "", - "gui_start_server_autostart_timer_tooltip": "", + "gui_stop_server_autostop_timer_tooltip": "Automatinio sustabdymo laikmatis baigiasi {}", + "gui_start_server_autostart_timer_tooltip": "Automatinio paleidimo laikmatis baigiasi {}", "gui_receive_start_server": "Įjungti gavimo veikseną", "gui_receive_stop_server": "Išjungti gavimo veikseną", "gui_receive_stop_server_autostop_timer": "Išjungti gavimo veikseną (Liko {})", @@ -28,9 +28,9 @@ "gui_copied_url": "OnionShare adresas nukopijuotas į iškarpinę", "gui_copied_hidservauth_title": "HidServAuth nukopijuota", "gui_copied_hidservauth": "HidServAuth eilutė nukopijuota į iškarpinę", - "gui_waiting_to_start": "", + "gui_waiting_to_start": "Planuojama pradėti {}. Spustelėkite , jei norite atšaukti.", "gui_please_wait": "Pradedama… Spustelėkite norėdami atsisakyti.", - "error_rate_limit": "", + "error_rate_limit": "Kažkas padarė per daug klaidingų bandymų atspėti jūsų slaptažodį, todėl „OnionShare“ sustabdė serverį. Vėl pradėkite bendrinti ir nusiųskite gavėjui naują bendrinimo adresą.", "zip_progress_bar_format": "Glaudinama: %p%", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", @@ -40,7 +40,7 @@ "gui_settings_stealth_hidservauth_string": "", "gui_settings_autoupdate_label": "Tikrinti, ar yra nauja versija", "gui_settings_autoupdate_option": "Pranešti, kai bus prieinama nauja versija", - "gui_settings_autoupdate_timestamp": "", + "gui_settings_autoupdate_timestamp": "Paskutinį kartą tikrinta: {}", "gui_settings_autoupdate_timestamp_never": "Niekada", "gui_settings_autoupdate_check_button": "Tikrinti, ar yra nauja versija", "gui_settings_general_label": "Bendri nustatymai", @@ -50,25 +50,25 @@ "gui_settings_csp_header_disabled_option": "", "gui_settings_individual_downloads_label": "", "gui_settings_connection_type_label": "Kaip OnionShare turėtų jungtis prie Tor?", - "gui_settings_connection_type_bundled_option": "", - "gui_settings_connection_type_automatic_option": "", - "gui_settings_connection_type_control_port_option": "", - "gui_settings_connection_type_socket_file_option": "", - "gui_settings_connection_type_test_button": "", - "gui_settings_control_port_label": "", - "gui_settings_socket_file_label": "", + "gui_settings_connection_type_bundled_option": "Naudokite „Tor“ versiją, integruotą į „OnionShare“", + "gui_settings_connection_type_automatic_option": "Bandyti automatiškai konfigūruoti naudojant „Tor“ naršyklę", + "gui_settings_connection_type_control_port_option": "Prisijunkti naudojant valdymo prievadą", + "gui_settings_connection_type_socket_file_option": "Prisijungti naudojant socket failą", + "gui_settings_connection_type_test_button": "Tikrinti ryšį su „Tor“", + "gui_settings_control_port_label": "Valdymo prievadas", + "gui_settings_socket_file_label": "Socket failas", "gui_settings_socks_label": "SOCKS prievadas", - "gui_settings_authenticate_label": "", - "gui_settings_authenticate_no_auth_option": "", + "gui_settings_authenticate_label": "Tor autentifikavimo nustatymai", + "gui_settings_authenticate_no_auth_option": "Jokio autentifikavimo ar slapukų autentifikavimo", "gui_settings_authenticate_password_option": "Slaptažodis", "gui_settings_password_label": "Slaptažodis", - "gui_settings_tor_bridges": "", - "gui_settings_tor_bridges_no_bridges_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option": "", - "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option": "", - "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "", - "gui_settings_meek_lite_expensive_warning": "", + "gui_settings_tor_bridges": "„Tor“ tilto palaikymas", + "gui_settings_tor_bridges_no_bridges_radio_option": "Nenaudoti tiltų", + "gui_settings_tor_bridges_obfs4_radio_option": "Naudoti integruotą obfs4 prijungiamą transportą", + "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Naudoti integruotą obfs4 prijungiamą transportą (reikalingas obfs4proxy)", + "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Naudoti integruotus meek_lite („Azure“) prijungiamus transportus", + "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Naudoti integruotus meek_lite („Azure“) prijungiamus transportus (reikalingas obfs4proxy)", + "gui_settings_meek_lite_expensive_warning": "Įspėjimas:

Meek_lite tiltai labai brangiai kainuoja „Tor“ projektui.

Jais naudokitės tik tuo atveju, jei negalite prisijungti prie „Tor“ tiesiogiai, per obfs4 transportą ar kitus įprastus tiltus.", "gui_settings_tor_bridges_custom_radio_option": "Naudoti tinkintus tinklų tiltus", "gui_settings_tor_bridges_custom_label": "Galite gauti tinklų tiltus iš https://bridges.torproject.org", "gui_settings_tor_bridges_invalid": "Nei vienas iš jūsų pridėtų tinklų tiltų neveikia.\nPatikrinkite juos dar kartą arba pridėkite kitus.", @@ -79,60 +79,60 @@ "gui_settings_autostop_timer": "", "gui_settings_autostart_timer_checkbox": "", "gui_settings_autostart_timer": "", - "settings_error_unknown": "", - "settings_error_automatic": "", - "settings_error_socket_port": "", - "settings_error_socket_file": "", - "settings_error_auth": "", - "settings_error_missing_password": "", - "settings_error_unreadable_cookie_file": "", - "settings_error_bundled_tor_not_supported": "", - "settings_error_bundled_tor_timeout": "", + "settings_error_unknown": "Nepavyksta prisijungti prie „Tor“ valdiklio, nes jūsų nustatymai nustatyti nesuprantamai.", + "settings_error_automatic": "Nepavyko prisijungti prie „Tor“ valdiklio. Ar „Tor“ naršyklė (prieinama torproject.org) veikia fone?", + "settings_error_socket_port": "Nepavyksta prisijungti prie „Tor“ valdiklio adresu {}:{}.", + "settings_error_socket_file": "Negalima prisijungti prie „Tor“ valdiklio naudojant lizdo failą {}.", + "settings_error_auth": "Prisijungta prie {}:{}, bet negalima patvirtinti autentiškumo. Galbūt tai ne „Tor“ valdiklis?", + "settings_error_missing_password": "Prisijungta prie „Tor“ valdiklio, tačiau norint jį autentifikuoti reikia slaptažodžio.", + "settings_error_unreadable_cookie_file": "Prisijungta prie „Tor“ valdiklio, bet slaptažodis gali būti klaidingas arba jūsų naudotojui neleidžiama skaityti slapukų failo.", + "settings_error_bundled_tor_not_supported": "Naudojant „Tor“ versiją, kuri pateikiama kartu su \"OnionShare\", \"Windows\" arba \"macOS\" sistemose ji neveiks kūrėjo režime.", + "settings_error_bundled_tor_timeout": "Per ilgai trunka prisijungimas prie „Tor“. Galbūt nesate prisijungę prie interneto arba turite netikslų sistemos laikrodį?", "settings_error_bundled_tor_broken": "OnionShare nepavyko prisijungti prie Tor:\n{}", - "settings_test_success": "", - "error_tor_protocol_error": "", + "settings_test_success": "Prisijungta prie „Tor“ valdiklio.\n\n„Tor“ versija: {}\nPalaiko efemerines onion paslaugas: {}.\nPalaiko kliento autentifikavimą: {}.\nPalaiko naujos kartos .onion adresus: {}.", + "error_tor_protocol_error": "Įvyko „Tor“ klaida: {}", "error_tor_protocol_error_unknown": "", "connecting_to_tor": "Jungiamasi prie Tor tinklo", - "update_available": "", - "update_error_invalid_latest_version": "", - "update_error_check_error": "", + "update_available": "Išleistas naujas „OnionShare“. Paspauskite čia, kad jį gautumėte.

Jūs naudojate {}, o naujausia versija yra {}.", + "update_error_invalid_latest_version": "Nepavyko patikrinti naujos versijos: „OnionShare“ svetainė sako, kad naujausia versija yra neatpažįstama „{}“…", + "update_error_check_error": "Nepavyko patikrinti naujos versijos: Galbūt nesate prisijungę prie „Tor“ arba „OnionShare“ svetainė neveikia?", "update_not_available": "Jūs naudojate naujausią OnionShare versiją.", - "gui_tor_connection_ask": "", + "gui_tor_connection_ask": "Atidarykite nustatymus, kad sutvarkytumėte ryšį su „Tor“?", "gui_tor_connection_ask_open_settings": "Taip", "gui_tor_connection_ask_quit": "Išeiti", "gui_tor_connection_error_settings": "Pabandykite nustatymuose pakeisti tai, kaip OnionShare jungiasi prie Tor tinklo.", "gui_tor_connection_canceled": "Nepavyko prisijungti prie Tor.\n\nĮsitikinkite, kad esate prisijungę prie interneto, o tuomet iš naujo atverkite OnionShare ir nustatykite prisijungimą prie Tor.", "gui_tor_connection_lost": "Atsijungta nuo Tor.", - "gui_server_started_after_autostop_timer": "", - "gui_server_autostop_timer_expired": "", - "gui_server_autostart_timer_expired": "", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "", + "gui_server_started_after_autostop_timer": "Automatinio sustabdymo laikmatis baigėsi prieš paleidžiant serverį. Prašome sukurti naują bendrinimą.", + "gui_server_autostop_timer_expired": "Automatinio sustabdymo laikmatis jau baigėsi. Sureguliuokite jį, kad pradėtumėte dalintis.", + "gui_server_autostart_timer_expired": "Numatytas laikas jau praėjo. Pakoreguokite jį, kad galėtumėte pradėti dalintis.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Automatinio sustabdymo laikas negali būti toks pat arba ankstesnis už automatinio paleidimo laiką. Sureguliuokite jį, kad galėtumėte pradėti dalytis.", "share_via_onionshare": "Bendrinti per OnionShare", "gui_connect_to_tor_for_onion_settings": "", "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "Visi, turintys šį OnionShare adresą gali atsisiųsti jūsų failus, naudodamiesi Tor Naršykle: ", - "gui_website_url_description": "", - "gui_receive_url_description": "", - "gui_url_label_persistent": "", - "gui_url_label_stay_open": "", - "gui_url_label_onetime": "", - "gui_url_label_onetime_and_persistent": "", - "gui_status_indicator_share_stopped": "", + "gui_website_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali apsilankyti jūsų svetainėje naudodamas „Tor“ naršyklę: ", + "gui_receive_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali įkelti failus į jūsų kompiuterį naudodamas „Tor“ naršyklę: ", + "gui_url_label_persistent": "Šis bendrinimas nebus automatiškai sustabdytas.

Kiekvienas vėlesnis bendrinimas pakartotinai naudoja adresą. (Norėdami naudoti vienkartinius adresus, nustatymuose išjunkite \"Naudoti nuolatinį adresą\".)", + "gui_url_label_stay_open": "Šis bendrinimas nebus automatiškai sustabdytas.", + "gui_url_label_onetime": "Šis bendrinimas pabaigus bus automatiškai sustabdytas.", + "gui_url_label_onetime_and_persistent": "Šis bendrinimas nebus automatiškai sustabdytas.

Kiekvienas vėlesnis bendrinimas pakartotinai naudos adresą. (Norėdami naudoti vienkartinius adresus, nustatymuose išjunkite \"Naudoti nuolatinį adresą\".)", + "gui_status_indicator_share_stopped": "Parengta dalintis", "gui_status_indicator_share_working": "Pradedama…", - "gui_status_indicator_share_scheduled": "", - "gui_status_indicator_share_started": "", - "gui_status_indicator_receive_stopped": "", - "gui_status_indicator_receive_working": "", - "gui_status_indicator_receive_scheduled": "", + "gui_status_indicator_share_scheduled": "Suplanuota…", + "gui_status_indicator_share_started": "Dalijimasis", + "gui_status_indicator_receive_stopped": "Parengta gauti", + "gui_status_indicator_receive_working": "Pradedama…", + "gui_status_indicator_receive_scheduled": "Suplanuota…", "gui_status_indicator_receive_started": "Gaunama", - "gui_file_info": "", - "gui_file_info_single": "", - "history_in_progress_tooltip": "", - "history_completed_tooltip": "", - "history_requests_tooltip": "", + "gui_file_info": "{} failai, {}", + "gui_file_info_single": "{} failas, {}", + "history_in_progress_tooltip": "{} vykdoma", + "history_completed_tooltip": "{} baigta", + "history_requests_tooltip": "{} žiniatinklio užklausos", "error_cannot_create_data_dir": "Nepavyko sukurti OnionShare duomenų aplanko: {}", - "gui_receive_mode_warning": "", + "gui_receive_mode_warning": "Gavimo režimas leidžia žmonėms nusiųsti failus į jūsų kompiuterį.

Kai kurie failai gali perimti kompiuterio valdymą, jei juos atidarysite. Atidarykite failus tik iš žmonių, kuriais pasitikite, arba jei žinote, ką darote.", "gui_mode_share_button": "", "gui_mode_receive_button": "", "gui_mode_website_button": "", @@ -147,67 +147,98 @@ "systray_menu_exit": "Išeiti", "systray_page_loaded_title": "Puslapis įkeltas", "systray_page_loaded_message": "OnionShare adresas įkeltas", - "systray_share_started_title": "", + "systray_share_started_title": "Pradėtas dalijimasis", "systray_share_started_message": "Pradedama kažkam siųsti failus", - "systray_share_completed_title": "", + "systray_share_completed_title": "Dalijimasis baigtas", "systray_share_completed_message": "Failų siuntimas užbaigtas", - "systray_share_canceled_title": "", - "systray_share_canceled_message": "", - "systray_receive_started_title": "", + "systray_share_canceled_title": "Dalijimasis atšauktas", + "systray_share_canceled_message": "Kažkas atšaukė jūsų failų gavimą", + "systray_receive_started_title": "Pradėtas gavimas", "systray_receive_started_message": "Kažkas siunčia jums failus", "gui_all_modes_history": "Istorija", - "gui_all_modes_clear_history": "", - "gui_all_modes_transfer_started": "", - "gui_all_modes_transfer_finished_range": "", - "gui_all_modes_transfer_finished": "", - "gui_all_modes_transfer_canceled_range": "", - "gui_all_modes_transfer_canceled": "", - "gui_all_modes_progress_complete": "", + "gui_all_modes_clear_history": "Išvalyti viską", + "gui_all_modes_transfer_started": "Pradėta {}", + "gui_all_modes_transfer_finished_range": "Perkelta {} - {}", + "gui_all_modes_transfer_finished": "Perkelta {}", + "gui_all_modes_transfer_canceled_range": "Atšaukta {} - {}", + "gui_all_modes_transfer_canceled": "Atšaukta {}", + "gui_all_modes_progress_complete": "Praėjo %p%, {0:s}.", "gui_all_modes_progress_starting": "{0:s}, %p% (apskaičiuojama)", - "gui_all_modes_progress_eta": "", + "gui_all_modes_progress_eta": "{0:s}, Preliminarus laikas: {1:s}, %p%", "gui_share_mode_no_files": "Kol kas nėra išsiųstų failų", - "gui_share_mode_autostop_timer_waiting": "", - "gui_website_mode_no_files": "", + "gui_share_mode_autostop_timer_waiting": "Laukiama, kol bus baigtas siuntimas", + "gui_website_mode_no_files": "Dar nėra bendrinama jokia svetainė", "gui_receive_mode_no_files": "Kol kas nėra gautų failų", - "gui_receive_mode_autostop_timer_waiting": "", - "days_first_letter": "d.", - "hours_first_letter": "", - "minutes_first_letter": "", - "seconds_first_letter": "", + "gui_receive_mode_autostop_timer_waiting": "Laukiama, kol bus baigtas gavimas", + "days_first_letter": "d", + "hours_first_letter": "val", + "minutes_first_letter": "min", + "seconds_first_letter": "s", "gui_new_tab": "Nauja kortelė", "gui_new_tab_tooltip": "Atverti naują kortelę", - "gui_new_tab_share_button": "", + "gui_new_tab_share_button": "Dalytis failais", "gui_new_tab_share_description": "", - "gui_new_tab_receive_button": "", + "gui_new_tab_receive_button": "Gauti failus", "gui_new_tab_receive_description": "", - "gui_new_tab_website_button": "", + "gui_new_tab_website_button": "Talpinti svetainę", "gui_new_tab_website_description": "", "gui_close_tab_warning_title": "Ar tikrai?", - "gui_close_tab_warning_persistent_description": "", - "gui_close_tab_warning_share_description": "", - "gui_close_tab_warning_receive_description": "", - "gui_close_tab_warning_website_description": "", + "gui_close_tab_warning_persistent_description": "Šis skirtukas yra nuolatinis. Jei jį uždarysite, prarasite jo naudojamą onion adresą. Ar tikrai norite jį uždaryti?", + "gui_close_tab_warning_share_description": "Šiuo metu siunčiate failus. Ar tikrai norite uždaryti šį skirtuką?", + "gui_close_tab_warning_receive_description": "Šiuo metu gaunate failus. Ar tikrai norite uždaryti šį skirtuką?", + "gui_close_tab_warning_website_description": "Aktyviai talpinate svetainę. Ar tikrai norite uždaryti šį skirtuką?", "gui_close_tab_warning_close": "Užverti", "gui_close_tab_warning_cancel": "Atsisakyti", "gui_quit_warning_title": "Ar tikrai?", - "gui_quit_warning_description": "", + "gui_quit_warning_description": "Kuriuose skirtukuose yra aktyviai dalijamasi . Jei išeisite, visi skirtukai bus uždaryti. Ar tikrai norite baigti?", "gui_quit_warning_quit": "Išeiti", "gui_quit_warning_cancel": "Atsisakyti", "mode_settings_advanced_toggle_show": "Rodyti išplėstinius nustatymus", "mode_settings_advanced_toggle_hide": "Slėpti išplėstinius nustatymus", - "mode_settings_persistent_checkbox": "", + "mode_settings_persistent_checkbox": "Išsaugoti šį skirtuką ir automatiškai jį atidaryti, kai atidarysiu „OnionShare“", "mode_settings_public_checkbox": "Nenaudoti slaptažodžio", - "mode_settings_autostart_timer_checkbox": "", - "mode_settings_autostop_timer_checkbox": "", - "mode_settings_legacy_checkbox": "", - "mode_settings_client_auth_checkbox": "", - "mode_settings_share_autostop_sharing_checkbox": "", + "mode_settings_autostart_timer_checkbox": "Pradėti onion paslaugos paleidimą suplanuotu laiku", + "mode_settings_autostop_timer_checkbox": "Sustabdyti onion paslaugos paleidimą suplanuotu laiku", + "mode_settings_legacy_checkbox": "Naudoti senąjį adresą (nerekomenduojama naudoti v2 onion paslaugos)", + "mode_settings_client_auth_checkbox": "Naudoti kliento autorizavimą", + "mode_settings_share_autostop_sharing_checkbox": "Sustabdyti dalijimąsi po to, kai failai buvo išsiųsti (atžymėkite, jei norite leisti atsisiųsti atskirus failus)", "mode_settings_receive_data_dir_label": "Įrašyti failus į", "mode_settings_receive_data_dir_browse_button": "Naršyti", - "mode_settings_website_disable_csp_checkbox": "", + "mode_settings_website_disable_csp_checkbox": "Nesiųskite turinio saugumo politikos antraštės (leidžia jūsų svetainei naudoti trečiųjų šalių išteklius)", "gui_file_selection_remove_all": "Šalinti visus", "gui_remove": "Šalinti", "gui_qr_code_dialog_title": "OnionShare QR kodas", "gui_show_url_qr_code": "Rodyti QR kodą", - "gui_open_folder_error": "Nepavyko atverti aplanko naudojant xdg-open. Failas yra čia: {}" + "gui_open_folder_error": "Nepavyko atverti aplanko naudojant xdg-open. Failas yra čia: {}", + "gui_chat_stop_server": "Sustabdyti pokalbių serverį", + "gui_chat_start_server": "Pradėti pokalbių serverį", + "history_receive_read_message_button": "Skaityti žinutę", + "mode_settings_title_label": "Pasirinktinis pavadinimas", + "gui_main_page_chat_button": "Pradėti pokalbį", + "gui_main_page_receive_button": "Pradėti gavimą", + "gui_main_page_share_button": "Pradėti dalintis", + "gui_new_tab_chat_button": "Kalbėtis anonimiškai", + "gui_status_indicator_chat_scheduled": "Suplanuota…", + "gui_status_indicator_chat_working": "Pradedama…", + "gui_tab_name_chat": "Pokalbiai", + "gui_tab_name_website": "Tinklalapis", + "gui_tab_name_receive": "Gauti", + "gui_tab_name_share": "Dalintis", + "gui_receive_flatpak_data_dir": "Kadangi „OnionShare“ įdiegėte naudodami „Flatpak“, turite išsaugoti failus aplanke, esančiame ~/OnionShare.", + "mode_settings_receive_webhook_url_checkbox": "Naudoti pranešimų webhook", + "gui_main_page_website_button": "Pradėti talpinimą", + "gui_status_indicator_chat_started": "Kalbamasi", + "gui_status_indicator_chat_stopped": "Paruošta pokalbiui", + "gui_color_mode_changed_notice": "Iš naujo paleiskite „OnionShare“, kad būtų pritaikytas naujas spalvų režimas.", + "mode_settings_receive_disable_files_checkbox": "Išjungti failų įkėlimą", + "mode_settings_receive_disable_text_checkbox": "Išjungti teksto pateikimą", + "gui_rendezvous_cleanup": "Laukiama, kol užsidarys „Tor“ grandinės, kad įsitikintume, jog jūsų failai sėkmingai perkelti.\n\nTai gali užtrukti kelias minutes.", + "gui_rendezvous_cleanup_quit_early": "Išeiti anksčiau", + "error_port_not_available": "„OnionShare“ prievadas nepasiekiamas", + "gui_chat_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali prisijungti prie šio pokalbių kambario naudodamas „Tor“ naršyklę: ", + "gui_settings_theme_dark": "Tamsi", + "gui_settings_theme_light": "Šviesi", + "gui_settings_theme_auto": "Automatinė", + "gui_settings_theme_label": "Tema", + "gui_please_wait_no_button": "Pradedama…" } diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/src/onionshare/resources/locale/pl.json index 61b07d8b..2ef34565 100644 --- a/desktop/src/onionshare/resources/locale/pl.json +++ b/desktop/src/onionshare/resources/locale/pl.json @@ -283,5 +283,8 @@ "gui_close_tab_warning_share_description": "Jesteś w trakcie wysyłania plików. Czy na pewno chcesz zamknąć tę kartę?", "gui_close_tab_warning_persistent_description": "Ta zakładka jest trwała. Jeśli ją zamkniesz, stracisz adres cebulowy, którego używa. Czy na pewno chcesz ją zamknąć?", "gui_color_mode_changed_notice": "Uruchom ponownie OnionShare aby zastosować nowy tryb kolorów.", - "gui_chat_url_description": "Każdy z tym adresem OnionShare może dołączyć do tego pokoju używając Przeglądarki Tor: " + "gui_chat_url_description": "Każdy z tym adresem OnionShare może dołączyć do tego pokoju używając Przeglądarki Tor: ", + "mode_settings_receive_disable_files_checkbox": "Wyłącz wysyłanie plików", + "gui_status_indicator_chat_scheduled": "Zaplanowane…", + "gui_status_indicator_chat_working": "Uruchamianie…" } diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/src/onionshare/resources/locale/pt_BR.json index 2f261bc3..bc7fe0c7 100644 --- a/desktop/src/onionshare/resources/locale/pt_BR.json +++ b/desktop/src/onionshare/resources/locale/pt_BR.json @@ -287,5 +287,14 @@ "gui_chat_url_description": "Qualquer um com este endereço OnionShare pode entrar nesta sala de chat usando o Tor Browser: ", "gui_rendezvous_cleanup_quit_early": "Fechar facilmente", "gui_rendezvous_cleanup": "Aguardando o fechamento dos circuitos do Tor para ter certeza de que seus arquivos foram transferidos com sucesso.\n\nIsso pode demorar alguns minutos.", - "gui_color_mode_changed_notice": "Reinicie o OnionShare para que o novo modo de cor seja aplicado." + "gui_color_mode_changed_notice": "Reinicie o OnionShare para que o novo modo de cor seja aplicado.", + "history_receive_read_message_button": "Ler mensagem", + "mode_settings_receive_webhook_url_checkbox": "Usar webhook de notificação", + "mode_settings_receive_disable_files_checkbox": "Desativar o carregamento de arquivos", + "mode_settings_receive_disable_text_checkbox": "Desativar envio de texto", + "mode_settings_title_label": "Título personalizado", + "gui_status_indicator_chat_started": "Conversando", + "gui_status_indicator_chat_scheduled": "Programando…", + "gui_status_indicator_chat_working": "Começando…", + "gui_status_indicator_chat_stopped": "Pronto para conversar" } diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/src/onionshare/resources/locale/sv.json index 9e07d2c4..a3c97704 100644 --- a/desktop/src/onionshare/resources/locale/sv.json +++ b/desktop/src/onionshare/resources/locale/sv.json @@ -118,7 +118,7 @@ "settings_error_bundled_tor_timeout": "Det tar för lång tid att ansluta till Tor. Kanske är du inte ansluten till Internet, eller har en felaktig systemklocka?", "settings_error_bundled_tor_broken": "OnionShare kunde inte ansluta till Tor:\n{}", "settings_test_success": "Ansluten till Tor-regulatorn.\n\nTor-version: {}\nStöder efemära onion-tjänster: {}.\nStöder klientautentisering: {}.\nStöder nästa generations .onion-adresser: {}.", - "error_tor_protocol_error": "Det fanns ett fel med Tor: {}", + "error_tor_protocol_error": "Det uppstod ett fel med Tor: {}", "error_tor_protocol_error_unknown": "Det fanns ett okänt fel med Tor", "error_invalid_private_key": "Denna privata nyckeltyp stöds inte", "connecting_to_tor": "Ansluter till Tor-nätverket", @@ -126,7 +126,7 @@ "update_error_check_error": "Det gick inte att söka efter ny version: Kanske är du inte ansluten till Tor eller OnionShare-webbplatsen är nere?", "update_error_invalid_latest_version": "Det gick inte att söka efter ny version: OnionShare-webbplatsen säger att den senaste versionen är den oigenkännliga \"{}\"…", "update_not_available": "Du kör den senaste OnionShare.", - "gui_tor_connection_ask": "Öppna inställningarna för att sortera ut anslutning till Tor?", + "gui_tor_connection_ask": "Öppna inställningarna för att reda ut anslutning till Tor?", "gui_tor_connection_ask_open_settings": "Ja", "gui_tor_connection_ask_quit": "Avsluta", "gui_tor_connection_error_settings": "Försök att ändra hur OnionShare ansluter till Tor-nätverket i inställningarna.", @@ -219,7 +219,7 @@ "gui_settings_autostart_timer_checkbox": "Använd automatisk start-tidtagare", "gui_settings_autostart_timer": "Starta delning vid:", "gui_server_autostart_timer_expired": "Den schemalagda tiden har redan passerat. Vänligen justera den för att starta delning.", - "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Den automatiska stopp-tiden kan inte vara samma eller tidigare än den automatiska starttiden. Vänligen justera den för att starta delning.", + "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Den automatiska stopp-tiden kan inte vara samma eller tidigare än den automatiska starttiden. Vänligen justera den för att starta delning.", "gui_status_indicator_share_scheduled": "Planerad…", "gui_status_indicator_receive_scheduled": "Planerad…", "days_first_letter": "d", @@ -248,7 +248,7 @@ "mode_settings_receive_data_dir_label": "Spara filer till", "mode_settings_share_autostop_sharing_checkbox": "Stoppa delning efter att filer har skickats (avmarkera för att tillåta hämtning av enskilda filer)", "mode_settings_client_auth_checkbox": "Använd klientauktorisering", - "mode_settings_legacy_checkbox": "Använd en äldre adress (v2 oniontjänst, rekommenderas inte)", + "mode_settings_legacy_checkbox": "Använd en äldre adress (v2-oniontjänst, rekommenderas inte)", "mode_settings_autostart_timer_checkbox": "Starta oniontjänsten vid schemalagd tid", "mode_settings_autostop_timer_checkbox": "Stoppa oniontjänsten vid schemalagd tid", "mode_settings_public_checkbox": "Använd inte ett lösenord", @@ -280,18 +280,28 @@ "gui_chat_start_server": "Starta chattservern", "gui_file_selection_remove_all": "Ta bort alla", "gui_remove": "Ta bort", - "gui_main_page_share_button": "Börja dela", + "gui_main_page_share_button": "Starta delning", "error_port_not_available": "OnionShare-porten är inte tillgänglig", "gui_rendezvous_cleanup_quit_early": "Avsluta tidigt", "gui_rendezvous_cleanup": "Väntar på att Tor-kretsar stänger för att vara säker på att dina filer har överförts.\n\nDet kan ta några minuter.", - "gui_tab_name_chat": "Chatta", + "gui_tab_name_chat": "Chatt", "gui_tab_name_website": "Webbplats", "gui_tab_name_receive": "Ta emot", "gui_tab_name_share": "Dela", "gui_main_page_chat_button": "Börja chatta", "gui_main_page_website_button": "Börja publicera", - "gui_main_page_receive_button": "Börja ta emot", + "gui_main_page_receive_button": "Starta mottagning", "gui_new_tab_chat_button": "Chatta anonymt", - "gui_open_folder_error": "Misslyckades att öppna mappen med xdg-open. Filen finns här: {}", - "gui_chat_url_description": "Alla med denna OnionShare-adress kan gå med i detta chattrum med Tor Browser: " + "gui_open_folder_error": "Det gick inte att öppna mappen med xdg-open. Filen finns här: {}", + "gui_chat_url_description": "Alla med denna OnionShare-adress kan gå med i detta chattrum med Tor Browser: ", + "gui_status_indicator_chat_stopped": "Redo att chatta", + "gui_status_indicator_chat_scheduled": "Schemalagd…", + "history_receive_read_message_button": "Läs meddelandet", + "mode_settings_receive_webhook_url_checkbox": "Använd aviseringswebhook", + "mode_settings_receive_disable_files_checkbox": "Inaktivera uppladdning av filer", + "mode_settings_receive_disable_text_checkbox": "Inaktivera att skicka text", + "mode_settings_title_label": "Anpassad titel", + "gui_color_mode_changed_notice": "Starta om OnionShare för att det nya färgläget ska tillämpas.", + "gui_status_indicator_chat_started": "Chattar", + "gui_status_indicator_chat_working": "Startar…" } diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json index 9b217970..b7d5db5e 100644 --- a/desktop/src/onionshare/resources/locale/tr.json +++ b/desktop/src/onionshare/resources/locale/tr.json @@ -5,17 +5,17 @@ "not_a_file": "{0:s} dosya değil.", "other_page_loaded": "Adres yüklendi", "closing_automatically": "Aktarım tamamlandığından durduruldu", - "large_filesize": "Uyarı: Büyük bir paylaşma göndermek saatler sürebilir", + "large_filesize": "Uyarı: Büyük bir paylaşım saatler sürebilir", "help_local_only": "Tor kullanmayın (sadece geliştirme için)", "help_stay_open": "Dosyalar gönderildikten sonra paylaşmaya devam et", "help_debug": "OnionShare hatalarını stdout'a ve web hatalarını diske yaz", "help_filename": "Paylaşmak için dosya ve klasörler listesi", - "gui_drag_and_drop": "Paylaşmaya başlamak için dosya ve klasörleri sürükleyip bırakın", + "gui_drag_and_drop": "Paylaşıma başlamak için dosya ve klasörleri sürükleyip bırakın", "gui_add": "Ekle", "gui_delete": "Sil", "gui_choose_items": "Seç", "gui_share_start_server": "Paylaşmaya başla", - "gui_share_stop_server": "Paylaşmayı durdur", + "gui_share_stop_server": "Paylaşımı durdur", "gui_copy_url": "Adresi Kopyala", "gui_downloads": "İndirilenler:", "gui_canceled": "İptal edilen", @@ -33,9 +33,9 @@ "help_stealth": "İstemci yetkilendirmesini kullan (gelişmiş)", "help_receive": "Paylaşımı göndermek yerine, almak", "help_config": "Özel JSON config dosyası konumu (isteğe bağlı)", - "gui_add_files": "Dosya Ekle", - "gui_add_folder": "Klasör Ekle", - "gui_share_stop_server_autostop_timer": "Paylaşmayı Durdur ({})", + "gui_add_files": "Dosya ekle", + "gui_add_folder": "Klasör ekle", + "gui_share_stop_server_autostop_timer": "Paylaşımı Durdur ({})", "gui_share_stop_server_autostop_timer_tooltip": "Otomatik durdurma zamanlayıcısı {} sonra biter", "gui_receive_start_server": "Alma Modunu Başlat", "gui_receive_stop_server": "Alma Modunu Durdur", @@ -237,8 +237,8 @@ "gui_new_tab_tooltip": "Yeni bir sekme aç", "gui_new_tab": "Yeni Sekme", "gui_remove": "Kaldır", - "gui_file_selection_remove_all": "Tümünü Kaldır", - "gui_chat_start_server": "Sohbet sunucusu başlat", + "gui_file_selection_remove_all": "Tümünü kaldır", + "gui_chat_start_server": "Sohbet sunucusunu başlat", "gui_chat_stop_server": "Sohbet sunucusunu durdur", "gui_receive_flatpak_data_dir": "OnionShare'i Flatpak kullanarak kurduğunuz için, dosyaları ~/OnionShare içindeki bir klasöre kaydetmelisiniz.", "gui_show_url_qr_code": "QR Kodu Göster", @@ -267,5 +267,10 @@ "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" + "gui_status_indicator_chat_stopped": "Sohbet etmeye hazır", + "gui_settings_theme_dark": "Koyu", + "gui_settings_theme_light": "Açık", + "gui_settings_theme_auto": "Otomatik", + "gui_settings_theme_label": "Tema", + "gui_please_wait_no_button": "Başlatılıyor…" } diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json index 03ea9dfb..81b373c2 100644 --- a/desktop/src/onionshare/resources/locale/uk.json +++ b/desktop/src/onionshare/resources/locale/uk.json @@ -60,7 +60,7 @@ "gui_settings_control_port_label": "Порт керування", "gui_settings_socket_file_label": "Файл сокета", "gui_settings_socks_label": "SOCKS порт", - "gui_settings_authenticate_label": "Параметри автентифікації Tor", + "gui_settings_authenticate_label": "Налаштування автентифікації Tor", "gui_settings_authenticate_no_auth_option": "Без автентифікації або автентифікація через cookie", "gui_settings_authenticate_password_option": "Пароль", "gui_settings_password_label": "Пароль", @@ -99,7 +99,7 @@ "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": "Відкрити налаштування для перевірки з'єднання з Tor?", "gui_tor_connection_ask_open_settings": "Так", "gui_tor_connection_ask_quit": "Вийти", "gui_tor_connection_error_settings": "Спробуйте змінити в параметрах, як OnionShare з'єднується з мережею Tor.", @@ -132,7 +132,7 @@ "history_in_progress_tooltip": "{} в процесі", "history_completed_tooltip": "{} завершено", "error_cannot_create_data_dir": "Не вдалося створити теку даних OnionShare: {}", - "gui_receive_mode_warning": "Режим отримання дозволяє завантажувати файли до вашого комп'ютера.

Деякі файли, потенційно, можуть заволодіти вашим комп'ютером, у разі їх відкриття. Відкривайте файли лише від довірених осіб, або якщо впевнені в своїх діях.", + "gui_receive_mode_warning": "Режим отримання дозволяє завантажувати файли до вашого комп'ютера.

Деякі файли, потенційно, можуть заволодіти вашим комп'ютером, у разі їх відкриття. Відкривайте файли лише від довірених осіб, або якщо ви впевнені у своїх діях.", "gui_mode_share_button": "Поділитися файлами", "gui_mode_receive_button": "Отримання Файлів", "gui_settings_receiving_label": "Параметри отримання", @@ -242,5 +242,10 @@ "gui_status_indicator_chat_scheduled": "Заплановано…", "gui_status_indicator_chat_started": "Спілкування", "gui_status_indicator_chat_working": "Початок…", - "gui_status_indicator_chat_stopped": "Готовий до спілкування" + "gui_status_indicator_chat_stopped": "Готовий до спілкування", + "gui_settings_theme_dark": "Темна", + "gui_settings_theme_light": "Світла", + "gui_settings_theme_auto": "Автоматична", + "gui_settings_theme_label": "Тема", + "gui_please_wait_no_button": "Запускається…" } diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/src/onionshare/resources/locale/yo.json index 96b5a0d1..fdd6dbea 100644 --- a/desktop/src/onionshare/resources/locale/yo.json +++ b/desktop/src/onionshare/resources/locale/yo.json @@ -7,14 +7,14 @@ "give_this_url_receive_stealth": "", "ctrlc_to_stop": "", "not_a_file": "", - "not_a_readable_file": "", + "not_a_readable_file": "{0:s} je oun ti a ko le ka.", "no_available_port": "", - "other_page_loaded": "", - "close_on_autostop_timer": "", - "closing_automatically": "", + "other_page_loaded": "Adiresi ti wole", + "close_on_autostop_timer": "O danuduro nitori akoko idaduro aifowoyi ti pe", + "closing_automatically": "Odanuduro nitori o ti fi ranse tan", "timeout_download_still_running": "", "timeout_upload_still_running": "", - "large_filesize": "", + "large_filesize": "Ikilo: Fi fi nkan repete ranse le gba aimoye wakati", "systray_menu_exit": "", "systray_download_started_title": "", "systray_download_started_message": "", @@ -32,16 +32,16 @@ "help_verbose": "", "help_filename": "", "help_config": "", - "gui_drag_and_drop": "", - "gui_add": "", + "gui_drag_and_drop": "Wo awon iwe pelebe ati apamowo re sibi lati bere sini fi ranse", + "gui_add": "Fikun", "gui_delete": "", - "gui_choose_items": "", - "gui_share_start_server": "", - "gui_share_stop_server": "", - "gui_share_stop_server_autostop_timer": "", + "gui_choose_items": "Yan", + "gui_share_start_server": "Bere si ni pin", + "gui_share_stop_server": "Dawo pinpin duro", + "gui_share_stop_server_autostop_timer": "Dawo pinpin duro ({})", "gui_share_stop_server_autostop_timer_tooltip": "", - "gui_receive_start_server": "", - "gui_receive_stop_server": "", + "gui_receive_start_server": "Bere ipele gbigba", + "gui_receive_stop_server": "Duro ipele gbigba", "gui_receive_stop_server_autostop_timer": "", "gui_receive_stop_server_autostop_timer_tooltip": "", "gui_copy_url": "", @@ -181,5 +181,14 @@ "gui_download_in_progress": "", "gui_open_folder_error_nautilus": "", "gui_settings_language_label": "", - "gui_settings_language_changed_notice": "" + "gui_settings_language_changed_notice": "", + "gui_start_server_autostart_timer_tooltip": "Akoko ti nbere laifowoyi duro ni {}", + "gui_stop_server_autostop_timer_tooltip": "Akoko ti nduro laifowoyi dopin ni {}", + "gui_chat_stop_server": "Da olupin iregbe duro", + "gui_chat_start_server": "Bere olupin iregbe", + "gui_file_selection_remove_all": "Yo gbogbo re kuro", + "gui_remove": "Yokuro", + "gui_add_folder": "S'afikun folda", + "gui_add_files": "S'afikun faili", + "incorrect_password": "Ashiko oro igbaniwole" } diff --git a/desktop/src/onionshare/resources/locale/zh_Hans.json b/desktop/src/onionshare/resources/locale/zh_Hans.json index af0a2a99..1276c3be 100644 --- a/desktop/src/onionshare/resources/locale/zh_Hans.json +++ b/desktop/src/onionshare/resources/locale/zh_Hans.json @@ -294,5 +294,10 @@ "gui_status_indicator_chat_started": "正在聊天", "gui_status_indicator_chat_scheduled": "已安排…", "gui_status_indicator_chat_working": "启动中…", - "gui_status_indicator_chat_stopped": "准备好聊天" + "gui_status_indicator_chat_stopped": "准备好聊天", + "gui_please_wait_no_button": "启动中…", + "gui_settings_theme_dark": "深色", + "gui_settings_theme_light": "浅色", + "gui_settings_theme_auto": "自动", + "gui_settings_theme_label": "主题" } diff --git a/docs/source/locale/bn/LC_MESSAGES/security.po b/docs/source/locale/bn/LC_MESSAGES/security.po index f8110093..b7413c02 100644 --- a/docs/source/locale/bn/LC_MESSAGES/security.po +++ b/docs/source/locale/bn/LC_MESSAGES/security.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3.1\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-02-22 13:40-0800\n" -"PO-Revision-Date: 2021-04-24 23:31+0000\n" +"PO-Revision-Date: 2021-06-27 06:32+0000\n" "Last-Translator: Oymate \n" "Language-Team: none\n" "Language: bn\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.7-dev\n" +"X-Generator: Weblate 4.7.1-dev\n" #: ../../source/security.rst:2 msgid "Security Design" @@ -32,7 +32,7 @@ msgstr "" #: ../../source/security.rst:9 msgid "What OnionShare protects against" -msgstr "" +msgstr "অনিয়নশেয়ার কিসের বিরুদ্ধে নিরাপত্তা দেয়" #: ../../source/security.rst:11 msgid "**Third parties don't have access to anything that happens in OnionShare.** Using OnionShare means hosting services directly on your computer. When sharing files with OnionShare, they are not uploaded to any server. If you make an OnionShare chat room, your computer acts as a server for that too. This avoids the traditional model of having to trust the computers of others." @@ -52,7 +52,7 @@ msgstr "" #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" -msgstr "" +msgstr "অনিওনশেয়ার কিসের বিরুদ্ধে রক্ষা করে না" #: ../../source/security.rst:22 msgid "**Communicating the OnionShare address might not be secure.** Communicating the OnionShare address to people is the responsibility of the OnionShare user. If sent insecurely (such as through an email message monitored by an attacker), an eavesdropper can tell that OnionShare is being used. If the eavesdropper loads the address in Tor Browser while the service is still up, they can access it. To avoid this, the address must be communicateed securely, via encrypted text message (probably with disappearing messages enabled), encrypted email, or in person. This isn't necessary when using OnionShare for something that isn't secret." diff --git a/docs/source/locale/fi/LC_MESSAGES/advanced.po b/docs/source/locale/fi/LC_MESSAGES/advanced.po new file mode 100644 index 00000000..f8300591 --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/advanced.po @@ -0,0 +1,223 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-24 17:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/advanced.rst:2 +msgid "Advanced Usage" +msgstr "Kehittynyt käyttö" + +#: ../../source/advanced.rst:7 +msgid "Save Tabs" +msgstr "Tallenna välilehdet" + +#: ../../source/advanced.rst:9 +msgid "Everything in OnionShare is temporary by default. If you close an OnionShare tab, its address no longer exists and it can't be used again. Sometimes you might want an OnionShare service to be persistent. This is useful if you want to host a website available from the same OnionShare address even if you reboot your computer." +msgstr "" +"Kaikki OnionSharessa on tilapäistä oletusarvoisesti. Jos suljet OnionShare-" +"välilehden, sen osoite ei enää ole olemassa ja sitä ei voida ladata " +"uudelleen. Joskus saatat haluta OnionShare-palvelun olevan pysyvä. Tämä on " +"hyödyllistä, jos haluat isännöidä verkkosivua, joka on saatavilla samasta " +"OnionShare-osoitteesta, vaikka uudelleenkäynnistäisit tietokoneesi." + +#: ../../source/advanced.rst:13 +msgid "To make any tab persistent, check the \"Save this tab, and automatically open it when I open OnionShare\" box before starting the server. When a tab is saved a purple pin icon appears to the left of its server status." +msgstr "" +"Tehdäksesi välilehdestä pysyvän, valitse \"Tallenna tämä välilehti, ja " +"automaattisesti avaa se, kun avaan OnionSharen\" -ruutu ennen palvelimen " +"käynnistämistä. Kun välilehti on tallennettu violetti nastan kuva ilmaantuu " +"sen palvelimen vasempaan reunaan." + +#: ../../source/advanced.rst:18 +msgid "When you quit OnionShare and then open it again, your saved tabs will start opened. You'll have to manually start each service, but when you do they will start with the same OnionShare address and password." +msgstr "" +"Kun suljet OnionSharen ja avaat sen uudelleen, tallentamasi välilehdet " +"avautuvat uudelleen. Sinun täytyy manuaalisesti käynnistää jokainen palvelu, " +"mutta näin tehdessäsi ne käynnistyvät samalla OnionShare-osoitteella ja " +"-salasanalla." + +#: ../../source/advanced.rst:21 +msgid "If you save a tab, a copy of that tab's onion service secret key will be stored on your computer with your OnionShare settings." +msgstr "" +"Jos tallennat välilehden, kopio kyseisen välilehden sipulipalvelun " +"salaisesta avaimesta talletetaan tietokoneellesi OnionShare-asetusten mukana." + +#: ../../source/advanced.rst:26 +msgid "Turn Off Passwords" +msgstr "Ota salasanat pois päältä" + +#: ../../source/advanced.rst:28 +msgid "By default, all OnionShare services are protected with the username ``onionshare`` and a randomly-generated password. If someone takes 20 wrong guesses at the password, your onion service is automatically stopped to prevent a brute force attack against the OnionShare service." +msgstr "" +"Oletuksena kaikki OnionSharen palvelut on suojattu käyttäjänimellä " +"``onionshare`` ja satunnaisesti luodulla salasanalla. Jos joku tekee 20 " +"väärää arvausta salasanan osalta, sinun sipulipalvelusi pysähtyy " +"automaattisesti estääkseen brute force -hyökkäyksen, joka kohdistuu " +"OnionSharen palveluita vastaan." + +#: ../../source/advanced.rst:31 +msgid "Sometimes you might want your OnionShare service to be accessible to the public, like if you want to set up an OnionShare receive service so the public can securely and anonymously send you files. In this case, it's better to disable the password altogether. If you don't do this, someone can force your server to stop just by making 20 wrong guesses of your password, even if they know the correct password." +msgstr "" +"Joskus saatat haluta, että OnionShare-palvelut ovat saataville yleisesti, " +"kuten jos haluat perustaa OnionSharen vastaanottopalvelun, jotta yleisö voi " +"turvallisesti ja anonyymisti lähettää sinulle tiedostoja. Tässä tapauksessa " +"on parempi poistaa salasana käytöstä. Jos et tee näin, joku voi pakottaa " +"palvelimesi pysähtymään pelkästään tekemällä 20 väärää arvausta " +"salasanastasi, vaikka he tietäisivätkin oikean salasanasi." + +#: ../../source/advanced.rst:35 +msgid "To turn off the password for any tab, just check the \"Don't use a password\" box before starting the server. Then the server will be public and won't have a password." +msgstr "" +"Ottaaksesi salasanan pois päältä välilehdeltä, raksita \"Älä käytä " +"salasanaa\" ruutu ennen palvelimen käynnistämistä. Sen jälkeen palvelin on " +"julkinen eikä siinä ole salasanaa." + +#: ../../source/advanced.rst:40 +msgid "Custom Titles" +msgstr "Muokatut otsikot" + +#: ../../source/advanced.rst:42 +msgid "By default, when people load an OnionShare service in Tor Browser they see the default title for the type of service. For example, the default title of a chat service is \"OnionShare Chat\"." +msgstr "" +"Oletuksena, kun ihmiset lataavat OnionShare-palvelun Tor-selaimessaan he " +"näkevät oletuksena kyseisen palvelun nimen. Esimerkiksi, oletusotsikko " +"keskustelupalvelulle on \"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 "" +"Jos haluat valita muokatun otsikon, valitse \"Muokattu otsikko\" -asetus " +"ennen palvelimen käynnistämistä." + +#: ../../source/advanced.rst:47 +msgid "Scheduled Times" +msgstr "Ajastetut hetket" + +#: ../../source/advanced.rst:49 +msgid "OnionShare supports scheduling exactly when a service should start and stop. Before starting a server, click \"Show advanced settings\" in its tab and then check the boxes next to either \"Start onion service at scheduled time\", \"Stop onion service at scheduled time\", or both, and set the respective desired dates and times." +msgstr "" +"OnionShare tukee ajastusta juuri silloin, kun palvelun tulee käynnistyä tai " +"pysähtyä. Ennen palvelimen käynnistämistä, klikkaa \"Näytä lisäasetukset\" " +"välilehdestä ja sen jälkeen valitse joko \"Aloita sipulipalvelu ajastettuna " +"hetkenä\", \"Pysäytä sipulipalvelu ajastettuna hetkenä\", tai molemmat, ja " +"aseta haluamasi päivämäärät ja kellonajat." + +#: ../../source/advanced.rst:52 +msgid "If you scheduled a service to start in the future, when you click the \"Start sharing\" button you will see a timer counting down until it starts. If you scheduled it to stop in the future, after it's started you will see a timer counting down to when it will stop automatically." +msgstr "" +"Jos ajastit palvelun alkamaan tulevaisuudessa, klikkaamalla \"Aloita " +"jakaminen\"-nappia näet laskurin, joka ilmaisee lähestyvää alkamisaikaa. Jos " +"ajastit sen pysähtymään tulevaisuudessa, palvelun ollessa päällä näet " +"laskurin, joka ilmaisee lähestyvää lopetusaikaa." + +#: ../../source/advanced.rst:55 +msgid "**Scheduling an OnionShare service to automatically start can be used as a dead man's switch**, where your service will be made public at a given time in the future if anything happens to you. If nothing happens to you, you can cancel the service before it's scheduled to start." +msgstr "" +"**OnionShare-palvelun automaattista ajastusta voi käyttää \"kuolleen miehen " +"vipuna\"**, eli palvelusi tulee julkiseksi tulevaisuudessa, jos jotain " +"tapahtuisi sinulle. Jos mitään ei tapahdu, voit peruuttaa palvelun ennen " +"kuin ajastettu hetki koittaa." + +#: ../../source/advanced.rst:60 +msgid "**Scheduling an OnionShare service to automatically stop can be useful to limit exposure**, like if you want to share secret documents while making sure they're not available on the Internet for more than a few days." +msgstr "" +"**OnionShare-palvelun ajastaminen automaattisesti voi olla hyödyllistä " +"rajoittaaksesi paljastumista**, esimerkiksi jos haluat jakaa salaisia " +"asiakirjoja siten, että ne eivät ole saatavilla internetissä muutamaa päivää " +"pidempään." + +#: ../../source/advanced.rst:65 +msgid "Command-line Interface" +msgstr "Komentokehotekäyttöliittymä" + +#: ../../source/advanced.rst:67 +msgid "In addition to its graphical interface, OnionShare has a command-line interface." +msgstr "" +"Graafisen käyttöliittymän lisäksi OnionSharessa on " +"komentokehotekäyttöliittymä." + +#: ../../source/advanced.rst:69 +msgid "You can install just the command-line version of OnionShare using ``pip3``::" +msgstr "" +"Voit asentaa pelkästään komentokehoteversion OnionSharesta käyttämällä " +"``pip3``::" + +#: ../../source/advanced.rst:73 +msgid "Note that you will also need the ``tor`` package installed. In macOS, install it with: ``brew install tor``" +msgstr "" +"Huomioi, että sinulla tulee olla ``tor``-paketti asennettuna. MacOS:ssa " +"asenna se näin: ``brew install tor``" + +#: ../../source/advanced.rst:75 +msgid "Then run it like this::" +msgstr "Sen jälkeen aja se näin::" + +#: ../../source/advanced.rst:79 +msgid "If you installed OnionShare using the Linux Snapcraft package, you can also just run ``onionshare.cli`` to access the command-line interface version." +msgstr "" +"Jos olet asentanut OnionSharen käyttämällä Linuxin Snapcraft-pakettia, voit " +"myös ajaa``onionshare.cli`` päästäksesi komentokehotekäyttöliittymään." + +#: ../../source/advanced.rst:82 +msgid "Usage" +msgstr "Käyttö" + +#: ../../source/advanced.rst:84 +msgid "You can browse the command-line documentation by running ``onionshare --help``::" +msgstr "" +"Voit selata komentokehotteen dokumentaatiota ajamalla komennon ``onionshare " +"--help``::" + +#: ../../source/advanced.rst:147 +msgid "Legacy Addresses" +msgstr "Legacy-osoitteet" + +#: ../../source/advanced.rst:149 +msgid "OnionShare uses v3 Tor onion services by default. These are modern onion addresses that have 56 characters, for example::" +msgstr "" +"OnionShare käyttää oletuksena v3 Tor -onionpalveluita. Nämä ovat " +"nykyaikaisia osoitteita ja sisältävät 56 merkkiä, esimerkiksi::" + +#: ../../source/advanced.rst:154 +msgid "OnionShare still has support for v2 onion addresses, the old type of onion addresses that have 16 characters, for example::" +msgstr "" +"OnionShare tukee yhä v2 sipuliosoitteita, vanhantyyppisiä 16-merkkisiä " +"sipuliosoitteita, esimerkiksi::" + +#: ../../source/advanced.rst:158 +msgid "OnionShare calls v2 onion addresses \"legacy addresses\", and they are not recommended, as v3 onion addresses are more secure." +msgstr "" +"OnionShare kutsuu v2 sipuliosoitteita \"legacy-osoitteiksi\", ja niitä ei " +"suositella, koska v3 sipulipalvelut ovat turvallisempia." + +#: ../../source/advanced.rst:160 +msgid "To use legacy addresses, before starting a server click \"Show advanced settings\" from its tab and check the \"Use a legacy address (v2 onion service, not recommended)\" box. In legacy mode you can optionally turn on Tor client authentication. Once you start a server in legacy mode you cannot remove legacy mode in that tab. Instead you must start a separate service in a separate tab." +msgstr "" +"Käyttääksesi legacy-osoitteita klikkaa ennen palvelimen käynnistämistä " +"\"Näytä lisäasetukset\" välilehdestä ja raksita \"Käytä legacy-osoitteita (" +"v2 sipulipalvelu, ei suositeltu)\" ruutu. Legacy-tilassa voit valinnaisena " +"ottaa käyttöön asiakasohjelman tunnistautumisen. Kun käynnistät palvelimen " +"legacy-tilassa et voi poistaa legacy-tilaa kyseisestä välilehdestä. Sen " +"sijaan sinun tulee avata erillinen palvelu erillisessä välilehdessä." + +#: ../../source/advanced.rst:165 +msgid "Tor Project plans to `completely deprecate v2 onion services `_ on October 15, 2021, and legacy onion services will be removed from OnionShare before then." +msgstr "" +"Tor Project suunnittelee`poistavansa täysin käytöstä v2 sipulipalvelut " +"`_ 15.10.2021, ja " +"legacy-sipulipalvelut tullaan poistamaan OnionSharesta sitä ennen." diff --git a/docs/source/locale/fi/LC_MESSAGES/develop.po b/docs/source/locale/fi/LC_MESSAGES/develop.po new file mode 100644 index 00000000..06d5f331 --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/develop.po @@ -0,0 +1,185 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-24 17:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/develop.rst:2 +msgid "Developing OnionShare" +msgstr "OnionSharen kehittäminen" + +#: ../../source/develop.rst:7 +msgid "Collaborating" +msgstr "Osallistuminen" + +#: ../../source/develop.rst:9 +msgid "OnionShare has an open Keybase team to discuss the project, ask questions, share ideas and designs, and making plans for future development. (It's also an easy way to send end-to-end encrypted direct messages to others in the OnionShare community, like OnionShare addresses.) To use Keybase, download the `Keybase app `_, make an account, and `join this team `_. Within the app, go to \"Teams\", click \"Join a Team\", and type \"onionshare\"." +msgstr "" +"OnionSharella on avoin Keybase-tiimi keskustelua, kysymyksiä, ideoita, " +"ulkoasusuunnittelua ja projektin tulevaisuuden suunnitelua varten. (Se on " +"myös helppo väylä lähettää päästä päähän salattuja suoria viestejä, kuten " +"OnionShare-osoitteita.) Käyttääksesi Keybasea, tallenna `Keybase-sovellus " +"`_, luo käyttäjätili ja `liity tähän tiimiin " +"`_. Sovelluksen sisällä valitse \"Tiimit" +"\", klikkaa \"Liity tiimiin\" ja kirjoita \"onionshare\"." + +#: ../../source/develop.rst:12 +msgid "OnionShare also has a `mailing list `_ for developers and and designers to discuss the project." +msgstr "" +"OnionSharella on myös keskustelua varten `postituslista `_ kehittäjille ja suunnittelijoille." + +#: ../../source/develop.rst:15 +msgid "Contributing Code" +msgstr "Avustaminen koodissa" + +#: ../../source/develop.rst:17 +msgid "OnionShare source code is to be found in this Git repository: https://github.com/micahflee/onionshare" +msgstr "" +"OnionSharen lähdekoodi löytyy tästä Git-reposta: https://github.com/" +"micahflee/onionshare" + +#: ../../source/develop.rst:19 +msgid "If you'd like to contribute code to OnionShare, it helps to join the Keybase team and ask questions about what you're thinking of working on. You should also review all of the `open issues `_ on GitHub to see if there are any you'd like to tackle." +msgstr "" +"Jos haluat lahjoittaa koodia OnionSharelle, kannattaa liittyä Keybase-" +"tiimiin ja kysyä kysymyksiä, mitä voisit tehdä. Kannattaa käydä läpi kaikki `" +"avoimet tapaukset `_ " +"GitHubissa nähdäksesi, onko siellä jotain korjattavaa." + +#: ../../source/develop.rst:22 +msgid "When you're ready to contribute code, open a pull request in the GitHub repository and one of the project maintainers will review it and possibly ask questions, request changes, reject it, or merge it into the project." +msgstr "" +"Kun olet valmis avustamaan koodissa, avaa vetopyyntö Githubissa ja joku " +"projektin ylläpitäjistä arvioi sen ja mahdollisesti kysyy kysymyksiä, pyytää " +"muutoksia, kieltäytyy siitä tai yhdistää sen toiseen projektiin." + +#: ../../source/develop.rst:27 +msgid "Starting Development" +msgstr "Kehityksen aloittaminen" + +#: ../../source/develop.rst:29 +msgid "OnionShare is developed in Python. To get started, clone the Git repository at https://github.com/micahflee/onionshare/ and then consult the ``cli/README.md`` file to learn how to set up your development environment for the command-line version, and the ``desktop/README.md`` file to learn how to set up your development environment for the graphical version." +msgstr "" +"OnionShare on kehitetty Pythonilla. Päästäksesi alkuun, kloonaa Git-" +"ohjelmavarasto osoitteessa https://github.com/micahflee/onionshare/ ja " +"tutustu ``cli/README.md``-tiedostoon oppiaksesi kuinka säädät " +"kehitysympäristösi komentoriviversioon. Tutustu ``desktop/README.md``-" +"tiedostoon, kun haluat oppia, kuinka säädetään kehitysympäristö graafiseen " +"versioon." + +#: ../../source/develop.rst:32 +msgid "Those files contain the necessary technical instructions and commands install dependencies for your platform, and to run OnionShare from the source tree." +msgstr "" +"Kyseiset tiedostot sisältävät välttämättömiä teknisia ohjeistuksia ja " +"komentoja asentaaksesi riippuvuudet alustalle, ja jotta OnionShare voidaan " +"suorittaa." + +#: ../../source/develop.rst:35 +msgid "Debugging tips" +msgstr "Virheenkorjauksen vinkkejä" + +#: ../../source/develop.rst:38 +msgid "Verbose mode" +msgstr "Runsassanainen tila" + +#: ../../source/develop.rst:40 +msgid "When developing, it's convenient to run OnionShare from a terminal and add the ``--verbose`` (or ``-v``) flag to the command. This prints a lot of helpful messages to the terminal, such as when certain objects are initialized, when events occur (like buttons clicked, settings saved or reloaded), and other debug info. For example::" +msgstr "" +"Kehittämisen aikana on hyödyllistä suorittaa OnionShare terminaalista ja " +"lisätä ``--verbose`` (tai ``-v``) -lisäys komentoriville. Tämä tuo näkyviin " +"paljon hyödyllisiä viestejä terminaaliin, kuten jos tietyt objektit on " +"alustettu, kun ilmiöt tapahtuvat (esim. nappeja painetaan, asetukset " +"tallennetaan tai ladataan), ja muuta virheenkorjaustietoa. Esimerkiksi::" + +#: ../../source/develop.rst:121 +msgid "You can add your own debug messages by running the ``Common.log`` method from ``onionshare/common.py``. For example::" +msgstr "" +"Voit lisätä omia virheenkorjausviestejä suorittamalla ``Common.log``metodin " +"kohteesta ``onionshare/common.py``. Esimerkiksi::" + +#: ../../source/develop.rst:125 +msgid "This can be useful when learning the chain of events that occur when using OnionShare, or the value of certain variables before and after they are manipulated." +msgstr "" +"Tämä voi olla hyödyllistä, kun opettelee tapahtumien kulkua OnionSharessa, " +"tai tiettyjen muuttujien arvoja ennen ja jälkeen, kun niitä on muokattu." + +#: ../../source/develop.rst:128 +msgid "Local Only" +msgstr "Vain paikallinen" + +#: ../../source/develop.rst:130 +msgid "Tor is slow, and it's often convenient to skip starting onion services altogether during development. You can do this with the ``--local-only`` flag. For example::" +msgstr "" +"Tor on hidas ja on siksi hyödyllistä ohittaa sipulipalveluiden käynnistys " +"kokonaan kehitystyön aikana. Voit tehdä tämän ``--local-only`` lisäyksellä. " +"Esimerkiksi::" + +#: ../../source/develop.rst:167 +msgid "In this case, you load the URL ``http://onionshare:train-system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of using the Tor Browser." +msgstr "" +"Tässä tapauksessa lataat URL:n ``http://onionshare:train-system@127.0.0." +"1:17635``tavallisessa verkkoselaimessa kuten Firefoxissa, Tor-selaimen " +"käyttämisen sijasta." + +#: ../../source/develop.rst:170 +msgid "Contributing Translations" +msgstr "Kielenkääntämisessä avustaminen" + +#: ../../source/develop.rst:172 +msgid "Help make OnionShare easier to use and more familiar and welcoming for people by translating it on `Hosted Weblate `_. Always keep the \"OnionShare\" in latin letters, and use \"OnionShare (localname)\" if needed." +msgstr "" +"Auta tekemään OnionSharesta helppokäyttöisempää ja tutumpaa ihmisille " +"kääntämällä sitä sivustolla `Hosted Weblate `_. Pidä \"OnionShare\" aina latinalaisissa aakkosissa " +"ja käytä muotoa \"OnionShare (paikallinennimi)\" tarvittaessa." + +#: ../../source/develop.rst:174 +msgid "To help translate, make a Hosted Weblate account and start contributing." +msgstr "" +"Auttaaksesi kääntämisessä tee käyttäjätunnus Hosted Weblate -sivustolle ja " +"aloita auttaminen." + +#: ../../source/develop.rst:177 +msgid "Suggestions for Original English Strings" +msgstr "Ehdotuksia alkuperäisiksi englanninkielisiksi merkkijonoiksi" + +#: ../../source/develop.rst:179 +msgid "Sometimes the original English strings are wrong, or don't match between the application and the documentation." +msgstr "" +"Joskus alkuperäiset englanninkieliset merkkijonot ovat väärin tai eivät " +"vastaa sovellusta ja dokumentaatiota." + +#: ../../source/develop.rst:181 +msgid "File source string improvements by adding @kingu to your Weblate comment, or open a GitHub issue or pull request. The latter ensures all upstream developers see the suggestion, and can potentially modify the string via the usual code review processes." +msgstr "" +"Ilmoita lähdemerkkijonojen parannukset lisäämällä @kingu sinun tekemääsi " +"Weblate-kommenttiin, tai avaamalla GitHubiin ilmoitus tai vetopyyntö. " +"Jälkimmäinen takaa, että kaikki kehittäjät näkevät ehdotuksen ja he voivat " +"mahdollisesti muokata merkkijonoa perinteisen koodinarviointiprosessin " +"kautta." + +#: ../../source/develop.rst:185 +msgid "Status of Translations" +msgstr "Käännösten tila" + +#: ../../source/develop.rst:186 +msgid "Here is the current translation status. If you want start a translation in a language not yet started, please write to the mailing list: onionshare-dev@lists.riseup.net" +msgstr "" +"Täällä näkyy nykyinen käännösten tila. Jos haluat aloittaa käännöksen " +"kielellä, jota ei vielä ole aloitettu, kirjoita siitä postituslistalle: " +"onionshare-dev@lists.riseup.net" diff --git a/docs/source/locale/fi/LC_MESSAGES/features.po b/docs/source/locale/fi/LC_MESSAGES/features.po new file mode 100644 index 00000000..7dda6ccd --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/features.po @@ -0,0 +1,423 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-25 18:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/features.rst:4 +msgid "How OnionShare Works" +msgstr "Kuinka OnionShare toimii" + +#: ../../source/features.rst:6 +msgid "Web servers are started locally on your computer and made accessible to other people as `Tor `_ `onion services `_." +msgstr "" +"Verkkopalvelimet käynnistetään paikallisesti tietokoneeltaasi ja tehdään " +"muiden ihmisten saataville `Tor `_ `-" +"sipulipalveluina `_." + +#: ../../source/features.rst:8 +msgid "By default, OnionShare web addresses are protected with a random password. A typical OnionShare address might look something like this::" +msgstr "" +"Oletuksena OnionShare-verkkoosoitteet ovat suojattuna satunnaisella " +"salasanalla. Tyypillinen OnionShare-osoite voi näyttää suurinpiirtein tältä::" + +#: ../../source/features.rst:12 +msgid "You're responsible for securely sharing that URL using a communication channel of your choice like in an encrypted chat message, or using something less secure like unencrypted e-mail, depending on your `threat model `_." +msgstr "" +"Olet vastuussa siitä, että jaat osoitelinkin turvallisesti käyttämällä " +"yhteydenpitokanavana valitsemaasi kryptattua chat-viestiä, tai käyttämällä " +"vähemmän turvallista kuten salaamatonta sähköpostia, riippuen minkälainen " +"uhkamalli sinulla on `_." + +#: ../../source/features.rst:14 +msgid "The people you send the URL to then copy and paste it into their `Tor Browser `_ to access the OnionShare service." +msgstr "" +"Ihmiset, joille lähetät osoitelinkin, kopioivat kyseisen linkin ja liittävät " +"sen heidän omaan Tor-selaimeen `_ päästäkseen " +"OnionSharen palveluun." + +#: ../../source/features.rst:16 +msgid "If you run OnionShare on your laptop to send someone files, and then suspend it before the files are sent, the service will not be available until your laptop is unsuspended and on the Internet again. OnionShare works best when working with people in real-time." +msgstr "" +"Jos käytät OnionSharea kannettavalla tietokoneellasi lähettääksesi toiselle " +"tiedostoja, ja sitten asetat sen lepotilaan ennen kuin tiedosto on lähetetty " +"perille, palvelu ei ole saatavilla ennen kuin tietokoneesi on herätetty ja " +"jälleen verkkoyhteydessä. OnionShare toimii parhaiten, kun toimitaan " +"reaaliaikaisesti ihmisten kanssa." + +#: ../../source/features.rst:18 +msgid "Because your own computer is the web server, *no third party can access anything that happens in OnionShare*, not even the developers of OnionShare. It's completely private. And because OnionShare is based on Tor onion services too, it also protects your anonymity. See the :doc:`security design ` for more info." +msgstr "" +"Koska sinun tietokoneesi on verkkopalvelin, *kukaan kolmas osapuoli ei voi " +"päästä käsiksi mihinkään mitä tapahtuu OnionSharessa*, ei edes OnionSharen " +"kehittäjät. Se on täysin yksityinen. Ja koska OnionShare perustuu Tor-" +"sipulipalveluihin, se myös suojaa sinun anonyymiyttä. Katso :doc:`security " +"design ` lukeaksesi lisää." + +#: ../../source/features.rst:21 +msgid "Share Files" +msgstr "Jaa tiedostoja" + +#: ../../source/features.rst:23 +msgid "You can use OnionShare to send files and folders to people securely and anonymously. Open a share tab, drag in the files and folders you wish to share, and click \"Start sharing\"." +msgstr "" +"Voit käyttää OnionSharea jakaaksesi tiedostoja ja kansioita ihmisille " +"turvallisesti ja anonyymisti. Avaa jaettu välilehti ja raahaa tähän " +"tiedostot ja kansiot, jotka haluat jakaa. Paina lopuksi \"Aloita jakaminen\"." + +#: ../../source/features.rst:27 +#: ../../source/features.rst:104 +msgid "After you add files, you'll see some settings. Make sure you choose the setting you're interested in before you start sharing." +msgstr "" +"Kun olet lisännyt tiedostot, näet joitain asetuksia. Varmista, että valitset " +"sinulle sopivat asetukset ennen kuin aloitat jakamisen." + +#: ../../source/features.rst:31 +msgid "As soon as someone finishes downloading your files, OnionShare will automatically stop the server, removing the website from the Internet. To allow multiple people to download them, uncheck the \"Stop sharing after files have been sent (uncheck to allow downloading individual files)\" box." +msgstr "" +"Heti, kun joku vastaanottaa onnistuneesti lähettämäsi tiedoston, OnionShare " +"automaattisesti pysäyttää palvelimen poistaen samalla verkkosivun " +"internetistä. Salliaksesi useammalle ihmisille oikeuden ladata ne, raksita " +"pois vaihtoehto \"Pysäytä jakaminen, kun tiedostot on lähetetty (raksita " +"pois salliaksesi yksittäisten tiedostojen lataaminen)\"." + +#: ../../source/features.rst:34 +msgid "Also, if you uncheck this box, people will be able to download the individual files you share rather than a single compressed version of all the files." +msgstr "" +"Lisäksi, jos raksitat pois tämän vaihtoehdon, ihmiset voivat tallentaa " +"yksittäisiä jakamiasi tiedostoja sen sijaan, että tallenttaisivat yhden " +"pakatun version kaikista tiedostoista." + +#: ../../source/features.rst:36 +msgid "When you're ready to share, click the \"Start sharing\" button. You can always click \"Stop sharing\", or quit OnionShare, immediately taking the website down. You can also click the \"↑\" icon in the top-right corner to show the history and progress of people downloading files from you." +msgstr "" +"Kun olet valmis jakamaan, klikkaa \"Aloita jakaminen\" -nappia. Voit aina " +"klikata \"Pysäytä jakaminen\", tai sulkea OnionSharen, mikä välittömästi " +"sulkee verkkosivun. Voit myös klikata \"↑\"-ylänuolikuvaketta oikeasta " +"ylänurkasta katsoaksesi historiaa ja lähettämiesi tiedostojen edistymistä." + +#: ../../source/features.rst:40 +msgid "Now that you have a OnionShare, copy the address and send it to the person you want to receive the files. If the files need to stay secure, or the person is otherwise exposed to danger, use an encrypted messaging app." +msgstr "" +"Nyt, kun sinulla on OnionShare, kopioi osoite ja lähetä ihmiselle, jonka " +"haluat vastaanottavan tiedostojasi. Jos tiedostojen tulee pysyä turvassa, " +"tai ihminen on jostain syystä vaarassa, käytä kryptattua viestintäsovellusta." + +#: ../../source/features.rst:42 +msgid "That person then must load the address in Tor Browser. After logging in with the random password included in the web address, the files can be downloaded directly from your computer by clicking the \"Download Files\" link in the corner." +msgstr "" +"Tämän ihmisen tulee sitten ladata osoite Tor-selaimeen. Kun on kirjautunut " +"sisään verkko-osoitteeseen satunnaisesti generoidulla salasanalla, tiedostot " +"voidaan tallentaa suoraan tietokoneeltasi klikkaamalla \"Tallenna tiedostot\"" +" -nappia nurkasta." + +#: ../../source/features.rst:47 +msgid "Receive Files and Messages" +msgstr "Vastaanota tiedostoja ja viestejä" + +#: ../../source/features.rst:49 +msgid "You can use OnionShare to let people anonymously submit files and messages directly to your computer, essentially turning it into an anonymous dropbox. Open a receive tab and choose the settings that you want." +msgstr "" +"Voit käyttää OnionSharea antaaksesi ihmisten anonyymisti lähettää tiedostoja " +"ja viestejä suoraan tietokoneelleesi, tekemällä tietokoneestasi käytännössä " +"anonyymin postilaatikon. Avaa vastaanottovälilehti ja valitse asetukset, " +"jotka sopivat sinulle." + +#: ../../source/features.rst:54 +msgid "You can browse for a folder to save messages and files that get submitted." +msgstr "" +"Voit selata kansioita tallentaaksesi viestit ja tiedostot, jotka tulevat " +"lisätyksi." + +#: ../../source/features.rst:56 +msgid "You can check \"Disable submitting text\" if want to only allow file uploads, and you can check \"Disable uploading files\" if you want to only allow submitting text messages, like for an anonymous contact form." +msgstr "" +"Voit tarkistaa \"Poista käytöstä tekstin syöttö\" -asetuksen, jos haluat " +"sallia vain tiedostolatauksia, ja voit tarkistaa \"Poista käytöstä " +"tiedostojen lataus\", jos haluat sallia vain tekstimuotoisia viestejä, esim. " +"anonyymiä yhteydenottolomaketta varten." + +#: ../../source/features.rst:58 +msgid "You can check \"Use notification webhook\" and then choose a webhook URL if you want to be notified when someone submits files or messages to your OnionShare service. If you use this feature, OnionShare will make an HTTP POST request to this URL whenever someone submits files or messages. For example, if you want to get an encrypted text messaging on the messaging app `Keybase `_, you can start a conversation with `@webhookbot `_, type ``!webhook create onionshare-alerts``, and it will respond with a URL. Use that as the notification webhook URL. If someone uploads a file to your receive mode service, @webhookbot will send you a message on Keybase letting you know as soon as it happens." +msgstr "" +"Voit raksittaa \"Käytä ilmoitusten verkkotoimintokutsua\" ja sen jälkeen " +"valitse verkkotoimintokutsun URL, jos haluat ilmoituksen, kun joku lisää " +"tiedostoja tai viestejä sinun OnionShare-palveluun. Jos käytät tätä " +"ominaisuutta, OnionShare tekee HTTP POST -pyynnön tähän osoitelinkkiin aina, " +"kun joku lisää tiedostoja tai viestejä. Esimerkiksi, jos haluat saada " +"kryptatun tekstimuotoisen viestin viestintäsovelluksessa `Keybase " +"`_, aloita keskustelu `@webhookbot `_ kanssa, kirjoita ``!webhook create onionshare-alerts`, ja " +"botti vastaa URL:lla. Käytä tätä ilmoitusten verkkotoimintokutsun " +"osoitelinkkinä. Jos joku lähettää tiedoston sinun vastaanottopalveluun, @" +"webhookbot lähettää sinulle viestin Keybasessa niin pian kuin mahdollista." + +#: ../../source/features.rst:63 +msgid "When you are ready, click \"Start Receive Mode\". This starts the OnionShare service. Anyone loading this address in their Tor Browser will be able to submit files and messages which get uploaded to your computer." +msgstr "" +"Kun olet valmis, klikkaa \"Käynnistä vastaanottotila\". Tämä käynnistää " +"OnionShare-palvelun. Kuka tahansa, joka lataa tämän osoitteen " +"tietokoneelleen Tor-selaimella pystyy lisäämään tiedostoja ja viestejä, " +"jotka ladataan tietokoneellesi." + +#: ../../source/features.rst:67 +msgid "You can also click the down \"↓\" icon in the top-right corner to show the history and progress of people sending files to you." +msgstr "" +"Voit myös klikata \"↓\" -alanuolikuvaketta yläoikeassa reunassa nähdäksesi " +"historian ja vastaanottamiesi tiedostojen edistymisen." + +#: ../../source/features.rst:69 +msgid "Here is what it looks like for someone sending you files and messages." +msgstr "" +"Tältä näyttää toiselle, kun hän lähettää sinulle tiedostoja ja viestejä." + +#: ../../source/features.rst:73 +msgid "When someone submits files or messages to your receive service, by default they get saved to a folder called ``OnionShare`` in the home folder on your computer, automatically organized into separate subfolders based on the time that the files get uploaded." +msgstr "" +"Kun joku lisää tiedostoja ja viestejä sinun vastaanottopalveluun, oletuksena " +"ne tallentaan kansioon nimeltä ``OnionShare``, joka sijaitsee tietokoneesi " +"kotikansiossa. Kansio on automaattisesti jaoteltu erillisiin alakansioihin " +"perustuen aikaan, jolloin tiedostot on ladattu." + +#: ../../source/features.rst:75 +msgid "Setting up an OnionShare receiving service is useful for journalists and others needing to securely accept documents from anonymous sources. When used in this way, OnionShare is sort of like a lightweight, simpler, not quite as secure version of `SecureDrop `_, the whistleblower submission system." +msgstr "" +"OnionSharen vastaanottopalvelun käyttöönotto on hyödyllistä toimittajille ja " +"muille, joiden tarvitsee turvallisesti käsitellä asiakirjoja anonyymeistä " +"lähteistä. Tällä tavalla käytettynä OnionShare on ikään kuin kevyt, " +"yksinkertaistettu, mutta ei niin turvallinen versio `SecureDrop " +"`_ -paljastustentekopalvelusta." + +#: ../../source/features.rst:78 +msgid "Use at your own risk" +msgstr "Käytä omalla vastuullasi" + +#: ../../source/features.rst:80 +msgid "Just like with malicious e-mail attachments, it's possible someone could try to attack your computer by uploading a malicious file to your OnionShare service. OnionShare does not add any safety mechanisms to protect your system from malicious files." +msgstr "" +"Aivan kuten sähköpostiin tulevien haitallisten liitetiedostojen kanssa " +"tapahtuu, on myös mahdollista, että joku yrittää hyökätä tietokoneellesi " +"lataamalla haitallisen tiedoston sinun OnionShare-palveluun. OnionShare ei " +"tarjoa mitään turvallisuusmekanismia suojatakseen sinun järjestelmääsi " +"haitallisilta tiedostoilta." + +#: ../../source/features.rst:82 +msgid "If you receive an Office document or a PDF through OnionShare, you can convert these documents into PDFs that are safe to open using `Dangerzone `_. You can also protect yourself when opening untrusted documents by opening them in `Tails `_ or in a `Qubes `_ disposableVM." +msgstr "" +"Jos vastaanotat Office-asiakirjan tai PDF-tiedoston OnionSharen kautta, voit " +"muuntaa nämä asiakirjat PDF:ksi, jotka on turvallista avata käyttämällä `" +"Dangerzonea `_. Voit myös suojata itseäsi, kun " +"avaat ei-luotettuja asiakirjoja avaamalla ne `Tails `_ tai `Qubes `_ -käyttöjärjestelmissä, jotka on " +"lisäksi eristetty kertakäyttöiseen virtuaalikoneeseen." + +#: ../../source/features.rst:84 +msgid "However, it is always safe to open text messages sent through OnionShare." +msgstr "" +"Kuitenkin on aina turvallista avata tekstimuotoiset viestit OnionSharen " +"kautta." + +#: ../../source/features.rst:87 +msgid "Tips for running a receive service" +msgstr "Vinkkejä vastaanottopalvelun ylläpitoon" + +#: ../../source/features.rst:89 +msgid "If you want to host your own anonymous dropbox using OnionShare, it's recommended you do so on a separate, dedicated computer always powered on and connected to the Internet, and not on the one you use on a regular basis." +msgstr "" +"Jos haluat isännöidä OnionSharella omaa anonyymiä tiputuslaatikkoa " +"tiedostoille, on suositeltavaa tehdä erillinen, dedikoitu tietokone, joka on " +"aina päällä ja yhdistettynä internetiin. Sen ei tule olla sama laite, jota " +"käytät päivittäin." + +#: ../../source/features.rst:91 +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 "" +"Jos aiot laittaa OnionShare-osoitteen verkkosivullesi tai sosiaalisen median " +"profiileihin, tallenna välilehti (see :ref:`save_tabs`) ja ylläpidä sitä " +"julkisena palveluna (katso :ref:`turn_off_passwords`). On hyvä idea antaa " +"sille räätälöity otsikko (see :ref:`custom_titles`)." + +#: ../../source/features.rst:94 +msgid "Host a Website" +msgstr "Isännöi verkkosivua" + +#: ../../source/features.rst:96 +msgid "To host a static HTML website with OnionShare, open a website tab, drag the files and folders that make up the static content there, and click \"Start sharing\" when you are ready." +msgstr "" +"Isännöidäksesi HTML-verkkosivua OnionSharella, avaa verkkosivun välilehti ja " +"raahaa sinne tiedostot ja kansiot, jotka luovat staattisen sisällön. Klikkaa " +"lopuksi \"Aloita jakaminen\"." + +#: ../../source/features.rst:100 +msgid "If you add an ``index.html`` file, it will render when someone loads your website. You should also include any other HTML files, CSS files, JavaScript files, and images that make up the website. (Note that OnionShare only supports hosting *static* websites. It can't host websites that execute code or use databases. So you can't for example use WordPress.)" +msgstr "" +"Jos lisäät ``index.html``-tiedoston, se renderöityy, kun joku avaa " +"verkkosivusi. Sinun tulisi sisällyttää mitä tahansa muita HTML-, CSS-, " +"JavaScript- sekä kuvatiedostoja, jotka luovat verkkosivun. (Huomioi, että " +"OnionShare tukee vain *staattisten* verkkosivujen isännöintiä. Se ei voi " +"isännöidä verkkosivuja, jotka suorittavat koodia tai käyttävät tietokantoja. " +"Näin ollen et voi käyttää esimerkiksi WordPressia.)" + +#: ../../source/features.rst:102 +msgid "If you don't have an ``index.html`` file, it will show a directory listing instead, and people loading it can look through the files and download them." +msgstr "" +"Jos sinulla ei ole ``index.html``-tiedostoa, sinulle näkyy sen sijaan " +"tiedostolistaus, ja ihmiset sen ladatessaan voivat katsoa läpi, mitä " +"tiedostoja he haluavat ladata." + +#: ../../source/features.rst:109 +msgid "Content Security Policy" +msgstr "Sisältöä koskevat turvallisuuslinjaukset" + +#: ../../source/features.rst:111 +msgid "By default OnionShare helps secure your website by setting a strict `Content Security Police `_ header. However, this prevents third-party content from loading inside the web page." +msgstr "" +"Oletuksena OnionShare auttaa turvaamaan sinun verkkosivusi asettamalla " +"tiukan `sisältöä koskevan turvallisuuslinjauksen `_ otsakkeen. Tämä kuitenkin estää kolmannen " +"osapuolen sisältöä latautumista verkkosivun sisällä." + +#: ../../source/features.rst:113 +msgid "If you want to load content from third-party websites, like assets or JavaScript libraries from CDNs, check the \"Don't send Content Security Policy header (allows your website to use third-party resources)\" box before starting the service." +msgstr "" +"Jos haluat ladata sisältöä kolmannen osapuolen verkkosivuilta, kuten " +"resursseja tai JavaScript-kirjastoja sisällönjakeluverkosta, raksita \"Älä " +"lähetä sisältöä koskevaa turvallisuuslinjausotsaketta (sallii sinun " +"verkkosivun käyttää kolmannen osapuolten resursseja)\" -ruutu ennen palvelun " +"käynnistämistä." + +#: ../../source/features.rst:116 +msgid "Tips for running a website service" +msgstr "Vinkkejä verkkosivupalvelun ylläpitoon" + +#: ../../source/features.rst:118 +msgid "If you want to host a long-term website using OnionShare (meaning not something to quickly show someone something), it's recommended you do it on a separate, dedicated computer always powered on and connected to the Internet, and not on the one you use on a regular basis. Save the tab (see :ref:`save_tabs`) so you can resume the website with the same address if you close OnionShare and re-open it later." +msgstr "" +"Jos haluat isännöidä pitkäaikaista verkkosivua käyttämällä OnionSharella (" +"eli se ei tulee pikaiseen tarpeeseen), on suositeltua tehdä se erillisellä, " +"dedikoidulla tietokoneella, jossa on aina virta päällä ja yhdistettynä " +"internetiin. Lisäksi sen ei tulisi olla sama laite, jota käytät päivittäin. " +"Tallenna välilehti (katso :ref:`save_tabs`), jotta voit palauttaa " +"verkkosivun samassa osoitteessa, jos suljet OnionSharen ja avaat sen " +"uudelleen myöhemmin." + +#: ../../source/features.rst:121 +msgid "If your website is intended for the public, you should run it as a public service (see :ref:`turn_off_passwords`)." +msgstr "" +"Jos verkkosivusi on tarkoitus olla avoin yleisölle, sinun tulisi suorittaa " +"sitä julkisena palveluna (see :ref:`turn_off_passwords`)." + +#: ../../source/features.rst:124 +msgid "Chat Anonymously" +msgstr "Viesti anonyymisti" + +#: ../../source/features.rst:126 +msgid "You can use OnionShare to set up a private, secure chat room that doesn't log anything. Just open a chat tab and click \"Start chat server\"." +msgstr "" +"Voit käyttää OnionSharea perustaaksesi yksityisen ja turvallisen " +"keskusteluhuoneen, joka ei pidä lokia mistään. Avaa vain keskusteluvälilehti " +"ja klikkaa \"Aloita chatpalvelu\"." + +#: ../../source/features.rst:130 +msgid "After you start the server, copy the OnionShare address and send it to the people you want in the anonymous chat room. If it's important to limit exactly who can join, use an encrypted messaging app to send out the OnionShare address." +msgstr "" +"Kun olet käynnistänyt palvelimen, kopioi OnionShare-osoite ja lähetä se " +"haluamillesi ihmisille anonyymissä keskusteluhuoneessa. Jos on tärkeää " +"rajoittaa tarkasti kuka voi liittyä, käytä kryptattua viestintäsovellusta " +"lähettääksesi OnionShare-osoitteen." + +#: ../../source/features.rst:135 +msgid "People can join the chat room by loading its OnionShare address in Tor Browser. The chat room requires JavasScript, so everyone who wants to participate must have their Tor Browser security level set to \"Standard\" or \"Safer\", instead of \"Safest\"." +msgstr "" +"Ihmiset voivat liittyä keskusteluhuoneeseen lataamalla sen OnionShare-" +"osoitteen Tor-selaimeensa. Keskusteluhuone vaatii JavaScriptin, joten " +"jokaisella liittyvällä täytyy olla Tor-selaimen turvallisuustaso säädettynä " +"joko tasolle \"Standard\" tai \"Safet\". Ei tasolle \"Safest\"." + +#: ../../source/features.rst:138 +msgid "When someone joins the chat room they get assigned a random name. They can change their name by typing a new name in the box in the left panel and pressing ↵. Since the chat history isn't saved anywhere, it doesn't get displayed at all, even if others were already chatting in the room." +msgstr "" +"Kun joku liittyy keskusteluhuoneeseen, heille määritellään satunnainen nimi. " +"He voivat muokata nimeään kirjoittamalla uuden nimen vasemmassa palkissa " +"olevaan kenttään ja painamalla ↵. Koska keskusteluhistoriaa ei tallenneta " +"mihinkään, sitä ei näytetä lainkaan, vaikka jotkut muut olisivat valmiiksi " +"keskustelemassa huoneessa." + +#: ../../source/features.rst:144 +msgid "In an OnionShare chat room, everyone is anonymous. Anyone can change their name to anything, and there is no way to confirm anyone's identity." +msgstr "" +"OnionSharen keskusteluhuoneessa jokainen on anonyymi. Kuka tahansa voi " +"muuttaa nimeään miksi tahansa, eikä kellään ole mahdollisuutta varmistaa " +"kenenkään toisen identiteettiä." + +#: ../../source/features.rst:147 +msgid "However, if you create an OnionShare chat room and securely send the address only to a small group of trusted friends using encrypted messages, you can be reasonably confident the people joining the chat room are your friends." +msgstr "" +"Kuitenkin, jos luot OnionShare-keskusteluhuoneen ja turvallisesti lähetät " +"osoitteen vain pienelle ryhmälle luotettavia ystäviä kryptatun " +"viestintäsovelluksen kautta, voit olla suhteellisen varma, että huoneeseen " +"liittyvät henkilöt ovat tuntemiasi henkilöitä." + +#: ../../source/features.rst:150 +msgid "How is this useful?" +msgstr "Mitä hyötyä tästä on?" + +#: ../../source/features.rst:152 +msgid "If you need to already be using an encrypted messaging app, what's the point of an OnionShare chat room to begin with? It leaves less traces." +msgstr "" +"Jos sinulla tulisi jo valmiiksi olla kryptattu viestintäsovellus, mikä idea " +"OnionSharen keskusteluhuoneessa on ensinnäkään? Se jättää vähemmän jälkiä." + +#: ../../source/features.rst:154 +msgid "If you for example send a message to a Signal group, a copy of your message ends up on each device (the devices, and computers if they set up Signal Desktop) of each member of the group. Even if disappearing messages is turned on, it's hard to confirm all copies of the messages are actually deleted from all devices, and from any other places (like notifications databases) they may have been saved to. OnionShare chat rooms don't store any messages anywhere, so the problem is reduced to a minimum." +msgstr "" +"Jos sinä esimerkiksi lähetät viestin Signa-ryhmään, kopio viestistäsi päätyy " +"jokaisen ryhmän jäsenen jokaiseen laitteeseen (laitteet ja tietokoneet, jos " +"heillä on käytössä Signal Desktop). Vaikka katoavat viestit olisi otettu " +"käyttöön, on vaikea varmistaa, että kaikki kopiot on varmasti poistettu " +"kaikilta laitteilta, ja muista paikoista (kuten ilmoitustietokannoista), " +"joihin tiedot on tallennettu. OnionShare-keskusteluhuoneet eivät säilö " +"mitään viestejä minnekään, joten ongelma on rajattu minimiin." + +#: ../../source/features.rst:157 +msgid "OnionShare chat rooms can also be useful for people wanting to chat anonymously and securely with someone without needing to create any accounts. For example, a source can send an OnionShare address to a journalist using a disposable e-mail address, and then wait for the journalist to join the chat room, all without compromosing their anonymity." +msgstr "" +"OnionShare-keskusteluhuoneet voivat olla hyödyllisiä myös ihmisille, jotka " +"haluavat viestiä anonyymisti ja turvallisesti toisten kanssa ilman " +"käyttäjätunnusten tekoa. Esimerkiksi, tietolähde voi lähettää OnionShare-" +"osoitteen toimittajalle käyttämällä kertakäyttöistä sähköpostiosoitetta ja " +"sen jälkeen odottaa toimittajaa keskusteluryhmään. Kaikki tämä ilman, että " +"kenenkään anonyymiys on uhattuna." + +#: ../../source/features.rst:161 +msgid "How does the encryption work?" +msgstr "Kuinka kryptaaminen toimii?" + +#: ../../source/features.rst:163 +msgid "Because OnionShare relies on Tor onion services, connections between the Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When someone posts a message to an OnionShare chat room, they send it to the server through the E2EE onion connection, which then sends it to all other members of the chat room using WebSockets, through their E2EE onion connections." +msgstr "" +"Koska OnionShare perustuu Tor-sipulipalveluihin, yhteydet Tor-selaimen ja " +"OnionSharen välillä ovat päästä päähän salattuja (E2EE). Kun joku julkaisee " +"viestin OnionSharen keskusteluhuoneessa, ne lähettävät sen palvelimelle E2EE-" +"sipuliyhteyden läpi, mikä sitten lähettää sen kaikille muille huoneen " +"jäsenille käyttäen WebSocketeja, edelleen heidän E2EE-sipuliyhteyksien läpi." + +#: ../../source/features.rst:165 +msgid "OnionShare doesn't implement any chat encryption on its own. It relies on the Tor onion service's encryption instead." +msgstr "" +"OnionShare ei itse toteuta minkäänmuotoista viestikryptausta. OnionShare " +"perustuu pelkästään Tor-sipulipalveluiden kryptaukseen." diff --git a/docs/source/locale/fi/LC_MESSAGES/help.po b/docs/source/locale/fi/LC_MESSAGES/help.po new file mode 100644 index 00000000..d86b46db --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/help.po @@ -0,0 +1,67 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-24 17:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/help.rst:2 +msgid "Getting Help" +msgstr "Pyydä apua" + +#: ../../source/help.rst:5 +msgid "Read This Website" +msgstr "Lue tämä verkkosivu" + +#: ../../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 "" +"Löydät ohjeet OnionSharen käyttämiseen. Katso ensin kaikki osiot läpi, " +"löydätkö vastauksen kysymykseesi." + +#: ../../source/help.rst:10 +msgid "Check the GitHub Issues" +msgstr "Katso ilmoitukset GitHubista" + +#: ../../source/help.rst:12 +msgid "If it isn't on the website, please check the `GitHub issues `_. It's possible someone else has encountered the same problem and either raised it with the developers, or maybe even posted a solution." +msgstr "" +"Jos sitä ei ollut verkkosivuilla, katso sivu `GitHub issues `_. On mahdollista, että joku toinen on " +"kohdannut saman ongelman ja vienyt sen kehittäjille, tai jopa löytänyt " +"ratkaisun siihen." + +#: ../../source/help.rst:15 +msgid "Submit an Issue Yourself" +msgstr "Ilmoita ongelmasta" + +#: ../../source/help.rst:17 +msgid "If you are unable to find a solution, or wish to ask a question or suggest a new feature, please `submit an issue `_. This requires `creating a GitHub account `_." +msgstr "" +"Jos et löydä ratkaisua, tai haluat kysyä kysymyksen tai ehdottaa uutta " +"ominaisuutta, `ilmoita ongelmasta `_. Tämä vaatii `GitHub-tilin luonnin `_." + +#: ../../source/help.rst:20 +msgid "Join our Keybase Team" +msgstr "Liity meidän Keybase-tiimiin" + +#: ../../source/help.rst:22 +msgid "See :ref:`collaborating` on how to join the Keybase team used to discuss the project." +msgstr "" +"Katso :ref:`collaborating`kuinka liityt Keybase-tiimiin keskustellaksesi " +"projektista." diff --git a/docs/source/locale/fi/LC_MESSAGES/index.po b/docs/source/locale/fi/LC_MESSAGES/index.po new file mode 100644 index 00000000..5c107e24 --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/index.po @@ -0,0 +1,30 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-24 17:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/index.rst:2 +msgid "OnionShare's documentation" +msgstr "OnionSharen dokumentaatio" + +#: ../../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 on avoimen koodin työkalu, joka antaa sinun turvallisesti ja " +"anonyymisti jakaa tiedostoja, isännöidä verkkosivuja, ja keskustella " +"kaveriesi kanssa Tor-verkossa." diff --git a/docs/source/locale/fi/LC_MESSAGES/install.po b/docs/source/locale/fi/LC_MESSAGES/install.po new file mode 100644 index 00000000..cf821c16 --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/install.po @@ -0,0 +1,151 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-24 17:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/install.rst:2 +msgid "Installation" +msgstr "Asennus" + +#: ../../source/install.rst:5 +msgid "Windows or macOS" +msgstr "Windows tai macOS" + +#: ../../source/install.rst:7 +msgid "You can download OnionShare for Windows and macOS from the `OnionShare website `_." +msgstr "" +"Voit ladata OnionSharen Windowsille ja macOS:lle `OnionSharen verkkosivuilta " +"`_." + +#: ../../source/install.rst:12 +msgid "Install in Linux" +msgstr "Asenna Linuxille" + +#: ../../source/install.rst:14 +msgid "There are various ways to install OnionShare for Linux, but the recommended way is to use either the `Flatpak `_ or the `Snap `_ package. Flatpak and Snap ensure that you'll always use the newest version and run OnionShare inside of a sandbox." +msgstr "" +"On erilaisia tapoja asentaa OnionShare Linuxille, mutta suositeltu tapa on " +"käyttää joko `Flatpak `_ tai `Snap `_ -pakettia. Flatpak ja Snap varmistavat, että sinä aina käytät uusinta " +"versiota ja OnionShare toimii eristetyssä tilassa (sandbox)." + +#: ../../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-tuki on sisäänrakennettu Ubuntuun ja Fedora tulee Flatpak-tuella, mutta " +"sinä päätät kumpaa käytät. Kummatkin toimivat kaikissa Linux-jakeluissa." + +#: ../../source/install.rst:19 +msgid "**Install OnionShare using Flatpak**: https://flathub.org/apps/details/org.onionshare.OnionShare" +msgstr "" +"**Asenna OnionShare käyttämällä Flatpakia**: https://flathub.org/apps/" +"details/org.onionshare.OnionShare" + +#: ../../source/install.rst:21 +msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare" +msgstr "" +"**Asenna OnionShare käyttämällä Snapia**: 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 "" +"Voit myös ladata ja asentaa PGP-allekirjoitetun ``.flatpak`` or ``.snap`` " +"paketin sivulta https://onionshare.org/dist/ jos niin haluat." + +#: ../../source/install.rst:28 +msgid "Verifying PGP signatures" +msgstr "Varmistetaan PGP-allekirjoituksia" + +#: ../../source/install.rst:30 +msgid "You can verify that the package you download is legitimate and hasn't been tampered with by verifying its PGP signature. For Windows and macOS, this step is optional and provides defense in depth: the OnionShare binaries include operating system-specific signatures, and you can just rely on those alone if you'd like." +msgstr "" +"PGP-allekirjoituksen tarkistuksella voit varmistaa, että lataamasi paketti " +"on oikea eikä sitä ole manipuloitu. Windowsille ja macOS:lle tämä vaihe on " +"vapaaehtoinen ja tarjoaa lisäturvallisuutta: OnionShare binäärit sisältävät " +"käyttöjärjestelmäkohtaiset allekirjoitukset ja voit luottaa halutessasi " +"ainoastaan niihin." + +#: ../../source/install.rst:34 +msgid "Signing key" +msgstr "Allekirjoitusavain" + +#: ../../source/install.rst:36 +msgid "Packages are signed by Micah Lee, the core developer, using his PGP public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. You can download Micah's key `from the keys.openpgp.org keyserver `_." +msgstr "" +"Paketit on allekirjoittanut pääkehittäjä Micah Lee käyttämällä hänen " +"julkista PGP-avaintaan sormenjäljellä " +"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Voit tallentaa Micah'n avaimen " +"`keys.openpgp.org -avainpalvelimelta `_." + +#: ../../source/install.rst:38 +msgid "You must have GnuPG installed to verify signatures. For macOS you probably want `GPGTools `_, and for Windows you probably want `Gpg4win `_." +msgstr "" +"Sinulla tulee olla GnuPG asennettuna varmentaaksesi allekirjoitukset. MacOS:" +"lle haluat luultavasti `GPGTools -sovelluksen `__, ja " +"Windowsille luultavasti haluat`Gpg4win -sovelluksen `_." + +#: ../../source/install.rst:41 +msgid "Signatures" +msgstr "Allekirjoitukset" + +#: ../../source/install.rst:43 +msgid "You can find the signatures (as ``.asc`` files), as well as Windows, macOS, Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the folders named for each version of OnionShare. You can also find them on the `GitHub Releases page `_." +msgstr "" +"Löydät allekirjoitukset (``.asc``-tiedostoina), kuten myös WIndows-, macOS-, " +"Flatpak-, Snap- ja muut lähdepaketit osoitteesta https://onionshare.org/dist/" +" ja sieltä kunkin OnionShare-version mukaan nimetystä kansiosta. Löydät ne " +"myös `GitHubin julkaisusivulta `_." + +#: ../../source/install.rst:47 +msgid "Verifying" +msgstr "Varmennetaan" + +#: ../../source/install.rst:49 +msgid "Once you have imported Micah's public key into your GnuPG keychain, downloaded the binary and and ``.asc`` signature, you can verify the binary for macOS in a terminal like this::" +msgstr "" +"Kun olet tuonut Micah'n julkisen avaimen sinun GnuPG-avainketjuun, " +"tallentanut binäärit ja ``.asc`` -allekirjoituksen, voit varmentaa binäärit " +"macOS:lle terminaalissa näin::" + +#: ../../source/install.rst:53 +msgid "Or for Windows, in a command-prompt like this::" +msgstr "Tai WIndowsille, komentokehote näyttää tältä::" + +#: ../../source/install.rst:57 +msgid "The expected output looks like this::" +msgstr "Odotettu lopputulos näyttää tältä::" + +#: ../../source/install.rst:69 +msgid "If you don't see 'Good signature from', there might be a problem with the integrity of the file (malicious or otherwise), and you should not install the package. (The \"WARNING:\" shown above, is not a problem with the package, it only means you haven't already defined any level of 'trust' of Micah's PGP key.)" +msgstr "" +"Jos et näe \"Hyvä allekirjoitus henkilöltä\", tiedoston eheydessä voi olla " +"ongelmia (haitallista tai muuta), ja sinun ei tulisi asentaa pakettia. (" +"\"VAROITUS\" ei ole ongelma itse paketin suhteen, vaan se tarkoittaa " +"ainoastaan, ettet ole määritellyt \"luottamuksen\" tasoa Micah'n PGP-avaimen " +"suhteen.)" + +#: ../../source/install.rst:71 +msgid "If you want to learn more about verifying PGP signatures, the guides for `Qubes OS `_ and the `Tor Project `_ may be useful." +msgstr "" +"Jos haluat opia enemmän PGP-allekirjoitusten varmentamisesta, ohjeet `Qubes " +"OS:lle `_ ja `Tor " +"Projectille `_ " +"voivat olla hyödyllisiä." diff --git a/docs/source/locale/fi/LC_MESSAGES/security.po b/docs/source/locale/fi/LC_MESSAGES/security.po new file mode 100644 index 00000000..92cfff77 --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/security.po @@ -0,0 +1,106 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-24 17:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/security.rst:2 +msgid "Security Design" +msgstr "Turvallisuussuunnittelu" + +#: ../../source/security.rst:4 +msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works." +msgstr "Lue ensin :ref:`how_it_works`nähdäksesi miten OnionShare toimii." + +#: ../../source/security.rst:6 +msgid "Like all software, OnionShare may contain bugs or vulnerabilities." +msgstr "" +"Kuten kaikki ohjelmisto, OnionSharessa voi olla bugeja tai haavoittuvuuksia." + +#: ../../source/security.rst:9 +msgid "What OnionShare protects against" +msgstr "Miltä OnionShare suojelee" + +#: ../../source/security.rst:11 +msgid "**Third parties don't have access to anything that happens in OnionShare.** Using OnionShare means hosting services directly on your computer. When sharing files with OnionShare, they are not uploaded to any server. If you make an OnionShare chat room, your computer acts as a server for that too. This avoids the traditional model of having to trust the computers of others." +msgstr "" +"**Kolmansilla osapuolilla ei ole pääsyä mihinkään mitä tapahtuu " +"OnionSharessa.** OnionSharen käyttäminen tarkoittaa palveluiden isännöintiä " +"suoraan tietokoneellasi. Kun OnionSharessa jaetaan tiedostoja, niitä ei " +"ladata mihinkään palvelimelle. Jos teet OnionShare-keskusteluryhmän, " +"tietokoneesi toimii samalla palvelimena sille. Tällä vältetään perinteistä " +"mallia, jossa täytyy luottaa muiden tietokoneisiin." + +#: ../../source/security.rst:13 +msgid "**Network eavesdroppers can't spy on anything that happens in OnionShare in transit.** The connection between the Tor onion service and Tor Browser is end-to-end encrypted. This means network attackers can't eavesdrop on anything except encrypted Tor traffic. Even if an eavesdropper is a malicious rendezvous node used to connect the Tor Browser with OnionShare's onion service, the traffic is encrypted using the onion service's private key." +msgstr "" +"**Verkon salakuuntelijat eivät voi vakoilla mitään mikä tapahtuu " +"OnionSharessa tiedonsiirron aikana.** Yhteys Tor-sipulipalvelun ja Tor-" +"selaimen välillä on päästä päähän salattu. Tämä tarkoittaa, että " +"verkkohyökkääjät eivät voi salakuunnella mitään paitsi salattua Tor-" +"liikennettä. Vaikka salakuuntelija toimisi haitallisena Tor-solmuna, jota " +"käytetään yhdistämisessä Tor-selaimeen OnionSharen sipulipalvelun kanssa, " +"liikenne on kryptattu sipulipalvelun yksityisellä avaimella." + +#: ../../source/security.rst:15 +msgid "**Anonymity of OnionShare users are protected by Tor.** OnionShare and Tor Browser protect the anonymity of the users. As long as the OnionShare user anonymously communicates the OnionShare address with the Tor Browser users, the Tor Browser users and eavesdroppers can't learn the identity of the OnionShare user." +msgstr "" +"**OnionSharen käyttäjien anonyymiys on suojattu Torilla.** OnionShare ja Tor-" +"selain suojaavat käyttäjien anonyymiyttä. Niin kauan, kun OnionShare-" +"käyttäjä anonyymisti ottaa yhteyden OnionShare-osoitteeseen muiden Tor-" +"selaimen käyttäjien kanssa, Tor-selaimen käyttäjät ja salakuuntelijat eivät " +"voi tietää OnionShare-käyttäjän identiteettiä." + +#: ../../source/security.rst:17 +msgid "**If an attacker learns about the onion service, it still can't access anything.** Prior attacks against the Tor network to enumerate onion services allowed the attacker to discover private .onion addresses. If an attack discovers a private OnionShare address, a password will be prevent them from accessing it (unless the OnionShare user chooses to turn it off and make it public). The password is generated by choosing two random words from a list of 6800 words, making 6800², or about 46 million possible passwords. Only 20 wrong guesses can be made before OnionShare stops the server, preventing brute force attacks against the password." +msgstr "" +"**Jos hyökkääjä saa tietää sipulipalvelusta, se ei voi silti päästä käsiksi " +"mihinkään.** Varhaisemmat hyökkäykset Tor-verkkoa vastaan sipulipalveluiden " +"listaamiseksi mahdollisti hyökkääjän paljastaa yksityiset .onion -osoitteet. " +"Jos hyökkääjä löytää yksityisen OnionShare-osoitteen, salasana tulee " +"estämään niitä pääsemästä käsiksi siihen (paitsi jos OnionShare-käyttäjä " +"ottaa salasanan pois käytöstä tehdäkseen siitä julkisen). Salasana luodaan " +"valitsemalla kaksi satunnaista sanaa 6800 sanan luettelosta, mikä tarkoittaa " +"6800² eli 46 miljoonaa erilaista salasanavaihtoehtoa. Vain 20 väärää " +"arvausta sallitaan ennen kuin OnionShare pysäyttää palvelimen estäen brute " +"force -hyökkäykset salasanan murtamiseksi." + +#: ../../source/security.rst:20 +msgid "What OnionShare doesn't protect against" +msgstr "Miltä OnionShare ei suojaa" + +#: ../../source/security.rst:22 +msgid "**Communicating the OnionShare address might not be secure.** Communicating the OnionShare address to people is the responsibility of the OnionShare user. If sent insecurely (such as through an email message monitored by an attacker), an eavesdropper can tell that OnionShare is being used. If the eavesdropper loads the address in Tor Browser while the service is still up, they can access it. To avoid this, the address must be communicateed securely, via encrypted text message (probably with disappearing messages enabled), encrypted email, or in person. This isn't necessary when using OnionShare for something that isn't secret." +msgstr "" +"**Yhdistäminen OnionShare-osoitteeseen ei ole välttämättä turvallista.** " +"OnionShare-käyttäjän vastuulla on yhteydenpito muihin ihmisiin OnionShare-" +"osoitteen avulla. Jos lähetetty turvattomasti (kuten salakuunnellun " +"sähköpostin kautta), vakoilija voi tietää, että OnionShare on käytössä. Jos " +"vakoilija lataa osoitteen Tor-selaimeen palvelimen ollessa käynnissä, he " +"voivat päästä käsiksi siihen. Välttääksesi tämän, osoite tulee jakaa " +"turvallisesti, kryptattuna tekstiviestinä (mieluiten itsestään katoavana " +"viestinä), kryptattuna sähköpostina tai kasvotusten. Tämä ei ole " +"välttämätöntä, jos OnionSharea ei käytetä salaisia asioita varten." + +#: ../../source/security.rst:24 +msgid "**Communicating the OnionShare address might not be anonymous.** Extra precautions must be taken to ensure the OnionShare address is communicated anonymously. A new email or chat account, only accessed over Tor, can be used to share the address. This isn't necessary unless anonymity is a goal." +msgstr "" +"**Yhdistäminen OnionShare-osoitteeseen ei välttämättä ole anonyymiä.** " +"Lisätoimenpiteitä tulee tehdä varmistuakseen, että OnionShare-osoitteeseen " +"voidaan yhdistää anonyymisti. Uusi sähkposti- tai chat-tili, vain Tor-verkon " +"kautta käytettynä, voidaan käyttää osoitteen jakamiseen. Tämä ei ole " +"välttämätöntä, jos anonyymiys ei ole tavoitteena." diff --git a/docs/source/locale/fi/LC_MESSAGES/sphinx.po b/docs/source/locale/fi/LC_MESSAGES/sphinx.po new file mode 100644 index 00000000..01d4a7b1 --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/sphinx.po @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-24 17:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/_templates/versions.html:10 +msgid "Versions" +msgstr "Versiot" + +#: ../../source/_templates/versions.html:18 +msgid "Languages" +msgstr "Kielet" diff --git a/docs/source/locale/fi/LC_MESSAGES/tor.po b/docs/source/locale/fi/LC_MESSAGES/tor.po new file mode 100644 index 00000000..19292e06 --- /dev/null +++ b/docs/source/locale/fi/LC_MESSAGES/tor.po @@ -0,0 +1,215 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Micah Lee, et al. +# This file is distributed under the same license as the OnionShare package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: OnionShare 2.3.2\n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" +"POT-Creation-Date: 2021-05-31 10:12-0700\n" +"PO-Revision-Date: 2021-08-25 18:33+0000\n" +"Last-Translator: Kaantaja \n" +"Language-Team: none\n" +"Language: fi\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.8.1-dev\n" + +#: ../../source/tor.rst:2 +msgid "Connecting to Tor" +msgstr "Yhdistetään Toriin" + +#: ../../source/tor.rst:4 +msgid "Pick a way to connect OnionShare to Tor by clicking the \"⚙\" icon in the bottom right of the OnionShare window to get to its settings." +msgstr "" +"Valitse, kuinka OnionShare yhdistetään Toriin klikkaamalla \"⚙\" kuvaketta " +"Onionshare-ikkunan oikeasta alareunasta." + +#: ../../source/tor.rst:9 +msgid "Use the ``tor`` bundled with OnionShare" +msgstr "Käytä ``tor`` Onionsharen kanssa" + +#: ../../source/tor.rst:11 +msgid "This is the default, simplest and most reliable way that OnionShare connects to Tor. For this reason, it's recommended for most users." +msgstr "" +"Tämä on oletus, yksinkertaisin ja luotettavin tapa, jolla OnionShare " +"yhdistää Tor-verkkoon. Tästä syystä se on suositeltu useimmille käyttäjille." + +#: ../../source/tor.rst:14 +msgid "When you open OnionShare, it launches an already configured ``tor`` process in the background for OnionShare to use. It doesn't interfere with other ``tor`` processes on your computer, so you can use the Tor Browser or the system ``tor`` on their own." +msgstr "" +"Kun avaat OnionSharen, se avaa valmiiksisäädetyn ``tor``-prosesin taustalla, " +"jota OnionShare voi käyttää. Se ei häiritse muita ``tor``-prosesseja " +"tietokoneellasi, joten voit käyttää Tor-selainta tai järjestelmän ``tor`` -" +"sovellusta erikseen." + +#: ../../source/tor.rst:18 +msgid "Attempt auto-configuration with Tor Browser" +msgstr "Yritä automaattista asetusten säätämistä Tor-selaimella" + +#: ../../source/tor.rst:20 +msgid "If you have `downloaded the Tor Browser `_ and don't want two ``tor`` processes running, you can use the ``tor`` process from the Tor Browser. Keep in mind you need to keep Tor Browser open in the background while you're using OnionShare for this to work." +msgstr "" +"Jos olet `tallentanut Tor-selaimen `_ etkä halua " +"kahta ``tor``-prosessia taustalle, voit käyttää Tor-selaimen ``tor``-" +"prosessia. Muista, että tällöin Tor-selaimen tulee pysyä auki taustalla, kun " +"käytät OnionSharea." + +#: ../../source/tor.rst:24 +msgid "Using a system ``tor`` in Windows" +msgstr "Järjestelmän ``tor``-prosessin käyttäminen Windowsissa" + +#: ../../source/tor.rst:26 +msgid "This is fairly advanced. You'll need to know how edit plaintext files and do stuff as an administrator." +msgstr "" +"Tämä on melko vaativaa. Sinun täytyy tietää kuinka muokata selkokielisiä " +"tiedostoja ja kuinka tehdä ylläpitojuttuja." + +#: ../../source/tor.rst:28 +msgid "Download the Tor Windows Expert Bundle `from `_. Extract the compressed file and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``." +msgstr "" +"Tallenna Tor Windows Expert Bundle `osoitteesta `_. Pura pakattu tiedosto ja kopioi purettu kansio sijaintiin " +"``C:\\Program Files (x86)\\``. Nimeä purettu kansio, jonka sisällä ovat myös " +"``Data``ja `Tor``, muotoon ``tor-win32``." + +#: ../../source/tor.rst:32 +msgid "Make up a control port password. (Using 7 words in a sequence like ``comprised stumble rummage work avenging construct volatile`` is a good idea for a password.) Now open a command prompt (``cmd``) as an administrator, and use ``tor.exe --hash-password`` to generate a hash of your password. For example::" +msgstr "" +"Keksi kontrolliportin salasana. (Käyttämällä 7 sanaa järjestyksessä kuten ``" +"murrettu kompastus penkominen työ kostaminen rakentaa räjähdysherkkä`` on " +"hyvä idea salasanalle.) Nyt avaa komentokehote (``cmd``) ylläpitäjänä, ja " +"käytä ``tor.exe --hash-password`` luodaksesi tiivisteen salasanastasi. " +"Esimerkiksi::" + +#: ../../source/tor.rst:39 +msgid "The hashed password output is displayed after some warnings (which you can ignore). In the case of the above example, it is ``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``." +msgstr "" +"Hashattu salasana näytetään joidenkin varoitusten jälkeen (jotka voit " +"ohittaa). Ylläolevassa esimerkkitapauksessa se on " +"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``." + +#: ../../source/tor.rst:41 +msgid "Now create a new text file at ``C:\\Program Files (x86)\\tor-win32\\torrc`` and put your hashed password output in it, replacing the ``HashedControlPassword`` with the one you just generated::" +msgstr "" +"Luo nyt uusi tekstitiedosto sijaintiin ``C:\\Program Files (x86)\\tor-" +"win32\\torrc`` ja liitä hashattu salasanan sisältö tekstitiedostoon, " +"korvaamalla ``HashedControlPassword`in sillä minkä juuri loit::" + +#: ../../source/tor.rst:46 +msgid "In your administrator command prompt, install ``tor`` as a service using the appropriate ``torrc`` file you just created (as described in ``_). Like this::" +msgstr "" +"Ylläpitäjänä suoritetussa komentokehotteessa: asenna ``tor``palveluna " +"käyttämällä asiaankuuluvaa ``torrc``-tiedostoa, jonka juuri loit (kuten asia " +"on kuvattu sivulla ``_). Eli näin::" + +#: ../../source/tor.rst:50 +msgid "You are now running a system ``tor`` process in Windows!" +msgstr "Suoritat nyt järjestelmän ``tor``-prosessia Windowsissa!" + +#: ../../source/tor.rst:52 +msgid "Open OnionShare and click the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" choose \"Connect using control port\", and set \"Control port\" to ``127.0.0.1`` and \"Port\" to ``9051``. Under \"Tor authentication settings\" choose \"Password\" and set the password to the control port password you picked above. Click the \"Test Connection to Tor\" button. If all goes well, you should see \"Connected to the Tor controller\"." +msgstr "" +"Avaa OnionShare ja klikkaa \"⚙\" kuvaketta. \"Kuinka OnionShare yhdistää " +"Toriin?\" -tekstin alta valitse \"Yhdistä käyttämällä kontrolliporttia\", ja " +"aseta \"Kontrolliportti\" kenttään ``127.0.0.1`` ja Portti-kenttään``9051``. " +"\"Tor-tunnistautumisasetukset\"-vlaikon alta valitse \"Salasana\" ja aseta " +"salasanaksi kontrolliportin salasana, jonkin valitsit aiemmin. Klikkaa " +"\"Testaa yhteys Toriin\" -nappia. Jos kaikki menee hyvin, sinun tulisi nähdä " +"\"Yhdistetty Tor-ohjaimeen\"." + +#: ../../source/tor.rst:61 +msgid "Using a system ``tor`` in macOS" +msgstr "Järjestelmän ``tor``-prosessin käyttö macOS:ssa" + +#: ../../source/tor.rst:63 +msgid "First, install `Homebrew `_ if you don't already have it, and then install Tor::" +msgstr "" +"Aluksi, asenna `Homebrew `_ jos sinulla ei ole vielä ole " +"sitä, ja asenna sitten Tor::" + +#: ../../source/tor.rst:67 +msgid "Now configure Tor to allow connections from OnionShare::" +msgstr "Määritä nyt Tor sallimalla yhteydet OnionSharesta::" + +#: ../../source/tor.rst:74 +msgid "And start the system Tor service::" +msgstr "Ja aloita järjestelmän Tor-palvelu::" + +#: ../../source/tor.rst:78 +msgid "Open OnionShare and click the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" choose \"Connect using socket file\", and set the socket file to be ``/usr/local/var/run/tor/control.socket``. Under \"Tor authentication settings\" choose \"No authentication, or cookie authentication\". Click the \"Test Connection to Tor\" button." +msgstr "" +"Avaa OnionShare ja klikkaa \"⚙\" kuvaketta. \"Kuinka OnionShare yhdistää " +"Toriin?\" -tekstin alta valitse \"Yhdistä käyttämällä socket-tiedostoa\", ja " +"aseta socket-tiedosto olemaan ``/usr/local/var/run/tor/control.socket``. " +"\"Tor-tunnistautumisasetukset\"-valikon alta valitse \"Ei tunnistautumista, " +"tai evästetunnistautumista\". Klikkaa \"Testaa yhteys Toriin\" -nappia." + +#: ../../source/tor.rst:84 +#: ../../source/tor.rst:104 +msgid "If all goes well, you should see \"Connected to the Tor controller\"." +msgstr "" +"Jos kaikki menee hyvin, sinun tulisi nähdä \"Yhdistetty Tor-ohjaimeen\"." + +#: ../../source/tor.rst:87 +msgid "Using a system ``tor`` in Linux" +msgstr "Järjestelmän ``tor`` -prosessin käyttö Linuxilla" + +#: ../../source/tor.rst:89 +msgid "First, install the ``tor`` package. If you're using Debian, Ubuntu, or a similar Linux distro, It is recommended to use the Tor Project's `official repository `_." +msgstr "" +"Aluksi, asenna ``tor``-paketti. Jos käytät Debiania, Ubuntua tai näiden " +"kaltaista Linux-jakelua, on suositeltua käyttää Tor Projectin virallista " +"ohjelmavarastoa `_." + +#: ../../source/tor.rst:91 +msgid "Next, add your user to the group that runs the ``tor`` process (in the case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect to your system ``tor``'s control socket file." +msgstr "" +"Seuraavaksi lisää käyttäjäsi ryhmään, joka ylläpitää ``tor``-prosessia (" +"Debianin ja Ubuntun tapauksessa, ``debian-tor``) ja määritä OnionShare " +"yhdistämään järjestelmäsi``tor``in kontrolli-socket-tiedostoon." + +#: ../../source/tor.rst:93 +msgid "Add your user to the ``debian-tor`` group by running this command (replace ``username`` with your actual username)::" +msgstr "" +"Lisää käyttäjäsi ``debian-tor``-ryhmään suorittamalla tämä komento (korvaa " +"``username``omalla oikealla käyttäjänimelläsi)::" + +#: ../../source/tor.rst:97 +msgid "Reboot your computer. After it boots up again, open OnionShare and click the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" choose \"Connect using socket file\". Set the socket file to be ``/var/run/tor/control``. Under \"Tor authentication settings\" choose \"No authentication, or cookie authentication\". Click the \"Test Connection to Tor\" button." +msgstr "" +"Uudelleenkäynnistä tietokoneesi. Kun tietokone on käynnistynyt, avaa " +"OnionShare ja klikkaa \"⚙\"-kuvaketta. \"Kuinka OnionShare yhdistää Toriin?\"" +" -tekstin alta valitse \"Yhdistä käyttämällä socket-tiedostoa\". Aseta " +"socket-tiedosto olemaan ``/var/run/tor/control``. \"Tor-" +"tunnistautumisasetukset\"-valikon alta valitse \"Ei tunnistautumista, tai " +"evästetunnistautumista\". Klikkaa \"Testaa yhteys Toriin\" -nappia." + +#: ../../source/tor.rst:107 +msgid "Using Tor bridges" +msgstr "Tor-siltojen käyttäminen" + +#: ../../source/tor.rst:109 +msgid "If your access to the Internet is censored, you can configure OnionShare to connect to the Tor network using `Tor bridges `_. If OnionShare connects to Tor without one, you don't need to use a bridge." +msgstr "" +"Jos yhteytesi internetiin on sensuroitu, voit määrittää OnionSharen " +"yhdistymään Tor-verkkoon käyttämällä `Tor-siltoja `_. Jos OnionShare yhdistää Toriin ilman " +"sellaista, sinun ei tarvitse käyttää siltaa." + +#: ../../source/tor.rst:111 +msgid "To configure bridges, click the \"⚙\" icon in OnionShare." +msgstr "Määrittääksesi sillat klikkaa \"⚙\" kuvaketta OnionSharessa." + +#: ../../source/tor.rst:113 +msgid "You can use the built-in obfs4 pluggable transports, the built-in meek_lite (Azure) pluggable transports, or custom bridges, which you can obtain from Tor's `BridgeDB `_. If you need to use a bridge, try the built-in obfs4 ones first." +msgstr "" +"Voit käyttää sisäänrakennettua obfs4 plugattavia siirtoja, " +"sisäänrakennettuja meek_lite (Azure) plugattavia siirtoja tai räätälöityjä " +"siltoja, jotka sinä voit hankkia Torin `BridgeDB:sta `_. Jos tarvitset siltaa, yritä sisäänrakennettua obfs4-" +"vaihtoehtoa ensin." diff --git a/docs/source/locale/hr/LC_MESSAGES/index.po b/docs/source/locale/hr/LC_MESSAGES/index.po index 711a4da0..14def152 100644 --- a/docs/source/locale/hr/LC_MESSAGES/index.po +++ b/docs/source/locale/hr/LC_MESSAGES/index.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-09-03 11:46-0700\n" -"PO-Revision-Date: 2020-12-17 19:29+0000\n" +"PO-Revision-Date: 2021-07-27 13:32+0000\n" "Last-Translator: Milo Ivir \n" "Language-Team: none\n" "Language: hr\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.7.2-dev\n" #: ../../source/index.rst:2 msgid "OnionShare's documentation" @@ -27,5 +27,5 @@ msgstr "OnionShare dokumentacija" 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 je alat otvorenog koda koji omogućuje sigurno i anonimno " -"dijeljenje datoteka, hosting za web-stranice te čavrljanje s prijateljima " +"dijeljenje datoteka, hosting za web-stranice te razgovaranje s prijateljima " "pomoću mreže Tor." diff --git a/docs/source/locale/tr/LC_MESSAGES/advanced.po b/docs/source/locale/tr/LC_MESSAGES/advanced.po index b3ac8a80..37073fe4 100644 --- a/docs/source/locale/tr/LC_MESSAGES/advanced.po +++ b/docs/source/locale/tr/LC_MESSAGES/advanced.po @@ -8,24 +8,24 @@ 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-07 18:32+0000\n" -"Last-Translator: Oğuz Ersen \n" +"PO-Revision-Date: 2021-07-15 20:32+0000\n" +"Last-Translator: Tur \n" "Language-Team: tr \n" "Language: tr\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" +"X-Generator: Weblate 4.7.2-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 msgid "Advanced Usage" -msgstr "Gelişmiş Kullanım" +msgstr "Gelişmiş kullanım" #: ../../source/advanced.rst:7 msgid "Save Tabs" -msgstr "Sekmeleri Kaydedin" +msgstr "Sekmeleri kaydedin" #: ../../source/advanced.rst:9 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/advanced.po b/docs/source/locale/uk/LC_MESSAGES/advanced.po index 12402413..ef1dbbc8 100644 --- a/docs/source/locale/uk/LC_MESSAGES/advanced.po +++ b/docs/source/locale/uk/LC_MESSAGES/advanced.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-07 18:32+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 @@ -83,10 +83,10 @@ msgid "" "wrong guesses at the password, your onion service is automatically " "stopped to prevent a brute force attack against the OnionShare service." msgstr "" -"Типово всі служби OnionShare захищені іменем користувача ``onionshare`` і" -" випадково створеним паролем. Якщо хтось вводить пароль неправильно 20 " -"разів, ваша служба onion автоматично зупинениться, щоб запобігти грубій " -"спробі зламу служби OnionShare." +"Типово всі служби OnionShare захищені іменем користувача ``onionshare`` і " +"випадково створеним паролем. Якщо хтось вводить пароль неправильно 20 разів, " +"ваша служба onion автоматично зупиняється, щоб запобігти спробі грубого " +"зламу служби OnionShare." #: ../../source/advanced.rst:31 msgid "" @@ -186,10 +186,10 @@ msgid "" "making sure they're not available on the Internet for more than a few " "days." msgstr "" -"**Планування автоматичної зупинки служби OnionShare може бути корисним " -"для обмеження надсилання**, наприклад, якщо ви хочете поділитися таємними" -" документами й буди певними, що вони не доступні в Інтернеті впродовж " -"більше кількох днів." +"**Планування автоматичної зупинки служби OnionShare може бути корисним для " +"обмеження надсилання**, наприклад, якщо ви хочете поділитися таємними " +"документами й бути певними, що вони не доступні в Інтернеті впродовж більше " +"кількох днів." #: ../../source/advanced.rst:65 msgid "Command-line Interface" diff --git a/docs/source/locale/uk/LC_MESSAGES/develop.po b/docs/source/locale/uk/LC_MESSAGES/develop.po index ce18e618..d995ad2d 100644 --- a/docs/source/locale/uk/LC_MESSAGES/develop.po +++ b/docs/source/locale/uk/LC_MESSAGES/develop.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: 2021-01-26 22:32+0000\n" +"PO-Revision-Date: 2021-08-25 18:33+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.5-dev\n" +"X-Generator: Weblate 4.8.1-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -41,12 +41,13 @@ msgid "" msgstr "" "OnionShare має відкриту команду Keybase для обговорення проєкту, включно з " "питаннями, обміном ідеями та побудовою, плануванням подальшого розвитку. (Це " -"також простий спосіб надсилати захищені наскрізним шифруванням прямі " -"повідомлення іншим у спільноті OnionShare, як-от адреси OnionShare.) Щоб " -"використовувати Keybase, потрібно завантажити програму `Keybase app " -"`_, створити обліковий запис та `приєднайтися " -"до цієї команди `_. У програмі перейдіть " -"до «Команди», натисніть «Приєднатися до команди» та введіть «onionshare»." +"також простий спосіб надсилати безпосередні захищені наскрізним шифруванням " +"повідомлення іншим спільноти OnionShare, наприклад адреси OnionShare.) Щоб " +"користуватися Keybase, потрібно завантажити `застосунок Keybase " +"`_, створити обліковий запис та `приєднайтеся " +"до цієї команди `_. У застосунку " +"перейдіть до «Команди», натисніть «Приєднатися до команди» та введіть " +"«onionshare»." #: ../../source/develop.rst:12 msgid "" @@ -54,9 +55,9 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"OnionShare також має `список розсилки " -"` _ для " -"розробників та дизайнерів для обговорення проєкту." +"OnionShare також має `список розсилання `_ для розробників та дизайнерів для обговорення " +"проєкту." #: ../../source/develop.rst:15 msgid "Contributing Code" @@ -79,9 +80,9 @@ msgid "" "there are any you'd like to tackle." msgstr "" "Якщо ви хочете допомогти кодом OnionShare, приєднайтеся до команди Keybase і " -"запитайте над чим ви думаєте працювати. Ви також повинні переглянути всі `" -"відкриті запити `_ на " -"GitHub, щоб побачити, чи є такі, які ви хотіли б розв'язати." +"запитайте над чим можна попрацювати. Також варто переглянути всі `відкриті " +"завдання `_ на GitHub, щоб " +"побачити, чи є такі, які б ви хотіли розв'язати." #: ../../source/develop.rst:22 msgid "" @@ -89,7 +90,7 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Коли ви будете готові внести код, відкрийте запит надсилання до сховища " +"Коли ви будете готові допомогти код, відкрийте «pull request» до репозиторію " "GitHub і один із супровідників проєкту перегляне його та, можливо, поставить " "питання, попросить змінити щось, відхилить його або об’єднає з проєктом." @@ -107,10 +108,10 @@ msgid "" "graphical version." msgstr "" "OnionShare розроблено на Python. Для початку клонуйте сховище Git за адресою " -"https://github.com/micahflee/onionshare/, а потім зверніться до файлу ``cli/" -"README.md``, щоб дізнатися, як налаштувати середовище розробки для версії " -"командного рядка та файл ``desktop/README.md``, щоб дізнатися, як " -"налаштувати середовище розробки для графічної версії." +"https://github.com/micahflee/onionshare/, а потім перегляньте файл ``cli/" +"README.md``, щоб дізнатися, як налаштувати середовище розробки у командному " +"рядку або файл ``desktop/README.md``, щоб дізнатися, як налаштувати " +"середовище розробки у версії з графічним інтерфейсом." #: ../../source/develop.rst:32 msgid "" @@ -158,8 +159,8 @@ msgid "" " are manipulated." msgstr "" "Це може бути корисно для вивчення ланцюжка подій, що відбуваються під час " -"користування програмою, або значень певних змінних до та після того, як ними " -"маніпулюють." +"користування OnionShare, або значень певних змінних до та після взаємодії з " +"ними." #: ../../source/develop.rst:124 msgid "Local Only" @@ -218,8 +219,8 @@ msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." msgstr "" -"Іноді оригінальні англійські рядки містять помилки або не збігаються між " -"програмою та документацією." +"Іноді оригінальні англійські рядки містять помилки або відрізняються у " +"застосунку та документації." #: ../../source/develop.rst:178 msgid "" @@ -229,9 +230,9 @@ msgid "" "the usual code review processes." msgstr "" "Вдоскональте рядок джерела файлу, додавши @kingu до свого коментаря Weblate, " -"або повідомте про проблему на GitHub або запит на додавання. Останнє " -"гарантує, що всі основні розробники, бачать пропозицію та можуть потенційно " -"змінити рядок за допомогою звичайних процесів перегляду коду." +"або повідомте про проблему на GitHub, або надішліть запит на додавання. " +"Останнє гарантує, що всі основні розробники, бачать пропозицію та, ймовірно, " +"можуть змінити рядок за допомогою звичайних процесів перегляду коду." #: ../../source/develop.rst:182 msgid "Status of Translations" @@ -243,9 +244,9 @@ msgid "" "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Ось поточний стан перекладу. Якщо ви хочете розпочати переклад мовою, якої " -"тут немає, будь ласка, напишіть нам до списку розсилки: onionshare-dev@lists." -"riseup.net" +"Тут знаходиться поточний стан перекладу. Якщо ви хочете розпочати переклад " +"відсутньою тут мовою, будь ласка, напишіть нам до списку розсилання: " +"onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" diff --git a/docs/source/locale/uk/LC_MESSAGES/features.po b/docs/source/locale/uk/LC_MESSAGES/features.po index 486fe5bc..341da9ed 100644 --- a/docs/source/locale/uk/LC_MESSAGES/features.po +++ b/docs/source/locale/uk/LC_MESSAGES/features.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n" -"PO-Revision-Date: 2021-05-07 18:32+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/features.rst:4 @@ -72,10 +72,9 @@ msgid "" "works best when working with people in real-time." msgstr "" "Якщо ви запустили OnionShare на ноутбуці, щоб надіслати комусь файли, а " -"потім зупинити його роботу перед надсиланням файлів, служба буде " -"недоступна, доки роботу ноутбука не буде поновлено і знову з'явиться в " -"Інтернеті. OnionShare найкраще працює під час роботи з людьми в режимі " -"реального часу." +"потім зупинили його роботу перед надсиланням файлів, служба буде недоступна, " +"доки роботу ноутбука не буде поновлено і він знову з'єднається з інтернетом. " +"OnionShare найкраще працює під час роботи з людьми в режимі реального часу." #: ../../source/features.rst:18 msgid "" @@ -101,18 +100,17 @@ msgid "" "anonymously. Open a share tab, drag in the files and folders you wish to " "share, and click \"Start sharing\"." msgstr "" -"Ви можете використовувати OnionShare, щоб безпечно та анонімно надсилати " -"файли та теки людям. Просто відкрийте вкладку спільного доступу, " -"перетягніть файли та теки, якими хочете поділитися і натисніть \"Почати " -"надсилання\"." +"Ви можете користуватися OnionShare, щоб безпечно та анонімно надсилати файли " +"та теки людям. Просто відкрийте вкладку спільного доступу, перетягніть файли " +"та теки, якими хочете поділитися і натисніть \"Почати надсилання\"." #: ../../source/features.rst:27 ../../source/features.rst:104 msgid "" "After you add files, you'll see some settings. Make sure you choose the " "setting you're interested in before you start sharing." msgstr "" -"Після додавання файлів з'являться параметри. Перед надсиланням, " -"переконайтеся, що вибрано потрібний параметр." +"Після додавання файлів з'являться налаштування. Перед надсиланням, " +"переконайтеся, що вибрано потрібні налаштування." #: ../../source/features.rst:31 msgid "" @@ -184,14 +182,14 @@ msgid "" "anonymous dropbox. Open a receive tab and choose the settings that you " "want." msgstr "" -"Ви можете використовувати OnionShare, щоб дозволити людям анонімно надсилати " +"Ви можете користуватися OnionShare, щоб дозволити людям анонімно надсилати " "файли та повідомлення безпосередньо на ваш комп’ютер, по суті, перетворюючи " "їх на анонімний буфер. Відкрийте вкладку отримання та виберіть потрібні " "налаштування." #: ../../source/features.rst:54 msgid "You can browse for a folder to save messages and files that get submitted." -msgstr "Можете вибрати теку для збереження повідомлень і файлів, які надіслано." +msgstr "Можете вибрати теку для збереження доставлених повідомлень і файлів." #: ../../source/features.rst:56 msgid "" @@ -226,10 +224,10 @@ msgstr "" "отримати зашифровані текстові повідомлення в програмі обміну повідомленнями `" "Keybase `_, ви можете почати розмову з `@webhookbot " "`_, введіть ``!webhook create onionshare-" -"alerts``, і він відповідатиме через URL-адресу. Використовуйте її URL-" -"адресою вебобробника сповіщень. Якщо хтось вивантажить файл до служби режиму " -"отримання, @webhookbot надішле вам повідомлення на Keybase, яке повідомить " -"вас, як тільки це станеться." +"alerts``, і він відповідатиме через URL-адресу. Застосовуйте її URL-адресою " +"вебобробника сповіщень. Якщо хтось вивантажить файл до служби отримання, @" +"webhookbot надішле вам повідомлення на Keybase, яке сповістить вас, як " +"тільки це станеться." #: ../../source/features.rst:63 msgid "" @@ -239,9 +237,9 @@ msgid "" "computer." msgstr "" "Коли все буде готово, натисніть кнопку «Запустити режим отримання». Це " -"запустить службу OnionShare. Будь-хто, хто завантажує цю адресу у своєму " -"браузері Tor, зможе надсилати файли та повідомлення, які завантажуються на " -"ваш комп'ютер." +"запустить службу OnionShare. Всі хто завантажить цю адресу у своєму браузері " +"Tor зможе надсилати файли та повідомлення, які завантажуватимуться на ваш " +"комп'ютер." #: ../../source/features.rst:67 msgid "" @@ -264,7 +262,7 @@ msgid "" msgstr "" "Коли хтось надсилає файли або повідомлення до вашої служби отримання, типово " "вони зберігаються до теки ``OnionShare`` у домашній теці на вашому " -"комп'ютері, автоматично впорядковуються в окремі підтеки залежно від часу " +"комп'ютері та автоматично впорядковуються в окремі підтеки залежно від часу " "передавання файлів." #: ../../source/features.rst:75 @@ -275,11 +273,11 @@ msgid "" "quite as secure version of `SecureDrop `_, the " "whistleblower submission system." msgstr "" -"Параметри служби отримання OnionShare корисні для журналістів та інших " -"осіб, яким потрібно безпечно отримувати документи від анонімних джерел. " -"Використовуючи таким чином, OnionShare як легку, простішу, не настільки " -"безпечну версію `SecureDrop `_, системи подання " -"таємних повідомлень викривачів." +"Служби отримання OnionShare корисні для журналістів та інших осіб, яким " +"потрібно безпечно отримувати документи від анонімних джерел. Користуючись " +"таким чином OnionShare як легкою, простішою, але не настільки безпечною " +"версією `SecureDrop `_, системи подання таємних " +"повідомлень викривачів." #: ../../source/features.rst:78 msgid "Use at your own risk" @@ -429,13 +427,13 @@ msgid "" "(see :ref:`save_tabs`) so you can resume the website with the same " "address if you close OnionShare and re-open it later." msgstr "" -"Якщо ви хочете розмістити довгостроковий вебсайт за допомогою OnionShare " -"(це не просто для того, щоб швидко комусь щось показати), рекомендовано " -"робити це на окремому виділеному комп’ютері, який завжди ввімкнено та " -"під'єднано до Інтернету, а не на той, яким ви користуєтеся регулярно. Вам" -" також слід зберегти вкладку (подробиці :ref:`save_tabs`), щоб ви могли " -"відновити вебсайт з тією ж адресою, якщо закриєте OnionShare і знову " -"відкриєте його пізніше." +"Якщо ви хочете розмістити постійний вебсайт за допомогою OnionShare (це не " +"просто для того, щоб швидко комусь щось показати), радимо робити це на " +"окремо виділеному комп’ютері, який завжди ввімкнено та під'єднано до " +"Інтернету, а не на той, яким ви користуєтеся регулярно. Вам також слід " +"зберегти вкладку (подробиці про :ref:`save_tabs`), щоб ви могли відновити " +"вебсайт з тією ж адресою, якщо закриєте OnionShare і знову відкриєте його " +"пізніше." #: ../../source/features.rst:121 msgid "" @@ -465,10 +463,10 @@ msgid "" "limit exactly who can join, use an encrypted messaging app to send out " "the OnionShare address." msgstr "" -"Після запуску сервера копіюйте адресу OnionShare і надішліть її людям, " -"які приєднаються до цієї анонімної кімнати чату. Якщо важливо обмежити " -"коло, хто може приєднатися, ви повинні використовувати зашифровані " -"програми обміну повідомленнями для надсилання адреси OnionShare." +"Після запуску сервера копіюйте адресу OnionShare і надішліть її людям, які " +"приєднаються до цієї анонімної кімнати чату. Якщо важливо обмежити коло " +"учасників, ви повинні скористатися застосунком обміну зашифрованими " +"повідомленнями для надсилання адреси OnionShare." #: ../../source/features.rst:135 msgid "" @@ -523,9 +521,8 @@ msgid "" "If you need to already be using an encrypted messaging app, what's the " "point of an OnionShare chat room to begin with? It leaves less traces." msgstr "" -"Якщо вам вже потрібно використовувати програму обміну зашифрованим " -"повідомленнями, то який сенс спілкування в OnionShare? Він залишає менше " -"слідів." +"Якщо вам потрібно застосовувати програму обміну зашифрованим повідомленнями, " +"то який сенс спілкування в OnionShare? Він залишає менше слідів." #: ../../source/features.rst:154 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/help.po b/docs/source/locale/uk/LC_MESSAGES/help.po index 914b6716..238f633e 100644 --- a/docs/source/locale/uk/LC_MESSAGES/help.po +++ b/docs/source/locale/uk/LC_MESSAGES/help.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: 2020-11-17 10:28+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -33,8 +33,9 @@ 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 "" -"Цей вебсайт містить настановами щодо користування OnionShare. Спочатку " -"перегляньте всі розділи, щоб дізнатися, чи відповідає він на ваші питання." +"Цей вебсайт містить настанови щодо користування OnionShare. Спочатку " +"перегляньте всі розділи, щоб дізнатися, чи містять вони відповідей на ваші " +"запитання." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" @@ -47,10 +48,10 @@ msgid "" " else has encountered the same problem and either raised it with the " "developers, or maybe even posted a solution." msgstr "" -"Якщо розв'язок відсутній на цьому вебсайті, перегляньте `GitHub issues " +"Якщо на цьому вебсайті не описано вашої проблеми, перегляньте `GitHub issues " "`_. Можливо, хтось інший " "зіткнувся з тією ж проблемою та запитав про неї у розробників, або, можливо, " -"навіть опублікував розв'язок." +"навіть опублікував як її виправити." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -64,7 +65,7 @@ msgid "" "`creating a GitHub account `_." msgstr "" -"Якщо не можете знайти розв'язку своєї проблеми або хочете запитати чи " +"Якщо не можете знайти як виправити свою проблему або хочете запитати чи " "запропонувати нову функцію, `поставте питання `_. Для цього потрібно `створити обліковий запис " "GitHub \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8.1-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/install.rst:2 @@ -33,8 +33,8 @@ msgid "" "You can download OnionShare for Windows and macOS from the `OnionShare " "website `_." msgstr "" -"Ви можете завантажити OnionShare для Windows та macOS із вебсайту " -"`OnionShare website `_." +"Ви можете завантажити OnionShare для Windows та macOS із `вебсайту " +"OnionShare `_." #: ../../source/install.rst:12 msgid "Install in Linux" @@ -59,8 +59,8 @@ 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 вбудовано в Ubuntu, а Flatpak — у Fedora, але те, чим ви користуєтеся " -"залежить від вас. Обидва вони працюють у всіх дистрибутивах Linux." +"Snap вбудовано в Ubuntu, а Flatpak — у Fedora, але ви самі можете обрати чим " +"користуватися. Вони обоє працюють у всіх дистрибутивах Linux." #: ../../source/install.rst:19 msgid "" @@ -113,11 +113,10 @@ msgid "" "`_." msgstr "" -"Пакунки підписує Micah Lee, основний розробник, своїм відкритим ключем " -"PGP з цифровим відбитком ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. " -"Ключ Micah можна завантажити `з сервера ключів keys.openpgp.org " -"`_." +"Пакунки підписує основний розробник Micah Lee своїм відкритим ключем PGP з " +"цифровим відбитком ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Ключ Micah " +"можна завантажити `з сервера ключів keys.openpgp.org `_." #: ../../source/install.rst:38 msgid "" @@ -177,10 +176,10 @@ msgid "" " the package, it only means you haven't already defined any level of " "'trust' of Micah's PGP key.)" msgstr "" -"Якщо ви не бачите 'Good signature from', можливо, проблема з цілісністю " -"файлу (шкідлива чи інша), і, можливо, вам не слід встановлювати пакунок. (" -"Вказане раніше «ПОПЕРЕДЖЕННЯ» не є проблемою з пакунком: воно означає лише, " -"що ви не визначили жодного рівня 'довіри' щодо самого ключа PGP від Micah.)" +"Якщо ви не бачите «Good signature from», можливо, проблема з цілісністю " +"файлу (зловмисна чи інша), і, можливо, вам не слід встановлювати пакунок. (" +"Вказане раніше «ПОПЕРЕДЖЕННЯ» не є проблемою з пакунком: воно лише означає, " +"що ви не визначено рівня «довіри» до самого ключа PGP від Micah.)" #: ../../source/install.rst:71 msgid "" @@ -189,10 +188,9 @@ msgid "" " the `Tor Project `_ may be useful." msgstr "" -"Якщо ви хочете дізнатися докладніше про перевірку підписів PGP, настанови " -"для `Qubes OS `_ та " -"`Tor Project `_ " -"можуть допомогти." +"Докладніше про перевірку підписів PGP читайте у настановах для `Qubes OS " +"`_ та `Tor Project " +"`_." #~ msgid "For added security, see :ref:`verifying_sigs`." #~ msgstr "Для додаткової безпеки перегляньте :ref:`verifying_sigs`." diff --git a/docs/source/locale/uk/LC_MESSAGES/security.po b/docs/source/locale/uk/LC_MESSAGES/security.po index 0df854e6..80cfbe8c 100644 --- a/docs/source/locale/uk/LC_MESSAGES/security.po +++ b/docs/source/locale/uk/LC_MESSAGES/security.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2020-12-16 00:29+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/security.rst:2 @@ -103,12 +103,12 @@ msgstr "" "**Якщо зловмисник дізнається про службу onion, він все одно не може отримати " "доступ ні до чого.** Попередні напади на мережу Tor для виявлення служб " "onion дозволили зловмиснику виявити приватні адреси .onion. Якщо напад " -"виявить приватну адресу OnionShare, пароль не дозволить їм отримати до неї " +"виявить приватну адресу OnionShare, пароль не дозволить йому отримати до неї " "доступ (якщо користувач OnionShare не вирішив вимкнути його та зробити " "службу загальнодоступною). Пароль створюється шляхом вибору двох випадкових " -"слів зпереліку з 6800 слів, що робить 6800² або близько 46 мільйонів " +"слів з переліку у 6800 слів, що робить 6800² або близько 46 мільйонів " "можливих паролів. Можна здійснити лише 20 невдалих спроб, перш ніж " -"OnionShare зупинить сервер, запобігаючи грубому намаганню зламу пароля." +"OnionShare зупинить сервер, запобігаючи намаганню грубого зламу пароля." #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" @@ -126,17 +126,16 @@ msgid "" " disappearing messages enabled), encrypted email, or in person. This " "isn't necessary when using OnionShare for something that isn't secret." msgstr "" -"**Зв’язок з адресою OnionShare може бути ненадійним.** Передача адреси " -"OnionShare людям є відповідальністю користувача OnionShare. Якщо " -"надіслано ненадійно (наприклад, через повідомлення електронною поштою, " -"яку контролює зловмисник), підслуховувач може дізнатися, що " -"використовується OnionShare. Якщо підслуховувачі завантажать адресу в Tor" -" Browser, поки служба ще працює, вони можуть отримати до неї доступ. Щоб " -"уникнути цього, адресу потрібно передавати надійно, за допомогою " -"захищеного текстового повідомлення (можливо, з увімкненими " -"повідомленнями, що зникають), захищеного електронного листа або особисто." -" Це не потрібно при використанні OnionShare для чогось, що не є " -"таємницею." +"**Зв’язок з адресою OnionShare може бути ненадійним.** Відповідальність за " +"передавання адреси OnionShare людям покладено на користувача OnionShare. " +"Якщо її надіслано ненадійно (наприклад, через повідомлення електронною " +"поштою, яку контролює зловмисник), підслуховувач може дізнатися, що ви " +"користується OnionShare. Якщо підслуховувачі завантажать адресу в Tor " +"Browser, поки служба ще працює, вони можуть отримати до неї доступ. Щоб " +"уникнути цього, адресу потрібно передавати надійно, за допомогою захищеного " +"текстового повідомлення (можливо, з увімкненими повідомленнями, що зникають)" +", захищеного електронного листа або особисто. Це не потрібно якщо " +"користуватися OnionShare для даних, які не є таємницею." #: ../../source/security.rst:24 msgid "" diff --git a/docs/source/locale/uk/LC_MESSAGES/tor.po b/docs/source/locale/uk/LC_MESSAGES/tor.po index 9317e157..ddf4ab4f 100644 --- a/docs/source/locale/uk/LC_MESSAGES/tor.po +++ b/docs/source/locale/uk/LC_MESSAGES/tor.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2020-12-16 00:29+0000\n" +"PO-Revision-Date: 2021-07-08 02:32+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "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.4-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/tor.rst:2 @@ -160,7 +160,7 @@ msgstr "" "Відкрийте OnionShare і натисніть на ньому піктограму «⚙». У розділі «Як " "OnionShare повинен з'єднуватися з Tor?\" виберіть «Під'єднатися через порт " "керування» та встановіть «Порт керування» на ``127.0.0.1`` та «Порт» на " -"``9051``. У розділі «Параметри автентифікації Tor» виберіть «Пароль» і " +"``9051``. У розділі «Налаштування автентифікації Tor» виберіть «Пароль» і " "встановіть пароль для пароля контрольного порту, який ви вибрали раніше. " "Натисніть кнопку «Перевірити з'єднання з Tor». Якщо все добре, ви побачите «" "З'єднано з контролером Tor»." @@ -194,11 +194,10 @@ msgid "" "cookie authentication\". Click the \"Test Connection to Tor\" button." msgstr "" "Відкрийте OnionShare. Клацніть піктограму «⚙». У розділі «Як OnionShare " -"повинен з'єднуватися з Tor?» виберіть «Під'єднуватися через файл сокета» " -"та встановіть для файлу сокета шлях " -"``/usr/local/var/run/tor/control.socket``. У розділі «Параметри " -"автентифікації Tor» виберіть «Без автентифікації або автентифікація через" -" cookie». Натисніть кнопку «Перевірити з'єднання з Tor»." +"повинен з'єднуватися з Tor?» виберіть «Під'єднуватися через файл сокета» та " +"встановіть для файлу сокета шлях ``/usr/local/var/run/tor/control.socket``. " +"У розділі «Налаштування автентифікації Tor» виберіть «Без автентифікації або " +"автентифікація через cookie». Натисніть кнопку «Перевірити з'єднання з Tor»." #: ../../source/tor.rst:84 ../../source/tor.rst:104 msgid "If all goes well, you should see \"Connected to the Tor controller\"." @@ -248,10 +247,10 @@ msgid "" msgstr "" "Перезапустіть комп'ютер. Після запуску, відкрийте OnionShare. Клацніть " "піктограму «⚙». У розділі «Як OnionShare повинен з'єднуватися з Tor?» " -"виберіть «Під'єднуватися через файл сокета» та встановіть для файлу " -"сокета шлях ``/var/run/tor/control``. У розділі «Параметри автентифікації" -" Tor» виберіть «Без автентифікації або автентифікація через cookie». " -"Натисніть кнопку «Перевірити з'єднання з Tor»." +"виберіть «Під'єднуватися через файл сокета» та встановіть для файлу сокета " +"шлях ``/var/run/tor/control``. У розділі «Налаштування автентифікації Tor» " +"виберіть «Без автентифікації або автентифікація через cookie». Натисніть " +"кнопку «Перевірити з'єднання з Tor»." #: ../../source/tor.rst:107 msgid "Using Tor bridges" From f63e0c37d10dda759554321e7bf36a64477daaaa Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 10:07:29 +1000 Subject: [PATCH 40/55] Upgrade to Stem 1.8.1 (our fork) to satisfy wheel build. Raise minimumHeight to avoid cutoff of client auth option in sharing settings --- cli/poetry.lock | 4 ++-- desktop/src/onionshare/main_window.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cli/poetry.lock b/cli/poetry.lock index 4108d689..56280b59 100644 --- a/cli/poetry.lock +++ b/cli/poetry.lock @@ -398,10 +398,10 @@ description = "" name = "stem" optional = false python-versions = "*" -version = "1.8.0-maint" +version = "1.8.1" [package.source] -reference = "18e3032ef3b69441862a018daff02394607e041a" +reference = "de3d03a03c7ee57c74c80e9c63cb88072d833717" type = "git" url = "https://github.com/onionshare/stem.git" [[package]] diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index d87092b6..a9d56c35 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -44,7 +44,7 @@ class MainWindow(QtWidgets.QMainWindow): # Initialize the window self.setMinimumWidth(1040) - self.setMinimumHeight(700) + self.setMinimumHeight(710) self.setWindowTitle("OnionShare") self.setWindowIcon(QtGui.QIcon(GuiCommon.get_resource_path("images/logo.png"))) From 0bf8f53d30ded17dde0b3ebf66d98ea7d8e5313d Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 15:52:29 +1000 Subject: [PATCH 41/55] ClientAuthV3 fixes * Remove Client Auth as an explicit option (it's on by default). * Update wording about Public mode * Fix tuple error when raising TorTooOldStealth exception in CLI * Move Private Key button next to URL button in GUI * Replace visual references of ClientAuth to Private Key * Remove HTTPAuth Flask dependency and remove a lot of code to do with password generation, 401 auth triggers/invalid password rate limit detection etc * Test updates * Remove obsolete locale keys --- cli/onionshare_cli/__init__.py | 68 +++------- cli/onionshare_cli/mode_settings.py | 3 - cli/onionshare_cli/onion.py | 10 +- cli/onionshare_cli/onionshare.py | 4 +- .../resources/templates/401.html | 21 ---- cli/onionshare_cli/web/web.py | 88 +------------ cli/poetry.lock | 18 +-- cli/pyproject.toml | 3 +- cli/tests/test_cli_web.py | 90 ++------------ desktop/src/onionshare/main_window.py | 2 +- .../src/onionshare/resources/locale/af.json | 1 - .../src/onionshare/resources/locale/am.json | 1 - .../src/onionshare/resources/locale/ar.json | 2 - .../src/onionshare/resources/locale/bg.json | 1 - .../src/onionshare/resources/locale/bn.json | 2 - .../src/onionshare/resources/locale/ca.json | 3 - .../src/onionshare/resources/locale/ckb.json | 1 - .../src/onionshare/resources/locale/da.json | 3 - .../src/onionshare/resources/locale/de.json | 5 +- .../src/onionshare/resources/locale/el.json | 2 - .../src/onionshare/resources/locale/en.json | 20 +-- .../src/onionshare/resources/locale/es.json | 3 - .../src/onionshare/resources/locale/fa.json | 1 - .../src/onionshare/resources/locale/fi.json | 2 - .../src/onionshare/resources/locale/fr.json | 3 - .../src/onionshare/resources/locale/ga.json | 1 - .../src/onionshare/resources/locale/gl.json | 1 - .../src/onionshare/resources/locale/gu.json | 1 - .../src/onionshare/resources/locale/he.json | 1 - .../src/onionshare/resources/locale/hi.json | 1 - .../src/onionshare/resources/locale/hr.json | 2 - .../src/onionshare/resources/locale/hu.json | 1 - .../src/onionshare/resources/locale/id.json | 2 - .../src/onionshare/resources/locale/is.json | 3 - .../src/onionshare/resources/locale/it.json | 2 - .../src/onionshare/resources/locale/ja.json | 2 - .../src/onionshare/resources/locale/ka.json | 1 - .../src/onionshare/resources/locale/km.json | 1 - .../src/onionshare/resources/locale/ko.json | 1 - .../src/onionshare/resources/locale/lg.json | 1 - .../src/onionshare/resources/locale/lt.json | 2 - .../src/onionshare/resources/locale/mk.json | 1 - .../src/onionshare/resources/locale/ms.json | 1 - .../onionshare/resources/locale/nb_NO.json | 3 - .../src/onionshare/resources/locale/nl.json | 2 - .../src/onionshare/resources/locale/pa.json | 1 - .../src/onionshare/resources/locale/pl.json | 2 - .../onionshare/resources/locale/pt_BR.json | 2 - .../onionshare/resources/locale/pt_PT.json | 2 - .../src/onionshare/resources/locale/ro.json | 1 - .../src/onionshare/resources/locale/ru.json | 2 - .../src/onionshare/resources/locale/si.json | 1 - .../src/onionshare/resources/locale/sk.json | 1 - .../src/onionshare/resources/locale/sl.json | 1 - .../src/onionshare/resources/locale/sn.json | 1 - .../onionshare/resources/locale/sr_Latn.json | 2 - .../src/onionshare/resources/locale/sv.json | 3 - .../src/onionshare/resources/locale/sw.json | 1 - .../src/onionshare/resources/locale/te.json | 1 - .../src/onionshare/resources/locale/tr.json | 3 - .../src/onionshare/resources/locale/uk.json | 2 - .../src/onionshare/resources/locale/wo.json | 1 - .../src/onionshare/resources/locale/yo.json | 1 - .../onionshare/resources/locale/zh_Hans.json | 2 - .../onionshare/resources/locale/zh_Hant.json | 2 - desktop/src/onionshare/tab/mode/__init__.py | 2 +- .../onionshare/tab/mode/chat_mode/__init__.py | 1 - .../tab/mode/mode_settings_widget.py | 18 --- .../tab/mode/receive_mode/__init__.py | 1 - .../tab/mode/share_mode/__init__.py | 1 - .../tab/mode/website_mode/__init__.py | 1 - desktop/src/onionshare/tab/server_status.py | 61 +++++---- desktop/src/onionshare/tab/tab.py | 5 - desktop/src/onionshare/threads.py | 7 +- desktop/tests/gui_base_test.py | 47 +------ desktop/tests/test_gui_chat.py | 22 +--- desktop/tests/test_gui_share.py | 116 ++---------------- desktop/tests/test_gui_website.py | 23 +--- 78 files changed, 112 insertions(+), 612 deletions(-) delete mode 100644 cli/onionshare_cli/resources/templates/401.html diff --git a/cli/onionshare_cli/__init__.py b/cli/onionshare_cli/__init__.py index b5595367..a359f770 100644 --- a/cli/onionshare_cli/__init__.py +++ b/cli/onionshare_cli/__init__.py @@ -38,14 +38,6 @@ from .onionshare import OnionShare from .mode_settings import ModeSettings -def build_url(mode_settings, app, web): - # Build the URL - if mode_settings.get("general", "public"): - return f"http://{app.onion_host}" - else: - return f"http://onionshare:{web.password}@{app.onion_host}" - - def main(cwd=None): """ The main() function implements all of the logic that the command-line version of @@ -113,7 +105,7 @@ def main(cwd=None): action="store_true", dest="public", default=False, - help="Don't use a password", + help="Don't use a private key", ) parser.add_argument( "--auto-start-timer", @@ -129,13 +121,6 @@ def main(cwd=None): default=0, help="Stop onion service at schedule time (N seconds from now)", ) - parser.add_argument( - "--client-auth", - action="store_true", - dest="client_auth", - default=False, - help="Use client authorization", - ) # Share args parser.add_argument( "--no-autostop-sharing", @@ -208,7 +193,6 @@ def main(cwd=None): public = bool(args.public) autostart_timer = int(args.autostart_timer) autostop_timer = int(args.autostop_timer) - client_auth = bool(args.client_auth) autostop_sharing = not bool(args.no_autostop_sharing) data_dir = args.data_dir webhook_url = args.webhook_url @@ -249,7 +233,6 @@ def main(cwd=None): mode_settings.set("general", "public", public) mode_settings.set("general", "autostart_timer", autostart_timer) mode_settings.set("general", "autostop_timer", autostop_timer) - mode_settings.set("general", "client_auth", client_auth) if mode == "share": mode_settings.set("share", "autostop_sharing", autostop_sharing) if mode == "receive": @@ -336,11 +319,6 @@ def main(cwd=None): try: common.settings.load() - if mode_settings.get("general", "public"): - web.password = None - else: - web.generate_password(mode_settings.get("onion", "password")) - # Receive mode needs to know the tor proxy details for webhooks if mode == "receive": if local_only: @@ -365,7 +343,7 @@ def main(cwd=None): sys.exit() app.start_onion_service(mode, mode_settings, False) - url = build_url(mode_settings, app, web) + url = f"http://{app.onion_host}" schedule = datetime.now() + timedelta(seconds=autostart_timer) if mode == "receive": print( @@ -378,21 +356,21 @@ def main(cwd=None): "what you are doing." ) print("") - if mode_settings.get("general", "client_auth"): + if not mode_settings.get("general", "public"): print( - f"Give this address and ClientAuth line to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" + f"Give this address and private key to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" ) - print(f"ClientAuth: {app.auth_string}") + print(f"Private key: {app.auth_string}") else: print( f"Give this address to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" ) else: - if mode_settings.get("general", "client_auth"): + if not mode_settings.get("general", "public"): print( - f"Give this address and ClientAuth line to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" + f"Give this address and private key to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" ) - print(f"ClientAuth: {app.auth_string}") + print(f"Private key: {app.auth_string}") else: print( f"Give this address to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}" @@ -410,7 +388,6 @@ def main(cwd=None): sys.exit() except (TorTooOldEphemeral, TorTooOldStealth, TorErrorProtocolError) as e: print("") - print(e.args[0]) sys.exit() if mode == "website": @@ -442,21 +419,14 @@ def main(cwd=None): t.start() try: # Trap Ctrl-C - # Wait for web.generate_password() to finish running time.sleep(0.2) # start auto-stop timer thread if app.autostop_timer > 0: app.autostop_timer_thread.start() - # Save the web password if we are using a persistent private key - if mode_settings.get("persistent", "enabled"): - if not mode_settings.get("onion", "password"): - mode_settings.set("onion", "password", web.password) - # mode_settings.save() - # Build the URL - url = build_url(mode_settings, app, web) + url = f"http://{app.onion_host}" print("") if autostart_timer > 0: @@ -474,21 +444,21 @@ def main(cwd=None): ) print("") - if mode_settings.get("general", "client_auth"): - print("Give this address and ClientAuth to the sender:") - print(url) - print(f"ClientAuth: {app.auth_string}") - else: + if mode_settings.get("general", "public"): print("Give this address to the sender:") print(url) - else: - if mode_settings.get("general", "client_auth"): - print("Give this address and ClientAuth line to the recipient:") - print(url) - print(f"ClientAuth: {app.auth_string}") else: + print("Give this address and private key to the sender:") + print(url) + print(f"Private key: {app.auth_string}") + else: + if mode_settings.get("general", "public"): print("Give this address to the recipient:") print(url) + else: + print("Give this address and private key to the recipient:") + print(url) + print(f"Private key: {app.auth_string}") print("") print("Press Ctrl+C to stop the server") diff --git a/cli/onionshare_cli/mode_settings.py b/cli/onionshare_cli/mode_settings.py index 89ca00ea..47ff1c63 100644 --- a/cli/onionshare_cli/mode_settings.py +++ b/cli/onionshare_cli/mode_settings.py @@ -37,8 +37,6 @@ class ModeSettings: self.default_settings = { "onion": { "private_key": None, - "hidservauth_string": None, - "password": None, "client_auth_priv_key": None, "client_auth_pub_key": None, }, @@ -48,7 +46,6 @@ class ModeSettings: "public": False, "autostart_timer": False, "autostop_timer": False, - "client_auth": False, "service_id": None, }, "share": {"autostop_sharing": True, "filenames": []}, diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index 198f05c3..7f6faa17 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -640,7 +640,10 @@ class Onion(object): debug_message += f", key_content={key_content}" self.common.log("Onion", "start_onion_service", debug_message) - if mode_settings.get("general", "client_auth"): + if mode_settings.get("general", "public"): + client_auth_priv_key = None + client_auth_pub_key = None + else: if not self.supports_stealth: print( "Your version of Tor is too old, stealth onion services are not supported" @@ -657,9 +660,6 @@ class Onion(object): # These should have been saved in settings from the previous run of a persistent onion client_auth_priv_key = mode_settings.get("onion", "client_auth_priv_key") client_auth_pub_key = mode_settings.get("onion", "client_auth_pub_key") - else: - client_auth_priv_key = None - client_auth_pub_key = None try: if not self.supports_stealth: @@ -701,7 +701,7 @@ class Onion(object): # because we need to send the public key to ADD_ONION (if we restart this # same share at a later date), and the private key to the other user for # their Tor Browser. - if mode_settings.get("general", "client_auth"): + if not mode_settings.get("general", "public"): mode_settings.set("onion", "client_auth_priv_key", client_auth_priv_key) mode_settings.set("onion", "client_auth_pub_key", client_auth_pub_key) # If we were pasting the client auth directly into the filesystem behind a Tor client, diff --git a/cli/onionshare_cli/onionshare.py b/cli/onionshare_cli/onionshare.py index d055b639..c2711b89 100644 --- a/cli/onionshare_cli/onionshare.py +++ b/cli/onionshare_cli/onionshare.py @@ -74,7 +74,7 @@ class OnionShare(object): if self.local_only: self.onion_host = f"127.0.0.1:{self.port}" - if mode_settings.get("general", "client_auth"): + if not mode_settings.get("general", "public"): self.auth_string = "E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA" return @@ -82,7 +82,7 @@ class OnionShare(object): mode, mode_settings, self.port, await_publication ) - if mode_settings.get("general", "client_auth"): + if not mode_settings.get("general", "public"): self.auth_string = self.onion.auth_string def stop_onion_service(self, mode_settings): diff --git a/cli/onionshare_cli/resources/templates/401.html b/cli/onionshare_cli/resources/templates/401.html deleted file mode 100644 index 5e43ca01..00000000 --- a/cli/onionshare_cli/resources/templates/401.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - OnionShare: 401 Unauthorized Access - - - - - - - -
-
-

-

401 Unauthorized Access

-
-
- - - diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py index 04919185..b33e0ee1 100644 --- a/cli/onionshare_cli/web/web.py +++ b/cli/onionshare_cli/web/web.py @@ -34,7 +34,6 @@ from flask import ( send_file, __version__ as flask_version, ) -from flask_httpauth import HTTPBasicAuth from flask_socketio import SocketIO from .share_mode import ShareModeWeb @@ -75,7 +74,6 @@ class Web: REQUEST_INDIVIDUAL_FILE_CANCELED = 12 REQUEST_ERROR_DATA_DIR_CANNOT_CREATE = 13 REQUEST_OTHER = 14 - REQUEST_INVALID_PASSWORD = 15 def __init__(self, common, is_gui, mode_settings, mode="share"): self.common = common @@ -92,8 +90,6 @@ class Web: ) self.app.secret_key = self.common.random_string(8) self.generate_static_url_path() - self.auth = HTTPBasicAuth() - self.auth.error_handler(self.error401) # Verbose mode? if self.common.verbose: @@ -132,9 +128,6 @@ class Web: ] self.q = queue.Queue() - self.password = None - - self.reset_invalid_passwords() self.done = False @@ -199,28 +192,6 @@ class Web: Common web app routes between all modes. """ - @self.auth.get_password - def get_pw(username): - if username == "onionshare": - return self.password - else: - return None - - @self.app.before_request - def conditional_auth_check(): - # Allow static files without basic authentication - if request.path.startswith(self.static_url_path + "/"): - return None - - # If public mode is disabled, require authentication - if not self.settings.get("general", "public"): - - @self.auth.login_required - def _check_login(): - return None - - return _check_login() - @self.app.errorhandler(404) def not_found(e): mode = self.get_mode() @@ -260,31 +231,6 @@ class Web: f"{self.common.get_resource_path('static')}/img/favicon.ico" ) - def error401(self): - auth = request.authorization - if auth: - if ( - auth["username"] == "onionshare" - and auth["password"] not in self.invalid_passwords - ): - print(f"Invalid password guess: {auth['password']}") - self.add_request(Web.REQUEST_INVALID_PASSWORD, data=auth["password"]) - - self.invalid_passwords.append(auth["password"]) - self.invalid_passwords_count += 1 - - if self.invalid_passwords_count == 20: - self.add_request(Web.REQUEST_RATE_LIMIT) - self.force_shutdown() - print( - "Someone has made too many wrong attempts to guess your password, so OnionShare has stopped the server. Start sharing again and send the recipient a new address to share." - ) - - r = make_response( - render_template("401.html", static_url_path=self.static_url_path), 401 - ) - return self.add_security_headers(r) - def error403(self): self.add_request(Web.REQUEST_OTHER, request.path) r = make_response( @@ -362,21 +308,6 @@ class Web: """ self.q.put({"type": request_type, "path": path, "data": data}) - def generate_password(self, saved_password=None): - self.common.log("Web", "generate_password", f"saved_password={saved_password}") - if saved_password is not None and saved_password != "": - self.password = saved_password - self.common.log( - "Web", - "generate_password", - f'saved_password sent, so password is: "{self.password}"', - ) - else: - self.password = self.common.build_password() - self.common.log( - "Web", "generate_password", f'built random password: "{self.password}"' - ) - def verbose_mode(self): """ Turn on verbose mode, which will log flask errors to a file. @@ -386,10 +317,6 @@ class Web: log_handler.setLevel(logging.WARNING) self.app.logger.addHandler(log_handler) - def reset_invalid_passwords(self): - self.invalid_passwords_count = 0 - self.invalid_passwords = [] - def force_shutdown(self): """ Stop the flask web server, from the context of the flask app. @@ -446,18 +373,9 @@ class Web: # To stop flask, load http://shutdown:[shutdown_password]@127.0.0.1/[shutdown_password]/shutdown # (We're putting the shutdown_password in the path as well to make routing simpler) if self.running: - if self.password: - requests.get( - f"http://127.0.0.1:{port}/{self.shutdown_password}/shutdown", - auth=requests.auth.HTTPBasicAuth("onionshare", self.password), - ) - else: - requests.get( - f"http://127.0.0.1:{port}/{self.shutdown_password}/shutdown" - ) - - # Reset any password that was in use - self.password = None + requests.get( + f"http://127.0.0.1:{port}/{self.shutdown_password}/shutdown" + ) def cleanup(self): """ diff --git a/cli/poetry.lock b/cli/poetry.lock index 56280b59..c51e1d62 100644 --- a/cli/poetry.lock +++ b/cli/poetry.lock @@ -123,17 +123,6 @@ dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxco docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] dotenv = ["python-dotenv"] -[[package]] -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]] category = "main" description = "Socket.IO integration for Flask applications" @@ -404,6 +393,7 @@ version = "1.8.1" reference = "de3d03a03c7ee57c74c80e9c63cb88072d833717" type = "git" url = "https://github.com/onionshare/stem.git" + [[package]] category = "dev" description = "Python Library for Tom's Obvious, Minimal Language" @@ -468,7 +458,7 @@ 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] -content-hash = "ff0a546f5801be6b68336dfe7ade607ec2dd8c456fe17938be964f36bbe7d193" +content-hash = "181891640e59dac730905019444d42ef8e99da0c34c96fb8a616781661bae537" python-versions = "^3.6" [metadata.files] @@ -559,10 +549,6 @@ flask = [ {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.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"}, diff --git a/cli/pyproject.toml b/cli/pyproject.toml index a60428e0..e0c0f55f 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -19,7 +19,6 @@ classifiers = [ python = "^3.6" click = "*" flask = "1.1.4" -flask-httpauth = "*" flask-socketio = "5.0.1" psutil = "*" pysocks = "*" @@ -30,7 +29,7 @@ eventlet = "*" setuptools = "*" pynacl = "^1.4.0" colorama = "*" -stem = {git = "https://github.com/onionshare/stem.git", rev = "maint"} +stem = {git = "https://github.com/onionshare/stem.git", rev = "1.8.1"} [tool.poetry.dev-dependencies] pytest = "*" diff --git a/cli/tests/test_cli_web.py b/cli/tests/test_cli_web.py index f8c96f9c..f2b1af62 100644 --- a/cli/tests/test_cli_web.py +++ b/cli/tests/test_cli_web.py @@ -48,7 +48,6 @@ def web_obj(temp_dir, common_obj, mode, num_files=0): common_obj.settings = Settings(common_obj) mode_settings = ModeSettings(common_obj) web = Web(common_obj, False, mode_settings, mode) - web.generate_password() web.running = True web.cleanup_filenames == [] @@ -75,23 +74,13 @@ class TestWeb: web = web_obj(temp_dir, common_obj, "share", 3) assert web.mode == "share" with web.app.test_client() as c: - # Load / without auth + # Load / res = c.get("/") res.get_data() - assert res.status_code == 401 - - # Load / with invalid auth - res = c.get("/", headers=self._make_auth_headers("invalid")) - res.get_data() - assert res.status_code == 401 - - # Load / with valid auth - res = c.get("/", headers=self._make_auth_headers(web.password)) - res.get_data() assert res.status_code == 200 # Download - res = c.get("/download", headers=self._make_auth_headers(web.password)) + res = c.get("/download") res.get_data() assert res.status_code == 200 assert ( @@ -107,7 +96,7 @@ class TestWeb: with web.app.test_client() as c: # Download the first time - res = c.get("/download", headers=self._make_auth_headers(web.password)) + res = c.get("/download") res.get_data() assert res.status_code == 200 assert ( @@ -127,7 +116,7 @@ class TestWeb: with web.app.test_client() as c: # Download the first time - res = c.get("/download", headers=self._make_auth_headers(web.password)) + res = c.get("/download") res.get_data() assert res.status_code == 200 assert ( @@ -141,18 +130,8 @@ class TestWeb: assert web.mode == "receive" with web.app.test_client() as c: - # Load / without auth - res = c.get("/") - res.get_data() - assert res.status_code == 401 - - # Load / with invalid auth - res = c.get("/", headers=self._make_auth_headers("invalid")) - res.get_data() - assert res.status_code == 401 - # Load / with valid auth - res = c.get("/", headers=self._make_auth_headers(web.password)) + res = c.get("/",) res.get_data() assert res.status_code == 200 @@ -171,7 +150,7 @@ class TestWeb: ) with web.app.test_client() as c: - res = c.get("/", headers=self._make_auth_headers(web.password)) + res = c.get("/") res.get_data() assert res.status_code == 200 @@ -180,7 +159,6 @@ class TestWeb: buffered=True, content_type="multipart/form-data", data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")}, - headers=self._make_auth_headers(web.password), ) res.get_data() assert res.status_code == 200 @@ -202,7 +180,6 @@ class TestWeb: buffered=True, content_type="multipart/form-data", data={"text": "you know just sending an anonymous message"}, - headers=self._make_auth_headers(web.password), ) content = res.get_data() assert res.status_code == 200 @@ -237,7 +214,6 @@ class TestWeb: "file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg"), "text": "you know just sending an anonymous message", }, - headers=self._make_auth_headers(web.password), ) content = res.get_data() assert res.status_code == 200 @@ -270,7 +246,6 @@ class TestWeb: buffered=True, content_type="multipart/form-data", data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")}, - headers=self._make_auth_headers(web.password), ) content = res.get_data() assert res.status_code == 200 @@ -303,7 +278,6 @@ class TestWeb: buffered=True, content_type="multipart/form-data", data={}, - headers=self._make_auth_headers(web.password), ) content = res.get_data() assert res.status_code == 200 @@ -326,26 +300,6 @@ class TestWeb: res.get_data() assert res.status_code == 200 - def test_public_mode_off(self, temp_dir, common_obj): - web = web_obj(temp_dir, common_obj, "receive") - web.settings.set("general", "public", False) - - with web.app.test_client() as c: - # Load / without auth - res = c.get("/") - res.get_data() - assert res.status_code == 401 - - # But static resources should work without auth - res = c.get(f"{web.static_url_path}/css/style.css") - res.get_data() - assert res.status_code == 200 - - # Load / with valid auth - res = c.get("/", headers=self._make_auth_headers(web.password)) - res.get_data() - assert res.status_code == 200 - def test_cleanup(self, common_obj, temp_dir_1024, temp_file_1024): web = web_obj(temp_dir_1024, common_obj, "share", 3) @@ -356,12 +310,6 @@ class TestWeb: assert os.path.exists(temp_dir_1024) is False assert web.cleanup_filenames == [] - def _make_auth_headers(self, password): - auth = base64.b64encode(b"onionshare:" + password.encode()).decode() - h = Headers() - h.add("Authorization", "Basic " + auth) - return h - class TestZipWriterDefault: @pytest.mark.parametrize( @@ -450,8 +398,7 @@ def live_server(web): proc.start() url = "http://127.0.0.1:{}".format(port) - auth = base64.b64encode(b"onionshare:" + web.password.encode()).decode() - req = Request(url, headers={"Authorization": "Basic {}".format(auth)}) + req = Request(url) attempts = 20 while True: @@ -509,7 +456,7 @@ class TestRangeRequests: url = "/download" with web.app.test_client() as client: - resp = client.get(url, headers=self._make_auth_headers(web.password)) + resp = client.get(url) assert resp.headers["ETag"].startswith('"sha256:') assert resp.headers["Accept-Ranges"] == "bytes" assert resp.headers.get("Last-Modified") is not None @@ -524,7 +471,7 @@ class TestRangeRequests: contents = f.read() with web.app.test_client() as client: - resp = client.get(url, headers=self._make_auth_headers(web.password)) + resp = client.get(url) assert resp.status_code == 200 assert resp.data == contents @@ -536,7 +483,7 @@ class TestRangeRequests: contents = f.read() with web.app.test_client() as client: - headers = self._make_auth_headers(web.password) + headers = Headers() headers.extend({"Range": "bytes=0-10"}) resp = client.get(url, headers=headers) assert resp.status_code == 206 @@ -572,7 +519,7 @@ class TestRangeRequests: contents = f.read() with web.app.test_client() as client: - headers = self._make_auth_headers(web.password) + headers = Headers() resp = client.get(url, headers=headers) assert resp.status_code == 200 @@ -587,7 +534,7 @@ class TestRangeRequests: url = "/download" with web.app.test_client() as client: - headers = self._make_auth_headers(web.password) + headers = Headers() resp = client.get(url, headers=headers) assert resp.status_code == 200 last_mod = resp.headers["Last-Modified"] @@ -602,7 +549,7 @@ class TestRangeRequests: url = "/download" with web.app.test_client() as client: - headers = self._make_auth_headers(web.password) + headers = Headers() resp = client.get(url, headers=headers) assert resp.status_code == 200 @@ -621,11 +568,6 @@ class TestRangeRequests: resp = client.get(url, headers=headers) assert resp.status_code == 206 - def _make_auth_headers(self, password): - auth = base64.b64encode(b"onionshare:" + password.encode()).decode() - h = Headers() - h.add("Authorization", "Basic " + auth) - return h @pytest.mark.skipif(sys.platform != "Linux", reason="requires Linux") @check_unsupported("curl", ["--version"]) @@ -638,12 +580,9 @@ class TestRangeRequests: with live_server(web) as url: # Debugging help from `man curl`, on error 33 # 33 HTTP range error. The range "command" didn't work. - auth_header = self._make_auth_headers(web.password) subprocess.check_call( [ "curl", - "-H", - str(auth_header).strip(), "--output", str(download), "--continue-at", @@ -663,12 +602,9 @@ class TestRangeRequests: download.write("x" * 10) with live_server(web) as url: - auth_header = self._make_auth_headers(web.password) subprocess.check_call( [ "wget", - "--header", - str(auth_header).strip(), "--continue", "-O", str(download), diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py index a9d56c35..d87092b6 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/src/onionshare/main_window.py @@ -44,7 +44,7 @@ class MainWindow(QtWidgets.QMainWindow): # Initialize the window self.setMinimumWidth(1040) - self.setMinimumHeight(710) + self.setMinimumHeight(700) self.setWindowTitle("OnionShare") self.setWindowIcon(QtGui.QIcon(GuiCommon.get_resource_path("images/logo.png"))) diff --git a/desktop/src/onionshare/resources/locale/af.json b/desktop/src/onionshare/resources/locale/af.json index 1a6a057b..dd18d3ac 100644 --- a/desktop/src/onionshare/resources/locale/af.json +++ b/desktop/src/onionshare/resources/locale/af.json @@ -110,7 +110,6 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Die outo-stoptyd kan nie dieselfde of vroeër as die outo-begintyd wees nie. Pas dit aan om te begin deel.", "share_via_onionshare": "Deel d.m.v. OnionShare", "gui_connect_to_tor_for_onion_settings": "Koppel aan Tor om uidiensinstellings te sien", - "gui_use_legacy_v2_onions_checkbox": "Gebruik argaïese adresse", "gui_save_private_key_checkbox": "Gebruik ’n blywende adres", "gui_share_url_description": "Enigeen met hierdie OnionShare-adres kan u lêers d.m.v. die Tor Browser aflaai: ", "gui_website_url_description": "Enigeen met hierdie OnionShare-adres kan u webwerf d.m.v. die Tor Browser besoek: ", diff --git a/desktop/src/onionshare/resources/locale/am.json b/desktop/src/onionshare/resources/locale/am.json index 4f6e0bc1..a4425b29 100644 --- a/desktop/src/onionshare/resources/locale/am.json +++ b/desktop/src/onionshare/resources/locale/am.json @@ -131,7 +131,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/ar.json b/desktop/src/onionshare/resources/locale/ar.json index 3f24c661..22a20674 100644 --- a/desktop/src/onionshare/resources/locale/ar.json +++ b/desktop/src/onionshare/resources/locale/ar.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "بلغ مؤقِّت الإيقاف أجله قبل اشتغال الخادوم. أنشئ مشاركة جديدة.", "gui_server_autostop_timer_expired": "انتهى وقت الايقاف التلقائي للمشاركة. من فضلك عدّله للبدء بالمشاركة.", "share_via_onionshare": "شارك باستعمال OnionShare", - "gui_use_legacy_v2_onions_checkbox": "استخدم صيغة العناوين التاريخية", "gui_save_private_key_checkbox": "استخدم عنوانًا دائمًا", "gui_share_url_description": "أيّ شخص لديه مسار OnionShare هذا سيكون بوسعه تنزيل تلك الملفات باستعمال متصفّح تور: ", "gui_receive_url_description": "أيّ شخص لديه مسار OnionShare هذا سيكون بوسعه رفع ملفات إلى حاسوبك باستعمال متصفّح تور: ", @@ -244,7 +243,6 @@ "mode_settings_receive_data_dir_browse_button": "تصفح", "mode_settings_receive_data_dir_label": "حفظ الملفات إلى", "mode_settings_share_autostop_sharing_checkbox": "إيقاف المشاركة بعد إرسال الملفات ( قم بإلغاء التحديد للسماح بتنزيل الملفات الفردية)", - "mode_settings_client_auth_checkbox": "استخدم ترخيص العميل", "mode_settings_legacy_checkbox": "استخدم عنوانًا قديمًا (النسخة الثانية من خدمة onion، لا ينصح بها)", "mode_settings_autostop_timer_checkbox": "إيقاف خدمة Onion في ميعاد مجدول", "mode_settings_autostart_timer_checkbox": "بدء خدمة Onion في ميعاد مجدول", diff --git a/desktop/src/onionshare/resources/locale/bg.json b/desktop/src/onionshare/resources/locale/bg.json index 90a40715..57a7e1b1 100644 --- a/desktop/src/onionshare/resources/locale/bg.json +++ b/desktop/src/onionshare/resources/locale/bg.json @@ -131,7 +131,6 @@ "gui_server_started_after_autostop_timer": "Автоматично спиращият таймер спря преди сървърът да стартира.\nМоля направете нов дял.", "gui_server_autostop_timer_expired": "Автоматично спиращият таймер спря.\nМоля актуализирайте за да започнете споделяне.", "share_via_onionshare": "Споделете го чрез OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Използвайте стари адреси", "gui_save_private_key_checkbox": "Използвайте постоянни адреси (стари)", "gui_share_url_description": "Всеки с този OnionShare адрес може да свали Вашите файлове използвайки Тор браузера: ", "gui_receive_url_description": "Всеки с този OnionShare адрес може да качи файлове на Вашия компютър, използвайки Тор браузера: ", diff --git a/desktop/src/onionshare/resources/locale/bn.json b/desktop/src/onionshare/resources/locale/bn.json index fb8ebc7f..a0ef4cf7 100644 --- a/desktop/src/onionshare/resources/locale/bn.json +++ b/desktop/src/onionshare/resources/locale/bn.json @@ -132,7 +132,6 @@ "gui_server_started_after_autostop_timer": "সার্ভার শুরু হওয়ার আগেই স্বয়ংক্রিয়-বন্ধ ঘড়ির সময় শেষ হয়ে গেছে। অনুগ্রহ করে আবার নতুনভাবে শেয়ার করো।", "gui_server_autostop_timer_expired": "অটো-স্টপ টাইমারের সময় ইতিমধ্যেই শেষ হয়ে গিয়েছে। দয়া করে, শেয়ারিং শুরু করতে নতুনভাবে সময় সেট করো।", "share_via_onionshare": "OnionShare এর মাধমে শেয়ার করো", - "gui_use_legacy_v2_onions_checkbox": "লেগাসি ঠিকানা ব্যবহার করো", "gui_save_private_key_checkbox": "একটি স্থায়ী ঠিকানা ব্যবহার করো", "gui_share_url_description": "যার কাছেই এই ঠিকানা থাকবে সে ই টর ব্রাউজার ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে যে কেউ আপনার ফাইল(গুলি) ডাউনলোড করতে পারবে:", "gui_receive_url_description": "যার কাছেই এই ঠিকানা থাকবে সে ই টর ব্রাউজার ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে যে কেউ আপনার কম্পিউটারে ফাইল আপলোড করতে পারবে:", @@ -240,7 +239,6 @@ "gui_new_tab_receive_description": "তোমার কম্পিউটারকে একটি অনলাইন ড্রপবক্স বানাও। অন্যরা টর ব্রাউজার ব্যবহার করে তোমার কম্পিউটারে ফাইল পাঠাতে পারবে।", "gui_new_tab_share_description": "অন্য কাউকে পাঠাতে তোমার কম্পিউটারের ফাইল নির্বাচন করো. তুমি যাকে বা যাদের কাছে ফাইল পাঠাতে চাও তাকে বা তাদেরকে তোমার কাছ থেকে ফাইল ডাউনলোড করতে টর ব্রাউজার ব্যবহার করতে হবে।", "mode_settings_share_autostop_sharing_checkbox": "ফাইল পাঠানোর পর শেয়ার করা বন্ধ করো (স্বতন্ত্র ফাইল ডাউনলোড এর মঞ্জুরি দিতে টিক চিহ্ন তুলে দাও)", - "mode_settings_client_auth_checkbox": "ক্লায়েন্ট অথোরাইজেশন ব্যবহার করো", "mode_settings_autostop_timer_checkbox": "নির্ধারিত সময়ে অনিওন সেবা বন্ধ করো", "mode_settings_autostart_timer_checkbox": "নির্ধারিত সময়ে অনিওন সেবা শুরু করো", "mode_settings_persistent_checkbox": "এই ট্যাব সংরক্ষণ করো, এবং যখন আমি অনিওনশেয়ার খুলব তখন এটি স্বয়ংক্রিয়ভাবে খুলো", diff --git a/desktop/src/onionshare/resources/locale/ca.json b/desktop/src/onionshare/resources/locale/ca.json index bef1e00c..790b0fae 100644 --- a/desktop/src/onionshare/resources/locale/ca.json +++ b/desktop/src/onionshare/resources/locale/ca.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "El temporitzador de finalització automàtica ha acabat abans que s'iniciés el servidor. Torneu a compartir-ho.", "gui_server_autostop_timer_expired": "El temporitzador de finalització automàtica ja s'ha acabat. Ajusteu-lo per a poder compartir.", "share_via_onionshare": "Comparteix-ho amb l'OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Fes servir adreces amb un format antic", "gui_save_private_key_checkbox": "Fes servir una adreça persistent", "gui_share_url_description": "Qualsevol persona amb aquesta adreça d'OnionShare pot baixar els vostres fitxers fent servir el Navegador Tor: ", "gui_receive_url_description": "Qualsevol persona amb aquesta adreça d'OnionShare pot pujar fitxers al vostre ordinador fent servir el Navegador Tor: ", @@ -223,7 +222,6 @@ "hours_first_letter": "h", "minutes_first_letter": "min", "seconds_first_letter": "s", - "invalid_password_guess": "Intent de contrasenya incorrecte", "gui_website_url_description": "Qualsevol persona amb aquesta adreça d'OnionShare pot visitar el vostre lloc web fent servir el Navegador Tor: ", "gui_mode_website_button": "Publica el lloc web", "systray_site_loaded_title": "S'ha carregat el lloc web", @@ -246,7 +244,6 @@ "mode_settings_receive_data_dir_browse_button": "Navega", "mode_settings_receive_data_dir_label": "Desa els fitxers a", "mode_settings_share_autostop_sharing_checkbox": "Atura la compartició després que s'hagin enviat els fitxers (desmarqueu-ho per a permetre baixar fitxers individuals)", - "mode_settings_client_auth_checkbox": "Usa autorització del client", "mode_settings_legacy_checkbox": "Usa una adreça antiga (servei ceba v2, no recomanat)", "mode_settings_autostop_timer_checkbox": "Atura el servei ceba a una hora programada", "mode_settings_autostart_timer_checkbox": "Inicia el servei ceba a una hora programada", diff --git a/desktop/src/onionshare/resources/locale/ckb.json b/desktop/src/onionshare/resources/locale/ckb.json index 6d357d52..fb7dd6ac 100644 --- a/desktop/src/onionshare/resources/locale/ckb.json +++ b/desktop/src/onionshare/resources/locale/ckb.json @@ -165,7 +165,6 @@ "mode_settings_autostart_timer_checkbox": "Servîsa onion di wextekî ayarkirî despê bike", "mode_settings_autostop_timer_checkbox": "Servîsa onion di wextekî ayarkirî biseknîne", "mode_settings_legacy_checkbox": "Malperekî kêrhatî bişxulîne(servîsa onion v2 nayê pêsniyar kirin)", - "mode_settings_client_auth_checkbox": "Rastbûyîna muşterî kontrol bike", "mode_settings_share_autostop_sharing_checkbox": "Parvekirin piştî name haitn şandin biseknîne (Ji bo destûra berjêrkirina nameyên yekane tikandin derbixe)", "mode_settings_receive_data_dir_label": "Nameyan li qeyd bike", "mode_settings_receive_data_dir_browse_button": "Bigere", diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/src/onionshare/resources/locale/da.json index 25234f45..337b158e 100644 --- a/desktop/src/onionshare/resources/locale/da.json +++ b/desktop/src/onionshare/resources/locale/da.json @@ -141,7 +141,6 @@ "gui_no_downloads": "Ingen downloads endnu", "error_tor_protocol_error_unknown": "Der opstod en ukendt fejl med Tor", "error_invalid_private_key": "Den private nøgletype understøttes ikke", - "gui_use_legacy_v2_onions_checkbox": "Brug udgåede adresser", "gui_status_indicator_share_stopped": "Klar til at dele", "gui_status_indicator_share_working": "Starter …", "gui_status_indicator_share_started": "Deler", @@ -226,7 +225,6 @@ "hours_first_letter": "t", "minutes_first_letter": "m", "seconds_first_letter": "s", - "invalid_password_guess": "Ugyldigt adgangskodegæt", "gui_website_url_description": "Alle med OnionShare-adressen kan besøge dit websted med Tor Browser: ", "gui_mode_website_button": "Udgiv websted", "gui_website_mode_no_files": "Der er endnu ikke delt noget websted", @@ -240,7 +238,6 @@ "gui_new_tab_receive_description": "Brug din computer som en online-dropbox. Andre vil kunne bruge Tor Browser til at sende filer til din computer.", "mode_settings_share_autostop_sharing_checkbox": "Stop deling efter filerne er blevet sendt (fravælg for at gøre det muligt at downloade individuelle filer)", "mode_settings_legacy_checkbox": "Brug en udgået adresse (v2 oniontjeneste, anbefales ikke)", - "mode_settings_client_auth_checkbox": "Brug klientautentifikation", "mode_settings_autostop_timer_checkbox": "Stop oniontjeneste på det planlagte tidspunkt", "mode_settings_autostart_timer_checkbox": "Start oniontjeneste på det planlagte tidspunkt", "mode_settings_persistent_checkbox": "Gem fanebladet og åbn det automatisk når jeg åbner OnionShare", diff --git a/desktop/src/onionshare/resources/locale/de.json b/desktop/src/onionshare/resources/locale/de.json index f7e4de12..d1022a65 100644 --- a/desktop/src/onionshare/resources/locale/de.json +++ b/desktop/src/onionshare/resources/locale/de.json @@ -125,7 +125,6 @@ "gui_tor_connection_error_settings": "Versuche in den Einstellungen zu ändern, wie sich OnionShare mit dem Tor-Netzwerk verbindet.", "gui_tor_connection_canceled": "Konnte keine Verbindung zu Tor herstellen.\n\nStelle sicher, dass du mit dem Internet verbunden bist, öffne OnionShare erneut und richte die Verbindung zu Tor ein.", "share_via_onionshare": "Teilen über OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Nutze das alte Adressformat", "gui_save_private_key_checkbox": "Nutze eine gleichbleibende Adresse", "gui_share_url_description": "Jeder mit dieser OnionShare-Adresse kann deine Dateien mit dem Tor Browser herunterladen: ", "gui_receive_url_description": "Jeder mit dieser OnionShare-Adresse kann mit dem Tor Browser Dateien auf deinen Computer hochladen: ", @@ -223,7 +222,6 @@ "hours_first_letter": "h", "minutes_first_letter": "m", "seconds_first_letter": "s", - "invalid_password_guess": "Ungültige Passwortratschläge", "gui_website_url_description": "Jeder mit dieser OnionShare-Adresse kann deine Webseite mit dem Tor Browser ansehen: ", "gui_mode_website_button": "Webseite veröffentlichen", "systray_site_loaded_title": "Webseite geladen", @@ -241,7 +239,6 @@ "mode_settings_website_disable_csp_checkbox": "Content-Security-Policy-Header deaktivieren (ermöglicht es, Ressourcen von Drittanbietern auf deiner Onion-Webseite einzubinden)", "mode_settings_receive_data_dir_browse_button": "Durchsuchen", "mode_settings_receive_data_dir_label": "Dateien speichern unter", - "mode_settings_client_auth_checkbox": "Benutze Client-Authorisierung", "mode_settings_legacy_checkbox": "Benutze ein veraltetes Adressformat (Onion-Dienste-Adressformat v2, nicht empfohlen)", "mode_settings_autostop_timer_checkbox": "Onion-Dienst zu einem festgelegten Zeitpunkt stoppen", "mode_settings_autostart_timer_checkbox": "Onion-Dienst zu einem festgelegten Zeitpunkt starten", @@ -301,4 +298,4 @@ "gui_status_indicator_chat_scheduled": "Geplant…", "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 2a4378c5..0474c954 100644 --- a/desktop/src/onionshare/resources/locale/el.json +++ b/desktop/src/onionshare/resources/locale/el.json @@ -134,7 +134,6 @@ "gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.", "gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.", "share_via_onionshare": "Μοιραστείτε μέσω OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Χρήση \"παραδοσιακών\" διευθύνσεων", "gui_save_private_key_checkbox": "Χρήση μόνιμης διεύθυνσης", "gui_share_url_description": "Οποιοσδήποτε με αυτή τη διεύθυνση OnionShare μπορεί να κατεβάσει τα αρχεία σας χρησιμοποιώντας το Tor Browser: ", "gui_receive_url_description": "Οποιοσδήποτε με αυτή τη διεύθυνση OnionShare, μπορεί να ανεβάσει αρχεία στον υπολογιστή σας χρησιμοποιώντας το Tor Browser: ", @@ -243,7 +242,6 @@ "mode_settings_receive_data_dir_browse_button": "Επιλογή", "mode_settings_receive_data_dir_label": "Αποθήκευση αρχείων σε", "mode_settings_share_autostop_sharing_checkbox": "Τερματισμός κοινής χρήσης με την ολοκλήρωση αρχείων (αποεπιλέξτε για λήψη μεμονωμένων αρχείων)", - "mode_settings_client_auth_checkbox": "Χρήση εξουσιοδότησης πελάτη", "mode_settings_legacy_checkbox": "Χρήση παλαιάς διεύθυνσης (δεν προτείνεται η χρήση υπηρεσία v2 onion)", "mode_settings_autostop_timer_checkbox": "Προγραμματισμένος τερματισμός", "mode_settings_autostart_timer_checkbox": "Προγραμματισμένη εκκίνηση", diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 6cd39269..0c7ec57a 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -24,12 +24,12 @@ "gui_receive_stop_server_autostop_timer": "Stop Receive Mode ({} remaining)", "gui_receive_flatpak_data_dir": "Because you installed OnionShare using Flatpak, you must save files to a folder in ~/OnionShare.", "gui_copy_url": "Copy Address", - "gui_copy_client_auth": "Copy ClientAuth", + "gui_copy_client_auth": "Copy Private Key", "gui_canceled": "Canceled", "gui_copied_url_title": "Copied OnionShare Address", "gui_copied_url": "OnionShare address copied to clipboard", - "gui_copied_client_auth_title": "Copied ClientAuth", - "gui_copied_client_auth": "ClientAuth private key copied to clipboard", + "gui_copied_client_auth_title": "Copied Private Key", + "gui_copied_client_auth": "Private Key copied to clipboard", "gui_show_url_qr_code": "Show QR Code", "gui_qr_code_dialog_title": "OnionShare QR Code", "gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.", @@ -87,9 +87,12 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "The auto-stop time can't be the same or earlier than the auto-start time. Please adjust it to start sharing.", "gui_server_doesnt_support_stealth": "Sorry, this version of Tor doesn't support stealth (Client Authorization). Please try with a newer version of Tor.", "share_via_onionshare": "Share via OnionShare", - "gui_share_url_description": "Anyone with this OnionShare address can download your files using the Tor Browser: ", - "gui_website_url_description": "Anyone with this OnionShare address can visit your website using the Tor Browser: ", - "gui_receive_url_description": "Anyone with this OnionShare address can upload files to your computer using the Tor Browser: ", + "gui_share_url_description": "Anyone with this OnionShare address and private key can download your files using the Tor Browser: ", + "gui_share_url_public_description": "Anyone with this OnionShare address can download your files using the Tor Browser: ", + "gui_website_url_description": "Anyone with this OnionShare address and private key can visit your website using the Tor Browser: ", + "gui_website_url_public_description": "Anyone with this OnionShare address can visit your website using the Tor Browser: ", + "gui_receive_url_description": "Anyone with this OnionShare address and private key can upload files to your computer using the Tor Browser: ", + "gui_receive_url_public_description": "Anyone with this OnionShare address can upload files to your computer using the Tor Browser: ", "gui_chat_url_description": "Anyone with this OnionShare address can join this chat room using the Tor Browser: ", "gui_url_label_persistent": "This share will not auto-stop.

Every subsequent share reuses the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)", "gui_url_label_stay_open": "This share will not auto-stop.", @@ -177,10 +180,9 @@ "mode_settings_advanced_toggle_hide": "Hide advanced settings", "mode_settings_title_label": "Custom title", "mode_settings_persistent_checkbox": "Save this tab, and automatically open it when I open OnionShare", - "mode_settings_public_checkbox": "Don't use a password", + "mode_settings_public_checkbox": "This is a public OnionShare service (disables client authentication)", "mode_settings_autostart_timer_checkbox": "Start onion service at scheduled time", "mode_settings_autostop_timer_checkbox": "Stop onion service at scheduled time", - "mode_settings_client_auth_checkbox": "Use client authorization", "mode_settings_share_autostop_sharing_checkbox": "Stop sharing after files have been sent (uncheck to allow downloading individual files)", "mode_settings_receive_data_dir_label": "Save files to", "mode_settings_receive_data_dir_browse_button": "Browse", @@ -207,4 +209,4 @@ "error_port_not_available": "OnionShare port not available", "history_receive_read_message_button": "Read Message", "error_tor_protocol_error": "There was an error with Tor: {}" -} \ No newline at end of file +} diff --git a/desktop/src/onionshare/resources/locale/es.json b/desktop/src/onionshare/resources/locale/es.json index 27030ad8..de28da6b 100644 --- a/desktop/src/onionshare/resources/locale/es.json +++ b/desktop/src/onionshare/resources/locale/es.json @@ -94,7 +94,6 @@ "gui_server_started_after_autostop_timer": "El temporizador de parada automática expiró antes de que se iniciara el servidor. Por favor crea un recurso compartido nuevo.", "gui_server_autostop_timer_expired": "El temporizador de parada automática ya expiró. Por favor ajústalo para comenzar a compartir.", "share_via_onionshare": "Compartir con OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Usar direcciones obsoletas", "gui_save_private_key_checkbox": "Usar una dirección persistente", "gui_share_url_description": "Cualquiera con esta dirección OnionShare puede descargar tus archivos usando el Navegador Tor: ", "gui_receive_url_description": "Cualquiera con esta dirección OnionShare puede cargar archivos a tu equipo usando el Navegador Tor: ", @@ -227,7 +226,6 @@ "hours_first_letter": "h", "minutes_first_letter": "m", "seconds_first_letter": "s", - "invalid_password_guess": "Intento de contraseña incorrecto", "gui_website_url_description": "Cualquiera con esta dirección OnionShare puede visitar tu sitio web usando el Navegador Tor: ", "gui_mode_website_button": "Publicar sitio web", "systray_site_loaded_title": "Sitio web cargado", @@ -243,7 +241,6 @@ "systray_individual_file_downloaded_message": "Archivo individual {} visto", "gui_settings_csp_header_disabled_option": "Deshabilitar encabezado de Política de Seguridad de Contenido", "gui_settings_website_label": "Configuración de sitio web", - "mode_settings_client_auth_checkbox": "Utilizar autorización de cliente", "mode_settings_legacy_checkbox": "Usar una dirección obsoleta (servicio cebolla v2, no recomendado)", "mode_settings_autostop_timer_checkbox": "Detener el servicio cebolla a una hora determinada", "mode_settings_autostart_timer_checkbox": "Iniciar el servicio cebolla a una hora determinada", diff --git a/desktop/src/onionshare/resources/locale/fa.json b/desktop/src/onionshare/resources/locale/fa.json index 94f3bb1a..e5e53a83 100644 --- a/desktop/src/onionshare/resources/locale/fa.json +++ b/desktop/src/onionshare/resources/locale/fa.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "زمان‌سنج توقف خودکار، قبل از آغاز کارساز به پایان رسید. لطفا یک هم‌رسانی جدید درست کنید.", "gui_server_autostop_timer_expired": "زمان‌سنج توقف خودکار به پایان رسید. لطفا برای آغاز هم‌رسانی آن را تنظیم کنید.", "share_via_onionshare": "هم‌رسانی با OnionShare", - "gui_use_legacy_v2_onions_checkbox": "استفاده از آدرس‌های بازمانده", "gui_save_private_key_checkbox": "استفاده از یک آدرس پایا", "gui_share_url_description": "هرکس با این آدرس OnionShare می‌تواند روی کامپیوتر شما پرونده بارگیری کند از طریق مرورگر تور: ", "gui_receive_url_description": "هرکس با این آدرس OnionShare می‌تواند روی کامپیوتر شما پرونده بارگذاری کند از طریق مرورگر تور: ", diff --git a/desktop/src/onionshare/resources/locale/fi.json b/desktop/src/onionshare/resources/locale/fi.json index fc950749..1eee3458 100644 --- a/desktop/src/onionshare/resources/locale/fi.json +++ b/desktop/src/onionshare/resources/locale/fi.json @@ -120,7 +120,6 @@ "gui_server_autostop_timer_expired": "Automaattinen pysäytysajastin päättyi jo.\nSäädä se jaon aloittamiseksi.", "share_via_onionshare": "Jaa OnionSharella", "gui_connect_to_tor_for_onion_settings": "Yhdistä Tor-verkkoon nähdäksesi onion palvelun asetukset", - "gui_use_legacy_v2_onions_checkbox": "Käytä vanhoja osoitteita", "gui_save_private_key_checkbox": "Käytä pysyviä osoitteita", "gui_share_url_description": "Kaikki joilla on tämä OnionShare-osoite voivat ladata tiedostojasi käyttämällä Tor-selainta: ", "gui_receive_url_description": "Kaikki joilla on tämä OnionShare-osoite voivat lähettäätiedostoja tietokoneellesi käyttämällä Tor-selainta: ", @@ -218,7 +217,6 @@ "gui_new_tab_tooltip": "Avaa uusi välilehti", "gui_new_tab": "Uusi välilehti", "mode_settings_website_disable_csp_checkbox": "Poista 'Sisällön suojauskäytännön' otsikko käytöstä (mahdollistaa kolmansien osapuolien resurssien käytön nettisivussasi)", - "mode_settings_client_auth_checkbox": "Käytä asiakkaan valtuutusta", "mode_settings_legacy_checkbox": "Käytä vanhaa osoitetta (v2 onion-palvelu, ei suositella)", "mode_settings_autostop_timer_checkbox": "Lopeta onion-palvelu tiettyyn kellon aikaan", "mode_settings_autostart_timer_checkbox": "Aloita onion-palvelu tiettyyn kellon aikaan", diff --git a/desktop/src/onionshare/resources/locale/fr.json b/desktop/src/onionshare/resources/locale/fr.json index 13a68f8a..27bc3b2f 100644 --- a/desktop/src/onionshare/resources/locale/fr.json +++ b/desktop/src/onionshare/resources/locale/fr.json @@ -159,7 +159,6 @@ "update_error_invalid_latest_version": "Impossible de vérifier la présence d’une mise à jour : le site Web d’OnionShare indique que la version la plus récente est la « {} » qui n’est pas reconnue…", "gui_tor_connection_ask": "Ouvrir les paramètres pour résoudre le problème de connexion à Tor ?", "gui_tor_connection_canceled": "Impossible de se connecter à Tor.\n\nAssurez-vous d’être connecté à Internet, puis rouvrez OnionShare et configurez sa connexion à Tor.", - "gui_use_legacy_v2_onions_checkbox": "Utiliser les adresses héritées", "info_in_progress_uploads_tooltip": "{} envoi(s) en cours", "info_completed_uploads_tooltip": "{} envoi(s) terminé(s)", "error_cannot_create_downloads_dir": "Impossible de créer le dossier du mode réception : {}", @@ -229,7 +228,6 @@ "systray_website_started_title": "Début du partage du site Web", "systray_website_started_message": "Quelqu’un visite votre site Web", "gui_website_mode_no_files": "Aucun site Web n’a encore été partagé", - "invalid_password_guess": "La tentative de mot de passe est invalide", "gui_mode_website_button": "Publier un site Web", "incorrect_password": "Le mot de passe est erroné", "gui_settings_individual_downloads_label": "Décocher pour permettre le téléchargement de fichiers individuels", @@ -254,7 +252,6 @@ "mode_settings_receive_data_dir_browse_button": "Parcourir", "mode_settings_receive_data_dir_label": "Enregistrer les fichiers dans", "mode_settings_share_autostop_sharing_checkbox": "Cesser le partage une fois que les fichiers ont été envoyés (décocher afin de permettre le téléchargement de fichiers individuels)", - "mode_settings_client_auth_checkbox": "Utiliser l’autorisation du client", "mode_settings_legacy_checkbox": "Utiliser une ancienne adresse (service onion v2, non recommandée)", "mode_settings_public_checkbox": "Ne pas utiliser un mot de passe", "mode_settings_persistent_checkbox": "Enregistrer cet onglet et l’ouvrir automatiquement quand j’ouvre OnionShare", diff --git a/desktop/src/onionshare/resources/locale/ga.json b/desktop/src/onionshare/resources/locale/ga.json index 621234ae..f0a734f1 100644 --- a/desktop/src/onionshare/resources/locale/ga.json +++ b/desktop/src/onionshare/resources/locale/ga.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "Bhí an t-amadóir uathstoptha caite sular thosaigh an freastalaí. Caithfidh tú comhroinnt nua a chruthú.", "gui_server_autostop_timer_expired": "Tá an t-amadóir uathstoptha caite cheana. Caithfidh tú é a athshocrú sular féidir leat comhaid a chomhroinnt.", "share_via_onionshare": "Comhroinn trí OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Úsáid seoltaí sean-nóis", "gui_save_private_key_checkbox": "Úsáid seoladh seasmhach", "gui_share_url_description": "Tá aon duine a bhfuil an seoladh OnionShare aige/aici in ann do chuid comhad a íoslódáil le Brabhsálaí Tor: ", "gui_receive_url_description": "Tá aon duine a bhfuil an seoladh OnionShare aige/aici in ann comhaid a uaslódáil go dtí do ríomhaire le Brabhsálaí Tor: ", diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/src/onionshare/resources/locale/gl.json index cc42a347..ae92e589 100644 --- a/desktop/src/onionshare/resources/locale/gl.json +++ b/desktop/src/onionshare/resources/locale/gl.json @@ -166,7 +166,6 @@ "mode_settings_autostart_timer_checkbox": "Iniciar o servizo onion na hora programada", "mode_settings_autostop_timer_checkbox": "Deter o servizo onion na hora programada", "mode_settings_legacy_checkbox": "Usar enderezos antigos (servizo onion v2, non recomendado)", - "mode_settings_client_auth_checkbox": "Usar autorización do cliente", "mode_settings_share_autostop_sharing_checkbox": "Deixar de compartir unha vez enviado o ficheiro (desmarca para permitir a descarga de ficheiros individuais)", "mode_settings_receive_data_dir_label": "Gardar ficheiros en", "mode_settings_receive_data_dir_browse_button": "Navegar", diff --git a/desktop/src/onionshare/resources/locale/gu.json b/desktop/src/onionshare/resources/locale/gu.json index fc95952c..bbfc9b78 100644 --- a/desktop/src/onionshare/resources/locale/gu.json +++ b/desktop/src/onionshare/resources/locale/gu.json @@ -131,7 +131,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/he.json b/desktop/src/onionshare/resources/locale/he.json index 9a765db7..047e6233 100644 --- a/desktop/src/onionshare/resources/locale/he.json +++ b/desktop/src/onionshare/resources/locale/he.json @@ -134,7 +134,6 @@ "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", "gui_connect_to_tor_for_onion_settings": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json index 2f09534e..6ffe1522 100644 --- a/desktop/src/onionshare/resources/locale/hi.json +++ b/desktop/src/onionshare/resources/locale/hi.json @@ -119,7 +119,6 @@ "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", "gui_connect_to_tor_for_onion_settings": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/src/onionshare/resources/locale/hr.json index c3b79245..dbc67cd0 100644 --- a/desktop/src/onionshare/resources/locale/hr.json +++ b/desktop/src/onionshare/resources/locale/hr.json @@ -110,7 +110,6 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko prekidanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.", "share_via_onionshare": "Dijeli putem OnionSharea", "gui_connect_to_tor_for_onion_settings": "Poveži se s Torom za prikaz postavki Onion usluge", - "gui_use_legacy_v2_onions_checkbox": "Koristi stare adrese", "gui_save_private_key_checkbox": "Koristi trajnu adresu", "gui_share_url_description": "Svatko s ovom OnionShare adresom može preuzeti tvoje datoteke koristeći Tor preglednik: ", "gui_website_url_description": "Svatko s ovom OnionShare adresom može posjetiti tvoju web-stranicu koristeći Tor preglednik: ", @@ -180,7 +179,6 @@ "mode_settings_receive_data_dir_browse_button": "Pregledaj", "mode_settings_receive_data_dir_label": "Spremi datoteke u", "mode_settings_share_autostop_sharing_checkbox": "Prekini dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)", - "mode_settings_client_auth_checkbox": "Koristi autorizaciju klijenta", "mode_settings_legacy_checkbox": "Koristi stare adrese (v2 onion usluge, ne preporučuje se)", "mode_settings_autostop_timer_checkbox": "Prekini onion uslugu u planirano vrijeme", "mode_settings_autostart_timer_checkbox": "Pokreni onion uslugu u planirano vrijeme", diff --git a/desktop/src/onionshare/resources/locale/hu.json b/desktop/src/onionshare/resources/locale/hu.json index 370c2d63..41dbe03a 100644 --- a/desktop/src/onionshare/resources/locale/hu.json +++ b/desktop/src/onionshare/resources/locale/hu.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/src/onionshare/resources/locale/id.json index c3f5bb70..0a33e0a1 100644 --- a/desktop/src/onionshare/resources/locale/id.json +++ b/desktop/src/onionshare/resources/locale/id.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "Timer berhenti otomatis habis sebelum server dimulai. Silakan buat pembagian baru.", "gui_server_autostop_timer_expired": "Timer berhenti otomatis sudah habis. Silakan sesuaikan untuk mulai berbagi.", "share_via_onionshare": "Bagikan via OnionShare", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "Siapa saja dengan alamat OnionShare ini dapat mengunduh berkas Anda menggunakan Tor Browser:", "gui_receive_url_description": "Siapa saja dengan alamat OnionShare ini dapat mengunggah berkas ke komputer Anda menggunakan Tor Browser:", @@ -213,7 +212,6 @@ "mode_settings_receive_data_dir_browse_button": "Telusur", "mode_settings_receive_data_dir_label": "Simpan file ke", "mode_settings_share_autostop_sharing_checkbox": "Berhenti berbagi setelah file dikirim (hapus centang untuk memperbolehkan mengunduh file individual)", - "mode_settings_client_auth_checkbox": "Gunakan otorisasi klien", "mode_settings_legacy_checkbox": "Gunakan alamat legacy (layanan onion v2, tidak disarankan)", "mode_settings_autostop_timer_checkbox": "Hentikan layanan onion pada waktu yang dijadwalkan", "mode_settings_autostart_timer_checkbox": "Mulai layanan onion pada waktu yang dijadwalkan", diff --git a/desktop/src/onionshare/resources/locale/is.json b/desktop/src/onionshare/resources/locale/is.json index 4a21da40..b8c1ecab 100644 --- a/desktop/src/onionshare/resources/locale/is.json +++ b/desktop/src/onionshare/resources/locale/is.json @@ -129,7 +129,6 @@ "gui_tor_connection_lost": "Aftengt frá Tor.", "gui_server_autostop_timer_expired": "Sjálfvirkri niðurtalningu er þegar lokið. Lagaðu hana til að hefja deilingu.", "share_via_onionshare": "Deila með OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Nota eldri vistföng", "gui_save_private_key_checkbox": "Nota viðvarandi vistföng", "gui_share_url_description": "Hver sem er með þetta OnionShare vistfang getur sótt skrárnar þínar með því að nota Tor-vafrann: ", "gui_receive_url_description": "Hver sem er með þetta OnionShare vistfang getur sent skrár inn á tölvuna þína með því að nota Tor-vafrann: ", @@ -222,7 +221,6 @@ "hours_first_letter": "klst", "minutes_first_letter": "mín", "seconds_first_letter": "sek", - "invalid_password_guess": "Ógilt lykilorð", "gui_website_url_description": "Hver sem er með þetta OnionShare vistfang getur skoðað vefsvæðið þitt með því að nota Tor-vafrann: ", "gui_mode_website_button": "Birta vefsvæði", "gui_website_mode_no_files": "Ennþá hefur engu vefsvæði verið deilt", @@ -252,7 +250,6 @@ "mode_settings_advanced_toggle_show": "Birta ítarlegar stillingar", "gui_new_tab_tooltip": "Opna nýjan flipa", "gui_new_tab_receive_button": "Taka á móti skrám", - "mode_settings_client_auth_checkbox": "Nota auðkenningu biðlaraforrits", "mode_settings_advanced_toggle_hide": "Fela ítarlegar stillingar", "gui_quit_warning_cancel": "Hætta við", "gui_close_tab_warning_title": "Ertu viss?", diff --git a/desktop/src/onionshare/resources/locale/it.json b/desktop/src/onionshare/resources/locale/it.json index f48fd618..b658d5c3 100644 --- a/desktop/src/onionshare/resources/locale/it.json +++ b/desktop/src/onionshare/resources/locale/it.json @@ -136,7 +136,6 @@ "gui_server_autostop_timer_expired": "Il timer di arresto automatico è già scaduto. Si prega di modificarlo per iniziare la condivisione.", "share_via_onionshare": "Condividi via OnionShare", "gui_connect_to_tor_for_onion_settings": "Connetti a Tor per vedere le impostazioni del servizio onion", - "gui_use_legacy_v2_onions_checkbox": "Usa gli indirizzi legacy", "gui_save_private_key_checkbox": "Usa un indirizzo persistente", "gui_share_url_description": "1 Tutti2 con questo l'indirizzo di OnionShare possono 3 scaricare4 i tuoi file usando 5 il Browser Tor6: 7", "gui_receive_url_description": "1 Tutti2 con questo indirizzo OnionShare possono 3 caricare4 file nel tuo computer usando 5 Tor Browser6: 7", @@ -262,7 +261,6 @@ "gui_close_tab_warning_website_description": "Stai ospitando un sito web. Sei sicuro di voler chiudere questa scheda?", "mode_settings_website_disable_csp_checkbox": "Non inviare l'intestazione della Politica sulla Sicurezza dei Contenuti (consente al sito web di utilizzare risorse di terze parti)", "mode_settings_receive_data_dir_browse_button": "Naviga", - "mode_settings_client_auth_checkbox": "Usa l'autorizzazione del client", "mode_settings_autostop_timer_checkbox": "Interrompere il servizio onion all'ora pianificata", "mode_settings_autostart_timer_checkbox": "Avviare il servizio onion all'ora pianificata", "mode_settings_persistent_checkbox": "Salva questa scheda e aprirla automaticamente quando apro OnionShare", diff --git a/desktop/src/onionshare/resources/locale/ja.json b/desktop/src/onionshare/resources/locale/ja.json index 1ed6883f..81e89547 100644 --- a/desktop/src/onionshare/resources/locale/ja.json +++ b/desktop/src/onionshare/resources/locale/ja.json @@ -134,7 +134,6 @@ "gui_server_autostop_timer_expired": "自動停止タイマーはすでにタイムアウトしています。共有し始めるにはタイマーを調整して下さい。", "share_via_onionshare": "OnionShareで共有する", "gui_connect_to_tor_for_onion_settings": "onionサービス設定を見るのにTorと接続して下さい", - "gui_use_legacy_v2_onions_checkbox": "レガシーアドレスを使用する", "gui_save_private_key_checkbox": "永続的アドレスを使用する", "gui_share_url_description": "このOnionShareアドレスを持つ限り誰でもTor Browserを利用してこのファイルをダウンロードできます", "gui_receive_url_description": "このOnionShareアドレスを持つ限り誰でもTor Browserを利用してこのPCにファイルをアップロードできます", @@ -234,7 +233,6 @@ "mode_settings_receive_data_dir_browse_button": "閲覧", "mode_settings_receive_data_dir_label": "保存するファイルの位置", "mode_settings_share_autostop_sharing_checkbox": "ファイル送信が終了したら共有を停止(個別ファイルのダウンロードを許可するにはチェックマークを消す)", - "mode_settings_client_auth_checkbox": "クライアント認証を利用", "mode_settings_legacy_checkbox": "レガシーアドレスを利用する(v2 onionサービス、非推奨)", "mode_settings_autostop_timer_checkbox": "指定の日時にonionサービスを停止する", "mode_settings_autostart_timer_checkbox": "指定の日時にonionサービスを起動する", diff --git a/desktop/src/onionshare/resources/locale/ka.json b/desktop/src/onionshare/resources/locale/ka.json index 5de442f4..95b77549 100644 --- a/desktop/src/onionshare/resources/locale/ka.json +++ b/desktop/src/onionshare/resources/locale/ka.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/km.json b/desktop/src/onionshare/resources/locale/km.json index f27aa52c..041aaac8 100644 --- a/desktop/src/onionshare/resources/locale/km.json +++ b/desktop/src/onionshare/resources/locale/km.json @@ -107,7 +107,6 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "", "share_via_onionshare": "", "gui_connect_to_tor_for_onion_settings": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/ko.json b/desktop/src/onionshare/resources/locale/ko.json index a57f8ba8..641b8cd7 100644 --- a/desktop/src/onionshare/resources/locale/ko.json +++ b/desktop/src/onionshare/resources/locale/ko.json @@ -131,7 +131,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/lg.json b/desktop/src/onionshare/resources/locale/lg.json index f72c18c6..f26aeaae 100644 --- a/desktop/src/onionshare/resources/locale/lg.json +++ b/desktop/src/onionshare/resources/locale/lg.json @@ -131,7 +131,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/src/onionshare/resources/locale/lt.json index f3e76e9b..3c4935a9 100644 --- a/desktop/src/onionshare/resources/locale/lt.json +++ b/desktop/src/onionshare/resources/locale/lt.json @@ -109,7 +109,6 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Automatinio sustabdymo laikas negali būti toks pat arba ankstesnis už automatinio paleidimo laiką. Sureguliuokite jį, kad galėtumėte pradėti dalytis.", "share_via_onionshare": "Bendrinti per OnionShare", "gui_connect_to_tor_for_onion_settings": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "Visi, turintys šį OnionShare adresą gali atsisiųsti jūsų failus, naudodamiesi Tor Naršykle: ", "gui_website_url_description": "Kiekvienas, turintis šį „OnionShare“ adresą, gali apsilankyti jūsų svetainėje naudodamas „Tor“ naršyklę: ", @@ -200,7 +199,6 @@ "mode_settings_autostart_timer_checkbox": "Pradėti onion paslaugos paleidimą suplanuotu laiku", "mode_settings_autostop_timer_checkbox": "Sustabdyti onion paslaugos paleidimą suplanuotu laiku", "mode_settings_legacy_checkbox": "Naudoti senąjį adresą (nerekomenduojama naudoti v2 onion paslaugos)", - "mode_settings_client_auth_checkbox": "Naudoti kliento autorizavimą", "mode_settings_share_autostop_sharing_checkbox": "Sustabdyti dalijimąsi po to, kai failai buvo išsiųsti (atžymėkite, jei norite leisti atsisiųsti atskirus failus)", "mode_settings_receive_data_dir_label": "Įrašyti failus į", "mode_settings_receive_data_dir_browse_button": "Naršyti", diff --git a/desktop/src/onionshare/resources/locale/mk.json b/desktop/src/onionshare/resources/locale/mk.json index a605df67..1293f1ed 100644 --- a/desktop/src/onionshare/resources/locale/mk.json +++ b/desktop/src/onionshare/resources/locale/mk.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/ms.json b/desktop/src/onionshare/resources/locale/ms.json index 3b9c9a5c..44c7ce5b 100644 --- a/desktop/src/onionshare/resources/locale/ms.json +++ b/desktop/src/onionshare/resources/locale/ms.json @@ -119,7 +119,6 @@ "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", "gui_connect_to_tor_for_onion_settings": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/nb_NO.json b/desktop/src/onionshare/resources/locale/nb_NO.json index e854e76f..1e31e3ba 100644 --- a/desktop/src/onionshare/resources/locale/nb_NO.json +++ b/desktop/src/onionshare/resources/locale/nb_NO.json @@ -131,7 +131,6 @@ "gui_server_started_after_autostop_timer": "Tidsavbruddsuret gikk ut før tjeneren startet. Lag en ny deling.", "gui_server_autostop_timer_expired": "Tidsavbruddsuret har gått ut allerede. Juster det for å starte deling.", "share_via_onionshare": "Del via OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Bruk gammeldagse adresser", "gui_save_private_key_checkbox": "Bruk en vedvarende adresse", "gui_share_url_description": "Alle som har denne OnionShare-adressen kan Laste ned filene dine ved bruk av Tor-Browser: ", "gui_receive_url_description": "Alle som har denne OnionShare-adressen kan Laste opp filer til din datamaskin ved bruk av Tor-Browser: ", @@ -234,7 +233,6 @@ "systray_website_started_title": "Starter deling av nettside", "systray_website_started_message": "Noen besøker din nettside", "gui_website_mode_no_files": "Ingen nettside delt enda", - "invalid_password_guess": "Feil passord", "incorrect_password": "Feil passord", "gui_settings_individual_downloads_label": "Forby nedlasting av enkeltfiler", "history_requests_tooltip": "{} vevforespørsler", @@ -274,7 +272,6 @@ "gui_open_folder_error": "Klarte ikke å åpne mappe med xdg-open. Filen er her: {}", "gui_receive_flatpak_data_dir": "Fordi du har installert OnionShare som Flatpak må du lagre filer til en mappe i ~/OnionShare.", "mode_settings_share_autostop_sharing_checkbox": "Stopp deling etter at filer er sendt (fravelg for å tillate nedlasting av individuelle filer)", - "mode_settings_client_auth_checkbox": "Bruk klient-identitetsgodkjennelse", "gui_close_tab_warning_persistent_description": "Denne fanen er vedvarende. Hvis du lukker den vil du miste onion-adressen den bruker. Er du sikker på at du vil lukke den?", "gui_tab_name_chat": "Prat", "gui_tab_name_website": "Nettside", diff --git a/desktop/src/onionshare/resources/locale/nl.json b/desktop/src/onionshare/resources/locale/nl.json index 2a9449b2..0e465476 100644 --- a/desktop/src/onionshare/resources/locale/nl.json +++ b/desktop/src/onionshare/resources/locale/nl.json @@ -132,7 +132,6 @@ "error_tor_protocol_error_unknown": "Er was een onbekende fout met Tor", "error_invalid_private_key": "Dit type privésleutel wordt niet ondersteund", "gui_tor_connection_lost": "De verbinding met Tor is verbroken.", - "gui_use_legacy_v2_onions_checkbox": "Gebruik ouderwetse adressen", "gui_save_private_key_checkbox": "Gebruik een vast adres", "gui_share_url_description": "1Iedereen2 met dit OnionShare-adres kan je bestanden 3binnenhalen4 met de 5Tor Browser6: ", "gui_receive_url_description": "Iedereen met dit OnionShare adres kan bestanden op je computer plaatsen met de Tor Browser: ", @@ -255,7 +254,6 @@ "mode_settings_website_disable_csp_checkbox": "Stuur geen Content Security Policy header (hiermee kan uw website bronnen van derden gebruiken)", "mode_settings_receive_data_dir_browse_button": "Blader", "mode_settings_receive_data_dir_label": "Bewaar bestanden in", - "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", diff --git a/desktop/src/onionshare/resources/locale/pa.json b/desktop/src/onionshare/resources/locale/pa.json index f48df060..68496d46 100644 --- a/desktop/src/onionshare/resources/locale/pa.json +++ b/desktop/src/onionshare/resources/locale/pa.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/src/onionshare/resources/locale/pl.json index 21f352bf..2418775d 100644 --- a/desktop/src/onionshare/resources/locale/pl.json +++ b/desktop/src/onionshare/resources/locale/pl.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "Czasomierz automatycznego rozpoczęcia wygasł przed uruchomieniem serwera. Utwórz nowy udział.", "gui_server_autostop_timer_expired": "Czasomierz automatycznego rozpoczęcia wygasł. Dostosuj go, aby rozpocząć udostępnianie.", "share_via_onionshare": "Udostępniaj przez OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Użyj starszych adresów", "gui_save_private_key_checkbox": "Użyj stałego adresu", "gui_share_url_description": "Każdy z tym adresem OnionShare może pobrać Twoje pliki za pomocą przeglądarki Tor Browser: ", "gui_receive_url_description": "Każdy z tym adresem OnionShare może przesyłać pliki na komputer za pomocą przeglądarki Tor Browser: ", @@ -261,7 +260,6 @@ "mode_settings_receive_data_dir_browse_button": "Przeglądaj", "mode_settings_receive_data_dir_label": "Zapisz pliki do", "mode_settings_share_autostop_sharing_checkbox": "Zatrzymaj udostępnianie po wysłaniu plików (usuń zaznaczenie, aby umożliwić pobieranie pojedynczych plików)", - "mode_settings_client_auth_checkbox": "Użyj autoryzacji klienta", "mode_settings_legacy_checkbox": "Użyj starszego adresu (onion service v2, niezalecane)", "mode_settings_autostop_timer_checkbox": "Zatrzymaj usługę cebulową w zaplanowanym czasie", "mode_settings_autostart_timer_checkbox": "Uruchomienie usługi cebulowej w zaplanowanym czasie", diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/src/onionshare/resources/locale/pt_BR.json index faf314f6..553ffbe0 100644 --- a/desktop/src/onionshare/resources/locale/pt_BR.json +++ b/desktop/src/onionshare/resources/locale/pt_BR.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "O cronômetro de parada automática acabou antes que o servidor fosse iniciado. Por favor, faça um novo compartilhamento.", "gui_server_autostop_timer_expired": "O cronômetro já esgotou. Por favor, ajuste-o para começar a compartilhar.", "share_via_onionshare": "Compartilhar via OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Usar endereços do tipo antigo", "gui_save_private_key_checkbox": "Usar o mesmo endereço", "gui_share_url_description": "Qualquer pessoa com este endereço do OnionShare pode baixar seus arquivos usando o Tor Browser: ", "gui_receive_url_description": "Qualquer pessoa com este endereço do OnionShare pode carregar arquivos no seu computador usando o Tor Browser: ", @@ -235,7 +234,6 @@ "mode_settings_receive_data_dir_browse_button": "Navegar", "mode_settings_receive_data_dir_label": "Salvar arquivos em", "mode_settings_share_autostop_sharing_checkbox": "Interrompa o compartilhamento após o envio dos arquivos (desmarque para permitir o download de arquivos individuais)", - "mode_settings_client_auth_checkbox": "Usar autorização de cliente", "mode_settings_legacy_checkbox": "Usar um endereço herdado (serviço de onion v2, não recomendado)", "mode_settings_autostop_timer_checkbox": "Interromper o serviço de onion na hora programada", "mode_settings_autostart_timer_checkbox": "Iniciar serviço de onion na hora programada", diff --git a/desktop/src/onionshare/resources/locale/pt_PT.json b/desktop/src/onionshare/resources/locale/pt_PT.json index 96627344..21f0e05d 100644 --- a/desktop/src/onionshare/resources/locale/pt_PT.json +++ b/desktop/src/onionshare/resources/locale/pt_PT.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "O cronómetro de paragem automática atingiu o tempo limite antes do servidor iniciar. Crie uma nova partilha.", "gui_server_autostop_timer_expired": "O cronómetro de paragem automática expirou. Por favor, ajuste-o para começar a partilhar.", "share_via_onionshare": "Partilhar via OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Usar endereços antigos", "gui_save_private_key_checkbox": "Usar um endereço persistente", "gui_share_url_description": "Qualquer pessoa com este endereço do OnionShare pode descarregar os seus ficheiros utilizando o Tor Browser: ", "gui_receive_url_description": "Qualquer pessoa com este endereço do OnionShare pode enviar ficheiros para o seu computador utilizando o Tor Browser: ", @@ -251,7 +250,6 @@ "mode_settings_receive_data_dir_browse_button": "Navegar", "mode_settings_receive_data_dir_label": "Guardar ficheiros para", "mode_settings_share_autostop_sharing_checkbox": "Parar a partilha de ficheiros após terem sido enviados (desmarque para permitir o descarregamento de ficheiros individuais)", - "mode_settings_client_auth_checkbox": "Utilizar autorização do cliente", "mode_settings_legacy_checkbox": "Utilize um endereço de herança (serviço onion v2, não é recomendado)", "mode_settings_persistent_checkbox": "Guarda esta aba e abre-a automaticamente quando eu inicio o OnionShare", "gui_quit_warning_description": "A partilha está ativa em algumas das suas abas. Se sair, todas as abas serão fechadas. Tem a certeza que pretende sair?", diff --git a/desktop/src/onionshare/resources/locale/ro.json b/desktop/src/onionshare/resources/locale/ro.json index 914a247a..d38979d8 100644 --- a/desktop/src/onionshare/resources/locale/ro.json +++ b/desktop/src/onionshare/resources/locale/ro.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "Cronometrul de oprire automată a expirat înainte de pornirea serverului. Vă rugăm să faceți o nouă partajare.", "gui_server_autostop_timer_expired": "Timpul pentru cronometrul auto-stop a expirat deja. Vă rugăm să îl modificați pentru a începe distribuirea.", "share_via_onionshare": "Partajați prin OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Folosire adrese moștenite", "gui_save_private_key_checkbox": "Folosiți o adresă persistentă", "gui_share_url_description": "Oricine are această adresă OnionShare poate descărca fișierele dvs. folosind Tor Browser: ", "gui_receive_url_description": "Oricine are această adresă OnionShare poate încărca fișiere pe computerul dvs. folosind Tor Browser: ", diff --git a/desktop/src/onionshare/resources/locale/ru.json b/desktop/src/onionshare/resources/locale/ru.json index ae99854b..34ff05a0 100644 --- a/desktop/src/onionshare/resources/locale/ru.json +++ b/desktop/src/onionshare/resources/locale/ru.json @@ -137,7 +137,6 @@ "gui_server_started_after_autostop_timer": "Время стоп-таймера истекло до того, как сервер был запущен. Пожалуйста, отправьте файлы заново.", "gui_server_autostop_timer_expired": "Время стоп-таймера истекло. Пожалуйста, отрегулируйте его для начала отправки.", "share_via_onionshare": "Поделиться через OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Используйте устаревшие адреса", "gui_save_private_key_checkbox": "Используйте постоянный адрес", "gui_share_url_description": "Кто угодно c этим адресом OnionShare может скачать Ваши файлы при помощи Tor Browser: ", "gui_receive_url_description": "Кто угодно c этим адресом OnionShare может загрузить файлы на ваш компьютер с помощьюTor Browser: ", @@ -236,7 +235,6 @@ "mode_settings_receive_data_dir_browse_button": "Обзор файлов", "mode_settings_receive_data_dir_label": "Сохранять файлы в", "mode_settings_share_autostop_sharing_checkbox": "Закрыть доступ к файлам после их отправки (отмените чтобы разрешить скачивание отдельных файлов)", - "mode_settings_client_auth_checkbox": "Использовать авторизацию клиента", "mode_settings_legacy_checkbox": "Использовать устаревшую версию адресов (версия 2 сервиса Тор, не рукомендуем)", "mode_settings_autostop_timer_checkbox": "Отключить сервис onion в назначенное время", "mode_settings_autostart_timer_checkbox": "Запустить сервис onion в назначенное время", diff --git a/desktop/src/onionshare/resources/locale/si.json b/desktop/src/onionshare/resources/locale/si.json index 6d6477cc..506dd446 100644 --- a/desktop/src/onionshare/resources/locale/si.json +++ b/desktop/src/onionshare/resources/locale/si.json @@ -167,7 +167,6 @@ "mode_settings_autostart_timer_checkbox": "", "mode_settings_autostop_timer_checkbox": "", "mode_settings_legacy_checkbox": "", - "mode_settings_client_auth_checkbox": "", "mode_settings_share_autostop_sharing_checkbox": "", "mode_settings_receive_data_dir_label": "", "mode_settings_receive_data_dir_browse_button": "", diff --git a/desktop/src/onionshare/resources/locale/sk.json b/desktop/src/onionshare/resources/locale/sk.json index b489e808..62c6f861 100644 --- a/desktop/src/onionshare/resources/locale/sk.json +++ b/desktop/src/onionshare/resources/locale/sk.json @@ -166,7 +166,6 @@ "mode_settings_autostart_timer_checkbox": "Spustiť onion službu v plánovanom čase", "mode_settings_autostop_timer_checkbox": "Zastaviť onion službu v plánovanom čase", "mode_settings_legacy_checkbox": "Použiť staršiu adresu (v2 onion služba, neodporúča sa)", - "mode_settings_client_auth_checkbox": "Použiť autorizáciu klienta", "mode_settings_share_autostop_sharing_checkbox": "Po odoslaní súborov zastaviť zdieľanie (zrušením začiarknutia povolíte sťahovanie jednotlivých súborov)", "mode_settings_receive_data_dir_label": "Uložiť súbory do", "mode_settings_receive_data_dir_browse_button": "Prechádzať", diff --git a/desktop/src/onionshare/resources/locale/sl.json b/desktop/src/onionshare/resources/locale/sl.json index c5867e7b..7e02d0d2 100644 --- a/desktop/src/onionshare/resources/locale/sl.json +++ b/desktop/src/onionshare/resources/locale/sl.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/sn.json b/desktop/src/onionshare/resources/locale/sn.json index af8c4ff8..f3e96a43 100644 --- a/desktop/src/onionshare/resources/locale/sn.json +++ b/desktop/src/onionshare/resources/locale/sn.json @@ -134,7 +134,6 @@ "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", "gui_connect_to_tor_for_onion_settings": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/sr_Latn.json b/desktop/src/onionshare/resources/locale/sr_Latn.json index f862a53b..dd1871ba 100644 --- a/desktop/src/onionshare/resources/locale/sr_Latn.json +++ b/desktop/src/onionshare/resources/locale/sr_Latn.json @@ -110,7 +110,6 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vreme automatskog zaustavljanja ne može biti isto ili ranije od vremena početka automatskog pokretanja. Podesi ga da bi započelo deljenje.", "share_via_onionshare": "Deljenje pomoću OnionShare", "gui_connect_to_tor_for_onion_settings": "Poveži se sa Torom da bi video postavke onion servisa", - "gui_use_legacy_v2_onions_checkbox": "Koristi nasleđene adrese", "gui_save_private_key_checkbox": "Koristi trajnu adresu", "gui_share_url_description": "Svako sa ovom OnionShare sdresom može preuzeti tvoje datoteke koristeći Tor Browser: ", "gui_website_url_description": "Svako sa ovom OnionShare adresom može posetiti tvoju veb-stranicu koristeći Tor Browser: ", @@ -188,7 +187,6 @@ "gui_close_tab_warning_persistent_description": "Ovaj jezičak je postojan. Ako ga zatvorite, izgubićete onion adresu koju koristite. Da li ste sigurni da želite zatvoriti?", "mode_settings_receive_data_dir_browse_button": "Pronađi", "mode_settings_receive_data_dir_label": "Sačuvaj fajlove u", - "mode_settings_client_auth_checkbox": "Koristi klijentsku autorizaciju", "mode_settings_legacy_checkbox": "Koristite zastarelu adresu (v2 onion servis, nije preporučeno)", "mode_settings_autostop_timer_checkbox": "Zaustavi onion servis u planirano vreme", "mode_settings_autostart_timer_checkbox": "Pokreni onion servis u planirano vreme", diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/src/onionshare/resources/locale/sv.json index be9ca203..2bf7a97f 100644 --- a/desktop/src/onionshare/resources/locale/sv.json +++ b/desktop/src/onionshare/resources/locale/sv.json @@ -131,7 +131,6 @@ "gui_server_started_after_autostop_timer": "Tiden för den automatiska stopp-tidtagaren löpte ut innan servern startades.\nVänligen gör en ny delning.", "gui_server_autostop_timer_expired": "Den automatiska stopp-tidtagaren har redan löpt ut. Vänligen justera den för att starta delning.", "share_via_onionshare": "Dela med OnionShare", - "gui_use_legacy_v2_onions_checkbox": "Använd äldre adresser", "gui_save_private_key_checkbox": "Använd en beständig adress", "gui_share_url_description": "Alla med denna OnionShare-adress kan hämta dina filer med Tor Browser: ", "gui_receive_url_description": "Alla med denna OnionShare-adress kan ladda upp filer till din dator med Tor Browser: ", @@ -222,7 +221,6 @@ "hours_first_letter": "t", "minutes_first_letter": "m", "seconds_first_letter": "s", - "invalid_password_guess": "Ogiltig lösenordsgissning", "gui_website_url_description": "Alla med denna OnionShare-adress kan besöka din webbplats med Tor Browser: ", "gui_mode_website_button": "Publicera webbplats", "systray_site_loaded_title": "Webbplats inläst", @@ -243,7 +241,6 @@ "mode_settings_receive_data_dir_browse_button": "Bläddra", "mode_settings_receive_data_dir_label": "Spara filer till", "mode_settings_share_autostop_sharing_checkbox": "Stoppa delning efter att filer har skickats (avmarkera för att tillåta hämtning av enskilda filer)", - "mode_settings_client_auth_checkbox": "Använd klientauktorisering", "mode_settings_legacy_checkbox": "Använd en äldre adress (v2-oniontjänst, rekommenderas inte)", "mode_settings_autostart_timer_checkbox": "Starta oniontjänsten vid schemalagd tid", "mode_settings_autostop_timer_checkbox": "Stoppa oniontjänsten vid schemalagd tid", diff --git a/desktop/src/onionshare/resources/locale/sw.json b/desktop/src/onionshare/resources/locale/sw.json index 45fe5eff..dc7dadb8 100644 --- a/desktop/src/onionshare/resources/locale/sw.json +++ b/desktop/src/onionshare/resources/locale/sw.json @@ -107,7 +107,6 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "", "share_via_onionshare": "", "gui_connect_to_tor_for_onion_settings": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/te.json b/desktop/src/onionshare/resources/locale/te.json index 65593d46..50ed3a58 100644 --- a/desktop/src/onionshare/resources/locale/te.json +++ b/desktop/src/onionshare/resources/locale/te.json @@ -107,7 +107,6 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "స్వయంచాలక ఆగు సమయం అనేది స్వయంచాలక ప్రారంభ సమయంతో సమానంగా లేదా అంతకు ముందు ఉండకూడదు. పంచుకోవడం ప్రారంభించడం కొరకు దయచేసి దానిని నవీకరించండి.", "share_via_onionshare": "OnionShare చేయి", "gui_connect_to_tor_for_onion_settings": "Onion సేవా అమరికలను చూచుటకు Torతో అనుసంధానించు", - "gui_use_legacy_v2_onions_checkbox": "పాత చిరునామాలు వాడు", "gui_save_private_key_checkbox": "ఒక నిరంతర చిరునామాను వాడు", "gui_share_url_description": "ఈOnionShare చిరునామా గల ఎవరైనా మీ దస్త్రాలను Tor విహారిణితో దింపుకోవచ్చు: ", "gui_receive_url_description": "ఈOnionShare చిరునామా గల ఎవరైనా మీ దస్త్రాలను Tor విహారిణితో ఎక్కించుకోవచ్చు:", diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json index 0fe9067a..d8ff16fe 100644 --- a/desktop/src/onionshare/resources/locale/tr.json +++ b/desktop/src/onionshare/resources/locale/tr.json @@ -120,7 +120,6 @@ "gui_server_autostop_timer_expired": "Otomatik durma sayacı zaten sona ermiş. Paylaşmaya başlamak için sayacı ayarlayın.", "share_via_onionshare": "OnionShare ile paylaş", "gui_connect_to_tor_for_onion_settings": "Onion hizmet ayarlarını görmek için Tor bağlantısı kurun", - "gui_use_legacy_v2_onions_checkbox": "Eski adresler kullanılsın", "gui_save_private_key_checkbox": "Kalıcı bir adres kullanılsın", "gui_share_url_description": "Bu OnionShare adresine sahip olan herkes Tor Browser kullanarak dosyalarınızı indirebilir: ", "gui_receive_url_description": "Bu OnionShare adresine sahip olan herkes Tor Browser kullanarak dosyaları bilgisayarınıza yükleyebilir: ", @@ -193,7 +192,6 @@ "hours_first_letter": "s", "minutes_first_letter": "d", "seconds_first_letter": "sn", - "invalid_password_guess": "Geçersiz parola tahmini", "gui_website_url_description": "Bu OnionShare adresine sahip olan herkes Tor Browser kullanarak web sitenizi ziyaret edebilir: ", "gui_mode_website_button": "Web Sitesini Yayınla", "gui_website_mode_no_files": "Henüz Bir Web Sitesi Paylaşılmadı", @@ -206,7 +204,6 @@ "mode_settings_receive_data_dir_browse_button": "Göz at", "mode_settings_receive_data_dir_label": "Dosyaları şuraya kaydet", "mode_settings_share_autostop_sharing_checkbox": "Dosyalar gönderildikten sonra paylaşmayı durdur (dosyaların tek tek indirilmesine izin vermek için işareti kaldırın)", - "mode_settings_client_auth_checkbox": "İstemci kimlik doğrulaması kullan", "mode_settings_legacy_checkbox": "Eski bir adres kullan (v2 onion hizmeti, tavsiye edilmez)", "mode_settings_autostop_timer_checkbox": "Onion hizmetini zamanlanan saatte durdur", "mode_settings_autostart_timer_checkbox": "Onion hizmetini zamanlanan saatte başlat", diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json index 0e559e61..e5027ace 100644 --- a/desktop/src/onionshare/resources/locale/uk.json +++ b/desktop/src/onionshare/resources/locale/uk.json @@ -107,7 +107,6 @@ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Час автоспину не може бути однаковим або ранішим за час автоматичного запуску. Налаштуйте його, щоб почати надсилання.", "share_via_onionshare": "Поділитися через OnionShare", "gui_connect_to_tor_for_onion_settings": "З'єднайтеся з Tor, щоб побачити параметри служби onion", - "gui_use_legacy_v2_onions_checkbox": "Використовувати застарілі адреси", "gui_save_private_key_checkbox": "Використовувати постійну адресу", "gui_share_url_description": "Будь-хто, за допомогою цієї адреси, може завантажити ваші файли, через Tor Browser: ", "gui_receive_url_description": "Будь-хто, за допомогою цієї адреси, може завантажити файли до вашого комп'ютера через Tor Browser: ", @@ -183,7 +182,6 @@ "mode_settings_website_disable_csp_checkbox": "Не надсилати заголовок політики безпеки вмісту (дозволяє вебсайту застосовувати сторонні ресурси)", "mode_settings_receive_data_dir_label": "Зберігати файли до", "mode_settings_share_autostop_sharing_checkbox": "Закрити доступ, коли файли надіслано (приберіть позначку, щоб дозволити завантаження окремих файлів)", - "mode_settings_client_auth_checkbox": "Застосовувати авторизацію клієнта", "mode_settings_legacy_checkbox": "Користуватися застарілою адресою (служба onion v2, не рекомендовано)", "mode_settings_autostop_timer_checkbox": "Зупинити службу onion у запланований час", "mode_settings_autostart_timer_checkbox": "Запускати службу onion у запланований час", diff --git a/desktop/src/onionshare/resources/locale/wo.json b/desktop/src/onionshare/resources/locale/wo.json index 4b3afd9a..3ec01ad9 100644 --- a/desktop/src/onionshare/resources/locale/wo.json +++ b/desktop/src/onionshare/resources/locale/wo.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/src/onionshare/resources/locale/yo.json index 40d6ff4b..3cc23c31 100644 --- a/desktop/src/onionshare/resources/locale/yo.json +++ b/desktop/src/onionshare/resources/locale/yo.json @@ -131,7 +131,6 @@ "gui_server_started_after_autostop_timer": "", "gui_server_autostop_timer_expired": "", "share_via_onionshare": "", - "gui_use_legacy_v2_onions_checkbox": "", "gui_save_private_key_checkbox": "", "gui_share_url_description": "", "gui_receive_url_description": "", diff --git a/desktop/src/onionshare/resources/locale/zh_Hans.json b/desktop/src/onionshare/resources/locale/zh_Hans.json index c6c8379d..d15a372c 100644 --- a/desktop/src/onionshare/resources/locale/zh_Hans.json +++ b/desktop/src/onionshare/resources/locale/zh_Hans.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "在服务器启动之前,自动停止的定时器的计时已到。请建立一个新的共享。", "gui_server_autostop_timer_expired": "自动停止的定时器计时已到。请对其调整以开始共享。", "share_via_onionshare": "通过 OnionShare 共享", - "gui_use_legacy_v2_onions_checkbox": "使用老式地址", "gui_save_private_key_checkbox": "使用长期地址", "gui_share_url_description": "任何人只要有这个 OnionShare 地址,都可以用 Tor Browser 下载您的文件:", "gui_receive_url_description": "任何人只要有这个 OnionShare 地址,都可以用 Tor Browser 向您的电脑上传文件:", @@ -234,7 +233,6 @@ "mode_settings_receive_data_dir_browse_button": "浏览", "mode_settings_receive_data_dir_label": "保存文件到", "mode_settings_share_autostop_sharing_checkbox": "文件传送完后停止共享(取消选中可允许下载单个文件)", - "mode_settings_client_auth_checkbox": "使用客户端认证", "mode_settings_legacy_checkbox": "使用旧地址(v2 onion服务,不推荐)", "mode_settings_autostop_timer_checkbox": "定时停止onion服务", "mode_settings_autostart_timer_checkbox": "定时起动onion服务", diff --git a/desktop/src/onionshare/resources/locale/zh_Hant.json b/desktop/src/onionshare/resources/locale/zh_Hant.json index 654892b0..7cfabf7d 100644 --- a/desktop/src/onionshare/resources/locale/zh_Hant.json +++ b/desktop/src/onionshare/resources/locale/zh_Hant.json @@ -130,7 +130,6 @@ "gui_server_started_after_autostop_timer": "在服務器啓動之前,自動停止的定時器的計時已到。請建立一個新的共享。", "gui_server_autostop_timer_expired": "自動停止計時器時間已到。請調整它來開始分享。", "share_via_onionshare": "使用OnionShare分享", - "gui_use_legacy_v2_onions_checkbox": "使用傳統地址", "gui_save_private_key_checkbox": "使用永久地址", "gui_share_url_description": "任何人只要擁有這個地址就可以下載你的檔案經由Tor Browser: ", "gui_receive_url_description": "任何人只要擁有這個地址就可以上傳檔案到你的電腦經由Tor Browser: ", @@ -266,7 +265,6 @@ "gui_rendezvous_cleanup": "等待Tor电路关闭,以确保文檔传输成功。\n\n這可能需要幾分鐘。", "mode_settings_website_disable_csp_checkbox": "取消內容安全政策(Content Security Policy)信頭(允許您的網站使用三方資源)", "mode_settings_share_autostop_sharing_checkbox": "檔案傳送完後停止共享(取消選中可允許下載單個檔案)", - "mode_settings_client_auth_checkbox": "使用者端認證", "mode_settings_legacy_checkbox": "使用舊地址(v2 onion服務,不推薦)", "mode_settings_autostop_timer_checkbox": "定時停止onion服務", "mode_settings_autostart_timer_checkbox": "定時起動onion服務", diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index e4285cbe..ed9191b0 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -252,7 +252,7 @@ class Mode(QtWidgets.QWidget): if ( not self.server_status.local_only and not self.app.onion.supports_stealth - and self.settings.get("general", "client_auth") + and not self.settings.get("general", "public") ): can_start = False diff --git a/desktop/src/onionshare/tab/mode/chat_mode/__init__.py b/desktop/src/onionshare/tab/mode/chat_mode/__init__.py index fe3e69f1..e7a17ce7 100644 --- a/desktop/src/onionshare/tab/mode/chat_mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/chat_mode/__init__.py @@ -130,7 +130,6 @@ class ChatMode(Mode): """ # Reset web counters self.web.chat_mode.cur_history_id = 0 - self.web.reset_invalid_passwords() def start_server_step2_custom(self): """ diff --git a/desktop/src/onionshare/tab/mode/mode_settings_widget.py b/desktop/src/onionshare/tab/mode/mode_settings_widget.py index 766a3bb6..0e80023e 100644 --- a/desktop/src/onionshare/tab/mode/mode_settings_widget.py +++ b/desktop/src/onionshare/tab/mode/mode_settings_widget.py @@ -129,18 +129,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea): autostop_timer_layout.addWidget(self.autostop_timer_checkbox) autostop_timer_layout.addWidget(self.autostop_timer_widget) - # Client auth (v3) - self.client_auth_checkbox = QtWidgets.QCheckBox() - self.client_auth_checkbox.clicked.connect(self.client_auth_checkbox_clicked) - self.client_auth_checkbox.clicked.connect(self.update_ui) - self.client_auth_checkbox.setText( - strings._("mode_settings_client_auth_checkbox") - ) - if self.settings.get("general", "client_auth"): - self.client_auth_checkbox.setCheckState(QtCore.Qt.Checked) - else: - self.client_auth_checkbox.setCheckState(QtCore.Qt.Unchecked) - # Toggle advanced settings self.toggle_advanced_button = QtWidgets.QPushButton() self.toggle_advanced_button.clicked.connect(self.toggle_advanced_clicked) @@ -155,7 +143,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea): advanced_layout.addLayout(title_layout) advanced_layout.addLayout(autostart_timer_layout) advanced_layout.addLayout(autostop_timer_layout) - advanced_layout.addWidget(self.client_auth_checkbox) self.advanced_widget = QtWidgets.QWidget() self.advanced_widget.setLayout(advanced_layout) self.advanced_widget.hide() @@ -250,11 +237,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea): else: self.autostop_timer_widget.hide() - def client_auth_checkbox_clicked(self): - self.settings.set( - "general", "client_auth", self.client_auth_checkbox.isChecked() - ) - def toggle_advanced_clicked(self): if self.advanced_widget.isVisible(): self.advanced_widget.hide() diff --git a/desktop/src/onionshare/tab/mode/receive_mode/__init__.py b/desktop/src/onionshare/tab/mode/receive_mode/__init__.py index d07b5ffc..e9f6b2ce 100644 --- a/desktop/src/onionshare/tab/mode/receive_mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/receive_mode/__init__.py @@ -296,7 +296,6 @@ class ReceiveMode(Mode): """ # Reset web counters self.web.receive_mode.cur_history_id = 0 - self.web.reset_invalid_passwords() # Hide and reset the uploads if we have previously shared self.reset_info_counters() diff --git a/desktop/src/onionshare/tab/mode/share_mode/__init__.py b/desktop/src/onionshare/tab/mode/share_mode/__init__.py index 4056d92e..5d3e3c35 100644 --- a/desktop/src/onionshare/tab/mode/share_mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/share_mode/__init__.py @@ -219,7 +219,6 @@ class ShareMode(Mode): """ # Reset web counters self.web.share_mode.cur_history_id = 0 - self.web.reset_invalid_passwords() # Hide and reset the downloads if we have previously shared self.reset_info_counters() diff --git a/desktop/src/onionshare/tab/mode/website_mode/__init__.py b/desktop/src/onionshare/tab/mode/website_mode/__init__.py index 577ea28e..a50d15b9 100644 --- a/desktop/src/onionshare/tab/mode/website_mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/website_mode/__init__.py @@ -210,7 +210,6 @@ class WebsiteMode(Mode): """ # Reset web counters self.web.website_mode.visit_count = 0 - self.web.reset_invalid_passwords() # Hide and reset the downloads if we have previously shared self.reset_info_counters() diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py index 92c02744..6cd905ad 100644 --- a/desktop/src/onionshare/tab/server_status.py +++ b/desktop/src/onionshare/tab/server_status.py @@ -115,8 +115,8 @@ class ServerStatus(QtWidgets.QWidget): self.copy_client_auth_button.clicked.connect(self.copy_client_auth) url_buttons_layout = QtWidgets.QHBoxLayout() url_buttons_layout.addWidget(self.copy_url_button) - url_buttons_layout.addWidget(self.show_url_qr_code_button) url_buttons_layout.addWidget(self.copy_client_auth_button) + url_buttons_layout.addWidget(self.show_url_qr_code_button) url_buttons_layout.addStretch() url_layout = QtWidgets.QVBoxLayout() @@ -173,21 +173,41 @@ class ServerStatus(QtWidgets.QWidget): info_image = GuiCommon.get_resource_path("images/info.png") if self.mode == self.common.gui.MODE_SHARE: - self.url_description.setText( - strings._("gui_share_url_description").format(info_image) - ) + if self.settings.get("general", "public"): + self.url_description.setText( + strings._("gui_share_url_public_description").format(info_image) + ) + else: + self.url_description.setText( + strings._("gui_share_url_description").format(info_image) + ) elif self.mode == self.common.gui.MODE_WEBSITE: - self.url_description.setText( - strings._("gui_website_url_description").format(info_image) - ) + if self.settings.get("general", "public"): + self.url_description.setText( + strings._("gui_website_url_public_description").format(info_image) + ) + else: + self.url_description.setText( + strings._("gui_website_url_description").format(info_image) + ) elif self.mode == self.common.gui.MODE_RECEIVE: - self.url_description.setText( - strings._("gui_receive_url_description").format(info_image) - ) + if self.settings.get("general", "public"): + self.url_description.setText( + strings._("gui_receive_url_public_description").format(info_image) + ) + else: + self.url_description.setText( + strings._("gui_receive_url_description").format(info_image) + ) elif self.mode == self.common.gui.MODE_CHAT: - self.url_description.setText( - strings._("gui_chat_url_description").format(info_image) - ) + if self.settings.get("general", "public"): + self.url_description.setText( + strings._("gui_chat_url_public_description").format(info_image) + ) + else: + self.url_description.setText( + strings._("gui_chat_url_description").format(info_image) + ) # Show a Tool Tip explaining the lifecycle of this URL if self.settings.get("persistent", "enabled"): @@ -213,10 +233,10 @@ class ServerStatus(QtWidgets.QWidget): self.show_url_qr_code_button.show() - if self.settings.get("general", "client_auth"): - self.copy_client_auth_button.show() - else: + if self.settings.get("general", "public"): self.copy_client_auth_button.hide() + else: + self.copy_client_auth_button.show() def update(self): """ @@ -230,10 +250,6 @@ class ServerStatus(QtWidgets.QWidget): self.common.settings.load() self.show_url() - if not self.settings.get("onion", "password"): - self.settings.set("onion", "password", self.web.password) - self.settings.save() - if self.settings.get("general", "autostop_timer"): self.server_button.setToolTip( strings._("gui_stop_server_autostop_timer_tooltip").format( @@ -466,8 +482,5 @@ class ServerStatus(QtWidgets.QWidget): """ Returns the OnionShare URL. """ - if self.settings.get("general", "public"): - url = f"http://{self.app.onion_host}" - else: - url = f"http://onionshare:{self.web.password}@{self.app.onion_host}" + url = f"http://{self.app.onion_host}" return url diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py index 062bf6b7..b0f2a9ac 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/src/onionshare/tab/tab.py @@ -581,11 +581,6 @@ class Tab(QtWidgets.QWidget): f"{strings._('other_page_loaded')}: {event['path']}" ) - if event["type"] == Web.REQUEST_INVALID_PASSWORD: - self.status_bar.showMessage( - f"[#{mode.web.invalid_passwords_count}] {strings._('incorrect_password')}: {event['data']}" - ) - mode.timer_callback() def copy_url(self): diff --git a/desktop/src/onionshare/threads.py b/desktop/src/onionshare/threads.py index c9a3dba4..b02c6f21 100644 --- a/desktop/src/onionshare/threads.py +++ b/desktop/src/onionshare/threads.py @@ -65,14 +65,9 @@ class OnionThread(QtCore.QThread): # Make a new static URL path for each new share self.mode.web.generate_static_url_path() - # Choose port and password early, because we need them to exist in advance for scheduled shares + # Choose port early, because we need them to exist in advance for scheduled shares if not self.mode.app.port: self.mode.app.choose_port() - if not self.mode.settings.get("general", "public"): - if not self.mode.web.password: - self.mode.web.generate_password( - self.mode.settings.get("onion", "password") - ) try: if self.mode.obtain_onion_early: diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py index a99c783d..83d170f1 100644 --- a/desktop/tests/gui_base_test.py +++ b/desktop/tests/gui_base_test.py @@ -191,30 +191,13 @@ class GuiBaseTest(unittest.TestCase): # Upload a file files = {"file[]": open(self.tmpfiles[0], "rb")} url = f"http://127.0.0.1:{tab.app.port}/upload" - if tab.settings.get("general", "public"): - requests.post(url, files=files) - else: - requests.post( - url, - files=files, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().web.password - ), - ) + requests.post(url, files=files) QtTest.QTest.qWait(2000, self.gui.qtapp) if type(tab.get_mode()) == ShareMode: # Download files url = f"http://127.0.0.1:{tab.app.port}/download" - if tab.settings.get("general", "public"): - requests.get(url) - else: - requests.get( - url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().web.password - ), - ) + requests.get(url) QtTest.QTest.qWait(2000, self.gui.qtapp) # Indicator should be visible, have a value of "1" @@ -273,13 +256,6 @@ class GuiBaseTest(unittest.TestCase): except requests.exceptions.ConnectionError: self.assertTrue(False) - def have_a_password(self, tab): - """Test that we have a valid password""" - if not tab.settings.get("general", "public"): - self.assertRegex(tab.get_mode().server_status.web.password, r"(\w+)-(\w+)") - else: - self.assertIsNone(tab.get_mode().server_status.web.password, r"(\w+)-(\w+)") - def add_button_visible(self, tab): """Test that the add button should be visible""" if platform.system() == "Darwin": @@ -304,13 +280,7 @@ class GuiBaseTest(unittest.TestCase): tab.get_mode().server_status.copy_url_button.click() clipboard = tab.common.gui.qtapp.clipboard() - if tab.settings.get("general", "public"): - self.assertEqual(clipboard.text(), f"http://127.0.0.1:{tab.app.port}") - else: - self.assertEqual( - clipboard.text(), - f"http://onionshare:{tab.get_mode().server_status.web.password}@127.0.0.1:{tab.app.port}", - ) + self.assertEqual(clipboard.text(), f"http://127.0.0.1:{tab.app.port}") def have_show_qr_code_button(self, tab): """Test that the Show QR Code URL button is shown and that it loads a QR Code Dialog""" @@ -343,16 +313,7 @@ class GuiBaseTest(unittest.TestCase): """Test that the web page contains a string""" url = f"http://127.0.0.1:{tab.app.port}/" - if tab.settings.get("general", "public"): - r = requests.get(url) - else: - r = requests.get( - url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().web.password - ), - ) - + r = requests.get(url) self.assertTrue(string in r.text) def history_widgets_present(self, tab): diff --git a/desktop/tests/test_gui_chat.py b/desktop/tests/test_gui_chat.py index 15ecaa44..246a4494 100644 --- a/desktop/tests/test_gui_chat.py +++ b/desktop/tests/test_gui_chat.py @@ -11,15 +11,7 @@ class TestChat(GuiBaseTest): def view_chat(self, tab): """Test that we can view the chat room""" url = f"http://127.0.0.1:{tab.app.port}/" - if tab.settings.get("general", "public"): - r = requests.get(url) - else: - r = requests.get( - url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().server_status.web.password - ), - ) + r = requests.get(url) QtTest.QTest.qWait(500, self.gui.qtapp) self.assertTrue("Chat requires JavaScript" in r.text) @@ -31,16 +23,7 @@ class TestChat(GuiBaseTest): """Test that we can change our username""" url = f"http://127.0.0.1:{tab.app.port}/update-session-username" data = {"username": "oniontest"} - if tab.settings.get("general", "public"): - r = requests.post(url, json=data) - else: - r = requests.post( - url, - json=data, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().server_status.web.password - ), - ) + r = requests.post(url, json=data) QtTest.QTest.qWait(500, self.gui.qtapp) jsonResponse = r.json() @@ -53,7 +36,6 @@ class TestChat(GuiBaseTest): self.server_status_indicator_says_starting(tab) self.server_is_started(tab, startup_time=500) self.web_server_is_running(tab) - self.have_a_password(tab) self.url_description_shown(tab) self.have_copy_url_button(tab) self.have_show_qr_code_button(tab) diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py index ee5f599e..84b9c5bd 100644 --- a/desktop/tests/test_gui_share.py +++ b/desktop/tests/test_gui_share.py @@ -72,15 +72,7 @@ class TestShare(GuiBaseTest): def download_share(self, tab): """Test that we can download the share""" url = f"http://127.0.0.1:{tab.app.port}/download" - if tab.settings.get("general", "public"): - r = requests.get(url) - else: - r = requests.get( - url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().server_status.web.password - ), - ) + r = requests.get(url) tmp_file = tempfile.NamedTemporaryFile("wb", delete=False) tmp_file.write(r.content) @@ -99,40 +91,16 @@ class TestShare(GuiBaseTest): """ url = f"http://127.0.0.1:{tab.app.port}" download_file_url = f"http://127.0.0.1:{tab.app.port}/test.txt" - if tab.settings.get("general", "public"): - r = requests.get(url) - else: - r = requests.get( - url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().server_status.web.password - ), - ) + r = requests.get(url) if tab.settings.get("share", "autostop_sharing"): self.assertFalse('a href="/test.txt"' in r.text) - if tab.settings.get("general", "public"): - r = requests.get(download_file_url) - else: - r = requests.get( - download_file_url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().server_status.web.password - ), - ) + r = requests.get(download_file_url) self.assertEqual(r.status_code, 404) self.download_share(tab) else: self.assertTrue('a href="test.txt"' in r.text) - if tab.settings.get("general", "public"): - r = requests.get(download_file_url) - else: - r = requests.get( - download_file_url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().server_status.web.password - ), - ) + r = requests.get(download_file_url) tmp_file = tempfile.NamedTemporaryFile("wb", delete=False) tmp_file.write(r.content) @@ -144,34 +112,6 @@ class TestShare(GuiBaseTest): QtTest.QTest.qWait(500, self.gui.qtapp) - def hit_401(self, tab): - """Test that the server stops after too many 401s, or doesn't when in public mode""" - # In non-public mode, get ready to accept the dialog - if not tab.settings.get("general", "public"): - - def accept_dialog(): - window = tab.common.gui.qtapp.activeWindow() - if window: - window.close() - - QtCore.QTimer.singleShot(1000, accept_dialog) - - # Make 20 requests with guessed passwords - url = f"http://127.0.0.1:{tab.app.port}/" - for _ in range(20): - password_guess = self.gui.common.build_password() - requests.get( - url, auth=requests.auth.HTTPBasicAuth("onionshare", password_guess) - ) - - # In public mode, we should still be running (no rate-limiting) - if tab.settings.get("general", "public"): - self.web_server_is_running(tab) - - # In non-public mode, we should be shut down (rate-limiting) - else: - self.web_server_is_stopped(tab) - def set_autostart_timer(self, tab, timer): """Test that the timer can be set""" schedule = QtCore.QDateTime.currentDateTime().addSecs(timer) @@ -241,7 +181,6 @@ class TestShare(GuiBaseTest): self.mode_settings_widget_is_hidden(tab) self.server_is_started(tab, startup_time) self.web_server_is_running(tab) - self.have_a_password(tab) self.url_description_shown(tab) self.have_copy_url_button(tab) self.have_show_qr_code_button(tab) @@ -490,9 +429,9 @@ class TestShare(GuiBaseTest): self.close_all_tabs() - def test_persistent_password(self): + def test_persistent_mode(self): """ - Test a large download + Test persistent mode """ tab = self.new_share_tab() tab.get_mode().mode_settings_widget.persistent_checkbox.click() @@ -500,10 +439,9 @@ class TestShare(GuiBaseTest): self.run_all_common_setup_tests() self.run_all_share_mode_setup_tests(tab) self.run_all_share_mode_started_tests(tab) - password = tab.get_mode().server_status.web.password self.run_all_share_mode_download_tests(tab) self.run_all_share_mode_started_tests(tab) - self.assertEqual(tab.get_mode().server_status.web.password, password) + self.assertTrue("Every subsequent share reuses the address" in tab.get_mode().server_status.url_description.toolTip()) self.run_all_share_mode_download_tests(tab) self.close_all_tabs() @@ -570,45 +508,6 @@ class TestShare(GuiBaseTest): self.close_all_tabs() - def test_401_triggers_ratelimit(self): - """ - Rate limit should be triggered - """ - tab = self.new_share_tab() - - def accept_dialog(): - window = tab.common.gui.qtapp.activeWindow() - if window: - window.close() - - tab.get_mode().autostop_sharing_checkbox.click() - - self.run_all_common_setup_tests() - self.run_all_share_mode_tests(tab) - self.hit_401(tab) - - self.close_all_tabs() - - def test_401_public_skips_ratelimit(self): - """ - Public mode should skip the rate limit - """ - tab = self.new_share_tab() - - def accept_dialog(): - window = tab.common.gui.qtapp.activeWindow() - if window: - window.close() - - 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_tests(tab) - self.hit_401(tab) - - self.close_all_tabs() - def test_client_auth(self): """ Test the ClientAuth is received from the backend, @@ -617,7 +516,6 @@ class TestShare(GuiBaseTest): """ tab = self.new_share_tab() tab.get_mode().mode_settings_widget.toggle_advanced_button.click() - tab.get_mode().mode_settings_widget.client_auth_checkbox.click() self.run_all_common_setup_tests() self.run_all_share_mode_setup_tests(tab) diff --git a/desktop/tests/test_gui_website.py b/desktop/tests/test_gui_website.py index f526756a..d7a75ed6 100644 --- a/desktop/tests/test_gui_website.py +++ b/desktop/tests/test_gui_website.py @@ -11,32 +11,14 @@ class TestWebsite(GuiBaseTest): def view_website(self, tab): """Test that we can download the share""" url = f"http://127.0.0.1:{tab.app.port}/" - if tab.settings.get("general", "public"): - r = requests.get(url) - else: - r = requests.get( - url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().server_status.web.password - ), - ) - + r = requests.get(url) QtTest.QTest.qWait(500, self.gui.qtapp) self.assertTrue("This is a test website hosted by OnionShare" in r.text) def check_csp_header(self, tab): """Test that the CSP header is present when enabled or vice versa""" url = f"http://127.0.0.1:{tab.app.port}/" - if tab.settings.get("general", "public"): - r = requests.get(url) - else: - r = requests.get( - url, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().server_status.web.password - ), - ) - + r = requests.get(url) QtTest.QTest.qWait(500, self.gui.qtapp) if tab.settings.get("website", "disable_csp"): self.assertFalse("Content-Security-Policy" in r.headers) @@ -63,7 +45,6 @@ class TestWebsite(GuiBaseTest): self.add_remove_buttons_hidden(tab) self.server_is_started(tab, startup_time) self.web_server_is_running(tab) - self.have_a_password(tab) self.url_description_shown(tab) self.have_copy_url_button(tab) self.have_show_qr_code_button(tab) From 5a82a613044a7e75c88400e0885f9ab6088e6202 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 16:10:53 +1000 Subject: [PATCH 42/55] Tweak test --- desktop/tests/test_gui_share.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py index 84b9c5bd..afd42ea0 100644 --- a/desktop/tests/test_gui_share.py +++ b/desktop/tests/test_gui_share.py @@ -441,7 +441,7 @@ class TestShare(GuiBaseTest): self.run_all_share_mode_started_tests(tab) self.run_all_share_mode_download_tests(tab) self.run_all_share_mode_started_tests(tab) - self.assertTrue("Every subsequent share reuses the address" in tab.get_mode().server_status.url_description.toolTip()) + self.assertTrue("Every subsequent share reuses the address" in tab.get_mode().server_status.url_description.toolTip().text()) self.run_all_share_mode_download_tests(tab) self.close_all_tabs() From 23dab488b37b13b24cef5d8a97884c6fe3ee8967 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 16:26:31 +1000 Subject: [PATCH 43/55] remove persistent mode test for now, doesn't have much value now that there's no password to check in local mode as to whether it's the same --- desktop/tests/test_gui_share.py | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py index afd42ea0..87408d49 100644 --- a/desktop/tests/test_gui_share.py +++ b/desktop/tests/test_gui_share.py @@ -429,23 +429,6 @@ class TestShare(GuiBaseTest): self.close_all_tabs() - def test_persistent_mode(self): - """ - Test persistent mode - """ - tab = self.new_share_tab() - tab.get_mode().mode_settings_widget.persistent_checkbox.click() - - self.run_all_common_setup_tests() - self.run_all_share_mode_setup_tests(tab) - self.run_all_share_mode_started_tests(tab) - self.run_all_share_mode_download_tests(tab) - self.run_all_share_mode_started_tests(tab) - self.assertTrue("Every subsequent share reuses the address" in tab.get_mode().server_status.url_description.toolTip().text()) - self.run_all_share_mode_download_tests(tab) - - self.close_all_tabs() - def test_autostop_timer(self): """ Test the autostop timer From 84b5f98612b4d3e20f11ab42b388aa19d064a893 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 16:32:44 +1000 Subject: [PATCH 44/55] remove basic auth stuff in receive mode tests --- desktop/tests/test_gui_receive.py | 47 ++++--------------------------- 1 file changed, 5 insertions(+), 42 deletions(-) diff --git a/desktop/tests/test_gui_receive.py b/desktop/tests/test_gui_receive.py index b523b0fa..9ce7b63c 100644 --- a/desktop/tests/test_gui_receive.py +++ b/desktop/tests/test_gui_receive.py @@ -23,28 +23,10 @@ class TestReceive(GuiBaseTest): files = {"file[]": open(file_to_upload, "rb")} url = f"http://127.0.0.1:{tab.app.port}/upload" - if tab.settings.get("general", "public"): + requests.post(url, files=files) + if identical_files_at_once: + # Send a duplicate upload to test for collisions requests.post(url, files=files) - if identical_files_at_once: - # Send a duplicate upload to test for collisions - requests.post(url, files=files) - else: - requests.post( - url, - files=files, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().web.password - ), - ) - if identical_files_at_once: - # Send a duplicate upload to test for collisions - requests.post( - url, - files=files, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().web.password - ), - ) QtTest.QTest.qWait(1000, self.gui.qtapp) @@ -74,16 +56,7 @@ class TestReceive(GuiBaseTest): files = {"file[]": open(self.tmpfile_test, "rb")} url = f"http://127.0.0.1:{tab.app.port}/upload" - if tab.settings.get("general", "public"): - r = requests.post(url, files=files) - else: - r = requests.post( - url, - files=files, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().web.password - ), - ) + r = requests.post(url, files=files) def accept_dialog(): window = tab.common.gui.qtapp.activeWindow() @@ -100,16 +73,7 @@ class TestReceive(GuiBaseTest): QtTest.QTest.qWait(2000, self.gui.qtapp) url = f"http://127.0.0.1:{tab.app.port}/upload" - if tab.settings.get("general", "public"): - requests.post(url, data={"text": message}) - else: - requests.post( - url, - data={"text": message}, - auth=requests.auth.HTTPBasicAuth( - "onionshare", tab.get_mode().web.password - ), - ) + requests.post(url, data={"text": message}) QtTest.QTest.qWait(1000, self.gui.qtapp) @@ -151,7 +115,6 @@ class TestReceive(GuiBaseTest): self.server_status_indicator_says_starting(tab) self.server_is_started(tab) self.web_server_is_running(tab) - self.have_a_password(tab) self.url_description_shown(tab) self.have_copy_url_button(tab) self.have_show_qr_code_button(tab) From 60d3564a9bbc0ca9fe78265acdbf7f1bc975ae1a Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 16:43:00 +1000 Subject: [PATCH 45/55] remove more public_mode stuff in receive mode test --- desktop/tests/test_gui_receive.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/desktop/tests/test_gui_receive.py b/desktop/tests/test_gui_receive.py index 9ce7b63c..af04a914 100644 --- a/desktop/tests/test_gui_receive.py +++ b/desktop/tests/test_gui_receive.py @@ -98,12 +98,6 @@ class TestReceive(GuiBaseTest): self.assertTrue(exists) - def try_without_auth_in_non_public_mode(self, tab): - r = requests.post(f"http://127.0.0.1:{tab.app.port}/upload") - self.assertEqual(r.status_code, 401) - r = requests.get(f"http://127.0.0.1:{tab.app.port}/close") - self.assertEqual(r.status_code, 401) - # 'Grouped' tests follow from here def run_all_receive_mode_setup_tests(self, tab): @@ -123,8 +117,6 @@ class TestReceive(GuiBaseTest): def run_all_receive_mode_tests(self, tab): """Submit files and messages in receive mode and stop the share""" self.run_all_receive_mode_setup_tests(tab) - if not tab.settings.get("general", "public"): - self.try_without_auth_in_non_public_mode(tab) self.upload_file(tab, self.tmpfile_test, "test.txt") self.history_widgets_present(tab) self.counter_incremented(tab, 1) From 662f9171c523106d15485084edc0b1b4a25b14dd Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 16:57:56 +1000 Subject: [PATCH 46/55] Show ClientAuth private key as QR code --- .../src/onionshare/resources/locale/en.json | 2 ++ desktop/src/onionshare/tab/server_status.py | 6 +++- desktop/src/onionshare/widgets.py | 35 +++++++++++++++---- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 0c7ec57a..723d4c12 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -32,6 +32,8 @@ "gui_copied_client_auth": "Private Key copied to clipboard", "gui_show_url_qr_code": "Show QR Code", "gui_qr_code_dialog_title": "OnionShare QR Code", + "gui_qr_label_url_title": "OnionShare Address", + "gui_qr_label_auth_string_title": "Private Key", "gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.", "gui_please_wait_no_button": "Starting…", "gui_please_wait": "Starting… Click to cancel.", diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py index 6cd905ad..3d4c723d 100644 --- a/desktop/src/onionshare/tab/server_status.py +++ b/desktop/src/onionshare/tab/server_status.py @@ -411,7 +411,11 @@ class ServerStatus(QtWidgets.QWidget): """ Show a QR code of the onion URL. """ - self.qr_code_dialog = QRCodeDialog(self.common, self.get_url()) + if self.settings.get("general", "public"): + self.qr_code_dialog = QRCodeDialog(self.common, self.get_url()) + else: + # Make a QR Code for the ClientAuth too + self.qr_code_dialog = QRCodeDialog(self.common, self.get_url(), self.app.auth_string) def start_server(self): """ diff --git a/desktop/src/onionshare/widgets.py b/desktop/src/onionshare/widgets.py index c239d03a..ad54a22d 100644 --- a/desktop/src/onionshare/widgets.py +++ b/desktop/src/onionshare/widgets.py @@ -130,20 +130,43 @@ class QRCodeDialog(QtWidgets.QDialog): A dialog showing a QR code. """ - def __init__(self, common, text): + def __init__(self, common, url, auth_string=None): super(QRCodeDialog, self).__init__() self.common = common - self.text = text self.common.log("QrCode", "__init__") - self.qr_label = QtWidgets.QLabel(self) - self.qr_label.setPixmap(qrcode.make(self.text, image_factory=Image).pixmap()) + self.qr_label_url = QtWidgets.QLabel(self) + self.qr_label_url.setPixmap(qrcode.make(url, image_factory=Image).pixmap()) + self.qr_label_url_title = QtWidgets.QLabel(self) + self.qr_label_url_title.setText(strings._("gui_qr_label_url_title")) + self.qr_label_url_title.setAlignment(QtCore.Qt.AlignCenter) self.setWindowTitle(strings._("gui_qr_code_dialog_title")) self.setWindowIcon(QtGui.QIcon(GuiCommon.get_resource_path("images/logo.png"))) - layout = QtWidgets.QVBoxLayout(self) - layout.addWidget(self.qr_label) + layout = QtWidgets.QHBoxLayout(self) + url_layout = QtWidgets.QVBoxLayout(self) + url_layout.addWidget(self.qr_label_url_title) + url_layout.addWidget(self.qr_label_url) + + url_code_with_label = QtWidgets.QWidget() + url_code_with_label.setLayout(url_layout) + layout.addWidget(url_code_with_label) + + if auth_string: + self.qr_label_auth_string = QtWidgets.QLabel(self) + self.qr_label_auth_string.setPixmap(qrcode.make(auth_string, image_factory=Image).pixmap()) + self.qr_label_auth_string_title = QtWidgets.QLabel(self) + self.qr_label_auth_string_title.setText(strings._("gui_qr_label_auth_string_title")) + self.qr_label_auth_string_title.setAlignment(QtCore.Qt.AlignCenter) + + auth_string_layout = QtWidgets.QVBoxLayout(self) + auth_string_layout.addWidget(self.qr_label_auth_string_title) + auth_string_layout.addWidget(self.qr_label_auth_string) + + auth_string_code_with_label = QtWidgets.QWidget() + auth_string_code_with_label.setLayout(auth_string_layout) + layout.addWidget(auth_string_code_with_label) self.exec_() From ebba0c4448cd4ff0508aa17af70f3e94cbd2e351 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 17:09:35 +1000 Subject: [PATCH 47/55] Add missing string for chat mode when using ClientAuth --- desktop/src/onionshare/resources/locale/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 723d4c12..c9755301 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -96,6 +96,7 @@ "gui_receive_url_description": "Anyone with this OnionShare address and private key can upload files to your computer using the Tor Browser: ", "gui_receive_url_public_description": "Anyone with this OnionShare address can upload files to your computer using the Tor Browser: ", "gui_chat_url_description": "Anyone with this OnionShare address can join this chat room using the Tor Browser: ", + "gui_chat_url_publuc_description": "Anyone with this OnionShare address and private key can join this chat room using the Tor Browser: ", "gui_url_label_persistent": "This share will not auto-stop.

Every subsequent share reuses the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)", "gui_url_label_stay_open": "This share will not auto-stop.", "gui_url_label_onetime": "This share will stop after first completion.", From 41ddeb08b943cfa3bb80132f11e2a459f68ce2f9 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 17:16:44 +1000 Subject: [PATCH 48/55] typo.. omg --- desktop/src/onionshare/resources/locale/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index c9755301..0d2bdd66 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -96,7 +96,7 @@ "gui_receive_url_description": "Anyone with this OnionShare address and private key can upload files to your computer using the Tor Browser: ", "gui_receive_url_public_description": "Anyone with this OnionShare address can upload files to your computer using the Tor Browser: ", "gui_chat_url_description": "Anyone with this OnionShare address can join this chat room using the Tor Browser: ", - "gui_chat_url_publuc_description": "Anyone with this OnionShare address and private key can join this chat room using the Tor Browser: ", + "gui_chat_url_public_description": "Anyone with this OnionShare address and private key can join this chat room using the Tor Browser: ", "gui_url_label_persistent": "This share will not auto-stop.

Every subsequent share reuses the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)", "gui_url_label_stay_open": "This share will not auto-stop.", "gui_url_label_onetime": "This share will stop after first completion.", From 06344f23ad7561bf0fc568d1b77d10578ade64b6 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Fri, 27 Aug 2021 17:59:52 +1000 Subject: [PATCH 49/55] Clean up some inefficient code, and re-word the 'too old for stealth' dialog message --- desktop/src/onionshare/resources/locale/en.json | 2 +- desktop/src/onionshare/tab/mode/__init__.py | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 0d2bdd66..1e71bced 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -87,7 +87,7 @@ "gui_server_autostop_timer_expired": "The auto-stop timer already ran out. Please adjust it to start sharing.", "gui_server_autostart_timer_expired": "The scheduled time has already passed. Please adjust it to start sharing.", "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "The auto-stop time can't be the same or earlier than the auto-start time. Please adjust it to start sharing.", - "gui_server_doesnt_support_stealth": "Sorry, this version of Tor doesn't support stealth (Client Authorization). Please try with a newer version of Tor.", + "gui_server_doesnt_support_stealth": "Sorry, this version of Tor doesn't support stealth (Client Authentication). Please try with a newer version of Tor, or use 'public' mode if it doesn't need to be private.", "share_via_onionshare": "Share via OnionShare", "gui_share_url_description": "Anyone with this OnionShare address and private key can download your files using the Tor Browser: ", "gui_share_url_public_description": "Anyone with this OnionShare address can download your files using the Tor Browser: ", diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index ed9191b0..c0c80368 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -248,15 +248,16 @@ class Mode(QtWidgets.QWidget): def start_onion_thread(self, obtain_onion_early=False): # If we tried to start with Client Auth and our Tor is too old to support it, # bail out early - can_start = True if ( not self.server_status.local_only and not self.app.onion.supports_stealth and not self.settings.get("general", "public") ): - can_start = False - - if can_start: + self.stop_server() + self.start_server_error( + strings._("gui_server_doesnt_support_stealth") + ) + else: self.common.log("Mode", "start_server", "Starting an onion thread") self.obtain_onion_early = obtain_onion_early self.onion_thread = OnionThread(self) @@ -265,12 +266,6 @@ class Mode(QtWidgets.QWidget): self.onion_thread.error.connect(self.starting_server_error.emit) self.onion_thread.start() - else: - self.stop_server() - self.start_server_error( - strings._("gui_server_doesnt_support_stealth") - ) - def start_scheduled_service(self, obtain_onion_early=False): # We start a new OnionThread with the saved scheduled key from settings self.common.settings.load() From 0b41021c689a8c7c08be4fea574c0942014c21f4 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 28 Aug 2021 09:27:00 +1000 Subject: [PATCH 50/55] Make QR Codes the same size --- desktop/src/onionshare/widgets.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/desktop/src/onionshare/widgets.py b/desktop/src/onionshare/widgets.py index ad54a22d..ec4d5ddc 100644 --- a/desktop/src/onionshare/widgets.py +++ b/desktop/src/onionshare/widgets.py @@ -139,6 +139,8 @@ class QRCodeDialog(QtWidgets.QDialog): self.qr_label_url = QtWidgets.QLabel(self) self.qr_label_url.setPixmap(qrcode.make(url, image_factory=Image).pixmap()) + self.qr_label_url.setScaledContents(True) + self.qr_label_url.setFixedSize(350, 350) self.qr_label_url_title = QtWidgets.QLabel(self) self.qr_label_url_title.setText(strings._("gui_qr_label_url_title")) self.qr_label_url_title.setAlignment(QtCore.Qt.AlignCenter) @@ -157,6 +159,8 @@ class QRCodeDialog(QtWidgets.QDialog): if auth_string: self.qr_label_auth_string = QtWidgets.QLabel(self) self.qr_label_auth_string.setPixmap(qrcode.make(auth_string, image_factory=Image).pixmap()) + self.qr_label_auth_string.setScaledContents(True) + self.qr_label_auth_string.setFixedSize(350, 350) self.qr_label_auth_string_title = QtWidgets.QLabel(self) self.qr_label_auth_string_title.setText(strings._("gui_qr_label_auth_string_title")) self.qr_label_auth_string_title.setAlignment(QtCore.Qt.AlignCenter) From aebdb6e952634d580b95edc7df66e6b5eeeda119 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 28 Aug 2021 09:27:46 +1000 Subject: [PATCH 51/55] Fix wording for public mode --- desktop/src/onionshare/resources/locale/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 1e71bced..2f4f9f2e 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -183,7 +183,7 @@ "mode_settings_advanced_toggle_hide": "Hide advanced settings", "mode_settings_title_label": "Custom title", "mode_settings_persistent_checkbox": "Save this tab, and automatically open it when I open OnionShare", - "mode_settings_public_checkbox": "This is a public OnionShare service (disables client authentication)", + "mode_settings_public_checkbox": "This is a public OnionShare service (disables private key)", "mode_settings_autostart_timer_checkbox": "Start onion service at scheduled time", "mode_settings_autostop_timer_checkbox": "Stop onion service at scheduled time", "mode_settings_share_autostop_sharing_checkbox": "Stop sharing after files have been sent (uncheck to allow downloading individual files)", From 625c642aab9d23ef54a38c70b72f65408981a5d6 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 28 Aug 2021 09:29:01 +1000 Subject: [PATCH 52/55] Fix the Chat Mode description when using public vs non-public --- desktop/src/onionshare/resources/locale/en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 2f4f9f2e..664344c4 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -95,8 +95,8 @@ "gui_website_url_public_description": "Anyone with this OnionShare address can visit your website using the Tor Browser: ", "gui_receive_url_description": "Anyone with this OnionShare address and private key can upload files to your computer using the Tor Browser: ", "gui_receive_url_public_description": "Anyone with this OnionShare address can upload files to your computer using the Tor Browser: ", - "gui_chat_url_description": "Anyone with this OnionShare address can join this chat room using the Tor Browser: ", - "gui_chat_url_public_description": "Anyone with this OnionShare address and private key can join this chat room using the Tor Browser: ", + "gui_chat_url_description": "Anyone with this OnionShare address and private key can join this chat room using the Tor Browser: ", + "gui_chat_url_public_description": "Anyone with this OnionShare address can join this chat room using the Tor Browser: ", "gui_url_label_persistent": "This share will not auto-stop.

Every subsequent share reuses the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)", "gui_url_label_stay_open": "This share will not auto-stop.", "gui_url_label_onetime": "This share will stop after first completion.", From a08f303f894b20bb9562b7c8690a0987a0855120 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 28 Aug 2021 09:41:09 +1000 Subject: [PATCH 53/55] Remove rate-limit related code, and a couple more places where flask-httpauth was referenced --- cli/onionshare_cli/web/web.py | 21 +++++++-------- .../src/onionshare/resources/locale/af.json | 1 - .../src/onionshare/resources/locale/am.json | 1 - .../src/onionshare/resources/locale/ar.json | 1 - .../src/onionshare/resources/locale/bg.json | 1 - .../src/onionshare/resources/locale/bn.json | 1 - .../src/onionshare/resources/locale/ca.json | 1 - .../src/onionshare/resources/locale/ckb.json | 1 - .../src/onionshare/resources/locale/cs.json | 1 - .../src/onionshare/resources/locale/da.json | 1 - .../src/onionshare/resources/locale/de.json | 1 - .../src/onionshare/resources/locale/el.json | 1 - .../src/onionshare/resources/locale/en.json | 1 - .../src/onionshare/resources/locale/eo.json | 1 - .../src/onionshare/resources/locale/es.json | 1 - .../src/onionshare/resources/locale/fa.json | 1 - .../src/onionshare/resources/locale/fi.json | 1 - .../src/onionshare/resources/locale/fr.json | 1 - .../src/onionshare/resources/locale/ga.json | 1 - .../src/onionshare/resources/locale/gl.json | 1 - .../src/onionshare/resources/locale/gu.json | 1 - .../src/onionshare/resources/locale/he.json | 1 - .../src/onionshare/resources/locale/hi.json | 1 - .../src/onionshare/resources/locale/hr.json | 1 - .../src/onionshare/resources/locale/hu.json | 1 - .../src/onionshare/resources/locale/id.json | 1 - .../src/onionshare/resources/locale/is.json | 1 - .../src/onionshare/resources/locale/it.json | 1 - .../src/onionshare/resources/locale/ja.json | 1 - .../src/onionshare/resources/locale/ka.json | 1 - .../src/onionshare/resources/locale/km.json | 1 - .../src/onionshare/resources/locale/ko.json | 1 - .../src/onionshare/resources/locale/lg.json | 1 - .../src/onionshare/resources/locale/lt.json | 1 - .../src/onionshare/resources/locale/mk.json | 1 - .../src/onionshare/resources/locale/ms.json | 1 - .../onionshare/resources/locale/nb_NO.json | 1 - .../src/onionshare/resources/locale/nl.json | 1 - .../src/onionshare/resources/locale/pa.json | 1 - .../src/onionshare/resources/locale/pl.json | 1 - .../onionshare/resources/locale/pt_BR.json | 1 - .../onionshare/resources/locale/pt_PT.json | 1 - .../src/onionshare/resources/locale/ro.json | 1 - .../src/onionshare/resources/locale/ru.json | 1 - .../src/onionshare/resources/locale/si.json | 1 - .../src/onionshare/resources/locale/sk.json | 1 - .../src/onionshare/resources/locale/sl.json | 1 - .../src/onionshare/resources/locale/sn.json | 1 - .../onionshare/resources/locale/sr_Latn.json | 1 - .../src/onionshare/resources/locale/sv.json | 1 - .../src/onionshare/resources/locale/sw.json | 1 - .../src/onionshare/resources/locale/te.json | 1 - .../src/onionshare/resources/locale/tr.json | 1 - .../src/onionshare/resources/locale/uk.json | 1 - .../src/onionshare/resources/locale/wo.json | 1 - .../src/onionshare/resources/locale/yo.json | 1 - .../onionshare/resources/locale/zh_Hans.json | 1 - .../onionshare/resources/locale/zh_Hant.json | 1 - desktop/src/onionshare/tab/mode/__init__.py | 9 ------- desktop/src/onionshare/tab/tab.py | 3 --- flatpak/org.onionshare.OnionShare.yaml | 27 ------------------- snap/snapcraft.yaml | 1 - 62 files changed, 10 insertions(+), 108 deletions(-) diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py index b33e0ee1..0f2dfe7e 100644 --- a/cli/onionshare_cli/web/web.py +++ b/cli/onionshare_cli/web/web.py @@ -63,17 +63,16 @@ class Web: REQUEST_STARTED = 1 REQUEST_PROGRESS = 2 REQUEST_CANCELED = 3 - REQUEST_RATE_LIMIT = 4 - REQUEST_UPLOAD_INCLUDES_MESSAGE = 5 - REQUEST_UPLOAD_FILE_RENAMED = 6 - REQUEST_UPLOAD_SET_DIR = 7 - REQUEST_UPLOAD_FINISHED = 8 - REQUEST_UPLOAD_CANCELED = 9 - REQUEST_INDIVIDUAL_FILE_STARTED = 10 - REQUEST_INDIVIDUAL_FILE_PROGRESS = 11 - REQUEST_INDIVIDUAL_FILE_CANCELED = 12 - REQUEST_ERROR_DATA_DIR_CANNOT_CREATE = 13 - REQUEST_OTHER = 14 + REQUEST_UPLOAD_INCLUDES_MESSAGE = 4 + REQUEST_UPLOAD_FILE_RENAMED = 5 + REQUEST_UPLOAD_SET_DIR = 6 + REQUEST_UPLOAD_FINISHED = 7 + REQUEST_UPLOAD_CANCELED = 8 + REQUEST_INDIVIDUAL_FILE_STARTED = 9 + REQUEST_INDIVIDUAL_FILE_PROGRESS = 10 + REQUEST_INDIVIDUAL_FILE_CANCELED = 11 + REQUEST_ERROR_DATA_DIR_CANNOT_CREATE = 12 + REQUEST_OTHER = 13 def __init__(self, common, is_gui, mode_settings, mode="share"): self.common = common diff --git a/desktop/src/onionshare/resources/locale/af.json b/desktop/src/onionshare/resources/locale/af.json index dd18d3ac..1e154ed3 100644 --- a/desktop/src/onionshare/resources/locale/af.json +++ b/desktop/src/onionshare/resources/locale/af.json @@ -32,7 +32,6 @@ "gui_receive_quit_warning": "U is besig om lêers te ontvang. Is u seker u wil OnionShare afsluit?", "gui_quit_warning_quit": "Sluit Af", "gui_quit_warning_dont_quit": "Kanselleer", - "error_rate_limit": "Iemand het te veel verkeerde raaiskote met u wagwoord probeer, daarom het OnionShare die bediener gestaak. Begin weer deel en stuur ’n nuwe adres aan die ontvanger.", "zip_progress_bar_format": "Samepersing: %p%", "error_stealth_not_supported": "U benodig ten minste Tor 0.2.6.1-alfa (of TorBrowser 6.5) en python3-stem 1.5.0 om kliënt-magtiging te gebruik.", "error_ephemeral_not_supported": "OnionShare vereis ten minste Tor 0.2.7.1 en python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/am.json b/desktop/src/onionshare/resources/locale/am.json index a4425b29..9a93c31f 100644 --- a/desktop/src/onionshare/resources/locale/am.json +++ b/desktop/src/onionshare/resources/locale/am.json @@ -60,7 +60,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "", "gui_quit_warning_dont_quit": "ተወው", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/ar.json b/desktop/src/onionshare/resources/locale/ar.json index 22a20674..83e88c28 100644 --- a/desktop/src/onionshare/resources/locale/ar.json +++ b/desktop/src/onionshare/resources/locale/ar.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "يجري حالبا تلقّي ملفات. أمتأكد أنك تريد إنهاء OnionShare؟", "gui_quit_warning_quit": "أنهِ", "gui_quit_warning_dont_quit": "ألغِ", - "error_rate_limit": "أجرى شخص ما محاولات كثيرة خاطئة لتخمين كلمة السر، لذلك فقد تمّ إيقاف الخادم. عاوِد المُشاركة و أرسل إلى المتلقّي عنوان المشاركة الجديد.", "zip_progress_bar_format": "جاري الضغط: %p%", "error_stealth_not_supported": "لاستعمال استيثاق العميل تلزمك إصدارة تور ‪0.2.9.1-alpha‬ أو (متصفّح تور 6.5) و python3-stem الإصدارة 1.5.0، أو ما بعدها.", "error_ephemeral_not_supported": "يتطلّب OnionShare كلّا من إصدارة تور 0.2.7.1 و الإصدارة 1.4.0 من python3-stem.", diff --git a/desktop/src/onionshare/resources/locale/bg.json b/desktop/src/onionshare/resources/locale/bg.json index 57a7e1b1..76feab06 100644 --- a/desktop/src/onionshare/resources/locale/bg.json +++ b/desktop/src/onionshare/resources/locale/bg.json @@ -60,7 +60,6 @@ "gui_receive_quit_warning": "Намирате се в процес на получаване на файлове. Сигурни ли сте, че искате да спрете OnionShare?", "gui_quit_warning_quit": "Изход", "gui_quit_warning_dont_quit": "Отказ", - "error_rate_limit": "Някой е направил прекалено много грешни опити за адреса Ви, което означава, че може да се опитват да го отгатнат, така че OnionShare спря сървъра. Стартирайте споделянето отново и изпратете нов адрес на получателя за споделяне.", "zip_progress_bar_format": "Компресира: %p%", "error_stealth_not_supported": "За да използвате ауторизация на клиента Ви трябва поне Tor 0.2.9.1-alpha (или на браузъра 6.5) и python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare изисква поне Tor 0.2.7.1 и python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/bn.json b/desktop/src/onionshare/resources/locale/bn.json index a0ef4cf7..0f87ef3f 100644 --- a/desktop/src/onionshare/resources/locale/bn.json +++ b/desktop/src/onionshare/resources/locale/bn.json @@ -60,7 +60,6 @@ "gui_receive_quit_warning": "আপনি ফাইল গ্রহণের প্রক্রিয়ার মধ্যে আছেন। আপনি কি আসলেই OnionShare বন্ধ করতে চান?", "gui_quit_warning_quit": "প্রস্থান করো", "gui_quit_warning_dont_quit": "বাতিল", - "error_rate_limit": "কেউ একজন অসংখ্যবার তোমার পাসওয়ার্ডটি অনুমান করার ব্যর্থ চেষ্টা করেছে, তাই OnionShare নিরাপত্তার জন্য সার্ভার বন্ধ করে দিয়েছে। তাই, নতুন করে আবার তোমার ফাইল(গুলো)শেয়ার করো এবং প্রাপককে নতুন এড্রেসটি দিন।", "zip_progress_bar_format": "কমপ্রেস করছি: %p%", "error_stealth_not_supported": "ক্লায়েন্ট অথোরাইজেশন ব্যবহার করার জন্য, তোমার অন্তত Tor 0.2.9.1-alpha (or Tor Browser 6.5) এবং python3-stem 1.5.0 দুটোই থাকতে হবে।", "error_ephemeral_not_supported": "OnionShare ব্যবহার করার জন্য Tor 0.2.9.1-alpha (or Tor Browser 6.5) এবং python3-stem 1.5.0 দুটোই থাকতে হবে।", diff --git a/desktop/src/onionshare/resources/locale/ca.json b/desktop/src/onionshare/resources/locale/ca.json index 790b0fae..6eb57f3b 100644 --- a/desktop/src/onionshare/resources/locale/ca.json +++ b/desktop/src/onionshare/resources/locale/ca.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Encara s'estan rebent fitxers. Segur que voleu sortir de l'OnionShare?", "gui_quit_warning_quit": "Surt", "gui_quit_warning_dont_quit": "Cancel·la", - "error_rate_limit": "Algú ha fet massa intents incorrectes intentant endevinar la vostra contrasenya. Per això l'OnionShare ha aturat el servidor. Torneu a començar el procés i envieu una adreça nova al receptor.", "zip_progress_bar_format": "S'està comprimint: %p%", "error_stealth_not_supported": "Per a fer servir l'autorització de client, necessiteu versions iguals o superiors a Tor 0.2.9.1-alpha (o Tor Browser 6.5) i python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare necessita almenys les versions Tor 0.2.7.1 i python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/ckb.json b/desktop/src/onionshare/resources/locale/ckb.json index fb7dd6ac..8289918c 100644 --- a/desktop/src/onionshare/resources/locale/ckb.json +++ b/desktop/src/onionshare/resources/locale/ckb.json @@ -31,7 +31,6 @@ "gui_qr_code_dialog_title": "OnionShare QR kod", "gui_waiting_to_start": "Pilankirî ye di {} destpê bike. Bitkîne ji bo betal bike.", "gui_please_wait": "Destpê dike...Bitikîne ji bo betal bike.", - "error_rate_limit": "Kesekî ji bo texmîn kirna şîfre gelek hewldanên nerast pêk anî, ji ber wê OnionShare weşan betal kir. Weşan ji nû ve destpê bike û malpera parvekirinê ji nû ve ji bo pêwendiyê xwe re bişîne.", "zip_progress_bar_format": "Dewisandin %p%", "gui_settings_window_title": "Ayar", "gui_settings_autoupdate_label": "Ji bo versyonekî nû kontrol bike", diff --git a/desktop/src/onionshare/resources/locale/cs.json b/desktop/src/onionshare/resources/locale/cs.json index 03f8683f..fbe9846a 100644 --- a/desktop/src/onionshare/resources/locale/cs.json +++ b/desktop/src/onionshare/resources/locale/cs.json @@ -31,7 +31,6 @@ "gui_share_quit_warning": "Jste si jistí, že chcete odejít? URL, kterou sdílíte poté nebude existovat.", "gui_quit_warning_quit": "Zavřít", "gui_quit_warning_dont_quit": "Zůstat", - "error_rate_limit": "Útočník možná zkouší uhodnout vaši URL. Abychom tomu předešli, OnionShare automaticky zastavil server. Pro sdílení souborů ho musíte spustit znovu a sdílet novou URL.", "zip_progress_bar_format": "Zpracovávám soubory: %p%", "error_stealth_not_supported": "K autorizaci klienta potřebujete alespoň Tor 0.2.9.1-alpha (or Tor Browser 6.5) a python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare vyžaduje nejméně Tor 0.2.7.1 a nejméně python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/src/onionshare/resources/locale/da.json index 337b158e..d24f70e7 100644 --- a/desktop/src/onionshare/resources/locale/da.json +++ b/desktop/src/onionshare/resources/locale/da.json @@ -44,7 +44,6 @@ "gui_share_quit_warning": "Du er ved at afsende filer. Er du sikker på, at du vil afslutte OnionShare?", "gui_quit_warning_quit": "Afslut", "gui_quit_warning_dont_quit": "Annuller", - "error_rate_limit": "Nogen har forsøgt at gætte din adgangskode for mange gange, så OnionShare har stoppet serveren. Begynd at dele igen og send en ny adresse til modtageren for at dele.", "zip_progress_bar_format": "Komprimerer: %p%", "error_stealth_not_supported": "For at bruge klientautentifikation skal du have mindst Tor 0.2.9.1-alpha (eller Tor Browser 6.5) og python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare kræver mindst både Tor 0.2.7.1 og python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/de.json b/desktop/src/onionshare/resources/locale/de.json index d1022a65..518a7113 100644 --- a/desktop/src/onionshare/resources/locale/de.json +++ b/desktop/src/onionshare/resources/locale/de.json @@ -88,7 +88,6 @@ "gui_quit_title": "Nicht so schnell", "gui_share_quit_warning": "Du versendest gerade Dateien. Bist du sicher, dass du OnionShare beenden willst?", "gui_receive_quit_warning": "Du empfängst gerade Dateien. Bist du sicher, dass du OnionShare beenden willst?", - "error_rate_limit": "Jemand hat zu viele falsche Versuche gemacht, dein Passwort zu erraten, deswegen hat OnionShare die Freigabe gestoppt. Starte die Freigabe erneut und sende dem Empfänger eine neue OnionShare-Adresse.", "zip_progress_bar_format": "Komprimiere: %p%", "error_stealth_not_supported": "Um die Client-Authorisierung zu nutzen, benötigst du mindestens Tor 0.2.9.1-alpha (oder Tor Browser 6.5) und python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare benötigt mindestens sowohl Tor 0.2.7.1 als auch python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/el.json b/desktop/src/onionshare/resources/locale/el.json index 0474c954..25649b4b 100644 --- a/desktop/src/onionshare/resources/locale/el.json +++ b/desktop/src/onionshare/resources/locale/el.json @@ -62,7 +62,6 @@ "gui_receive_quit_warning": "Αυτή τη στιγμή παραλαμβάνονται αρχείων. Είστε σίγουρος/η πώς θέλετε να κλείσετε το OnionShare;", "gui_quit_warning_quit": "Έξοδος", "gui_quit_warning_dont_quit": "Ακύρωση", - "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.", diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json index 664344c4..e7eba1cb 100644 --- a/desktop/src/onionshare/resources/locale/en.json +++ b/desktop/src/onionshare/resources/locale/en.json @@ -37,7 +37,6 @@ "gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.", "gui_please_wait_no_button": "Starting…", "gui_please_wait": "Starting… Click to cancel.", - "error_rate_limit": "Someone has made too many wrong attempts to guess your password, so OnionShare has stopped the server. Start sharing again and send the recipient a new address to share.", "zip_progress_bar_format": "Compressing: %p%", "gui_settings_window_title": "Settings", "gui_settings_autoupdate_label": "Check for new version", diff --git a/desktop/src/onionshare/resources/locale/eo.json b/desktop/src/onionshare/resources/locale/eo.json index 071d8909..9f450275 100644 --- a/desktop/src/onionshare/resources/locale/eo.json +++ b/desktop/src/onionshare/resources/locale/eo.json @@ -31,7 +31,6 @@ "gui_share_quit_warning": "Ĉu vi certas ke vi volas foriri?\nLa URL, kiun vi kundividas ne plu ekzistos.", "gui_quit_warning_quit": "Foriri", "gui_quit_warning_dont_quit": "Ne foriri", - "error_rate_limit": "Iu atankanto povas provi diveni vian URL. Por eviti tion, OnionShare aŭtomate haltis la servilon. Por kundividi la dosierojn vi devas starti ĝin denove kaj kundividi la novan URL.", "zip_progress_bar_format": "Compressing files: %p%", "error_stealth_not_supported": "To create stealth onion services, you need at least Tor 0.2.9.1-alpha (or Tor Browser 6.5) and at least python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare postulas almenaŭ Tor 0.2.7.1 kaj almenaŭ python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/es.json b/desktop/src/onionshare/resources/locale/es.json index de28da6b..7b04a9e2 100644 --- a/desktop/src/onionshare/resources/locale/es.json +++ b/desktop/src/onionshare/resources/locale/es.json @@ -30,7 +30,6 @@ "gui_copied_url_title": "Dirección OnionShare Copiada", "gui_please_wait": "Comenzando… Clic para cancelar.", "gui_quit_title": "No tan rápido", - "error_rate_limit": "Alguien ha intentado adivinar tu contraseña demasiadas veces, por lo que OnionShare ha detenido al servidor. Inicia la compartición de nuevo y envía una dirección nueva al receptor.", "zip_progress_bar_format": "Comprimiendo: %p%", "error_stealth_not_supported": "Para utilizar autorización de cliente, necesitas al menos Tor 0.2.9.1-alpha (o Navegador Tor 6.5) y python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare necesita por lo menos Tor 0.2.7.1 y python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/fa.json b/desktop/src/onionshare/resources/locale/fa.json index e5e53a83..2c27c998 100644 --- a/desktop/src/onionshare/resources/locale/fa.json +++ b/desktop/src/onionshare/resources/locale/fa.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "شما در پروسه دریافت پرونده هستید. مطمئنید که می‌خواهید از OnionShare خارج شوید؟", "gui_quit_warning_quit": "خروج", "gui_quit_warning_dont_quit": "لغو", - "error_rate_limit": "شخصی تعداد زیادی تلاش ناموفق برای حدس زدن گذرواژه شما داشته است، بنابراین OnionShare کارساز را متوقف کرده است. هم‌رسانی را دوباره آغاز کنید و به گیرنده، یک نشانی جدید برای هم‌رسانی بفرستید.", "zip_progress_bar_format": "فشرده سازی: %p%", "error_stealth_not_supported": "برای استفاده از احراز هویت کلاینت، شما نیاز به داشتن Tor 0.2.9.1-alpha (یا مرورگر Tor 6.5) و python3-stem 1.5.0 دارید.", "error_ephemeral_not_supported": "OnionShare حداقل به Tor 0.2.7.1 و python3-stem 1.4.0 نیاز دارد.", diff --git a/desktop/src/onionshare/resources/locale/fi.json b/desktop/src/onionshare/resources/locale/fi.json index 1eee3458..657be06c 100644 --- a/desktop/src/onionshare/resources/locale/fi.json +++ b/desktop/src/onionshare/resources/locale/fi.json @@ -48,7 +48,6 @@ "gui_receive_quit_warning": "Olet vastaanottamassa tiedostoja. Haluatko varmasti lopettaa OnionSharen?", "gui_quit_warning_quit": "Lopeta", "gui_quit_warning_dont_quit": "Peruuta", - "error_rate_limit": "Joku on yrittänyt arvata salasanasi väärin liian monta kertaa, joten OnionShare on pysäyttänyt palvelimen. Aloita jakaminen uudelleen ja lähetä vastaanottajalle uusi osoite jatkaaksesi jakamista.", "error_stealth_not_supported": "Asiakasvaltuuden käyttämiseen tarvitaan ainakin Tor 0.2.9.1-alpha (tai Tor Browser 6.5) ja python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionSharen käyttö vaatii ainakin Tor 0.2.7.1 ja python3-stem 1.4.0.", "gui_settings_window_title": "Asetukset", diff --git a/desktop/src/onionshare/resources/locale/fr.json b/desktop/src/onionshare/resources/locale/fr.json index 27bc3b2f..5ac2c6d0 100644 --- a/desktop/src/onionshare/resources/locale/fr.json +++ b/desktop/src/onionshare/resources/locale/fr.json @@ -149,7 +149,6 @@ "gui_download_upload_progress_complete": "%p%, {0:s} écoulées.", "gui_download_upload_progress_starting": "{0:s}, %p% (estimation)", "gui_download_upload_progress_eta": "{0:s}, Fin : {1:s}, %p%", - "error_rate_limit": "Quelqu’un a effectué trop de tentatives infructueuses pour deviner votre mot de passe, c’est pourquoi OnionShare a arrêté le serveur. Redémarrez le partage et envoyez au destinataire une nouvelle adresse afin de partager.", "error_stealth_not_supported": "Pour utiliser l’autorisation client, Tor 0.2.9.1-alpha (ou le Navigateur Tor 6.5) et python3-stem 1.5.0 ou versions ultérieures sont exigés.", "gui_settings_stealth_option": "Utiliser l’autorisation du client", "timeout_upload_still_running": "En attente de la fin de l'envoi", diff --git a/desktop/src/onionshare/resources/locale/ga.json b/desktop/src/onionshare/resources/locale/ga.json index f0a734f1..3ff5f404 100644 --- a/desktop/src/onionshare/resources/locale/ga.json +++ b/desktop/src/onionshare/resources/locale/ga.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Tá tú le linn roinnt comhad a íoslódáil. An bhfuil tú cinnte gur mhaith leat OnionShare a scor?", "gui_quit_warning_quit": "Scoir", "gui_quit_warning_dont_quit": "Cealaigh", - "error_rate_limit": "Rinne duine éigin an iomarca iarrachtaí míchearta ar d'fhocal faire, agus dá bharr sin stop OnionShare an freastalaí. Tosaigh ag comhroinnt arís agus cuir seoladh nua chuig an bhfaighteoir.", "zip_progress_bar_format": "Á chomhbhrú: %p%", "error_stealth_not_supported": "Chun údarú cliaint a úsáid, teastaíonn uait Tor 0.2.9.1-alpha (nó Brabhsálaí 6.5) agus python3-stem 1.5.0.", "error_ephemeral_not_supported": "Teastaíonn uait ar a laghad Tor 0.2.7.1 agus python3-stem 1.4.0 chun OnionShare a úsáid.", diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/src/onionshare/resources/locale/gl.json index ae92e589..a0e18619 100644 --- a/desktop/src/onionshare/resources/locale/gl.json +++ b/desktop/src/onionshare/resources/locale/gl.json @@ -31,7 +31,6 @@ "gui_qr_code_dialog_title": "Código QR OnionShare", "gui_waiting_to_start": "Programado para comezar en {}. Fai clic para cancelar.", "gui_please_wait": "Iniciando... Fai click para cancelar.", - "error_rate_limit": "Alguén fixo demasiados intentos errados para adiviñar o teu contrasinal, polo que OnionShare detivo o servidor. Comeza a compartir de novo e envía ao destinatario un novo enderezo para compartir.", "zip_progress_bar_format": "Comprimindo: %p%", "gui_settings_window_title": "Axustes", "gui_settings_autoupdate_label": "Comproba se hai nova versión", diff --git a/desktop/src/onionshare/resources/locale/gu.json b/desktop/src/onionshare/resources/locale/gu.json index bbfc9b78..313f17d8 100644 --- a/desktop/src/onionshare/resources/locale/gu.json +++ b/desktop/src/onionshare/resources/locale/gu.json @@ -60,7 +60,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/he.json b/desktop/src/onionshare/resources/locale/he.json index 047e6233..ee941304 100644 --- a/desktop/src/onionshare/resources/locale/he.json +++ b/desktop/src/onionshare/resources/locale/he.json @@ -62,7 +62,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "יציאה", "gui_quit_warning_dont_quit": "ביטול", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json index 6ffe1522..7cc230c8 100644 --- a/desktop/src/onionshare/resources/locale/hi.json +++ b/desktop/src/onionshare/resources/locale/hi.json @@ -46,7 +46,6 @@ "gui_receive_quit_warning": "आप अभी फाइलों को प्राप्त रहे हैं। क्या आप वाकई OnionShare को बंद करना चाहते हैं?", "gui_quit_warning_quit": "छोड़ें", "gui_quit_warning_dont_quit": "रद्द करें", - "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 की आवश्यकता है।", diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/src/onionshare/resources/locale/hr.json index dbc67cd0..07093047 100644 --- a/desktop/src/onionshare/resources/locale/hr.json +++ b/desktop/src/onionshare/resources/locale/hr.json @@ -32,7 +32,6 @@ "gui_receive_quit_warning": "Proces primanja datoteka je u tijeku. Zaista želiš zatvoriti OnionShare?", "gui_quit_warning_quit": "Izađi", "gui_quit_warning_dont_quit": "Odustani", - "error_rate_limit": "Netko je prečesto pokušao pogoditi tvoju lozinku, pa je OnionShare zaustavio poslužitelja. Ponovo pokreni dijeljenje i primatelju pošalji novu adresu za dijeljenje.", "zip_progress_bar_format": "Komprimiranje: %p %", "error_stealth_not_supported": "Za korištenje autorizacije klijenta, potrebni su barem Tor 0.2.9.1-alpha (ili Tor Browser 6.5) i python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare zahtijeva barem Tor 0.2.7.1 i python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/hu.json b/desktop/src/onionshare/resources/locale/hu.json index 41dbe03a..3a725427 100644 --- a/desktop/src/onionshare/resources/locale/hu.json +++ b/desktop/src/onionshare/resources/locale/hu.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "A fájlok fogadása folyamatban van. Biztosan kilépsz az OnionShare-ből?", "gui_quit_warning_quit": "Kilépés", "gui_quit_warning_dont_quit": "Mégse", - "error_rate_limit": "Valaki túl sokszor próbálta meg beírni a jelszavad, ezért az OnionShare leállította a szervert. Kezdj el újra megosztani és küldj új megosztási címet a fogadó félnek.", "zip_progress_bar_format": "Tömörítés: %p%", "error_stealth_not_supported": "A kliens-hitelesítés használatához szükséged van legalább ezekre: Tor 0.2.9.1-alpha (vagy Tor Browser 6.5) és python3-stem 1.5.0.", "error_ephemeral_not_supported": "Az OnionShare minimális követelményei: Tor 0.2.7.1 és python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/src/onionshare/resources/locale/id.json index 0a33e0a1..55af7794 100644 --- a/desktop/src/onionshare/resources/locale/id.json +++ b/desktop/src/onionshare/resources/locale/id.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Anda sedang dalam proses menerima berkas. Apakah Anda yakin ingin menghentikan OnionShare?", "gui_quit_warning_quit": "Keluar", "gui_quit_warning_dont_quit": "Batal", - "error_rate_limit": "Seseorang berusaha berulang kali untuk menebak kata sandi Anda, jadi OnionShare telah menghentikan server. Mulailah berbagi lagi dan kirim penerima alamat baru untuk dibagikan.", "zip_progress_bar_format": "Mengompresi: %p%", "error_stealth_not_supported": "Untuk menggunakan otorisasi klien, Anda perlu setidaknya Tor 0.2.9.1-alpha (atau Tor Browser 6.5) dan python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare memerlukan setidaknya Tor 0.2.7.1 dan python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/is.json b/desktop/src/onionshare/resources/locale/is.json index b8c1ecab..5ceb7896 100644 --- a/desktop/src/onionshare/resources/locale/is.json +++ b/desktop/src/onionshare/resources/locale/is.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Þú ert að taka á móti skrám. Ertu viss um að þú viljir hætta í OnionShare?", "gui_quit_warning_quit": "Hætta", "gui_quit_warning_dont_quit": "Hætta við", - "error_rate_limit": "Einhver hefur gert of margar rangar tilraunir til að giska á lykilorðið þitt, þannig að OnionShare hefur stöðvað þjóninn. Byrjaðu deiling aftur og sendu viðtakandanum nýtt vistfang til deilingar.", "zip_progress_bar_format": "Þjappa: %p%", "error_stealth_not_supported": "Til að nota biðlaraauðkenningu þarf a.m.k. bæði Tor 0.2.9.1-Alpha (eða Tor Browser 6,5) og python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare krefst a.m.k. bæði Tor 0.2.7.1 og python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/it.json b/desktop/src/onionshare/resources/locale/it.json index b658d5c3..56463b14 100644 --- a/desktop/src/onionshare/resources/locale/it.json +++ b/desktop/src/onionshare/resources/locale/it.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Stai ricevendo dei file, vuoi davvero terminare OnionShare?", "gui_quit_warning_quit": "Esci", "gui_quit_warning_dont_quit": "Annulla", - "error_rate_limit": "Qualcuno ha tentato troppe volte di indovinare la tua password, così OnionShare ha fermato il server. Riavvia la condivisione e invia al tuo contatto il nuovo indirizzo per condividere.", "error_stealth_not_supported": "Per usare l'opzione \"client auth\" hai bisogno almeno della versione di Tor 0.2.9.1-alpha (o Tor Browser 6.5) con python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare richiede almeno Tor 0.2.7.1 e python3-stem 1.4.0.", "gui_settings_window_title": "Impostazioni", diff --git a/desktop/src/onionshare/resources/locale/ja.json b/desktop/src/onionshare/resources/locale/ja.json index 81e89547..6f7d0cff 100644 --- a/desktop/src/onionshare/resources/locale/ja.json +++ b/desktop/src/onionshare/resources/locale/ja.json @@ -62,7 +62,6 @@ "gui_receive_quit_warning": "ファイルを受信中です。本当にOnionShareを終了しますか?", "gui_quit_warning_quit": "終了", "gui_quit_warning_dont_quit": "キャンセル", - "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が必要です。", diff --git a/desktop/src/onionshare/resources/locale/ka.json b/desktop/src/onionshare/resources/locale/ka.json index 95b77549..87d5c0c5 100644 --- a/desktop/src/onionshare/resources/locale/ka.json +++ b/desktop/src/onionshare/resources/locale/ka.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "პროგრამის დატოვება", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/km.json b/desktop/src/onionshare/resources/locale/km.json index 041aaac8..11b3cdb3 100644 --- a/desktop/src/onionshare/resources/locale/km.json +++ b/desktop/src/onionshare/resources/locale/km.json @@ -31,7 +31,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/ko.json b/desktop/src/onionshare/resources/locale/ko.json index 641b8cd7..76c0c814 100644 --- a/desktop/src/onionshare/resources/locale/ko.json +++ b/desktop/src/onionshare/resources/locale/ko.json @@ -60,7 +60,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "종료", "gui_quit_warning_dont_quit": "취소", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/lg.json b/desktop/src/onionshare/resources/locale/lg.json index f26aeaae..13e70fdf 100644 --- a/desktop/src/onionshare/resources/locale/lg.json +++ b/desktop/src/onionshare/resources/locale/lg.json @@ -60,7 +60,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/src/onionshare/resources/locale/lt.json index 3c4935a9..c8aa9e93 100644 --- a/desktop/src/onionshare/resources/locale/lt.json +++ b/desktop/src/onionshare/resources/locale/lt.json @@ -30,7 +30,6 @@ "gui_copied_hidservauth": "HidServAuth eilutė nukopijuota į iškarpinę", "gui_waiting_to_start": "Planuojama pradėti {}. Spustelėkite , jei norite atšaukti.", "gui_please_wait": "Pradedama… Spustelėkite norėdami atsisakyti.", - "error_rate_limit": "Kažkas padarė per daug klaidingų bandymų atspėti jūsų slaptažodį, todėl „OnionShare“ sustabdė serverį. Vėl pradėkite bendrinti ir nusiųskite gavėjui naują bendrinimo adresą.", "zip_progress_bar_format": "Glaudinama: %p%", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/mk.json b/desktop/src/onionshare/resources/locale/mk.json index 1293f1ed..a264021f 100644 --- a/desktop/src/onionshare/resources/locale/mk.json +++ b/desktop/src/onionshare/resources/locale/mk.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "Излези", "gui_quit_warning_dont_quit": "Откажи", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/ms.json b/desktop/src/onionshare/resources/locale/ms.json index 44c7ce5b..371c61b7 100644 --- a/desktop/src/onionshare/resources/locale/ms.json +++ b/desktop/src/onionshare/resources/locale/ms.json @@ -46,7 +46,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "Keluar", "gui_quit_warning_dont_quit": "Batal", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/nb_NO.json b/desktop/src/onionshare/resources/locale/nb_NO.json index 1e31e3ba..33825216 100644 --- a/desktop/src/onionshare/resources/locale/nb_NO.json +++ b/desktop/src/onionshare/resources/locale/nb_NO.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Du har ikke fått alle filene enda. Er du sikker på at du ønsker å avslutte OnionShare?", "gui_quit_warning_quit": "Avslutt", "gui_quit_warning_dont_quit": "Avbryt", - "error_rate_limit": "Noen har prøvd å gjette passordet ditt for mange ganger, så OnionShare har derfor stoppet tjeneren. Start deling igjen, og send mottakeren en ny adresse å dele.", "zip_progress_bar_format": "Pakker sammen: %p%", "error_stealth_not_supported": "For å bruke klientidentitetsbekreftelse, trenger du minst Tor 0.2.9.1-alpha (eller Tor-Browser 6.5) og python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare krever minst både Tor 0.2.7.1 og pything3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/nl.json b/desktop/src/onionshare/resources/locale/nl.json index 0e465476..ed70622a 100644 --- a/desktop/src/onionshare/resources/locale/nl.json +++ b/desktop/src/onionshare/resources/locale/nl.json @@ -42,7 +42,6 @@ "gui_share_quit_warning": "Je bent in het proces van bestanden versturen. Weet je zeker dat je OnionShare af wilt sluiten?", "gui_quit_warning_quit": "Afsluiten", "gui_quit_warning_dont_quit": "Annuleren", - "error_rate_limit": "Iemand heeft teveel incorrecte pogingen gedaan om je wachwoord te raden. Daarom heeft OnionShare de server gestopt. Herstart het delen en stuur de ontvanger een nieuw adres.", "zip_progress_bar_format": "Comprimeren: %p%", "error_stealth_not_supported": "Om client authorization te gebruiken heb je op zijn minst zowel Tor 0.2.9.1-alpha (of Tor Browser 6.5) en python3-stem 1.5.0 nodig.", "error_ephemeral_not_supported": "OnionShare vereist minstens zowel Tor 0.2.7.1 als python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/pa.json b/desktop/src/onionshare/resources/locale/pa.json index 68496d46..766e3a02 100644 --- a/desktop/src/onionshare/resources/locale/pa.json +++ b/desktop/src/onionshare/resources/locale/pa.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "ਬਾਹਰ", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/src/onionshare/resources/locale/pl.json index 2418775d..1a2f17a6 100644 --- a/desktop/src/onionshare/resources/locale/pl.json +++ b/desktop/src/onionshare/resources/locale/pl.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Odbierasz teraz pliki. Jesteś pewien, że chcesz wyjść z OnionShare?", "gui_quit_warning_quit": "Wyjście", "gui_quit_warning_dont_quit": "Anuluj", - "error_rate_limit": "Ktoś zbyt często próbował odczytać Twój adres, co może oznaczać, że ktoś próbuje go odgadnąć, zatem OnionShare zatrzymał serwer. Rozpocznij udostępnianie ponownie i wyślij odbiorcy nowy adres aby udostępniać Twoje pliki.", "zip_progress_bar_format": "Kompresuję: %p%", "error_stealth_not_supported": "Aby skorzystać z autoryzacji klienta wymagana jest wersja programu Tor 0.2.9.1-alpha lub nowsza, bądź Tor Browser w wersji 6.5 lub nowszej oraz python3-stem w wersji 1.5 lub nowszej.", "error_ephemeral_not_supported": "OnionShare wymaga programu Tor w wersji 0.2.7.1 lub nowszej oraz python3-stem w wersji 1.4.0 lub nowszej.", diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/src/onionshare/resources/locale/pt_BR.json index 553ffbe0..ebbef428 100644 --- a/desktop/src/onionshare/resources/locale/pt_BR.json +++ b/desktop/src/onionshare/resources/locale/pt_BR.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "O recebimento dos seus arquivos ainda não terminou. Você tem certeza de que quer sair do OnionShare?", "gui_quit_warning_quit": "Sair", "gui_quit_warning_dont_quit": "Cancelar", - "error_rate_limit": "Alguém tentou por várias vezes adivinhar sua senha. Por isso, o OnionShare interrompeu o servidor. Comece o compartilhamento novamente e envie um novo endereço ao seu destinatário para compartilhar.", "zip_progress_bar_format": "Comprimindo: %p%", "error_stealth_not_supported": "Para usar uma autorização de cliente, você precisa ao menos de Tor 0.2.9.1-alpha (ou Navegador Tor 6.5) e de python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare requer ao menos Tor 0.2.7.1 e python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/pt_PT.json b/desktop/src/onionshare/resources/locale/pt_PT.json index 21f0e05d..a699a5f3 100644 --- a/desktop/src/onionshare/resources/locale/pt_PT.json +++ b/desktop/src/onionshare/resources/locale/pt_PT.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Ainda não recebeu todos os seus ficheiros. Tem a certeza que que deseja sair do OnionShare?", "gui_quit_warning_quit": "Sair", "gui_quit_warning_dont_quit": "Cancelar", - "error_rate_limit": "Alguém tentou por várias vezes adivinhar a sua palavra-passe, por isso OnionShare parou o servidor. Inicie novamente a partilha e envie um novo endereço ao destinatário para partilhar.", "zip_progress_bar_format": "A comprimir: %p%", "error_stealth_not_supported": "Para utilizar uma autorização de cliente, precisa pelo menos do Tor 0.2.9.1-alpha (ou do Tor Browser 6.5) e do python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare requer pelo menos do Tor 0.2.7.1 e do python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/ro.json b/desktop/src/onionshare/resources/locale/ro.json index d38979d8..35dcedbf 100644 --- a/desktop/src/onionshare/resources/locale/ro.json +++ b/desktop/src/onionshare/resources/locale/ro.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "Sunteți în proces de primire fișiere. Sigur vreți să închideți OnionShare?", "gui_quit_warning_quit": "Închidere", "gui_quit_warning_dont_quit": "Anulare", - "error_rate_limit": "Cineva a făcut prea multe încercări greșite pentru a ghici parola, astfel încât OnionShare a oprit serverul. Începeți partajarea din nou și trimiteți destinatarului o nouă adresă de partajat.", "zip_progress_bar_format": "Compresare: %p%", "error_stealth_not_supported": "Pentru a folosi autorizarea clientului, aveți nevoie de versiunile minim Tor 0.2.9.1-alfa (sau Tor Browser 6.5) cât și de python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare are nevoie de minim versiunea Tor 0.2.7.1 cât și de Python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/ru.json b/desktop/src/onionshare/resources/locale/ru.json index 34ff05a0..967e87b6 100644 --- a/desktop/src/onionshare/resources/locale/ru.json +++ b/desktop/src/onionshare/resources/locale/ru.json @@ -77,7 +77,6 @@ "gui_quit_title": "Не так быстро", "gui_share_quit_warning": "Идёт процесс отправки файлов. Уверены, что хотите завершить работу OnionShare?", "gui_receive_quit_warning": "Идёт процесс получения файлов. Уверены, что хотите завершить работу OnionShare?", - "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.", diff --git a/desktop/src/onionshare/resources/locale/si.json b/desktop/src/onionshare/resources/locale/si.json index 506dd446..cb15cc72 100644 --- a/desktop/src/onionshare/resources/locale/si.json +++ b/desktop/src/onionshare/resources/locale/si.json @@ -31,7 +31,6 @@ "gui_qr_code_dialog_title": "", "gui_waiting_to_start": "", "gui_please_wait": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "gui_settings_window_title": "", "gui_settings_autoupdate_label": "", diff --git a/desktop/src/onionshare/resources/locale/sk.json b/desktop/src/onionshare/resources/locale/sk.json index 62c6f861..8ee83a28 100644 --- a/desktop/src/onionshare/resources/locale/sk.json +++ b/desktop/src/onionshare/resources/locale/sk.json @@ -32,7 +32,6 @@ "gui_qr_code_description": "Naskenujte tento QR kód pomocou čítačky QR, napríklad fotoaparátom na telefóne, aby ste mohli jednoduchšie zdieľať adresu OnionShare s niekým.", "gui_waiting_to_start": "Naplánované spustenie o {}. Kliknutím zrušíte.", "gui_please_wait": "Spúšťa sa... Kliknutím zrušíte.", - "error_rate_limit": "Niekto urobil príliš veľa zlých pokusov uhádnuť vaše heslo, takže OnionShare zastavil server. Začnite znova zdieľať a odošlite príjemcovi novú adresu na zdieľanie.", "zip_progress_bar_format": "Komprimovanie: %p%", "gui_settings_window_title": "Nastavenia", "gui_settings_autoupdate_label": "Skontrolovať novú verziu", diff --git a/desktop/src/onionshare/resources/locale/sl.json b/desktop/src/onionshare/resources/locale/sl.json index 7e02d0d2..52f14cce 100644 --- a/desktop/src/onionshare/resources/locale/sl.json +++ b/desktop/src/onionshare/resources/locale/sl.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "Izhod", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/sn.json b/desktop/src/onionshare/resources/locale/sn.json index f3e96a43..81b46cba 100644 --- a/desktop/src/onionshare/resources/locale/sn.json +++ b/desktop/src/onionshare/resources/locale/sn.json @@ -62,7 +62,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/sr_Latn.json b/desktop/src/onionshare/resources/locale/sr_Latn.json index dd1871ba..da986f48 100644 --- a/desktop/src/onionshare/resources/locale/sr_Latn.json +++ b/desktop/src/onionshare/resources/locale/sr_Latn.json @@ -32,7 +32,6 @@ "gui_receive_quit_warning": "Proces primanja datoteka u toku. Jeste li sigurni da želite da zaustavite OnionShare?", "gui_quit_warning_quit": "Izađi", "gui_quit_warning_dont_quit": "Odustani", - "error_rate_limit": "Neko je načinio suviše pogrešnih pokušaja da pogodi tvoju lozinku, tako da je OnionShare zaustavio server. Počni deljenje ponovo i pošalji primaocu novu adresu za deljenje.", "zip_progress_bar_format": "Komprimujem: %p%", "error_stealth_not_supported": "Da bi koristion klijen autorizaciju, potrebni su ti barem Tor 0.2.9.1-alpha (ili Tor Browser 6.5) i python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare zahteva barem Tor 0.2.7.1 i python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/src/onionshare/resources/locale/sv.json index 2bf7a97f..2c01abe5 100644 --- a/desktop/src/onionshare/resources/locale/sv.json +++ b/desktop/src/onionshare/resources/locale/sv.json @@ -60,7 +60,6 @@ "gui_receive_quit_warning": "Du håller på att ta emot filer. Är du säker på att du vill avsluta OnionShare?", "gui_quit_warning_quit": "Avsluta", "gui_quit_warning_dont_quit": "Avbryt", - "error_rate_limit": "Någon har gjort för många felförsök att gissa ditt lösenord, därför har OnionShare stoppat servern. Starta delning igen och skicka mottagaren en ny adress att dela.", "zip_progress_bar_format": "Komprimerar: %p%", "error_stealth_not_supported": "För att använda klientauktorisering behöver du minst både Tor 0.2.9.1-alpha (eller Tor Browser 6.5) och python3-stem 1.5.0.", "error_ephemeral_not_supported": "OnionShare kräver minst både Tor 0.2.7.1 och python3-stem 1.4.0.", diff --git a/desktop/src/onionshare/resources/locale/sw.json b/desktop/src/onionshare/resources/locale/sw.json index dc7dadb8..31eb72c5 100644 --- a/desktop/src/onionshare/resources/locale/sw.json +++ b/desktop/src/onionshare/resources/locale/sw.json @@ -31,7 +31,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/te.json b/desktop/src/onionshare/resources/locale/te.json index 50ed3a58..d1784090 100644 --- a/desktop/src/onionshare/resources/locale/te.json +++ b/desktop/src/onionshare/resources/locale/te.json @@ -31,7 +31,6 @@ "gui_receive_quit_warning": "మీరు దస్త్రాలను స్వీకరించే క్రమంలో ఉన్నారు. మీరు నిశ్చయంగా ఇప్పుడు OnionShareని విడిచి వెళ్ళాలనుకుంటున్నారా?", "gui_quit_warning_quit": "నిష్క్రమించు", "gui_quit_warning_dont_quit": "రద్దుచేయి", - "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 మరియు python-3-stem 1.4.0, ఈ రెండూ ఉండాలి.", diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json index d8ff16fe..e67436dc 100644 --- a/desktop/src/onionshare/resources/locale/tr.json +++ b/desktop/src/onionshare/resources/locale/tr.json @@ -48,7 +48,6 @@ "gui_receive_quit_warning": "Dosya alıyorsunuz. OnionShare uygulamasından çıkmak istediğinize emin misiniz?", "gui_quit_warning_quit": "Çık", "gui_quit_warning_dont_quit": "İptal", - "error_rate_limit": "Birisi parolanızı tahmin etmek için çok fazla yanlış girişimde bulundu, bu yüzden OnionShare sunucuyu durdurdu. Paylaşmayı tekrar başlatın ve alıcıya paylaşmanın yeni bir adresini gönderin.", "error_stealth_not_supported": "İstemci kimlik doğrulamasını kullanmak için, en az Tor 0.2.9.1-alpha (ya da Tor Browser 6.5) ve python3-stem 1.5.0 sürümleri gereklidir.", "error_ephemeral_not_supported": "OnionShare için en az Tor 0.2.7.1 ve python3-stem 1.4.0 sürümleri gereklidir.", "gui_settings_window_title": "Ayarlar", diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json index e5027ace..1d2a6bbf 100644 --- a/desktop/src/onionshare/resources/locale/uk.json +++ b/desktop/src/onionshare/resources/locale/uk.json @@ -31,7 +31,6 @@ "gui_receive_quit_warning": "Відбувається отримання файлів. Ви впевнені, що бажаєте вийти з OnionShare?", "gui_quit_warning_quit": "Вийти", "gui_quit_warning_dont_quit": "Відміна", - "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.", diff --git a/desktop/src/onionshare/resources/locale/wo.json b/desktop/src/onionshare/resources/locale/wo.json index 3ec01ad9..e0f37715 100644 --- a/desktop/src/onionshare/resources/locale/wo.json +++ b/desktop/src/onionshare/resources/locale/wo.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/src/onionshare/resources/locale/yo.json index 3cc23c31..5da034d1 100644 --- a/desktop/src/onionshare/resources/locale/yo.json +++ b/desktop/src/onionshare/resources/locale/yo.json @@ -60,7 +60,6 @@ "gui_receive_quit_warning": "", "gui_quit_warning_quit": "", "gui_quit_warning_dont_quit": "", - "error_rate_limit": "", "zip_progress_bar_format": "", "error_stealth_not_supported": "", "error_ephemeral_not_supported": "", diff --git a/desktop/src/onionshare/resources/locale/zh_Hans.json b/desktop/src/onionshare/resources/locale/zh_Hans.json index d15a372c..c3a91d20 100644 --- a/desktop/src/onionshare/resources/locale/zh_Hans.json +++ b/desktop/src/onionshare/resources/locale/zh_Hans.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "您有文件在接收中……确定要退出 OnionShare 吗?", "gui_quit_warning_quit": "退出", "gui_quit_warning_dont_quit": "取消", - "error_rate_limit": "有人发出了过多错误请求来猜测您的地址,因此 OinionShare 已停止服务。请重新开启共享并且向接收人发送新的共享地址。", "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。", diff --git a/desktop/src/onionshare/resources/locale/zh_Hant.json b/desktop/src/onionshare/resources/locale/zh_Hant.json index 7cfabf7d..29203837 100644 --- a/desktop/src/onionshare/resources/locale/zh_Hant.json +++ b/desktop/src/onionshare/resources/locale/zh_Hant.json @@ -59,7 +59,6 @@ "gui_receive_quit_warning": "仍在接收檔案,您確定要結束OnionShare嗎?", "gui_quit_warning_quit": "結束", "gui_quit_warning_dont_quit": "取消", - "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.", diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index c0c80368..1e7121bb 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -450,15 +450,6 @@ class Mode(QtWidgets.QWidget): """ pass - def handle_request_rate_limit(self, event): - """ - Handle REQUEST_RATE_LIMIT event. - """ - self.stop_server() - Alert( - self.common, strings._("error_rate_limit"), QtWidgets.QMessageBox.Critical - ) - def handle_request_progress(self, event): """ Handle REQUEST_PROGRESS event. diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py index b0f2a9ac..5d9bb077 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/src/onionshare/tab/tab.py @@ -531,9 +531,6 @@ class Tab(QtWidgets.QWidget): elif event["type"] == Web.REQUEST_STARTED: mode.handle_request_started(event) - elif event["type"] == Web.REQUEST_RATE_LIMIT: - mode.handle_request_rate_limit(event) - elif event["type"] == Web.REQUEST_PROGRESS: mode.handle_request_progress(event) diff --git a/flatpak/org.onionshare.OnionShare.yaml b/flatpak/org.onionshare.OnionShare.yaml index f09c80c5..f2ca9dcf 100644 --- a/flatpak/org.onionshare.OnionShare.yaml +++ b/flatpak/org.onionshare.OnionShare.yaml @@ -172,33 +172,6 @@ modules: - type: file url: https://files.pythonhosted.org/packages/10/27/a33329150147594eff0ea4c33c2036c0eadd933141055be0ff911f7f8d04/Werkzeug-1.0.1.tar.gz sha256: 6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c - - name: python3-flask-httpauth - buildsystem: simple - build-commands: - - pip3 install --exists-action=i --no-index --find-links="file://${PWD}" --prefix=${FLATPAK_DEST} - "flask-httpauth" - sources: - - type: file - url: https://files.pythonhosted.org/packages/4f/e7/65300e6b32e69768ded990494809106f87da1d436418d5f1367ed3966fd7/Jinja2-2.11.3.tar.gz - sha256: a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6 - - type: file - url: https://files.pythonhosted.org/packages/27/6f/be940c8b1f1d69daceeb0032fee6c34d7bd70e3e649ccac0951500b4720e/click-7.1.2.tar.gz - sha256: d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a - - type: file - url: https://files.pythonhosted.org/packages/2d/6a/e458a74c909899d136aa76cb4d707f0f600fba6ca0d603de681e8fcac91f/Flask-HTTPAuth-4.2.0.tar.gz - sha256: 8c7e49e53ce7dc14e66fe39b9334e4b7ceb8d0b99a6ba1c3562bb528ef9da84a - - type: file - url: https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz - sha256: 29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b - - type: file - url: https://files.pythonhosted.org/packages/68/1a/f27de07a8a304ad5fa817bbe383d1238ac4396da447fa11ed937039fa04b/itsdangerous-1.1.0.tar.gz - sha256: 321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19 - - type: file - url: https://files.pythonhosted.org/packages/4e/0b/cb02268c90e67545a0e3a37ea1ca3d45de3aca43ceb7dbf1712fb5127d5d/Flask-1.1.2.tar.gz - sha256: 4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060 - - type: file - url: https://files.pythonhosted.org/packages/10/27/a33329150147594eff0ea4c33c2036c0eadd933141055be0ff911f7f8d04/Werkzeug-1.0.1.tar.gz - sha256: 6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c - name: python3-flask-socketio buildsystem: simple build-commands: diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index e1c79e7e..fc1795e8 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -117,7 +117,6 @@ parts: - poetry - click - flask - - flask-httpauth - flask-socketio == 5.0.1 - pycryptodome - psutil From 268b27232f6400d31ad3620ab011eb98b2e25431 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 28 Aug 2021 09:41:31 +1000 Subject: [PATCH 54/55] Test that the Private Key button is not present in public mode, in GUI share tests --- desktop/tests/gui_base_test.py | 6 ++++++ desktop/tests/test_gui_share.py | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py index 83d170f1..ac2dfc54 100644 --- a/desktop/tests/gui_base_test.py +++ b/desktop/tests/gui_base_test.py @@ -435,6 +435,12 @@ class GuiBaseTest(unittest.TestCase): clipboard = tab.common.gui.qtapp.clipboard() self.assertEqual(clipboard.text(), "E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA") + def clientauth_is_not_visible(self, tab): + """Test that the ClientAuth button is not visible""" + self.assertFalse( + tab.get_mode().server_status.copy_client_auth_button.isVisible() + ) + def hit_405(self, url, expected_resp, data = {}, methods = [] ): """Test various HTTP methods and the response""" for method in methods: diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py index 87408d49..b7a66a81 100644 --- a/desktop/tests/test_gui_share.py +++ b/desktop/tests/test_gui_share.py @@ -507,6 +507,17 @@ class TestShare(GuiBaseTest): self.close_all_tabs() + # Now try in public mode + tab = self.new_share_tab() + 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) + self.clientauth_is_not_visible(tab) + + self.close_all_tabs() + + def test_405_page_returned_for_invalid_methods(self): """ Our custom 405 page should return for invalid methods From bca5bee2098915a94a469a8fa0532d74ad63604f Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Sat, 28 Aug 2021 10:34:51 +1000 Subject: [PATCH 55/55] Update documentation to note that ClientAuth is used in place of basic auth, and that legacy mode (v2 onions) no longer is possible --- docs/source/advanced.rst | 80 +++++++++++++----------------- docs/source/develop.rst | 104 +++++++++++++++++++-------------------- docs/source/features.rst | 18 ++++--- docs/source/security.rst | 6 +-- 4 files changed, 100 insertions(+), 108 deletions(-) diff --git a/docs/source/advanced.rst b/docs/source/advanced.rst index 5f3e6cd7..96f7141b 100644 --- a/docs/source/advanced.rst +++ b/docs/source/advanced.rst @@ -16,23 +16,23 @@ When a tab is saved a purple pin icon appears to the left of its server status. .. image:: _static/screenshots/advanced-save-tabs.png When you quit OnionShare and then open it again, your saved tabs will start opened. -You'll have to manually start each service, but when you do they will start with the same OnionShare address and password. +You'll have to manually start each service, but when you do they will start with the same OnionShare address and private key. If you save a tab, a copy of that tab's onion service secret key will be stored on your computer with your OnionShare settings. -.. _turn_off_passwords: +.. _turn_off_private_key: -Turn Off Passwords ------------------- +Turn Off Private Key +-------------------- -By default, all OnionShare services are protected with the username ``onionshare`` and a randomly-generated password. -If someone takes 20 wrong guesses at the password, your onion service is automatically stopped to prevent a brute force attack against the OnionShare service. +By default, all OnionShare services are protected with a private key, which Tor calls Client Authentication. + +When browsing to an OnionShare service in Tor Browser, Tor Browser will prompt for the private key to be entered. Sometimes you might want your OnionShare service to be accessible to the public, like if you want to set up an OnionShare receive service so the public can securely and anonymously send you files. -In this case, it's better to disable the password altogether. -If you don't do this, someone can force your server to stop just by making 20 wrong guesses of your password, even if they know the correct password. +In this case, it's better to disable the private key altogether. -To turn off the password for any tab, just check the "Don't use a password" box before starting the server. Then the server will be public and won't have a password. +To turn off the private key for any tab, check the "This is a public OnionShare service (disables private key)" box before starting the server. Then the server will be public and won't need a private key to view in Tor Browser. .. _custom_titles: @@ -106,11 +106,14 @@ You can browse the command-line documentation by running ``onionshare --help``:: │ https://onionshare.org/ │ ╰───────────────────────────────────────────╯ - usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME] - [--persistent FILENAME] [--title TITLE] [--public] [--auto-start-timer SECONDS] - [--auto-stop-timer SECONDS] [--legacy] [--client-auth] [--no-autostop-sharing] [--data-dir data_dir] - [--webhook-url webhook_url] [--disable-text] [--disable-files] [--disable_csp] [-v] - [filename ...] + usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] + [--connect-timeout SECONDS] [--config FILENAME] + [--persistent FILENAME] [--title TITLE] [--public] + [--auto-start-timer SECONDS] [--auto-stop-timer SECONDS] + [--no-autostop-sharing] [--data-dir data_dir] + [--webhook-url webhook_url] [--disable-text] + [--disable-files] [--disable_csp] [-v] + [filename [filename ...]] positional arguments: filename List of files or folders to share @@ -122,44 +125,29 @@ You can browse the command-line documentation by running ``onionshare --help``:: --chat Start chat server --local-only Don't use Tor (only for development) --connect-timeout SECONDS - Give up connecting to Tor after a given amount of seconds (default: 120) + Give up connecting to Tor after a given amount of + seconds (default: 120) --config FILENAME Filename of custom global settings --persistent FILENAME Filename of persistent session --title TITLE Set a title - --public Don't use a password + --public Don't use a private key --auto-start-timer SECONDS - Start onion service at scheduled time (N seconds from now) + Start onion service at scheduled time (N seconds + from now) --auto-stop-timer SECONDS - Stop onion service at schedule time (N seconds from now) - --legacy Use legacy address (v2 onion service, not recommended) - --client-auth Use client authorization (requires --legacy) - --no-autostop-sharing Share files: Continue sharing after files have been sent (default is to stop sharing) - --data-dir data_dir Receive files: Save files received to this directory + Stop onion service at schedule time (N seconds + from now) + --no-autostop-sharing Share files: Continue sharing after files have + been sent (default is to stop sharing) + --data-dir data_dir Receive files: Save files received to this + directory --webhook-url webhook_url - Receive files: URL to receive webhook notifications + Receive files: URL to receive webhook + notifications --disable-text Receive files: Disable receiving text messages --disable-files Receive files: Disable receiving files - --disable_csp Publish website: Disable Content Security Policy header (allows your website to use third-party + --disable_csp Publish website: Disable Content Security Policy + header (allows your website to use third-party resources) - -v, --verbose Log OnionShare errors to stdout, and web errors to disk - -Legacy Addresses ----------------- - -OnionShare uses v3 Tor onion services by default. -These are modern onion addresses that have 56 characters, for example:: - - uf3wmtpbstcupvrrsetrtct7qcmnqvdcsxqzxthxbx2y7tidatxye7id.onion - -OnionShare still has support for v2 onion addresses, the old type of onion addresses that have 16 characters, for example:: - - lc7j6u55vhrh45eq.onion - -OnionShare calls v2 onion addresses "legacy addresses", and they are not recommended, as v3 onion addresses are more secure. - -To use legacy addresses, before starting a server click "Show advanced settings" from its tab and check the "Use a legacy address (v2 onion service, not recommended)" box. -In legacy mode you can optionally turn on Tor client authentication. -Once you start a server in legacy mode you cannot remove legacy mode in that tab. -Instead you must start a separate service in a separate tab. - -Tor Project plans to `completely deprecate v2 onion services `_ on October 15, 2021, and legacy onion services will be removed from OnionShare before then. + -v, --verbose Log OnionShare errors to stdout, and web errors to + disk diff --git a/docs/source/develop.rst b/docs/source/develop.rst index fc6f0c92..5b08c921 100644 --- a/docs/source/develop.rst +++ b/docs/source/develop.rst @@ -63,57 +63,54 @@ This prints a lot of helpful messages to the terminal, such as when certain obje │ https://onionshare.org/ │ ╰───────────────────────────────────────────╯ - [May 10 2021 18:24:02] Settings.__init__ - [May 10 2021 18:24:02] Settings.load - [May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json - [May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt - [May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt - [May 10 2021 18:24:02] ModeSettings.load: creating /home/user/.config/onionshare/persistent/tattered-handgun-stress.json - [May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.title = None - [May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.public = False - [May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostart_timer = 0 - [May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostop_timer = 0 - [May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.legacy = False - [May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.client_auth = False - [May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: share.autostop_sharing = True - [May 10 2021 18:24:02] Web.__init__: is_gui=False, mode=share - [May 10 2021 18:24:02] Common.get_resource_path: filename=static - [May 10 2021 18:24:02] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static - [May 10 2021 18:24:02] Common.get_resource_path: filename=templates - [May 10 2021 18:24:02] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates - [May 10 2021 18:24:02] Web.generate_static_url_path: new static_url_path is /static_4yxrx2mzi5uzkblklpzd46mwke - [May 10 2021 18:24:02] ShareModeWeb.init - [May 10 2021 18:24:02] Onion.__init__ - [May 10 2021 18:24:02] Onion.connect - [May 10 2021 18:24:02] Settings.__init__ - [May 10 2021 18:24:02] Settings.load - [May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json - [May 10 2021 18:24:02] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpw6u0nz8l - [May 10 2021 18:24:02] Common.get_resource_path: filename=torrc_template - [May 10 2021 18:24:02] Common.get_resource_path: filename=torrc_template, path=/home/user/code/onionshare/cli/onionshare_cli/resources/torrc_template + [Aug 28 2021 10:32:39] Settings.__init__ + [Aug 28 2021 10:32:39] Settings.load + [Aug 28 2021 10:32:39] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json + [Aug 28 2021 10:32:39] Common.get_resource_path: filename=wordlist.txt + [Aug 28 2021 10:32:39] Common.get_resource_path: filename=wordlist.txt, path=/home/user/git/onionshare/cli/onionshare_cli/resources/wordlist.txt + [Aug 28 2021 10:32:39] ModeSettings.load: creating /home/user/.config/onionshare/persistent/dreamy-stiffen-moving.json + [Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: general.title = None + [Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: general.public = False + [Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: general.autostart_timer = 0 + [Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: general.autostop_timer = 0 + [Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: share.autostop_sharing = True + [Aug 28 2021 10:32:39] Web.__init__: is_gui=False, mode=share + [Aug 28 2021 10:32:39] Common.get_resource_path: filename=static + [Aug 28 2021 10:32:39] Common.get_resource_path: filename=static, path=/home/user/git/onionshare/cli/onionshare_cli/resources/static + [Aug 28 2021 10:32:39] Common.get_resource_path: filename=templates + [Aug 28 2021 10:32:39] Common.get_resource_path: filename=templates, path=/home/user/git/onionshare/cli/onionshare_cli/resources/templates + [Aug 28 2021 10:32:39] Web.generate_static_url_path: new static_url_path is /static_3tix3w3s5feuzlhii3zwqb2gpq + [Aug 28 2021 10:32:39] ShareModeWeb.init + [Aug 28 2021 10:32:39] Onion.__init__ + [Aug 28 2021 10:32:39] Onion.connect + [Aug 28 2021 10:32:39] Settings.__init__ + [Aug 28 2021 10:32:39] Settings.load + [Aug 28 2021 10:32:39] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json + [Aug 28 2021 10:32:39] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmppb7kvf4k + [Aug 28 2021 10:32:39] Common.get_resource_path: filename=torrc_template + [Aug 28 2021 10:32:39] Common.get_resource_path: filename=torrc_template, path=/home/user/git/onionshare/cli/onionshare_cli/resources/torrc_template Connecting to the Tor network: 100% - Done - [May 10 2021 18:24:10] Onion.connect: Connected to tor 0.4.5.7 - [May 10 2021 18:24:10] Settings.load - [May 10 2021 18:24:10] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json - [May 10 2021 18:24:10] Web.generate_password: saved_password=None - [May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt - [May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt - [May 10 2021 18:24:10] Web.generate_password: built random password: "tipping-colonize" - [May 10 2021 18:24:10] OnionShare.__init__ - [May 10 2021 18:24:10] OnionShare.start_onion_service - [May 10 2021 18:24:10] Onion.start_onion_service: port=17645 - [May 10 2021 18:24:10] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3 - [May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: general.service_id = omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd - [May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: onion.private_key = 6PhomJCjlWicmOyAAe0wnQoEM3vcyHBivrRGDy0hzm900fW5ITDJ6iv2+tluLoueYj81MhmnYeTOHDm8UGOfhg== + [Aug 28 2021 10:32:56] Onion.connect: Connected to tor 0.4.6.7 + [Aug 28 2021 10:32:56] Settings.load + [Aug 28 2021 10:32:56] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json + [Aug 28 2021 10:32:56] OnionShare.__init__ + [Aug 28 2021 10:32:56] OnionShare.start_onion_service + [Aug 28 2021 10:32:56] Onion.start_onion_service: port=17609 + [Aug 28 2021 10:32:56] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3 + [Aug 28 2021 10:33:03] ModeSettings.set: updating dreamy-stiffen-moving: general.service_id = sobp4rklarkz34mcog3pqtkb4t5bvyxv3dazvsqmfyhw4imqj446ffqd + [Aug 28 2021 10:33:03] ModeSettings.set: updating dreamy-stiffen-moving: onion.private_key = sFiznwaPWJdKmFXumdDLkJGdUUdjI/0TWo+l/QEZiE/XoVogjK9INNoz2Tf8vmpe66ssa85En+5w6F2kKyTstA== + [Aug 28 2021 10:33:03] ModeSettings.set: updating dreamy-stiffen-moving: onion.client_auth_priv_key = YL6YIEMZS6J537Y5ZKEA2Z6IIQEWFK2CMGTWK5G3DGGUREHJSJNQ + [Aug 28 2021 10:33:03] ModeSettings.set: updating dreamy-stiffen-moving: onion.client_auth_pub_key = 5HUL6RCPQ5VEFDOHCSRAHPFIB74EHVFJO6JJHDP76EDWVRJE2RJQ Compressing files. - [May 10 2021 18:24:14] ShareModeWeb.init - [May 10 2021 18:24:14] ShareModeWeb.set_file_info_custom - [May 10 2021 18:24:14] ShareModeWeb.build_zipfile_list - [May 10 2021 18:24:14] Web.start: port=17645 - * Running on http://127.0.0.1:17645/ (Press CTRL+C to quit) + [Aug 28 2021 10:33:03] ShareModeWeb.init + [Aug 28 2021 10:33:03] ShareModeWeb.set_file_info_custom + [Aug 28 2021 10:33:03] ShareModeWeb.build_zipfile_list + [Aug 28 2021 10:33:03] Web.start: port=17609 + * Running on http://127.0.0.1:17609/ (Press CTRL+C to quit) - Give this address to the recipient: - http://onionshare:tipping-colonize@omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd.onion + Give this address and private key to the recipient: + http://sobp4rklarkz34mcog3pqtkb4t5bvyxv3dazvsqmfyhw4imqj446ffqd.onion + Private key: YL6YIEMZS6J537Y5ZKEA2Z6IIQEWFK2CMGTWK5G3DGGUREHJSJNQ Press Ctrl+C to stop the server @@ -153,18 +150,19 @@ You can do this with the ``--local-only`` flag. For example:: │ https://onionshare.org/ │ ╰───────────────────────────────────────────╯ - * Running on http://127.0.0.1:17617/ (Press CTRL+C to quit) + * Running on http://127.0.0.1:17621/ (Press CTRL+C to quit) Files sent to you appear in this folder: /home/user/OnionShare Warning: Receive mode lets people upload files to your computer. Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing. - Give this address to the sender: - http://onionshare:ended-blah@127.0.0.1:17617 + Give this address and private key to the sender: + http://127.0.0.1:17621 + Private key: E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA Press Ctrl+C to stop the server -In this case, you load the URL ``http://onionshare:train-system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of using the Tor Browser. +In this case, you load the URL ``http://127.0.0.1:17621`` in a normal web-browser like Firefox, instead of using the Tor Browser. The Private key is not actually needed in local-only mode, so you can ignore it. Contributing Translations ------------------------- @@ -186,4 +184,4 @@ Status of Translations Here is the current translation status. If you want start a translation in a language not yet started, please write to the mailing list: onionshare-dev@lists.riseup.net -.. image:: https://hosted.weblate.org/widgets/onionshare/-/translations/multi-auto.svg \ No newline at end of file +.. image:: https://hosted.weblate.org/widgets/onionshare/-/translations/multi-auto.svg diff --git a/docs/source/features.rst b/docs/source/features.rst index 7c3368f9..0c72809b 100644 --- a/docs/source/features.rst +++ b/docs/source/features.rst @@ -5,14 +5,20 @@ How OnionShare Works Web servers are started locally on your computer and made accessible to other people as `Tor `_ `onion services `_. -By default, OnionShare web addresses are protected with a random password. A typical OnionShare address might look something like this:: +By default, OnionShare web addresses are protected with a private key (Client Authentication). A typical OnionShare address might look something like this:: - http://onionshare:constrict-purity@by4im3ir5nsvygprmjq74xwplrkdgt44qmeapxawwikxacmr3dqzyjad.onion + http://by4im3ir5nsvygprmjq74xwplrkdgt44qmeapxawwikxacmr3dqzyjad.onion -You're responsible for securely sharing that URL using a communication channel of your choice like in an encrypted chat message, or using something less secure like unencrypted e-mail, depending on your `threat model `_. +And the Private key might look something like this:: + + EM6UK3LFM7PFLX63DVZIUQQPW5JV5KO6PB3TP3YNA4OLB3OH7AQA + +You're responsible for securely sharing that URL, and the private key, using a communication channel of your choice like in an encrypted chat message, or using something less secure like unencrypted e-mail, depending on your `threat model `_. The people you send the URL to then copy and paste it into their `Tor Browser `_ to access the OnionShare service. +Tor Browser will then prompt for the private key in an authentication dialog, which the person can also then copy and paste in. + If you run OnionShare on your laptop to send someone files, and then suspend it before the files are sent, the service will not be available until your laptop is unsuspended and on the Internet again. OnionShare works best when working with people in real-time. Because your own computer is the web server, *no third party can access anything that happens in OnionShare*, not even the developers of OnionShare. It's completely private. And because OnionShare is based on Tor onion services too, it also protects your anonymity. See the :doc:`security design ` for more info. @@ -39,7 +45,7 @@ When you're ready to share, click the "Start sharing" button. You can always cli Now that you have a OnionShare, copy the address and send it to the person you want to receive the files. If the files need to stay secure, or the person is otherwise exposed to danger, use an encrypted messaging app. -That person then must load the address in Tor Browser. After logging in with the random password included in the web address, the files can be downloaded directly from your computer by clicking the "Download Files" link in the corner. +That person then must load the address in Tor Browser. After logging in with the private key, the files can be downloaded directly from your computer by clicking the "Download Files" link in the corner. .. image:: _static/screenshots/share-torbrowser.png @@ -88,7 +94,7 @@ Tips for running a receive service If you want to host your own anonymous dropbox using OnionShare, it's recommended you do so on a separate, dedicated computer always powered on and connected to the Internet, and not on the one you use on a regular basis. -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`). +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_private_key`). It's also a good idea to give it a custom title (see :ref:`custom_titles`). Host a Website -------------- @@ -118,7 +124,7 @@ Tips for running a website service If you want to host a long-term website using OnionShare (meaning not something to quickly show someone something), it's recommended you do it on a separate, dedicated computer always powered on and connected to the Internet, and not on the one you use on a regular basis. Save the tab (see :ref:`save_tabs`) so you can resume the website with the same address if you close OnionShare and re-open it later. -If your website is intended for the public, you should run it as a public service (see :ref:`turn_off_passwords`). +If your website is intended for the public, you should run it as a public service (see :ref:`turn_off_private_key`). Chat Anonymously ---------------- diff --git a/docs/source/security.rst b/docs/source/security.rst index b56c7ff8..93ed3bce 100644 --- a/docs/source/security.rst +++ b/docs/source/security.rst @@ -14,11 +14,11 @@ What OnionShare protects against **Anonymity of OnionShare users are protected by Tor.** OnionShare and Tor Browser protect the anonymity of the users. As long as the OnionShare user anonymously communicates the OnionShare address with the Tor Browser users, the Tor Browser users and eavesdroppers can't learn the identity of the OnionShare user. -**If an attacker learns about the onion service, it still can't access anything.** Prior attacks against the Tor network to enumerate onion services allowed the attacker to discover private .onion addresses. If an attack discovers a private OnionShare address, a password will be prevent them from accessing it (unless the OnionShare user chooses to turn it off and make it public). The password is generated by choosing two random words from a list of 6800 words, making 6800², or about 46 million possible passwords. Only 20 wrong guesses can be made before OnionShare stops the server, preventing brute force attacks against the password. +**If an attacker learns about the onion service, it still can't access anything.** Prior attacks against the Tor network to enumerate onion services allowed the attacker to discover private .onion addresses. If an attack discovers a private OnionShare address, but not the private key used for Client Authentication, they will be prevented from accessing it (unless the OnionShare user chooses to turn off the private key and make it public - see :ref:`turn_off_private_key`). What OnionShare doesn't protect against --------------------------------------- -**Communicating the OnionShare address might not be secure.** Communicating the OnionShare address to people is the responsibility of the OnionShare user. If sent insecurely (such as through an email message monitored by an attacker), an eavesdropper can tell that OnionShare is being used. If the eavesdropper loads the address in Tor Browser while the service is still up, they can access it. To avoid this, the address must be communicateed securely, via encrypted text message (probably with disappearing messages enabled), encrypted email, or in person. This isn't necessary when using OnionShare for something that isn't secret. +**Communicating the OnionShare address and private key might not be secure.** Communicating the OnionShare address to people is the responsibility of the OnionShare user. If sent insecurely (such as through an email message monitored by an attacker), an eavesdropper can tell that OnionShare is being used. If the eavesdropper loads the address in Tor Browser while the service is still up, they can access it. To avoid this, the address must be communicateed securely, via encrypted text message (probably with disappearing messages enabled), encrypted email, or in person. This isn't necessary when using OnionShare for something that isn't secret. -**Communicating the OnionShare address might not be anonymous.** Extra precautions must be taken to ensure the OnionShare address is communicated anonymously. A new email or chat account, only accessed over Tor, can be used to share the address. This isn't necessary unless anonymity is a goal. +**Communicating the OnionShare address and private key might not be anonymous.** Extra precautions must be taken to ensure the OnionShare address is communicated anonymously. A new email or chat account, only accessed over Tor, can be used to share the address. This isn't necessary unless anonymity is a goal.