mirror of
https://github.com/onionshare/onionshare.git
synced 2025-01-12 15:59:30 -05:00
Merge pull request #1404 from mig5/client_auth_v3
Support ClientAuth (a.k.a 'stealth') on v3 onions with Tor 0.4.6.x
This commit is contained in:
commit
cf9dfad1c6
@ -38,14 +38,6 @@ from .onionshare import OnionShare
|
|||||||
from .mode_settings import ModeSettings
|
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):
|
def main(cwd=None):
|
||||||
"""
|
"""
|
||||||
The main() function implements all of the logic that the command-line version of
|
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",
|
action="store_true",
|
||||||
dest="public",
|
dest="public",
|
||||||
default=False,
|
default=False,
|
||||||
help="Don't use a password",
|
help="Don't use a private key",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--auto-start-timer",
|
"--auto-start-timer",
|
||||||
@ -129,20 +121,6 @@ def main(cwd=None):
|
|||||||
default=0,
|
default=0,
|
||||||
help="Stop onion service at schedule time (N seconds from now)",
|
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 client authorization (requires --legacy)",
|
|
||||||
)
|
|
||||||
# Share args
|
# Share args
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--no-autostop-sharing",
|
"--no-autostop-sharing",
|
||||||
@ -215,8 +193,6 @@ def main(cwd=None):
|
|||||||
public = bool(args.public)
|
public = bool(args.public)
|
||||||
autostart_timer = int(args.autostart_timer)
|
autostart_timer = int(args.autostart_timer)
|
||||||
autostop_timer = int(args.autostop_timer)
|
autostop_timer = int(args.autostop_timer)
|
||||||
legacy = bool(args.legacy)
|
|
||||||
client_auth = bool(args.client_auth)
|
|
||||||
autostop_sharing = not bool(args.no_autostop_sharing)
|
autostop_sharing = not bool(args.no_autostop_sharing)
|
||||||
data_dir = args.data_dir
|
data_dir = args.data_dir
|
||||||
webhook_url = args.webhook_url
|
webhook_url = args.webhook_url
|
||||||
@ -237,13 +213,6 @@ def main(cwd=None):
|
|||||||
# Verbose mode?
|
# Verbose mode?
|
||||||
common.verbose = verbose
|
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 with legacy onion services (--legacy)"
|
|
||||||
)
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
# Re-load settings, if a custom config was passed in
|
# Re-load settings, if a custom config was passed in
|
||||||
if config_filename:
|
if config_filename:
|
||||||
common.load_settings(config_filename)
|
common.load_settings(config_filename)
|
||||||
@ -264,8 +233,6 @@ def main(cwd=None):
|
|||||||
mode_settings.set("general", "public", public)
|
mode_settings.set("general", "public", public)
|
||||||
mode_settings.set("general", "autostart_timer", autostart_timer)
|
mode_settings.set("general", "autostart_timer", autostart_timer)
|
||||||
mode_settings.set("general", "autostop_timer", autostop_timer)
|
mode_settings.set("general", "autostop_timer", autostop_timer)
|
||||||
mode_settings.set("general", "legacy", legacy)
|
|
||||||
mode_settings.set("general", "client_auth", client_auth)
|
|
||||||
if mode == "share":
|
if mode == "share":
|
||||||
mode_settings.set("share", "autostop_sharing", autostop_sharing)
|
mode_settings.set("share", "autostop_sharing", autostop_sharing)
|
||||||
if mode == "receive":
|
if mode == "receive":
|
||||||
@ -352,11 +319,6 @@ def main(cwd=None):
|
|||||||
try:
|
try:
|
||||||
common.settings.load()
|
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
|
# Receive mode needs to know the tor proxy details for webhooks
|
||||||
if mode == "receive":
|
if mode == "receive":
|
||||||
if local_only:
|
if local_only:
|
||||||
@ -381,7 +343,7 @@ def main(cwd=None):
|
|||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
app.start_onion_service(mode, mode_settings, False)
|
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)
|
schedule = datetime.now() + timedelta(seconds=autostart_timer)
|
||||||
if mode == "receive":
|
if mode == "receive":
|
||||||
print(
|
print(
|
||||||
@ -394,21 +356,21 @@ def main(cwd=None):
|
|||||||
"what you are doing."
|
"what you are doing."
|
||||||
)
|
)
|
||||||
print("")
|
print("")
|
||||||
if mode_settings.get("general", "client_auth"):
|
if not mode_settings.get("general", "public"):
|
||||||
print(
|
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 private key 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)
|
print(f"Private key: {app.auth_string}")
|
||||||
else:
|
else:
|
||||||
print(
|
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')}"
|
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:
|
else:
|
||||||
if mode_settings.get("general", "client_auth"):
|
if not mode_settings.get("general", "public"):
|
||||||
print(
|
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')}"
|
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(app.auth_string)
|
print(f"Private key: {app.auth_string}")
|
||||||
else:
|
else:
|
||||||
print(
|
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')}"
|
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')}"
|
||||||
@ -426,7 +388,6 @@ def main(cwd=None):
|
|||||||
sys.exit()
|
sys.exit()
|
||||||
except (TorTooOldEphemeral, TorTooOldStealth, TorErrorProtocolError) as e:
|
except (TorTooOldEphemeral, TorTooOldStealth, TorErrorProtocolError) as e:
|
||||||
print("")
|
print("")
|
||||||
print(e.args[0])
|
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
if mode == "website":
|
if mode == "website":
|
||||||
@ -458,21 +419,14 @@ def main(cwd=None):
|
|||||||
t.start()
|
t.start()
|
||||||
|
|
||||||
try: # Trap Ctrl-C
|
try: # Trap Ctrl-C
|
||||||
# Wait for web.generate_password() to finish running
|
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
|
|
||||||
# start auto-stop timer thread
|
# start auto-stop timer thread
|
||||||
if app.autostop_timer > 0:
|
if app.autostop_timer > 0:
|
||||||
app.autostop_timer_thread.start()
|
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
|
# Build the URL
|
||||||
url = build_url(mode_settings, app, web)
|
url = f"http://{app.onion_host}"
|
||||||
|
|
||||||
print("")
|
print("")
|
||||||
if autostart_timer > 0:
|
if autostart_timer > 0:
|
||||||
@ -490,21 +444,21 @@ def main(cwd=None):
|
|||||||
)
|
)
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
if mode_settings.get("general", "client_auth"):
|
if mode_settings.get("general", "public"):
|
||||||
print("Give this address and HidServAuth to the sender:")
|
|
||||||
print(url)
|
|
||||||
print(app.auth_string)
|
|
||||||
else:
|
|
||||||
print("Give this address to the sender:")
|
print("Give this address to the sender:")
|
||||||
print(url)
|
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)
|
|
||||||
else:
|
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("Give this address to the recipient:")
|
||||||
print(url)
|
print(url)
|
||||||
|
else:
|
||||||
|
print("Give this address and private key to the recipient:")
|
||||||
|
print(url)
|
||||||
|
print(f"Private key: {app.auth_string}")
|
||||||
print("")
|
print("")
|
||||||
print("Press Ctrl+C to stop the server")
|
print("Press Ctrl+C to stop the server")
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@ class ModeSettings:
|
|||||||
self.default_settings = {
|
self.default_settings = {
|
||||||
"onion": {
|
"onion": {
|
||||||
"private_key": None,
|
"private_key": None,
|
||||||
"hidservauth_string": None,
|
"client_auth_priv_key": None,
|
||||||
"password": None,
|
"client_auth_pub_key": None,
|
||||||
},
|
},
|
||||||
"persistent": {"mode": None, "enabled": False},
|
"persistent": {"mode": None, "enabled": False},
|
||||||
"general": {
|
"general": {
|
||||||
@ -46,8 +46,6 @@ class ModeSettings:
|
|||||||
"public": False,
|
"public": False,
|
||||||
"autostart_timer": False,
|
"autostart_timer": False,
|
||||||
"autostop_timer": False,
|
"autostop_timer": False,
|
||||||
"legacy": False,
|
|
||||||
"client_auth": False,
|
|
||||||
"service_id": None,
|
"service_id": None,
|
||||||
},
|
},
|
||||||
"share": {"autostop_sharing": True, "filenames": []},
|
"share": {"autostop_sharing": True, "filenames": []},
|
||||||
|
@ -21,8 +21,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
from stem.control import Controller
|
from stem.control import Controller
|
||||||
from stem import ProtocolError, SocketClosed
|
from stem import ProtocolError, SocketClosed
|
||||||
from stem.connection import MissingPassword, UnreadableCookieFile, AuthenticationFailure
|
from stem.connection import MissingPassword, UnreadableCookieFile, AuthenticationFailure
|
||||||
from Crypto.PublicKey import RSA
|
|
||||||
import base64
|
import base64
|
||||||
|
import nacl.public
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
import subprocess
|
import subprocess
|
||||||
@ -170,6 +170,20 @@ class Onion(object):
|
|||||||
# Keep track of onions where it's important to gracefully close to prevent truncated downloads
|
# Keep track of onions where it's important to gracefully close to prevent truncated downloads
|
||||||
self.graceful_close_onions = []
|
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(
|
def connect(
|
||||||
self,
|
self,
|
||||||
custom_settings=None,
|
custom_settings=None,
|
||||||
@ -570,14 +584,15 @@ class Onion(object):
|
|||||||
callable(list_ephemeral_hidden_services) and self.tor_version >= "0.2.7.1"
|
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 v3 stealth onion services?
|
||||||
try:
|
try:
|
||||||
res = self.c.create_ephemeral_hidden_service(
|
res = self.c.create_ephemeral_hidden_service(
|
||||||
{1: 1},
|
{1: 1},
|
||||||
basic_auth={"onionshare": None},
|
basic_auth=None,
|
||||||
await_publication=False,
|
await_publication=False,
|
||||||
key_type="NEW",
|
key_type="NEW",
|
||||||
key_content="RSA1024",
|
key_content="ED25519-V3",
|
||||||
|
client_auth_v3="E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA",
|
||||||
)
|
)
|
||||||
tmp_service_id = res.service_id
|
tmp_service_id = res.service_id
|
||||||
self.c.remove_ephemeral_hidden_service(tmp_service_id)
|
self.c.remove_ephemeral_hidden_service(tmp_service_id)
|
||||||
@ -612,65 +627,58 @@ class Onion(object):
|
|||||||
"Your version of Tor is too old, ephemeral onion services are not supported"
|
"Your version of Tor is too old, ephemeral onion services are not supported"
|
||||||
)
|
)
|
||||||
raise TorTooOldEphemeral()
|
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()
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if mode_settings.get("onion", "private_key"):
|
if mode_settings.get("onion", "private_key"):
|
||||||
key_content = mode_settings.get("onion", "private_key")
|
key_content = mode_settings.get("onion", "private_key")
|
||||||
if self.is_v2_key(key_content):
|
key_type = "ED25519-V3"
|
||||||
key_type = "RSA1024"
|
|
||||||
else:
|
|
||||||
# Assume it was a v3 key. Stem will throw an error if it's something illegible
|
|
||||||
key_type = "ED25519-V3"
|
|
||||||
else:
|
else:
|
||||||
|
key_content = "ED25519-V3"
|
||||||
key_type = "NEW"
|
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"):
|
|
||||||
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/onionshare/onionshare/issues/697
|
|
||||||
if (
|
|
||||||
key_type == "NEW"
|
|
||||||
and key_content == "ED25519-V3"
|
|
||||||
and not mode_settings.get("general", "legacy")
|
|
||||||
):
|
|
||||||
basic_auth = None
|
|
||||||
|
|
||||||
debug_message = f"key_type={key_type}"
|
debug_message = f"key_type={key_type}"
|
||||||
if key_type == "NEW":
|
if key_type == "NEW":
|
||||||
debug_message += f", key_content={key_content}"
|
debug_message += f", key_content={key_content}"
|
||||||
self.common.log("Onion", "start_onion_service", debug_message)
|
self.common.log("Onion", "start_onion_service", debug_message)
|
||||||
|
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
raise TorTooOldStealth()
|
||||||
|
else:
|
||||||
|
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_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_priv_key = mode_settings.get("onion", "client_auth_priv_key")
|
||||||
|
client_auth_pub_key = mode_settings.get("onion", "client_auth_pub_key")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
res = self.c.create_ephemeral_hidden_service(
|
if not self.supports_stealth:
|
||||||
{80: port},
|
res = self.c.create_ephemeral_hidden_service(
|
||||||
await_publication=await_publication,
|
{80: port},
|
||||||
basic_auth=basic_auth,
|
await_publication=await_publication,
|
||||||
key_type=key_type,
|
basic_auth=None,
|
||||||
key_content=key_content,
|
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_pub_key,
|
||||||
|
)
|
||||||
|
|
||||||
except ProtocolError as e:
|
except ProtocolError as e:
|
||||||
print("Tor error: {}".format(e.args[0]))
|
print("Tor error: {}".format(e.args[0]))
|
||||||
@ -688,12 +696,20 @@ class Onion(object):
|
|||||||
# Save the private key and hidservauth string
|
# Save the private key and hidservauth string
|
||||||
if not mode_settings.get("onion", "private_key"):
|
if not mode_settings.get("onion", "private_key"):
|
||||||
mode_settings.set("onion", "private_key", res.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"
|
# 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 (if we restart this
|
||||||
auth_cookie = list(res.client_auth.values())[0]
|
# same share at a later date), and the private key to the other user for
|
||||||
self.auth_string = f"HidServAuth {onion_host} {auth_cookie}"
|
# their Tor Browser.
|
||||||
mode_settings.set("onion", "hidservauth_string", self.auth_string)
|
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,
|
||||||
|
# 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_priv_key}"
|
||||||
|
self.auth_string = client_auth_priv_key
|
||||||
|
|
||||||
return onion_host
|
return onion_host
|
||||||
|
|
||||||
@ -825,15 +841,3 @@ class Onion(object):
|
|||||||
return ("127.0.0.1", 9150)
|
return ("127.0.0.1", 9150)
|
||||||
else:
|
else:
|
||||||
return (self.settings.get("socks_address"), self.settings.get("socks_port"))
|
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 Exception:
|
|
||||||
return False
|
|
||||||
|
@ -74,13 +74,15 @@ class OnionShare(object):
|
|||||||
|
|
||||||
if self.local_only:
|
if self.local_only:
|
||||||
self.onion_host = f"127.0.0.1:{self.port}"
|
self.onion_host = f"127.0.0.1:{self.port}"
|
||||||
|
if not mode_settings.get("general", "public"):
|
||||||
|
self.auth_string = "E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA"
|
||||||
return
|
return
|
||||||
|
|
||||||
self.onion_host = self.onion.start_onion_service(
|
self.onion_host = self.onion.start_onion_service(
|
||||||
mode, mode_settings, self.port, await_publication
|
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
|
self.auth_string = self.onion.auth_string
|
||||||
|
|
||||||
def stop_onion_service(self, mode_settings):
|
def stop_onion_service(self, mode_settings):
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>OnionShare: 401 Unauthorized Access</title>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<link href="{{ static_url_path }}/img/favicon.ico" rel="icon" type="image/x-icon" />
|
|
||||||
<link rel="stylesheet" rel="subresource" type="text/css" href="{{ static_url_path }}/css/style.css" media="all">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="info-wrapper">
|
|
||||||
<div class="info">
|
|
||||||
<p><img class="logo" src="{{ static_url_path }}/img/logo_large.png" title="OnionShare"></p>
|
|
||||||
<p class="info-header">401 Unauthorized Access</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -34,7 +34,6 @@ from flask import (
|
|||||||
send_file,
|
send_file,
|
||||||
__version__ as flask_version,
|
__version__ as flask_version,
|
||||||
)
|
)
|
||||||
from flask_httpauth import HTTPBasicAuth
|
|
||||||
from flask_socketio import SocketIO
|
from flask_socketio import SocketIO
|
||||||
|
|
||||||
from .share_mode import ShareModeWeb
|
from .share_mode import ShareModeWeb
|
||||||
@ -64,18 +63,16 @@ class Web:
|
|||||||
REQUEST_STARTED = 1
|
REQUEST_STARTED = 1
|
||||||
REQUEST_PROGRESS = 2
|
REQUEST_PROGRESS = 2
|
||||||
REQUEST_CANCELED = 3
|
REQUEST_CANCELED = 3
|
||||||
REQUEST_RATE_LIMIT = 4
|
REQUEST_UPLOAD_INCLUDES_MESSAGE = 4
|
||||||
REQUEST_UPLOAD_INCLUDES_MESSAGE = 5
|
REQUEST_UPLOAD_FILE_RENAMED = 5
|
||||||
REQUEST_UPLOAD_FILE_RENAMED = 6
|
REQUEST_UPLOAD_SET_DIR = 6
|
||||||
REQUEST_UPLOAD_SET_DIR = 7
|
REQUEST_UPLOAD_FINISHED = 7
|
||||||
REQUEST_UPLOAD_FINISHED = 8
|
REQUEST_UPLOAD_CANCELED = 8
|
||||||
REQUEST_UPLOAD_CANCELED = 9
|
REQUEST_INDIVIDUAL_FILE_STARTED = 9
|
||||||
REQUEST_INDIVIDUAL_FILE_STARTED = 10
|
REQUEST_INDIVIDUAL_FILE_PROGRESS = 10
|
||||||
REQUEST_INDIVIDUAL_FILE_PROGRESS = 11
|
REQUEST_INDIVIDUAL_FILE_CANCELED = 11
|
||||||
REQUEST_INDIVIDUAL_FILE_CANCELED = 12
|
REQUEST_ERROR_DATA_DIR_CANNOT_CREATE = 12
|
||||||
REQUEST_ERROR_DATA_DIR_CANNOT_CREATE = 13
|
REQUEST_OTHER = 13
|
||||||
REQUEST_OTHER = 14
|
|
||||||
REQUEST_INVALID_PASSWORD = 15
|
|
||||||
|
|
||||||
def __init__(self, common, is_gui, mode_settings, mode="share"):
|
def __init__(self, common, is_gui, mode_settings, mode="share"):
|
||||||
self.common = common
|
self.common = common
|
||||||
@ -92,8 +89,6 @@ class Web:
|
|||||||
)
|
)
|
||||||
self.app.secret_key = self.common.random_string(8)
|
self.app.secret_key = self.common.random_string(8)
|
||||||
self.generate_static_url_path()
|
self.generate_static_url_path()
|
||||||
self.auth = HTTPBasicAuth()
|
|
||||||
self.auth.error_handler(self.error401)
|
|
||||||
|
|
||||||
# Verbose mode?
|
# Verbose mode?
|
||||||
if self.common.verbose:
|
if self.common.verbose:
|
||||||
@ -132,9 +127,6 @@ class Web:
|
|||||||
]
|
]
|
||||||
|
|
||||||
self.q = queue.Queue()
|
self.q = queue.Queue()
|
||||||
self.password = None
|
|
||||||
|
|
||||||
self.reset_invalid_passwords()
|
|
||||||
|
|
||||||
self.done = False
|
self.done = False
|
||||||
|
|
||||||
@ -199,28 +191,6 @@ class Web:
|
|||||||
Common web app routes between all modes.
|
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)
|
@self.app.errorhandler(404)
|
||||||
def not_found(e):
|
def not_found(e):
|
||||||
mode = self.get_mode()
|
mode = self.get_mode()
|
||||||
@ -260,31 +230,6 @@ class Web:
|
|||||||
f"{self.common.get_resource_path('static')}/img/favicon.ico"
|
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):
|
def error403(self):
|
||||||
self.add_request(Web.REQUEST_OTHER, request.path)
|
self.add_request(Web.REQUEST_OTHER, request.path)
|
||||||
r = make_response(
|
r = make_response(
|
||||||
@ -362,21 +307,6 @@ class Web:
|
|||||||
"""
|
"""
|
||||||
self.q.put({"type": request_type, "path": path, "data": data})
|
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):
|
def verbose_mode(self):
|
||||||
"""
|
"""
|
||||||
Turn on verbose mode, which will log flask errors to a file.
|
Turn on verbose mode, which will log flask errors to a file.
|
||||||
@ -386,10 +316,6 @@ class Web:
|
|||||||
log_handler.setLevel(logging.WARNING)
|
log_handler.setLevel(logging.WARNING)
|
||||||
self.app.logger.addHandler(log_handler)
|
self.app.logger.addHandler(log_handler)
|
||||||
|
|
||||||
def reset_invalid_passwords(self):
|
|
||||||
self.invalid_passwords_count = 0
|
|
||||||
self.invalid_passwords = []
|
|
||||||
|
|
||||||
def force_shutdown(self):
|
def force_shutdown(self):
|
||||||
"""
|
"""
|
||||||
Stop the flask web server, from the context of the flask app.
|
Stop the flask web server, from the context of the flask app.
|
||||||
@ -446,18 +372,9 @@ class Web:
|
|||||||
# To stop flask, load http://shutdown:[shutdown_password]@127.0.0.1/[shutdown_password]/shutdown
|
# 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)
|
# (We're putting the shutdown_password in the path as well to make routing simpler)
|
||||||
if self.running:
|
if self.running:
|
||||||
if self.password:
|
requests.get(
|
||||||
requests.get(
|
f"http://127.0.0.1:{port}/{self.shutdown_password}/shutdown"
|
||||||
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
|
|
||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
"""
|
"""
|
||||||
|
460
cli/poetry.lock
generated
460
cli/poetry.lock
generated
@ -1,32 +1,33 @@
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "atomicwrites"
|
|
||||||
version = "1.4.0"
|
|
||||||
description = "Atomic file writes."
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "Atomic file writes."
|
||||||
|
marker = "sys_platform == \"win32\""
|
||||||
|
name = "atomicwrites"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.4.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "attrs"
|
|
||||||
version = "21.2.0"
|
|
||||||
description = "Classes Without Boilerplate"
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "Classes Without Boilerplate"
|
||||||
|
name = "attrs"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "21.2.0"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"]
|
dev = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"]
|
||||||
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
|
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
|
||||||
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
|
tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
|
||||||
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
|
tests_no_zope = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bidict"
|
|
||||||
version = "0.21.2"
|
|
||||||
description = "The bidirectional mapping library for Python."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "The bidirectional mapping library for Python."
|
||||||
|
name = "bidict"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = ">=3.6"
|
||||||
|
version = "0.21.2"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
coverage = ["coverage (<6)", "pytest-cov (<3)"]
|
coverage = ["coverage (<6)", "pytest-cov (<3)"]
|
||||||
@ -36,56 +37,67 @@ precommit = ["pre-commit (<3)"]
|
|||||||
test = ["hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)"]
|
test = ["hypothesis (<6)", "py (<2)", "pytest (<7)", "pytest-benchmark (>=3.2.0,<4)", "sortedcollections (<2)", "sortedcontainers (<3)", "Sphinx (<4)", "sphinx-autodoc-typehints (<2)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "certifi"
|
|
||||||
version = "2021.5.30"
|
|
||||||
description = "Python package for providing Mozilla's CA Bundle."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Python package for providing Mozilla's CA Bundle."
|
||||||
|
name = "certifi"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
version = "2021.5.30"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "chardet"
|
category = "main"
|
||||||
version = "4.0.0"
|
description = "Foreign Function Interface for Python calling C code."
|
||||||
|
name = "cffi"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
version = "1.14.6"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pycparser = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
description = "Universal encoding detector for Python 2 and 3"
|
description = "Universal encoding detector for Python 2 and 3"
|
||||||
category = "main"
|
name = "chardet"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "4.0.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "click"
|
category = "main"
|
||||||
version = "7.1.2"
|
|
||||||
description = "Composable command line interface toolkit"
|
description = "Composable command line interface toolkit"
|
||||||
category = "main"
|
name = "click"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "7.1.2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "colorama"
|
category = "main"
|
||||||
version = "0.4.4"
|
|
||||||
description = "Cross-platform colored terminal text."
|
description = "Cross-platform colored terminal text."
|
||||||
category = "main"
|
name = "colorama"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "0.4.4"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dnspython"
|
|
||||||
version = "1.16.0"
|
|
||||||
description = "DNS toolkit"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "DNS toolkit"
|
||||||
|
name = "dnspython"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.16.0"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
DNSSEC = ["pycryptodome", "ecdsa (>=0.13)"]
|
DNSSEC = ["pycryptodome", "ecdsa (>=0.13)"]
|
||||||
IDNA = ["idna (>=2.1)"]
|
IDNA = ["idna (>=2.1)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "eventlet"
|
|
||||||
version = "0.31.0"
|
|
||||||
description = "Highly concurrent networking library"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Highly concurrent networking library"
|
||||||
|
name = "eventlet"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
version = "0.31.0"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
dnspython = ">=1.15.0,<2.0.0"
|
dnspython = ">=1.15.0,<2.0.0"
|
||||||
@ -93,18 +105,18 @@ greenlet = ">=0.3"
|
|||||||
six = ">=1.10.0"
|
six = ">=1.10.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "flask"
|
|
||||||
version = "1.1.4"
|
|
||||||
description = "A simple framework for building complex web applications."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "A simple framework for building complex web applications."
|
||||||
|
name = "flask"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "1.1.4"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
click = ">=5.1,<8.0"
|
|
||||||
itsdangerous = ">=0.24,<2.0"
|
|
||||||
Jinja2 = ">=2.10.1,<3.0"
|
Jinja2 = ">=2.10.1,<3.0"
|
||||||
Werkzeug = ">=0.15,<2.0"
|
Werkzeug = ">=0.15,<2.0"
|
||||||
|
click = ">=5.1,<8.0"
|
||||||
|
itsdangerous = ">=0.24,<2.0"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
|
dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
|
||||||
@ -112,86 +124,79 @@ docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-
|
|||||||
dotenv = ["python-dotenv"]
|
dotenv = ["python-dotenv"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "flask-httpauth"
|
|
||||||
version = "4.4.0"
|
|
||||||
description = "Basic and Digest HTTP authentication for Flask routes"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
Flask = "*"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "flask-socketio"
|
|
||||||
version = "5.0.1"
|
|
||||||
description = "Socket.IO integration for Flask applications"
|
description = "Socket.IO integration for Flask applications"
|
||||||
category = "main"
|
name = "flask-socketio"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
version = "5.0.1"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
Flask = ">=0.9"
|
Flask = ">=0.9"
|
||||||
python-socketio = ">=5.0.2"
|
python-socketio = ">=5.0.2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "greenlet"
|
|
||||||
version = "1.1.0"
|
|
||||||
description = "Lightweight in-process concurrent programming"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Lightweight in-process concurrent programming"
|
||||||
|
name = "greenlet"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
|
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
|
||||||
|
version = "1.1.0"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
docs = ["sphinx"]
|
docs = ["sphinx"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "idna"
|
|
||||||
version = "2.10"
|
|
||||||
description = "Internationalized Domain Names in Applications (IDNA)"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Internationalized Domain Names in Applications (IDNA)"
|
||||||
|
name = "idna"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "2.10"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "importlib-metadata"
|
|
||||||
version = "4.4.0"
|
|
||||||
description = "Read metadata from Python packages"
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "Read metadata from Python packages"
|
||||||
|
marker = "python_version < \"3.8\""
|
||||||
|
name = "importlib-metadata"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = ">=3.6"
|
||||||
|
version = "4.4.0"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
|
|
||||||
zipp = ">=0.5"
|
zipp = ">=0.5"
|
||||||
|
|
||||||
|
[package.dependencies.typing-extensions]
|
||||||
|
python = "<3.8"
|
||||||
|
version = ">=3.6.4"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
||||||
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
|
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "iniconfig"
|
|
||||||
version = "1.1.1"
|
|
||||||
description = "iniconfig: brain-dead simple config-ini parsing"
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "iniconfig: brain-dead simple config-ini parsing"
|
||||||
|
name = "iniconfig"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
version = "1.1.1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itsdangerous"
|
|
||||||
version = "1.1.0"
|
|
||||||
description = "Various helpers to pass data to untrusted environments and back."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Various helpers to pass data to untrusted environments and back."
|
||||||
|
name = "itsdangerous"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.1.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jinja2"
|
|
||||||
version = "2.11.3"
|
|
||||||
description = "A very fast and expressive template engine."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "A very fast and expressive template engine."
|
||||||
|
name = "jinja2"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "2.11.3"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
MarkupSafe = ">=0.23"
|
MarkupSafe = ">=0.23"
|
||||||
@ -200,122 +205,143 @@ MarkupSafe = ">=0.23"
|
|||||||
i18n = ["Babel (>=0.8)"]
|
i18n = ["Babel (>=0.8)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "markupsafe"
|
|
||||||
version = "2.0.1"
|
|
||||||
description = "Safely add untrusted strings to HTML/XML markup."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Safely add untrusted strings to HTML/XML markup."
|
||||||
|
name = "markupsafe"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = ">=3.6"
|
||||||
|
version = "2.0.1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "packaging"
|
|
||||||
version = "20.9"
|
|
||||||
description = "Core utilities for Python packages"
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "Core utilities for Python packages"
|
||||||
|
name = "packaging"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "20.9"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
pyparsing = ">=2.0.2"
|
pyparsing = ">=2.0.2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pluggy"
|
|
||||||
version = "0.13.1"
|
|
||||||
description = "plugin and hook calling mechanisms for python"
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "plugin and hook calling mechanisms for python"
|
||||||
|
name = "pluggy"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "0.13.1"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
|
[package.dependencies.importlib-metadata]
|
||||||
|
python = "<3.8"
|
||||||
|
version = ">=0.12"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
dev = ["pre-commit", "tox"]
|
dev = ["pre-commit", "tox"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "psutil"
|
|
||||||
version = "5.8.0"
|
|
||||||
description = "Cross-platform lib for process and system monitoring in Python."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Cross-platform lib for process and system monitoring in Python."
|
||||||
|
name = "psutil"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "5.8.0"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"]
|
test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "py"
|
category = "dev"
|
||||||
version = "1.10.0"
|
|
||||||
description = "library with cross-python path, ini-parsing, io, code, log facilities"
|
description = "library with cross-python path, ini-parsing, io, code, log facilities"
|
||||||
category = "dev"
|
name = "py"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.10.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pycryptodome"
|
|
||||||
version = "3.10.1"
|
|
||||||
description = "Cryptographic library for Python"
|
|
||||||
category = "main"
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
|
||||||
|
|
||||||
[[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"
|
category = "main"
|
||||||
|
description = "C parser in Python"
|
||||||
|
name = "pycparser"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "2.20"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pytest"
|
category = "main"
|
||||||
version = "6.2.4"
|
description = "Python binding to the Networking and Cryptography (NaCl) library"
|
||||||
description = "pytest: simple powerful testing with Python"
|
name = "pynacl"
|
||||||
category = "dev"
|
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.4.0"
|
||||||
|
|
||||||
[package.dependencies]
|
[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.4"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
atomicwrites = ">=1.0"
|
||||||
attrs = ">=19.2.0"
|
attrs = ">=19.2.0"
|
||||||
colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
colorama = "*"
|
||||||
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
|
|
||||||
iniconfig = "*"
|
iniconfig = "*"
|
||||||
packaging = "*"
|
packaging = "*"
|
||||||
pluggy = ">=0.12,<1.0.0a1"
|
pluggy = ">=0.12,<1.0.0a1"
|
||||||
py = ">=1.8.2"
|
py = ">=1.8.2"
|
||||||
toml = "*"
|
toml = "*"
|
||||||
|
|
||||||
|
[package.dependencies.importlib-metadata]
|
||||||
|
python = "<3.8"
|
||||||
|
version = ">=0.12"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
|
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "python-engineio"
|
|
||||||
version = "4.2.0"
|
|
||||||
description = "Engine.IO server"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Engine.IO server"
|
||||||
|
name = "python-engineio"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
version = "4.2.0"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
asyncio_client = ["aiohttp (>=3.4)"]
|
asyncio_client = ["aiohttp (>=3.4)"]
|
||||||
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
|
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "python-socketio"
|
|
||||||
version = "5.3.0"
|
|
||||||
description = "Socket.IO server"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Socket.IO server"
|
||||||
|
name = "python-socketio"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
version = "5.3.0"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
bidict = ">=0.21.0"
|
bidict = ">=0.21.0"
|
||||||
@ -326,105 +352,114 @@ asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"]
|
|||||||
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
|
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "requests"
|
|
||||||
version = "2.25.1"
|
|
||||||
description = "Python HTTP for Humans."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Python HTTP for Humans."
|
||||||
|
name = "requests"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "2.25.1"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
certifi = ">=2017.4.17"
|
certifi = ">=2017.4.17"
|
||||||
chardet = ">=3.0.2,<5"
|
chardet = ">=3.0.2,<5"
|
||||||
idna = ">=2.5,<3"
|
idna = ">=2.5,<3"
|
||||||
PySocks = {version = ">=1.5.6,<1.5.7 || >1.5.7", optional = true, markers = "extra == \"socks\""}
|
|
||||||
urllib3 = ">=1.21.1,<1.27"
|
urllib3 = ">=1.21.1,<1.27"
|
||||||
|
|
||||||
|
[package.dependencies.PySocks]
|
||||||
|
optional = true
|
||||||
|
version = ">=1.5.6,<1.5.7 || >1.5.7"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
|
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
|
||||||
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
|
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "six"
|
|
||||||
version = "1.16.0"
|
|
||||||
description = "Python 2 and 3 compatibility utilities"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "Python 2 and 3 compatibility utilities"
|
||||||
|
name = "six"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
|
version = "1.16.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "stem"
|
|
||||||
version = "1.8.0"
|
|
||||||
description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = ""
|
||||||
|
name = "stem"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
version = "1.8.1"
|
||||||
|
|
||||||
|
[package.source]
|
||||||
|
reference = "de3d03a03c7ee57c74c80e9c63cb88072d833717"
|
||||||
|
type = "git"
|
||||||
|
url = "https://github.com/onionshare/stem.git"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "toml"
|
|
||||||
version = "0.10.2"
|
|
||||||
description = "Python Library for Tom's Obvious, Minimal Language"
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "Python Library for Tom's Obvious, Minimal Language"
|
||||||
|
name = "toml"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
|
version = "0.10.2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typing-extensions"
|
|
||||||
version = "3.10.0.0"
|
|
||||||
description = "Backported and Experimental Type Hints for Python 3.5+"
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "Backported and Experimental Type Hints for Python 3.5+"
|
||||||
|
marker = "python_version < \"3.8\""
|
||||||
|
name = "typing-extensions"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
version = "3.10.0.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unidecode"
|
|
||||||
version = "1.2.0"
|
|
||||||
description = "ASCII transliterations of Unicode text"
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "ASCII transliterations of Unicode text"
|
||||||
|
name = "unidecode"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.2.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "urllib3"
|
|
||||||
version = "1.26.5"
|
|
||||||
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
||||||
|
name = "urllib3"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
|
||||||
|
version = "1.26.5"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
brotli = ["brotlipy (>=0.6.0)"]
|
brotli = ["brotlipy (>=0.6.0)"]
|
||||||
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
|
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
|
||||||
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "werkzeug"
|
|
||||||
version = "1.0.1"
|
|
||||||
description = "The comprehensive WSGI web application library."
|
|
||||||
category = "main"
|
category = "main"
|
||||||
|
description = "The comprehensive WSGI web application library."
|
||||||
|
name = "werkzeug"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "1.0.1"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"]
|
dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"]
|
||||||
watchdog = ["watchdog"]
|
watchdog = ["watchdog"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zipp"
|
|
||||||
version = "3.4.1"
|
|
||||||
description = "Backport of pathlib-compatible object wrapper for zip files"
|
|
||||||
category = "dev"
|
category = "dev"
|
||||||
|
description = "Backport of pathlib-compatible object wrapper for zip files"
|
||||||
|
marker = "python_version < \"3.8\""
|
||||||
|
name = "zipp"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = ">=3.6"
|
||||||
|
version = "3.4.1"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
||||||
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
|
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
|
||||||
|
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.1"
|
content-hash = "181891640e59dac730905019444d42ef8e99da0c34c96fb8a616781661bae537"
|
||||||
python-versions = "^3.6"
|
python-versions = "^3.6"
|
||||||
content-hash = "b33fc47db907e6db7cb254b5cac34b0d9558547418e8074280063159b291766a"
|
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
atomicwrites = [
|
atomicwrites = [
|
||||||
@ -443,6 +478,53 @@ certifi = [
|
|||||||
{file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"},
|
{file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"},
|
||||||
{file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"},
|
{file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"},
|
||||||
]
|
]
|
||||||
|
cffi = [
|
||||||
|
{file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"},
|
||||||
|
{file = "cffi-1.14.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99"},
|
||||||
|
{file = "cffi-1.14.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819"},
|
||||||
|
{file = "cffi-1.14.6-cp27-cp27m-win32.whl", hash = "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20"},
|
||||||
|
{file = "cffi-1.14.6-cp27-cp27m-win_amd64.whl", hash = "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224"},
|
||||||
|
{file = "cffi-1.14.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7"},
|
||||||
|
{file = "cffi-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33"},
|
||||||
|
{file = "cffi-1.14.6-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534"},
|
||||||
|
{file = "cffi-1.14.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a"},
|
||||||
|
{file = "cffi-1.14.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5"},
|
||||||
|
{file = "cffi-1.14.6-cp35-cp35m-win32.whl", hash = "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca"},
|
||||||
|
{file = "cffi-1.14.6-cp35-cp35m-win_amd64.whl", hash = "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218"},
|
||||||
|
{file = "cffi-1.14.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f"},
|
||||||
|
{file = "cffi-1.14.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872"},
|
||||||
|
{file = "cffi-1.14.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195"},
|
||||||
|
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d"},
|
||||||
|
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b"},
|
||||||
|
{file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb"},
|
||||||
|
{file = "cffi-1.14.6-cp36-cp36m-win32.whl", hash = "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a"},
|
||||||
|
{file = "cffi-1.14.6-cp36-cp36m-win_amd64.whl", hash = "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e"},
|
||||||
|
{file = "cffi-1.14.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5"},
|
||||||
|
{file = "cffi-1.14.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf"},
|
||||||
|
{file = "cffi-1.14.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"},
|
||||||
|
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56"},
|
||||||
|
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c"},
|
||||||
|
{file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762"},
|
||||||
|
{file = "cffi-1.14.6-cp37-cp37m-win32.whl", hash = "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771"},
|
||||||
|
{file = "cffi-1.14.6-cp37-cp37m-win_amd64.whl", hash = "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a"},
|
||||||
|
{file = "cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0"},
|
||||||
|
{file = "cffi-1.14.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e"},
|
||||||
|
{file = "cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346"},
|
||||||
|
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc"},
|
||||||
|
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd"},
|
||||||
|
{file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc"},
|
||||||
|
{file = "cffi-1.14.6-cp38-cp38-win32.whl", hash = "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548"},
|
||||||
|
{file = "cffi-1.14.6-cp38-cp38-win_amd64.whl", hash = "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156"},
|
||||||
|
{file = "cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d"},
|
||||||
|
{file = "cffi-1.14.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e"},
|
||||||
|
{file = "cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c"},
|
||||||
|
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202"},
|
||||||
|
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f"},
|
||||||
|
{file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87"},
|
||||||
|
{file = "cffi-1.14.6-cp39-cp39-win32.whl", hash = "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728"},
|
||||||
|
{file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"},
|
||||||
|
{file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"},
|
||||||
|
]
|
||||||
chardet = [
|
chardet = [
|
||||||
{file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
|
{file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
|
||||||
{file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
|
{file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
|
||||||
@ -467,10 +549,6 @@ flask = [
|
|||||||
{file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"},
|
{file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"},
|
||||||
{file = "Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196"},
|
{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 = [
|
flask-socketio = [
|
||||||
{file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"},
|
{file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"},
|
||||||
{file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"},
|
{file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"},
|
||||||
@ -547,12 +625,22 @@ jinja2 = [
|
|||||||
{file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"},
|
{file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"},
|
||||||
]
|
]
|
||||||
markupsafe = [
|
markupsafe = [
|
||||||
|
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
|
||||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
|
{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_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-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_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-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-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
|
||||||
{file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
|
{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-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-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
|
||||||
@ -561,14 +649,21 @@ markupsafe = [
|
|||||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
|
{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-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-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
|
||||||
{file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
|
{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-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
|
||||||
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
|
{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_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-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_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-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-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
|
||||||
{file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
|
{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-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_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
|
||||||
@ -578,6 +673,9 @@ markupsafe = [
|
|||||||
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
|
{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-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-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
|
||||||
|
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
|
||||||
{file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
|
{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-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
|
||||||
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
|
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
|
||||||
@ -624,37 +722,29 @@ py = [
|
|||||||
{file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"},
|
{file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"},
|
||||||
{file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
|
{file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
|
||||||
]
|
]
|
||||||
pycryptodome = [
|
pycparser = [
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1c5e1ca507de2ad93474be5cfe2bfa76b7cf039a1a32fc196f40935944871a06"},
|
{file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:6260e24d41149268122dd39d4ebd5941e9d107f49463f7e071fd397e29923b0c"},
|
{file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
|
||||||
{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"},
|
pynacl = [
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:e61e363d9a5d7916f3a4ce984a929514c0df3daf3b1b2eb5e6edbb131ee771cf"},
|
{file = "PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:2603c98ae04aac675fefcf71a6c87dc4bb74a75e9071ae3923bbc91a59f08d35"},
|
{file = "PyNaCl-1.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27m-win32.whl", hash = "sha256:38661348ecb71476037f1e1f553159b80d256c00f6c0b00502acac891f7116d9"},
|
{file = "PyNaCl-1.4.0-cp27-cp27m-win32.whl", hash = "sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27m-win_amd64.whl", hash = "sha256:1723ebee5561628ce96748501cdaa7afaa67329d753933296321f0be55358dce"},
|
{file = "PyNaCl-1.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:77997519d8eb8a4adcd9a47b9cec18f9b323e296986528186c0e9a7a15d6a07e"},
|
{file = "PyNaCl-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:99b2f3fc51d308286071d0953f92055504a6ffe829a832a9fc7a04318a7683dd"},
|
{file = "PyNaCl-1.4.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:e0a4d5933a88a2c98bbe19c0c722f5483dc628d7a38338ac2cb64a7dbd34064b"},
|
{file = "PyNaCl-1.4.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d3d6958d53ad307df5e8469cc44474a75393a434addf20ecd451f38a72fe29b8"},
|
{file = "PyNaCl-1.4.0-cp35-abi3-win32.whl", hash = "sha256:4e10569f8cbed81cb7526ae137049759d2a8d57726d52c1a000a3ce366779634"},
|
||||||
{file = "pycryptodome-3.10.1-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:a8eb8b6ea09ec1c2535bf39914377bc8abcab2c7d30fa9225eb4fe412024e427"},
|
{file = "PyNaCl-1.4.0-cp35-abi3-win_amd64.whl", hash = "sha256:c914f78da4953b33d4685e3cdc7ce63401247a21425c16a39760e282075ac4a6"},
|
||||||
{file = "pycryptodome-3.10.1-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:31c1df17b3dc5f39600a4057d7db53ac372f492c955b9b75dd439f5d8b460129"},
|
{file = "PyNaCl-1.4.0-cp35-cp35m-win32.whl", hash = "sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4"},
|
||||||
{file = "pycryptodome-3.10.1-cp35-abi3-manylinux1_i686.whl", hash = "sha256:a3105a0eb63eacf98c2ecb0eb4aa03f77f40fbac2bdde22020bb8a536b226bb8"},
|
{file = "PyNaCl-1.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25"},
|
||||||
{file = "pycryptodome-3.10.1-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:a92d5c414e8ee1249e850789052608f582416e82422502dc0ac8c577808a9067"},
|
{file = "PyNaCl-1.4.0-cp36-cp36m-win32.whl", hash = "sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4"},
|
||||||
{file = "pycryptodome-3.10.1-cp35-abi3-manylinux2010_i686.whl", hash = "sha256:60386d1d4cfaad299803b45a5bc2089696eaf6cdd56f9fc17479a6f89595cfc8"},
|
{file = "PyNaCl-1.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6"},
|
||||||
{file = "pycryptodome-3.10.1-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:501ab36aae360e31d0ec370cf5ce8ace6cb4112060d099b993bc02b36ac83fb6"},
|
{file = "PyNaCl-1.4.0-cp37-cp37m-win32.whl", hash = "sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f"},
|
||||||
{file = "pycryptodome-3.10.1-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:fc7489a50323a0df02378bc2fff86eb69d94cc5639914346c736be981c6a02e7"},
|
{file = "PyNaCl-1.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f"},
|
||||||
{file = "pycryptodome-3.10.1-cp35-abi3-win32.whl", hash = "sha256:9b6f711b25e01931f1c61ce0115245a23cdc8b80bf8539ac0363bdcf27d649b6"},
|
{file = "PyNaCl-1.4.0-cp38-cp38-win32.whl", hash = "sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96"},
|
||||||
{file = "pycryptodome-3.10.1-cp35-abi3-win_amd64.whl", hash = "sha256:7fd519b89585abf57bf47d90166903ec7b43af4fe23c92273ea09e6336af5c07"},
|
{file = "PyNaCl-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420"},
|
||||||
{file = "pycryptodome-3.10.1-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:09c1555a3fa450e7eaca41ea11cd00afe7c91fef52353488e65663777d8524e0"},
|
{file = "PyNaCl-1.4.0.tar.gz", hash = "sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505"},
|
||||||
{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"},
|
|
||||||
]
|
]
|
||||||
pyparsing = [
|
pyparsing = [
|
||||||
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
|
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
|
||||||
@ -685,9 +775,7 @@ six = [
|
|||||||
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
||||||
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
||||||
]
|
]
|
||||||
stem = [
|
stem = []
|
||||||
{file = "stem-1.8.0.tar.gz", hash = "sha256:a0b48ea6224e95f22aa34c0bc3415f0eb4667ddeae3dfb5e32a6920c185568c2"},
|
|
||||||
]
|
|
||||||
toml = [
|
toml = [
|
||||||
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
|
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
|
||||||
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
|
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
|
||||||
|
@ -19,18 +19,17 @@ classifiers = [
|
|||||||
python = "^3.6"
|
python = "^3.6"
|
||||||
click = "*"
|
click = "*"
|
||||||
flask = "1.1.4"
|
flask = "1.1.4"
|
||||||
flask-httpauth = "*"
|
|
||||||
flask-socketio = "5.0.1"
|
flask-socketio = "5.0.1"
|
||||||
psutil = "*"
|
psutil = "*"
|
||||||
pycryptodome = "*"
|
|
||||||
pysocks = "*"
|
pysocks = "*"
|
||||||
requests = {extras = ["socks"], version = "*"}
|
requests = {extras = ["socks"], version = "*"}
|
||||||
stem = "*"
|
|
||||||
unidecode = "*"
|
unidecode = "*"
|
||||||
urllib3 = "*"
|
urllib3 = "*"
|
||||||
eventlet = "*"
|
eventlet = "*"
|
||||||
setuptools = "*"
|
setuptools = "*"
|
||||||
|
pynacl = "^1.4.0"
|
||||||
colorama = "*"
|
colorama = "*"
|
||||||
|
stem = {git = "https://github.com/onionshare/stem.git", rev = "1.8.1"}
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
pytest = "*"
|
pytest = "*"
|
||||||
|
@ -48,7 +48,6 @@ def web_obj(temp_dir, common_obj, mode, num_files=0):
|
|||||||
common_obj.settings = Settings(common_obj)
|
common_obj.settings = Settings(common_obj)
|
||||||
mode_settings = ModeSettings(common_obj)
|
mode_settings = ModeSettings(common_obj)
|
||||||
web = Web(common_obj, False, mode_settings, mode)
|
web = Web(common_obj, False, mode_settings, mode)
|
||||||
web.generate_password()
|
|
||||||
web.running = True
|
web.running = True
|
||||||
|
|
||||||
web.cleanup_filenames == []
|
web.cleanup_filenames == []
|
||||||
@ -75,23 +74,13 @@ class TestWeb:
|
|||||||
web = web_obj(temp_dir, common_obj, "share", 3)
|
web = web_obj(temp_dir, common_obj, "share", 3)
|
||||||
assert web.mode == "share"
|
assert web.mode == "share"
|
||||||
with web.app.test_client() as c:
|
with web.app.test_client() as c:
|
||||||
# Load / without auth
|
# Load /
|
||||||
res = c.get("/")
|
res = c.get("/")
|
||||||
res.get_data()
|
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
|
assert res.status_code == 200
|
||||||
|
|
||||||
# Download
|
# Download
|
||||||
res = c.get("/download", headers=self._make_auth_headers(web.password))
|
res = c.get("/download")
|
||||||
res.get_data()
|
res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
assert (
|
assert (
|
||||||
@ -107,7 +96,7 @@ class TestWeb:
|
|||||||
|
|
||||||
with web.app.test_client() as c:
|
with web.app.test_client() as c:
|
||||||
# Download the first time
|
# Download the first time
|
||||||
res = c.get("/download", headers=self._make_auth_headers(web.password))
|
res = c.get("/download")
|
||||||
res.get_data()
|
res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
assert (
|
assert (
|
||||||
@ -127,7 +116,7 @@ class TestWeb:
|
|||||||
|
|
||||||
with web.app.test_client() as c:
|
with web.app.test_client() as c:
|
||||||
# Download the first time
|
# Download the first time
|
||||||
res = c.get("/download", headers=self._make_auth_headers(web.password))
|
res = c.get("/download")
|
||||||
res.get_data()
|
res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
assert (
|
assert (
|
||||||
@ -141,18 +130,8 @@ class TestWeb:
|
|||||||
assert web.mode == "receive"
|
assert web.mode == "receive"
|
||||||
|
|
||||||
with web.app.test_client() as c:
|
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
|
# Load / with valid auth
|
||||||
res = c.get("/", headers=self._make_auth_headers(web.password))
|
res = c.get("/",)
|
||||||
res.get_data()
|
res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
|
|
||||||
@ -171,7 +150,7 @@ class TestWeb:
|
|||||||
)
|
)
|
||||||
|
|
||||||
with web.app.test_client() as c:
|
with web.app.test_client() as c:
|
||||||
res = c.get("/", headers=self._make_auth_headers(web.password))
|
res = c.get("/")
|
||||||
res.get_data()
|
res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
|
|
||||||
@ -180,7 +159,6 @@ class TestWeb:
|
|||||||
buffered=True,
|
buffered=True,
|
||||||
content_type="multipart/form-data",
|
content_type="multipart/form-data",
|
||||||
data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")},
|
data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")},
|
||||||
headers=self._make_auth_headers(web.password),
|
|
||||||
)
|
)
|
||||||
res.get_data()
|
res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
@ -202,7 +180,6 @@ class TestWeb:
|
|||||||
buffered=True,
|
buffered=True,
|
||||||
content_type="multipart/form-data",
|
content_type="multipart/form-data",
|
||||||
data={"text": "you know just sending an anonymous message"},
|
data={"text": "you know just sending an anonymous message"},
|
||||||
headers=self._make_auth_headers(web.password),
|
|
||||||
)
|
)
|
||||||
content = res.get_data()
|
content = res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
@ -237,7 +214,6 @@ class TestWeb:
|
|||||||
"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg"),
|
"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg"),
|
||||||
"text": "you know just sending an anonymous message",
|
"text": "you know just sending an anonymous message",
|
||||||
},
|
},
|
||||||
headers=self._make_auth_headers(web.password),
|
|
||||||
)
|
)
|
||||||
content = res.get_data()
|
content = res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
@ -270,7 +246,6 @@ class TestWeb:
|
|||||||
buffered=True,
|
buffered=True,
|
||||||
content_type="multipart/form-data",
|
content_type="multipart/form-data",
|
||||||
data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")},
|
data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")},
|
||||||
headers=self._make_auth_headers(web.password),
|
|
||||||
)
|
)
|
||||||
content = res.get_data()
|
content = res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
@ -303,7 +278,6 @@ class TestWeb:
|
|||||||
buffered=True,
|
buffered=True,
|
||||||
content_type="multipart/form-data",
|
content_type="multipart/form-data",
|
||||||
data={},
|
data={},
|
||||||
headers=self._make_auth_headers(web.password),
|
|
||||||
)
|
)
|
||||||
content = res.get_data()
|
content = res.get_data()
|
||||||
assert res.status_code == 200
|
assert res.status_code == 200
|
||||||
@ -326,26 +300,6 @@ class TestWeb:
|
|||||||
res.get_data()
|
res.get_data()
|
||||||
assert res.status_code == 200
|
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):
|
def test_cleanup(self, common_obj, temp_dir_1024, temp_file_1024):
|
||||||
web = web_obj(temp_dir_1024, common_obj, "share", 3)
|
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 os.path.exists(temp_dir_1024) is False
|
||||||
assert web.cleanup_filenames == []
|
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:
|
class TestZipWriterDefault:
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@ -450,8 +398,7 @@ def live_server(web):
|
|||||||
proc.start()
|
proc.start()
|
||||||
|
|
||||||
url = "http://127.0.0.1:{}".format(port)
|
url = "http://127.0.0.1:{}".format(port)
|
||||||
auth = base64.b64encode(b"onionshare:" + web.password.encode()).decode()
|
req = Request(url)
|
||||||
req = Request(url, headers={"Authorization": "Basic {}".format(auth)})
|
|
||||||
|
|
||||||
attempts = 20
|
attempts = 20
|
||||||
while True:
|
while True:
|
||||||
@ -509,7 +456,7 @@ class TestRangeRequests:
|
|||||||
url = "/download"
|
url = "/download"
|
||||||
|
|
||||||
with web.app.test_client() as client:
|
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["ETag"].startswith('"sha256:')
|
||||||
assert resp.headers["Accept-Ranges"] == "bytes"
|
assert resp.headers["Accept-Ranges"] == "bytes"
|
||||||
assert resp.headers.get("Last-Modified") is not None
|
assert resp.headers.get("Last-Modified") is not None
|
||||||
@ -524,7 +471,7 @@ class TestRangeRequests:
|
|||||||
contents = f.read()
|
contents = f.read()
|
||||||
|
|
||||||
with web.app.test_client() as client:
|
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.status_code == 200
|
||||||
assert resp.data == contents
|
assert resp.data == contents
|
||||||
|
|
||||||
@ -536,7 +483,7 @@ class TestRangeRequests:
|
|||||||
contents = f.read()
|
contents = f.read()
|
||||||
|
|
||||||
with web.app.test_client() as client:
|
with web.app.test_client() as client:
|
||||||
headers = self._make_auth_headers(web.password)
|
headers = Headers()
|
||||||
headers.extend({"Range": "bytes=0-10"})
|
headers.extend({"Range": "bytes=0-10"})
|
||||||
resp = client.get(url, headers=headers)
|
resp = client.get(url, headers=headers)
|
||||||
assert resp.status_code == 206
|
assert resp.status_code == 206
|
||||||
@ -572,7 +519,7 @@ class TestRangeRequests:
|
|||||||
contents = f.read()
|
contents = f.read()
|
||||||
|
|
||||||
with web.app.test_client() as client:
|
with web.app.test_client() as client:
|
||||||
headers = self._make_auth_headers(web.password)
|
headers = Headers()
|
||||||
resp = client.get(url, headers=headers)
|
resp = client.get(url, headers=headers)
|
||||||
assert resp.status_code == 200
|
assert resp.status_code == 200
|
||||||
|
|
||||||
@ -587,7 +534,7 @@ class TestRangeRequests:
|
|||||||
url = "/download"
|
url = "/download"
|
||||||
|
|
||||||
with web.app.test_client() as client:
|
with web.app.test_client() as client:
|
||||||
headers = self._make_auth_headers(web.password)
|
headers = Headers()
|
||||||
resp = client.get(url, headers=headers)
|
resp = client.get(url, headers=headers)
|
||||||
assert resp.status_code == 200
|
assert resp.status_code == 200
|
||||||
last_mod = resp.headers["Last-Modified"]
|
last_mod = resp.headers["Last-Modified"]
|
||||||
@ -602,7 +549,7 @@ class TestRangeRequests:
|
|||||||
url = "/download"
|
url = "/download"
|
||||||
|
|
||||||
with web.app.test_client() as client:
|
with web.app.test_client() as client:
|
||||||
headers = self._make_auth_headers(web.password)
|
headers = Headers()
|
||||||
resp = client.get(url, headers=headers)
|
resp = client.get(url, headers=headers)
|
||||||
assert resp.status_code == 200
|
assert resp.status_code == 200
|
||||||
|
|
||||||
@ -621,11 +568,6 @@ class TestRangeRequests:
|
|||||||
resp = client.get(url, headers=headers)
|
resp = client.get(url, headers=headers)
|
||||||
assert resp.status_code == 206
|
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")
|
@pytest.mark.skipif(sys.platform != "Linux", reason="requires Linux")
|
||||||
@check_unsupported("curl", ["--version"])
|
@check_unsupported("curl", ["--version"])
|
||||||
@ -638,12 +580,9 @@ class TestRangeRequests:
|
|||||||
with live_server(web) as url:
|
with live_server(web) as url:
|
||||||
# Debugging help from `man curl`, on error 33
|
# Debugging help from `man curl`, on error 33
|
||||||
# 33 HTTP range error. The range "command" didn't work.
|
# 33 HTTP range error. The range "command" didn't work.
|
||||||
auth_header = self._make_auth_headers(web.password)
|
|
||||||
subprocess.check_call(
|
subprocess.check_call(
|
||||||
[
|
[
|
||||||
"curl",
|
"curl",
|
||||||
"-H",
|
|
||||||
str(auth_header).strip(),
|
|
||||||
"--output",
|
"--output",
|
||||||
str(download),
|
str(download),
|
||||||
"--continue-at",
|
"--continue-at",
|
||||||
@ -663,12 +602,9 @@ class TestRangeRequests:
|
|||||||
download.write("x" * 10)
|
download.write("x" * 10)
|
||||||
|
|
||||||
with live_server(web) as url:
|
with live_server(web) as url:
|
||||||
auth_header = self._make_auth_headers(web.password)
|
|
||||||
subprocess.check_call(
|
subprocess.check_call(
|
||||||
[
|
[
|
||||||
"wget",
|
"wget",
|
||||||
"--header",
|
|
||||||
str(auth_header).strip(),
|
|
||||||
"--continue",
|
"--continue",
|
||||||
"-O",
|
"-O",
|
||||||
str(download),
|
str(download),
|
||||||
|
@ -22,12 +22,9 @@
|
|||||||
"gui_receive_stop_server": "Staak Ontvangmodus",
|
"gui_receive_stop_server": "Staak Ontvangmodus",
|
||||||
"gui_receive_stop_server_autostop_timer": "Staak Ontvangmodus ({} oorblywend)",
|
"gui_receive_stop_server_autostop_timer": "Staak Ontvangmodus ({} oorblywend)",
|
||||||
"gui_copy_url": "Kopieer Adres",
|
"gui_copy_url": "Kopieer Adres",
|
||||||
"gui_copy_hidservauth": "Kopieer HidServAuth",
|
|
||||||
"gui_canceled": "Gekanselleer",
|
"gui_canceled": "Gekanselleer",
|
||||||
"gui_copied_url_title": "OnionShare-adres Gekopieer",
|
"gui_copied_url_title": "OnionShare-adres Gekopieer",
|
||||||
"gui_copied_url": "OnionShare-adres na knipbord 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_waiting_to_start": "Geskeduleer om oor {} te begin. Klik om te kanselleer.",
|
||||||
"gui_please_wait": "Begin… Klik om te kanselleer.",
|
"gui_please_wait": "Begin… Klik om te kanselleer.",
|
||||||
"gui_quit_title": "Nie so haastig nie",
|
"gui_quit_title": "Nie so haastig nie",
|
||||||
@ -35,14 +32,12 @@
|
|||||||
"gui_receive_quit_warning": "U is besig om lêers te ontvang. Is u seker u wil OnionShare afsluit?",
|
"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_quit": "Sluit Af",
|
||||||
"gui_quit_warning_dont_quit": "Kanselleer",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare vereis ten minste Tor 0.2.7.1 en python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Instellings",
|
"gui_settings_window_title": "Instellings",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Wat is dit?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Wat is dit?</a>",
|
||||||
"gui_settings_stealth_option": "Gebruik kliëntmagtiging",
|
"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_label": "Soek na nuwe weergawe",
|
||||||
"gui_settings_autoupdate_option": "Laat my weet wanneer ’n nuwe weergawe beskikbaar is",
|
"gui_settings_autoupdate_option": "Laat my weet wanneer ’n nuwe weergawe beskikbaar is",
|
||||||
"gui_settings_autoupdate_timestamp": "Laas gesoek: {}",
|
"gui_settings_autoupdate_timestamp": "Laas gesoek: {}",
|
||||||
@ -114,7 +109,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.",
|
"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",
|
"share_via_onionshare": "Deel d.m.v. OnionShare",
|
||||||
"gui_connect_to_tor_for_onion_settings": "Koppel aan Tor om uidiensinstellings te sien",
|
"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_save_private_key_checkbox": "Gebruik ’n blywende adres",
|
||||||
"gui_share_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres kan u lêers d.m.v. die <b>Tor Browser aflaai</b>: <img src=\"{}\"/>",
|
"gui_share_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres kan u lêers d.m.v. die <b>Tor Browser aflaai</b>: <img src=\"{}\"/>",
|
||||||
"gui_website_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres kan u webwerf d.m.v. die <b>Tor Browser besoek</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres kan u webwerf d.m.v. die <b>Tor Browser besoek</b>: <img src='{}' />",
|
||||||
|
@ -45,14 +45,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -63,14 +60,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "",
|
"gui_quit_warning_quit": "",
|
||||||
"gui_quit_warning_dont_quit": "ተወው",
|
"gui_quit_warning_dont_quit": "ተወው",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -135,7 +130,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "أوقف طور التلقّي (باقي {})",
|
"gui_receive_stop_server_autostop_timer": "أوقف طور التلقّي (باقي {})",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "نسخ العنوان",
|
"gui_copy_url": "نسخ العنوان",
|
||||||
"gui_copy_hidservauth": "نسخ مُصادقة الخدمة المخفية",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "تم الإلغاء",
|
"gui_canceled": "تم الإلغاء",
|
||||||
"gui_copied_url_title": "OnionShare تمّ نسخ عنوان",
|
"gui_copied_url_title": "OnionShare تمّ نسخ عنوان",
|
||||||
"gui_copied_url": "تمّ نسخ عوان اونينشير إلى الحافظة",
|
"gui_copied_url": "تمّ نسخ عوان اونينشير إلى الحافظة",
|
||||||
"gui_copied_hidservauth_title": "تم نسخ مُصادقة الخدمة المخفية",
|
|
||||||
"gui_copied_hidservauth": "تم نسخ سطر مصادقة الخدمة المخفية إلى الحافظة",
|
|
||||||
"gui_please_wait": "جاري البدء… اضغط هنا للإلغاء.",
|
"gui_please_wait": "جاري البدء… اضغط هنا للإلغاء.",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "يجري حالبا تلقّي ملفات. أمتأكد أنك تريد إنهاء OnionShare؟",
|
"gui_receive_quit_warning": "يجري حالبا تلقّي ملفات. أمتأكد أنك تريد إنهاء OnionShare؟",
|
||||||
"gui_quit_warning_quit": "أنهِ",
|
"gui_quit_warning_quit": "أنهِ",
|
||||||
"gui_quit_warning_dont_quit": "ألغِ",
|
"gui_quit_warning_dont_quit": "ألغِ",
|
||||||
"error_rate_limit": "أجرى شخص ما محاولات كثيرة خاطئة لتخمين كلمة السر، لذلك فقد تمّ إيقاف الخادم. عاوِد المُشاركة و أرسل إلى المتلقّي عنوان المشاركة الجديد.",
|
|
||||||
"zip_progress_bar_format": "جاري الضغط: %p%",
|
"zip_progress_bar_format": "جاري الضغط: %p%",
|
||||||
"error_stealth_not_supported": "لاستعمال استيثاق العميل تلزمك إصدارة تور 0.2.9.1-alpha أو (متصفّح تور 6.5) و python3-stem الإصدارة 1.5.0، أو ما بعدها.",
|
"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.",
|
"error_ephemeral_not_supported": "يتطلّب OnionShare كلّا من إصدارة تور 0.2.7.1 و الإصدارة 1.4.0 من python3-stem.",
|
||||||
"gui_settings_window_title": "الإعدادات",
|
"gui_settings_window_title": "الإعدادات",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>ما هذا؟</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>ما هذا؟</a>",
|
||||||
"gui_settings_stealth_option": "فعّل استيثاق العميل",
|
"gui_settings_stealth_option": "فعّل استيثاق العميل",
|
||||||
"gui_settings_stealth_hidservauth_string": "بحفظ مفتاحك السّرّيّ لاستعماله لاحقًا صار بوسعك النقر هنا لنسخ HidServAuth.",
|
|
||||||
"gui_settings_autoupdate_label": "تحقق من وجود إصدار الجديد",
|
"gui_settings_autoupdate_label": "تحقق من وجود إصدار الجديد",
|
||||||
"gui_settings_autoupdate_option": "أخطرني عند وجود إصدارة أحدث",
|
"gui_settings_autoupdate_option": "أخطرني عند وجود إصدارة أحدث",
|
||||||
"gui_settings_autoupdate_timestamp": "تاريخ آخر تحقُق: {}",
|
"gui_settings_autoupdate_timestamp": "تاريخ آخر تحقُق: {}",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "بلغ مؤقِّت الإيقاف أجله قبل اشتغال الخادوم. أنشئ مشاركة جديدة.",
|
"gui_server_started_after_autostop_timer": "بلغ مؤقِّت الإيقاف أجله قبل اشتغال الخادوم. أنشئ مشاركة جديدة.",
|
||||||
"gui_server_autostop_timer_expired": "انتهى وقت الايقاف التلقائي للمشاركة. من فضلك عدّله للبدء بالمشاركة.",
|
"gui_server_autostop_timer_expired": "انتهى وقت الايقاف التلقائي للمشاركة. من فضلك عدّله للبدء بالمشاركة.",
|
||||||
"share_via_onionshare": "شارك باستعمال OnionShare",
|
"share_via_onionshare": "شارك باستعمال OnionShare",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "استخدم صيغة العناوين التاريخية",
|
|
||||||
"gui_save_private_key_checkbox": "استخدم عنوانًا دائمًا",
|
"gui_save_private_key_checkbox": "استخدم عنوانًا دائمًا",
|
||||||
"gui_share_url_description": "<b>أيّ شخص</b> لديه مسار OnionShare هذا سيكون بوسعه <b>تنزيل</b> تلك الملفات باستعمال <b>متصفّح تور</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>أيّ شخص</b> لديه مسار OnionShare هذا سيكون بوسعه <b>تنزيل</b> تلك الملفات باستعمال <b>متصفّح تور</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>أيّ شخص</b> لديه مسار OnionShare هذا سيكون بوسعه <b>رفع</b> ملفات إلى حاسوبك باستعمال <b>متصفّح تور</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>أيّ شخص</b> لديه مسار OnionShare هذا سيكون بوسعه <b>رفع</b> ملفات إلى حاسوبك باستعمال <b>متصفّح تور</b>: <img src='{}' />",
|
||||||
@ -248,7 +242,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "تصفح",
|
"mode_settings_receive_data_dir_browse_button": "تصفح",
|
||||||
"mode_settings_receive_data_dir_label": "حفظ الملفات إلى",
|
"mode_settings_receive_data_dir_label": "حفظ الملفات إلى",
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "إيقاف المشاركة بعد إرسال الملفات ( قم بإلغاء التحديد للسماح بتنزيل الملفات الفردية)",
|
"mode_settings_share_autostop_sharing_checkbox": "إيقاف المشاركة بعد إرسال الملفات ( قم بإلغاء التحديد للسماح بتنزيل الملفات الفردية)",
|
||||||
"mode_settings_client_auth_checkbox": "استخدم ترخيص العميل",
|
|
||||||
"mode_settings_legacy_checkbox": "استخدم عنوانًا قديمًا (النسخة الثانية من خدمة onion، لا ينصح بها)",
|
"mode_settings_legacy_checkbox": "استخدم عنوانًا قديمًا (النسخة الثانية من خدمة onion، لا ينصح بها)",
|
||||||
"mode_settings_autostop_timer_checkbox": "إيقاف خدمة Onion في ميعاد مجدول",
|
"mode_settings_autostop_timer_checkbox": "إيقاف خدمة Onion في ميعاد مجدول",
|
||||||
"mode_settings_autostart_timer_checkbox": "بدء خدمة Onion في ميعاد مجدول",
|
"mode_settings_autostart_timer_checkbox": "بدء خدمة Onion في ميعاد مجدول",
|
||||||
@ -283,4 +276,4 @@
|
|||||||
"gui_color_mode_changed_notice": "يُرجى إعادة تشغيل OnionShare من أجل تطبيق المظهر باللون الجديد.",
|
"gui_color_mode_changed_notice": "يُرجى إعادة تشغيل OnionShare من أجل تطبيق المظهر باللون الجديد.",
|
||||||
"gui_open_folder_error": "فشل فتح ملف باستخدام xdg-open. الملف هنا: {}",
|
"gui_open_folder_error": "فشل فتح ملف باستخدام xdg-open. الملف هنا: {}",
|
||||||
"gui_chat_url_description": "<b>أي شخص </b> يوجد معه عنوان OnionShare يمكنه <b>الانضمام إلى غرفة المحادثة هذه </b> باستخدام متصفح تور <b>Tor Browser</b><img src='{}' />"
|
"gui_chat_url_description": "<b>أي شخص </b> يوجد معه عنوان OnionShare يمكنه <b>الانضمام إلى غرفة المحادثة هذه </b> باستخدام متصفح تور <b>Tor Browser</b><img src='{}' />"
|
||||||
}
|
}
|
||||||
|
@ -45,14 +45,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Спрете получаващия режим ({} остават)",
|
"gui_receive_stop_server_autostop_timer": "Спрете получаващия режим ({} остават)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Автоматично спиращият таймер спира в {}",
|
"gui_receive_stop_server_autostop_timer_tooltip": "Автоматично спиращият таймер спира в {}",
|
||||||
"gui_copy_url": "Копирайте адрес",
|
"gui_copy_url": "Копирайте адрес",
|
||||||
"gui_copy_hidservauth": "Копирайте HidServAuth",
|
|
||||||
"gui_downloads": "Свалете история",
|
"gui_downloads": "Свалете история",
|
||||||
"gui_no_downloads": "Още няма изтегляния",
|
"gui_no_downloads": "Още няма изтегляния",
|
||||||
"gui_canceled": "Отменен",
|
"gui_canceled": "Отменен",
|
||||||
"gui_copied_url_title": "OnionShare адресът е копиран",
|
"gui_copied_url_title": "OnionShare адресът е копиран",
|
||||||
"gui_copied_url": "OnionShare адресът е копиран към клипборда",
|
"gui_copied_url": "OnionShare адресът е копиран към клипборда",
|
||||||
"gui_copied_hidservauth_title": "HidServAuth е копиран",
|
|
||||||
"gui_copied_hidservauth": "HidServAuth редът е копиран към клипборда",
|
|
||||||
"gui_please_wait": "Започва... кликни за отменяне.",
|
"gui_please_wait": "Започва... кликни за отменяне.",
|
||||||
"gui_download_upload_progress_complete": "%p%, {0:s} изтече.",
|
"gui_download_upload_progress_complete": "%p%, {0:s} изтече.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (изчисляване)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (изчисляване)",
|
||||||
@ -63,14 +60,12 @@
|
|||||||
"gui_receive_quit_warning": "Намирате се в процес на получаване на файлове. Сигурни ли сте, че искате да спрете OnionShare?",
|
"gui_receive_quit_warning": "Намирате се в процес на получаване на файлове. Сигурни ли сте, че искате да спрете OnionShare?",
|
||||||
"gui_quit_warning_quit": "Изход",
|
"gui_quit_warning_quit": "Изход",
|
||||||
"gui_quit_warning_dont_quit": "Отказ",
|
"gui_quit_warning_dont_quit": "Отказ",
|
||||||
"error_rate_limit": "Някой е направил прекалено много грешни опити за адреса Ви, което означава, че може да се опитват да го отгатнат, така че OnionShare спря сървъра. Стартирайте споделянето отново и изпратете нов адрес на получателя за споделяне.",
|
|
||||||
"zip_progress_bar_format": "Компресира: %p%",
|
"zip_progress_bar_format": "Компресира: %p%",
|
||||||
"error_stealth_not_supported": "За да използвате ауторизация на клиента Ви трябва поне Tor 0.2.9.1-alpha (или на браузъра 6.5) и python3-stem 1.5.0.",
|
"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.",
|
"error_ephemeral_not_supported": "OnionShare изисква поне Tor 0.2.7.1 и python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Настройки",
|
"gui_settings_window_title": "Настройки",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Какво е това?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Какво е това?</a>",
|
||||||
"gui_settings_stealth_option": "Използвайте клиент ауторизация (наследствен)",
|
"gui_settings_stealth_option": "Използвайте клиент ауторизация (наследствен)",
|
||||||
"gui_settings_stealth_hidservauth_string": "След като Вашия частен ключ бе запазен за повторна употреба, можете сега да кликнете, за да копирате Вашия HidServAuth.",
|
|
||||||
"gui_settings_autoupdate_label": "Провери за нова версия",
|
"gui_settings_autoupdate_label": "Провери за нова версия",
|
||||||
"gui_settings_autoupdate_option": "Уведоми ме, когато е налице нова версия",
|
"gui_settings_autoupdate_option": "Уведоми ме, когато е налице нова версия",
|
||||||
"gui_settings_autoupdate_timestamp": "Последна проверка: {}",
|
"gui_settings_autoupdate_timestamp": "Последна проверка: {}",
|
||||||
@ -135,7 +130,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "Автоматично спиращият таймер спря преди сървърът да стартира.\nМоля направете нов дял.",
|
"gui_server_started_after_autostop_timer": "Автоматично спиращият таймер спря преди сървърът да стартира.\nМоля направете нов дял.",
|
||||||
"gui_server_autostop_timer_expired": "Автоматично спиращият таймер спря.\nМоля актуализирайте за да започнете споделяне.",
|
"gui_server_autostop_timer_expired": "Автоматично спиращият таймер спря.\nМоля актуализирайте за да започнете споделяне.",
|
||||||
"share_via_onionshare": "Споделете го чрез OnionShare",
|
"share_via_onionshare": "Споделете го чрез OnionShare",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "Използвайте стари адреси",
|
|
||||||
"gui_save_private_key_checkbox": "Използвайте постоянни адреси (стари)",
|
"gui_save_private_key_checkbox": "Използвайте постоянни адреси (стари)",
|
||||||
"gui_share_url_description": "<b>Всеки</b> с този OnionShare адрес може да <b>свали</b> Вашите файлове използвайки <b>Тор браузера</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Всеки</b> с този OnionShare адрес може да <b>свали</b> Вашите файлове използвайки <b>Тор браузера</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Всеки</b> с този OnionShare адрес може да <b>качи</b> файлове на Вашия компютър, използвайки <b>Тор браузера</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Всеки</b> с този OnionShare адрес може да <b>качи</b> файлове на Вашия компютър, използвайки <b>Тор браузера</b>: <img src='{}' />",
|
||||||
|
@ -45,14 +45,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "রিসিভ মোড বন্ধ করো({} বাকি)",
|
"gui_receive_stop_server_autostop_timer": "রিসিভ মোড বন্ধ করো({} বাকি)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "টাইমার অনুযায়ী অটোমেটিক বন্ধ হবে {}-তে",
|
"gui_receive_stop_server_autostop_timer_tooltip": "টাইমার অনুযায়ী অটোমেটিক বন্ধ হবে {}-তে",
|
||||||
"gui_copy_url": "এড্রেস কপি করো",
|
"gui_copy_url": "এড্রেস কপি করো",
|
||||||
"gui_copy_hidservauth": "হিডসার্ভঅথ কপি করো",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "বাতিল করা হয়েছে",
|
"gui_canceled": "বাতিল করা হয়েছে",
|
||||||
"gui_copied_url_title": "OnionShare ঠিকানা কপি করা হয়েছে",
|
"gui_copied_url_title": "OnionShare ঠিকানা কপি করা হয়েছে",
|
||||||
"gui_copied_url": "OnionShare ঠিকানাটি ক্লিপবোর্ডে কপি করা হয়েছে",
|
"gui_copied_url": "OnionShare ঠিকানাটি ক্লিপবোর্ডে কপি করা হয়েছে",
|
||||||
"gui_copied_hidservauth_title": "HidServAuth কপি করা হয়েছে",
|
|
||||||
"gui_copied_hidservauth": "HidServAuth লাইনটি ক্লিপবোর্ডে কপি করা হয়েছে",
|
|
||||||
"gui_please_wait": "চালু করছি… বাতিল করতে এখানে ক্লিক করো।",
|
"gui_please_wait": "চালু করছি… বাতিল করতে এখানে ক্লিক করো।",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -63,7 +60,6 @@
|
|||||||
"gui_receive_quit_warning": "আপনি ফাইল গ্রহণের প্রক্রিয়ার মধ্যে আছেন। আপনি কি আসলেই OnionShare বন্ধ করতে চান?",
|
"gui_receive_quit_warning": "আপনি ফাইল গ্রহণের প্রক্রিয়ার মধ্যে আছেন। আপনি কি আসলেই OnionShare বন্ধ করতে চান?",
|
||||||
"gui_quit_warning_quit": "প্রস্থান করো",
|
"gui_quit_warning_quit": "প্রস্থান করো",
|
||||||
"gui_quit_warning_dont_quit": "বাতিল",
|
"gui_quit_warning_dont_quit": "বাতিল",
|
||||||
"error_rate_limit": "কেউ একজন অসংখ্যবার তোমার পাসওয়ার্ডটি অনুমান করার ব্যর্থ চেষ্টা করেছে, তাই OnionShare নিরাপত্তার জন্য সার্ভার বন্ধ করে দিয়েছে। তাই, নতুন করে আবার তোমার ফাইল(গুলো)শেয়ার করো এবং প্রাপককে নতুন এড্রেসটি দিন।",
|
|
||||||
"zip_progress_bar_format": "কমপ্রেস করছি: %p%",
|
"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_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 দুটোই থাকতে হবে।",
|
"error_ephemeral_not_supported": "OnionShare ব্যবহার করার জন্য Tor 0.2.9.1-alpha (or Tor Browser 6.5) এবং python3-stem 1.5.0 দুটোই থাকতে হবে।",
|
||||||
@ -135,7 +131,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "সার্ভার শুরু হওয়ার আগেই স্বয়ংক্রিয়-বন্ধ ঘড়ির সময় শেষ হয়ে গেছে। অনুগ্রহ করে আবার নতুনভাবে শেয়ার করো।",
|
"gui_server_started_after_autostop_timer": "সার্ভার শুরু হওয়ার আগেই স্বয়ংক্রিয়-বন্ধ ঘড়ির সময় শেষ হয়ে গেছে। অনুগ্রহ করে আবার নতুনভাবে শেয়ার করো।",
|
||||||
"gui_server_autostop_timer_expired": "অটো-স্টপ টাইমারের সময় ইতিমধ্যেই শেষ হয়ে গিয়েছে। দয়া করে, শেয়ারিং শুরু করতে নতুনভাবে সময় সেট করো।",
|
"gui_server_autostop_timer_expired": "অটো-স্টপ টাইমারের সময় ইতিমধ্যেই শেষ হয়ে গিয়েছে। দয়া করে, শেয়ারিং শুরু করতে নতুনভাবে সময় সেট করো।",
|
||||||
"share_via_onionshare": "OnionShare এর মাধমে শেয়ার করো",
|
"share_via_onionshare": "OnionShare এর মাধমে শেয়ার করো",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "লেগাসি ঠিকানা ব্যবহার করো",
|
|
||||||
"gui_save_private_key_checkbox": "একটি স্থায়ী ঠিকানা ব্যবহার করো",
|
"gui_save_private_key_checkbox": "একটি স্থায়ী ঠিকানা ব্যবহার করো",
|
||||||
"gui_share_url_description": "যার কাছেই এই ঠিকানা থাকবে সে ই <b>টর ব্রাউজার</b> ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে <b>যে কেউ</b> আপনার ফাইল(গুলি) <b>ডাউনলোড</b> করতে পারবে:<img src='{}' />",
|
"gui_share_url_description": "যার কাছেই এই ঠিকানা থাকবে সে ই <b>টর ব্রাউজার</b> ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে <b>যে কেউ</b> আপনার ফাইল(গুলি) <b>ডাউনলোড</b> করতে পারবে:<img src='{}' />",
|
||||||
"gui_receive_url_description": "যার কাছেই এই ঠিকানা থাকবে সে ই <b>টর ব্রাউজার</b> ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে <b>যে কেউ</b> আপনার কম্পিউটারে ফাইল <b>আপলোড</b> করতে পারবে:<img src='{}' />",
|
"gui_receive_url_description": "যার কাছেই এই ঠিকানা থাকবে সে ই <b>টর ব্রাউজার</b> ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে <b>যে কেউ</b> আপনার কম্পিউটারে ফাইল <b>আপলোড</b> করতে পারবে:<img src='{}' />",
|
||||||
@ -243,7 +238,6 @@
|
|||||||
"gui_new_tab_receive_description": "তোমার কম্পিউটারকে একটি অনলাইন ড্রপবক্স বানাও। অন্যরা টর ব্রাউজার ব্যবহার করে তোমার কম্পিউটারে ফাইল পাঠাতে পারবে।",
|
"gui_new_tab_receive_description": "তোমার কম্পিউটারকে একটি অনলাইন ড্রপবক্স বানাও। অন্যরা টর ব্রাউজার ব্যবহার করে তোমার কম্পিউটারে ফাইল পাঠাতে পারবে।",
|
||||||
"gui_new_tab_share_description": "অন্য কাউকে পাঠাতে তোমার কম্পিউটারের ফাইল নির্বাচন করো. তুমি যাকে বা যাদের কাছে ফাইল পাঠাতে চাও তাকে বা তাদেরকে তোমার কাছ থেকে ফাইল ডাউনলোড করতে টর ব্রাউজার ব্যবহার করতে হবে।",
|
"gui_new_tab_share_description": "অন্য কাউকে পাঠাতে তোমার কম্পিউটারের ফাইল নির্বাচন করো. তুমি যাকে বা যাদের কাছে ফাইল পাঠাতে চাও তাকে বা তাদেরকে তোমার কাছ থেকে ফাইল ডাউনলোড করতে টর ব্রাউজার ব্যবহার করতে হবে।",
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "ফাইল পাঠানোর পর শেয়ার করা বন্ধ করো (স্বতন্ত্র ফাইল ডাউনলোড এর মঞ্জুরি দিতে টিক চিহ্ন তুলে দাও)",
|
"mode_settings_share_autostop_sharing_checkbox": "ফাইল পাঠানোর পর শেয়ার করা বন্ধ করো (স্বতন্ত্র ফাইল ডাউনলোড এর মঞ্জুরি দিতে টিক চিহ্ন তুলে দাও)",
|
||||||
"mode_settings_client_auth_checkbox": "ক্লায়েন্ট অথোরাইজেশন ব্যবহার করো",
|
|
||||||
"mode_settings_autostop_timer_checkbox": "নির্ধারিত সময়ে অনিওন সেবা বন্ধ করো",
|
"mode_settings_autostop_timer_checkbox": "নির্ধারিত সময়ে অনিওন সেবা বন্ধ করো",
|
||||||
"mode_settings_autostart_timer_checkbox": "নির্ধারিত সময়ে অনিওন সেবা শুরু করো",
|
"mode_settings_autostart_timer_checkbox": "নির্ধারিত সময়ে অনিওন সেবা শুরু করো",
|
||||||
"mode_settings_persistent_checkbox": "এই ট্যাব সংরক্ষণ করো, এবং যখন আমি অনিওনশেয়ার খুলব তখন এটি স্বয়ংক্রিয়ভাবে খুলো",
|
"mode_settings_persistent_checkbox": "এই ট্যাব সংরক্ষণ করো, এবং যখন আমি অনিওনশেয়ার খুলব তখন এটি স্বয়ংক্রিয়ভাবে খুলো",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Atura el mode de recepció (queden {})",
|
"gui_receive_stop_server_autostop_timer": "Atura el mode de recepció (queden {})",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "El temporitzador acaba a {}",
|
"gui_receive_stop_server_autostop_timer_tooltip": "El temporitzador acaba a {}",
|
||||||
"gui_copy_url": "Copia l'adreça",
|
"gui_copy_url": "Copia l'adreça",
|
||||||
"gui_copy_hidservauth": "Copia el HidServAuth",
|
|
||||||
"gui_downloads": "Historial de descàrregues",
|
"gui_downloads": "Historial de descàrregues",
|
||||||
"gui_no_downloads": "No n'hi ha cap",
|
"gui_no_downloads": "No n'hi ha cap",
|
||||||
"gui_canceled": "S'ha cancel·lat",
|
"gui_canceled": "S'ha cancel·lat",
|
||||||
"gui_copied_url_title": "S'ha copiat l'adreça OnionShare",
|
"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_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_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_complete": "Han passat %p%, {0:s}.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (s'està calculant)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (s'està calculant)",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "Encara s'estan rebent fitxers. Segur que voleu sortir de l'OnionShare?",
|
"gui_receive_quit_warning": "Encara s'estan rebent fitxers. Segur que voleu sortir de l'OnionShare?",
|
||||||
"gui_quit_warning_quit": "Surt",
|
"gui_quit_warning_quit": "Surt",
|
||||||
"gui_quit_warning_dont_quit": "Cancel·la",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare necessita almenys les versions Tor 0.2.7.1 i python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Paràmetres",
|
"gui_settings_window_title": "Paràmetres",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Què és això?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Què és això?</a>",
|
||||||
"gui_settings_stealth_option": "Fes servir autorització de client",
|
"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_label": "Comprova si hi ha versions noves",
|
||||||
"gui_settings_autoupdate_option": "Notifica'm si hi ha una actualització disponible",
|
"gui_settings_autoupdate_option": "Notifica'm si hi ha una actualització disponible",
|
||||||
"gui_settings_autoupdate_timestamp": "Última comprovació: {}",
|
"gui_settings_autoupdate_timestamp": "Última comprovació: {}",
|
||||||
@ -134,7 +129,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_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.",
|
"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",
|
"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_save_private_key_checkbox": "Fes servir una adreça persistent",
|
||||||
"gui_share_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>baixar</b> els vostres fitxers fent servir el <b>Navegador Tor</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>baixar</b> els vostres fitxers fent servir el <b>Navegador Tor</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>pujar</b> fitxers al vostre ordinador fent servir el <b>Navegador Tor</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>pujar</b> fitxers al vostre ordinador fent servir el <b>Navegador Tor</b>: <img src='{}' />",
|
||||||
@ -227,7 +221,6 @@
|
|||||||
"hours_first_letter": "h",
|
"hours_first_letter": "h",
|
||||||
"minutes_first_letter": "min",
|
"minutes_first_letter": "min",
|
||||||
"seconds_first_letter": "s",
|
"seconds_first_letter": "s",
|
||||||
"invalid_password_guess": "Intent de contrasenya incorrecte",
|
|
||||||
"gui_website_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>visitar</b> el vostre lloc web fent servir el <b>Navegador Tor</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>visitar</b> el vostre lloc web fent servir el <b>Navegador Tor</b>: <img src='{}' />",
|
||||||
"gui_mode_website_button": "Publica el lloc web",
|
"gui_mode_website_button": "Publica el lloc web",
|
||||||
"systray_site_loaded_title": "S'ha carregat el lloc web",
|
"systray_site_loaded_title": "S'ha carregat el lloc web",
|
||||||
@ -250,7 +243,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Navega",
|
"mode_settings_receive_data_dir_browse_button": "Navega",
|
||||||
"mode_settings_receive_data_dir_label": "Desa els fitxers a",
|
"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_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_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_autostop_timer_checkbox": "Atura el servei ceba a una hora programada",
|
||||||
"mode_settings_autostart_timer_checkbox": "Inicia el servei ceba a una hora programada",
|
"mode_settings_autostart_timer_checkbox": "Inicia el servei ceba a una hora programada",
|
||||||
|
@ -24,17 +24,13 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Mod ya wergirtinê betal bike ({} maye)",
|
"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_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_url": "Malper kopî bike",
|
||||||
"gui_copy_hidservauth": "HidServAuth kopî bike",
|
|
||||||
"gui_canceled": "Betal bû",
|
"gui_canceled": "Betal bû",
|
||||||
"gui_copied_url_title": "Malpera OnionShare kopî bû",
|
"gui_copied_url_title": "Malpera OnionShare kopî bû",
|
||||||
"gui_copied_url": "Malpera OnionShare lis ser taxtê 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_show_url_qr_code": "QR kod nîşan bide",
|
||||||
"gui_qr_code_dialog_title": "OnionShare QR kod",
|
"gui_qr_code_dialog_title": "OnionShare QR kod",
|
||||||
"gui_waiting_to_start": "Pilankirî ye di {} destpê bike. Bitkîne ji bo betal bike.",
|
"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.",
|
"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%",
|
"zip_progress_bar_format": "Dewisandin %p%",
|
||||||
"gui_settings_window_title": "Ayar",
|
"gui_settings_window_title": "Ayar",
|
||||||
"gui_settings_autoupdate_label": "Ji bo versyonekî nû kontrol bike",
|
"gui_settings_autoupdate_label": "Ji bo versyonekî nû kontrol bike",
|
||||||
@ -168,7 +164,6 @@
|
|||||||
"mode_settings_autostart_timer_checkbox": "Servîsa onion di wextekî ayarkirî despê bike",
|
"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_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_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_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_label": "Nameyan li qeyd bike",
|
||||||
"mode_settings_receive_data_dir_browse_button": "Bigere",
|
"mode_settings_receive_data_dir_browse_button": "Bigere",
|
||||||
|
@ -20,11 +20,9 @@
|
|||||||
"gui_share_start_server": "Spustit sdílení",
|
"gui_share_start_server": "Spustit sdílení",
|
||||||
"gui_share_stop_server": "Zastavit sdílení",
|
"gui_share_stop_server": "Zastavit sdílení",
|
||||||
"gui_copy_url": "Kopírovat URL",
|
"gui_copy_url": "Kopírovat URL",
|
||||||
"gui_copy_hidservauth": "Kopírovat HidServAuth",
|
|
||||||
"gui_downloads": "Historie stahování",
|
"gui_downloads": "Historie stahování",
|
||||||
"gui_canceled": "Zrušeno",
|
"gui_canceled": "Zrušeno",
|
||||||
"gui_copied_url": "URL zkopírováno do schránky",
|
"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_please_wait": "Spouštění... Klikněte pro zrušení.",
|
||||||
"gui_download_upload_progress_complete": "%p%, Uplynulý čas: {0:s}",
|
"gui_download_upload_progress_complete": "%p%, Uplynulý čas: {0:s}",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (Computing ETA)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (Computing ETA)",
|
||||||
@ -33,7 +31,6 @@
|
|||||||
"gui_share_quit_warning": "Jste si jistí, že chcete odejít? URL, kterou sdílíte poté nebude existovat.",
|
"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_quit": "Zavřít",
|
||||||
"gui_quit_warning_dont_quit": "Zůstat",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare vyžaduje nejméně Tor 0.2.7.1 a nejméně python3-stem 1.4.0.",
|
||||||
@ -78,11 +75,9 @@
|
|||||||
"gui_receive_start_server": "Spustit mód přijímání",
|
"gui_receive_start_server": "Spustit mód přijímání",
|
||||||
"gui_receive_stop_server": "Zastavit 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_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_copied_url_title": "OnionShare Address zkopírována",
|
||||||
"gui_quit_title": "Ne tak rychle",
|
"gui_quit_title": "Ne tak rychle",
|
||||||
"gui_settings_stealth_option": "Autorizace klienta",
|
"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_label": "Kontrola nové verze",
|
||||||
"gui_settings_autoupdate_option": "Upozornit na dostupnost nové verze",
|
"gui_settings_autoupdate_option": "Upozornit na dostupnost nové verze",
|
||||||
"gui_settings_autoupdate_timestamp": "Poslední kontrola {}",
|
"gui_settings_autoupdate_timestamp": "Poslední kontrola {}",
|
||||||
|
@ -33,11 +33,9 @@
|
|||||||
"gui_share_start_server": "Begynd at dele",
|
"gui_share_start_server": "Begynd at dele",
|
||||||
"gui_share_stop_server": "Stop deling",
|
"gui_share_stop_server": "Stop deling",
|
||||||
"gui_copy_url": "Kopiér adresse",
|
"gui_copy_url": "Kopiér adresse",
|
||||||
"gui_copy_hidservauth": "Kopiér HidServAuth",
|
|
||||||
"gui_downloads": "Downloadhistorik",
|
"gui_downloads": "Downloadhistorik",
|
||||||
"gui_canceled": "Annulleret",
|
"gui_canceled": "Annulleret",
|
||||||
"gui_copied_url": "OnionShare-adressen blev kopieret til udklipsholderen",
|
"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_please_wait": "Starter ... klik for at annullere.",
|
||||||
"gui_download_upload_progress_complete": ".",
|
"gui_download_upload_progress_complete": ".",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (udregner anslået ankomsttid)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (udregner anslået ankomsttid)",
|
||||||
@ -46,13 +44,11 @@
|
|||||||
"gui_share_quit_warning": "Du er ved at afsende filer. Er du sikker på, at du vil afslutte OnionShare?",
|
"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_quit": "Afslut",
|
||||||
"gui_quit_warning_dont_quit": "Annuller",
|
"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%",
|
"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_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.",
|
"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_window_title": "Indstillinger",
|
||||||
"gui_settings_stealth_option": "Brug klientautentifikation",
|
"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_label": "Søg efter ny version",
|
||||||
"gui_settings_autoupdate_option": "Giv mig besked når der findes en ny version",
|
"gui_settings_autoupdate_option": "Giv mig besked når der findes en ny version",
|
||||||
"gui_settings_autoupdate_timestamp": "Sidste søgning: {}",
|
"gui_settings_autoupdate_timestamp": "Sidste søgning: {}",
|
||||||
@ -113,7 +109,6 @@
|
|||||||
"share_via_onionshare": "Del via OnionShare",
|
"share_via_onionshare": "Del via OnionShare",
|
||||||
"gui_save_private_key_checkbox": "Brug en vedvarende adresse",
|
"gui_save_private_key_checkbox": "Brug en vedvarende adresse",
|
||||||
"gui_copied_url_title": "Kopierede OnionShare-adresse",
|
"gui_copied_url_title": "Kopierede OnionShare-adresse",
|
||||||
"gui_copied_hidservauth_title": "Kopierede HidServAuth",
|
|
||||||
"gui_quit_title": "Klap lige hesten",
|
"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": "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)",
|
"gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Brug indbyggede meek_lite (Azure) udskiftelige transporter (kræver obfs4proxy)",
|
||||||
@ -145,7 +140,6 @@
|
|||||||
"gui_no_downloads": "Ingen downloads endnu",
|
"gui_no_downloads": "Ingen downloads endnu",
|
||||||
"error_tor_protocol_error_unknown": "Der opstod en ukendt fejl med Tor",
|
"error_tor_protocol_error_unknown": "Der opstod en ukendt fejl med Tor",
|
||||||
"error_invalid_private_key": "Den private nøgletype understøttes ikke",
|
"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_stopped": "Klar til at dele",
|
||||||
"gui_status_indicator_share_working": "Starter …",
|
"gui_status_indicator_share_working": "Starter …",
|
||||||
"gui_status_indicator_share_started": "Deler",
|
"gui_status_indicator_share_started": "Deler",
|
||||||
@ -230,7 +224,6 @@
|
|||||||
"hours_first_letter": "t",
|
"hours_first_letter": "t",
|
||||||
"minutes_first_letter": "m",
|
"minutes_first_letter": "m",
|
||||||
"seconds_first_letter": "s",
|
"seconds_first_letter": "s",
|
||||||
"invalid_password_guess": "Ugyldigt adgangskodegæt",
|
|
||||||
"gui_website_url_description": "<b>Alle</b> med OnionShare-adressen kan <b>besøge</b> dit websted med <b>Tor Browser</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Alle</b> med OnionShare-adressen kan <b>besøge</b> dit websted med <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_mode_website_button": "Udgiv websted",
|
"gui_mode_website_button": "Udgiv websted",
|
||||||
"gui_website_mode_no_files": "Der er endnu ikke delt noget websted",
|
"gui_website_mode_no_files": "Der er endnu ikke delt noget websted",
|
||||||
@ -244,7 +237,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.",
|
"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_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_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_autostop_timer_checkbox": "Stop oniontjeneste på det planlagte tidspunkt",
|
||||||
"mode_settings_autostart_timer_checkbox": "Start 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",
|
"mode_settings_persistent_checkbox": "Gem fanebladet og åbn det automatisk når jeg åbner OnionShare",
|
||||||
|
@ -34,9 +34,7 @@
|
|||||||
"systray_download_completed_message": "Der Benutzer hat deine Dateien heruntergeladen",
|
"systray_download_completed_message": "Der Benutzer hat deine Dateien heruntergeladen",
|
||||||
"systray_download_canceled_title": "OnionShare Download abgebrochen",
|
"systray_download_canceled_title": "OnionShare Download abgebrochen",
|
||||||
"systray_download_canceled_message": "Der Benutzer hat den Download abgebrochen",
|
"systray_download_canceled_message": "Der Benutzer hat den Download abgebrochen",
|
||||||
"gui_copy_hidservauth": "HidServAuth kopieren",
|
|
||||||
"gui_canceled": "Abgebrochen",
|
"gui_canceled": "Abgebrochen",
|
||||||
"gui_copied_hidservauth_title": "HidServAuth kopiert",
|
|
||||||
"gui_quit_warning_quit": "Beenden",
|
"gui_quit_warning_quit": "Beenden",
|
||||||
"gui_quit_warning_dont_quit": "Abbrechen",
|
"gui_quit_warning_dont_quit": "Abbrechen",
|
||||||
"gui_settings_window_title": "Einstellungen",
|
"gui_settings_window_title": "Einstellungen",
|
||||||
@ -83,7 +81,6 @@
|
|||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Zeit läuft in {} ab",
|
"gui_receive_stop_server_autostop_timer_tooltip": "Zeit läuft in {} ab",
|
||||||
"gui_no_downloads": "Bisher keine Downloads",
|
"gui_no_downloads": "Bisher keine Downloads",
|
||||||
"gui_copied_url_title": "OnionShare-Adresse kopiert",
|
"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_complete": "%p%, {0:s} vergangen.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (berechne)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (berechne)",
|
||||||
"gui_download_upload_progress_eta": "{0:s}, Voraussichtliche Dauer: {1:s}, %p%",
|
"gui_download_upload_progress_eta": "{0:s}, Voraussichtliche Dauer: {1:s}, %p%",
|
||||||
@ -91,7 +88,6 @@
|
|||||||
"gui_quit_title": "Nicht so schnell",
|
"gui_quit_title": "Nicht so schnell",
|
||||||
"gui_share_quit_warning": "Du versendest gerade Dateien. Bist du sicher, dass du OnionShare beenden willst?",
|
"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?",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare benötigt mindestens sowohl Tor 0.2.7.1 als auch python3-stem 1.4.0.",
|
||||||
@ -128,7 +124,6 @@
|
|||||||
"gui_tor_connection_error_settings": "Versuche in den Einstellungen zu ändern, wie sich OnionShare mit dem Tor-Netzwerk verbindet.",
|
"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.",
|
"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",
|
"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_save_private_key_checkbox": "Nutze eine gleichbleibende Adresse",
|
||||||
"gui_share_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann deine Dateien mit dem <b>Tor Browser</b> <b>herunterladen</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann deine Dateien mit dem <b>Tor Browser</b> <b>herunterladen</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann mit dem <b>Tor Browser</b> Dateien auf deinen Computer <b>hochladen</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann mit dem <b>Tor Browser</b> Dateien auf deinen Computer <b>hochladen</b>: <img src='{}' />",
|
||||||
@ -171,7 +166,6 @@
|
|||||||
"gui_settings_language_changed_notice": "Starte OnionShare neu, damit die neue Sprache übernommen wird.",
|
"gui_settings_language_changed_notice": "Starte OnionShare neu, damit die neue Sprache übernommen wird.",
|
||||||
"help_config": "Ort deiner eigenen JSON Konfigurationsdatei (optional)",
|
"help_config": "Ort deiner eigenen JSON Konfigurationsdatei (optional)",
|
||||||
"timeout_upload_still_running": "Warte bis Upload vollständig ist",
|
"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",
|
"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.",
|
"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.",
|
"gui_server_started_after_autostop_timer": "Die Zeit ist abgelaufen, bevor der Server gestartet werden konnte. Bitte starte einen erneuten Teilvorgang.",
|
||||||
@ -227,7 +221,6 @@
|
|||||||
"hours_first_letter": "h",
|
"hours_first_letter": "h",
|
||||||
"minutes_first_letter": "m",
|
"minutes_first_letter": "m",
|
||||||
"seconds_first_letter": "s",
|
"seconds_first_letter": "s",
|
||||||
"invalid_password_guess": "Ungültige Passwortratschläge",
|
|
||||||
"gui_website_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann deine Webseite mit dem <b>Tor Browser</b> <b>ansehen</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann deine Webseite mit dem <b>Tor Browser</b> <b>ansehen</b>: <img src='{}' />",
|
||||||
"gui_mode_website_button": "Webseite veröffentlichen",
|
"gui_mode_website_button": "Webseite veröffentlichen",
|
||||||
"systray_site_loaded_title": "Webseite geladen",
|
"systray_site_loaded_title": "Webseite geladen",
|
||||||
@ -245,7 +238,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_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_browse_button": "Durchsuchen",
|
||||||
"mode_settings_receive_data_dir_label": "Dateien speichern unter",
|
"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_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_autostop_timer_checkbox": "Onion-Dienst zu einem festgelegten Zeitpunkt stoppen",
|
||||||
"mode_settings_autostart_timer_checkbox": "Onion-Dienst zu einem festgelegten Zeitpunkt starten",
|
"mode_settings_autostart_timer_checkbox": "Onion-Dienst zu einem festgelegten Zeitpunkt starten",
|
||||||
@ -305,4 +297,4 @@
|
|||||||
"gui_status_indicator_chat_scheduled": "Geplant…",
|
"gui_status_indicator_chat_scheduled": "Geplant…",
|
||||||
"gui_status_indicator_chat_working": "Startet…",
|
"gui_status_indicator_chat_working": "Startet…",
|
||||||
"gui_status_indicator_chat_stopped": "Bereit zum Chatten"
|
"gui_status_indicator_chat_stopped": "Bereit zum Chatten"
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,6 @@
|
|||||||
"gui_receive_quit_warning": "Αυτή τη στιγμή παραλαμβάνονται αρχείων. Είστε σίγουρος/η πώς θέλετε να κλείσετε το OnionShare;",
|
"gui_receive_quit_warning": "Αυτή τη στιγμή παραλαμβάνονται αρχείων. Είστε σίγουρος/η πώς θέλετε να κλείσετε το OnionShare;",
|
||||||
"gui_quit_warning_quit": "Έξοδος",
|
"gui_quit_warning_quit": "Έξοδος",
|
||||||
"gui_quit_warning_dont_quit": "Ακύρωση",
|
"gui_quit_warning_dont_quit": "Ακύρωση",
|
||||||
"error_rate_limit": "Κάποιος/α προσπάθησε να μαντέψει τον κωδικό σας πολλές φορές. Για αυτό, το OnionShare τερματίστηκε αυτόματα. Πρέπει να ξεκινήσετε πάλι τον διαμοιρασμό και να στείλετε στον/ην παραλήπτη/τρια μια νέα διεύθυνση για να διαμοιραστούν αρχεία και μηνύματα μαζί σας.",
|
|
||||||
"zip_progress_bar_format": "Γίνεται συμπίεση: %p%",
|
"zip_progress_bar_format": "Γίνεται συμπίεση: %p%",
|
||||||
"error_stealth_not_supported": "Για τη χρήση εξουσιοδότησης πελάτη, χρειάζεστε τουλάχιστον το Tor 0.2.9.1-alpha (ή τον Tor Browser 6.5) και το python3-stem 1.5.0.",
|
"error_stealth_not_supported": "Για τη χρήση εξουσιοδότησης πελάτη, χρειάζεστε τουλάχιστον το Tor 0.2.9.1-alpha (ή τον Tor Browser 6.5) και το python3-stem 1.5.0.",
|
||||||
"error_ephemeral_not_supported": "Το OnionShare απαιτεί τουλάχιστον το Tor 0.2.7.1 και το python3-stem 1.4.0.",
|
"error_ephemeral_not_supported": "Το OnionShare απαιτεί τουλάχιστον το Tor 0.2.7.1 και το python3-stem 1.4.0.",
|
||||||
@ -134,7 +133,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.",
|
"gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.",
|
||||||
"gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.",
|
"gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.",
|
||||||
"share_via_onionshare": "Μοιραστείτε μέσω OnionShare",
|
"share_via_onionshare": "Μοιραστείτε μέσω OnionShare",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "Χρήση \"παραδοσιακών\" διευθύνσεων",
|
|
||||||
"gui_save_private_key_checkbox": "Χρήση μόνιμης διεύθυνσης",
|
"gui_save_private_key_checkbox": "Χρήση μόνιμης διεύθυνσης",
|
||||||
"gui_share_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί να <b>κατεβάσει</b> τα αρχεία σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί να <b>κατεβάσει</b> τα αρχεία σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare, μπορεί να <b>ανεβάσει</b> αρχεία στον υπολογιστή σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare, μπορεί να <b>ανεβάσει</b> αρχεία στον υπολογιστή σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -243,7 +241,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Επιλογή",
|
"mode_settings_receive_data_dir_browse_button": "Επιλογή",
|
||||||
"mode_settings_receive_data_dir_label": "Αποθήκευση αρχείων σε",
|
"mode_settings_receive_data_dir_label": "Αποθήκευση αρχείων σε",
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "Τερματισμός κοινής χρήσης με την ολοκλήρωση αρχείων (αποεπιλέξτε για λήψη μεμονωμένων αρχείων)",
|
"mode_settings_share_autostop_sharing_checkbox": "Τερματισμός κοινής χρήσης με την ολοκλήρωση αρχείων (αποεπιλέξτε για λήψη μεμονωμένων αρχείων)",
|
||||||
"mode_settings_client_auth_checkbox": "Χρήση εξουσιοδότησης πελάτη",
|
|
||||||
"mode_settings_legacy_checkbox": "Χρήση παλαιάς διεύθυνσης (δεν προτείνεται η χρήση υπηρεσία v2 onion)",
|
"mode_settings_legacy_checkbox": "Χρήση παλαιάς διεύθυνσης (δεν προτείνεται η χρήση υπηρεσία v2 onion)",
|
||||||
"mode_settings_autostop_timer_checkbox": "Προγραμματισμένος τερματισμός",
|
"mode_settings_autostop_timer_checkbox": "Προγραμματισμένος τερματισμός",
|
||||||
"mode_settings_autostart_timer_checkbox": "Προγραμματισμένη εκκίνηση",
|
"mode_settings_autostart_timer_checkbox": "Προγραμματισμένη εκκίνηση",
|
||||||
@ -293,4 +290,4 @@
|
|||||||
"gui_status_indicator_chat_scheduled": "Δρομολόγηση…",
|
"gui_status_indicator_chat_scheduled": "Δρομολόγηση…",
|
||||||
"gui_status_indicator_chat_working": "Εκκίνηση…",
|
"gui_status_indicator_chat_working": "Εκκίνηση…",
|
||||||
"gui_status_indicator_chat_stopped": "Έτοιμο για συνομιλία"
|
"gui_status_indicator_chat_stopped": "Έτοιμο για συνομιλία"
|
||||||
}
|
}
|
||||||
|
@ -24,18 +24,19 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Stop Receive Mode ({} remaining)",
|
"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_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_url": "Copy Address",
|
||||||
"gui_copy_hidservauth": "Copy HidServAuth",
|
"gui_copy_client_auth": "Copy Private Key",
|
||||||
"gui_canceled": "Canceled",
|
"gui_canceled": "Canceled",
|
||||||
"gui_copied_url_title": "Copied OnionShare Address",
|
"gui_copied_url_title": "Copied OnionShare Address",
|
||||||
"gui_copied_url": "OnionShare address copied to clipboard",
|
"gui_copied_url": "OnionShare address copied to clipboard",
|
||||||
"gui_copied_hidservauth_title": "Copied HidServAuth",
|
"gui_copied_client_auth_title": "Copied Private Key",
|
||||||
"gui_copied_hidservauth": "HidServAuth line copied to clipboard",
|
"gui_copied_client_auth": "Private Key copied to clipboard",
|
||||||
"gui_show_url_qr_code": "Show QR Code",
|
"gui_show_url_qr_code": "Show QR Code",
|
||||||
"gui_qr_code_dialog_title": "OnionShare 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_waiting_to_start": "Scheduled to start in {}. Click to cancel.",
|
||||||
"gui_please_wait_no_button": "Starting…",
|
"gui_please_wait_no_button": "Starting…",
|
||||||
"gui_please_wait": "Starting… Click to cancel.",
|
"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%",
|
"zip_progress_bar_format": "Compressing: %p%",
|
||||||
"gui_settings_window_title": "Settings",
|
"gui_settings_window_title": "Settings",
|
||||||
"gui_settings_autoupdate_label": "Check for new version",
|
"gui_settings_autoupdate_label": "Check for new version",
|
||||||
@ -85,11 +86,16 @@
|
|||||||
"gui_server_autostop_timer_expired": "The auto-stop timer already ran out. Please adjust it to start sharing.",
|
"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_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_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 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",
|
"share_via_onionshare": "Share via OnionShare",
|
||||||
"gui_share_url_description": "<b>Anyone</b> with this OnionShare address can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_website_url_description": "<b>Anyone</b> with this OnionShare address can <b>visit</b> your website using the <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_public_description": "<b>Anyone</b> with this OnionShare address can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Anyone</b> with this OnionShare address can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>visit</b> your website using the <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_chat_url_description": "<b>Anyone</b> with this OnionShare address can <b>join this chat room</b> using the <b>Tor Browser</b>: <img src='{}' />",
|
"gui_website_url_public_description": "<b>Anyone</b> with this OnionShare address can <b>visit</b> your website using the <b>Tor Browser</b>: <img src='{}' />",
|
||||||
|
"gui_receive_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />",
|
||||||
|
"gui_receive_url_public_description": "<b>Anyone</b> with this OnionShare address can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />",
|
||||||
|
"gui_chat_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>join this chat room</b> using the <b>Tor Browser</b>: <img src='{}' />",
|
||||||
|
"gui_chat_url_public_description": "<b>Anyone</b> with this OnionShare address can <b>join this chat room</b> using the <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_url_label_persistent": "This share will not auto-stop.<br><br>Every subsequent share reuses the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)",
|
"gui_url_label_persistent": "This share will not auto-stop.<br><br>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_stay_open": "This share will not auto-stop.",
|
||||||
"gui_url_label_onetime": "This share will stop after first completion.",
|
"gui_url_label_onetime": "This share will stop after first completion.",
|
||||||
@ -176,11 +182,9 @@
|
|||||||
"mode_settings_advanced_toggle_hide": "Hide advanced settings",
|
"mode_settings_advanced_toggle_hide": "Hide advanced settings",
|
||||||
"mode_settings_title_label": "Custom title",
|
"mode_settings_title_label": "Custom title",
|
||||||
"mode_settings_persistent_checkbox": "Save this tab, and automatically open it when I open OnionShare",
|
"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 private key)",
|
||||||
"mode_settings_autostart_timer_checkbox": "Start onion service at scheduled time",
|
"mode_settings_autostart_timer_checkbox": "Start onion service at scheduled time",
|
||||||
"mode_settings_autostop_timer_checkbox": "Stop 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_share_autostop_sharing_checkbox": "Stop sharing after files have been sent (uncheck to allow downloading individual files)",
|
"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_label": "Save files to",
|
||||||
"mode_settings_receive_data_dir_browse_button": "Browse",
|
"mode_settings_receive_data_dir_browse_button": "Browse",
|
||||||
@ -207,4 +211,4 @@
|
|||||||
"error_port_not_available": "OnionShare port not available",
|
"error_port_not_available": "OnionShare port not available",
|
||||||
"history_receive_read_message_button": "Read Message",
|
"history_receive_read_message_button": "Read Message",
|
||||||
"error_tor_protocol_error": "There was an error with Tor: {}"
|
"error_tor_protocol_error": "There was an error with Tor: {}"
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,9 @@
|
|||||||
"gui_share_start_server": "Komenci kundividon",
|
"gui_share_start_server": "Komenci kundividon",
|
||||||
"gui_share_stop_server": "Ĉesigi kundividon",
|
"gui_share_stop_server": "Ĉesigi kundividon",
|
||||||
"gui_copy_url": "Kopii URL",
|
"gui_copy_url": "Kopii URL",
|
||||||
"gui_copy_hidservauth": "Kopii HidServAuth",
|
|
||||||
"gui_downloads": "Elŝutoj:",
|
"gui_downloads": "Elŝutoj:",
|
||||||
"gui_canceled": "Nuligita",
|
"gui_canceled": "Nuligita",
|
||||||
"gui_copied_url": "URL kopiita en tondujon",
|
"gui_copied_url": "URL kopiita en tondujon",
|
||||||
"gui_copied_hidservauth": "Copied HidServAuth line to clipboard",
|
|
||||||
"gui_please_wait": "Bonvolu atendi...",
|
"gui_please_wait": "Bonvolu atendi...",
|
||||||
"gui_download_upload_progress_complete": "%p%, Tempo pasinta: {0:s}",
|
"gui_download_upload_progress_complete": "%p%, Tempo pasinta: {0:s}",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (Computing ETA)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (Computing ETA)",
|
||||||
@ -33,7 +31,6 @@
|
|||||||
"gui_share_quit_warning": "Ĉu vi certas ke vi volas foriri?\nLa URL, kiun vi kundividas ne plu ekzistos.",
|
"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_quit": "Foriri",
|
||||||
"gui_quit_warning_dont_quit": "Ne 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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare postulas almenaŭ Tor 0.2.7.1 kaj almenaŭ python3-stem 1.4.0.",
|
||||||
|
@ -28,16 +28,13 @@
|
|||||||
"help_stealth": "Usar autorización de cliente (avanzada)",
|
"help_stealth": "Usar autorización de cliente (avanzada)",
|
||||||
"help_config": "Ubicación del archivo de configuración JSON personalizado (opcional)",
|
"help_config": "Ubicación del archivo de configuración JSON personalizado (opcional)",
|
||||||
"gui_copied_url_title": "Dirección OnionShare Copiada",
|
"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_please_wait": "Comenzando… Clic para cancelar.",
|
||||||
"gui_quit_title": "No tan rápido",
|
"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%",
|
"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_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.",
|
"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_window_title": "Configuración",
|
||||||
"gui_settings_stealth_option": "Utilizar autorización de cliente",
|
"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_label": "Comprobar nuevas versiones",
|
||||||
"gui_settings_autoupdate_option": "Notifícame cuando haya una versión nueva disponible",
|
"gui_settings_autoupdate_option": "Notifícame cuando haya una versión nueva disponible",
|
||||||
"gui_settings_autoupdate_check_button": "Comprobar Nueva Versión",
|
"gui_settings_autoupdate_check_button": "Comprobar Nueva Versión",
|
||||||
@ -66,10 +63,8 @@
|
|||||||
"gui_receive_stop_server": "Detener Modo de Recepción",
|
"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": "Detener Modo de Recepción (quedan {})",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "El temporizador de parada automática termina en {}",
|
"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_no_downloads": "Ninguna Descarga Todavía",
|
||||||
"gui_canceled": "Cancelado",
|
"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_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_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 {}:{}.",
|
"settings_error_socket_port": "No se puede conectar al controlador Tor en {}:{}.",
|
||||||
@ -98,7 +93,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_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.",
|
"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",
|
"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_save_private_key_checkbox": "Usar una dirección persistente",
|
||||||
"gui_share_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>descargar</b> tus archivos usando el <b>Navegador Tor</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>descargar</b> tus archivos usando el <b>Navegador Tor</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>cargar</b> archivos a tu equipo usando el <b>Navegador Tor</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>cargar</b> archivos a tu equipo usando el <b>Navegador Tor</b>: <img src='{}' />",
|
||||||
@ -231,7 +225,6 @@
|
|||||||
"hours_first_letter": "h",
|
"hours_first_letter": "h",
|
||||||
"minutes_first_letter": "m",
|
"minutes_first_letter": "m",
|
||||||
"seconds_first_letter": "s",
|
"seconds_first_letter": "s",
|
||||||
"invalid_password_guess": "Intento de contraseña incorrecto",
|
|
||||||
"gui_website_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>visitar</b> tu sitio web usando el <b>Navegador Tor</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>visitar</b> tu sitio web usando el <b>Navegador Tor</b>: <img src='{}' />",
|
||||||
"gui_mode_website_button": "Publicar sitio web",
|
"gui_mode_website_button": "Publicar sitio web",
|
||||||
"systray_site_loaded_title": "Sitio web cargado",
|
"systray_site_loaded_title": "Sitio web cargado",
|
||||||
@ -247,7 +240,6 @@
|
|||||||
"systray_individual_file_downloaded_message": "Archivo individual {} visto",
|
"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_csp_header_disabled_option": "Deshabilitar encabezado de Política de Seguridad de Contenido",
|
||||||
"gui_settings_website_label": "Configuración de sitio web",
|
"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_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_autostop_timer_checkbox": "Detener el servicio cebolla a una hora determinada",
|
||||||
"mode_settings_autostart_timer_checkbox": "Iniciar el servicio cebolla a una hora determinada",
|
"mode_settings_autostart_timer_checkbox": "Iniciar el servicio cebolla a una hora determinada",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "توقف حالت دریافت ({} باقیمانده)",
|
"gui_receive_stop_server_autostop_timer": "توقف حالت دریافت ({} باقیمانده)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "تایمر توقف خودکار در {} به پایان می رسد",
|
"gui_receive_stop_server_autostop_timer_tooltip": "تایمر توقف خودکار در {} به پایان می رسد",
|
||||||
"gui_copy_url": "کپی آدرس",
|
"gui_copy_url": "کپی آدرس",
|
||||||
"gui_copy_hidservauth": "کپی HidServAuth",
|
|
||||||
"gui_downloads": "دانلود تاریخچه",
|
"gui_downloads": "دانلود تاریخچه",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "لغو شده",
|
"gui_canceled": "لغو شده",
|
||||||
"gui_copied_url_title": "آدرس OnionShare کپی شد",
|
"gui_copied_url_title": "آدرس OnionShare کپی شد",
|
||||||
"gui_copied_url": "آدرس OnionShare بر کلیپ بورد کپی شد",
|
"gui_copied_url": "آدرس OnionShare بر کلیپ بورد کپی شد",
|
||||||
"gui_copied_hidservauth_title": "HidServAuth کپی شد",
|
|
||||||
"gui_copied_hidservauth": "خط HidServAuth بر کلیپ بورد کپی شد",
|
|
||||||
"gui_please_wait": "در حال آغاز... برای لغو کلیک کنید.",
|
"gui_please_wait": "در حال آغاز... برای لغو کلیک کنید.",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "شما در پروسه دریافت پرونده هستید. مطمئنید که میخواهید از OnionShare خارج شوید؟",
|
"gui_receive_quit_warning": "شما در پروسه دریافت پرونده هستید. مطمئنید که میخواهید از OnionShare خارج شوید؟",
|
||||||
"gui_quit_warning_quit": "خروج",
|
"gui_quit_warning_quit": "خروج",
|
||||||
"gui_quit_warning_dont_quit": "لغو",
|
"gui_quit_warning_dont_quit": "لغو",
|
||||||
"error_rate_limit": "شخصی تعداد زیادی تلاش ناموفق برای حدس زدن گذرواژه شما داشته است، بنابراین OnionShare کارساز را متوقف کرده است. همرسانی را دوباره آغاز کنید و به گیرنده، یک نشانی جدید برای همرسانی بفرستید.",
|
|
||||||
"zip_progress_bar_format": "فشرده سازی: %p%",
|
"zip_progress_bar_format": "فشرده سازی: %p%",
|
||||||
"error_stealth_not_supported": "برای استفاده از احراز هویت کلاینت، شما نیاز به داشتن Tor 0.2.9.1-alpha (یا مرورگر Tor 6.5) و python3-stem 1.5.0 دارید.",
|
"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 نیاز دارد.",
|
"error_ephemeral_not_supported": "OnionShare حداقل به Tor 0.2.7.1 و python3-stem 1.4.0 نیاز دارد.",
|
||||||
"gui_settings_window_title": "تنظیمات",
|
"gui_settings_window_title": "تنظیمات",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>این چیست؟</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>این چیست؟</a>",
|
||||||
"gui_settings_stealth_option": "استفاده از احراز هویت کلاینت",
|
"gui_settings_stealth_option": "استفاده از احراز هویت کلاینت",
|
||||||
"gui_settings_stealth_hidservauth_string": "ذخیره کردن کلید خصوصی برای استفاده دوباره، بدین معناست که الان میتوانید برای کپی HidServAuth کلیک کنید.",
|
|
||||||
"gui_settings_autoupdate_label": "بررسی برای نسخه جدید",
|
"gui_settings_autoupdate_label": "بررسی برای نسخه جدید",
|
||||||
"gui_settings_autoupdate_option": "زمانی که نسخه جدید موجود بود من را خبر کن",
|
"gui_settings_autoupdate_option": "زمانی که نسخه جدید موجود بود من را خبر کن",
|
||||||
"gui_settings_autoupdate_timestamp": "آخرین بررسی: {}",
|
"gui_settings_autoupdate_timestamp": "آخرین بررسی: {}",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "زمانسنج توقف خودکار، قبل از آغاز کارساز به پایان رسید. لطفا یک همرسانی جدید درست کنید.",
|
"gui_server_started_after_autostop_timer": "زمانسنج توقف خودکار، قبل از آغاز کارساز به پایان رسید. لطفا یک همرسانی جدید درست کنید.",
|
||||||
"gui_server_autostop_timer_expired": "زمانسنج توقف خودکار به پایان رسید. لطفا برای آغاز همرسانی آن را تنظیم کنید.",
|
"gui_server_autostop_timer_expired": "زمانسنج توقف خودکار به پایان رسید. لطفا برای آغاز همرسانی آن را تنظیم کنید.",
|
||||||
"share_via_onionshare": "همرسانی با OnionShare",
|
"share_via_onionshare": "همرسانی با OnionShare",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "استفاده از آدرسهای بازمانده",
|
|
||||||
"gui_save_private_key_checkbox": "استفاده از یک آدرس پایا",
|
"gui_save_private_key_checkbox": "استفاده از یک آدرس پایا",
|
||||||
"gui_share_url_description": "<b>هرکس</b> با این آدرس OnionShare میتواند روی کامپیوتر شما پرونده <b>بارگیری</b> کند از طریق <b>مرورگر تور</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>هرکس</b> با این آدرس OnionShare میتواند روی کامپیوتر شما پرونده <b>بارگیری</b> کند از طریق <b>مرورگر تور</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>هرکس</b> با این آدرس OnionShare میتواند روی کامپیوتر شما پرونده <b>بارگذاری</b> کند از طریق <b>مرورگر تور</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>هرکس</b> با این آدرس OnionShare میتواند روی کامپیوتر شما پرونده <b>بارگذاری</b> کند از طریق <b>مرورگر تور</b>: <img src='{}' />",
|
||||||
|
@ -41,23 +41,18 @@
|
|||||||
"gui_receive_stop_server": "Lopeta vastaanottotila",
|
"gui_receive_stop_server": "Lopeta vastaanottotila",
|
||||||
"gui_receive_stop_server_autostop_timer": "Lopeta vastaanottotila ({} jäljellä)",
|
"gui_receive_stop_server_autostop_timer": "Lopeta vastaanottotila ({} jäljellä)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Auto-stop ajastin loppuu kello {}",
|
"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_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/",
|
"version_string": "OnionShare {0:s} | https://onionshare.org/",
|
||||||
"gui_quit_title": "Ei niin nopeasti",
|
"gui_quit_title": "Ei niin nopeasti",
|
||||||
"gui_share_quit_warning": "Olet lähettämässä tiedostoja. Haluatko varmasti lopettaa OnionSharen?",
|
"gui_share_quit_warning": "Olet lähettämässä tiedostoja. Haluatko varmasti lopettaa OnionSharen?",
|
||||||
"gui_receive_quit_warning": "Olet vastaanottamassa tiedostoja. Haluatko varmasti lopettaa OnionSharen?",
|
"gui_receive_quit_warning": "Olet vastaanottamassa tiedostoja. Haluatko varmasti lopettaa OnionSharen?",
|
||||||
"gui_quit_warning_quit": "Lopeta",
|
"gui_quit_warning_quit": "Lopeta",
|
||||||
"gui_quit_warning_dont_quit": "Peruuta",
|
"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_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.",
|
"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",
|
"gui_settings_window_title": "Asetukset",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Mikä tämä on?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Mikä tämä on?</a>",
|
||||||
"gui_settings_stealth_option": "Käytä asiakaslupaa",
|
"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_label": "Tarkista päivitykset",
|
||||||
"gui_settings_autoupdate_option": "Ilmoita minulle, kun uusi versio on saatavilla",
|
"gui_settings_autoupdate_option": "Ilmoita minulle, kun uusi versio on saatavilla",
|
||||||
"gui_settings_autoupdate_timestamp": "Viimeksi tarkistettu: {}",
|
"gui_settings_autoupdate_timestamp": "Viimeksi tarkistettu: {}",
|
||||||
@ -124,7 +119,6 @@
|
|||||||
"gui_server_autostop_timer_expired": "Automaattinen pysäytysajastin päättyi jo.\nSäädä se jaon aloittamiseksi.",
|
"gui_server_autostop_timer_expired": "Automaattinen pysäytysajastin päättyi jo.\nSäädä se jaon aloittamiseksi.",
|
||||||
"share_via_onionshare": "Jaa OnionSharella",
|
"share_via_onionshare": "Jaa OnionSharella",
|
||||||
"gui_connect_to_tor_for_onion_settings": "Yhdistä Tor-verkkoon nähdäksesi onion palvelun asetukset",
|
"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_save_private_key_checkbox": "Käytä pysyviä osoitteita",
|
||||||
"gui_share_url_description": "<b>Kaikki</b> joilla on tämä OnionShare-osoite voivat <b>ladata</b> tiedostojasi käyttämällä <b>Tor-selainta</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Kaikki</b> joilla on tämä OnionShare-osoite voivat <b>ladata</b> tiedostojasi käyttämällä <b>Tor-selainta</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Kaikki</b> joilla on tämä OnionShare-osoite voivat <b>lähettää</b>tiedostoja tietokoneellesi käyttämällä <b>Tor-selainta</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Kaikki</b> joilla on tämä OnionShare-osoite voivat <b>lähettää</b>tiedostoja tietokoneellesi käyttämällä <b>Tor-selainta</b>: <img src='{}' />",
|
||||||
@ -222,7 +216,6 @@
|
|||||||
"gui_new_tab_tooltip": "Avaa uusi välilehti",
|
"gui_new_tab_tooltip": "Avaa uusi välilehti",
|
||||||
"gui_new_tab": "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_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_legacy_checkbox": "Käytä vanhaa osoitetta (v2 onion-palvelu, ei suositella)",
|
||||||
"mode_settings_autostop_timer_checkbox": "Lopeta onion-palvelu tiettyyn kellon aikaan",
|
"mode_settings_autostop_timer_checkbox": "Lopeta onion-palvelu tiettyyn kellon aikaan",
|
||||||
"mode_settings_autostart_timer_checkbox": "Aloita onion-palvelu tiettyyn kellon aikaan",
|
"mode_settings_autostart_timer_checkbox": "Aloita onion-palvelu tiettyyn kellon aikaan",
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
"gui_share_start_server": "Commencer le partage",
|
"gui_share_start_server": "Commencer le partage",
|
||||||
"gui_share_stop_server": "Arrêter le partage",
|
"gui_share_stop_server": "Arrêter le partage",
|
||||||
"gui_copy_url": "Copier l’adresse",
|
"gui_copy_url": "Copier l’adresse",
|
||||||
"gui_copy_hidservauth": "Copier HidServAuth",
|
|
||||||
"gui_downloads": "Historique de téléchargement",
|
"gui_downloads": "Historique de téléchargement",
|
||||||
"gui_canceled": "Annulé",
|
"gui_canceled": "Annulé",
|
||||||
"gui_copied_url": "L’adresse OnionShare a été copiée dans le presse-papiers",
|
"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.",
|
"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",
|
"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",
|
"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_window_title": "Paramètres",
|
||||||
"gui_settings_autoupdate_timestamp": "Dernière vérification : {}",
|
"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",
|
"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",
|
"connecting_to_tor": "Connexion au réseau Tor",
|
||||||
"help_config": "Emplacement du fichier personnalisé de configuration JSON (facultatif)",
|
"help_config": "Emplacement du fichier personnalisé de configuration JSON (facultatif)",
|
||||||
"large_filesize": "Avertissement : L’envoi d’un partage volumineux peut prendre des heures",
|
"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/",
|
"version_string": "OnionShare {0:s} | https://onionshare.org/",
|
||||||
"zip_progress_bar_format": "Compression : %p %",
|
"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.",
|
"error_ephemeral_not_supported": "OnionShare exige au moins et Tor 0.2.7.1 et python3-stem 1.4.0.",
|
||||||
@ -152,18 +149,15 @@
|
|||||||
"gui_download_upload_progress_complete": "%p%, {0:s} écoulées.",
|
"gui_download_upload_progress_complete": "%p%, {0:s} écoulées.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (estimation)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (estimation)",
|
||||||
"gui_download_upload_progress_eta": "{0:s}, Fin : {1:s}, %p%",
|
"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.",
|
"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",
|
"gui_settings_stealth_option": "Utiliser l’autorisation du client",
|
||||||
"timeout_upload_still_running": "En attente de la fin de l'envoi",
|
"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",
|
"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 : {}.",
|
"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 ?",
|
"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 ?",
|
||||||
"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…",
|
"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_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_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_in_progress_uploads_tooltip": "{} envoi(s) en cours",
|
||||||
"info_completed_uploads_tooltip": "{} envoi(s) terminé(s)",
|
"info_completed_uploads_tooltip": "{} envoi(s) terminé(s)",
|
||||||
"error_cannot_create_downloads_dir": "Impossible de créer le dossier du mode réception : {}",
|
"error_cannot_create_downloads_dir": "Impossible de créer le dossier du mode réception : {}",
|
||||||
@ -233,7 +227,6 @@
|
|||||||
"systray_website_started_title": "Début du partage du site Web",
|
"systray_website_started_title": "Début du partage du site Web",
|
||||||
"systray_website_started_message": "Quelqu’un visite votre 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é",
|
"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",
|
"gui_mode_website_button": "Publier un site Web",
|
||||||
"incorrect_password": "Le mot de passe est erroné",
|
"incorrect_password": "Le mot de passe est erroné",
|
||||||
"gui_settings_individual_downloads_label": "Décocher pour permettre le téléchargement de fichiers individuels",
|
"gui_settings_individual_downloads_label": "Décocher pour permettre le téléchargement de fichiers individuels",
|
||||||
@ -258,7 +251,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Parcourir",
|
"mode_settings_receive_data_dir_browse_button": "Parcourir",
|
||||||
"mode_settings_receive_data_dir_label": "Enregistrer les fichiers dans",
|
"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_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_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_public_checkbox": "Ne pas utiliser un mot de passe",
|
||||||
"mode_settings_persistent_checkbox": "Enregistrer cet onglet et l’ouvrir automatiquement quand j’ouvre OnionShare",
|
"mode_settings_persistent_checkbox": "Enregistrer cet onglet et l’ouvrir automatiquement quand j’ouvre OnionShare",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Stop an Mód Glactha ({} fágtha)",
|
"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_receive_stop_server_autostop_timer_tooltip": "Amadóir uathstoptha caite {}",
|
||||||
"gui_copy_url": "Cóipeáil an Seoladh",
|
"gui_copy_url": "Cóipeáil an Seoladh",
|
||||||
"gui_copy_hidservauth": "Cóipeáil HidServAuth",
|
|
||||||
"gui_downloads": "Stair Íoslódála",
|
"gui_downloads": "Stair Íoslódála",
|
||||||
"gui_no_downloads": "Níl aon rud íoslódáilte agat fós",
|
"gui_no_downloads": "Níl aon rud íoslódáilte agat fós",
|
||||||
"gui_canceled": "Curtha ar ceal",
|
"gui_canceled": "Curtha ar ceal",
|
||||||
"gui_copied_url_title": "Cóipeáladh an Seoladh OnionShare",
|
"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_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_please_wait": "Ag tosú... Cliceáil lena chur ar ceal.",
|
||||||
"gui_download_upload_progress_complete": "%[%, {0:s} caite.",
|
"gui_download_upload_progress_complete": "%[%, {0:s} caite.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (á áireamh)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (á áireamh)",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"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_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_quit": "Scoir",
|
||||||
"gui_quit_warning_dont_quit": "Cealaigh",
|
"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%",
|
"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_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.",
|
"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.",
|
||||||
"gui_settings_window_title": "Socruithe",
|
"gui_settings_window_title": "Socruithe",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Cad é seo</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Cad é seo</a>",
|
||||||
"gui_settings_stealth_option": "Úsáid údarú cliaint",
|
"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_label": "Lorg nuashonruithe",
|
||||||
"gui_settings_autoupdate_option": "Cuir in iúl dom nuair a bheidh leagan nua ar fáil",
|
"gui_settings_autoupdate_option": "Cuir in iúl dom nuair a bheidh leagan nua ar fáil",
|
||||||
"gui_settings_autoupdate_timestamp": "Seiceáilte: {}",
|
"gui_settings_autoupdate_timestamp": "Seiceáilte: {}",
|
||||||
@ -134,7 +129,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_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.",
|
"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",
|
"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_save_private_key_checkbox": "Úsáid seoladh seasmhach",
|
||||||
"gui_share_url_description": "Tá <b>aon duine</b> a bhfuil an seoladh OnionShare aige/aici in ann do chuid comhad a <b>íoslódáil</b> le <b>Brabhsálaí Tor</b>: <img src='{}' />",
|
"gui_share_url_description": "Tá <b>aon duine</b> a bhfuil an seoladh OnionShare aige/aici in ann do chuid comhad a <b>íoslódáil</b> le <b>Brabhsálaí Tor</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "Tá <b>aon duine</b> a bhfuil an seoladh OnionShare aige/aici in ann comhaid a <b>uaslódáil</b> go dtí do ríomhaire le <b>Brabhsálaí Tor</b>: <img src='{}' />",
|
"gui_receive_url_description": "Tá <b>aon duine</b> a bhfuil an seoladh OnionShare aige/aici in ann comhaid a <b>uaslódáil</b> go dtí do ríomhaire le <b>Brabhsálaí Tor</b>: <img src='{}' />",
|
||||||
|
@ -24,17 +24,13 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Deter o modo Recepción ({} restante)",
|
"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_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_url": "Copiar enderezo",
|
||||||
"gui_copy_hidservauth": "Copiar HidServAuth",
|
|
||||||
"gui_canceled": "Cancelado",
|
"gui_canceled": "Cancelado",
|
||||||
"gui_copied_url_title": "Enderezo de OnionShare copiado",
|
"gui_copied_url_title": "Enderezo de OnionShare copiado",
|
||||||
"gui_copied_url": "Enderezo OnionShare copiado ó portapapeis",
|
"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_show_url_qr_code": "Mostrar código QR",
|
||||||
"gui_qr_code_dialog_title": "Código QR OnionShare",
|
"gui_qr_code_dialog_title": "Código QR OnionShare",
|
||||||
"gui_waiting_to_start": "Programado para comezar en {}. Fai clic para cancelar.",
|
"gui_waiting_to_start": "Programado para comezar en {}. Fai clic para cancelar.",
|
||||||
"gui_please_wait": "Iniciando... Fai click 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%",
|
"zip_progress_bar_format": "Comprimindo: %p%",
|
||||||
"gui_settings_window_title": "Axustes",
|
"gui_settings_window_title": "Axustes",
|
||||||
"gui_settings_autoupdate_label": "Comproba se hai nova versión",
|
"gui_settings_autoupdate_label": "Comproba se hai nova versión",
|
||||||
@ -169,7 +165,6 @@
|
|||||||
"mode_settings_autostart_timer_checkbox": "Iniciar o servizo onion na hora programada",
|
"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_autostop_timer_checkbox": "Deter o servizo onion na hora programada",
|
||||||
"mode_settings_legacy_checkbox": "Usar enderezos antigos (servizo onion v2, non recomendado)",
|
"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_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_label": "Gardar ficheiros en",
|
||||||
"mode_settings_receive_data_dir_browse_button": "Navegar",
|
"mode_settings_receive_data_dir_browse_button": "Navegar",
|
||||||
|
@ -45,14 +45,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -63,14 +60,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "",
|
"gui_quit_warning_quit": "",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -135,7 +130,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -47,14 +47,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "העתק כתובת",
|
"gui_copy_url": "העתק כתובת",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "מבוטל",
|
"gui_canceled": "מבוטל",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -65,14 +62,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "יציאה",
|
"gui_quit_warning_quit": "יציאה",
|
||||||
"gui_quit_warning_dont_quit": "ביטול",
|
"gui_quit_warning_dont_quit": "ביטול",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "הגדרות",
|
"gui_settings_window_title": "הגדרות",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "בדיקה לאיתור גרסה חדשה",
|
"gui_settings_autoupdate_label": "בדיקה לאיתור גרסה חדשה",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -138,7 +133,6 @@
|
|||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_connect_to_tor_for_onion_settings": "",
|
"gui_connect_to_tor_for_onion_settings": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -36,12 +36,9 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "रिसीव मोड बंद करें ({} remaining)",
|
"gui_receive_stop_server_autostop_timer": "रिसीव मोड बंद करें ({} remaining)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "पता कॉपी करें",
|
"gui_copy_url": "पता कॉपी करें",
|
||||||
"gui_copy_hidservauth": "HidServAuth कॉपी करें",
|
|
||||||
"gui_canceled": "रद्द हो गया",
|
"gui_canceled": "रद्द हो गया",
|
||||||
"gui_copied_url_title": "OnionShare पता कॉपी हो गया",
|
"gui_copied_url_title": "OnionShare पता कॉपी हो गया",
|
||||||
"gui_copied_url": "OnionShare पता क्लिपबोर्ड में कॉपी हो गया",
|
"gui_copied_url": "OnionShare पता क्लिपबोर्ड में कॉपी हो गया",
|
||||||
"gui_copied_hidservauth_title": "HidServAuth कॉपी हो गया",
|
|
||||||
"gui_copied_hidservauth": "HidServAuth लाइन क्लिपबोर्ड में कॉपी हो गया",
|
|
||||||
"gui_please_wait": "शुरू हो रहा है... रद्द करने के लिए क्लिक करें।",
|
"gui_please_wait": "शुरू हो रहा है... रद्द करने के लिए क्लिक करें।",
|
||||||
"version_string": "",
|
"version_string": "",
|
||||||
"gui_quit_title": "इतनी तेज़ी से नहीं",
|
"gui_quit_title": "इतनी तेज़ी से नहीं",
|
||||||
@ -49,14 +46,12 @@
|
|||||||
"gui_receive_quit_warning": "आप अभी फाइलों को प्राप्त रहे हैं। क्या आप वाकई OnionShare को बंद करना चाहते हैं?",
|
"gui_receive_quit_warning": "आप अभी फाइलों को प्राप्त रहे हैं। क्या आप वाकई OnionShare को बंद करना चाहते हैं?",
|
||||||
"gui_quit_warning_quit": "छोड़ें",
|
"gui_quit_warning_quit": "छोड़ें",
|
||||||
"gui_quit_warning_dont_quit": "रद्द करें",
|
"gui_quit_warning_dont_quit": "रद्द करें",
|
||||||
"error_rate_limit": "किसी ने आपके पासवर्ड का अंदाज़ा लगाने के लिए कई सारे गलत प्रयास किए हैं, इसीलिए OnionShare ने सर्वर रोक दिया है। साझा पुनः शुरू करें और साझा करने के लिए भेजनेवाले व्यक्ति को एक नया पता साझा करें।",
|
|
||||||
"zip_progress_bar_format": "कॉम्प्रेस हो रहा है: %p%",
|
"zip_progress_bar_format": "कॉम्प्रेस हो रहा है: %p%",
|
||||||
"error_stealth_not_supported": "क्लाइंट सत्यापन उपयोग करने के लिए, आपको कम से कम Tor 0.2.9.1-alpha (या Tor Browser 6.5) और python3-stem 1.5.0 दोनों चाहिए।",
|
"error_stealth_not_supported": "क्लाइंट सत्यापन उपयोग करने के लिए, आपको कम से कम Tor 0.2.9.1-alpha (या Tor Browser 6.5) और python3-stem 1.5.0 दोनों चाहिए।",
|
||||||
"error_ephemeral_not_supported": "OnionShare को कम से कम Tor 0.2.7.1 और python3-stem 1.4.0 की आवश्यकता है।",
|
"error_ephemeral_not_supported": "OnionShare को कम से कम Tor 0.2.7.1 और python3-stem 1.4.0 की आवश्यकता है।",
|
||||||
"gui_settings_window_title": "सेटिंग्स",
|
"gui_settings_window_title": "सेटिंग्स",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>यह क्या है</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>यह क्या है</a>",
|
||||||
"gui_settings_stealth_option": "क्लाइंट सत्यापन उपयोग करें",
|
"gui_settings_stealth_option": "क्लाइंट सत्यापन उपयोग करें",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "नए संस्करण की जांच करें",
|
"gui_settings_autoupdate_label": "नए संस्करण की जांच करें",
|
||||||
"gui_settings_autoupdate_option": "जब कोई नया संस्करण आए तो मुझे सूचित करें",
|
"gui_settings_autoupdate_option": "जब कोई नया संस्करण आए तो मुझे सूचित करें",
|
||||||
"gui_settings_autoupdate_timestamp": "अंतिम जांच: {}",
|
"gui_settings_autoupdate_timestamp": "अंतिम जांच: {}",
|
||||||
@ -123,7 +118,6 @@
|
|||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_connect_to_tor_for_onion_settings": "",
|
"gui_connect_to_tor_for_onion_settings": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -22,12 +22,9 @@
|
|||||||
"gui_receive_stop_server": "Prekini modus primanja",
|
"gui_receive_stop_server": "Prekini modus primanja",
|
||||||
"gui_receive_stop_server_autostop_timer": "Prekini modus primanja ({} preostalo)",
|
"gui_receive_stop_server_autostop_timer": "Prekini modus primanja ({} preostalo)",
|
||||||
"gui_copy_url": "Kopiraj adresu",
|
"gui_copy_url": "Kopiraj adresu",
|
||||||
"gui_copy_hidservauth": "Kopiraj HidServAuth",
|
|
||||||
"gui_canceled": "Prekinuto",
|
"gui_canceled": "Prekinuto",
|
||||||
"gui_copied_url_title": "OnionShare adresa je kopirana",
|
"gui_copied_url_title": "OnionShare adresa je kopirana",
|
||||||
"gui_copied_url": "OnionShare adresa je kopirana u međuspremnik",
|
"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_waiting_to_start": "Planirano pokretanje za {}. Pritisni za prekid.",
|
||||||
"gui_please_wait": "Pokretanje … Pritisni za prekid.",
|
"gui_please_wait": "Pokretanje … Pritisni za prekid.",
|
||||||
"gui_quit_title": "Ne tako brzo",
|
"gui_quit_title": "Ne tako brzo",
|
||||||
@ -35,14 +32,12 @@
|
|||||||
"gui_receive_quit_warning": "Proces primanja datoteka je u tijeku. Zaista želiš zatvoriti OnionShare?",
|
"gui_receive_quit_warning": "Proces primanja datoteka je u tijeku. Zaista želiš zatvoriti OnionShare?",
|
||||||
"gui_quit_warning_quit": "Izađi",
|
"gui_quit_warning_quit": "Izađi",
|
||||||
"gui_quit_warning_dont_quit": "Odustani",
|
"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 %",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare zahtijeva barem Tor 0.2.7.1 i python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Postavke",
|
"gui_settings_window_title": "Postavke",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Što je ovo?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Što je ovo?</a>",
|
||||||
"gui_settings_stealth_option": "Koristi autorizaciju klijenta",
|
"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_label": "Traži nove verzije",
|
||||||
"gui_settings_autoupdate_option": "Obavijesti me o novim verzijama",
|
"gui_settings_autoupdate_option": "Obavijesti me o novim verzijama",
|
||||||
"gui_settings_autoupdate_timestamp": "Zadnja provjera: {}",
|
"gui_settings_autoupdate_timestamp": "Zadnja provjera: {}",
|
||||||
@ -114,7 +109,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.",
|
"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",
|
"share_via_onionshare": "Dijeli putem OnionSharea",
|
||||||
"gui_connect_to_tor_for_onion_settings": "Poveži se s Torom za prikaz postavki Onion usluge",
|
"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_save_private_key_checkbox": "Koristi trajnu adresu",
|
||||||
"gui_share_url_description": "<b>Svatko</b> s ovom OnionShare adresom može <b>preuzeti</b> tvoje datoteke koristeći <b>Tor preglednik</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Svatko</b> s ovom OnionShare adresom može <b>preuzeti</b> tvoje datoteke koristeći <b>Tor preglednik</b>: <img src='{}' />",
|
||||||
"gui_website_url_description": "<b>Svatko</b> s ovom OnionShare adresom može <b>posjetiti</b> tvoju web-stranicu koristeći <b>Tor preglednik</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Svatko</b> s ovom OnionShare adresom može <b>posjetiti</b> tvoju web-stranicu koristeći <b>Tor preglednik</b>: <img src='{}' />",
|
||||||
@ -184,7 +178,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Pregledaj",
|
"mode_settings_receive_data_dir_browse_button": "Pregledaj",
|
||||||
"mode_settings_receive_data_dir_label": "Spremi datoteke u",
|
"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_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_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_autostop_timer_checkbox": "Prekini onion uslugu u planirano vrijeme",
|
||||||
"mode_settings_autostart_timer_checkbox": "Pokreni onion uslugu u planirano vrijeme",
|
"mode_settings_autostart_timer_checkbox": "Pokreni onion uslugu u planirano vrijeme",
|
||||||
|
@ -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": "Fogadó mód leállítása ({} van hátra)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "Cím másolása",
|
"gui_copy_url": "Cím másolása",
|
||||||
"gui_copy_hidservauth": "HidServAuth másolása",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "Megszakítva",
|
"gui_canceled": "Megszakítva",
|
||||||
"gui_copied_url_title": "OnionShare-cím másolva",
|
"gui_copied_url_title": "OnionShare-cím másolva",
|
||||||
"gui_copied_url": "OnionShare-cím a vágólapra 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_please_wait": "Indítás... Kattints a megszakításhoz.",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "A fájlok fogadása folyamatban van. Biztosan kilépsz az OnionShare-ből?",
|
"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_quit": "Kilépés",
|
||||||
"gui_quit_warning_dont_quit": "Mégse",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "Az OnionShare minimális követelményei: Tor 0.2.7.1 és python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Beállítások",
|
"gui_settings_window_title": "Beállítások",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Mi ez?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Mi ez?</a>",
|
||||||
"gui_settings_stealth_option": "Kliens-hitelesítés használata",
|
"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_label": "Új verzió keresése",
|
||||||
"gui_settings_autoupdate_option": "Értesítést kérek, ha új verzió érhető el",
|
"gui_settings_autoupdate_option": "Értesítést kérek, ha új verzió érhető el",
|
||||||
"gui_settings_autoupdate_timestamp": "Utoljára ellenőrizve: {}",
|
"gui_settings_autoupdate_timestamp": "Utoljára ellenőrizve: {}",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Menghentikan Mode Menerima ({}d tersisa)",
|
"gui_receive_stop_server_autostop_timer": "Menghentikan Mode Menerima ({}d tersisa)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "Salin Alamat",
|
"gui_copy_url": "Salin Alamat",
|
||||||
"gui_copy_hidservauth": "Salin HidServAuth",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "Dibatalkan",
|
"gui_canceled": "Dibatalkan",
|
||||||
"gui_copied_url_title": "Alamat OnionShare disalin",
|
"gui_copied_url_title": "Alamat OnionShare disalin",
|
||||||
"gui_copied_url": "Alamat OnionShare disalin ke papan klip",
|
"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_please_wait": "Memulai... Klik untuk membatalkan.",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "Anda sedang dalam proses menerima berkas. Apakah Anda yakin ingin menghentikan OnionShare?",
|
"gui_receive_quit_warning": "Anda sedang dalam proses menerima berkas. Apakah Anda yakin ingin menghentikan OnionShare?",
|
||||||
"gui_quit_warning_quit": "Keluar",
|
"gui_quit_warning_quit": "Keluar",
|
||||||
"gui_quit_warning_dont_quit": "Batal",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare memerlukan setidaknya Tor 0.2.7.1 dan python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Pengaturan",
|
"gui_settings_window_title": "Pengaturan",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Apakah ini?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Apakah ini?</a>",
|
||||||
"gui_settings_stealth_option": "Gunakan otorisasi klien",
|
"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_label": "Periksa versi terbaru",
|
||||||
"gui_settings_autoupdate_option": "Beritahu saya ketika versi baru tersedia",
|
"gui_settings_autoupdate_option": "Beritahu saya ketika versi baru tersedia",
|
||||||
"gui_settings_autoupdate_timestamp": "Terakhir diperiksa: {}",
|
"gui_settings_autoupdate_timestamp": "Terakhir diperiksa: {}",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "Timer berhenti otomatis habis sebelum server dimulai. Silakan buat pembagian baru.",
|
"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.",
|
"gui_server_autostop_timer_expired": "Timer berhenti otomatis sudah habis. Silakan sesuaikan untuk mulai berbagi.",
|
||||||
"share_via_onionshare": "Bagikan via OnionShare",
|
"share_via_onionshare": "Bagikan via OnionShare",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "<b>Siapa saja</b> dengan alamat OnionShare ini dapat <b>mengunduh</b> berkas Anda menggunakan <b>Tor Browser</b>:<img src='{}' />",
|
"gui_share_url_description": "<b>Siapa saja</b> dengan alamat OnionShare ini dapat <b>mengunduh</b> berkas Anda menggunakan <b>Tor Browser</b>:<img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Siapa saja</b> dengan alamat OnionShare ini dapat <b>mengunggah</b> berkas ke komputer Anda menggunakan <b>Tor Browser</b>:<img src='{}' />",
|
"gui_receive_url_description": "<b>Siapa saja</b> dengan alamat OnionShare ini dapat <b>mengunggah</b> berkas ke komputer Anda menggunakan <b>Tor Browser</b>:<img src='{}' />",
|
||||||
@ -217,7 +211,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Telusur",
|
"mode_settings_receive_data_dir_browse_button": "Telusur",
|
||||||
"mode_settings_receive_data_dir_label": "Simpan file ke",
|
"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_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_legacy_checkbox": "Gunakan alamat legacy (layanan onion v2, tidak disarankan)",
|
||||||
"mode_settings_autostop_timer_checkbox": "Hentikan layanan onion pada waktu yang dijadwalkan",
|
"mode_settings_autostop_timer_checkbox": "Hentikan layanan onion pada waktu yang dijadwalkan",
|
||||||
"mode_settings_autostart_timer_checkbox": "Mulai layanan onion pada waktu yang dijadwalkan",
|
"mode_settings_autostart_timer_checkbox": "Mulai layanan onion pada waktu yang dijadwalkan",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Hætta í móttökuham ({} eftir)",
|
"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_receive_stop_server_autostop_timer_tooltip": "Sjálfvirk niðurtalning endar {}",
|
||||||
"gui_copy_url": "Afrita vistfang",
|
"gui_copy_url": "Afrita vistfang",
|
||||||
"gui_copy_hidservauth": "Afrita HidServAuth",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "Hætt við",
|
"gui_canceled": "Hætt við",
|
||||||
"gui_copied_url_title": "Afritaði OnionShare-vistfang",
|
"gui_copied_url_title": "Afritaði OnionShare-vistfang",
|
||||||
"gui_copied_url": "OnionShare-vistfang afritað á klippispjald",
|
"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_please_wait": "Ræsi... Smelltu til að hætta við.",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "Þú ert að taka á móti skrám. Ertu viss um að þú viljir hætta í OnionShare?",
|
"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_quit": "Hætta",
|
||||||
"gui_quit_warning_dont_quit": "Hætta við",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare krefst a.m.k. bæði Tor 0.2.7.1 og python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Stillingar",
|
"gui_settings_window_title": "Stillingar",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Hvað er þetta?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Hvað er þetta?</a>",
|
||||||
"gui_settings_stealth_option": "Nota auðkenningu biðlaraforrits",
|
"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_label": "Athuga með nýja útgáfu",
|
||||||
"gui_settings_autoupdate_option": "Láta vita þegar ný útgáfa er tiltæk",
|
"gui_settings_autoupdate_option": "Láta vita þegar ný útgáfa er tiltæk",
|
||||||
"gui_settings_autoupdate_timestamp": "Síðast athugað: {}",
|
"gui_settings_autoupdate_timestamp": "Síðast athugað: {}",
|
||||||
@ -133,7 +128,6 @@
|
|||||||
"gui_tor_connection_lost": "Aftengt frá Tor.",
|
"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.",
|
"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",
|
"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_save_private_key_checkbox": "Nota viðvarandi vistföng",
|
||||||
"gui_share_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>sótt</b> skrárnar þínar með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>sótt</b> skrárnar þínar með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>sent skrár inn</b> á tölvuna þína með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>sent skrár inn</b> á tölvuna þína með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
|
||||||
@ -226,7 +220,6 @@
|
|||||||
"hours_first_letter": "klst",
|
"hours_first_letter": "klst",
|
||||||
"minutes_first_letter": "mín",
|
"minutes_first_letter": "mín",
|
||||||
"seconds_first_letter": "sek",
|
"seconds_first_letter": "sek",
|
||||||
"invalid_password_guess": "Ógilt lykilorð",
|
|
||||||
"gui_website_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>skoðað</b> vefsvæðið þitt með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>skoðað</b> vefsvæðið þitt með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
|
||||||
"gui_mode_website_button": "Birta vefsvæði",
|
"gui_mode_website_button": "Birta vefsvæði",
|
||||||
"gui_website_mode_no_files": "Ennþá hefur engu vefsvæði verið deilt",
|
"gui_website_mode_no_files": "Ennþá hefur engu vefsvæði verið deilt",
|
||||||
@ -256,7 +249,6 @@
|
|||||||
"mode_settings_advanced_toggle_show": "Birta ítarlegar stillingar",
|
"mode_settings_advanced_toggle_show": "Birta ítarlegar stillingar",
|
||||||
"gui_new_tab_tooltip": "Opna nýjan flipa",
|
"gui_new_tab_tooltip": "Opna nýjan flipa",
|
||||||
"gui_new_tab_receive_button": "Taka á móti skrám",
|
"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",
|
"mode_settings_advanced_toggle_hide": "Fela ítarlegar stillingar",
|
||||||
"gui_quit_warning_cancel": "Hætta við",
|
"gui_quit_warning_cancel": "Hætta við",
|
||||||
"gui_close_tab_warning_title": "Ertu viss?",
|
"gui_close_tab_warning_title": "Ertu viss?",
|
||||||
|
@ -48,11 +48,8 @@
|
|||||||
"gui_receive_stop_server": "Arresta modalità Ricezione",
|
"gui_receive_stop_server": "Arresta modalità Ricezione",
|
||||||
"gui_receive_stop_server_autostop_timer": "Interrompi la ricezione ({} rimanenti)",
|
"gui_receive_stop_server_autostop_timer": "Interrompi la ricezione ({} rimanenti)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Il timer termina tra {}",
|
"gui_receive_stop_server_autostop_timer_tooltip": "Il timer termina tra {}",
|
||||||
"gui_copy_hidservauth": "Copia HidServAuth",
|
|
||||||
"gui_no_downloads": "Ancora nessun Download",
|
"gui_no_downloads": "Ancora nessun Download",
|
||||||
"gui_copied_url_title": "Indirizzo OnionShare copiato",
|
"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_complete": "%p%, {0:s} trascorsi.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (calcolato)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (calcolato)",
|
||||||
"gui_download_upload_progress_eta": "{0:s}, Terminando in: {1:s}, %p%",
|
"gui_download_upload_progress_eta": "{0:s}, Terminando in: {1:s}, %p%",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "Stai ricevendo dei file, vuoi davvero terminare OnionShare?",
|
"gui_receive_quit_warning": "Stai ricevendo dei file, vuoi davvero terminare OnionShare?",
|
||||||
"gui_quit_warning_quit": "Esci",
|
"gui_quit_warning_quit": "Esci",
|
||||||
"gui_quit_warning_dont_quit": "Annulla",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare richiede almeno Tor 0.2.7.1 e python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Impostazioni",
|
"gui_settings_window_title": "Impostazioni",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Cos'è questo?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Cos'è questo?</a>",
|
||||||
"help_receive": "Ricevi le condivisioni invece di inviarle",
|
"help_receive": "Ricevi le condivisioni invece di inviarle",
|
||||||
"gui_settings_stealth_option": "Usa l'autorizzazione client (legacy)",
|
"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_label": "Verifica se c'è una nuova versione",
|
||||||
"gui_settings_autoupdate_option": "Avvisami quando è disponibile una nuova versione",
|
"gui_settings_autoupdate_option": "Avvisami quando è disponibile una nuova versione",
|
||||||
"gui_settings_autoupdate_timestamp": "Ultimo controllo: {}",
|
"gui_settings_autoupdate_timestamp": "Ultimo controllo: {}",
|
||||||
@ -140,7 +135,6 @@
|
|||||||
"gui_server_autostop_timer_expired": "Il timer di arresto automatico è già scaduto. Si prega di modificarlo per iniziare la condivisione.",
|
"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",
|
"share_via_onionshare": "Condividi via OnionShare",
|
||||||
"gui_connect_to_tor_for_onion_settings": "Connetti a Tor per vedere le impostazioni del servizio onion",
|
"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_save_private_key_checkbox": "Usa un indirizzo persistente",
|
||||||
"gui_share_url_description": "<b>1 Tutti</b>2 con questo l'indirizzo di OnionShare possono <b>3 scaricare</b>4 i tuoi file usando <b>5 il Browser Tor</b>6: <img src='{}' />7",
|
"gui_share_url_description": "<b>1 Tutti</b>2 con questo l'indirizzo di OnionShare possono <b>3 scaricare</b>4 i tuoi file usando <b>5 il Browser Tor</b>6: <img src='{}' />7",
|
||||||
"gui_receive_url_description": "<b>1 Tutti</b>2 con questo indirizzo OnionShare possono <b>3 caricare</b>4 file nel tuo computer usando <b>5 Tor Browser</b>6: <img src='{}' />7",
|
"gui_receive_url_description": "<b>1 Tutti</b>2 con questo indirizzo OnionShare possono <b>3 caricare</b>4 file nel tuo computer usando <b>5 Tor Browser</b>6: <img src='{}' />7",
|
||||||
@ -266,7 +260,6 @@
|
|||||||
"gui_close_tab_warning_website_description": "Stai ospitando un sito web. Sei sicuro di voler chiudere questa scheda?",
|
"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_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_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_autostop_timer_checkbox": "Interrompere il servizio onion all'ora pianificata",
|
||||||
"mode_settings_autostart_timer_checkbox": "Avviare 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",
|
"mode_settings_persistent_checkbox": "Salva questa scheda e aprirla automaticamente quando apro OnionShare",
|
||||||
|
@ -47,14 +47,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "受信モードを停止(残り {} 秒)",
|
"gui_receive_stop_server_autostop_timer": "受信モードを停止(残り {} 秒)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "{}に自動停止します",
|
"gui_receive_stop_server_autostop_timer_tooltip": "{}に自動停止します",
|
||||||
"gui_copy_url": "アドレスをコピー",
|
"gui_copy_url": "アドレスをコピー",
|
||||||
"gui_copy_hidservauth": "HidServAuthをコピー",
|
|
||||||
"gui_downloads": "ダウンロード履歴",
|
"gui_downloads": "ダウンロード履歴",
|
||||||
"gui_no_downloads": "まだダウンロードがありません",
|
"gui_no_downloads": "まだダウンロードがありません",
|
||||||
"gui_canceled": "キャンセルされました",
|
"gui_canceled": "キャンセルされました",
|
||||||
"gui_copied_url_title": "OnionShareのアドレスをコピーしました",
|
"gui_copied_url_title": "OnionShareのアドレスをコピーしました",
|
||||||
"gui_copied_url": "OnionShareのアドレスをクリップボードへコピーしました",
|
"gui_copied_url": "OnionShareのアドレスをクリップボードへコピーしました",
|
||||||
"gui_copied_hidservauth_title": "HidServAuthをコピーしました",
|
|
||||||
"gui_copied_hidservauth": "HidServAuthの行をクリップボードへコピーしました",
|
|
||||||
"gui_please_wait": "実行中… クリックでキャンセルします。",
|
"gui_please_wait": "実行中… クリックでキャンセルします。",
|
||||||
"gui_download_upload_progress_complete": "%p%、 経過時間 ({0:s})。",
|
"gui_download_upload_progress_complete": "%p%、 経過時間 ({0:s})。",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (計算中)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (計算中)",
|
||||||
@ -65,14 +62,12 @@
|
|||||||
"gui_receive_quit_warning": "ファイルを受信中です。本当にOnionShareを終了しますか?",
|
"gui_receive_quit_warning": "ファイルを受信中です。本当にOnionShareを終了しますか?",
|
||||||
"gui_quit_warning_quit": "終了",
|
"gui_quit_warning_quit": "終了",
|
||||||
"gui_quit_warning_dont_quit": "キャンセル",
|
"gui_quit_warning_dont_quit": "キャンセル",
|
||||||
"error_rate_limit": "誰かが何度パスワードを推測しようとして試みるので、不正アクセスしようとする可能性があります。セキュリティーのためにOnionShareはサーバーを停止しました。再び共有し始めて、受領者に新しいアドレスを送って下さい。",
|
|
||||||
"zip_progress_bar_format": "圧縮中: %p%",
|
"zip_progress_bar_format": "圧縮中: %p%",
|
||||||
"error_stealth_not_supported": "クライアント認証を使用するのに、少なくともTor 0.2.9.1-alpha (それともTor Browser 6.5)とpython3-stem 1.5.0が必要です。",
|
"error_stealth_not_supported": "クライアント認証を使用するのに、少なくともTor 0.2.9.1-alpha (それともTor Browser 6.5)とpython3-stem 1.5.0が必要です。",
|
||||||
"error_ephemeral_not_supported": "OnionShareは少なくともTor 0.2.7.1とpython3-stem 1.4.0が必要です。",
|
"error_ephemeral_not_supported": "OnionShareは少なくともTor 0.2.7.1とpython3-stem 1.4.0が必要です。",
|
||||||
"gui_settings_window_title": "設定",
|
"gui_settings_window_title": "設定",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>これは何ですか?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>これは何ですか?</a>",
|
||||||
"gui_settings_stealth_option": "クライアント認証を使用",
|
"gui_settings_stealth_option": "クライアント認証を使用",
|
||||||
"gui_settings_stealth_hidservauth_string": "秘密鍵を保存したので、クリックしてHidServAuthをコピーできます。",
|
|
||||||
"gui_settings_autoupdate_label": "更新バージョンの有無をチェックする",
|
"gui_settings_autoupdate_label": "更新バージョンの有無をチェックする",
|
||||||
"gui_settings_autoupdate_option": "更新通知を起動します",
|
"gui_settings_autoupdate_option": "更新通知を起動します",
|
||||||
"gui_settings_autoupdate_timestamp": "前回にチェックした時: {}",
|
"gui_settings_autoupdate_timestamp": "前回にチェックした時: {}",
|
||||||
@ -138,7 +133,6 @@
|
|||||||
"gui_server_autostop_timer_expired": "自動停止タイマーはすでにタイムアウトしています。共有し始めるにはタイマーを調整して下さい。",
|
"gui_server_autostop_timer_expired": "自動停止タイマーはすでにタイムアウトしています。共有し始めるにはタイマーを調整して下さい。",
|
||||||
"share_via_onionshare": "OnionShareで共有する",
|
"share_via_onionshare": "OnionShareで共有する",
|
||||||
"gui_connect_to_tor_for_onion_settings": "onionサービス設定を見るのにTorと接続して下さい",
|
"gui_connect_to_tor_for_onion_settings": "onionサービス設定を見るのにTorと接続して下さい",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "レガシーアドレスを使用する",
|
|
||||||
"gui_save_private_key_checkbox": "永続的アドレスを使用する",
|
"gui_save_private_key_checkbox": "永続的アドレスを使用する",
|
||||||
"gui_share_url_description": "このOnionShareアドレスを持つ限り<b>誰でも</b>は<b>Tor Browser</b>を利用してこのファイルを<b>ダウンロードできます</b>:<img src='{}' />",
|
"gui_share_url_description": "このOnionShareアドレスを持つ限り<b>誰でも</b>は<b>Tor Browser</b>を利用してこのファイルを<b>ダウンロードできます</b>:<img src='{}' />",
|
||||||
"gui_receive_url_description": "このOnionShareアドレスを持つ限り<b>誰でも</b>は<b>Tor Browser</b>を利用してこのPCにファイルを<b>アップロードできます</b>:<img src='{}' />",
|
"gui_receive_url_description": "このOnionShareアドレスを持つ限り<b>誰でも</b>は<b>Tor Browser</b>を利用してこのPCにファイルを<b>アップロードできます</b>:<img src='{}' />",
|
||||||
@ -238,7 +232,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "閲覧",
|
"mode_settings_receive_data_dir_browse_button": "閲覧",
|
||||||
"mode_settings_receive_data_dir_label": "保存するファイルの位置",
|
"mode_settings_receive_data_dir_label": "保存するファイルの位置",
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "ファイル送信が終了したら共有を停止(個別ファイルのダウンロードを許可するにはチェックマークを消す)",
|
"mode_settings_share_autostop_sharing_checkbox": "ファイル送信が終了したら共有を停止(個別ファイルのダウンロードを許可するにはチェックマークを消す)",
|
||||||
"mode_settings_client_auth_checkbox": "クライアント認証を利用",
|
|
||||||
"mode_settings_legacy_checkbox": "レガシーアドレスを利用する(v2 onionサービス、非推奨)",
|
"mode_settings_legacy_checkbox": "レガシーアドレスを利用する(v2 onionサービス、非推奨)",
|
||||||
"mode_settings_autostop_timer_checkbox": "指定の日時にonionサービスを停止する",
|
"mode_settings_autostop_timer_checkbox": "指定の日時にonionサービスを停止する",
|
||||||
"mode_settings_autostart_timer_checkbox": "指定の日時にonionサービスを起動する",
|
"mode_settings_autostart_timer_checkbox": "指定の日時にonionサービスを起動する",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "პროგრამის დატოვება",
|
"gui_quit_warning_quit": "პროგრამის დატოვება",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -21,12 +21,9 @@
|
|||||||
"gui_receive_stop_server": "",
|
"gui_receive_stop_server": "",
|
||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_waiting_to_start": "",
|
"gui_waiting_to_start": "",
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_quit_title": "",
|
"gui_quit_title": "",
|
||||||
@ -34,14 +31,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "",
|
"gui_quit_warning_quit": "",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -111,7 +106,6 @@
|
|||||||
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
|
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_connect_to_tor_for_onion_settings": "",
|
"gui_connect_to_tor_for_onion_settings": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -45,14 +45,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "취소 된",
|
"gui_canceled": "취소 된",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -63,14 +60,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "종료",
|
"gui_quit_warning_quit": "종료",
|
||||||
"gui_quit_warning_dont_quit": "취소",
|
"gui_quit_warning_dont_quit": "취소",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "설정",
|
"gui_settings_window_title": "설정",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -135,7 +130,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -45,14 +45,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -63,14 +60,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "",
|
"gui_quit_warning_quit": "",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -135,7 +130,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
"gui_copied_hidservauth": "HidServAuth eilutė nukopijuota į iškarpinę",
|
"gui_copied_hidservauth": "HidServAuth eilutė nukopijuota į iškarpinę",
|
||||||
"gui_waiting_to_start": "Planuojama pradėti {}. Spustelėkite , jei norite atšaukti.",
|
"gui_waiting_to_start": "Planuojama pradėti {}. Spustelėkite , jei norite atšaukti.",
|
||||||
"gui_please_wait": "Pradedama… Spustelėkite norėdami atsisakyti.",
|
"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%",
|
"zip_progress_bar_format": "Glaudinama: %p%",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
@ -109,7 +108,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.",
|
"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",
|
"share_via_onionshare": "Bendrinti per OnionShare",
|
||||||
"gui_connect_to_tor_for_onion_settings": "",
|
"gui_connect_to_tor_for_onion_settings": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "<b>Visi</b>, turintys šį OnionShare adresą gali <b>atsisiųsti</b> jūsų failus, naudodamiesi <b>Tor Naršykle</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Visi</b>, turintys šį OnionShare adresą gali <b>atsisiųsti</b> jūsų failus, naudodamiesi <b>Tor Naršykle</b>: <img src='{}' />",
|
||||||
"gui_website_url_description": "<b>Kiekvienas</b>, turintis šį „OnionShare“ adresą, gali <b>apsilankyti</b> jūsų svetainėje naudodamas <b>„Tor“ naršyklę</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Kiekvienas</b>, turintis šį „OnionShare“ adresą, gali <b>apsilankyti</b> jūsų svetainėje naudodamas <b>„Tor“ naršyklę</b>: <img src='{}' />",
|
||||||
@ -200,7 +198,6 @@
|
|||||||
"mode_settings_autostart_timer_checkbox": "Pradėti onion paslaugos paleidimą suplanuotu laiku",
|
"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_autostop_timer_checkbox": "Sustabdyti onion paslaugos paleidimą suplanuotu laiku",
|
||||||
"mode_settings_legacy_checkbox": "Naudoti senąjį adresą (nerekomenduojama naudoti v2 onion paslaugos)",
|
"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_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_label": "Įrašyti failus į",
|
||||||
"mode_settings_receive_data_dir_browse_button": "Naršyti",
|
"mode_settings_receive_data_dir_browse_button": "Naršyti",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "Излези",
|
"gui_quit_warning_quit": "Излези",
|
||||||
"gui_quit_warning_dont_quit": "Откажи",
|
"gui_quit_warning_dont_quit": "Откажи",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "Поставки",
|
"gui_settings_window_title": "Поставки",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -36,12 +36,9 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"version_string": "",
|
"version_string": "",
|
||||||
"gui_quit_title": "",
|
"gui_quit_title": "",
|
||||||
@ -49,14 +46,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "Keluar",
|
"gui_quit_warning_quit": "Keluar",
|
||||||
"gui_quit_warning_dont_quit": "Batal",
|
"gui_quit_warning_dont_quit": "Batal",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "Tetapan",
|
"gui_settings_window_title": "Tetapan",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -123,7 +118,6 @@
|
|||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_connect_to_tor_for_onion_settings": "",
|
"gui_connect_to_tor_for_onion_settings": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -45,13 +45,10 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Stopp mottaksmodus ({} gjenstår)",
|
"gui_receive_stop_server_autostop_timer": "Stopp mottaksmodus ({} gjenstår)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Tidsavbruddsuret går ut {}",
|
"gui_receive_stop_server_autostop_timer_tooltip": "Tidsavbruddsuret går ut {}",
|
||||||
"gui_copy_url": "Kopier nettadresse",
|
"gui_copy_url": "Kopier nettadresse",
|
||||||
"gui_copy_hidservauth": "Kopier HidServAuth",
|
|
||||||
"gui_downloads": "Nedlastingshistorikk",
|
"gui_downloads": "Nedlastingshistorikk",
|
||||||
"gui_no_downloads": "Ingen nedlastinger enda.",
|
"gui_no_downloads": "Ingen nedlastinger enda.",
|
||||||
"gui_canceled": "Avbrutt",
|
"gui_canceled": "Avbrutt",
|
||||||
"gui_copied_url_title": "Kopierte OnionShare-adressen",
|
"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_please_wait": "Starter… Klikk for å avbryte.",
|
||||||
"gui_download_upload_progress_complete": "%p%, {0:s} forløpt.",
|
"gui_download_upload_progress_complete": "%p%, {0:s} forløpt.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (regner ut)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (regner ut)",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "Du har ikke fått alle filene enda. Er du sikker på at du ønsker å avslutte OnionShare?",
|
"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_quit": "Avslutt",
|
||||||
"gui_quit_warning_dont_quit": "Avbryt",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare krever minst både Tor 0.2.7.1 og pything3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Innstillinger",
|
"gui_settings_window_title": "Innstillinger",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Hva er dette?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Hva er dette?</a>",
|
||||||
"gui_settings_stealth_option": "Bruk klientidentifisering",
|
"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_label": "Se etter ny versjon",
|
||||||
"gui_settings_autoupdate_option": "Gi meg beskjed når en ny versjon er tilgjengelig",
|
"gui_settings_autoupdate_option": "Gi meg beskjed når en ny versjon er tilgjengelig",
|
||||||
"gui_settings_autoupdate_timestamp": "Sist sjekket: {}",
|
"gui_settings_autoupdate_timestamp": "Sist sjekket: {}",
|
||||||
@ -135,7 +130,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "Tidsavbruddsuret gikk ut før tjeneren startet. Lag en ny deling.",
|
"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.",
|
"gui_server_autostop_timer_expired": "Tidsavbruddsuret har gått ut allerede. Juster det for å starte deling.",
|
||||||
"share_via_onionshare": "Del via OnionShare",
|
"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_save_private_key_checkbox": "Bruk en vedvarende adresse",
|
||||||
"gui_share_url_description": "<b>Alle</b> som har denne OnionShare-adressen kan <b>Laste ned</b> filene dine ved bruk av <b>Tor-Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Alle</b> som har denne OnionShare-adressen kan <b>Laste ned</b> filene dine ved bruk av <b>Tor-Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Alle</b> som har denne OnionShare-adressen kan <b>Laste opp</b> filer til din datamaskin ved bruk av <b>Tor-Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Alle</b> som har denne OnionShare-adressen kan <b>Laste opp</b> filer til din datamaskin ved bruk av <b>Tor-Browser</b>: <img src='{}' />",
|
||||||
@ -238,7 +232,6 @@
|
|||||||
"systray_website_started_title": "Starter deling av nettside",
|
"systray_website_started_title": "Starter deling av nettside",
|
||||||
"systray_website_started_message": "Noen besøker din nettside",
|
"systray_website_started_message": "Noen besøker din nettside",
|
||||||
"gui_website_mode_no_files": "Ingen nettside delt enda",
|
"gui_website_mode_no_files": "Ingen nettside delt enda",
|
||||||
"invalid_password_guess": "Feil passord",
|
|
||||||
"incorrect_password": "Feil passord",
|
"incorrect_password": "Feil passord",
|
||||||
"gui_settings_individual_downloads_label": "Forby nedlasting av enkeltfiler",
|
"gui_settings_individual_downloads_label": "Forby nedlasting av enkeltfiler",
|
||||||
"history_requests_tooltip": "{} vevforespørsler",
|
"history_requests_tooltip": "{} vevforespørsler",
|
||||||
@ -278,7 +271,6 @@
|
|||||||
"gui_open_folder_error": "Klarte ikke å åpne mappe med xdg-open. Filen er her: {}",
|
"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.",
|
"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_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_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_chat": "Prat",
|
||||||
"gui_tab_name_website": "Nettside",
|
"gui_tab_name_website": "Nettside",
|
||||||
|
@ -31,11 +31,9 @@
|
|||||||
"gui_delete": "Verwijder",
|
"gui_delete": "Verwijder",
|
||||||
"gui_choose_items": "Kies",
|
"gui_choose_items": "Kies",
|
||||||
"gui_copy_url": "Kopieer URL",
|
"gui_copy_url": "Kopieer URL",
|
||||||
"gui_copy_hidservauth": "Kopieer HidServAuth",
|
|
||||||
"gui_downloads": "Download Geschiedenis",
|
"gui_downloads": "Download Geschiedenis",
|
||||||
"gui_canceled": "Afgebroken",
|
"gui_canceled": "Afgebroken",
|
||||||
"gui_copied_url": "OnionShare adres gekopieerd naar klembord",
|
"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_please_wait": "Aan het starten... Klik om te annuleren.",
|
||||||
"gui_download_upload_progress_complete": "%p%, {0:s} verstreken.",
|
"gui_download_upload_progress_complete": "%p%, {0:s} verstreken.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (berekenen)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (berekenen)",
|
||||||
@ -44,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_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_quit": "Afsluiten",
|
||||||
"gui_quit_warning_dont_quit": "Annuleren",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare vereist minstens zowel Tor 0.2.7.1 als python3-stem 1.4.0.",
|
||||||
@ -116,11 +113,9 @@
|
|||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Auto-stop timer stopt bij {}",
|
"gui_receive_stop_server_autostop_timer_tooltip": "Auto-stop timer stopt bij {}",
|
||||||
"gui_no_downloads": "Nog Geen Downloads",
|
"gui_no_downloads": "Nog Geen Downloads",
|
||||||
"gui_copied_url_title": "Gekopieerd OnionShare Adres",
|
"gui_copied_url_title": "Gekopieerd OnionShare Adres",
|
||||||
"gui_copied_hidservauth_title": "HidServAuth gekopieerd",
|
|
||||||
"gui_quit_title": "Niet zo snel",
|
"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_receive_quit_warning": "Je bent in het proces van bestanden ontvangen. Weet je zeker dat je OnionShare af wilt sluiten?",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>1Wat is dit?</a>2",
|
"gui_settings_whats_this": "<a href='{0:s}'>1Wat is dit?</a>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_general_label": "Algemene instellingen",
|
||||||
"gui_settings_tor_bridges": "Tor bridge ondersteuning",
|
"gui_settings_tor_bridges": "Tor bridge ondersteuning",
|
||||||
"gui_settings_tor_bridges_no_bridges_radio_option": "Gebruik geen bridges",
|
"gui_settings_tor_bridges_no_bridges_radio_option": "Gebruik geen bridges",
|
||||||
@ -136,7 +131,6 @@
|
|||||||
"error_tor_protocol_error_unknown": "Er was een onbekende fout met Tor",
|
"error_tor_protocol_error_unknown": "Er was een onbekende fout met Tor",
|
||||||
"error_invalid_private_key": "Dit type privésleutel wordt niet ondersteund",
|
"error_invalid_private_key": "Dit type privésleutel wordt niet ondersteund",
|
||||||
"gui_tor_connection_lost": "De verbinding met Tor is verbroken.",
|
"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_save_private_key_checkbox": "Gebruik een vast adres",
|
||||||
"gui_share_url_description": "<b>1Iedereen</b>2 met dit OnionShare-adres kan je bestanden <b>3binnenhalen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />",
|
"gui_share_url_description": "<b>1Iedereen</b>2 met dit OnionShare-adres kan je bestanden <b>3binnenhalen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Iedereen</b> met dit OnionShare adres kan bestanden op je computer <b>plaatsen</b> met de <b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Iedereen</b> met dit OnionShare adres kan bestanden op je computer <b>plaatsen</b> met de <b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -259,7 +253,6 @@
|
|||||||
"mode_settings_website_disable_csp_checkbox": "Stuur geen Content Security Policy header (hiermee kan uw website bronnen van derden gebruiken)",
|
"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_browse_button": "Blader",
|
||||||
"mode_settings_receive_data_dir_label": "Bewaar bestanden in",
|
"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_autostop_timer_checkbox": "Stop onion service op een geplande tijd",
|
||||||
"mode_settings_autostart_timer_checkbox": "Start onion service op een geplande tijd",
|
"mode_settings_autostart_timer_checkbox": "Start onion service op een geplande tijd",
|
||||||
"mode_settings_persistent_checkbox": "Bewaar dit tabblad en open het automatisch wanneer ik OnionShare open",
|
"mode_settings_persistent_checkbox": "Bewaar dit tabblad en open het automatisch wanneer ik OnionShare open",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "ਬਾਹਰ",
|
"gui_quit_warning_quit": "ਬਾਹਰ",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Zatrzymaj tryb odbierania (pozostało {})",
|
"gui_receive_stop_server_autostop_timer": "Zatrzymaj tryb odbierania (pozostało {})",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Czas upływa za {}",
|
"gui_receive_stop_server_autostop_timer_tooltip": "Czas upływa za {}",
|
||||||
"gui_copy_url": "Kopiuj adres załącznika",
|
"gui_copy_url": "Kopiuj adres załącznika",
|
||||||
"gui_copy_hidservauth": "Kopiuj HidServAuth",
|
|
||||||
"gui_downloads": "Historia pobierania",
|
"gui_downloads": "Historia pobierania",
|
||||||
"gui_no_downloads": "Nie pobrano jeszcze niczego",
|
"gui_no_downloads": "Nie pobrano jeszcze niczego",
|
||||||
"gui_canceled": "Anulowano",
|
"gui_canceled": "Anulowano",
|
||||||
"gui_copied_url_title": "Skopiowano adres URL OnionShare",
|
"gui_copied_url_title": "Skopiowano adres URL OnionShare",
|
||||||
"gui_copied_url": "Adres URL OnionShare został skopiowany do schowka",
|
"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_please_wait": "Rozpoczynam... Kliknij, aby zatrzymać.",
|
||||||
"gui_download_upload_progress_complete": "%p%, {0:s} upłynęło.",
|
"gui_download_upload_progress_complete": "%p%, {0:s} upłynęło.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (obliczam)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (obliczam)",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "Odbierasz teraz pliki. Jesteś pewien, że chcesz wyjść z OnionShare?",
|
"gui_receive_quit_warning": "Odbierasz teraz pliki. Jesteś pewien, że chcesz wyjść z OnionShare?",
|
||||||
"gui_quit_warning_quit": "Wyjście",
|
"gui_quit_warning_quit": "Wyjście",
|
||||||
"gui_quit_warning_dont_quit": "Anuluj",
|
"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%",
|
"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_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.",
|
"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.",
|
||||||
"gui_settings_window_title": "Ustawienia",
|
"gui_settings_window_title": "Ustawienia",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Co to jest?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Co to jest?</a>",
|
||||||
"gui_settings_stealth_option": "Użyj autoryzacji klienta",
|
"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_label": "Sprawdź nową wersję",
|
||||||
"gui_settings_autoupdate_option": "Poinformuj mnie, kiedy nowa wersja programu będzie dostępna",
|
"gui_settings_autoupdate_option": "Poinformuj mnie, kiedy nowa wersja programu będzie dostępna",
|
||||||
"gui_settings_autoupdate_timestamp": "Ostatnie sprawdzenie aktualizacji: {}",
|
"gui_settings_autoupdate_timestamp": "Ostatnie sprawdzenie aktualizacji: {}",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "Czasomierz automatycznego rozpoczęcia wygasł przed uruchomieniem serwera. Utwórz nowy udział.",
|
"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.",
|
"gui_server_autostop_timer_expired": "Czasomierz automatycznego rozpoczęcia wygasł. Dostosuj go, aby rozpocząć udostępnianie.",
|
||||||
"share_via_onionshare": "Udostępniaj przez OnionShare",
|
"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_save_private_key_checkbox": "Użyj stałego adresu",
|
||||||
"gui_share_url_description": "<b>Każdy</b> z tym adresem OnionShare może <b> pobrać</b> Twoje pliki za pomocą przeglądarki <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Każdy</b> z tym adresem OnionShare może <b> pobrać</b> Twoje pliki za pomocą przeglądarki <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Każdy</b> z tym adresem OnionShare może <b>przesyłać</b> pliki na komputer za pomocą przeglądarki <b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Każdy</b> z tym adresem OnionShare może <b>przesyłać</b> pliki na komputer za pomocą przeglądarki <b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -265,7 +259,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Przeglądaj",
|
"mode_settings_receive_data_dir_browse_button": "Przeglądaj",
|
||||||
"mode_settings_receive_data_dir_label": "Zapisz pliki do",
|
"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_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_legacy_checkbox": "Użyj starszego adresu (onion service v2, niezalecane)",
|
||||||
"mode_settings_autostop_timer_checkbox": "Zatrzymaj usługę cebulową w zaplanowanym czasie",
|
"mode_settings_autostop_timer_checkbox": "Zatrzymaj usługę cebulową w zaplanowanym czasie",
|
||||||
"mode_settings_autostart_timer_checkbox": "Uruchomienie usługi cebulowej w zaplanowanym czasie",
|
"mode_settings_autostart_timer_checkbox": "Uruchomienie usługi cebulowej w zaplanowanym czasie",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Parar o Modo Recepção ({} para terminar)",
|
"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_receive_stop_server_autostop_timer_tooltip": "O cronômetro automático termina às {}",
|
||||||
"gui_copy_url": "Copiar endereço",
|
"gui_copy_url": "Copiar endereço",
|
||||||
"gui_copy_hidservauth": "Copiar HidServAuth",
|
|
||||||
"gui_downloads": "Histórico de download",
|
"gui_downloads": "Histórico de download",
|
||||||
"gui_no_downloads": "Nenhum download por enquanto",
|
"gui_no_downloads": "Nenhum download por enquanto",
|
||||||
"gui_canceled": "Cancelado",
|
"gui_canceled": "Cancelado",
|
||||||
"gui_copied_url_title": "O endereço OnionShare foi copiado",
|
"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_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_please_wait": "Começando... Clique para cancelar.",
|
||||||
"gui_download_upload_progress_complete": "%p%, {0:s} decorridos.",
|
"gui_download_upload_progress_complete": "%p%, {0:s} decorridos.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (calculando)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (calculando)",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "O recebimento dos seus arquivos ainda não terminou. Você tem certeza de que quer sair do OnionShare?",
|
"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_quit": "Sair",
|
||||||
"gui_quit_warning_dont_quit": "Cancelar",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare requer ao menos Tor 0.2.7.1 e python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Configurações",
|
"gui_settings_window_title": "Configurações",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>O que é isso?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>O que é isso?</a>",
|
||||||
"gui_settings_stealth_option": "Usar autorização de cliente",
|
"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_label": "Procurar por uma nova versão",
|
||||||
"gui_settings_autoupdate_option": "Notificar-me quando uma nova versão estiver disponível",
|
"gui_settings_autoupdate_option": "Notificar-me quando uma nova versão estiver disponível",
|
||||||
"gui_settings_autoupdate_timestamp": "Última verificação: {}",
|
"gui_settings_autoupdate_timestamp": "Última verificação: {}",
|
||||||
@ -134,7 +129,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_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.",
|
"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",
|
"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_save_private_key_checkbox": "Usar o mesmo endereço",
|
||||||
"gui_share_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>baixar</b> seus arquivos usando o <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>baixar</b> seus arquivos usando o <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>carregar</b> arquivos no seu computador usando o <b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>carregar</b> arquivos no seu computador usando o <b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -239,7 +233,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Navegar",
|
"mode_settings_receive_data_dir_browse_button": "Navegar",
|
||||||
"mode_settings_receive_data_dir_label": "Salvar arquivos em",
|
"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_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_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_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",
|
"mode_settings_autostart_timer_checkbox": "Iniciar serviço de onion na hora programada",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Parar Modo de Receber ({} restantes)",
|
"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_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_url": "Copiar Endereço",
|
||||||
"gui_copy_hidservauth": "Copiar HidServAuth",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "Cancelado",
|
"gui_canceled": "Cancelado",
|
||||||
"gui_copied_url_title": "Endereço OnionShare Copiado",
|
"gui_copied_url_title": "Endereço OnionShare Copiado",
|
||||||
"gui_copied_url": "O endereço OnionShare foi copiado para área de transferência",
|
"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_please_wait": "A iniciar… Clique para cancelar.",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "Ainda não recebeu todos os seus ficheiros. Tem a certeza que que deseja sair do OnionShare?",
|
"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_quit": "Sair",
|
||||||
"gui_quit_warning_dont_quit": "Cancelar",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare requer pelo menos do Tor 0.2.7.1 e do python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Configurações",
|
"gui_settings_window_title": "Configurações",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>O que é isto?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>O que é isto?</a>",
|
||||||
"gui_settings_stealth_option": "Utilizar autorização de cliente",
|
"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_label": "Procurar por nova versão",
|
||||||
"gui_settings_autoupdate_option": "Notificar-me quando estiver disponível uma nova versão",
|
"gui_settings_autoupdate_option": "Notificar-me quando estiver disponível uma nova versão",
|
||||||
"gui_settings_autoupdate_timestamp": "Última verificação: {}",
|
"gui_settings_autoupdate_timestamp": "Última verificação: {}",
|
||||||
@ -134,7 +129,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_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.",
|
"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",
|
"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_save_private_key_checkbox": "Usar um endereço persistente",
|
||||||
"gui_share_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>descarregar</b> os seus ficheiros utilizando o <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>descarregar</b> os seus ficheiros utilizando o <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>enviar</b> ficheiros para o seu computador utilizando o <b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>enviar</b> ficheiros para o seu computador utilizando o <b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -255,7 +249,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Navegar",
|
"mode_settings_receive_data_dir_browse_button": "Navegar",
|
||||||
"mode_settings_receive_data_dir_label": "Guardar ficheiros para",
|
"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_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_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",
|
"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?",
|
"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?",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Opriți modul de primire (au rămas {})",
|
"gui_receive_stop_server_autostop_timer": "Opriți modul de primire (au rămas {})",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "Copiere adresă",
|
"gui_copy_url": "Copiere adresă",
|
||||||
"gui_copy_hidservauth": "Copiere HidServAuth",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "Anulat",
|
"gui_canceled": "Anulat",
|
||||||
"gui_copied_url_title": "Adresă OnionShare copiată",
|
"gui_copied_url_title": "Adresă OnionShare copiată",
|
||||||
"gui_copied_url": "Adresa OnionShare a fost copiată în memoria clipboard",
|
"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_please_wait": "Începem ... Faceți clic pentru a anula.",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "Sunteți în proces de primire fișiere. Sigur vreți să închideți OnionShare?",
|
"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_quit": "Închidere",
|
||||||
"gui_quit_warning_dont_quit": "Anulare",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare are nevoie de minim versiunea Tor 0.2.7.1 cât și de Python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Setari",
|
"gui_settings_window_title": "Setari",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Ce este asta?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Ce este asta?</a>",
|
||||||
"gui_settings_stealth_option": "Utilizați autorizarea clientului",
|
"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_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_option": "Anunțați-mă când este disponibilă o nouă versiune",
|
||||||
"gui_settings_autoupdate_timestamp": "Ultima verificare: {}",
|
"gui_settings_autoupdate_timestamp": "Ultima verificare: {}",
|
||||||
@ -134,7 +129,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_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.",
|
"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",
|
"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_save_private_key_checkbox": "Folosiți o adresă persistentă",
|
||||||
"gui_share_url_description": "<b>Oricine</b> are această adresă OnionShare poate <b>descărca</b> fișierele dvs. folosind <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Oricine</b> are această adresă OnionShare poate <b>descărca</b> fișierele dvs. folosind <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Oricine</b> are această adresă OnionShare poate <b>încărca</b> fișiere pe computerul dvs. folosind <b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Oricine</b> are această adresă OnionShare poate <b>încărca</b> fișiere pe computerul dvs. folosind <b>Tor Browser</b>: <img src='{}' />",
|
||||||
|
@ -66,12 +66,9 @@
|
|||||||
"gui_receive_stop_server": "Выключить режим получения",
|
"gui_receive_stop_server": "Выключить режим получения",
|
||||||
"gui_receive_stop_server_autostop_timer": "Выключить Режим Получения (осталось {})",
|
"gui_receive_stop_server_autostop_timer": "Выключить Режим Получения (осталось {})",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Время таймера истекает в {}",
|
"gui_receive_stop_server_autostop_timer_tooltip": "Время таймера истекает в {}",
|
||||||
"gui_copy_hidservauth": "Скопировать строку HidServAuth",
|
|
||||||
"gui_downloads": "История скачиваний",
|
"gui_downloads": "История скачиваний",
|
||||||
"gui_no_downloads": "Скачиваний пока нет ",
|
"gui_no_downloads": "Скачиваний пока нет ",
|
||||||
"gui_copied_url_title": "Адрес OnionShare скопирован",
|
"gui_copied_url_title": "Адрес OnionShare скопирован",
|
||||||
"gui_copied_hidservauth_title": "Строка HidServAuth скопирована",
|
|
||||||
"gui_copied_hidservauth": "Строка HidServAuth скопирована в буфер обмена",
|
|
||||||
"gui_please_wait": "Запуск... Для отмены нажмите здесь.",
|
"gui_please_wait": "Запуск... Для отмены нажмите здесь.",
|
||||||
"gui_download_upload_progress_complete": "%p%, прошло {0:s}.",
|
"gui_download_upload_progress_complete": "%p%, прошло {0:s}.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (вычисляем)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (вычисляем)",
|
||||||
@ -80,13 +77,11 @@
|
|||||||
"gui_quit_title": "Не так быстро",
|
"gui_quit_title": "Не так быстро",
|
||||||
"gui_share_quit_warning": "Идёт процесс отправки файлов. Уверены, что хотите завершить работу OnionShare?",
|
"gui_share_quit_warning": "Идёт процесс отправки файлов. Уверены, что хотите завершить работу OnionShare?",
|
||||||
"gui_receive_quit_warning": "Идёт процесс получения файлов. Уверены, что хотите завершить работу OnionShare?",
|
"gui_receive_quit_warning": "Идёт процесс получения файлов. Уверены, что хотите завершить работу OnionShare?",
|
||||||
"error_rate_limit": "Кто-то совершил слишком много попыток отгадать Ваш пароль, в связи с чем OnionShare остановил сервер. Отправьте Ваши данные повторно и перешлите получателю новый адрес.",
|
|
||||||
"zip_progress_bar_format": "Сжатие: %p%",
|
"zip_progress_bar_format": "Сжатие: %p%",
|
||||||
"error_stealth_not_supported": "Для использования авторизации клиента необходимы как минимум версии Tor 0.2.9.1-alpha (или Tor Browser 6.5) и библиотеки python3-stem 1.5.0.",
|
"error_stealth_not_supported": "Для использования авторизации клиента необходимы как минимум версии Tor 0.2.9.1-alpha (или Tor Browser 6.5) и библиотеки python3-stem 1.5.0.",
|
||||||
"error_ephemeral_not_supported": "Для работы OnionShare необходимы как минимум версии Tor 0.2.7.1 и библиотеки python3-stem 1.4.0.",
|
"error_ephemeral_not_supported": "Для работы OnionShare необходимы как минимум версии Tor 0.2.7.1 и библиотеки python3-stem 1.4.0.",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Что это?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Что это?</a>",
|
||||||
"gui_settings_stealth_option": "Использовать авторизацию клиента",
|
"gui_settings_stealth_option": "Использовать авторизацию клиента",
|
||||||
"gui_settings_stealth_hidservauth_string": "Сохранили Ваш приватный ключ для повторного использования.\nНажмите сюда, чтобы скопировать строку HidServAuth.",
|
|
||||||
"gui_settings_autoupdate_label": "Проверить наличие новой версии",
|
"gui_settings_autoupdate_label": "Проверить наличие новой версии",
|
||||||
"gui_settings_autoupdate_option": "Уведомить меня, когда будет доступна новая версия",
|
"gui_settings_autoupdate_option": "Уведомить меня, когда будет доступна новая версия",
|
||||||
"gui_settings_autoupdate_timestamp": "Последняя проверка: {}",
|
"gui_settings_autoupdate_timestamp": "Последняя проверка: {}",
|
||||||
@ -141,7 +136,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "Время стоп-таймера истекло до того, как сервер был запущен. Пожалуйста, отправьте файлы заново.",
|
"gui_server_started_after_autostop_timer": "Время стоп-таймера истекло до того, как сервер был запущен. Пожалуйста, отправьте файлы заново.",
|
||||||
"gui_server_autostop_timer_expired": "Время стоп-таймера истекло. Пожалуйста, отрегулируйте его для начала отправки.",
|
"gui_server_autostop_timer_expired": "Время стоп-таймера истекло. Пожалуйста, отрегулируйте его для начала отправки.",
|
||||||
"share_via_onionshare": "Поделиться через OnionShare",
|
"share_via_onionshare": "Поделиться через OnionShare",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "Используйте устаревшие адреса",
|
|
||||||
"gui_save_private_key_checkbox": "Используйте постоянный адрес",
|
"gui_save_private_key_checkbox": "Используйте постоянный адрес",
|
||||||
"gui_share_url_description": "<b>Кто угодно</b> c этим адресом OnionShare может <b>скачать</b> Ваши файлы при помощи <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Кто угодно</b> c этим адресом OnionShare может <b>скачать</b> Ваши файлы при помощи <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Кто угодно</b> c этим адресом OnionShare может <b>загрузить</b> файлы на ваш компьютер с помощью<b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Кто угодно</b> c этим адресом OnionShare может <b>загрузить</b> файлы на ваш компьютер с помощью<b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -240,7 +234,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Обзор файлов",
|
"mode_settings_receive_data_dir_browse_button": "Обзор файлов",
|
||||||
"mode_settings_receive_data_dir_label": "Сохранять файлы в",
|
"mode_settings_receive_data_dir_label": "Сохранять файлы в",
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "Закрыть доступ к файлам после их отправки (отмените чтобы разрешить скачивание отдельных файлов)",
|
"mode_settings_share_autostop_sharing_checkbox": "Закрыть доступ к файлам после их отправки (отмените чтобы разрешить скачивание отдельных файлов)",
|
||||||
"mode_settings_client_auth_checkbox": "Использовать авторизацию клиента",
|
|
||||||
"mode_settings_legacy_checkbox": "Использовать устаревшую версию адресов (версия 2 сервиса Тор, не рукомендуем)",
|
"mode_settings_legacy_checkbox": "Использовать устаревшую версию адресов (версия 2 сервиса Тор, не рукомендуем)",
|
||||||
"mode_settings_autostop_timer_checkbox": "Отключить сервис onion в назначенное время",
|
"mode_settings_autostop_timer_checkbox": "Отключить сервис onion в назначенное время",
|
||||||
"mode_settings_autostart_timer_checkbox": "Запустить сервис onion в назначенное время",
|
"mode_settings_autostart_timer_checkbox": "Запустить сервис onion в назначенное время",
|
||||||
|
@ -24,17 +24,13 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_flatpak_data_dir": "",
|
"gui_receive_flatpak_data_dir": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_show_url_qr_code": "",
|
"gui_show_url_qr_code": "",
|
||||||
"gui_qr_code_dialog_title": "",
|
"gui_qr_code_dialog_title": "",
|
||||||
"gui_waiting_to_start": "",
|
"gui_waiting_to_start": "",
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
@ -170,7 +166,6 @@
|
|||||||
"mode_settings_autostart_timer_checkbox": "",
|
"mode_settings_autostart_timer_checkbox": "",
|
||||||
"mode_settings_autostop_timer_checkbox": "",
|
"mode_settings_autostop_timer_checkbox": "",
|
||||||
"mode_settings_legacy_checkbox": "",
|
"mode_settings_legacy_checkbox": "",
|
||||||
"mode_settings_client_auth_checkbox": "",
|
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "",
|
"mode_settings_share_autostop_sharing_checkbox": "",
|
||||||
"mode_settings_receive_data_dir_label": "",
|
"mode_settings_receive_data_dir_label": "",
|
||||||
"mode_settings_receive_data_dir_browse_button": "",
|
"mode_settings_receive_data_dir_browse_button": "",
|
||||||
|
@ -24,18 +24,14 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Zastaviť režim prijímania (zostáva {})",
|
"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_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_url": "Kopírovať adresu",
|
||||||
"gui_copy_hidservauth": "Kopírovať HidServAuth",
|
|
||||||
"gui_canceled": "Zrušené",
|
"gui_canceled": "Zrušené",
|
||||||
"gui_copied_url_title": "Skopírovaná OnionShare adresa",
|
"gui_copied_url_title": "Skopírovaná OnionShare adresa",
|
||||||
"gui_copied_url": "OnionShare adresa bola skopírovaná do schránky",
|
"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_show_url_qr_code": "Zobraziť QR kód",
|
||||||
"gui_qr_code_dialog_title": "OnionShare 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.",
|
"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_waiting_to_start": "Naplánované spustenie o {}. Kliknutím zrušíte.",
|
||||||
"gui_please_wait": "Spúšťa sa... 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%",
|
"zip_progress_bar_format": "Komprimovanie: %p%",
|
||||||
"gui_settings_window_title": "Nastavenia",
|
"gui_settings_window_title": "Nastavenia",
|
||||||
"gui_settings_autoupdate_label": "Skontrolovať novú verziu",
|
"gui_settings_autoupdate_label": "Skontrolovať novú verziu",
|
||||||
@ -169,7 +165,6 @@
|
|||||||
"mode_settings_autostart_timer_checkbox": "Spustiť onion službu v plánovanom čase",
|
"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_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_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_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_label": "Uložiť súbory do",
|
||||||
"mode_settings_receive_data_dir_browse_button": "Prechádzať",
|
"mode_settings_receive_data_dir_browse_button": "Prechádzať",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "Odpovedan",
|
"gui_canceled": "Odpovedan",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "Izhod",
|
"gui_quit_warning_quit": "Izhod",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -47,14 +47,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -65,14 +62,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "",
|
"gui_quit_warning_quit": "",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -138,7 +133,6 @@
|
|||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_connect_to_tor_for_onion_settings": "",
|
"gui_connect_to_tor_for_onion_settings": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -22,12 +22,9 @@
|
|||||||
"gui_receive_stop_server": "Prekini režim primanja",
|
"gui_receive_stop_server": "Prekini režim primanja",
|
||||||
"gui_receive_stop_server_autostop_timer": "Prekini režim primanja ({} preostalo)",
|
"gui_receive_stop_server_autostop_timer": "Prekini režim primanja ({} preostalo)",
|
||||||
"gui_copy_url": "Kopiraj adresu",
|
"gui_copy_url": "Kopiraj adresu",
|
||||||
"gui_copy_hidservauth": "Kopiraj HidServAuth",
|
|
||||||
"gui_canceled": "Obustavljeno",
|
"gui_canceled": "Obustavljeno",
|
||||||
"gui_copied_url_title": "Kopirana OnionShare adresa",
|
"gui_copied_url_title": "Kopirana OnionShare adresa",
|
||||||
"gui_copied_url": "OnionShare adresa kopirana u privremenu memoriju",
|
"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_waiting_to_start": "Planirano da počne u {}. Klikni da obustaviš.",
|
||||||
"gui_please_wait": "Počinje… Klikni da obustaviš.",
|
"gui_please_wait": "Počinje… Klikni da obustaviš.",
|
||||||
"gui_quit_title": "Ne tako brzo",
|
"gui_quit_title": "Ne tako brzo",
|
||||||
@ -35,14 +32,12 @@
|
|||||||
"gui_receive_quit_warning": "Proces primanja datoteka u toku. Jeste li sigurni da želite da zaustavite OnionShare?",
|
"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_quit": "Izađi",
|
||||||
"gui_quit_warning_dont_quit": "Odustani",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare zahteva barem Tor 0.2.7.1 i python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Podešavanja",
|
"gui_settings_window_title": "Podešavanja",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Šta je ovo?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Šta je ovo?</a>",
|
||||||
"gui_settings_stealth_option": "Koristi klijent autorizaciju",
|
"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_label": "Proveri da li postoji nova verzija",
|
||||||
"gui_settings_autoupdate_option": "Obavesti me kada nova verzija bude na raspolaganju",
|
"gui_settings_autoupdate_option": "Obavesti me kada nova verzija bude na raspolaganju",
|
||||||
"gui_settings_autoupdate_timestamp": "Poslednja provera: {}",
|
"gui_settings_autoupdate_timestamp": "Poslednja provera: {}",
|
||||||
@ -114,7 +109,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.",
|
"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",
|
"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_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_save_private_key_checkbox": "Koristi trajnu adresu",
|
||||||
"gui_share_url_description": "<b>Svako</b> sa ovom OnionShare sdresom može <b>preuzeti</b> tvoje datoteke koristeći <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Svako</b> sa ovom OnionShare sdresom može <b>preuzeti</b> tvoje datoteke koristeći <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_website_url_description": "<b>Svako</b> sa ovom OnionShare adresom može <b>posetiti</b> tvoju veb-stranicu koristeći <b>Tor Browser</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Svako</b> sa ovom OnionShare adresom može <b>posetiti</b> tvoju veb-stranicu koristeći <b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -192,7 +186,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?",
|
"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_browse_button": "Pronađi",
|
||||||
"mode_settings_receive_data_dir_label": "Sačuvaj fajlove u",
|
"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_legacy_checkbox": "Koristite zastarelu adresu (v2 onion servis, nije preporučeno)",
|
||||||
"mode_settings_autostop_timer_checkbox": "Zaustavi onion servis u planirano vreme",
|
"mode_settings_autostop_timer_checkbox": "Zaustavi onion servis u planirano vreme",
|
||||||
"mode_settings_autostart_timer_checkbox": "Pokreni onion servis u planirano vreme",
|
"mode_settings_autostart_timer_checkbox": "Pokreni onion servis u planirano vreme",
|
||||||
|
@ -45,14 +45,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "Stoppa mottagningsläge ({} kvarstår)",
|
"gui_receive_stop_server_autostop_timer": "Stoppa mottagningsläge ({} kvarstår)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "Automatiska stopp-tidtagaren avslutar vid {}",
|
"gui_receive_stop_server_autostop_timer_tooltip": "Automatiska stopp-tidtagaren avslutar vid {}",
|
||||||
"gui_copy_url": "Kopiera adress",
|
"gui_copy_url": "Kopiera adress",
|
||||||
"gui_copy_hidservauth": "Kopiera HidServAuth",
|
|
||||||
"gui_downloads": "Nedladdningshistorik",
|
"gui_downloads": "Nedladdningshistorik",
|
||||||
"gui_no_downloads": "Inga Nedladdningar Än",
|
"gui_no_downloads": "Inga Nedladdningar Än",
|
||||||
"gui_canceled": "Avbruten",
|
"gui_canceled": "Avbruten",
|
||||||
"gui_copied_url_title": "OnionShare-adress kopierad",
|
"gui_copied_url_title": "OnionShare-adress kopierad",
|
||||||
"gui_copied_url": "OnionShare-adress kopierad till urklipp",
|
"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_please_wait": "Startar... klicka för att avbryta.",
|
||||||
"gui_download_upload_progress_complete": "%p%, {0:s} förflutit.",
|
"gui_download_upload_progress_complete": "%p%, {0:s} förflutit.",
|
||||||
"gui_download_upload_progress_starting": "{0:s}, %p% (beräknar)",
|
"gui_download_upload_progress_starting": "{0:s}, %p% (beräknar)",
|
||||||
@ -63,14 +60,12 @@
|
|||||||
"gui_receive_quit_warning": "Du håller på att ta emot filer. Är du säker på att du vill avsluta OnionShare?",
|
"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_quit": "Avsluta",
|
||||||
"gui_quit_warning_dont_quit": "Avbryt",
|
"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%",
|
"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_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.",
|
"error_ephemeral_not_supported": "OnionShare kräver minst både Tor 0.2.7.1 och python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Inställningar",
|
"gui_settings_window_title": "Inställningar",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Vad är det här?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Vad är det här?</a>",
|
||||||
"gui_settings_stealth_option": "Använd klientauktorisering",
|
"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_label": "Sök efter ny version",
|
||||||
"gui_settings_autoupdate_option": "Meddela mig när en ny version är tillgänglig",
|
"gui_settings_autoupdate_option": "Meddela mig när en ny version är tillgänglig",
|
||||||
"gui_settings_autoupdate_timestamp": "Senast kontrollerad: {}",
|
"gui_settings_autoupdate_timestamp": "Senast kontrollerad: {}",
|
||||||
@ -135,7 +130,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_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.",
|
"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",
|
"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_save_private_key_checkbox": "Använd en beständig adress",
|
||||||
"gui_share_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>hämta</b> dina filer med <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>hämta</b> dina filer med <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>ladda upp</b> filer till din dator med <b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>ladda upp</b> filer till din dator med <b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -226,7 +220,6 @@
|
|||||||
"hours_first_letter": "t",
|
"hours_first_letter": "t",
|
||||||
"minutes_first_letter": "m",
|
"minutes_first_letter": "m",
|
||||||
"seconds_first_letter": "s",
|
"seconds_first_letter": "s",
|
||||||
"invalid_password_guess": "Ogiltig lösenordsgissning",
|
|
||||||
"gui_website_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>besöka</b> din webbplats med <b>Tor Browser</b>: <img src='{}' />",
|
"gui_website_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>besöka</b> din webbplats med <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_mode_website_button": "Publicera webbplats",
|
"gui_mode_website_button": "Publicera webbplats",
|
||||||
"systray_site_loaded_title": "Webbplats inläst",
|
"systray_site_loaded_title": "Webbplats inläst",
|
||||||
@ -247,7 +240,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Bläddra",
|
"mode_settings_receive_data_dir_browse_button": "Bläddra",
|
||||||
"mode_settings_receive_data_dir_label": "Spara filer till",
|
"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_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_autostart_timer_checkbox": "Starta oniontjänsten vid schemalagd tid",
|
||||||
"mode_settings_autostop_timer_checkbox": "Stoppa oniontjänsten vid schemalagd tid",
|
"mode_settings_autostop_timer_checkbox": "Stoppa oniontjänsten vid schemalagd tid",
|
||||||
|
@ -21,12 +21,9 @@
|
|||||||
"gui_receive_stop_server": "",
|
"gui_receive_stop_server": "",
|
||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_waiting_to_start": "",
|
"gui_waiting_to_start": "",
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_quit_title": "",
|
"gui_quit_title": "",
|
||||||
@ -34,14 +31,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "",
|
"gui_quit_warning_quit": "",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -111,7 +106,6 @@
|
|||||||
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
|
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_connect_to_tor_for_onion_settings": "",
|
"gui_connect_to_tor_for_onion_settings": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -21,12 +21,9 @@
|
|||||||
"gui_receive_stop_server": "స్వీకరించు రీతిని ఆపివేయి",
|
"gui_receive_stop_server": "స్వీకరించు రీతిని ఆపివేయి",
|
||||||
"gui_receive_stop_server_autostop_timer": "స్వీకరించు రీతిని ఆపివేయి ({} మిగిలినది)",
|
"gui_receive_stop_server_autostop_timer": "స్వీకరించు రీతిని ఆపివేయి ({} మిగిలినది)",
|
||||||
"gui_copy_url": "జాల చిరునామాను నకలు తీయి",
|
"gui_copy_url": "జాల చిరునామాను నకలు తీయి",
|
||||||
"gui_copy_hidservauth": "HidServAuth నకలు తీయి",
|
|
||||||
"gui_canceled": "రద్దు చేయబడినది",
|
"gui_canceled": "రద్దు చేయబడినది",
|
||||||
"gui_copied_url_title": "OnionShare జాల చిరునామా నకలు తీయబడినది",
|
"gui_copied_url_title": "OnionShare జాల చిరునామా నకలు తీయబడినది",
|
||||||
"gui_copied_url": "OnionShare జాల చిరునామా క్లిప్బోర్డునకు నకలు తీయబడినది",
|
"gui_copied_url": "OnionShare జాల చిరునామా క్లిప్బోర్డునకు నకలు తీయబడినది",
|
||||||
"gui_copied_hidservauth_title": "HidServAuth నకలు తీయబడినది",
|
|
||||||
"gui_copied_hidservauth": "HidServAuth పంక్తి క్లిప్బోర్డునకు నకలు తీయబడినది",
|
|
||||||
"gui_waiting_to_start": "ఇంకా {}లో మొదలగునట్లు అమర్చబడినది. రద్దుచేయుటకై ఇక్కడ నొక్కు.",
|
"gui_waiting_to_start": "ఇంకా {}లో మొదలగునట్లు అమర్చబడినది. రద్దుచేయుటకై ఇక్కడ నొక్కు.",
|
||||||
"gui_please_wait": "మొదలుపెట్టబడుతుంది... రద్దు చేయుటకై ఇక్కడ నొక్కు.",
|
"gui_please_wait": "మొదలుపెట్టబడుతుంది... రద్దు చేయుటకై ఇక్కడ నొక్కు.",
|
||||||
"gui_quit_title": "అంత త్వరగా కాదు",
|
"gui_quit_title": "అంత త్వరగా కాదు",
|
||||||
@ -34,14 +31,12 @@
|
|||||||
"gui_receive_quit_warning": "మీరు దస్త్రాలను స్వీకరించే క్రమంలో ఉన్నారు. మీరు నిశ్చయంగా ఇప్పుడు OnionShareని విడిచి వెళ్ళాలనుకుంటున్నారా?",
|
"gui_receive_quit_warning": "మీరు దస్త్రాలను స్వీకరించే క్రమంలో ఉన్నారు. మీరు నిశ్చయంగా ఇప్పుడు OnionShareని విడిచి వెళ్ళాలనుకుంటున్నారా?",
|
||||||
"gui_quit_warning_quit": "నిష్క్రమించు",
|
"gui_quit_warning_quit": "నిష్క్రమించు",
|
||||||
"gui_quit_warning_dont_quit": "రద్దుచేయి",
|
"gui_quit_warning_dont_quit": "రద్దుచేయి",
|
||||||
"error_rate_limit": "ఎవరో మీ జాల చిరునామాతో చాలా సరికాని సంకేతశబ్దాలు వాడారు, బహుశా వారు దానిని ఊహించడానికి ప్రయత్నిస్తుండవచ్చు, కనుక OnionShare సర్వరును ఆపివేసింది. మరల పంచుకోవడం మొదలుపెట్టి మీ గ్రహీతలకు ఆ కొత్త జాల చిరునామాను పంపండి.",
|
|
||||||
"zip_progress_bar_format": "కుదించబడుతున్నది: %p%",
|
"zip_progress_bar_format": "కుదించబడుతున్నది: %p%",
|
||||||
"error_stealth_not_supported": "ఉపయోక్త ధ్రువీకరణను వాడుటకై కనీసం Tor 0.2.9.1-alpha (లేదా Tor Browser 6.5), python3-stem 1.5.0 ఈ రెండూ ఉండాలి.",
|
"error_stealth_not_supported": "ఉపయోక్త ధ్రువీకరణను వాడుటకై కనీసం Tor 0.2.9.1-alpha (లేదా Tor Browser 6.5), python3-stem 1.5.0 ఈ రెండూ ఉండాలి.",
|
||||||
"error_ephemeral_not_supported": "OnionShare పనిచేయాలంటే Tor 0.2.7.1 మరియు python-3-stem 1.4.0, ఈ రెండూ ఉండాలి.",
|
"error_ephemeral_not_supported": "OnionShare పనిచేయాలంటే Tor 0.2.7.1 మరియు python-3-stem 1.4.0, ఈ రెండూ ఉండాలి.",
|
||||||
"gui_settings_window_title": "అమరికలు",
|
"gui_settings_window_title": "అమరికలు",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>ఇది ఏమిటి?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>ఇది ఏమిటి?</a>",
|
||||||
"gui_settings_stealth_option": "ఉపయోక్త ధ్రువీకరణను వాడు",
|
"gui_settings_stealth_option": "ఉపయోక్త ధ్రువీకరణను వాడు",
|
||||||
"gui_settings_stealth_hidservauth_string": "మరల వాడుటకై మీ ప్రైవేటు కీని భద్రపరచడం వలన మీరు ఇక్కడ నొక్కడం ద్వారా మీ HidServAuth నకలు తీయవచ్చు.",
|
|
||||||
"gui_settings_autoupdate_label": "కొత్త రూపాంతరం కోసం సరిచూడు",
|
"gui_settings_autoupdate_label": "కొత్త రూపాంతరం కోసం సరిచూడు",
|
||||||
"gui_settings_autoupdate_option": "కొత్త రూపాంతరం వస్తే నాకు తెలియచేయి",
|
"gui_settings_autoupdate_option": "కొత్త రూపాంతరం వస్తే నాకు తెలియచేయి",
|
||||||
"gui_settings_autoupdate_timestamp": "ఇంతకుముందు సరిచూసినది: {}",
|
"gui_settings_autoupdate_timestamp": "ఇంతకుముందు సరిచూసినది: {}",
|
||||||
@ -111,7 +106,6 @@
|
|||||||
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "స్వయంచాలక ఆగు సమయం అనేది స్వయంచాలక ప్రారంభ సమయంతో సమానంగా లేదా అంతకు ముందు ఉండకూడదు. పంచుకోవడం ప్రారంభించడం కొరకు దయచేసి దానిని నవీకరించండి.",
|
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "స్వయంచాలక ఆగు సమయం అనేది స్వయంచాలక ప్రారంభ సమయంతో సమానంగా లేదా అంతకు ముందు ఉండకూడదు. పంచుకోవడం ప్రారంభించడం కొరకు దయచేసి దానిని నవీకరించండి.",
|
||||||
"share_via_onionshare": "OnionShare చేయి",
|
"share_via_onionshare": "OnionShare చేయి",
|
||||||
"gui_connect_to_tor_for_onion_settings": "Onion సేవా అమరికలను చూచుటకు Torతో అనుసంధానించు",
|
"gui_connect_to_tor_for_onion_settings": "Onion సేవా అమరికలను చూచుటకు Torతో అనుసంధానించు",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "పాత చిరునామాలు వాడు",
|
|
||||||
"gui_save_private_key_checkbox": "ఒక నిరంతర చిరునామాను వాడు",
|
"gui_save_private_key_checkbox": "ఒక నిరంతర చిరునామాను వాడు",
|
||||||
"gui_share_url_description": "ఈOnionShare చిరునామా గల <b>ఎవరైనా</b> మీ దస్త్రాలను <b>Tor విహారిణి</b>తో <b>దింపుకోవచ్చు</b>: <img src='{}' />",
|
"gui_share_url_description": "ఈOnionShare చిరునామా గల <b>ఎవరైనా</b> మీ దస్త్రాలను <b>Tor విహారిణి</b>తో <b>దింపుకోవచ్చు</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "ఈOnionShare చిరునామా గల <b>ఎవరైనా</b> మీ దస్త్రాలను <b>Tor విహారిణి</b>తో <b>ఎక్కించుకోవచ్చు</b>:<img src='{}' />",
|
"gui_receive_url_description": "ఈOnionShare చిరునామా గల <b>ఎవరైనా</b> మీ దస్త్రాలను <b>Tor విహారిణి</b>తో <b>ఎక్కించుకోవచ్చు</b>:<img src='{}' />",
|
||||||
|
@ -41,23 +41,18 @@
|
|||||||
"gui_receive_stop_server": "Alma Modunu Durdur",
|
"gui_receive_stop_server": "Alma Modunu Durdur",
|
||||||
"gui_receive_stop_server_autostop_timer": "Alma Modunu Durdur ({} kaldı)",
|
"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_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_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/",
|
"version_string": "OnionShare {0:s} | https://onionshare.org/",
|
||||||
"gui_quit_title": "Çok hızlı değil",
|
"gui_quit_title": "Çok hızlı değil",
|
||||||
"gui_share_quit_warning": "Dosya gönderiyorsunuz. OnionShare uygulamasından çıkmak istediğinize emin misiniz?",
|
"gui_share_quit_warning": "Dosya gönderiyorsunuz. OnionShare uygulamasından çıkmak istediğinize emin misiniz?",
|
||||||
"gui_receive_quit_warning": "Dosya alıyorsunuz. OnionShare uygulamasından çıkmak istediğinize emin misiniz?",
|
"gui_receive_quit_warning": "Dosya alıyorsunuz. OnionShare uygulamasından çıkmak istediğinize emin misiniz?",
|
||||||
"gui_quit_warning_quit": "Çık",
|
"gui_quit_warning_quit": "Çık",
|
||||||
"gui_quit_warning_dont_quit": "İptal",
|
"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_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.",
|
"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",
|
"gui_settings_window_title": "Ayarlar",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Bu nedir?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Bu nedir?</a>",
|
||||||
"gui_settings_stealth_option": "İstemci kimlik doğrulaması kullanılsın",
|
"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_label": "Yeni sürümü denetle",
|
||||||
"gui_settings_autoupdate_option": "Yeni bir sürüm olduğunda bana haber ver",
|
"gui_settings_autoupdate_option": "Yeni bir sürüm olduğunda bana haber ver",
|
||||||
"gui_settings_autoupdate_timestamp": "Son denetleme: {}",
|
"gui_settings_autoupdate_timestamp": "Son denetleme: {}",
|
||||||
@ -124,7 +119,6 @@
|
|||||||
"gui_server_autostop_timer_expired": "Otomatik durma sayacı zaten sona ermiş. Paylaşmaya başlamak için sayacı ayarlayın.",
|
"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ş",
|
"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_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_save_private_key_checkbox": "Kalıcı bir adres kullanılsın",
|
||||||
"gui_share_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak dosyalarınızı <b>indirebilir</b>: <img src='{}' />",
|
"gui_share_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak dosyalarınızı <b>indirebilir</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak dosyaları bilgisayarınıza <b>yükleyebilir</b>: <img src='{}' />",
|
"gui_receive_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak dosyaları bilgisayarınıza <b>yükleyebilir</b>: <img src='{}' />",
|
||||||
@ -197,7 +191,6 @@
|
|||||||
"hours_first_letter": "s",
|
"hours_first_letter": "s",
|
||||||
"minutes_first_letter": "d",
|
"minutes_first_letter": "d",
|
||||||
"seconds_first_letter": "sn",
|
"seconds_first_letter": "sn",
|
||||||
"invalid_password_guess": "Geçersiz parola tahmini",
|
|
||||||
"gui_website_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak web sitenizi <b>ziyaret edebilir</b>: <img src='{}' />",
|
"gui_website_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak web sitenizi <b>ziyaret edebilir</b>: <img src='{}' />",
|
||||||
"gui_mode_website_button": "Web Sitesini Yayınla",
|
"gui_mode_website_button": "Web Sitesini Yayınla",
|
||||||
"gui_website_mode_no_files": "Henüz Bir Web Sitesi Paylaşılmadı",
|
"gui_website_mode_no_files": "Henüz Bir Web Sitesi Paylaşılmadı",
|
||||||
@ -210,7 +203,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "Göz at",
|
"mode_settings_receive_data_dir_browse_button": "Göz at",
|
||||||
"mode_settings_receive_data_dir_label": "Dosyaları şuraya kaydet",
|
"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_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_legacy_checkbox": "Eski bir adres kullan (v2 onion hizmeti, tavsiye edilmez)",
|
||||||
"mode_settings_autostop_timer_checkbox": "Onion hizmetini zamanlanan saatte durdur",
|
"mode_settings_autostop_timer_checkbox": "Onion hizmetini zamanlanan saatte durdur",
|
||||||
"mode_settings_autostart_timer_checkbox": "Onion hizmetini zamanlanan saatte başlat",
|
"mode_settings_autostart_timer_checkbox": "Onion hizmetini zamanlanan saatte başlat",
|
||||||
|
@ -21,12 +21,9 @@
|
|||||||
"gui_receive_stop_server": "Зупинити режим отримання",
|
"gui_receive_stop_server": "Зупинити режим отримання",
|
||||||
"gui_receive_stop_server_autostop_timer": "Зупинити режим отримання ({} залишилось)",
|
"gui_receive_stop_server_autostop_timer": "Зупинити режим отримання ({} залишилось)",
|
||||||
"gui_copy_url": "Копіювати Адресу",
|
"gui_copy_url": "Копіювати Адресу",
|
||||||
"gui_copy_hidservauth": "Копіювати HidServAuth",
|
|
||||||
"gui_canceled": "Скасовано",
|
"gui_canceled": "Скасовано",
|
||||||
"gui_copied_url_title": "Адресу OnionShare копійовано",
|
"gui_copied_url_title": "Адресу OnionShare копійовано",
|
||||||
"gui_copied_url": "Адресу OnionShare копійовано до буферу обміну",
|
"gui_copied_url": "Адресу OnionShare копійовано до буферу обміну",
|
||||||
"gui_copied_hidservauth_title": "Скопійовано HidServAuth",
|
|
||||||
"gui_copied_hidservauth": "Рядок HidServAuth копійовано до буфера обміну",
|
|
||||||
"gui_waiting_to_start": "Заплановано почати за {}. Натисніть для скасування.",
|
"gui_waiting_to_start": "Заплановано почати за {}. Натисніть для скасування.",
|
||||||
"gui_please_wait": "Початок... Натисніть для скасування.",
|
"gui_please_wait": "Початок... Натисніть для скасування.",
|
||||||
"gui_quit_title": "Не так швидко",
|
"gui_quit_title": "Не так швидко",
|
||||||
@ -34,14 +31,12 @@
|
|||||||
"gui_receive_quit_warning": "Відбувається отримання файлів. Ви впевнені, що бажаєте вийти з OnionShare?",
|
"gui_receive_quit_warning": "Відбувається отримання файлів. Ви впевнені, що бажаєте вийти з OnionShare?",
|
||||||
"gui_quit_warning_quit": "Вийти",
|
"gui_quit_warning_quit": "Вийти",
|
||||||
"gui_quit_warning_dont_quit": "Відміна",
|
"gui_quit_warning_dont_quit": "Відміна",
|
||||||
"error_rate_limit": "Хтось здійснив забагато невдалих спроб під'єднатися до вашого сервера, тому OnionShare зупинив сервер. Почніть надсилання знову й надішліть одержувачу нову адресу надсилання.",
|
|
||||||
"zip_progress_bar_format": "Стиснення: %p%",
|
"zip_progress_bar_format": "Стиснення: %p%",
|
||||||
"error_stealth_not_supported": "Для авторизації клієнта, вам потрібні принаймні Tor 0.2.9.1-alpha(або Tor Browser 6.5) і python3-stem 1.5.0.",
|
"error_stealth_not_supported": "Для авторизації клієнта, вам потрібні принаймні Tor 0.2.9.1-alpha(або Tor Browser 6.5) і python3-stem 1.5.0.",
|
||||||
"error_ephemeral_not_supported": "OnionShare потребує принаймні Tor 0.2.7.1 і python3-stem 1.4.0.",
|
"error_ephemeral_not_supported": "OnionShare потребує принаймні Tor 0.2.7.1 і python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "Налаштування",
|
"gui_settings_window_title": "Налаштування",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>Що це?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>Що це?</a>",
|
||||||
"gui_settings_stealth_option": "Використовувати авторизацію клієнта",
|
"gui_settings_stealth_option": "Використовувати авторизацію клієнта",
|
||||||
"gui_settings_stealth_hidservauth_string": "Зберігши свій закритий ключ для повторного користування, ви можете копіювати HidServAuth.",
|
|
||||||
"gui_settings_autoupdate_label": "Перевірити наявність оновлень",
|
"gui_settings_autoupdate_label": "Перевірити наявність оновлень",
|
||||||
"gui_settings_autoupdate_option": "Повідомляти про наявність нової версії",
|
"gui_settings_autoupdate_option": "Повідомляти про наявність нової версії",
|
||||||
"gui_settings_autoupdate_timestamp": "Попередня перевірка: {}",
|
"gui_settings_autoupdate_timestamp": "Попередня перевірка: {}",
|
||||||
@ -111,7 +106,6 @@
|
|||||||
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Час автоспину не може бути однаковим або ранішим за час автоматичного запуску. Налаштуйте його, щоб почати надсилання.",
|
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Час автоспину не може бути однаковим або ранішим за час автоматичного запуску. Налаштуйте його, щоб почати надсилання.",
|
||||||
"share_via_onionshare": "Поділитися через OnionShare",
|
"share_via_onionshare": "Поділитися через OnionShare",
|
||||||
"gui_connect_to_tor_for_onion_settings": "З'єднайтеся з Tor, щоб побачити параметри служби onion",
|
"gui_connect_to_tor_for_onion_settings": "З'єднайтеся з Tor, щоб побачити параметри служби onion",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "Використовувати застарілі адреси",
|
|
||||||
"gui_save_private_key_checkbox": "Використовувати постійну адресу",
|
"gui_save_private_key_checkbox": "Використовувати постійну адресу",
|
||||||
"gui_share_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси, може <b>завантажити</b> ваші файли, через <b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси, може <b>завантажити</b> ваші файли, через <b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси, може <b>завантажити</b> файли до вашого комп'ютера через <b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси, може <b>завантажити</b> файли до вашого комп'ютера через <b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -187,7 +181,6 @@
|
|||||||
"mode_settings_website_disable_csp_checkbox": "Не надсилати заголовок політики безпеки вмісту (дозволяє вебсайту застосовувати сторонні ресурси)",
|
"mode_settings_website_disable_csp_checkbox": "Не надсилати заголовок політики безпеки вмісту (дозволяє вебсайту застосовувати сторонні ресурси)",
|
||||||
"mode_settings_receive_data_dir_label": "Зберігати файли до",
|
"mode_settings_receive_data_dir_label": "Зберігати файли до",
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "Закрити доступ, коли файли надіслано (приберіть позначку, щоб дозволити завантаження окремих файлів)",
|
"mode_settings_share_autostop_sharing_checkbox": "Закрити доступ, коли файли надіслано (приберіть позначку, щоб дозволити завантаження окремих файлів)",
|
||||||
"mode_settings_client_auth_checkbox": "Застосовувати авторизацію клієнта",
|
|
||||||
"mode_settings_legacy_checkbox": "Користуватися застарілою адресою (служба onion v2, не рекомендовано)",
|
"mode_settings_legacy_checkbox": "Користуватися застарілою адресою (служба onion v2, не рекомендовано)",
|
||||||
"mode_settings_autostop_timer_checkbox": "Зупинити службу onion у запланований час",
|
"mode_settings_autostop_timer_checkbox": "Зупинити службу onion у запланований час",
|
||||||
"mode_settings_autostart_timer_checkbox": "Запускати службу onion у запланований час",
|
"mode_settings_autostart_timer_checkbox": "Запускати службу onion у запланований час",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "",
|
"gui_quit_warning_quit": "",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -45,14 +45,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "",
|
"gui_receive_stop_server_autostop_timer": "",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
"gui_receive_stop_server_autostop_timer_tooltip": "",
|
||||||
"gui_copy_url": "",
|
"gui_copy_url": "",
|
||||||
"gui_copy_hidservauth": "",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "",
|
"gui_canceled": "",
|
||||||
"gui_copied_url_title": "",
|
"gui_copied_url_title": "",
|
||||||
"gui_copied_url": "",
|
"gui_copied_url": "",
|
||||||
"gui_copied_hidservauth_title": "",
|
|
||||||
"gui_copied_hidservauth": "",
|
|
||||||
"gui_please_wait": "",
|
"gui_please_wait": "",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -63,14 +60,12 @@
|
|||||||
"gui_receive_quit_warning": "",
|
"gui_receive_quit_warning": "",
|
||||||
"gui_quit_warning_quit": "",
|
"gui_quit_warning_quit": "",
|
||||||
"gui_quit_warning_dont_quit": "",
|
"gui_quit_warning_dont_quit": "",
|
||||||
"error_rate_limit": "",
|
|
||||||
"zip_progress_bar_format": "",
|
"zip_progress_bar_format": "",
|
||||||
"error_stealth_not_supported": "",
|
"error_stealth_not_supported": "",
|
||||||
"error_ephemeral_not_supported": "",
|
"error_ephemeral_not_supported": "",
|
||||||
"gui_settings_window_title": "",
|
"gui_settings_window_title": "",
|
||||||
"gui_settings_whats_this": "",
|
"gui_settings_whats_this": "",
|
||||||
"gui_settings_stealth_option": "",
|
"gui_settings_stealth_option": "",
|
||||||
"gui_settings_stealth_hidservauth_string": "",
|
|
||||||
"gui_settings_autoupdate_label": "",
|
"gui_settings_autoupdate_label": "",
|
||||||
"gui_settings_autoupdate_option": "",
|
"gui_settings_autoupdate_option": "",
|
||||||
"gui_settings_autoupdate_timestamp": "",
|
"gui_settings_autoupdate_timestamp": "",
|
||||||
@ -135,7 +130,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "",
|
"gui_server_started_after_autostop_timer": "",
|
||||||
"gui_server_autostop_timer_expired": "",
|
"gui_server_autostop_timer_expired": "",
|
||||||
"share_via_onionshare": "",
|
"share_via_onionshare": "",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "",
|
|
||||||
"gui_save_private_key_checkbox": "",
|
"gui_save_private_key_checkbox": "",
|
||||||
"gui_share_url_description": "",
|
"gui_share_url_description": "",
|
||||||
"gui_receive_url_description": "",
|
"gui_receive_url_description": "",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "停止接收模式(还剩 {} 秒)",
|
"gui_receive_stop_server_autostop_timer": "停止接收模式(还剩 {} 秒)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "在{}自动停止",
|
"gui_receive_stop_server_autostop_timer_tooltip": "在{}自动停止",
|
||||||
"gui_copy_url": "复制地址",
|
"gui_copy_url": "复制地址",
|
||||||
"gui_copy_hidservauth": "复制 HidServAuth",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "已取消",
|
"gui_canceled": "已取消",
|
||||||
"gui_copied_url_title": "已复制 OnionShare 地址",
|
"gui_copied_url_title": "已复制 OnionShare 地址",
|
||||||
"gui_copied_url": "OnionShare 地址已复制到剪贴板",
|
"gui_copied_url": "OnionShare 地址已复制到剪贴板",
|
||||||
"gui_copied_hidservauth_title": "已复制 HidServAuth",
|
|
||||||
"gui_copied_hidservauth": "HidServAuth 行已复制到剪贴板",
|
|
||||||
"gui_please_wait": "正在开启……点击以取消。",
|
"gui_please_wait": "正在开启……点击以取消。",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "您有文件在接收中……确定要退出 OnionShare 吗?",
|
"gui_receive_quit_warning": "您有文件在接收中……确定要退出 OnionShare 吗?",
|
||||||
"gui_quit_warning_quit": "退出",
|
"gui_quit_warning_quit": "退出",
|
||||||
"gui_quit_warning_dont_quit": "取消",
|
"gui_quit_warning_dont_quit": "取消",
|
||||||
"error_rate_limit": "有人发出了过多错误请求来猜测您的地址,因此 OinionShare 已停止服务。请重新开启共享并且向接收人发送新的共享地址。",
|
|
||||||
"zip_progress_bar_format": "压缩中:%p%",
|
"zip_progress_bar_format": "压缩中:%p%",
|
||||||
"error_stealth_not_supported": "要使用客户端认证,最低版本要求是:Tor 0.2.9.1-alpha(或 Tor Browser 6.5)和 python3-stem 1.5.0。",
|
"error_stealth_not_supported": "要使用客户端认证,最低版本要求是:Tor 0.2.9.1-alpha(或 Tor Browser 6.5)和 python3-stem 1.5.0。",
|
||||||
"error_ephemeral_not_supported": "OnionShare 最低版本要求为 Tor 0.2.7.1 和 python3-stem 1.4.0。",
|
"error_ephemeral_not_supported": "OnionShare 最低版本要求为 Tor 0.2.7.1 和 python3-stem 1.4.0。",
|
||||||
"gui_settings_window_title": "设置",
|
"gui_settings_window_title": "设置",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>这是什么?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>这是什么?</a>",
|
||||||
"gui_settings_stealth_option": "使用客户端认证",
|
"gui_settings_stealth_option": "使用客户端认证",
|
||||||
"gui_settings_stealth_hidservauth_string": "已保存您的私钥用于重复使用,这意味着您现在可以点击以复制您的 HidServAuth。",
|
|
||||||
"gui_settings_autoupdate_label": "检查新版本",
|
"gui_settings_autoupdate_label": "检查新版本",
|
||||||
"gui_settings_autoupdate_option": "新版本可用时通知我",
|
"gui_settings_autoupdate_option": "新版本可用时通知我",
|
||||||
"gui_settings_autoupdate_timestamp": "上次检查更新时间:{}",
|
"gui_settings_autoupdate_timestamp": "上次检查更新时间:{}",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "在服务器启动之前,自动停止的定时器的计时已到。请建立一个新的共享。",
|
"gui_server_started_after_autostop_timer": "在服务器启动之前,自动停止的定时器的计时已到。请建立一个新的共享。",
|
||||||
"gui_server_autostop_timer_expired": "自动停止的定时器计时已到。请对其调整以开始共享。",
|
"gui_server_autostop_timer_expired": "自动停止的定时器计时已到。请对其调整以开始共享。",
|
||||||
"share_via_onionshare": "通过 OnionShare 共享",
|
"share_via_onionshare": "通过 OnionShare 共享",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "使用老式地址",
|
|
||||||
"gui_save_private_key_checkbox": "使用长期地址",
|
"gui_save_private_key_checkbox": "使用长期地址",
|
||||||
"gui_share_url_description": "<b>任何人</b>只要有这个 OnionShare 地址,都可以用<b> Tor Browser </b>来<b>下载</b>您的文件:<img src='{}' />",
|
"gui_share_url_description": "<b>任何人</b>只要有这个 OnionShare 地址,都可以用<b> Tor Browser </b>来<b>下载</b>您的文件:<img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>任何人</b>只要有这个 OnionShare 地址,都可以用<b> Tor Browser </b>向您的电脑<b>上传</b>文件:<img src='{}' />",
|
"gui_receive_url_description": "<b>任何人</b>只要有这个 OnionShare 地址,都可以用<b> Tor Browser </b>向您的电脑<b>上传</b>文件:<img src='{}' />",
|
||||||
@ -238,7 +232,6 @@
|
|||||||
"mode_settings_receive_data_dir_browse_button": "浏览",
|
"mode_settings_receive_data_dir_browse_button": "浏览",
|
||||||
"mode_settings_receive_data_dir_label": "保存文件到",
|
"mode_settings_receive_data_dir_label": "保存文件到",
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "文件传送完后停止共享(取消选中可允许下载单个文件)",
|
"mode_settings_share_autostop_sharing_checkbox": "文件传送完后停止共享(取消选中可允许下载单个文件)",
|
||||||
"mode_settings_client_auth_checkbox": "使用客户端认证",
|
|
||||||
"mode_settings_legacy_checkbox": "使用旧地址(v2 onion服务,不推荐)",
|
"mode_settings_legacy_checkbox": "使用旧地址(v2 onion服务,不推荐)",
|
||||||
"mode_settings_autostop_timer_checkbox": "定时停止onion服务",
|
"mode_settings_autostop_timer_checkbox": "定时停止onion服务",
|
||||||
"mode_settings_autostart_timer_checkbox": "定时起动onion服务",
|
"mode_settings_autostart_timer_checkbox": "定时起动onion服务",
|
||||||
|
@ -44,14 +44,11 @@
|
|||||||
"gui_receive_stop_server_autostop_timer": "停止接收模式 (剩餘{}秒)",
|
"gui_receive_stop_server_autostop_timer": "停止接收模式 (剩餘{}秒)",
|
||||||
"gui_receive_stop_server_autostop_timer_tooltip": "計數器將在{}停止",
|
"gui_receive_stop_server_autostop_timer_tooltip": "計數器將在{}停止",
|
||||||
"gui_copy_url": "複製地址",
|
"gui_copy_url": "複製地址",
|
||||||
"gui_copy_hidservauth": "複製HidServAuth",
|
|
||||||
"gui_downloads": "",
|
"gui_downloads": "",
|
||||||
"gui_no_downloads": "",
|
"gui_no_downloads": "",
|
||||||
"gui_canceled": "已取消",
|
"gui_canceled": "已取消",
|
||||||
"gui_copied_url_title": "已複製OnionShare地址",
|
"gui_copied_url_title": "已複製OnionShare地址",
|
||||||
"gui_copied_url": "OnionShare地址已複製到剪貼簿",
|
"gui_copied_url": "OnionShare地址已複製到剪貼簿",
|
||||||
"gui_copied_hidservauth_title": "已複製HidServAuth",
|
|
||||||
"gui_copied_hidservauth": "HidServAuth已複製到剪貼簿",
|
|
||||||
"gui_please_wait": "啟動中...點擊以取消。",
|
"gui_please_wait": "啟動中...點擊以取消。",
|
||||||
"gui_download_upload_progress_complete": "",
|
"gui_download_upload_progress_complete": "",
|
||||||
"gui_download_upload_progress_starting": "",
|
"gui_download_upload_progress_starting": "",
|
||||||
@ -62,14 +59,12 @@
|
|||||||
"gui_receive_quit_warning": "仍在接收檔案,您確定要結束OnionShare嗎?",
|
"gui_receive_quit_warning": "仍在接收檔案,您確定要結束OnionShare嗎?",
|
||||||
"gui_quit_warning_quit": "結束",
|
"gui_quit_warning_quit": "結束",
|
||||||
"gui_quit_warning_dont_quit": "取消",
|
"gui_quit_warning_dont_quit": "取消",
|
||||||
"error_rate_limit": "有人嘗試猜測您的密碼太多次,因此OnionShare已經停止服務。再次啟動分享並傳送新的地址給接收者以開始分享。",
|
|
||||||
"zip_progress_bar_format": "壓縮中: %p%",
|
"zip_progress_bar_format": "壓縮中: %p%",
|
||||||
"error_stealth_not_supported": "為了使用客戶端認證, 您至少需要 Tor 0.2.9.1-alpha (或 Tor Browser 6.5) 以及 python3-stem 1.5.0.",
|
"error_stealth_not_supported": "為了使用客戶端認證, 您至少需要 Tor 0.2.9.1-alpha (或 Tor Browser 6.5) 以及 python3-stem 1.5.0.",
|
||||||
"error_ephemeral_not_supported": "OnionShare 需要至少 Tor 0.2.7.1 以及 python3-stem 1.4.0.",
|
"error_ephemeral_not_supported": "OnionShare 需要至少 Tor 0.2.7.1 以及 python3-stem 1.4.0.",
|
||||||
"gui_settings_window_title": "設定",
|
"gui_settings_window_title": "設定",
|
||||||
"gui_settings_whats_this": "<a href='{0:s}'>這是什麼?</a>",
|
"gui_settings_whats_this": "<a href='{0:s}'>這是什麼?</a>",
|
||||||
"gui_settings_stealth_option": "使用客戶端認證",
|
"gui_settings_stealth_option": "使用客戶端認證",
|
||||||
"gui_settings_stealth_hidservauth_string": "已經將您的私鑰存起來以便使用,代表您現在可以點選以複製您的HidSerAuth。",
|
|
||||||
"gui_settings_autoupdate_label": "檢查新版本",
|
"gui_settings_autoupdate_label": "檢查新版本",
|
||||||
"gui_settings_autoupdate_option": "當有新版本的時候提醒我",
|
"gui_settings_autoupdate_option": "當有新版本的時候提醒我",
|
||||||
"gui_settings_autoupdate_timestamp": "上一次檢查時間: {}",
|
"gui_settings_autoupdate_timestamp": "上一次檢查時間: {}",
|
||||||
@ -134,7 +129,6 @@
|
|||||||
"gui_server_started_after_autostop_timer": "在服務器啓動之前,自動停止的定時器的計時已到。請建立一個新的共享。",
|
"gui_server_started_after_autostop_timer": "在服務器啓動之前,自動停止的定時器的計時已到。請建立一個新的共享。",
|
||||||
"gui_server_autostop_timer_expired": "自動停止計時器時間已到。請調整它來開始分享。",
|
"gui_server_autostop_timer_expired": "自動停止計時器時間已到。請調整它來開始分享。",
|
||||||
"share_via_onionshare": "使用OnionShare分享",
|
"share_via_onionshare": "使用OnionShare分享",
|
||||||
"gui_use_legacy_v2_onions_checkbox": "使用傳統地址",
|
|
||||||
"gui_save_private_key_checkbox": "使用永久地址",
|
"gui_save_private_key_checkbox": "使用永久地址",
|
||||||
"gui_share_url_description": "<b>任何人</b>只要擁有這個地址就可以<b>下載</b>你的檔案經由<b>Tor Browser</b>: <img src='{}' />",
|
"gui_share_url_description": "<b>任何人</b>只要擁有這個地址就可以<b>下載</b>你的檔案經由<b>Tor Browser</b>: <img src='{}' />",
|
||||||
"gui_receive_url_description": "<b>任何人</b>只要擁有這個地址就可以<b>上傳</b>檔案到你的電腦經由<b>Tor Browser</b>: <img src='{}' />",
|
"gui_receive_url_description": "<b>任何人</b>只要擁有這個地址就可以<b>上傳</b>檔案到你的電腦經由<b>Tor Browser</b>: <img src='{}' />",
|
||||||
@ -270,7 +264,6 @@
|
|||||||
"gui_rendezvous_cleanup": "等待Tor电路关闭,以确保文檔传输成功。\n\n這可能需要幾分鐘。",
|
"gui_rendezvous_cleanup": "等待Tor电路关闭,以确保文檔传输成功。\n\n這可能需要幾分鐘。",
|
||||||
"mode_settings_website_disable_csp_checkbox": "取消內容安全政策(Content Security Policy)信頭(允許您的網站使用三方資源)",
|
"mode_settings_website_disable_csp_checkbox": "取消內容安全政策(Content Security Policy)信頭(允許您的網站使用三方資源)",
|
||||||
"mode_settings_share_autostop_sharing_checkbox": "檔案傳送完後停止共享(取消選中可允許下載單個檔案)",
|
"mode_settings_share_autostop_sharing_checkbox": "檔案傳送完後停止共享(取消選中可允許下載單個檔案)",
|
||||||
"mode_settings_client_auth_checkbox": "使用者端認證",
|
|
||||||
"mode_settings_legacy_checkbox": "使用舊地址(v2 onion服務,不推薦)",
|
"mode_settings_legacy_checkbox": "使用舊地址(v2 onion服務,不推薦)",
|
||||||
"mode_settings_autostop_timer_checkbox": "定時停止onion服務",
|
"mode_settings_autostop_timer_checkbox": "定時停止onion服務",
|
||||||
"mode_settings_autostart_timer_checkbox": "定時起動onion服務",
|
"mode_settings_autostart_timer_checkbox": "定時起動onion服務",
|
||||||
|
@ -246,13 +246,25 @@ class Mode(QtWidgets.QWidget):
|
|||||||
self.start_onion_thread()
|
self.start_onion_thread()
|
||||||
|
|
||||||
def start_onion_thread(self, obtain_onion_early=False):
|
def start_onion_thread(self, obtain_onion_early=False):
|
||||||
self.common.log("Mode", "start_server", "Starting an onion thread")
|
# If we tried to start with Client Auth and our Tor is too old to support it,
|
||||||
self.obtain_onion_early = obtain_onion_early
|
# bail out early
|
||||||
self.onion_thread = OnionThread(self)
|
if (
|
||||||
self.onion_thread.success.connect(self.starting_server_step2.emit)
|
not self.server_status.local_only
|
||||||
self.onion_thread.success_early.connect(self.starting_server_early.emit)
|
and not self.app.onion.supports_stealth
|
||||||
self.onion_thread.error.connect(self.starting_server_error.emit)
|
and not self.settings.get("general", "public")
|
||||||
self.onion_thread.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)
|
||||||
|
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):
|
def start_scheduled_service(self, obtain_onion_early=False):
|
||||||
# We start a new OnionThread with the saved scheduled key from settings
|
# We start a new OnionThread with the saved scheduled key from settings
|
||||||
@ -438,15 +450,6 @@ class Mode(QtWidgets.QWidget):
|
|||||||
"""
|
"""
|
||||||
pass
|
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):
|
def handle_request_progress(self, event):
|
||||||
"""
|
"""
|
||||||
Handle REQUEST_PROGRESS event.
|
Handle REQUEST_PROGRESS event.
|
||||||
|
@ -130,7 +130,6 @@ class ChatMode(Mode):
|
|||||||
"""
|
"""
|
||||||
# Reset web counters
|
# Reset web counters
|
||||||
self.web.chat_mode.cur_history_id = 0
|
self.web.chat_mode.cur_history_id = 0
|
||||||
self.web.reset_invalid_passwords()
|
|
||||||
|
|
||||||
def start_server_step2_custom(self):
|
def start_server_step2_custom(self):
|
||||||
"""
|
"""
|
||||||
|
@ -129,28 +129,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
|
|||||||
autostop_timer_layout.addWidget(self.autostop_timer_checkbox)
|
autostop_timer_layout.addWidget(self.autostop_timer_checkbox)
|
||||||
autostop_timer_layout.addWidget(self.autostop_timer_widget)
|
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
|
|
||||||
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
|
# Toggle advanced settings
|
||||||
self.toggle_advanced_button = QtWidgets.QPushButton()
|
self.toggle_advanced_button = QtWidgets.QPushButton()
|
||||||
self.toggle_advanced_button.clicked.connect(self.toggle_advanced_clicked)
|
self.toggle_advanced_button.clicked.connect(self.toggle_advanced_clicked)
|
||||||
@ -165,8 +143,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
|
|||||||
advanced_layout.addLayout(title_layout)
|
advanced_layout.addLayout(title_layout)
|
||||||
advanced_layout.addLayout(autostart_timer_layout)
|
advanced_layout.addLayout(autostart_timer_layout)
|
||||||
advanced_layout.addLayout(autostop_timer_layout)
|
advanced_layout.addLayout(autostop_timer_layout)
|
||||||
advanced_layout.addWidget(self.legacy_checkbox)
|
|
||||||
advanced_layout.addWidget(self.client_auth_checkbox)
|
|
||||||
self.advanced_widget = QtWidgets.QWidget()
|
self.advanced_widget = QtWidgets.QWidget()
|
||||||
self.advanced_widget.setLayout(advanced_layout)
|
self.advanced_widget.setLayout(advanced_layout)
|
||||||
self.advanced_widget.hide()
|
self.advanced_widget.hide()
|
||||||
@ -200,28 +176,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
|
|||||||
strings._("mode_settings_advanced_toggle_show")
|
strings._("mode_settings_advanced_toggle_show")
|
||||||
)
|
)
|
||||||
|
|
||||||
# Client auth is only a legacy option
|
|
||||||
if self.client_auth_checkbox.isChecked():
|
|
||||||
self.legacy_checkbox.setChecked(True)
|
|
||||||
self.legacy_checkbox.setEnabled(False)
|
|
||||||
else:
|
|
||||||
self.legacy_checkbox.setEnabled(True)
|
|
||||||
if self.legacy_checkbox.isChecked():
|
|
||||||
self.client_auth_checkbox.show()
|
|
||||||
else:
|
|
||||||
self.client_auth_checkbox.hide()
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
else:
|
|
||||||
# If using v3, hide legacy and client auth options
|
|
||||||
self.legacy_checkbox.hide()
|
|
||||||
self.client_auth_checkbox.hide()
|
|
||||||
|
|
||||||
def title_editing_finished(self):
|
def title_editing_finished(self):
|
||||||
if self.title_lineedit.text().strip() == "":
|
if self.title_lineedit.text().strip() == "":
|
||||||
self.title_lineedit.setText("")
|
self.title_lineedit.setText("")
|
||||||
@ -283,14 +237,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
|
|||||||
else:
|
else:
|
||||||
self.autostop_timer_widget.hide()
|
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 toggle_advanced_clicked(self):
|
def toggle_advanced_clicked(self):
|
||||||
if self.advanced_widget.isVisible():
|
if self.advanced_widget.isVisible():
|
||||||
self.advanced_widget.hide()
|
self.advanced_widget.hide()
|
||||||
|
@ -296,7 +296,6 @@ class ReceiveMode(Mode):
|
|||||||
"""
|
"""
|
||||||
# Reset web counters
|
# Reset web counters
|
||||||
self.web.receive_mode.cur_history_id = 0
|
self.web.receive_mode.cur_history_id = 0
|
||||||
self.web.reset_invalid_passwords()
|
|
||||||
|
|
||||||
# Hide and reset the uploads if we have previously shared
|
# Hide and reset the uploads if we have previously shared
|
||||||
self.reset_info_counters()
|
self.reset_info_counters()
|
||||||
|
@ -219,7 +219,6 @@ class ShareMode(Mode):
|
|||||||
"""
|
"""
|
||||||
# Reset web counters
|
# Reset web counters
|
||||||
self.web.share_mode.cur_history_id = 0
|
self.web.share_mode.cur_history_id = 0
|
||||||
self.web.reset_invalid_passwords()
|
|
||||||
|
|
||||||
# Hide and reset the downloads if we have previously shared
|
# Hide and reset the downloads if we have previously shared
|
||||||
self.reset_info_counters()
|
self.reset_info_counters()
|
||||||
|
@ -210,7 +210,6 @@ class WebsiteMode(Mode):
|
|||||||
"""
|
"""
|
||||||
# Reset web counters
|
# Reset web counters
|
||||||
self.web.website_mode.visit_count = 0
|
self.web.website_mode.visit_count = 0
|
||||||
self.web.reset_invalid_passwords()
|
|
||||||
|
|
||||||
# Hide and reset the downloads if we have previously shared
|
# Hide and reset the downloads if we have previously shared
|
||||||
self.reset_info_counters()
|
self.reset_info_counters()
|
||||||
|
@ -38,7 +38,7 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
server_canceled = QtCore.Signal()
|
server_canceled = QtCore.Signal()
|
||||||
button_clicked = QtCore.Signal()
|
button_clicked = QtCore.Signal()
|
||||||
url_copied = QtCore.Signal()
|
url_copied = QtCore.Signal()
|
||||||
hidservauth_copied = QtCore.Signal()
|
client_auth_copied = QtCore.Signal()
|
||||||
|
|
||||||
STATUS_STOPPED = 0
|
STATUS_STOPPED = 0
|
||||||
STATUS_WORKING = 1
|
STATUS_WORKING = 1
|
||||||
@ -95,8 +95,8 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
self.common.gui.css["server_status_url_buttons"]
|
self.common.gui.css["server_status_url_buttons"]
|
||||||
)
|
)
|
||||||
self.copy_url_button.clicked.connect(self.copy_url)
|
self.copy_url_button.clicked.connect(self.copy_url)
|
||||||
self.copy_hidservauth_button = QtWidgets.QPushButton(
|
self.copy_client_auth_button = QtWidgets.QPushButton(
|
||||||
strings._("gui_copy_hidservauth")
|
strings._("gui_copy_client_auth")
|
||||||
)
|
)
|
||||||
self.show_url_qr_code_button = QtWidgets.QPushButton(
|
self.show_url_qr_code_button = QtWidgets.QPushButton(
|
||||||
strings._("gui_show_url_qr_code")
|
strings._("gui_show_url_qr_code")
|
||||||
@ -109,14 +109,14 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
self.common.gui.css["server_status_url_buttons"]
|
self.common.gui.css["server_status_url_buttons"]
|
||||||
)
|
)
|
||||||
|
|
||||||
self.copy_hidservauth_button.setStyleSheet(
|
self.copy_client_auth_button.setStyleSheet(
|
||||||
self.common.gui.css["server_status_url_buttons"]
|
self.common.gui.css["server_status_url_buttons"]
|
||||||
)
|
)
|
||||||
self.copy_hidservauth_button.clicked.connect(self.copy_hidservauth)
|
self.copy_client_auth_button.clicked.connect(self.copy_client_auth)
|
||||||
url_buttons_layout = QtWidgets.QHBoxLayout()
|
url_buttons_layout = QtWidgets.QHBoxLayout()
|
||||||
url_buttons_layout.addWidget(self.copy_url_button)
|
url_buttons_layout.addWidget(self.copy_url_button)
|
||||||
|
url_buttons_layout.addWidget(self.copy_client_auth_button)
|
||||||
url_buttons_layout.addWidget(self.show_url_qr_code_button)
|
url_buttons_layout.addWidget(self.show_url_qr_code_button)
|
||||||
url_buttons_layout.addWidget(self.copy_hidservauth_button)
|
|
||||||
url_buttons_layout.addStretch()
|
url_buttons_layout.addStretch()
|
||||||
|
|
||||||
url_layout = QtWidgets.QVBoxLayout()
|
url_layout = QtWidgets.QVBoxLayout()
|
||||||
@ -173,21 +173,41 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
info_image = GuiCommon.get_resource_path("images/info.png")
|
info_image = GuiCommon.get_resource_path("images/info.png")
|
||||||
|
|
||||||
if self.mode == self.common.gui.MODE_SHARE:
|
if self.mode == self.common.gui.MODE_SHARE:
|
||||||
self.url_description.setText(
|
if self.settings.get("general", "public"):
|
||||||
strings._("gui_share_url_description").format(info_image)
|
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:
|
elif self.mode == self.common.gui.MODE_WEBSITE:
|
||||||
self.url_description.setText(
|
if self.settings.get("general", "public"):
|
||||||
strings._("gui_website_url_description").format(info_image)
|
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:
|
elif self.mode == self.common.gui.MODE_RECEIVE:
|
||||||
self.url_description.setText(
|
if self.settings.get("general", "public"):
|
||||||
strings._("gui_receive_url_description").format(info_image)
|
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:
|
elif self.mode == self.common.gui.MODE_CHAT:
|
||||||
self.url_description.setText(
|
if self.settings.get("general", "public"):
|
||||||
strings._("gui_chat_url_description").format(info_image)
|
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
|
# Show a Tool Tip explaining the lifecycle of this URL
|
||||||
if self.settings.get("persistent", "enabled"):
|
if self.settings.get("persistent", "enabled"):
|
||||||
@ -213,10 +233,10 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
|
|
||||||
self.show_url_qr_code_button.show()
|
self.show_url_qr_code_button.show()
|
||||||
|
|
||||||
if self.settings.get("general", "client_auth"):
|
if self.settings.get("general", "public"):
|
||||||
self.copy_hidservauth_button.show()
|
self.copy_client_auth_button.hide()
|
||||||
else:
|
else:
|
||||||
self.copy_hidservauth_button.hide()
|
self.copy_client_auth_button.show()
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""
|
"""
|
||||||
@ -230,10 +250,6 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
self.common.settings.load()
|
self.common.settings.load()
|
||||||
self.show_url()
|
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"):
|
if self.settings.get("general", "autostop_timer"):
|
||||||
self.server_button.setToolTip(
|
self.server_button.setToolTip(
|
||||||
strings._("gui_stop_server_autostop_timer_tooltip").format(
|
strings._("gui_stop_server_autostop_timer_tooltip").format(
|
||||||
@ -246,7 +262,7 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
self.url_description.hide()
|
self.url_description.hide()
|
||||||
self.url.hide()
|
self.url.hide()
|
||||||
self.copy_url_button.hide()
|
self.copy_url_button.hide()
|
||||||
self.copy_hidservauth_button.hide()
|
self.copy_client_auth_button.hide()
|
||||||
self.show_url_qr_code_button.hide()
|
self.show_url_qr_code_button.hide()
|
||||||
|
|
||||||
self.mode_settings_widget.update_ui()
|
self.mode_settings_widget.update_ui()
|
||||||
@ -395,7 +411,11 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
"""
|
"""
|
||||||
Show a QR code of the onion URL.
|
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):
|
def start_server(self):
|
||||||
"""
|
"""
|
||||||
@ -453,21 +473,18 @@ class ServerStatus(QtWidgets.QWidget):
|
|||||||
|
|
||||||
self.url_copied.emit()
|
self.url_copied.emit()
|
||||||
|
|
||||||
def copy_hidservauth(self):
|
def copy_client_auth(self):
|
||||||
"""
|
"""
|
||||||
Copy the HidServAuth line to the clipboard.
|
Copy the ClientAuth private key line to the clipboard.
|
||||||
"""
|
"""
|
||||||
clipboard = self.qtapp.clipboard()
|
clipboard = self.qtapp.clipboard()
|
||||||
clipboard.setText(self.app.auth_string)
|
clipboard.setText(self.app.auth_string)
|
||||||
|
|
||||||
self.hidservauth_copied.emit()
|
self.client_auth_copied.emit()
|
||||||
|
|
||||||
def get_url(self):
|
def get_url(self):
|
||||||
"""
|
"""
|
||||||
Returns the OnionShare URL.
|
Returns the OnionShare URL.
|
||||||
"""
|
"""
|
||||||
if self.settings.get("general", "public"):
|
url = f"http://{self.app.onion_host}"
|
||||||
url = f"http://{self.app.onion_host}"
|
|
||||||
else:
|
|
||||||
url = f"http://onionshare:{self.web.password}@{self.app.onion_host}"
|
|
||||||
return url
|
return url
|
||||||
|
@ -275,7 +275,7 @@ class Tab(QtWidgets.QWidget):
|
|||||||
self.share_mode.start_server_finished.connect(self.clear_message)
|
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.button_clicked.connect(self.clear_message)
|
||||||
self.share_mode.server_status.url_copied.connect(self.copy_url)
|
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_copied.connect(self.copy_client_auth)
|
||||||
|
|
||||||
self.change_title.emit(self.tab_id, strings._("gui_tab_name_share"))
|
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.start_server_finished.connect(self.clear_message)
|
||||||
self.receive_mode.server_status.button_clicked.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.url_copied.connect(self.copy_url)
|
||||||
self.receive_mode.server_status.hidservauth_copied.connect(
|
self.receive_mode.server_status.client_auth_copied.connect(
|
||||||
self.copy_hidservauth
|
self.copy_client_auth
|
||||||
)
|
)
|
||||||
|
|
||||||
self.change_title.emit(self.tab_id, strings._("gui_tab_name_receive"))
|
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.start_server_finished.connect(self.clear_message)
|
||||||
self.website_mode.server_status.button_clicked.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.url_copied.connect(self.copy_url)
|
||||||
self.website_mode.server_status.hidservauth_copied.connect(
|
self.website_mode.server_status.client_auth_copied.connect(
|
||||||
self.copy_hidservauth
|
self.copy_client_auth
|
||||||
)
|
)
|
||||||
|
|
||||||
self.change_title.emit(self.tab_id, strings._("gui_tab_name_website"))
|
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.start_server_finished.connect(self.clear_message)
|
||||||
self.chat_mode.server_status.button_clicked.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.url_copied.connect(self.copy_url)
|
||||||
self.chat_mode.server_status.hidservauth_copied.connect(self.copy_hidservauth)
|
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"))
|
self.change_title.emit(self.tab_id, strings._("gui_tab_name_chat"))
|
||||||
|
|
||||||
@ -531,9 +531,6 @@ class Tab(QtWidgets.QWidget):
|
|||||||
elif event["type"] == Web.REQUEST_STARTED:
|
elif event["type"] == Web.REQUEST_STARTED:
|
||||||
mode.handle_request_started(event)
|
mode.handle_request_started(event)
|
||||||
|
|
||||||
elif event["type"] == Web.REQUEST_RATE_LIMIT:
|
|
||||||
mode.handle_request_rate_limit(event)
|
|
||||||
|
|
||||||
elif event["type"] == Web.REQUEST_PROGRESS:
|
elif event["type"] == Web.REQUEST_PROGRESS:
|
||||||
mode.handle_request_progress(event)
|
mode.handle_request_progress(event)
|
||||||
|
|
||||||
@ -581,11 +578,6 @@ class Tab(QtWidgets.QWidget):
|
|||||||
f"{strings._('other_page_loaded')}: {event['path']}"
|
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()
|
mode.timer_callback()
|
||||||
|
|
||||||
def copy_url(self):
|
def copy_url(self):
|
||||||
@ -597,14 +589,15 @@ class Tab(QtWidgets.QWidget):
|
|||||||
strings._("gui_copied_url_title"), strings._("gui_copied_url")
|
strings._("gui_copied_url_title"), strings._("gui_copied_url")
|
||||||
)
|
)
|
||||||
|
|
||||||
def copy_hidservauth(self):
|
def copy_client_auth(self):
|
||||||
"""
|
"""
|
||||||
When the stealth onion service HidServAuth 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_hidservauth")
|
self.common.log("Tab", "copy_client_auth")
|
||||||
self.system_tray.showMessage(
|
self.system_tray.showMessage(
|
||||||
strings._("gui_copied_hidservauth_title"),
|
strings._("gui_copied_client_auth_title"),
|
||||||
strings._("gui_copied_hidservauth"),
|
strings._("gui_copied_client_auth"),
|
||||||
)
|
)
|
||||||
|
|
||||||
def clear_message(self):
|
def clear_message(self):
|
||||||
|
@ -65,14 +65,9 @@ class OnionThread(QtCore.QThread):
|
|||||||
# Make a new static URL path for each new share
|
# Make a new static URL path for each new share
|
||||||
self.mode.web.generate_static_url_path()
|
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:
|
if not self.mode.app.port:
|
||||||
self.mode.app.choose_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:
|
try:
|
||||||
if self.mode.obtain_onion_early:
|
if self.mode.obtain_onion_early:
|
||||||
|
@ -130,20 +130,47 @@ class QRCodeDialog(QtWidgets.QDialog):
|
|||||||
A dialog showing a QR code.
|
A dialog showing a QR code.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, common, text):
|
def __init__(self, common, url, auth_string=None):
|
||||||
super(QRCodeDialog, self).__init__()
|
super(QRCodeDialog, self).__init__()
|
||||||
|
|
||||||
self.common = common
|
self.common = common
|
||||||
self.text = text
|
|
||||||
|
|
||||||
self.common.log("QrCode", "__init__")
|
self.common.log("QrCode", "__init__")
|
||||||
|
|
||||||
self.qr_label = QtWidgets.QLabel(self)
|
self.qr_label_url = QtWidgets.QLabel(self)
|
||||||
self.qr_label.setPixmap(qrcode.make(self.text, image_factory=Image).pixmap())
|
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)
|
||||||
|
|
||||||
self.setWindowTitle(strings._("gui_qr_code_dialog_title"))
|
self.setWindowTitle(strings._("gui_qr_code_dialog_title"))
|
||||||
self.setWindowIcon(QtGui.QIcon(GuiCommon.get_resource_path("images/logo.png")))
|
self.setWindowIcon(QtGui.QIcon(GuiCommon.get_resource_path("images/logo.png")))
|
||||||
layout = QtWidgets.QVBoxLayout(self)
|
layout = QtWidgets.QHBoxLayout(self)
|
||||||
layout.addWidget(self.qr_label)
|
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.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)
|
||||||
|
|
||||||
|
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_()
|
self.exec_()
|
||||||
|
@ -191,30 +191,13 @@ class GuiBaseTest(unittest.TestCase):
|
|||||||
# Upload a file
|
# Upload a file
|
||||||
files = {"file[]": open(self.tmpfiles[0], "rb")}
|
files = {"file[]": open(self.tmpfiles[0], "rb")}
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/upload"
|
url = f"http://127.0.0.1:{tab.app.port}/upload"
|
||||||
if tab.settings.get("general", "public"):
|
requests.post(url, files=files)
|
||||||
requests.post(url, files=files)
|
|
||||||
else:
|
|
||||||
requests.post(
|
|
||||||
url,
|
|
||||||
files=files,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
QtTest.QTest.qWait(2000, self.gui.qtapp)
|
QtTest.QTest.qWait(2000, self.gui.qtapp)
|
||||||
|
|
||||||
if type(tab.get_mode()) == ShareMode:
|
if type(tab.get_mode()) == ShareMode:
|
||||||
# Download files
|
# Download files
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/download"
|
url = f"http://127.0.0.1:{tab.app.port}/download"
|
||||||
if tab.settings.get("general", "public"):
|
requests.get(url)
|
||||||
requests.get(url)
|
|
||||||
else:
|
|
||||||
requests.get(
|
|
||||||
url,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
QtTest.QTest.qWait(2000, self.gui.qtapp)
|
QtTest.QTest.qWait(2000, self.gui.qtapp)
|
||||||
|
|
||||||
# Indicator should be visible, have a value of "1"
|
# Indicator should be visible, have a value of "1"
|
||||||
@ -273,13 +256,6 @@ class GuiBaseTest(unittest.TestCase):
|
|||||||
except requests.exceptions.ConnectionError:
|
except requests.exceptions.ConnectionError:
|
||||||
self.assertTrue(False)
|
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):
|
def add_button_visible(self, tab):
|
||||||
"""Test that the add button should be visible"""
|
"""Test that the add button should be visible"""
|
||||||
if platform.system() == "Darwin":
|
if platform.system() == "Darwin":
|
||||||
@ -304,13 +280,7 @@ class GuiBaseTest(unittest.TestCase):
|
|||||||
|
|
||||||
tab.get_mode().server_status.copy_url_button.click()
|
tab.get_mode().server_status.copy_url_button.click()
|
||||||
clipboard = tab.common.gui.qtapp.clipboard()
|
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}")
|
||||||
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}",
|
|
||||||
)
|
|
||||||
|
|
||||||
def have_show_qr_code_button(self, tab):
|
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"""
|
"""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"""
|
"""Test that the web page contains a string"""
|
||||||
|
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/"
|
url = f"http://127.0.0.1:{tab.app.port}/"
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.get(url)
|
||||||
r = requests.get(url)
|
|
||||||
else:
|
|
||||||
r = requests.get(
|
|
||||||
url,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
self.assertTrue(string in r.text)
|
self.assertTrue(string in r.text)
|
||||||
|
|
||||||
def history_widgets_present(self, tab):
|
def history_widgets_present(self, tab):
|
||||||
@ -384,7 +345,7 @@ class GuiBaseTest(unittest.TestCase):
|
|||||||
self.assertFalse(tab.get_mode().server_status.url.isVisible())
|
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.url_description.isVisible())
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
tab.get_mode().server_status.copy_hidservauth_button.isVisible()
|
tab.get_mode().server_status.copy_client_auth_button.isVisible()
|
||||||
)
|
)
|
||||||
|
|
||||||
def web_server_is_stopped(self, tab):
|
def web_server_is_stopped(self, tab):
|
||||||
@ -465,6 +426,21 @@ class GuiBaseTest(unittest.TestCase):
|
|||||||
# We should have timed out now
|
# We should have timed out now
|
||||||
self.assertEqual(tab.get_mode().server_status.status, 0)
|
self.assertEqual(tab.get_mode().server_status.status, 0)
|
||||||
|
|
||||||
|
def 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()
|
||||||
|
)
|
||||||
|
tab.get_mode().server_status.copy_client_auth_button.click()
|
||||||
|
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 = [] ):
|
def hit_405(self, url, expected_resp, data = {}, methods = [] ):
|
||||||
"""Test various HTTP methods and the response"""
|
"""Test various HTTP methods and the response"""
|
||||||
for method in methods:
|
for method in methods:
|
||||||
|
@ -11,15 +11,7 @@ class TestChat(GuiBaseTest):
|
|||||||
def view_chat(self, tab):
|
def view_chat(self, tab):
|
||||||
"""Test that we can view the chat room"""
|
"""Test that we can view the chat room"""
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/"
|
url = f"http://127.0.0.1:{tab.app.port}/"
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.get(url)
|
||||||
r = requests.get(url)
|
|
||||||
else:
|
|
||||||
r = requests.get(
|
|
||||||
url,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().server_status.web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
QtTest.QTest.qWait(500, self.gui.qtapp)
|
QtTest.QTest.qWait(500, self.gui.qtapp)
|
||||||
self.assertTrue("Chat <b>requires JavaScript</b>" in r.text)
|
self.assertTrue("Chat <b>requires JavaScript</b>" in r.text)
|
||||||
@ -31,16 +23,7 @@ class TestChat(GuiBaseTest):
|
|||||||
"""Test that we can change our username"""
|
"""Test that we can change our username"""
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/update-session-username"
|
url = f"http://127.0.0.1:{tab.app.port}/update-session-username"
|
||||||
data = {"username": "oniontest"}
|
data = {"username": "oniontest"}
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.post(url, json=data)
|
||||||
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
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
QtTest.QTest.qWait(500, self.gui.qtapp)
|
QtTest.QTest.qWait(500, self.gui.qtapp)
|
||||||
jsonResponse = r.json()
|
jsonResponse = r.json()
|
||||||
@ -53,7 +36,6 @@ class TestChat(GuiBaseTest):
|
|||||||
self.server_status_indicator_says_starting(tab)
|
self.server_status_indicator_says_starting(tab)
|
||||||
self.server_is_started(tab, startup_time=500)
|
self.server_is_started(tab, startup_time=500)
|
||||||
self.web_server_is_running(tab)
|
self.web_server_is_running(tab)
|
||||||
self.have_a_password(tab)
|
|
||||||
self.url_description_shown(tab)
|
self.url_description_shown(tab)
|
||||||
self.have_copy_url_button(tab)
|
self.have_copy_url_button(tab)
|
||||||
self.have_show_qr_code_button(tab)
|
self.have_show_qr_code_button(tab)
|
||||||
|
@ -23,28 +23,10 @@ class TestReceive(GuiBaseTest):
|
|||||||
|
|
||||||
files = {"file[]": open(file_to_upload, "rb")}
|
files = {"file[]": open(file_to_upload, "rb")}
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/upload"
|
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)
|
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)
|
QtTest.QTest.qWait(1000, self.gui.qtapp)
|
||||||
|
|
||||||
@ -74,16 +56,7 @@ class TestReceive(GuiBaseTest):
|
|||||||
|
|
||||||
files = {"file[]": open(self.tmpfile_test, "rb")}
|
files = {"file[]": open(self.tmpfile_test, "rb")}
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/upload"
|
url = f"http://127.0.0.1:{tab.app.port}/upload"
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.post(url, files=files)
|
||||||
r = requests.post(url, files=files)
|
|
||||||
else:
|
|
||||||
r = requests.post(
|
|
||||||
url,
|
|
||||||
files=files,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
def accept_dialog():
|
def accept_dialog():
|
||||||
window = tab.common.gui.qtapp.activeWindow()
|
window = tab.common.gui.qtapp.activeWindow()
|
||||||
@ -100,16 +73,7 @@ class TestReceive(GuiBaseTest):
|
|||||||
QtTest.QTest.qWait(2000, self.gui.qtapp)
|
QtTest.QTest.qWait(2000, self.gui.qtapp)
|
||||||
|
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/upload"
|
url = f"http://127.0.0.1:{tab.app.port}/upload"
|
||||||
if tab.settings.get("general", "public"):
|
requests.post(url, data={"text": message})
|
||||||
requests.post(url, data={"text": message})
|
|
||||||
else:
|
|
||||||
requests.post(
|
|
||||||
url,
|
|
||||||
data={"text": message},
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
QtTest.QTest.qWait(1000, self.gui.qtapp)
|
QtTest.QTest.qWait(1000, self.gui.qtapp)
|
||||||
|
|
||||||
@ -134,12 +98,6 @@ class TestReceive(GuiBaseTest):
|
|||||||
|
|
||||||
self.assertTrue(exists)
|
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
|
# 'Grouped' tests follow from here
|
||||||
|
|
||||||
def run_all_receive_mode_setup_tests(self, tab):
|
def run_all_receive_mode_setup_tests(self, tab):
|
||||||
@ -151,7 +109,6 @@ class TestReceive(GuiBaseTest):
|
|||||||
self.server_status_indicator_says_starting(tab)
|
self.server_status_indicator_says_starting(tab)
|
||||||
self.server_is_started(tab)
|
self.server_is_started(tab)
|
||||||
self.web_server_is_running(tab)
|
self.web_server_is_running(tab)
|
||||||
self.have_a_password(tab)
|
|
||||||
self.url_description_shown(tab)
|
self.url_description_shown(tab)
|
||||||
self.have_copy_url_button(tab)
|
self.have_copy_url_button(tab)
|
||||||
self.have_show_qr_code_button(tab)
|
self.have_show_qr_code_button(tab)
|
||||||
@ -160,8 +117,6 @@ class TestReceive(GuiBaseTest):
|
|||||||
def run_all_receive_mode_tests(self, tab):
|
def run_all_receive_mode_tests(self, tab):
|
||||||
"""Submit files and messages in receive mode and stop the share"""
|
"""Submit files and messages in receive mode and stop the share"""
|
||||||
self.run_all_receive_mode_setup_tests(tab)
|
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.upload_file(tab, self.tmpfile_test, "test.txt")
|
||||||
self.history_widgets_present(tab)
|
self.history_widgets_present(tab)
|
||||||
self.counter_incremented(tab, 1)
|
self.counter_incremented(tab, 1)
|
||||||
|
@ -72,15 +72,7 @@ class TestShare(GuiBaseTest):
|
|||||||
def download_share(self, tab):
|
def download_share(self, tab):
|
||||||
"""Test that we can download the share"""
|
"""Test that we can download the share"""
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/download"
|
url = f"http://127.0.0.1:{tab.app.port}/download"
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.get(url)
|
||||||
r = requests.get(url)
|
|
||||||
else:
|
|
||||||
r = requests.get(
|
|
||||||
url,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().server_status.web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
tmp_file = tempfile.NamedTemporaryFile("wb", delete=False)
|
tmp_file = tempfile.NamedTemporaryFile("wb", delete=False)
|
||||||
tmp_file.write(r.content)
|
tmp_file.write(r.content)
|
||||||
@ -99,40 +91,16 @@ class TestShare(GuiBaseTest):
|
|||||||
"""
|
"""
|
||||||
url = f"http://127.0.0.1:{tab.app.port}"
|
url = f"http://127.0.0.1:{tab.app.port}"
|
||||||
download_file_url = f"http://127.0.0.1:{tab.app.port}/test.txt"
|
download_file_url = f"http://127.0.0.1:{tab.app.port}/test.txt"
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.get(url)
|
||||||
r = requests.get(url)
|
|
||||||
else:
|
|
||||||
r = requests.get(
|
|
||||||
url,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().server_status.web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
if tab.settings.get("share", "autostop_sharing"):
|
if tab.settings.get("share", "autostop_sharing"):
|
||||||
self.assertFalse('a href="/test.txt"' in r.text)
|
self.assertFalse('a href="/test.txt"' in r.text)
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.get(download_file_url)
|
||||||
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
|
|
||||||
),
|
|
||||||
)
|
|
||||||
self.assertEqual(r.status_code, 404)
|
self.assertEqual(r.status_code, 404)
|
||||||
self.download_share(tab)
|
self.download_share(tab)
|
||||||
else:
|
else:
|
||||||
self.assertTrue('a href="test.txt"' in r.text)
|
self.assertTrue('a href="test.txt"' in r.text)
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.get(download_file_url)
|
||||||
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
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
tmp_file = tempfile.NamedTemporaryFile("wb", delete=False)
|
tmp_file = tempfile.NamedTemporaryFile("wb", delete=False)
|
||||||
tmp_file.write(r.content)
|
tmp_file.write(r.content)
|
||||||
@ -144,34 +112,6 @@ class TestShare(GuiBaseTest):
|
|||||||
|
|
||||||
QtTest.QTest.qWait(500, self.gui.qtapp)
|
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):
|
def set_autostart_timer(self, tab, timer):
|
||||||
"""Test that the timer can be set"""
|
"""Test that the timer can be set"""
|
||||||
schedule = QtCore.QDateTime.currentDateTime().addSecs(timer)
|
schedule = QtCore.QDateTime.currentDateTime().addSecs(timer)
|
||||||
@ -241,7 +181,6 @@ class TestShare(GuiBaseTest):
|
|||||||
self.mode_settings_widget_is_hidden(tab)
|
self.mode_settings_widget_is_hidden(tab)
|
||||||
self.server_is_started(tab, startup_time)
|
self.server_is_started(tab, startup_time)
|
||||||
self.web_server_is_running(tab)
|
self.web_server_is_running(tab)
|
||||||
self.have_a_password(tab)
|
|
||||||
self.url_description_shown(tab)
|
self.url_description_shown(tab)
|
||||||
self.have_copy_url_button(tab)
|
self.have_copy_url_button(tab)
|
||||||
self.have_show_qr_code_button(tab)
|
self.have_show_qr_code_button(tab)
|
||||||
@ -490,24 +429,6 @@ class TestShare(GuiBaseTest):
|
|||||||
|
|
||||||
self.close_all_tabs()
|
self.close_all_tabs()
|
||||||
|
|
||||||
def test_persistent_password(self):
|
|
||||||
"""
|
|
||||||
Test a large download
|
|
||||||
"""
|
|
||||||
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)
|
|
||||||
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.run_all_share_mode_download_tests(tab)
|
|
||||||
|
|
||||||
self.close_all_tabs()
|
|
||||||
|
|
||||||
def test_autostop_timer(self):
|
def test_autostop_timer(self):
|
||||||
"""
|
"""
|
||||||
Test the autostop timer
|
Test the autostop timer
|
||||||
@ -570,45 +491,33 @@ class TestShare(GuiBaseTest):
|
|||||||
|
|
||||||
self.close_all_tabs()
|
self.close_all_tabs()
|
||||||
|
|
||||||
def test_401_triggers_ratelimit(self):
|
def test_client_auth(self):
|
||||||
"""
|
"""
|
||||||
Rate limit should be triggered
|
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 = self.new_share_tab()
|
||||||
|
tab.get_mode().mode_settings_widget.toggle_advanced_button.click()
|
||||||
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_common_setup_tests()
|
||||||
self.run_all_share_mode_tests(tab)
|
self.run_all_share_mode_setup_tests(tab)
|
||||||
self.hit_401(tab)
|
self.run_all_share_mode_started_tests(tab)
|
||||||
|
self.clientauth_is_visible(tab)
|
||||||
|
|
||||||
self.close_all_tabs()
|
self.close_all_tabs()
|
||||||
|
|
||||||
def test_401_public_skips_ratelimit(self):
|
# Now try in public mode
|
||||||
"""
|
|
||||||
Public mode should skip the rate limit
|
|
||||||
"""
|
|
||||||
tab = self.new_share_tab()
|
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()
|
tab.get_mode().mode_settings_widget.public_checkbox.click()
|
||||||
|
|
||||||
self.run_all_common_setup_tests()
|
self.run_all_common_setup_tests()
|
||||||
self.run_all_share_mode_tests(tab)
|
self.run_all_share_mode_setup_tests(tab)
|
||||||
self.hit_401(tab)
|
self.run_all_share_mode_started_tests(tab)
|
||||||
|
self.clientauth_is_not_visible(tab)
|
||||||
|
|
||||||
self.close_all_tabs()
|
self.close_all_tabs()
|
||||||
|
|
||||||
|
|
||||||
def test_405_page_returned_for_invalid_methods(self):
|
def test_405_page_returned_for_invalid_methods(self):
|
||||||
"""
|
"""
|
||||||
Our custom 405 page should return for invalid methods
|
Our custom 405 page should return for invalid methods
|
||||||
@ -621,6 +530,7 @@ class TestShare(GuiBaseTest):
|
|||||||
self.run_all_common_setup_tests()
|
self.run_all_common_setup_tests()
|
||||||
self.run_all_share_mode_setup_tests(tab)
|
self.run_all_share_mode_setup_tests(tab)
|
||||||
self.run_all_share_mode_started_tests(tab)
|
self.run_all_share_mode_started_tests(tab)
|
||||||
|
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/"
|
url = f"http://127.0.0.1:{tab.app.port}/"
|
||||||
self.hit_405(url, expected_resp="OnionShare: 405 Method Not Allowed", data = {'foo':'bar'}, methods = ["put", "post", "delete", "options"])
|
self.hit_405(url, expected_resp="OnionShare: 405 Method Not Allowed", data = {'foo':'bar'}, methods = ["put", "post", "delete", "options"])
|
||||||
self.history_widgets_present(tab)
|
self.history_widgets_present(tab)
|
||||||
|
@ -11,32 +11,14 @@ class TestWebsite(GuiBaseTest):
|
|||||||
def view_website(self, tab):
|
def view_website(self, tab):
|
||||||
"""Test that we can download the share"""
|
"""Test that we can download the share"""
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/"
|
url = f"http://127.0.0.1:{tab.app.port}/"
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.get(url)
|
||||||
r = requests.get(url)
|
|
||||||
else:
|
|
||||||
r = requests.get(
|
|
||||||
url,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().server_status.web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
QtTest.QTest.qWait(500, self.gui.qtapp)
|
QtTest.QTest.qWait(500, self.gui.qtapp)
|
||||||
self.assertTrue("This is a test website hosted by OnionShare" in r.text)
|
self.assertTrue("This is a test website hosted by OnionShare" in r.text)
|
||||||
|
|
||||||
def check_csp_header(self, tab):
|
def check_csp_header(self, tab):
|
||||||
"""Test that the CSP header is present when enabled or vice versa"""
|
"""Test that the CSP header is present when enabled or vice versa"""
|
||||||
url = f"http://127.0.0.1:{tab.app.port}/"
|
url = f"http://127.0.0.1:{tab.app.port}/"
|
||||||
if tab.settings.get("general", "public"):
|
r = requests.get(url)
|
||||||
r = requests.get(url)
|
|
||||||
else:
|
|
||||||
r = requests.get(
|
|
||||||
url,
|
|
||||||
auth=requests.auth.HTTPBasicAuth(
|
|
||||||
"onionshare", tab.get_mode().server_status.web.password
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
QtTest.QTest.qWait(500, self.gui.qtapp)
|
QtTest.QTest.qWait(500, self.gui.qtapp)
|
||||||
if tab.settings.get("website", "disable_csp"):
|
if tab.settings.get("website", "disable_csp"):
|
||||||
self.assertFalse("Content-Security-Policy" in r.headers)
|
self.assertFalse("Content-Security-Policy" in r.headers)
|
||||||
@ -63,7 +45,6 @@ class TestWebsite(GuiBaseTest):
|
|||||||
self.add_remove_buttons_hidden(tab)
|
self.add_remove_buttons_hidden(tab)
|
||||||
self.server_is_started(tab, startup_time)
|
self.server_is_started(tab, startup_time)
|
||||||
self.web_server_is_running(tab)
|
self.web_server_is_running(tab)
|
||||||
self.have_a_password(tab)
|
|
||||||
self.url_description_shown(tab)
|
self.url_description_shown(tab)
|
||||||
self.have_copy_url_button(tab)
|
self.have_copy_url_button(tab)
|
||||||
self.have_show_qr_code_button(tab)
|
self.have_show_qr_code_button(tab)
|
||||||
|
@ -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
|
.. image:: _static/screenshots/advanced-save-tabs.png
|
||||||
|
|
||||||
When you quit OnionShare and then open it again, your saved tabs will start opened.
|
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.
|
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.
|
By default, all OnionShare services are protected with a private key, which Tor calls Client Authentication.
|
||||||
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.
|
|
||||||
|
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.
|
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.
|
In this case, it's better to disable the private key 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.
|
|
||||||
|
|
||||||
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:
|
.. _custom_titles:
|
||||||
|
|
||||||
@ -106,11 +106,14 @@ You can browse the command-line documentation by running ``onionshare --help``::
|
|||||||
│ https://onionshare.org/ │
|
│ https://onionshare.org/ │
|
||||||
╰───────────────────────────────────────────╯
|
╰───────────────────────────────────────────╯
|
||||||
|
|
||||||
usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME]
|
usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only]
|
||||||
[--persistent FILENAME] [--title TITLE] [--public] [--auto-start-timer SECONDS]
|
[--connect-timeout SECONDS] [--config FILENAME]
|
||||||
[--auto-stop-timer SECONDS] [--legacy] [--client-auth] [--no-autostop-sharing] [--data-dir data_dir]
|
[--persistent FILENAME] [--title TITLE] [--public]
|
||||||
[--webhook-url webhook_url] [--disable-text] [--disable-files] [--disable_csp] [-v]
|
[--auto-start-timer SECONDS] [--auto-stop-timer SECONDS]
|
||||||
[filename ...]
|
[--no-autostop-sharing] [--data-dir data_dir]
|
||||||
|
[--webhook-url webhook_url] [--disable-text]
|
||||||
|
[--disable-files] [--disable_csp] [-v]
|
||||||
|
[filename [filename ...]]
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
filename List of files or folders to share
|
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
|
--chat Start chat server
|
||||||
--local-only Don't use Tor (only for development)
|
--local-only Don't use Tor (only for development)
|
||||||
--connect-timeout SECONDS
|
--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
|
--config FILENAME Filename of custom global settings
|
||||||
--persistent FILENAME Filename of persistent session
|
--persistent FILENAME Filename of persistent session
|
||||||
--title TITLE Set a title
|
--title TITLE Set a title
|
||||||
--public Don't use a password
|
--public Don't use a private key
|
||||||
--auto-start-timer SECONDS
|
--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
|
--auto-stop-timer SECONDS
|
||||||
Stop onion service at schedule time (N seconds from now)
|
Stop onion service at schedule time (N seconds
|
||||||
--legacy Use legacy address (v2 onion service, not recommended)
|
from now)
|
||||||
--client-auth Use client authorization (requires --legacy)
|
--no-autostop-sharing Share files: Continue sharing after files have
|
||||||
--no-autostop-sharing Share files: Continue sharing after files have been sent (default is to stop sharing)
|
been sent (default is to stop sharing)
|
||||||
--data-dir data_dir Receive files: Save files received to this directory
|
--data-dir data_dir Receive files: Save files received to this
|
||||||
|
directory
|
||||||
--webhook-url webhook_url
|
--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-text Receive files: Disable receiving text messages
|
||||||
--disable-files Receive files: Disable receiving files
|
--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)
|
resources)
|
||||||
-v, --verbose Log OnionShare errors to stdout, and web errors to disk
|
-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 <https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, 2021, and legacy onion services will be removed from OnionShare before then.
|
|
||||||
|
@ -63,57 +63,54 @@ This prints a lot of helpful messages to the terminal, such as when certain obje
|
|||||||
│ https://onionshare.org/ │
|
│ https://onionshare.org/ │
|
||||||
╰───────────────────────────────────────────╯
|
╰───────────────────────────────────────────╯
|
||||||
|
|
||||||
[May 10 2021 18:24:02] Settings.__init__
|
[Aug 28 2021 10:32:39] Settings.__init__
|
||||||
[May 10 2021 18:24:02] Settings.load
|
[Aug 28 2021 10:32:39] Settings.load
|
||||||
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
[Aug 28 2021 10:32:39] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
||||||
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt
|
[Aug 28 2021 10:32:39] 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
|
[Aug 28 2021 10:32:39] Common.get_resource_path: filename=wordlist.txt, path=/home/user/git/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
|
[Aug 28 2021 10:32:39] ModeSettings.load: creating /home/user/.config/onionshare/persistent/dreamy-stiffen-moving.json
|
||||||
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.title = None
|
[Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: general.title = None
|
||||||
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.public = False
|
[Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: general.public = False
|
||||||
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostart_timer = 0
|
[Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: general.autostart_timer = 0
|
||||||
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostop_timer = 0
|
[Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: general.autostop_timer = 0
|
||||||
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.legacy = False
|
[Aug 28 2021 10:32:39] ModeSettings.set: updating dreamy-stiffen-moving: share.autostop_sharing = True
|
||||||
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.client_auth = False
|
[Aug 28 2021 10:32:39] Web.__init__: is_gui=False, mode=share
|
||||||
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: share.autostop_sharing = True
|
[Aug 28 2021 10:32:39] Common.get_resource_path: filename=static
|
||||||
[May 10 2021 18:24:02] Web.__init__: is_gui=False, mode=share
|
[Aug 28 2021 10:32:39] Common.get_resource_path: filename=static, path=/home/user/git/onionshare/cli/onionshare_cli/resources/static
|
||||||
[May 10 2021 18:24:02] Common.get_resource_path: filename=static
|
[Aug 28 2021 10:32:39] Common.get_resource_path: filename=templates
|
||||||
[May 10 2021 18:24:02] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
|
[Aug 28 2021 10:32:39] Common.get_resource_path: filename=templates, path=/home/user/git/onionshare/cli/onionshare_cli/resources/templates
|
||||||
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates
|
[Aug 28 2021 10:32:39] Web.generate_static_url_path: new static_url_path is /static_3tix3w3s5feuzlhii3zwqb2gpq
|
||||||
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
|
[Aug 28 2021 10:32:39] ShareModeWeb.init
|
||||||
[May 10 2021 18:24:02] Web.generate_static_url_path: new static_url_path is /static_4yxrx2mzi5uzkblklpzd46mwke
|
[Aug 28 2021 10:32:39] Onion.__init__
|
||||||
[May 10 2021 18:24:02] ShareModeWeb.init
|
[Aug 28 2021 10:32:39] Onion.connect
|
||||||
[May 10 2021 18:24:02] Onion.__init__
|
[Aug 28 2021 10:32:39] Settings.__init__
|
||||||
[May 10 2021 18:24:02] Onion.connect
|
[Aug 28 2021 10:32:39] Settings.load
|
||||||
[May 10 2021 18:24:02] Settings.__init__
|
[Aug 28 2021 10:32:39] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
||||||
[May 10 2021 18:24:02] Settings.load
|
[Aug 28 2021 10:32:39] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmppb7kvf4k
|
||||||
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
[Aug 28 2021 10:32:39] Common.get_resource_path: filename=torrc_template
|
||||||
[May 10 2021 18:24:02] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpw6u0nz8l
|
[Aug 28 2021 10:32:39] Common.get_resource_path: filename=torrc_template, path=/home/user/git/onionshare/cli/onionshare_cli/resources/torrc_template
|
||||||
[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
|
|
||||||
Connecting to the Tor network: 100% - Done
|
Connecting to the Tor network: 100% - Done
|
||||||
[May 10 2021 18:24:10] Onion.connect: Connected to tor 0.4.5.7
|
[Aug 28 2021 10:32:56] Onion.connect: Connected to tor 0.4.6.7
|
||||||
[May 10 2021 18:24:10] Settings.load
|
[Aug 28 2021 10:32:56] Settings.load
|
||||||
[May 10 2021 18:24:10] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
[Aug 28 2021 10:32:56] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
||||||
[May 10 2021 18:24:10] Web.generate_password: saved_password=None
|
[Aug 28 2021 10:32:56] OnionShare.__init__
|
||||||
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt
|
[Aug 28 2021 10:32:56] OnionShare.start_onion_service
|
||||||
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
|
[Aug 28 2021 10:32:56] Onion.start_onion_service: port=17609
|
||||||
[May 10 2021 18:24:10] Web.generate_password: built random password: "tipping-colonize"
|
[Aug 28 2021 10:32:56] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
|
||||||
[May 10 2021 18:24:10] OnionShare.__init__
|
[Aug 28 2021 10:33:03] ModeSettings.set: updating dreamy-stiffen-moving: general.service_id = sobp4rklarkz34mcog3pqtkb4t5bvyxv3dazvsqmfyhw4imqj446ffqd
|
||||||
[May 10 2021 18:24:10] OnionShare.start_onion_service
|
[Aug 28 2021 10:33:03] ModeSettings.set: updating dreamy-stiffen-moving: onion.private_key = sFiznwaPWJdKmFXumdDLkJGdUUdjI/0TWo+l/QEZiE/XoVogjK9INNoz2Tf8vmpe66ssa85En+5w6F2kKyTstA==
|
||||||
[May 10 2021 18:24:10] Onion.start_onion_service: port=17645
|
[Aug 28 2021 10:33:03] ModeSettings.set: updating dreamy-stiffen-moving: onion.client_auth_priv_key = YL6YIEMZS6J537Y5ZKEA2Z6IIQEWFK2CMGTWK5G3DGGUREHJSJNQ
|
||||||
[May 10 2021 18:24:10] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
|
[Aug 28 2021 10:33:03] ModeSettings.set: updating dreamy-stiffen-moving: onion.client_auth_pub_key = 5HUL6RCPQ5VEFDOHCSRAHPFIB74EHVFJO6JJHDP76EDWVRJE2RJQ
|
||||||
[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==
|
|
||||||
Compressing files.
|
Compressing files.
|
||||||
[May 10 2021 18:24:14] ShareModeWeb.init
|
[Aug 28 2021 10:33:03] ShareModeWeb.init
|
||||||
[May 10 2021 18:24:14] ShareModeWeb.set_file_info_custom
|
[Aug 28 2021 10:33:03] ShareModeWeb.set_file_info_custom
|
||||||
[May 10 2021 18:24:14] ShareModeWeb.build_zipfile_list
|
[Aug 28 2021 10:33:03] ShareModeWeb.build_zipfile_list
|
||||||
[May 10 2021 18:24:14] Web.start: port=17645
|
[Aug 28 2021 10:33:03] Web.start: port=17609
|
||||||
* Running on http://127.0.0.1:17645/ (Press CTRL+C to quit)
|
* Running on http://127.0.0.1:17609/ (Press CTRL+C to quit)
|
||||||
|
|
||||||
Give this address to the recipient:
|
Give this address and private key to the recipient:
|
||||||
http://onionshare:tipping-colonize@omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd.onion
|
http://sobp4rklarkz34mcog3pqtkb4t5bvyxv3dazvsqmfyhw4imqj446ffqd.onion
|
||||||
|
Private key: YL6YIEMZS6J537Y5ZKEA2Z6IIQEWFK2CMGTWK5G3DGGUREHJSJNQ
|
||||||
|
|
||||||
Press Ctrl+C to stop the server
|
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/ │
|
│ 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
|
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.
|
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:
|
Give this address and private key to the sender:
|
||||||
http://onionshare:ended-blah@127.0.0.1:17617
|
http://127.0.0.1:17621
|
||||||
|
Private key: E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA
|
||||||
|
|
||||||
Press Ctrl+C to stop the server
|
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
|
Contributing Translations
|
||||||
-------------------------
|
-------------------------
|
||||||
@ -186,4 +184,4 @@ Status of Translations
|
|||||||
Here is the current translation status.
|
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
|
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
|
.. image:: https://hosted.weblate.org/widgets/onionshare/-/translations/multi-auto.svg
|
||||||
|
@ -5,14 +5,20 @@ How OnionShare Works
|
|||||||
|
|
||||||
Web servers are started locally on your computer and made accessible to other people as `Tor <https://www.torproject.org/>`_ `onion services <https://community.torproject.org/onion-services/>`_.
|
Web servers are started locally on your computer and made accessible to other people as `Tor <https://www.torproject.org/>`_ `onion services <https://community.torproject.org/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 <https://ssd.eff.org/module/your-security-plan>`_.
|
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 <https://ssd.eff.org/module/your-security-plan>`_.
|
||||||
|
|
||||||
The people you send the URL to then copy and paste it into their `Tor Browser <https://www.torproject.org/>`_ to access the OnionShare service.
|
The people you send the URL to then copy and paste it into their `Tor Browser <https://www.torproject.org/>`_ 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.
|
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 </security>` for more info.
|
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 </security>` 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.
|
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
|
.. 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 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
|
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.
|
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.
|
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
|
Chat Anonymously
|
||||||
----------------
|
----------------
|
||||||
|
@ -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.
|
**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
|
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.
|
||||||
|
@ -172,33 +172,6 @@ modules:
|
|||||||
- type: file
|
- type: file
|
||||||
url: https://files.pythonhosted.org/packages/10/27/a33329150147594eff0ea4c33c2036c0eadd933141055be0ff911f7f8d04/Werkzeug-1.0.1.tar.gz
|
url: https://files.pythonhosted.org/packages/10/27/a33329150147594eff0ea4c33c2036c0eadd933141055be0ff911f7f8d04/Werkzeug-1.0.1.tar.gz
|
||||||
sha256: 6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c
|
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
|
- name: python3-flask-socketio
|
||||||
buildsystem: simple
|
buildsystem: simple
|
||||||
build-commands:
|
build-commands:
|
||||||
|
@ -117,7 +117,6 @@ parts:
|
|||||||
- poetry
|
- poetry
|
||||||
- click
|
- click
|
||||||
- flask
|
- flask
|
||||||
- flask-httpauth
|
|
||||||
- flask-socketio == 5.0.1
|
- flask-socketio == 5.0.1
|
||||||
- pycryptodome
|
- pycryptodome
|
||||||
- psutil
|
- psutil
|
||||||
|
Loading…
Reference in New Issue
Block a user