merge from develop and fix conflicts, update poetry

This commit is contained in:
Miguel Jacq 2021-05-06 14:30:29 +10:00
commit b385d6bac7
No known key found for this signature in database
GPG key ID: EEA4341C6D97A0B6
96 changed files with 3838 additions and 2291 deletions

View file

@ -1,5 +1,14 @@
# OnionShare Changelog # OnionShare Changelog
## 2.3.2
* New feature: Receive mode supports custom titles
* New feature: Receive mode supports notification webhooks
* New feature: Receive mode supports submitting messages as well files
* New feature: New ASCII art banner and prettier verbose output
* New feature: Partial support for range requests (pausing and resuming in HTTP)
* Various bug fixes
## 2.3.1 ## 2.3.1
* Bugfix: Fix chat mode * Bugfix: Fix chat mode

View file

@ -14,6 +14,11 @@ Before making a release, you must update the version in these places:
- [ ] `docs/source/conf.py` (`version` at the top, and the `versions` list too) - [ ] `docs/source/conf.py` (`version` at the top, and the `versions` list too)
- [ ] `snap/snapcraft.yaml` - [ ] `snap/snapcraft.yaml`
Use tor binaries from the latest Tor Browser:
- [ ] `desktop/scripts/get-tor-osx.py`
- [ ] `desktop/scripts/get-tor-windows.py`
Update the documentation: Update the documentation:
- [ ] Update all of the documentation in `docs` to cover new features, including taking new screenshots if necessary - [ ] Update all of the documentation in `docs` to cover new features, including taking new screenshots if necessary

View file

@ -1,24 +1,23 @@
``` ```
@@@@@@@@@ ╭───────────────────────────────────────────╮
@@@@@@@@@@@@@@@@@@@ * ▄▄█████▄▄ *
@@@@@@@@@@@@@@@@@@@@@@@@@ │ ▄████▀▀▀████▄ * │
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │ ▀▀█▀ ▀██▄ │
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _ │ * ▄█▄ ▀██▄ │
@@@@@@ @@@@@@@@@@@@@ / _ \ (_) │ ▄█████▄ ███ -+- │
@@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __ │ ███ ▀█████▀ │
@@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \ │ ▀██▄ ▀█▀ │
@@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | | * ▀██▄ ▄█▄▄ *
@@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_| │ * ▀████▄▄▄████▀ │
@@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _ │ ▀▀█████▀▀ │
@@@@@@@@@@ @@@@@@@@@@@@ / ___| | │ -+- * │
@@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___ │ ▄▀▄ ▄▀▀ █ │
@@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \ │ █ █ ▀ ▀▄ █ │
@@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/ │ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___| │ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ │ │
@@@@@@@@@@@@@@@@@@@@@@@@@ │ https://onionshare.org/ │
@@@@@@@@@@@@@@@@@@@ ╰───────────────────────────────────────────╯
@@@@@@@@@
``` ```
## Installing OnionShare CLI ## Installing OnionShare CLI

View file

@ -18,13 +18,22 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import os, sys, time, argparse, threading import os
import sys
import time
import argparse
import threading
from datetime import datetime from datetime import datetime
from datetime import timedelta from datetime import timedelta
from .common import Common, CannotFindTor from .common import Common, CannotFindTor
from .web import Web from .web import Web
from .onion import * from .onion import (
TorErrorProtocolError,
TorTooOldEphemeral,
TorTooOldStealth,
Onion,
)
from .onionshare import OnionShare from .onionshare import OnionShare
from .mode_settings import ModeSettings from .mode_settings import ModeSettings
@ -148,6 +157,18 @@ def main(cwd=None):
default=None, default=None,
help="Receive files: URL to receive webhook notifications", help="Receive files: URL to receive webhook notifications",
) )
parser.add_argument(
"--disable-text",
action="store_true",
dest="disable_text",
help="Receive files: Disable receiving text messages",
)
parser.add_argument(
"--disable-files",
action="store_true",
dest="disable_files",
help="Receive files: Disable receiving files",
)
# Website args # Website args
parser.add_argument( parser.add_argument(
"--disable_csp", "--disable_csp",
@ -191,6 +212,8 @@ def main(cwd=None):
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
disable_text = args.disable_text
disable_files = args.disable_files
disable_csp = bool(args.disable_csp) disable_csp = bool(args.disable_csp)
verbose = bool(args.verbose) verbose = bool(args.verbose)
@ -234,6 +257,8 @@ def main(cwd=None):
mode_settings.set("receive", "data_dir", data_dir) mode_settings.set("receive", "data_dir", data_dir)
if webhook_url: if webhook_url:
mode_settings.set("receive", "webhook_url", webhook_url) mode_settings.set("receive", "webhook_url", webhook_url)
mode_settings.set("receive", "disable_text", disable_text)
mode_settings.set("receive", "disable_files", disable_files)
if mode == "website": if mode == "website":
mode_settings.set("website", "disable_csp", disable_csp) mode_settings.set("website", "disable_csp", disable_csp)
else: else:
@ -276,6 +301,11 @@ def main(cwd=None):
if persistent_filename: if persistent_filename:
mode_settings.set(mode, "filenames", filenames) mode_settings.set(mode, "filenames", filenames)
# In receive mode, you must allows either text, files, or both
if mode == "receive" and disable_text and disable_files:
print("You cannot disable both text and files")
sys.exit()
# Create the Web object # Create the Web object
web = Web(common, False, mode_settings, mode) web = Web(common, False, mode_settings, mode)
@ -299,7 +329,7 @@ def main(cwd=None):
except KeyboardInterrupt: except KeyboardInterrupt:
print("") print("")
sys.exit() sys.exit()
except Exception as e: except Exception:
sys.exit() sys.exit()
# Start the onionshare app # Start the onionshare app
@ -343,7 +373,9 @@ def main(cwd=None):
) )
print("") print("")
print( print(
"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."
) )
print("") print("")
if mode_settings.get("general", "client_auth"): if mode_settings.get("general", "client_auth"):
@ -394,7 +426,6 @@ def main(cwd=None):
print("Compressing files.") print("Compressing files.")
try: try:
web.share_mode.set_file_info(filenames) web.share_mode.set_file_info(filenames)
app.cleanup_filenames += web.share_mode.cleanup_filenames
except OSError as e: except OSError as e:
print(e.strerror) print(e.strerror)
sys.exit(1) sys.exit(1)
@ -437,7 +468,9 @@ def main(cwd=None):
) )
print("") print("")
print( print(
"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."
) )
print("") print("")
@ -486,7 +519,7 @@ def main(cwd=None):
web.stop(app.port) web.stop(app.port)
finally: finally:
# Shutdown # Shutdown
app.cleanup() web.cleanup()
onion.cleanup() onion.cleanup()

View file

@ -29,6 +29,9 @@ import time
import shutil import shutil
from pkg_resources import resource_filename from pkg_resources import resource_filename
import colorama
from colorama import Fore, Back, Style
from .settings import Settings from .settings import Settings
@ -43,18 +46,11 @@ class Common:
The Common object is shared amongst all parts of OnionShare. The Common object is shared amongst all parts of OnionShare.
""" """
C_RESET = "\033[0m"
C_BG_PURPLE = "\033[45m"
C_BOLD = "\033[01m"
C_WHITE = "\033[97m"
C_LIGHTGRAY = "\033[37m"
C_DARKGRAY = "\033[90m"
C_LIGHTPURPLE = "\033[95m"
C_DARKPURPLE = "\033[35m"
def __init__(self, verbose=False): def __init__(self, verbose=False):
self.verbose = verbose self.verbose = verbose
colorama.init(autoreset=True)
# The platform OnionShare is running on # The platform OnionShare is running on
self.platform = platform.system() self.platform = platform.system()
if self.platform.endswith("BSD") or self.platform == "DragonFly": if self.platform.endswith("BSD") or self.platform == "DragonFly":
@ -90,219 +86,195 @@ class Common:
""" """
if self.platform == "Windows":
pass
else:
pass
print( print(
self.C_BG_PURPLE Back.MAGENTA + Fore.WHITE + "╭───────────────────────────────────────────╮"
+ self.C_LIGHTGRAY
+ "╭───────────────────────────────────────────╮"
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " * " + " * "
+ self.C_WHITE + Fore.WHITE
+ "▄▄█████▄▄" + "▄▄█████▄▄"
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " * " + " * "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " ▄████▀▀▀████▄" + " ▄████▀▀▀████▄"
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " * " + " * "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " ▀▀█▀ ▀██▄ " + " ▀▀█▀ ▀██▄ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " * " + " * "
+ self.C_WHITE + Fore.WHITE
+ "▄█▄ ▀██▄ " + "▄█▄ ▀██▄ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " ▄█████▄ ███" + " ▄█████▄ ███"
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " -+- " + " -+- "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " ███ ▀█████▀ " + " ███ ▀█████▀ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " ▀██▄ ▀█▀ " + " ▀██▄ ▀█▀ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " * " + " * "
+ self.C_WHITE + Fore.WHITE
+ "▀██▄ ▄█▄▄" + "▀██▄ ▄█▄▄"
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " * " + " * "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " * " + " * "
+ self.C_WHITE + Fore.WHITE
+ "▀████▄▄▄████▀ " + "▀████▄▄▄████▀ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " ▀▀█████▀▀ " + " ▀▀█████▀▀ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_LIGHTPURPLE + Fore.LIGHTMAGENTA_EX
+ " -+- * " + " -+- * "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " ▄▀▄ ▄▀▀ █ " + " ▄▀▄ ▄▀▀ █ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " █ █ ▀ ▀▄ █ " + " █ █ ▀ ▀▄ █ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ " + " █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_WHITE + Fore.WHITE
+ " ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ " + " ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA + Fore.WHITE + "│ │"
+ self.C_LIGHTGRAY
+ "│ │"
+ self.C_RESET
) )
left_spaces = (43 - len(self.version) - 1) // 2 left_spaces = (43 - len(self.version) - 1) // 2
right_spaces = left_spaces right_spaces = left_spaces
if left_spaces + len(self.version) + right_spaces < 43: if left_spaces + len(self.version) + right_spaces < 43:
right_spaces += 1 right_spaces += 1
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_LIGHTGRAY + Fore.WHITE
+ f"{' '*left_spaces}v{self.version}{' '*right_spaces}" + f"{' '*left_spaces}v{self.version}{' '*right_spaces}"
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA + Fore.WHITE + "│ │"
+ self.C_LIGHTGRAY
+ "│ │"
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_LIGHTGRAY + Fore.WHITE
+ " https://onionshare.org/ " + " https://onionshare.org/ "
+ self.C_LIGHTGRAY + Fore.WHITE
+ "" + ""
+ self.C_RESET
) )
print( print(
self.C_BG_PURPLE Back.MAGENTA + Fore.WHITE + "╰───────────────────────────────────────────╯"
+ self.C_LIGHTGRAY
+ "╰───────────────────────────────────────────╯"
+ self.C_RESET
) )
print() print()
@ -319,9 +291,11 @@ class Common:
""" """
if self.verbose: if self.verbose:
timestamp = time.strftime("%b %d %Y %X") timestamp = time.strftime("%b %d %Y %X")
final_msg = f"{self.C_DARKGRAY}[{timestamp}]{self.C_RESET} {self.C_LIGHTGRAY}{module}.{func}{self.C_RESET}" final_msg = f"{Fore.LIGHTBLACK_EX + Style.DIM}[{timestamp}]{Style.RESET_ALL} {Fore.WHITE + Style.DIM}{module}.{func}{Style.RESET_ALL}"
if msg: if msg:
final_msg = f"{final_msg}{self.C_LIGHTGRAY}: {msg}{self.C_RESET}" final_msg = (
f"{final_msg}{Fore.WHITE + Style.DIM}: {msg}{Style.RESET_ALL}"
)
print(final_msg) print(final_msg)
def get_resource_path(self, filename): def get_resource_path(self, filename):
@ -383,7 +357,7 @@ class Common:
try: try:
xdg_config_home = os.environ["XDG_CONFIG_HOME"] xdg_config_home = os.environ["XDG_CONFIG_HOME"]
onionshare_data_dir = f"{xdg_config_home}/onionshare" onionshare_data_dir = f"{xdg_config_home}/onionshare"
except: except Exception:
onionshare_data_dir = os.path.expanduser("~/.config/onionshare") onionshare_data_dir = os.path.expanduser("~/.config/onionshare")
elif self.platform == "Darwin": elif self.platform == "Darwin":
onionshare_data_dir = os.path.expanduser( onionshare_data_dir = os.path.expanduser(
@ -393,7 +367,7 @@ class Common:
try: try:
xdg_config_home = os.environ["XDG_CONFIG_HOME"] xdg_config_home = os.environ["XDG_CONFIG_HOME"]
onionshare_data_dir = f"{xdg_config_home}/onionshare" onionshare_data_dir = f"{xdg_config_home}/onionshare"
except: except Exception:
onionshare_data_dir = os.path.expanduser("~/.config/onionshare") onionshare_data_dir = os.path.expanduser("~/.config/onionshare")
# Modify the data dir if running tests # Modify the data dir if running tests

View file

@ -55,6 +55,8 @@ class ModeSettings:
"receive": { "receive": {
"data_dir": self.build_default_receive_data_dir(), "data_dir": self.build_default_receive_data_dir(),
"webhook_url": None, "webhook_url": None,
"disable_text": False,
"disable_files": False,
}, },
"website": {"disable_csp": False, "filenames": []}, "website": {"disable_csp": False, "filenames": []},
"chat": {"room": "default"}, "chat": {"room": "default"},
@ -128,7 +130,7 @@ class ModeSettings:
self.fill_in_defaults() self.fill_in_defaults()
self.common.log("ModeSettings", "load", f"loaded {self.filename}") self.common.log("ModeSettings", "load", f"loaded {self.filename}")
return return
except: except Exception:
pass pass
# If loading settings didn't work, create the settings file # If loading settings didn't work, create the settings file

View file

@ -236,7 +236,7 @@ class Onion(object):
) )
try: try:
self.tor_socks_port = self.common.get_available_port(1000, 65535) self.tor_socks_port = self.common.get_available_port(1000, 65535)
except: except Exception:
print("OnionShare port not available") print("OnionShare port not available")
raise PortNotAvailable() raise PortNotAvailable()
self.tor_torrc = os.path.join(self.tor_data_directory_name, "torrc") self.tor_torrc = os.path.join(self.tor_data_directory_name, "torrc")
@ -258,7 +258,7 @@ class Onion(object):
proc.terminate() proc.terminate()
proc.wait() proc.wait()
break break
except: except Exception:
pass pass
if self.common.platform == "Windows" or self.common.platform == "Darwin": if self.common.platform == "Windows" or self.common.platform == "Darwin":
@ -269,7 +269,7 @@ class Onion(object):
torrc_template += "ControlPort {{control_port}}\n" torrc_template += "ControlPort {{control_port}}\n"
try: try:
self.tor_control_port = self.common.get_available_port(1000, 65535) self.tor_control_port = self.common.get_available_port(1000, 65535)
except: except Exception:
print("OnionShare port not available") print("OnionShare port not available")
raise PortNotAvailable() raise PortNotAvailable()
self.tor_control_socket = None self.tor_control_socket = None
@ -442,7 +442,7 @@ class Onion(object):
try: try:
self.c = Controller.from_port(port=int(env_port)) self.c = Controller.from_port(port=int(env_port))
found_tor = True found_tor = True
except: except Exception:
pass pass
else: else:
@ -452,7 +452,7 @@ class Onion(object):
for port in ports: for port in ports:
self.c = Controller.from_port(port=port) self.c = Controller.from_port(port=port)
found_tor = True found_tor = True
except: except Exception:
pass pass
# If this still didn't work, try guessing the default socket file path # If this still didn't work, try guessing the default socket file path
@ -466,7 +466,7 @@ class Onion(object):
self.c = Controller.from_socket_file(path=socket_file_path) self.c = Controller.from_socket_file(path=socket_file_path)
found_tor = True found_tor = True
except: except Exception:
pass pass
# If connecting to default control ports failed, so let's try # If connecting to default control ports failed, so let's try
@ -488,14 +488,14 @@ class Onion(object):
self.c = Controller.from_socket_file(path=socket_file_path) self.c = Controller.from_socket_file(path=socket_file_path)
except: except Exception:
print(automatic_error) print(automatic_error)
raise TorErrorAutomatic() raise TorErrorAutomatic()
# Try authenticating # Try authenticating
try: try:
self.c.authenticate() self.c.authenticate()
except: except Exception:
print(automatic_error) print(automatic_error)
raise TorErrorAutomatic() raise TorErrorAutomatic()
@ -518,7 +518,7 @@ class Onion(object):
print(invalid_settings_error) print(invalid_settings_error)
raise TorErrorInvalidSetting() raise TorErrorInvalidSetting()
except: except Exception:
if self.settings.get("connection_type") == "control_port": if self.settings.get("connection_type") == "control_port":
print( print(
"Can't connect to the Tor controller at {}:{}.".format( "Can't connect to the Tor controller at {}:{}.".format(
@ -597,8 +597,8 @@ class Onion(object):
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)
self.supports_stealth = True self.supports_stealth = True
except: except Exception:
# ephemeral v3 stealth onion services are not supported # ephemeral stealth onion services are not supported
self.supports_stealth = False self.supports_stealth = False
# Does this version of Tor support next-gen ('v3') onions? # Does this version of Tor support next-gen ('v3') onions?
@ -716,7 +716,7 @@ class Onion(object):
self.c.remove_ephemeral_hidden_service( self.c.remove_ephemeral_hidden_service(
mode_settings.get("general", "service_id") mode_settings.get("general", "service_id")
) )
except: except Exception:
self.common.log( self.common.log(
"Onion", "stop_onion_service", f"failed to remove {onion_host}" "Onion", "stop_onion_service", f"failed to remove {onion_host}"
) )
@ -737,12 +737,12 @@ class Onion(object):
"Onion", "cleanup", f"trying to remove onion {onion_host}" "Onion", "cleanup", f"trying to remove onion {onion_host}"
) )
self.c.remove_ephemeral_hidden_service(service_id) self.c.remove_ephemeral_hidden_service(service_id)
except: except Exception:
self.common.log( self.common.log(
"Onion", "cleanup", f"failed to remove onion {onion_host}" "Onion", "cleanup", f"failed to remove onion {onion_host}"
) )
pass pass
except: except Exception:
pass pass
if stop_tor: if stop_tor:
@ -785,7 +785,7 @@ class Onion(object):
) )
symbols_i = (symbols_i + 1) % len(symbols) symbols_i = (symbols_i + 1) % len(symbols)
time.sleep(1) time.sleep(1)
except: except Exception:
pass pass
self.tor_proc.terminate() self.tor_proc.terminate()
@ -805,7 +805,7 @@ class Onion(object):
"cleanup", "cleanup",
"Tried to kill tor process but it's still running", "Tried to kill tor process but it's still running",
) )
except: except Exception:
self.common.log( self.common.log(
"Onion", "cleanup", "Exception while killing tor process" "Onion", "cleanup", "Exception while killing tor process"
) )
@ -818,7 +818,7 @@ class Onion(object):
# Delete the temporary tor data directory # Delete the temporary tor data directory
if self.use_tmp_dir: if self.use_tmp_dir:
self.tor_data_directory.cleanup() self.tor_data_directory.cleanup()
except: except Exception:
pass pass
def get_tor_socks_port(self): def get_tor_socks_port(self):

View file

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import os, shutil import os
from .common import AutoStopTimer from .common import AutoStopTimer
@ -57,7 +57,7 @@ class OnionShare(object):
""" """
try: try:
self.port = self.common.get_available_port(17600, 17650) self.port = self.common.get_available_port(17600, 17650)
except: except Exception:
raise OSError("Cannot find an available OnionShare port") raise OSError("Cannot find an available OnionShare port")
def start_onion_service(self, mode, mode_settings, await_publication=True): def start_onion_service(self, mode, mode_settings, await_publication=True):
@ -88,21 +88,3 @@ class OnionShare(object):
Stop the onion service Stop the onion service
""" """
self.onion.stop_onion_service(mode_settings) self.onion.stop_onion_service(mode_settings)
def cleanup(self):
"""
Shut everything down and clean up temporary files, etc.
"""
self.common.log("OnionShare", "cleanup")
# Cleanup files
try:
for filename in self.cleanup_filenames:
if os.path.isfile(filename):
os.remove(filename)
elif os.path.isdir(filename):
shutil.rmtree(filename)
except:
# Don't crash if file is still in use
pass
self.cleanup_filenames = []

View file

@ -285,6 +285,13 @@ ul.breadcrumbs li a:link, ul.breadcrumbs li a:visited {
margin: 0 0 20px 0; margin: 0 0 20px 0;
} }
.upload-wrapper textarea {
max-width: 95%;
width: 600px;
height: 150px;
padding: 10px;
}
div#uploads { div#uploads {
width: 800px; width: 800px;
max-width: 90%; max-width: 90%;

View file

@ -11,15 +11,26 @@ $(function(){
$('#send').submit(function (event) { $('#send').submit(function (event) {
event.preventDefault(); event.preventDefault();
// Create form data, and list of filenames // Build the form data
var files = $('#file-select').get(0).files;
var filenames = [];
var formData = new FormData(); var formData = new FormData();
// Files
var filenames = [];
var $fileSelect = $('#file-select');
if ($fileSelect.length > 0) {
var files = $fileSelect.get(0).files;
for (var i = 0; i < files.length; i++) { for (var i = 0; i < files.length; i++) {
var file = files[i]; var file = files[i];
filenames.push(file.name); filenames.push(file.name);
formData.append('file[]', file, file.name); formData.append('file[]', file, file.name);
} }
}
// Text message
var $text = $('#text');
if ($text.length > 0) {
formData.append("text", $text.val())
}
// Reset the upload form // Reset the upload form
$('#send').get(0).reset(); $('#send').get(0).reset();

View file

@ -19,8 +19,18 @@
<div class="upload-wrapper"> <div class="upload-wrapper">
<p><img class="logo" src="{{ static_url_path }}/img/logo_large.png" title="OnionShare"></p> <p><img class="logo" src="{{ static_url_path }}/img/logo_large.png" title="OnionShare"></p>
<p class="upload-header">Send Files</p> {% if not disable_text and not disable_files %}
<p class="upload-description">Select the files you want to send, then click "Send Files"...</p> <p class="upload-header">Submit Files or Messages</p>
<p class="upload-description">You can submit files, a message, or both</p>
{% endif %}
{% if not disable_text and disable_files %}
<p class="upload-header">Submit Messages</p>
<p class="upload-description">You can submit a message</p>
{% endif %}
{% if disable_text and not disable_files %}
<p class="upload-header">Submit Files</p>
<p class="upload-description">You can submit files</p>
{% endif %}
<div id="uploads"></div> <div id="uploads"></div>
@ -37,8 +47,13 @@
</div> </div>
<form id="send" method="post" enctype="multipart/form-data" action="/upload"> <form id="send" method="post" enctype="multipart/form-data" action="/upload">
{% if not disable_files %}
<p><input type="file" id="file-select" name="file[]" multiple /></p> <p><input type="file" id="file-select" name="file[]" multiple /></p>
<p><button type="submit" id="send-button" class="button">Send Files</button></p> {% endif %}
{% if not disable_text %}
<p><textarea id="text" name="text" placeholder="Write a message"></textarea></p>
{% endif %}
<p><button type="submit" id="send-button" class="button">Submit</button></p>
</form> </form>
</div> </div>

View file

@ -1,27 +1,16 @@
Bridge obfs4 154.35.22.10:80 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0
Bridge obfs4 83.212.101.3:50002 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0
Bridge obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=1
Bridge obfs4 154.35.22.11:80 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0
Bridge obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0
Bridge obfs4 154.35.22.9:443 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0
Bridge obfs4 154.35.22.11:443 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0
Bridge obfs4 154.35.22.13:443 FE7840FE1E21FE0A0639ED176EDA00A3ECA1E34D cert=fKnzxr+m+jWXXQGCaXe4f2gGoPXMzbL+bTBbXMYXuK0tMotd+nXyS33y2mONZWU29l81CA iat-mode=0
Bridge obfs4 154.35.22.10:443 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0
Bridge obfs4 154.35.22.9:80 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0
Bridge obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0
Bridge obfs4 154.35.22.13:16815 FE7840FE1E21FE0A0639ED176EDA00A3ECA1E34D cert=fKnzxr+m+jWXXQGCaXe4f2gGoPXMzbL+bTBbXMYXuK0tMotd+nXyS33y2mONZWU29l81CA iat-mode=0
Bridge obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0
Bridge obfs4 38.229.33.83:80 0BAC39417268B96B9F514E7F63FA6FBA1A788955 cert=VwEFpk9F/UN9JED7XpG1XOjm/O8ZCXK80oPecgWnNDZDv5pdkhq1OpbAH0wNqOT6H6BmRQ iat-mode=1
Bridge obfs4 154.35.22.11:16488 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0
Bridge obfs4 154.35.22.9:12166 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0
Bridge obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=2
Bridge obfs4 38.229.1.78:80 C8CBDB2464FC9804A69531437BCF2BE31FDD2EE4 cert=Hmyfd2ev46gGY7NoVxA9ngrPF2zCZtzskRTzoWXbxNkzeVnGFPWmrTtILRyqCTjHR+s9dg iat-mode=1
Bridge obfs4 [2001:470:b381:bfff:216:3eff:fe23:d6c3]:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1
Bridge obfs4 85.17.30.79:443 FC259A04A328A07FED1413E9FC6526530D9FD87A cert=RutxZlu8BtyP+y0NX7bAVD41+J/qXNhHUrKjFkRSdiBAhIHIQLhKQ2HxESAKZprn/lR3KA iat-mode=0
Bridge obfs4 154.35.22.10:15937 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0
Bridge obfs4 37.218.240.34:40035 88CD36D45A35271963EF82E511C8827A24730913 cert=eGXYfWODcgqIdPJ+rRupg4GGvVGfh25FWaIXZkit206OSngsp7GAIiGIXOJJROMxEqFKJg iat-mode=1
Bridge obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1 Bridge obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1
Bridge obfs4 154.35.22.12:80 00DC6C4FA49A65BD1472993CF6730D54F11E0DBB cert=N86E9hKXXXVz6G7w2z8wFfhIDztDAzZ/3poxVePHEYjbKDWzjkRDccFMAnhK75fc65pYSg iat-mode=0 Bridge obfs4 38.229.1.78:80 C8CBDB2464FC9804A69531437BCF2BE31FDD2EE4 cert=Hmyfd2ev46gGY7NoVxA9ngrPF2zCZtzskRTzoWXbxNkzeVnGFPWmrTtILRyqCTjHR+s9dg iat-mode=1
Bridge obfs4 38.229.33.83:80 0BAC39417268B96B9F514E7F63FA6FBA1A788955 cert=VwEFpk9F/UN9JED7XpG1XOjm/O8ZCXK80oPecgWnNDZDv5pdkhq1OpbAH0wNqOT6H6BmRQ iat-mode=1
Bridge obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0
Bridge obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0 Bridge obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0
Bridge obfs4 154.35.22.12:4304 00DC6C4FA49A65BD1472993CF6730D54F11E0DBB cert=N86E9hKXXXVz6G7w2z8wFfhIDztDAzZ/3poxVePHEYjbKDWzjkRDccFMAnhK75fc65pYSg iat-mode=0 Bridge obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0
Bridge obfs4 144.217.20.138:80 FB70B257C162BF1038CA669D568D76F5B7F0BABB cert=vYIV5MgrghGQvZPIi1tJwnzorMgqgmlKaB77Y3Z9Q/v94wZBOAXkW+fdx4aSxLVnKO+xNw iat-mode=0
Bridge obfs4 193.11.166.194:27015 2D82C2E354D531A68469ADF7F878FA6060C6BACA cert=4TLQPJrTSaDffMK7Nbao6LC7G9OW/NHkUwIdjLSS3KYf0Nv4/nQiiI8dY2TcsQx01NniOg iat-mode=0
Bridge obfs4 193.11.166.194:27020 86AC7B8D430DAC4117E9F42C9EAED18133863AAF cert=0LDeJH4JzMDtkJJrFphJCiPqKx7loozKN7VNfuukMGfHO0Z8OGdzHVkhVAOfo1mUdv9cMg iat-mode=0
Bridge obfs4 193.11.166.194:27025 1AE2C08904527FEA90C4C4F8C1083EA59FBC6FAF cert=ItvYZzW5tn6v3G4UnQa6Qz04Npro6e81AP70YujmK/KXwDFPTs3aHXcHp4n8Vt6w/bv8cA iat-mode=0
Bridge obfs4 209.148.46.65:443 74FAD13168806246602538555B5521A0383A1875 cert=ssH+9rP8dG2NLDN2XuFw63hIO/9MNNinLmxQDpVa+7kTOa9/m+tGWT1SmSYpQ9uTBGa6Hw iat-mode=0
Bridge obfs4 146.57.248.225:22 10A6CD36A537FCE513A322361547444B393989F0 cert=K1gDtDAIcUfeLqbstggjIw2rtgIKqdIhUlHp82XRqNSq/mtAjp1BIC9vHKJ2FAEpGssTPw iat-mode=0
Bridge obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0
Bridge obfs4 [2a0c:4d80:42:702::1]:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0
Bridge obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0
UseBridges 1 UseBridges 1

View file

@ -1 +1 @@
2.3.1 2.3.2.dev1

View file

@ -22,12 +22,6 @@ import json
import os import os
import locale import locale
try:
# We only need pwd module in macOS, and it's not available in Windows
import pwd
except:
pass
class Settings(object): class Settings(object):
""" """
@ -166,13 +160,13 @@ class Settings(object):
with open(self.filename, "r") as f: with open(self.filename, "r") as f:
self._settings = json.load(f) self._settings = json.load(f)
self.fill_in_defaults() self.fill_in_defaults()
except: except Exception:
pass pass
# Make sure data_dir exists # Make sure data_dir exists
try: try:
os.makedirs(self.get("data_dir"), exist_ok=True) os.makedirs(self.get("data_dir"), exist_ok=True)
except: except Exception:
pass pass
def save(self): def save(self):
@ -191,7 +185,7 @@ class Settings(object):
if key == "control_port_port" or key == "socks_port": if key == "control_port_port" or key == "socks_port":
try: try:
val = int(val) val = int(val)
except: except Exception:
if key == "control_port_port": if key == "control_port_port":
val = self.default_settings["control_port_port"] val = self.default_settings["control_port_port"]
elif key == "socks_port": elif key == "socks_port":

View file

@ -26,6 +26,26 @@ from datetime import datetime
from flask import Request, request, render_template, make_response, flash, redirect from flask import Request, request, render_template, make_response, flash, redirect
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
# Receive mode uses a special flask requests object, ReceiveModeRequest, in
# order to keep track of upload progress. Here's what happens when someone
# uploads files:
# - new ReceiveModeRequest object is created
# - ReceiveModeRequest.__init__
# - creates a directory based on the timestamp
# - creates empty self.progress = dict, which will map uploaded files to their upload progress
# - ReceiveModeRequest._get_file_stream
# - called for each file that gets upload
# - the first time, send REQUEST_STARTED to GUI, and append to self.web.receive_mode.uploads_in_progress
# - updates self.progress[self.filename] for the current file
# - uses custom ReceiveModeFile to save file to disk
# - ReceiveModeRequest.file_write_func called on each write
# - Display progress in CLI, and send REQUEST_PROGRESS to GUI
# - ReceiveModeRequest.file_close_func called when each file closes
# - self.progress[filename]["complete"] = True
# - ReceiveModeRequest.close
# - send either REQUEST_UPLOAD_CANCELED or REQUEST_UPLOAD_FINISHED to GUI
# - remove from self.web.receive_mode.uploads_in_progress
class ReceiveModeWeb: class ReceiveModeWeb:
""" """
@ -66,6 +86,8 @@ class ReceiveModeWeb:
render_template( render_template(
"receive.html", "receive.html",
static_url_path=self.web.static_url_path, static_url_path=self.web.static_url_path,
disable_text=self.web.settings.get("receive", "disable_text"),
disable_files=self.web.settings.get("receive", "disable_files"),
title=self.web.settings.get("general", "title"), title=self.web.settings.get("general", "title"),
) )
) )
@ -77,7 +99,12 @@ class ReceiveModeWeb:
Handle the upload files POST request, though at this point, the files have Handle the upload files POST request, though at this point, the files have
already been uploaded and saved to their correct locations. already been uploaded and saved to their correct locations.
""" """
message_received = request.includes_message
files_received = 0
if not self.web.settings.get("receive", "disable_files"):
files = request.files.getlist("file[]") files = request.files.getlist("file[]")
filenames = [] filenames = []
for f in files: for f in files:
if f.filename != "": if f.filename != "":
@ -102,19 +129,28 @@ class ReceiveModeWeb:
"define_routes", "define_routes",
f"/upload, uploaded {f.filename}, saving to {local_path}", f"/upload, uploaded {f.filename}, saving to {local_path}",
) )
print(f"\nReceived: {local_path}") print(f"Received: {local_path}")
files_received = len(filenames)
# Send webhook if configured # Send webhook if configured
if ( if (
self.web.settings.get("receive", "webhook_url") self.web.settings.get("receive", "webhook_url") is not None
and not request.upload_error and not request.upload_error
and len(files) > 0 and (message_received or files_received)
): ):
if len(files) == 1: msg = ""
file_msg = "1 file" if files_received > 0:
if files_received == 1:
msg += "1 file"
else: else:
file_msg = f"{len(files)} files" msg += f"{files_received} files"
self.send_webhook_notification(f"{file_msg} uploaded to OnionShare") if message_received:
if msg == "":
msg = "A text message"
else:
msg += " and a text message"
self.send_webhook_notification(f"{msg} submitted to OnionShare")
if request.upload_error: if request.upload_error:
self.common.log( self.common.log(
@ -142,17 +178,23 @@ class ReceiveModeWeb:
if ajax: if ajax:
info_flashes = [] info_flashes = []
if len(filenames) == 0: if files_received > 0:
msg = "No files uploaded" files_msg = ""
if ajax:
info_flashes.append(msg)
else:
flash(msg, "info")
else:
msg = "Sent "
for filename in filenames: for filename in filenames:
msg += f"{filename}, " files_msg += f"{filename}, "
msg = msg.rstrip(", ") files_msg = files_msg.rstrip(", ")
if message_received:
if files_received > 0:
msg = f"Message submitted, uploaded {files_msg}"
else:
msg = "Message submitted"
else:
if files_received > 0:
msg = f"Uploaded {files_msg}"
else:
msg = "Nothing submitted"
if ajax: if ajax:
info_flashes.append(msg) info_flashes.append(msg)
else: else:
@ -238,7 +280,7 @@ class ReceiveModeFile(object):
self.upload_error = False self.upload_error = False
try: try:
self.f = open(self.filename_in_progress, "wb+") self.f = open(self.filename_in_progress, "wb+")
except: except Exception:
# This will only happen if someone is messing with the data dir while # This will only happen if someone is messing with the data dir while
# OnionShare is running, but if it does make sure to throw an error # OnionShare is running, but if it does make sure to throw an error
self.upload_error = True self.upload_error = True
@ -286,7 +328,7 @@ class ReceiveModeFile(object):
bytes_written = self.f.write(b) bytes_written = self.f.write(b)
self.onionshare_write_func(self.onionshare_filename, bytes_written) self.onionshare_write_func(self.onionshare_filename, bytes_written)
except: except Exception:
self.upload_error = True self.upload_error = True
def close(self): def close(self):
@ -300,7 +342,7 @@ class ReceiveModeFile(object):
# Rename the in progress file to the final filename # Rename the in progress file to the final filename
os.rename(self.filename_in_progress, self.filename) os.rename(self.filename_in_progress, self.filename)
except: except Exception:
self.upload_error = True self.upload_error = True
self.onionshare_close_func(self.onionshare_filename, self.upload_error) self.onionshare_close_func(self.onionshare_filename, self.upload_error)
@ -316,8 +358,7 @@ class ReceiveModeRequest(Request):
super(ReceiveModeRequest, self).__init__(environ, populate_request, shallow) super(ReceiveModeRequest, self).__init__(environ, populate_request, shallow)
self.web = environ["web"] self.web = environ["web"]
self.stop_q = environ["stop_q"] self.stop_q = environ["stop_q"]
self.filename = None
self.web.common.log("ReceiveModeRequest", "__init__")
# Prevent running the close() method more than once # Prevent running the close() method more than once
self.closed = False self.closed = False
@ -329,13 +370,15 @@ class ReceiveModeRequest(Request):
self.upload_request = True self.upload_request = True
if self.upload_request: if self.upload_request:
self.web.common.log("ReceiveModeRequest", "__init__")
# No errors yet # No errors yet
self.upload_error = False self.upload_error = False
# Figure out what files should be saved # Figure out what files should be saved
now = datetime.now() now = datetime.now()
date_dir = now.strftime("%Y-%m-%d") date_dir = now.strftime("%Y-%m-%d")
time_dir = now.strftime("%H.%M.%S") time_dir = now.strftime("%H%M%S")
self.receive_mode_dir = os.path.join( self.receive_mode_dir = os.path.join(
self.web.settings.get("receive", "data_dir"), date_dir, time_dir self.web.settings.get("receive", "data_dir"), date_dir, time_dir
) )
@ -383,6 +426,9 @@ class ReceiveModeRequest(Request):
) )
self.upload_error = True self.upload_error = True
# Figure out the message filename, in case there is a message
self.message_filename = f"{self.receive_mode_dir}-message.txt"
# If there's an error so far, finish early # If there's an error so far, finish early
if self.upload_error: if self.upload_error:
return return
@ -400,7 +446,7 @@ class ReceiveModeRequest(Request):
# Figure out the content length # Figure out the content length
try: try:
self.content_length = int(self.headers["Content-Length"]) self.content_length = int(self.headers["Content-Length"])
except: except Exception:
self.content_length = 0 self.content_length = 0
date_str = datetime.now().strftime("%b %d, %I:%M%p") date_str = datetime.now().strftime("%b %d, %I:%M%p")
@ -412,6 +458,60 @@ class ReceiveModeRequest(Request):
self.previous_file = None self.previous_file = None
# Is there a text message?
self.includes_message = False
if not self.web.settings.get("receive", "disable_text"):
text_message = self.form.get("text")
if text_message:
if text_message.strip() != "":
self.includes_message = True
with open(self.message_filename, "w") as f:
f.write(text_message)
self.web.common.log(
"ReceiveModeRequest",
"__init__",
f"saved message to {self.message_filename}",
)
print(f"Received: {self.message_filename}")
# Tell the GUI about the message
self.tell_gui_request_started()
self.web.common.log(
"ReceiveModeRequest",
"__init__",
"sending REQUEST_UPLOAD_INCLUDES_MESSAGE to GUI",
)
self.web.add_request(
self.web.REQUEST_UPLOAD_INCLUDES_MESSAGE,
self.path,
{
"id": self.history_id,
"filename": self.message_filename,
},
)
def tell_gui_request_started(self):
# Tell the GUI about the request
if not self.told_gui_about_request:
self.web.common.log(
"ReceiveModeRequest",
"tell_gui_request_started",
"sending REQUEST_STARTED to GUI",
)
self.web.add_request(
self.web.REQUEST_STARTED,
self.path,
{
"id": self.history_id,
"content_length": self.content_length,
},
)
self.web.receive_mode.uploads_in_progress.append(self.history_id)
self.told_gui_about_request = True
def _get_file_stream( def _get_file_stream(
self, total_content_length, content_type, filename=None, content_length=None self, total_content_length, content_type, filename=None, content_length=None
): ):
@ -420,16 +520,7 @@ class ReceiveModeRequest(Request):
writable stream. writable stream.
""" """
if self.upload_request: if self.upload_request:
if not self.told_gui_about_request: self.tell_gui_request_started()
# Tell the GUI about the request
self.web.add_request(
self.web.REQUEST_STARTED,
self.path,
{"id": self.history_id, "content_length": self.content_length},
)
self.web.receive_mode.uploads_in_progress.append(self.history_id)
self.told_gui_about_request = True
self.filename = secure_filename(filename) self.filename = secure_filename(filename)
@ -456,28 +547,46 @@ class ReceiveModeRequest(Request):
return return
self.closed = True self.closed = True
if self.upload_request:
self.web.common.log("ReceiveModeRequest", "close") self.web.common.log("ReceiveModeRequest", "close")
try:
if self.told_gui_about_request: if self.told_gui_about_request:
history_id = self.history_id history_id = self.history_id
if ( if not self.web.stop_q.empty() or (
not self.web.stop_q.empty() self.filename in self.progress
or not self.progress[self.filename]["complete"] and not self.progress[self.filename]["complete"]
): ):
# Inform the GUI that the upload has canceled # Inform the GUI that the upload has canceled
self.web.common.log(
"ReceiveModeRequest",
"close",
"sending REQUEST_UPLOAD_CANCELED to GUI",
)
self.web.add_request( self.web.add_request(
self.web.REQUEST_UPLOAD_CANCELED, self.path, {"id": history_id} self.web.REQUEST_UPLOAD_CANCELED,
self.path,
{"id": history_id},
) )
else: else:
# Inform the GUI that the upload has finished # Inform the GUI that the upload has finished
self.web.common.log(
"ReceiveModeRequest",
"close",
"sending REQUEST_UPLOAD_FINISHED to GUI",
)
self.web.add_request( self.web.add_request(
self.web.REQUEST_UPLOAD_FINISHED, self.path, {"id": history_id} self.web.REQUEST_UPLOAD_FINISHED,
self.path,
{"id": history_id},
) )
self.web.receive_mode.uploads_in_progress.remove(history_id) self.web.receive_mode.uploads_in_progress.remove(history_id)
except AttributeError: # If no files were written to self.receive_mode_dir, delete it
try:
if len(os.listdir(self.receive_mode_dir)) == 0:
os.rmdir(self.receive_mode_dir)
except Exception:
pass pass
def file_write_func(self, filename, length): def file_write_func(self, filename, length):
@ -496,6 +605,10 @@ class ReceiveModeRequest(Request):
size_str = self.web.common.human_readable_filesize( size_str = self.web.common.human_readable_filesize(
self.progress[filename]["uploaded_bytes"] self.progress[filename]["uploaded_bytes"]
) )
if self.web.common.verbose:
print(f"=> {size_str} {filename}")
else:
print(f"\r=> {size_str} {filename} ", end="") print(f"\r=> {size_str} {filename} ", end="")
# Update the GUI on the upload progress # Update the GUI on the upload progress

View file

@ -55,6 +55,15 @@ class SendBaseModeWeb:
self.define_routes() self.define_routes()
self.init() self.init()
def fix_windows_paths(self, path):
"""
If on Windows, replace backslashes with slashes
"""
if self.common.platform == "Windows":
return path.replace("\\", "/")
return path
def set_file_info(self, filenames, processed_size_callback=None): def set_file_info(self, filenames, processed_size_callback=None):
""" """
Build a data structure that describes the list of files Build a data structure that describes the list of files
@ -70,40 +79,48 @@ class SendBaseModeWeb:
self.root_files = ( self.root_files = (
{} {}
) # This is only the root files and dirs, as opposed to all of them ) # This is only the root files and dirs, as opposed to all of them
self.cleanup_filenames = []
self.cur_history_id = 0 self.cur_history_id = 0
self.file_info = {"files": [], "dirs": []} self.file_info = {"files": [], "dirs": []}
self.gzip_individual_files = {} self.gzip_individual_files = {}
self.init() self.init()
# Windows paths use backslashes, but website paths use forward slashes. We have to
# make sure we're stripping the correct type of slash
if self.common.platform == "Windows":
slash = "\\"
else:
slash = "/"
# Build the file list # Build the file list
for filename in filenames: for filename in filenames:
basename = os.path.basename(filename.rstrip("/")) basename = os.path.basename(filename.rstrip(slash))
# If it's a filename, add it # If it's a filename, add it
if os.path.isfile(filename): if os.path.isfile(filename):
self.files[basename] = filename self.files[self.fix_windows_paths(basename)] = filename
self.root_files[basename] = filename self.root_files[self.fix_windows_paths(basename)] = filename
# If it's a directory, add it recursively # If it's a directory, add it recursively
elif os.path.isdir(filename): elif os.path.isdir(filename):
self.root_files[basename] = filename self.root_files[self.fix_windows_paths(basename)] = filename
for root, _, nested_filenames in os.walk(filename): for root, _, nested_filenames in os.walk(filename):
# Normalize the root path. So if the directory name is "/home/user/Documents/some_folder", # Normalize the root path. So if the directory name is "/home/user/Documents/some_folder",
# and it has a nested folder foobar, the root is "/home/user/Documents/some_folder/foobar". # and it has a nested folder foobar, the root is "/home/user/Documents/some_folder/foobar".
# The normalized_root should be "some_folder/foobar" # The normalized_root should be "some_folder/foobar"
normalized_root = os.path.join( normalized_root = os.path.join(
basename, root[len(filename) :].lstrip("/") basename, root[len(filename) :].lstrip(slash)
).rstrip("/") ).rstrip(slash)
# Add the dir itself # Add the dir itself
self.files[normalized_root] = root self.files[self.fix_windows_paths(normalized_root)] = root
# Add the files in this dir # Add the files in this dir
for nested_filename in nested_filenames: for nested_filename in nested_filenames:
self.files[ self.files[
self.fix_windows_paths(
os.path.join(normalized_root, nested_filename) os.path.join(normalized_root, nested_filename)
)
] = os.path.join(root, nested_filename) ] = os.path.join(root, nested_filename)
self.set_file_info_custom(filenames, processed_size_callback) self.set_file_info_custom(filenames, processed_size_callback)
@ -177,7 +194,7 @@ class SendBaseModeWeb:
self.gzip_individual_files[filesystem_path] = gzip_filename self.gzip_individual_files[filesystem_path] = gzip_filename
# Make sure the gzip file gets cleaned up when onionshare stops # Make sure the gzip file gets cleaned up when onionshare stops
self.cleanup_filenames.append(gzip_filename) self.web.cleanup_filenames.append(gzip_filename)
file_to_download = self.gzip_individual_files[filesystem_path] file_to_download = self.gzip_individual_files[filesystem_path]
filesize = os.path.getsize(self.gzip_individual_files[filesystem_path]) filesize = os.path.getsize(self.gzip_individual_files[filesystem_path])
@ -242,7 +259,7 @@ class SendBaseModeWeb:
}, },
) )
done = False done = False
except: except Exception:
# Looks like the download was canceled # Looks like the download was canceled
done = True done = True

View file

@ -44,7 +44,7 @@ def make_etag(data):
else: else:
break break
hash_value = binascii.hexlify(hasher.digest()).decode('utf-8') hash_value = binascii.hexlify(hasher.digest()).decode("utf-8")
return '"sha256:{}"'.format(hash_value) return '"sha256:{}"'.format(hash_value)
@ -53,13 +53,13 @@ def parse_range_header(range_header: str, target_size: int) -> list:
if range_header is None: if range_header is None:
return [(0, end_index)] return [(0, end_index)]
bytes_ = 'bytes=' bytes_ = "bytes="
if not range_header.startswith(bytes_): if not range_header.startswith(bytes_):
abort(416) abort(416)
ranges = [] ranges = []
for range_ in range_header[len(bytes_):].split(','): for range_ in range_header[len(bytes_) :].split(","):
split = range_.split('-') split = range_.split("-")
if len(split) == 1: if len(split) == 1:
try: try:
start = int(split[0]) start = int(split[0])
@ -194,13 +194,17 @@ class ShareModeWeb(SendBaseModeWeb):
etag = self.download_etag etag = self.download_etag
# for range requests # for range requests
range_, status_code = self.get_range_and_status_code(self.filesize, etag, self.last_modified) range_, status_code = self.get_range_and_status_code(
self.filesize, etag, self.last_modified
)
# Tell GUI the download started # Tell GUI the download started
history_id = self.cur_history_id history_id = self.cur_history_id
self.cur_history_id += 1 self.cur_history_id += 1
self.web.add_request( self.web.add_request(
self.web.REQUEST_STARTED, request_path, {"id": history_id, "use_gzip": use_gzip} self.web.REQUEST_STARTED,
request_path,
{"id": history_id, "use_gzip": use_gzip},
) )
basename = os.path.basename(self.download_filename) basename = os.path.basename(self.download_filename)
@ -209,32 +213,41 @@ class ShareModeWeb(SendBaseModeWeb):
r = Response() r = Response()
else: else:
r = Response( r = Response(
self.generate(shutdown_func, range_, file_to_download, request_path, self.generate(
history_id, self.filesize)) shutdown_func,
range_,
file_to_download,
request_path,
history_id,
self.filesize,
)
)
if use_gzip: if use_gzip:
r.headers.set('Content-Encoding', 'gzip') r.headers.set("Content-Encoding", "gzip")
r.headers.set('Content-Length', range_[1] - range_[0] + 1) r.headers.set("Content-Length", range_[1] - range_[0] + 1)
filename_dict = { filename_dict = {
"filename": unidecode(basename), "filename": unidecode(basename),
"filename*": "UTF-8''%s" % url_quote(basename), "filename*": "UTF-8''%s" % url_quote(basename),
} }
r.headers.set('Content-Disposition', 'attachment', **filename_dict) r.headers.set("Content-Disposition", "attachment", **filename_dict)
r = self.web.add_security_headers(r) r = self.web.add_security_headers(r)
# guess content type # guess content type
(content_type, _) = mimetypes.guess_type(basename, strict=False) (content_type, _) = mimetypes.guess_type(basename, strict=False)
if content_type is not None: if content_type is not None:
r.headers.set('Content-Type', content_type) r.headers.set("Content-Type", content_type)
r.headers.set('Accept-Ranges', 'bytes') r.headers.set("Accept-Ranges", "bytes")
r.headers.set('ETag', etag) r.headers.set("ETag", etag)
r.headers.set('Last-Modified', http_date(self.last_modified)) r.headers.set("Last-Modified", http_date(self.last_modified))
# we need to set this for range requests # we need to set this for range requests
r.headers.set('Vary', 'Accept-Encoding') r.headers.set("Vary", "Accept-Encoding")
if status_code == 206: if status_code == 206:
r.headers.set('Content-Range', r.headers.set(
'bytes {}-{}/{}'.format(range_[0], range_[1], self.filesize)) "Content-Range",
"bytes {}-{}/{}".format(range_[0], range_[1], self.filesize),
)
r.status_code = status_code r.status_code = status_code
@ -244,17 +257,19 @@ class ShareModeWeb(SendBaseModeWeb):
def get_range_and_status_code(cls, dl_size, etag, last_modified): def get_range_and_status_code(cls, dl_size, etag, last_modified):
use_default_range = True use_default_range = True
status_code = 200 status_code = 200
range_header = request.headers.get('Range') range_header = request.headers.get("Range")
# range requests are only allowed for get # range requests are only allowed for get
if request.method == 'GET': if request.method == "GET":
ranges = parse_range_header(range_header, dl_size) ranges = parse_range_header(range_header, dl_size)
if not (len(ranges) == 1 and ranges[0][0] == 0 and ranges[0][1] == dl_size - 1): if not (
len(ranges) == 1 and ranges[0][0] == 0 and ranges[0][1] == dl_size - 1
):
use_default_range = False use_default_range = False
status_code = 206 status_code = 206
if range_header: if range_header:
if_range = request.headers.get('If-Range') if_range = request.headers.get("If-Range")
if if_range and if_range != etag: if if_range and if_range != etag:
use_default_range = True use_default_range = True
status_code = 200 status_code = 200
@ -266,11 +281,11 @@ class ShareModeWeb(SendBaseModeWeb):
abort(416) # We don't support multipart range requests yet abort(416) # We don't support multipart range requests yet
range_ = ranges[0] range_ = ranges[0]
etag_header = request.headers.get('ETag') etag_header = request.headers.get("ETag")
if etag_header is not None and etag_header != etag: if etag_header is not None and etag_header != etag:
abort(412) abort(412)
if_unmod = request.headers.get('If-Unmodified-Since') if_unmod = request.headers.get("If-Unmodified-Since")
if if_unmod: if if_unmod:
if_date = parse_date(if_unmod) if_date = parse_date(if_unmod)
if if_date and if_date > last_modified: if if_date and if_date > last_modified:
@ -280,7 +295,9 @@ class ShareModeWeb(SendBaseModeWeb):
return range_, status_code return range_, status_code
def generate(self, shutdown_func, range_, file_to_download, path, history_id, filesize): def generate(
self, shutdown_func, range_, file_to_download, path, history_id, filesize
):
# The user hasn't canceled the download # The user hasn't canceled the download
self.client_cancel = False self.client_cancel = False
@ -326,9 +343,7 @@ class ShareModeWeb(SendBaseModeWeb):
): ):
sys.stdout.write( sys.stdout.write(
"\r{0:s}, {1:.2f}% ".format( "\r{0:s}, {1:.2f}% ".format(
self.common.human_readable_filesize( self.common.human_readable_filesize(downloaded_bytes),
downloaded_bytes
),
percent, percent,
) )
) )
@ -337,10 +352,14 @@ class ShareModeWeb(SendBaseModeWeb):
self.web.add_request( self.web.add_request(
self.web.REQUEST_PROGRESS, self.web.REQUEST_PROGRESS,
path, path,
{"id": history_id, "bytes": downloaded_bytes, 'total_bytes': filesize,}, {
"id": history_id,
"bytes": downloaded_bytes,
"total_bytes": filesize,
},
) )
self.web.done = False self.web.done = False
except: except Exception:
# looks like the download was canceled # looks like the download was canceled
self.web.done = True self.web.done = True
canceled = True canceled = True
@ -367,10 +386,9 @@ class ShareModeWeb(SendBaseModeWeb):
if shutdown_func is None: if shutdown_func is None:
raise RuntimeError("Not running with the Werkzeug Server") raise RuntimeError("Not running with the Werkzeug Server")
shutdown_func() shutdown_func()
except: except Exception:
pass pass
def directory_listing_template( def directory_listing_template(
self, path, files, dirs, breadcrumbs, breadcrumbs_leaf self, path, files, dirs, breadcrumbs, breadcrumbs_leaf
): ):
@ -466,7 +484,7 @@ class ShareModeWeb(SendBaseModeWeb):
if len(self.file_info["files"]) == 1 and len(self.file_info["dirs"]) == 0: if len(self.file_info["files"]) == 1 and len(self.file_info["dirs"]) == 0:
self.download_filename = self.file_info["files"][0]["filename"] self.download_filename = self.file_info["files"][0]["filename"]
self.download_filesize = self.file_info["files"][0]["size"] self.download_filesize = self.file_info["files"][0]["size"]
with open(self.download_filename, 'rb') as f: with open(self.download_filename, "rb") as f:
self.download_etag = make_etag(f) self.download_etag = make_etag(f)
# Compress the file with gzip now, so we don't have to do it on each request # Compress the file with gzip now, so we don't have to do it on each request
@ -475,11 +493,11 @@ class ShareModeWeb(SendBaseModeWeb):
self.download_filename, self.gzip_filename, 6, processed_size_callback self.download_filename, self.gzip_filename, 6, processed_size_callback
) )
self.gzip_filesize = os.path.getsize(self.gzip_filename) self.gzip_filesize = os.path.getsize(self.gzip_filename)
with open(self.gzip_filename, 'rb') as f: with open(self.gzip_filename, "rb") as f:
self.gzip_etag = make_etag(f) self.gzip_etag = make_etag(f)
# Make sure the gzip file gets cleaned up when onionshare stops # Make sure the gzip file gets cleaned up when onionshare stops
self.cleanup_filenames.append(self.gzip_filename) self.web.cleanup_filenames.append(self.gzip_filename)
self.is_zipped = False self.is_zipped = False
@ -502,11 +520,12 @@ class ShareModeWeb(SendBaseModeWeb):
self.zip_writer.close() self.zip_writer.close()
self.download_filesize = os.path.getsize(self.download_filename) self.download_filesize = os.path.getsize(self.download_filename)
with open(self.download_filename, 'rb') as f: with open(self.download_filename, "rb") as f:
self.download_etag = make_etag(f) self.download_etag = make_etag(f)
# Make sure the zip file gets cleaned up when onionshare stops # Make sure the zip file gets cleaned up when onionshare stops
self.cleanup_filenames.append(self.zip_writer.zip_filename) self.web.cleanup_filenames.append(self.zip_writer.zip_filename)
self.web.cleanup_filenames.append(self.zip_writer.zip_temp_dir)
self.is_zipped = True self.is_zipped = True
@ -527,8 +546,9 @@ class ZipWriter(object):
if zip_filename: if zip_filename:
self.zip_filename = zip_filename self.zip_filename = zip_filename
else: else:
self.zip_temp_dir = tempfile.mkdtemp()
self.zip_filename = ( self.zip_filename = (
f"{tempfile.mkdtemp()}/onionshare_{self.common.random_string(4, 6)}.zip" f"{self.zip_temp_dir}/onionshare_{self.common.random_string(4, 6)}.zip"
) )
self.z = zipfile.ZipFile(self.zip_filename, "w", allowZip64=True) self.z = zipfile.ZipFile(self.zip_filename, "w", allowZip64=True)

View file

@ -21,6 +21,7 @@ import logging
import os import os
import queue import queue
import requests import requests
import shutil
from distutils.version import LooseVersion as Version from distutils.version import LooseVersion as Version
import flask import flask
@ -41,6 +42,7 @@ from .receive_mode import ReceiveModeWeb, ReceiveModeWSGIMiddleware, ReceiveMode
from .website_mode import WebsiteModeWeb from .website_mode import WebsiteModeWeb
from .chat_mode import ChatModeWeb from .chat_mode import ChatModeWeb
# Stub out flask's show_server_banner function, to avoiding showing warnings that # Stub out flask's show_server_banner function, to avoiding showing warnings that
# are not applicable to OnionShare # are not applicable to OnionShare
def stubbed_show_server_banner(env, debug, app_import_path, eager_loading): def stubbed_show_server_banner(env, debug, app_import_path, eager_loading):
@ -49,7 +51,7 @@ def stubbed_show_server_banner(env, debug, app_import_path, eager_loading):
try: try:
flask.cli.show_server_banner = stubbed_show_server_banner flask.cli.show_server_banner = stubbed_show_server_banner
except: except Exception:
pass pass
@ -63,16 +65,17 @@ class Web:
REQUEST_PROGRESS = 2 REQUEST_PROGRESS = 2
REQUEST_CANCELED = 3 REQUEST_CANCELED = 3
REQUEST_RATE_LIMIT = 4 REQUEST_RATE_LIMIT = 4
REQUEST_UPLOAD_FILE_RENAMED = 5 REQUEST_UPLOAD_INCLUDES_MESSAGE = 5
REQUEST_UPLOAD_SET_DIR = 6 REQUEST_UPLOAD_FILE_RENAMED = 6
REQUEST_UPLOAD_FINISHED = 7 REQUEST_UPLOAD_SET_DIR = 7
REQUEST_UPLOAD_CANCELED = 8 REQUEST_UPLOAD_FINISHED = 8
REQUEST_INDIVIDUAL_FILE_STARTED = 9 REQUEST_UPLOAD_CANCELED = 9
REQUEST_INDIVIDUAL_FILE_PROGRESS = 10 REQUEST_INDIVIDUAL_FILE_STARTED = 10
REQUEST_INDIVIDUAL_FILE_CANCELED = 11 REQUEST_INDIVIDUAL_FILE_PROGRESS = 11
REQUEST_ERROR_DATA_DIR_CANNOT_CREATE = 12 REQUEST_INDIVIDUAL_FILE_CANCELED = 12
REQUEST_OTHER = 13 REQUEST_ERROR_DATA_DIR_CANNOT_CREATE = 13
REQUEST_INVALID_PASSWORD = 14 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
@ -160,6 +163,8 @@ class Web:
self.socketio.init_app(self.app) self.socketio.init_app(self.app)
self.chat_mode = ChatModeWeb(self.common, self) self.chat_mode = ChatModeWeb(self.common, self)
self.cleanup_filenames = []
def get_mode(self): def get_mode(self):
if self.mode == "share": if self.mode == "share":
return self.share_mode return self.share_mode
@ -327,7 +332,7 @@ class Web:
def generate_password(self, saved_password=None): def generate_password(self, saved_password=None):
self.common.log("Web", "generate_password", f"saved_password={saved_password}") self.common.log("Web", "generate_password", f"saved_password={saved_password}")
if saved_password != None and saved_password != "": if saved_password is not None and saved_password != "":
self.password = saved_password self.password = saved_password
self.common.log( self.common.log(
"Web", "Web",
@ -363,7 +368,7 @@ class Web:
if func is None and self.mode != "chat": if func is None and self.mode != "chat":
raise RuntimeError("Not running with the Werkzeug Server") raise RuntimeError("Not running with the Werkzeug Server")
func() func()
except: except Exception:
pass pass
self.running = False self.running = False
@ -421,3 +426,21 @@ class Web:
# Reset any password that was in use # Reset any password that was in use
self.password = None self.password = None
def cleanup(self):
"""
Shut everything down and clean up temporary files, etc.
"""
self.common.log("Web", "cleanup")
# Cleanup files
try:
for filename in self.cleanup_filenames:
if os.path.isfile(filename):
os.remove(filename)
elif os.path.isdir(filename):
shutil.rmtree(filename)
except Exception:
# Don't crash if file is still in use
pass
self.cleanup_filenames = []

57
cli/poetry.lock generated
View file

@ -72,9 +72,8 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "7.1.2" version = "7.1.2"
[[package]] [[package]]
category = "dev" category = "main"
description = "Cross-platform colored terminal text." description = "Cross-platform colored terminal text."
marker = "sys_platform == \"win32\""
name = "colorama" 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.*"
@ -98,7 +97,7 @@ description = "Highly concurrent networking library"
name = "eventlet" name = "eventlet"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "0.30.2" version = "0.31.0"
[package.dependencies] [package.dependencies]
dnspython = ">=1.15.0,<2.0.0" dnspython = ">=1.15.0,<2.0.0"
@ -130,7 +129,7 @@ description = "Basic and Digest HTTP authentication for Flask routes"
name = "flask-httpauth" name = "flask-httpauth"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "4.2.0" version = "4.3.0"
[package.dependencies] [package.dependencies]
Flask = "*" Flask = "*"
@ -173,7 +172,7 @@ marker = "python_version < \"3.8\""
name = "importlib-metadata" name = "importlib-metadata"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "3.10.0" version = "4.0.1"
[package.dependencies] [package.dependencies]
zipp = ">=0.5" zipp = ">=0.5"
@ -316,7 +315,7 @@ description = "pytest: simple powerful testing with Python"
name = "pytest" name = "pytest"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
version = "6.2.3" version = "6.2.4"
[package.dependencies] [package.dependencies]
atomicwrites = ">=1.0" atomicwrites = ">=1.0"
@ -341,7 +340,7 @@ description = "Engine.IO server"
name = "python-engineio" name = "python-engineio"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "4.0.1" version = "4.1.0"
[package.extras] [package.extras]
asyncio_client = ["aiohttp (>=3.4)"] asyncio_client = ["aiohttp (>=3.4)"]
@ -353,11 +352,11 @@ description = "Socket.IO server"
name = "python-socketio" name = "python-socketio"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "5.1.0" version = "5.2.1"
[package.dependencies] [package.dependencies]
bidict = ">=0.21.0" bidict = ">=0.21.0"
python-engineio = ">=4" python-engineio = ">=4.1.0"
[package.extras] [package.extras]
asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"] asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"]
@ -391,7 +390,7 @@ description = "Python 2 and 3 compatibility utilities"
name = "six" 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.15.0" version = "1.16.0"
[[package]] [[package]]
category = "main" category = "main"
@ -416,7 +415,7 @@ marker = "python_version < \"3.8\""
name = "typing-extensions" name = "typing-extensions"
optional = false optional = false
python-versions = "*" python-versions = "*"
version = "3.7.4.3" version = "3.10.0.0"
[[package]] [[package]]
category = "main" category = "main"
@ -465,7 +464,7 @@ docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] 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]
content-hash = "8c04afd6b4605961ef8da2340c99f1d3dabc790bca8b57c1bdfb3e29130dc94d" content-hash = "a3456f7b6194c08460a78447e1397f319689aef5bc33d7bcb7622a495f947f87"
python-versions = "^3.6" python-versions = "^3.6"
[metadata.files] [metadata.files]
@ -541,16 +540,16 @@ dnspython = [
{file = "dnspython-1.16.0.zip", hash = "sha256:36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01"}, {file = "dnspython-1.16.0.zip", hash = "sha256:36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01"},
] ]
eventlet = [ eventlet = [
{file = "eventlet-0.30.2-py2.py3-none-any.whl", hash = "sha256:89cc6dbfef47c4629cefead5fde21c5f2b33464d57f7df5fc5148f8b4de3fbb5"}, {file = "eventlet-0.31.0-py2.py3-none-any.whl", hash = "sha256:27ae41fad9deed9bbf4166f3e3b65acc15d524d42210a518e5877da85a6b8c5d"},
{file = "eventlet-0.30.2.tar.gz", hash = "sha256:1811b122d9a45eb5bafba092d36911bca825f835cb648a862bbf984030acff9d"}, {file = "eventlet-0.31.0.tar.gz", hash = "sha256:b36ec2ecc003de87fc87b93197d77fea528aa0f9204a34fdf3b2f8d0f01e017b"},
] ]
flask = [ flask = [
{file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"}, {file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"},
{file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"}, {file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"},
] ]
flask-httpauth = [ flask-httpauth = [
{file = "Flask-HTTPAuth-4.2.0.tar.gz", hash = "sha256:8c7e49e53ce7dc14e66fe39b9334e4b7ceb8d0b99a6ba1c3562bb528ef9da84a"}, {file = "Flask-HTTPAuth-4.3.0.tar.gz", hash = "sha256:2e604283cc436f2fe59206500aef898427c76016d11e4924cd2c3ec827ab4116"},
{file = "Flask_HTTPAuth-4.2.0-py2.py3-none-any.whl", hash = "sha256:3fcedb99a03985915335a38c35bfee6765cbd66d7f46440fa3b42ae94a90fac7"}, {file = "Flask_HTTPAuth-4.3.0-py2.py3-none-any.whl", hash = "sha256:ff3c08954993b3c415efa85a4993fe5d61f3e02e8f3e4e994b33f1ec2951baa9"},
] ]
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"},
@ -606,8 +605,8 @@ idna = [
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
] ]
importlib-metadata = [ importlib-metadata = [
{file = "importlib_metadata-3.10.0-py3-none-any.whl", hash = "sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe"}, {file = "importlib_metadata-4.0.1-py3-none-any.whl", hash = "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d"},
{file = "importlib_metadata-3.10.0.tar.gz", hash = "sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a"}, {file = "importlib_metadata-4.0.1.tar.gz", hash = "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581"},
] ]
iniconfig = [ iniconfig = [
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
@ -732,24 +731,24 @@ pysocks = [
{file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"},
] ]
pytest = [ pytest = [
{file = "pytest-6.2.3-py3-none-any.whl", hash = "sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"}, {file = "pytest-6.2.4-py3-none-any.whl", hash = "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"},
{file = "pytest-6.2.3.tar.gz", hash = "sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634"}, {file = "pytest-6.2.4.tar.gz", hash = "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b"},
] ]
python-engineio = [ python-engineio = [
{file = "python-engineio-4.0.1.tar.gz", hash = "sha256:bb575c1a3512b4b5d4706f3071d5cc36e592459e99a47d9a4b7faabeba941377"}, {file = "python-engineio-4.1.0.tar.gz", hash = "sha256:21e1bcc62f5573a4bb1c805e69915c5a4c5aa953005dde6c2f707c24554c1020"},
{file = "python_engineio-4.0.1-py2.py3-none-any.whl", hash = "sha256:759ec99d91b3d36b29596124c77ba7c063c7ab97685d318fb23a166d9a4b9187"}, {file = "python_engineio-4.1.0-py2.py3-none-any.whl", hash = "sha256:c0216b0f9584d6dd632dfd4e2b624d2cf5e97a55443a467f52b928b7e3e08998"},
] ]
python-socketio = [ python-socketio = [
{file = "python-socketio-5.1.0.tar.gz", hash = "sha256:338cc29abb6f3ca14c88f1f8d05ed27c690df4648f62062b299f92625bbf7093"}, {file = "python-socketio-5.2.1.tar.gz", hash = "sha256:356a8a480fa316295b439d63a5f35a7a59fe65cee1ae35dee28e87d00e5aead6"},
{file = "python_socketio-5.1.0-py2.py3-none-any.whl", hash = "sha256:8a7ed43bfdbbb266eb8a661a0c9648dc94bcd9689566ae3ee08bf98eca8987af"}, {file = "python_socketio-5.2.1-py2.py3-none-any.whl", hash = "sha256:8db0653e49389e609aa1048bdbc49da9b8d8ecdcf54e3c1e4c9cc37402cfdaef"},
] ]
requests = [ requests = [
{file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
{file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
] ]
six = [ six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
] ]
stem = [ stem = [
{file = "stem-1.8.0.tar.gz", hash = "sha256:a0b48ea6224e95f22aa34c0bc3415f0eb4667ddeae3dfb5e32a6920c185568c2"}, {file = "stem-1.8.0.tar.gz", hash = "sha256:a0b48ea6224e95f22aa34c0bc3415f0eb4667ddeae3dfb5e32a6920c185568c2"},
@ -759,9 +758,9 @@ toml = [
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
] ]
typing-extensions = [ typing-extensions = [
{file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"},
{file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"},
{file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"},
] ]
unidecode = [ unidecode = [
{file = "Unidecode-1.2.0-py2.py3-none-any.whl", hash = "sha256:12435ef2fc4cdfd9cf1035a1db7e98b6b047fe591892e81f34e94959591fad00"}, {file = "Unidecode-1.2.0-py2.py3-none-any.whl", hash = "sha256:12435ef2fc4cdfd9cf1035a1db7e98b6b047fe591892e81f34e94959591fad00"},

View file

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "onionshare_cli" name = "onionshare_cli"
version = "2.3.1" version = "2.3.2"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service." description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
authors = ["Micah Lee <micah@micahflee.com>"] authors = ["Micah Lee <micah@micahflee.com>"]
license = "GPLv3+" license = "GPLv3+"
@ -30,6 +30,7 @@ urllib3 = "*"
eventlet = "*" eventlet = "*"
setuptools = "*" setuptools = "*"
pynacl = "^1.4.0" pynacl = "^1.4.0"
colorama = "^0.4.4"
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
pytest = "*" pytest = "*"

View file

@ -20,12 +20,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import setuptools import setuptools
version = "2.3.1" version = "2.3.2"
setuptools.setup( setuptools.setup(
name="onionshare-cli", name="onionshare-cli",
version=version, version=version,
description="OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service.", description=(
"OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, "
"making it accessible as a Tor onion service, and generating an unguessable web address so others can "
"download files from you, or upload files to you. It does _not_ require setting up a separate server or "
"using a third party file-sharing service."
),
author="Micah Lee", author="Micah Lee",
author_email="micah@micahflee.com", author_email="micah@micahflee.com",
maintainer="Micah Lee", maintainer="Micah Lee",

View file

@ -1,11 +1,4 @@
import sys import sys
# Force tests to look for resources in the source code tree
sys.onionshare_dev_mode = True
# Let OnionShare know the tests are running, to avoid colliding with settings files
sys.onionshare_test_mode = True
import os import os
import shutil import shutil
import tempfile import tempfile
@ -14,6 +7,11 @@ import pytest
from onionshare_cli import common, web from onionshare_cli import common, web
# Force tests to look for resources in the source code tree
sys.onionshare_dev_mode = True
# Let OnionShare know the tests are running, to avoid colliding with settings files
sys.onionshare_test_mode = True
# The temporary directory for CLI tests # The temporary directory for CLI tests
test_temp_dir = None test_temp_dir = None
@ -56,8 +54,7 @@ def temp_dir_1024(temp_dir):
return new_temp_dir return new_temp_dir
# pytest > 2.9 only needs @pytest.fixture @pytest.fixture
@pytest.yield_fixture
def temp_dir_1024_delete(temp_dir): def temp_dir_1024_delete(temp_dir):
"""Create a temporary directory that has a single file of a """Create a temporary directory that has a single file of a
particular size (1024 bytes). The temporary directory (including particular size (1024 bytes). The temporary directory (including
@ -80,8 +77,7 @@ def temp_file_1024(temp_dir):
return tmp_file.name return tmp_file.name
# pytest > 2.9 only needs @pytest.fixture @pytest.fixture
@pytest.yield_fixture
def temp_file_1024_delete(temp_dir): def temp_file_1024_delete(temp_dir):
""" """
Create a temporary file of a particular size (1024 bytes). Create a temporary file of a particular size (1024 bytes).
@ -95,8 +91,7 @@ def temp_file_1024_delete(temp_dir):
yield tmp_file.name yield tmp_file.name
# pytest > 2.9 only needs @pytest.fixture @pytest.fixture(scope="session")
@pytest.yield_fixture(scope="session")
def custom_zw(): def custom_zw():
zw = web.share_mode.ZipWriter( zw = web.share_mode.ZipWriter(
common.Common(), common.Common(),
@ -108,8 +103,7 @@ def custom_zw():
os.remove(zw.zip_filename) os.remove(zw.zip_filename)
# pytest > 2.9 only needs @pytest.fixture @pytest.fixture(scope="session")
@pytest.yield_fixture(scope="session")
def default_zw(): def default_zw():
zw = web.share_mode.ZipWriter(common.Common()) zw = web.share_mode.ZipWriter(common.Common())
yield zw yield zw
@ -117,7 +111,7 @@ def default_zw():
tmp_dir = os.path.dirname(zw.zip_filename) tmp_dir = os.path.dirname(zw.zip_filename)
try: try:
shutil.rmtree(tmp_dir, ignore_errors=True) shutil.rmtree(tmp_dir, ignore_errors=True)
except: except Exception:
pass pass
@ -189,10 +183,3 @@ def time_strftime(monkeypatch):
@pytest.fixture @pytest.fixture
def common_obj(): def common_obj():
return common.Common() return common.Common()
@pytest.fixture
def settings_obj(sys_onionshare_dev_mode, platform_linux):
_common = common.Common()
_common.version = "DUMMY_VERSION_1.2.3"
return settings.Settings(_common)

View file

@ -36,7 +36,6 @@ class TestOnionShare:
def test_init(self, onionshare_obj): def test_init(self, onionshare_obj):
assert onionshare_obj.hidserv_dir is None assert onionshare_obj.hidserv_dir is None
assert onionshare_obj.onion_host is None assert onionshare_obj.onion_host is None
assert onionshare_obj.cleanup_filenames == []
assert onionshare_obj.local_only is False assert onionshare_obj.local_only is False
def test_start_onion_service(self, onionshare_obj, mode_settings_obj): def test_start_onion_service(self, onionshare_obj, mode_settings_obj):
@ -48,11 +47,3 @@ class TestOnionShare:
onionshare_obj.local_only = True onionshare_obj.local_only = True
onionshare_obj.start_onion_service("share", mode_settings_obj) onionshare_obj.start_onion_service("share", mode_settings_obj)
assert onionshare_obj.onion_host == "127.0.0.1:{}".format(onionshare_obj.port) assert onionshare_obj.onion_host == "127.0.0.1:{}".format(onionshare_obj.port)
def test_cleanup(self, onionshare_obj, temp_dir_1024, temp_file_1024):
onionshare_obj.cleanup_filenames = [temp_dir_1024, temp_file_1024]
onionshare_obj.cleanup()
assert os.path.exists(temp_dir_1024) is False
assert os.path.exists(temp_dir_1024) is False
assert onionshare_obj.cleanup_filenames == []

View file

@ -191,7 +191,9 @@ class TestGetTorPaths:
@pytest.mark.skipif(sys.platform != "win32", reason="requires Windows") @pytest.mark.skipif(sys.platform != "win32", reason="requires Windows")
def test_get_tor_paths_windows(self, platform_windows, common_obj, sys_frozen): def test_get_tor_paths_windows(self, platform_windows, common_obj, sys_frozen):
base_path = os.path.join( base_path = os.path.join(
os.path.dirname(os.path.dirname(common_obj.get_resource_path(""))), "tor" os.path.dirname(os.path.dirname(common_obj.get_resource_path(""))),
"resources",
"tor",
) )
tor_path = os.path.join(os.path.join(base_path, "Tor"), "tor.exe") tor_path = os.path.join(os.path.join(base_path, "Tor"), "tor.exe")
obfs4proxy_file_path = os.path.join( obfs4proxy_file_path = os.path.join(

View file

@ -7,6 +7,8 @@ import time
import zipfile import zipfile
import tempfile import tempfile
import base64 import base64
import shutil
import sys
from io import BytesIO from io import BytesIO
import pytest import pytest
@ -49,6 +51,7 @@ def web_obj(temp_dir, common_obj, mode, num_files=0):
web.generate_password() web.generate_password()
web.running = True web.running = True
web.cleanup_filenames == []
web.app.testing = True web.app.testing = True
# Share mode # Share mode
@ -100,7 +103,7 @@ class TestWeb:
web = web_obj(temp_dir, common_obj, "share", 3) web = web_obj(temp_dir, common_obj, "share", 3)
web.settings.set("share", "autostop_sharing", True) web.settings.set("share", "autostop_sharing", True)
assert web.running == True assert web.running is True
with web.app.test_client() as c: with web.app.test_client() as c:
# Download the first time # Download the first time
@ -112,7 +115,7 @@ class TestWeb:
or res.mimetype == "application/x-zip-compressed" or res.mimetype == "application/x-zip-compressed"
) )
assert web.running == False assert web.running is False
def test_share_mode_autostop_sharing_off( def test_share_mode_autostop_sharing_off(
self, temp_dir, common_obj, temp_file_1024 self, temp_dir, common_obj, temp_file_1024
@ -120,7 +123,7 @@ class TestWeb:
web = web_obj(temp_dir, common_obj, "share", 3) web = web_obj(temp_dir, common_obj, "share", 3)
web.settings.set("share", "autostop_sharing", False) web.settings.set("share", "autostop_sharing", False)
assert web.running == True assert web.running is True
with web.app.test_client() as c: with web.app.test_client() as c:
# Download the first time # Download the first time
@ -131,7 +134,7 @@ class TestWeb:
res.mimetype == "application/zip" res.mimetype == "application/zip"
or res.mimetype == "application/x-zip-compressed" or res.mimetype == "application/x-zip-compressed"
) )
assert web.running == True assert web.running is True
def test_receive_mode(self, temp_dir, common_obj): def test_receive_mode(self, temp_dir, common_obj):
web = web_obj(temp_dir, common_obj, "receive") web = web_obj(temp_dir, common_obj, "receive")
@ -183,7 +186,135 @@ class TestWeb:
assert res.status_code == 200 assert res.status_code == 200
assert webhook_url == "http://127.0.0.1:1337/example" assert webhook_url == "http://127.0.0.1:1337/example"
assert webhook_data == "1 file uploaded to OnionShare" assert webhook_data == "1 file submitted to OnionShare"
def test_receive_mode_message_no_files(self, temp_dir, common_obj):
web = web_obj(temp_dir, common_obj, "receive")
data_dir = os.path.join(temp_dir, "OnionShare")
os.makedirs(data_dir, exist_ok=True)
web.settings.set("receive", "data_dir", data_dir)
with web.app.test_client() as c:
res = c.post(
"/upload-ajax",
buffered=True,
content_type="multipart/form-data",
data={"text": "you know just sending an anonymous message"},
headers=self._make_auth_headers(web.password),
)
content = res.get_data()
assert res.status_code == 200
assert b"Message submitted" in content
# ~/OnionShare should have a folder for the date
filenames = os.listdir(data_dir)
assert len(filenames) == 1
data_dir_date = os.path.join(data_dir, filenames[0])
# The date folder should have a single message txt file, no folders
filenames = os.listdir(data_dir_date)
assert len(filenames) == 1
assert filenames[0].endswith("-message.txt")
shutil.rmtree(data_dir)
def test_receive_mode_message_and_files(self, temp_dir, common_obj):
web = web_obj(temp_dir, common_obj, "receive")
data_dir = os.path.join(temp_dir, "OnionShare")
os.makedirs(data_dir, exist_ok=True)
web.settings.set("receive", "data_dir", data_dir)
with web.app.test_client() as c:
res = c.post(
"/upload-ajax",
buffered=True,
content_type="multipart/form-data",
data={
"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg"),
"text": "you know just sending an anonymous message",
},
headers=self._make_auth_headers(web.password),
)
content = res.get_data()
assert res.status_code == 200
assert b"Message submitted, uploaded new_york.jpg" in content
# Date folder should have a time folder with new_york.jpg, and a text message file
data_dir_date = os.path.join(data_dir, os.listdir(data_dir)[0])
filenames = os.listdir(data_dir_date)
assert len(filenames) == 2
time_str = filenames[0][0:6]
assert time_str in filenames
assert f"{time_str}-message.txt" in filenames
data_dir_time = os.path.join(data_dir_date, time_str)
assert os.path.isdir(data_dir_time)
assert os.path.exists(os.path.join(data_dir_time, "new_york.jpg"))
shutil.rmtree(data_dir)
def test_receive_mode_files_no_message(self, temp_dir, common_obj):
web = web_obj(temp_dir, common_obj, "receive")
data_dir = os.path.join(temp_dir, "OnionShare")
os.makedirs(data_dir, exist_ok=True)
web.settings.set("receive", "data_dir", data_dir)
with web.app.test_client() as c:
res = c.post(
"/upload-ajax",
buffered=True,
content_type="multipart/form-data",
data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")},
headers=self._make_auth_headers(web.password),
)
content = res.get_data()
assert res.status_code == 200
assert b"Uploaded new_york.jpg" in content
# Date folder should have just a time folder with new_york.jpg
data_dir_date = os.path.join(data_dir, os.listdir(data_dir)[0])
filenames = os.listdir(data_dir_date)
assert len(filenames) == 1
time_str = filenames[0][0:6]
assert time_str in filenames
assert f"{time_str}-message.txt" not in filenames
data_dir_time = os.path.join(data_dir_date, time_str)
assert os.path.isdir(data_dir_time)
assert os.path.exists(os.path.join(data_dir_time, "new_york.jpg"))
shutil.rmtree(data_dir)
def test_receive_mode_no_message_no_files(self, temp_dir, common_obj):
web = web_obj(temp_dir, common_obj, "receive")
data_dir = os.path.join(temp_dir, "OnionShare")
os.makedirs(data_dir, exist_ok=True)
web.settings.set("receive", "data_dir", data_dir)
with web.app.test_client() as c:
res = c.post(
"/upload-ajax",
buffered=True,
content_type="multipart/form-data",
data={},
headers=self._make_auth_headers(web.password),
)
content = res.get_data()
assert res.status_code == 200
assert b"Nothing submitted" in content
# Date folder should be empty
data_dir_date = os.path.join(data_dir, os.listdir(data_dir)[0])
filenames = os.listdir(data_dir_date)
assert len(filenames) == 0
shutil.rmtree(data_dir)
def test_public_mode_on(self, temp_dir, common_obj): def test_public_mode_on(self, temp_dir, common_obj):
web = web_obj(temp_dir, common_obj, "receive") web = web_obj(temp_dir, common_obj, "receive")
@ -192,7 +323,7 @@ class TestWeb:
with web.app.test_client() as c: with web.app.test_client() as c:
# Loading / should work without auth # Loading / should work without auth
res = c.get("/") res = c.get("/")
data1 = 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): def test_public_mode_off(self, temp_dir, common_obj):
@ -215,6 +346,16 @@ class TestWeb:
res.get_data() res.get_data()
assert res.status_code == 200 assert res.status_code == 200
def test_cleanup(self, common_obj, temp_dir_1024, temp_file_1024):
web = web_obj(temp_dir_1024, common_obj, "share", 3)
web.cleanup_filenames = [temp_dir_1024, temp_file_1024]
web.cleanup()
assert os.path.exists(temp_file_1024) is False
assert os.path.exists(temp_dir_1024) is False
assert web.cleanup_filenames == []
def _make_auth_headers(self, password): def _make_auth_headers(self, password):
auth = base64.b64encode(b"onionshare:" + password.encode()).decode() auth = base64.b64encode(b"onionshare:" + password.encode()).decode()
h = Headers() h = Headers()
@ -486,6 +627,7 @@ class TestRangeRequests:
h.add("Authorization", "Basic " + auth) h.add("Authorization", "Basic " + auth)
return h return h
@pytest.mark.skipif(sys.platform != "Linux", reason="requires Linux")
@check_unsupported("curl", ["--version"]) @check_unsupported("curl", ["--version"])
def test_curl(self, temp_dir, tmpdir, common_obj): def test_curl(self, temp_dir, tmpdir, common_obj):
web = web_obj(temp_dir, common_obj, "share", 3) web = web_obj(temp_dir, common_obj, "share", 3)
@ -510,6 +652,7 @@ class TestRangeRequests:
] ]
) )
@pytest.mark.skipif(sys.platform != "Linux", reason="requires Linux")
@check_unsupported("wget", ["--version"]) @check_unsupported("wget", ["--version"])
def test_wget(self, temp_dir, tmpdir, common_obj): def test_wget(self, temp_dir, tmpdir, common_obj):
web = web_obj(temp_dir, common_obj, "share", 3) web = web_obj(temp_dir, common_obj, "share", 3)
@ -533,6 +676,7 @@ class TestRangeRequests:
] ]
) )
@pytest.mark.skipif(sys.platform != "Linux", reason="requires Linux")
@check_unsupported("http", ["--version"]) @check_unsupported("http", ["--version"])
def test_httpie(self, temp_dir, common_obj): def test_httpie(self, temp_dir, common_obj):
web = web_obj(temp_dir, common_obj, "share", 3) web = web_obj(temp_dir, common_obj, "share", 3)

View file

@ -1,7 +1,4 @@
import pytest import pytest
import subprocess
from tempfile import NamedTemporaryFile
from werkzeug.exceptions import RequestedRangeNotSatisfiable from werkzeug.exceptions import RequestedRangeNotSatisfiable
from onionshare_cli.web.share_mode import parse_range_header from onionshare_cli.web.share_mode import parse_range_header
@ -9,24 +6,24 @@ from onionshare_cli.web.share_mode import parse_range_header
VALID_RANGES = [ VALID_RANGES = [
(None, 500, [(0, 499)]), (None, 500, [(0, 499)]),
('bytes=0', 500, [(0, 499)]), ("bytes=0", 500, [(0, 499)]),
('bytes=100', 500, [(100, 499)]), ("bytes=100", 500, [(100, 499)]),
('bytes=100-', 500, [(100, 499)]), # not in the RFC, but how curl sends ("bytes=100-", 500, [(100, 499)]), # not in the RFC, but how curl sends
('bytes=0-99', 500, [(0, 99)]), ("bytes=0-99", 500, [(0, 99)]),
('bytes=0-599', 500, [(0, 499)]), ("bytes=0-599", 500, [(0, 499)]),
('bytes=0-0', 500, [(0, 0)]), ("bytes=0-0", 500, [(0, 0)]),
('bytes=-100', 500, [(400, 499)]), ("bytes=-100", 500, [(400, 499)]),
('bytes=0-99,100-199', 500, [(0, 199)]), ("bytes=0-99,100-199", 500, [(0, 199)]),
('bytes=0-100,100-199', 500, [(0, 199)]), ("bytes=0-100,100-199", 500, [(0, 199)]),
('bytes=0-99,101-199', 500, [(0, 99), (101, 199)]), ("bytes=0-99,101-199", 500, [(0, 99), (101, 199)]),
('bytes=0-199,100-299', 500, [(0, 299)]), ("bytes=0-199,100-299", 500, [(0, 299)]),
('bytes=0-99,200-299', 500, [(0, 99), (200, 299)]), ("bytes=0-99,200-299", 500, [(0, 99), (200, 299)]),
] ]
INVALID_RANGES = [ INVALID_RANGES = [
'bytes=200-100', "bytes=200-100",
'bytes=0-100,300-200', "bytes=0-100,300-200",
] ]

View file

@ -211,7 +211,7 @@ def main():
] ]
print(f"○ Created unsigned installer: {msi_filename}") print(f"○ Created unsigned installer: {msi_filename}")
print(f"○ Signing installer") print("○ Signing installer")
run( run(
[ [
"signtool.exe", "signtool.exe",

View file

@ -1,7 +1,7 @@
[tool.briefcase] [tool.briefcase]
project_name = "OnionShare" project_name = "OnionShare"
bundle = "org.onionshare" bundle = "org.onionshare"
version = "2.3.1" version = "2.3.2.dev1"
url = "https://onionshare.org" url = "https://onionshare.org"
license = "GPLv3" license = "GPLv3"
author = 'Micah Lee' author = 'Micah Lee'
@ -13,7 +13,7 @@ description = "Securely and anonymously share files, host websites, and chat wit
icon = "src/onionshare/resources/onionshare" icon = "src/onionshare/resources/onionshare"
sources = ['src/onionshare'] sources = ['src/onionshare']
requires = [ requires = [
"./onionshare_cli-2.3.1-py3-none-any.whl", "./onionshare_cli-2.3.2-py3-none-any.whl",
"pyside2==5.15.1", "pyside2==5.15.1",
"qrcode" "qrcode"
] ]

View file

@ -24,7 +24,6 @@ This script downloads a pre-built tor binary to bundle with OnionShare.
In order to avoid a Mac gnupg dependency, I manually verify the signature In order to avoid a Mac gnupg dependency, I manually verify the signature
and hard-code the sha256 hash. and hard-code the sha256 hash.
""" """
import inspect import inspect
import os import os
import sys import sys
@ -35,10 +34,10 @@ import requests
def main(): def main():
dmg_url = "https://archive.torproject.org/tor-package-archive/torbrowser/10.0.10/TorBrowser-10.0.10-osx64_en-US.dmg" dmg_url = "https://archive.torproject.org/tor-package-archive/torbrowser/10.0.16/TorBrowser-10.0.16-osx64_en-US.dmg"
dmg_filename = "TorBrowser-10.0.10-osx64_en-US.dmg" dmg_filename = "TorBrowser-10.0.16-osx64_en-US.dmg"
expected_dmg_sha256 = ( expected_dmg_sha256 = (
"7ed73e94ccdfab76b8d96ddbac7828d3a7c77dd73b54c34e55666f3b6274d12a" "95bf37d642bd05e9ae4337c5ab9706990bbd98cc885e25ee8ae81b07c7653f0a"
) )
# Build paths # Build paths

View file

@ -23,7 +23,6 @@ This script downloads a pre-built tor binary to bundle with OnionShare.
In order to avoid a Windows gnupg dependency, I manually verify the signature In order to avoid a Windows gnupg dependency, I manually verify the signature
and hard-code the sha256 hash. and hard-code the sha256 hash.
""" """
import inspect import inspect
import os import os
import sys import sys
@ -34,10 +33,10 @@ import requests
def main(): def main():
exe_url = "https://archive.torproject.org/tor-package-archive/torbrowser/10.0.10/torbrowser-install-10.0.10_en-US.exe" exe_url = "https://archive.torproject.org/tor-package-archive/torbrowser/10.0.16/torbrowser-install-10.0.16_en-US.exe"
exe_filename = "torbrowser-install-10.0.10_en-US.exe" exe_filename = "torbrowser-install-10.0.16_en-US.exe"
expected_exe_sha256 = ( expected_exe_sha256 = (
"6cbd14a7232e4ae7f2718d9b7f377e1a7bb96506da21f1ac6f689a22fc5e53fe" "1f93d756b4aee1b2df7d85c8d58b626b0d38d89c974c0a02f324ff51f5b23ee1"
) )
# Build paths # Build paths
root_path = os.path.dirname( root_path = os.path.dirname(
@ -75,7 +74,7 @@ def main():
"e", "e",
"-y", "-y",
exe_path, exe_path,
"Browser\TorBrowser\Tor", "Browser\\TorBrowser\\Tor",
"-o%s" % os.path.join(working_path, "Tor"), "-o%s" % os.path.join(working_path, "Tor"),
] ]
).wait() ).wait()
@ -85,7 +84,7 @@ def main():
"e", "e",
"-y", "-y",
exe_path, exe_path,
"Browser\TorBrowser\Data\Tor\geoip*", "Browser\\TorBrowser\\Data\\Tor\\geoip*",
"-o%s" % os.path.join(working_path, "Data"), "-o%s" % os.path.join(working_path, "Data"),
] ]
).wait() ).wait()

View file

@ -21,7 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
from __future__ import division from __future__ import division
import os import os
import sys import sys
import platform
import argparse import argparse
import signal import signal
import json import json

View file

@ -353,6 +353,10 @@ class GuiCommon:
color: #666666; color: #666666;
font-size: 11px; font-size: 11px;
}""", }""",
"receive_message_button": """
QPushButton {
padding: 5px 10px;
}""",
# Settings dialog # Settings dialog
"settings_version": """ "settings_version": """
QLabel { QLabel {

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

@ -276,7 +276,7 @@
"gui_receive_flatpak_data_dir": "যেহেতু অনিওনশেয়ার ফ্ল্যাটপ্যাক দিয়ে ইন্সটল করেছো, তাই তোমাকে ~/OnionShare এ ফাইল সংরক্ষণ করতে হবে।", "gui_receive_flatpak_data_dir": "যেহেতু অনিওনশেয়ার ফ্ল্যাটপ্যাক দিয়ে ইন্সটল করেছো, তাই তোমাকে ~/OnionShare এ ফাইল সংরক্ষণ করতে হবে।",
"gui_rendezvous_cleanup": "তোমার ফাইলগুলি সফলভাবে স্থানান্তরিত হয়েছে তা নিশ্চিত হয়ে টর সার্কিট বন্ধের অপেক্ষা করা হচ্ছে।\n\nএটি কয়েক মিনিট সময় নিতে পারে।", "gui_rendezvous_cleanup": "তোমার ফাইলগুলি সফলভাবে স্থানান্তরিত হয়েছে তা নিশ্চিত হয়ে টর সার্কিট বন্ধের অপেক্ষা করা হচ্ছে।\n\nএটি কয়েক মিনিট সময় নিতে পারে।",
"gui_open_folder_error": "xdg-open দিয়ে ফোল্ডার খুলতে ব্যর্থ হয়েছে। ফাইলটি এখানে: {}", "gui_open_folder_error": "xdg-open দিয়ে ফোল্ডার খুলতে ব্যর্থ হয়েছে। ফাইলটি এখানে: {}",
"gui_chat_url_description": "এই পেঁয়াজশেয়ার ঠিকানা দিয়ে <b>যে কেউ</b> <b>টর ব্রাউজার</b>: <img src='{}' /> ব্যবহার করে এই <b>চ্যাট রুমটিতে যোগ দিতে পারে</b>", "gui_chat_url_description": "এই অনিওনশেয়ার ঠিকানা দিয়ে <b>যে কেউ</b> <b>টর ব্রাউজার</b>: <img src='{}' /> ব্যবহার করে এই <b>চ্যাট রুমটিতে যোগ দিতে পারে</b>",
"error_port_not_available": "অনিয়নশায়ার পোর্ট নেই", "error_port_not_available": "অনিয়নশায়ার পোর্ট নেই",
"gui_rendezvous_cleanup_quit_early": "তাড়াতাড়ি বন্ধ করো", "gui_rendezvous_cleanup_quit_early": "তাড়াতাড়ি বন্ধ করো",
"gui_main_page_chat_button": "চ্যাটিং শুরু করো", "gui_main_page_chat_button": "চ্যাটিং শুরু করো",

View file

@ -175,6 +175,8 @@
"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",
"mode_settings_receive_disable_text_checkbox": "Disable submitting text",
"mode_settings_receive_disable_files_checkbox": "Disable uploading files",
"mode_settings_receive_webhook_url_checkbox": "Use notification webhook", "mode_settings_receive_webhook_url_checkbox": "Use notification webhook",
"mode_settings_website_disable_csp_checkbox": "Don't send Content Security Policy header (allows your website to use third-party resources)", "mode_settings_website_disable_csp_checkbox": "Don't send Content Security Policy header (allows your website to use third-party resources)",
"gui_all_modes_transfer_finished_range": "Transferred {} - {}", "gui_all_modes_transfer_finished_range": "Transferred {} - {}",
@ -193,5 +195,7 @@
"settings_error_bundled_tor_broken": "OnionShare could not connect to Tor:\n{}", "settings_error_bundled_tor_broken": "OnionShare could not connect to Tor:\n{}",
"gui_rendezvous_cleanup": "Waiting for Tor circuits to close to be sure your files have successfully transferred.\n\nThis might take a few minutes.", "gui_rendezvous_cleanup": "Waiting for Tor circuits to close to be sure your files have successfully transferred.\n\nThis might take a few minutes.",
"gui_rendezvous_cleanup_quit_early": "Quit Early", "gui_rendezvous_cleanup_quit_early": "Quit Early",
"error_port_not_available": "OnionShare port not available" "error_port_not_available": "OnionShare port not available",
"history_receive_read_message_button": "Read Message",
"error_tor_protocol_error": "There was an error with Tor: {}"
} }

View file

@ -10,7 +10,7 @@
"not_a_readable_file": "{0:s} bukan berkas yang bisa dibaca.", "not_a_readable_file": "{0:s} bukan berkas yang bisa dibaca.",
"no_available_port": "Tidak dapat menemukan porta yang tersedia untuk memulai layanan onion", "no_available_port": "Tidak dapat menemukan porta yang tersedia untuk memulai layanan onion",
"other_page_loaded": "Alamat dimuat", "other_page_loaded": "Alamat dimuat",
"close_on_autostop_timer": "", "close_on_autostop_timer": "Berhenti karena timer berhenti otomatis habis",
"closing_automatically": "Terhenti karena transfer telah tuntas", "closing_automatically": "Terhenti karena transfer telah tuntas",
"timeout_download_still_running": "", "timeout_download_still_running": "",
"large_filesize": "Peringatan: Mengirim dalam jumlah besar dapat memakan waktu berjam-jam", "large_filesize": "Peringatan: Mengirim dalam jumlah besar dapat memakan waktu berjam-jam",
@ -31,7 +31,7 @@
"help_verbose": "Catat kesalahan OnionShare ke stdout, dan kesalahan web ke disk", "help_verbose": "Catat kesalahan OnionShare ke stdout, dan kesalahan web ke disk",
"help_filename": "Daftar berkas atau folder untuk dibagikan", "help_filename": "Daftar berkas atau folder untuk dibagikan",
"help_config": "", "help_config": "",
"gui_drag_and_drop": "Seret dan lepas berkas dan folder\nuntuk mulai berbagi", "gui_drag_and_drop": "Seret dan lepas berkas dan folder untuk mulai berbagi",
"gui_add": "Tambahkan", "gui_add": "Tambahkan",
"gui_delete": "Hapus", "gui_delete": "Hapus",
"gui_choose_items": "Pilih", "gui_choose_items": "Pilih",
@ -59,7 +59,7 @@
"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": "", "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.",
@ -75,10 +75,10 @@
"gui_settings_sharing_label": "Pengaturan berbagi", "gui_settings_sharing_label": "Pengaturan berbagi",
"gui_settings_close_after_first_download_option": "Berhenti berbagi setelah berkas telah terkirim", "gui_settings_close_after_first_download_option": "Berhenti berbagi setelah berkas telah terkirim",
"gui_settings_connection_type_label": "Bagaimana seharusnya OnionShare terhubung ke Tor?", "gui_settings_connection_type_label": "Bagaimana seharusnya OnionShare terhubung ke Tor?",
"gui_settings_connection_type_bundled_option": "", "gui_settings_connection_type_bundled_option": "Gunakan versi Tor yang terintegrasi dengan OnionShare",
"gui_settings_connection_type_automatic_option": "Mencoba konfigurasi otomatis dengan Tor Browser", "gui_settings_connection_type_automatic_option": "Mencoba konfigurasi otomatis dengan Tor Browser",
"gui_settings_connection_type_control_port_option": "Menghubungkan menggunakan porta kontrol", "gui_settings_connection_type_control_port_option": "Menghubungkan menggunakan porta kontrol",
"gui_settings_connection_type_socket_file_option": "", "gui_settings_connection_type_socket_file_option": "Hubungkan menggunakan file socket",
"gui_settings_connection_type_test_button": "Menguji sambungan ke Tor", "gui_settings_connection_type_test_button": "Menguji sambungan ke Tor",
"gui_settings_control_port_label": "Port kontrol", "gui_settings_control_port_label": "Port kontrol",
"gui_settings_socket_file_label": "Berkas soket", "gui_settings_socket_file_label": "Berkas soket",
@ -87,49 +87,49 @@
"gui_settings_authenticate_no_auth_option": "Tidak ada otentikasi, atau otentikasi kuki", "gui_settings_authenticate_no_auth_option": "Tidak ada otentikasi, atau otentikasi kuki",
"gui_settings_authenticate_password_option": "Sandi", "gui_settings_authenticate_password_option": "Sandi",
"gui_settings_password_label": "Sandi", "gui_settings_password_label": "Sandi",
"gui_settings_tor_bridges": "", "gui_settings_tor_bridges": "Dukungan Tor bridge",
"gui_settings_tor_bridges_no_bridges_radio_option": "", "gui_settings_tor_bridges_no_bridges_radio_option": "Jangan gunakan bridges",
"gui_settings_tor_bridges_obfs4_radio_option": "", "gui_settings_tor_bridges_obfs4_radio_option": "Gunakan obfs4 pluggable transports bawaan",
"gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "", "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Gunakan obfs4 pluggable transports bawaan (memerlukan obfs4proxy)",
"gui_settings_tor_bridges_meek_lite_azure_radio_option": "", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Gunakan meek_lite (Azure) pluggable transports bawaan",
"gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "", "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Gunakan meek_lite (Azure) pluggable transports bawaan (memerlukan obfs4proxy)",
"gui_settings_meek_lite_expensive_warning": "", "gui_settings_meek_lite_expensive_warning": "Peringatan: meek_lite sangat mahal untuk dijalankan oleh Tor Project. <br><br>Gunakan hanya jika tidak dapat terhubung ke Tor secara langsung, melalui obfs4 transports,, atau bridge normal lainnya.",
"gui_settings_tor_bridges_custom_radio_option": "", "gui_settings_tor_bridges_custom_radio_option": "Gunakan bridge kustom",
"gui_settings_tor_bridges_custom_label": "", "gui_settings_tor_bridges_custom_label": "Anda bisa mendapatkan bridge dari <a href=\"https://bridges.torproject.org/options\"> https://bridges.torproject.org </a>",
"gui_settings_tor_bridges_invalid": "", "gui_settings_tor_bridges_invalid": "Tak satu pun dari bridge yang Anda tambahkan bekerja.\nPeriksa kembali atau tambahkan yang lain.",
"gui_settings_button_save": "Simpan", "gui_settings_button_save": "Simpan",
"gui_settings_button_cancel": "Batal", "gui_settings_button_cancel": "Batal",
"gui_settings_button_help": "", "gui_settings_button_help": "Bantuan",
"gui_settings_autostop_timer_checkbox": "", "gui_settings_autostop_timer_checkbox": "",
"gui_settings_autostop_timer": "", "gui_settings_autostop_timer": "",
"settings_error_unknown": "", "settings_error_unknown": "Tidak dapat tersambung ke pengontrol Tor karena pengaturan Anda tidak masuk akal.",
"settings_error_automatic": "", "settings_error_automatic": "Tidak dapat terhubung ke pengontrol Tor. Apakah Tor Browser (unduh di torproject.org) berjalan di latar belakang?",
"settings_error_socket_port": "", "settings_error_socket_port": "Tidak dapat tersambung ke pengontrol Tor di {}:{}.",
"settings_error_socket_file": "", "settings_error_socket_file": "Tidak dapat tersambung ke pengontrol Tor menggunakan file soket {}.",
"settings_error_auth": "", "settings_error_auth": "Tersambung ke {}:{}, tetapi tidak bisa mengautentikasi. Mungkin ini bukan pengontrol Tor?",
"settings_error_missing_password": "", "settings_error_missing_password": "Terhubung ke pengontrol Tor, tetapi memerlukan kata sandi untuk mengotentikasi.",
"settings_error_unreadable_cookie_file": "", "settings_error_unreadable_cookie_file": "Terhubung ke pengontrol Tor, tetapi kata sandi mungkin salah, atau pengguna Anda tidak diizinkan untuk membaca file kuki.",
"settings_error_bundled_tor_not_supported": "", "settings_error_bundled_tor_not_supported": "",
"settings_error_bundled_tor_timeout": "", "settings_error_bundled_tor_timeout": "",
"settings_error_bundled_tor_broken": "", "settings_error_bundled_tor_broken": "",
"settings_test_success": "", "settings_test_success": "Terhubung ke pengontrol Tor.\n\nVersi tor: {}\nMendukung layanan ephemeral onion: {}.\nMendukung otentikasi klien: {}.\nMendukung alamat .onion generasi berikutnya: {}.",
"error_tor_protocol_error": "", "error_tor_protocol_error": "",
"error_tor_protocol_error_unknown": "", "error_tor_protocol_error_unknown": "",
"error_invalid_private_key": "", "error_invalid_private_key": "",
"connecting_to_tor": "", "connecting_to_tor": "Menghubungkan ke jaringan Tor",
"update_available": "", "update_available": "OnionShare Baru tersedia. <a href='{}'>klik di sini</a> untuk mendapatkannya. <br><br>Anda menggunakan {} dan yang terbaru adalah {}.",
"update_error_check_error": "", "update_error_check_error": "Tidak dapat memeriksa versi baru: Mungkin Anda tidak terhubung ke Tor, atau situs web OnionShare sedang down?",
"update_error_invalid_latest_version": "", "update_error_invalid_latest_version": "Tidak dapat memeriksa versi baru: Situs web OnionShare mengatakan bahwa versi terbaru adalah '{}' yang tidak dapat dikenali…",
"update_not_available": "", "update_not_available": "Anda menjalankan OnionShare terbaru.",
"gui_tor_connection_ask": "", "gui_tor_connection_ask": "Buka pengaturan untuk memilah koneksi ke Tor?",
"gui_tor_connection_ask_open_settings": "Ya", "gui_tor_connection_ask_open_settings": "Ya",
"gui_tor_connection_ask_quit": "Keluar", "gui_tor_connection_ask_quit": "Keluar",
"gui_tor_connection_error_settings": "", "gui_tor_connection_error_settings": "Coba ubah cara OnionShare terhubung ke jaringan Tor di pengaturan.",
"gui_tor_connection_canceled": "", "gui_tor_connection_canceled": "Tidak dapat terhubung ke Tor.\n\nPastikan Anda terhubung ke Internet, kemudian buka kembali OnionShare dan atur koneksinya ke Tor.",
"gui_tor_connection_lost": "", "gui_tor_connection_lost": "Terputus dari Tor.",
"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": "Bagikan via OnionShare",
"gui_use_legacy_v2_onions_checkbox": "", "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "", "gui_save_private_key_checkbox": "",
"gui_share_url_description": "", "gui_share_url_description": "",
@ -138,16 +138,16 @@
"gui_url_label_stay_open": "", "gui_url_label_stay_open": "",
"gui_url_label_onetime": "", "gui_url_label_onetime": "",
"gui_url_label_onetime_and_persistent": "", "gui_url_label_onetime_and_persistent": "",
"gui_status_indicator_share_stopped": "", "gui_status_indicator_share_stopped": "Siap untuk berbagi",
"gui_status_indicator_share_working": "", "gui_status_indicator_share_working": "Memulai…",
"gui_status_indicator_share_started": "", "gui_status_indicator_share_started": "Berbagi",
"gui_status_indicator_receive_stopped": "", "gui_status_indicator_receive_stopped": "Siap untuk menerima",
"gui_status_indicator_receive_working": "", "gui_status_indicator_receive_working": "Memulai…",
"gui_status_indicator_receive_started": "", "gui_status_indicator_receive_started": "Menerima",
"gui_file_info": "", "gui_file_info": "{} file, {}",
"gui_file_info_single": "", "gui_file_info_single": "{} file, {}",
"history_in_progress_tooltip": "", "history_in_progress_tooltip": "{} sedang berlangsung",
"history_completed_tooltip": "", "history_completed_tooltip": "{} selesai",
"info_in_progress_uploads_tooltip": "", "info_in_progress_uploads_tooltip": "",
"info_completed_uploads_tooltip": "", "info_completed_uploads_tooltip": "",
"error_cannot_create_downloads_dir": "", "error_cannot_create_downloads_dir": "",
@ -165,7 +165,7 @@
"gui_settings_public_mode_checkbox": "", "gui_settings_public_mode_checkbox": "",
"systray_close_server_title": "", "systray_close_server_title": "",
"systray_close_server_message": "", "systray_close_server_message": "",
"systray_page_loaded_title": "", "systray_page_loaded_title": "Halaman dimuat",
"systray_download_page_loaded_message": "", "systray_download_page_loaded_message": "",
"systray_upload_page_loaded_message": "", "systray_upload_page_loaded_message": "",
"gui_uploads": "", "gui_uploads": "",
@ -176,13 +176,85 @@
"gui_upload_finished": "", "gui_upload_finished": "",
"gui_download_in_progress": "", "gui_download_in_progress": "",
"gui_open_folder_error_nautilus": "", "gui_open_folder_error_nautilus": "",
"gui_settings_language_label": "", "gui_settings_language_label": "Bahasa",
"gui_settings_language_changed_notice": "", "gui_settings_language_changed_notice": "Mulai ulang OnionShare untuk menerapkan bahasa baru.",
"gui_add_files": "Tambahkan berkas", "gui_add_files": "Tambahkan berkas",
"gui_add_folder": "Tambahkan Folder", "gui_add_folder": "Tambahkan Folder",
"gui_settings_onion_label": "Pengaturan Onion", "gui_settings_onion_label": "Pengaturan Onion",
"incorrect_password": "Password salah", "incorrect_password": "Password salah",
"gui_waiting_to_start": "Dijadwalkan akan dimulai pada {}. Klik untuk membatalkan.", "gui_waiting_to_start": "Dijadwalkan akan dimulai pada {}. Klik untuk membatalkan.",
"gui_start_server_autostart_timer_tooltip": "Timer mulai otomatis berakhir pada {}", "gui_start_server_autostart_timer_tooltip": "Timer mulai otomatis berakhir pada {}",
"gui_stop_server_autostop_timer_tooltip": "Timer berhenti otomatis berakhir pada {}" "gui_stop_server_autostop_timer_tooltip": "Timer berhenti otomatis berakhir pada {}",
"gui_new_tab_chat_button": "Mengobrol secara Anonim",
"gui_new_tab_website_button": "Host sebuah situs web",
"gui_main_page_share_button": "Mulai Berbagi",
"gui_main_page_website_button": "Mulai Hosting",
"gui_main_page_receive_button": "Mulai Menerima",
"gui_close_tab_warning_cancel": "Batal",
"gui_close_tab_warning_title": "Anda yakin?",
"gui_tab_name_chat": "Obrolan",
"gui_tab_name_website": "Situs web",
"gui_tab_name_receive": "Menerima",
"gui_tab_name_share": "Berbagi",
"gui_main_page_chat_button": "Mulai Obrolan",
"gui_quit_warning_title": "Anda yakin?",
"gui_receive_flatpak_data_dir": "Karena Anda menginstal OnionShare menggunakan Flatpak, Anda harus menyimpan file ke folder di ~/OnionShare.",
"mode_settings_website_disable_csp_checkbox": "Jangan kirim header Kebijakan Keamanan Konten (memungkinkan situs web Anda menggunakan sumber daya pihak ketiga)",
"gui_open_folder_error": "Gagal membuka folder dengan xdg-open. File ada di sini: {}",
"gui_status_indicator_share_scheduled": "Dijadwalkan…",
"error_cannot_create_data_dir": "Tidak dapat membuat folder data OnionShare: {}",
"history_requests_tooltip": "{} permintaan web",
"gui_status_indicator_receive_scheduled": "Dijadwalkan…",
"systray_page_loaded_message": "Alamat OnionShare dimuat",
"gui_all_modes_transfer_canceled": "Dibatalkan {}",
"gui_all_modes_transfer_canceled_range": "Dibatalkan {} - {}",
"gui_all_modes_transfer_finished": "Ditransfer {}",
"gui_all_modes_transfer_finished_range": "Ditransfer {} - {}",
"mode_settings_receive_data_dir_browse_button": "Telusur",
"mode_settings_receive_data_dir_label": "Simpan file ke",
"mode_settings_share_autostop_sharing_checkbox": "Berhenti berbagi setelah file dikirim (hapus centang untuk memperbolehkan mengunduh file individual)",
"mode_settings_client_auth_checkbox": "Gunakan otorisasi klien",
"mode_settings_legacy_checkbox": "Gunakan alamat legacy (layanan onion v2, tidak disarankan)",
"mode_settings_autostop_timer_checkbox": "Hentikan layanan onion pada waktu yang dijadwalkan",
"mode_settings_autostart_timer_checkbox": "Mulai layanan onion pada waktu yang dijadwalkan",
"mode_settings_public_checkbox": "Jangan gunakan kata sandi",
"mode_settings_persistent_checkbox": "Simpan tab ini, dan secara otomatis membukanya saat saya membuka OnionShare",
"mode_settings_advanced_toggle_hide": "Sembunyikan pengaturan lanjut",
"mode_settings_advanced_toggle_show": "Tampilkan pengaturan lanjut",
"gui_quit_warning_cancel": "Batal",
"gui_new_tab_receive_button": "Terima File",
"gui_new_tab_share_button": "Bagikan file",
"gui_new_tab_tooltip": "Buka tab baru",
"gui_new_tab": "Tab Baru",
"seconds_first_letter": "d",
"minutes_first_letter": "m",
"hours_first_letter": "j",
"days_first_letter": "h",
"gui_receive_mode_autostop_timer_waiting": "Menunggu untuk menyelesaikan penerimaan",
"gui_receive_mode_no_files": "Belum Ada File yang Diterima",
"gui_website_mode_no_files": "Belum Ada Situs Web yang Dibagikan",
"gui_share_mode_autostop_timer_waiting": "Menunggu untuk menyelesaikan pengiriman",
"gui_share_mode_no_files": "Belum Ada File yang Dikirim",
"gui_all_modes_progress_eta": "{0:s}, ETA: {1:s}, %p%",
"gui_all_modes_progress_starting": "{0:s}, %p% (menghitung)",
"gui_all_modes_progress_complete": "%p%, {0:s} berlalu.",
"gui_all_modes_transfer_started": "Dimulai {}",
"gui_all_modes_clear_history": "Bersihkan Semua",
"gui_all_modes_history": "Riwayat",
"systray_receive_started_message": "Seseorang mengirim file kepada Anda",
"systray_receive_started_title": "Menerima Dimulai",
"systray_share_canceled_message": "Seseorang membatalkan menerima file Anda",
"systray_share_canceled_title": "Berbagi Dibatalkan",
"systray_share_completed_message": "Selesai mengirim file",
"systray_share_completed_title": "Berbagi Selesai",
"systray_share_started_message": "Mulai mengirim file ke seseorang",
"systray_share_started_title": "Berbagi dimulai",
"gui_color_mode_changed_notice": "Mulai ulang OnionShare agar mode warna baru diterapkan.",
"gui_qr_code_dialog_title": "Kode QR OnionShare",
"gui_show_url_qr_code": "Tampilkan kode QR",
"error_port_not_available": "Port OnionShare tidak tersedia",
"gui_chat_stop_server": "Hentikan server obrolan",
"gui_chat_start_server": "Mulai server obrolan",
"gui_file_selection_remove_all": "Hapus Semua",
"gui_remove": "Hapus"
} }

View file

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets, QtGui from PySide2 import QtCore, QtWidgets
from onionshare_cli.common import AutoStopTimer from onionshare_cli.common import AutoStopTimer
@ -387,10 +387,10 @@ class Mode(QtWidgets.QWidget):
if self.server_status.status != ServerStatus.STATUS_STOPPED: if self.server_status.status != ServerStatus.STATUS_STOPPED:
try: try:
self.web.stop(self.app.port) self.web.stop(self.app.port)
except: except Exception:
# Probably we had no port to begin with (Onion service didn't start) # Probably we had no port to begin with (Onion service didn't start)
pass pass
self.app.cleanup() self.web.cleanup()
self.stop_server_custom() self.stop_server_custom()
@ -455,12 +455,24 @@ class Mode(QtWidgets.QWidget):
""" """
pass pass
def handle_request_upload_includes_message(self, event):
"""
Handle REQUEST_UPLOAD_INCLUDES_MESSAGE event.
"""
pass
def handle_request_upload_file_renamed(self, event): def handle_request_upload_file_renamed(self, event):
""" """
Handle REQUEST_UPLOAD_FILE_RENAMED event. Handle REQUEST_UPLOAD_FILE_RENAMED event.
""" """
pass pass
def handle_request_upload_message(self, event):
"""
Handle REQUEST_UPLOAD_MESSAGE event.
"""
pass
def handle_request_upload_set_dir(self, event): def handle_request_upload_set_dir(self, event):
""" """
Handle REQUEST_UPLOAD_SET_DIR event. Handle REQUEST_UPLOAD_SET_DIR event.

View file

@ -18,14 +18,8 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import os
import random
import string
from PySide2 import QtCore, QtWidgets, QtGui from PySide2 import QtCore, QtWidgets, QtGui
from onionshare_cli.onion import *
from onionshare_cli.common import Common
from onionshare_cli.web import Web from onionshare_cli.web import Web
from .. import Mode from .. import Mode

View file

@ -253,7 +253,7 @@ class ReceiveHistoryItemFile(QtWidgets.QWidget):
try: try:
# If nautilus is available, open it # If nautilus is available, open it
subprocess.Popen(["xdg-open", self.dir]) subprocess.Popen(["xdg-open", self.dir])
except: except Exception:
Alert( Alert(
self.common, self.common,
strings._("gui_open_folder_error").format(abs_filename), strings._("gui_open_folder_error").format(abs_filename),
@ -268,6 +268,60 @@ class ReceiveHistoryItemFile(QtWidgets.QWidget):
subprocess.Popen(["explorer", f"/select,{abs_filename}"]) subprocess.Popen(["explorer", f"/select,{abs_filename}"])
class ReceiveHistoryItemMessage(QtWidgets.QWidget):
def __init__(
self,
common,
):
super(ReceiveHistoryItemMessage, self).__init__()
self.common = common
self.filename = None
# Read message button
message_pixmap = QtGui.QPixmap.fromImage(
QtGui.QImage(GuiCommon.get_resource_path("images/open_message.png"))
)
message_icon = QtGui.QIcon(message_pixmap)
self.message_button = QtWidgets.QPushButton(
strings._("history_receive_read_message_button")
)
self.message_button.setStyleSheet(self.common.gui.css["receive_message_button"])
self.message_button.clicked.connect(self.open_message)
self.message_button.setIcon(message_icon)
self.message_button.setIconSize(message_pixmap.rect().size())
# Layouts
layout = QtWidgets.QHBoxLayout()
layout.addWidget(self.message_button)
layout.addStretch()
self.setLayout(layout)
self.hide()
def set_filename(self, new_filename):
self.filename = new_filename
self.show()
def open_message(self):
"""
Open the message in the operating system's default text editor
"""
self.common.log("ReceiveHistoryItemMessage", "open_message", self.filename)
# Linux
if self.common.platform == "Linux" or self.common.platform == "BSD":
# If nautilus is available, open it
subprocess.Popen(["xdg-open", self.filename])
# macOS
elif self.common.platform == "Darwin":
subprocess.call(["open", self.filename])
# Windows
elif self.common.platform == "Windows":
subprocess.Popen(["notepad", self.filename])
class ReceiveHistoryItem(HistoryItem): class ReceiveHistoryItem(HistoryItem):
def __init__(self, common, id, content_length): def __init__(self, common, id, content_length):
super(ReceiveHistoryItem, self).__init__() super(ReceiveHistoryItem, self).__init__()
@ -277,6 +331,12 @@ class ReceiveHistoryItem(HistoryItem):
self.started = datetime.now() self.started = datetime.now()
self.status = HistoryItem.STATUS_STARTED self.status = HistoryItem.STATUS_STARTED
self.common.log(
"ReceiveHistoryItem",
"__init__",
f"id={self.id} content_length={self.content_length}",
)
# Label # Label
self.label = QtWidgets.QLabel( self.label = QtWidgets.QLabel(
strings._("gui_all_modes_transfer_started").format( strings._("gui_all_modes_transfer_started").format(
@ -295,6 +355,9 @@ class ReceiveHistoryItem(HistoryItem):
self.common.gui.css["downloads_uploads_progress_bar"] self.common.gui.css["downloads_uploads_progress_bar"]
) )
# The message widget, if a message was included
self.message = ReceiveHistoryItemMessage(self.common)
# This layout contains file widgets # This layout contains file widgets
self.files_layout = QtWidgets.QVBoxLayout() self.files_layout = QtWidgets.QVBoxLayout()
self.files_layout.setContentsMargins(0, 0, 0, 0) self.files_layout.setContentsMargins(0, 0, 0, 0)
@ -305,6 +368,7 @@ class ReceiveHistoryItem(HistoryItem):
# Layout # Layout
layout = QtWidgets.QVBoxLayout() layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.label) layout.addWidget(self.label)
layout.addWidget(self.message)
layout.addWidget(self.progress_bar) layout.addWidget(self.progress_bar)
layout.addWidget(files_widget) layout.addWidget(files_widget)
layout.addStretch() layout.addStretch()
@ -313,6 +377,9 @@ class ReceiveHistoryItem(HistoryItem):
# We're also making a dictionary of file widgets, to make them easier to access # We're also making a dictionary of file widgets, to make them easier to access
self.files = {} self.files = {}
def includes_message(self, message_filename):
self.message.set_filename(message_filename)
def update(self, data): def update(self, data):
""" """
Using the progress from Web, update the progress bar and file size labels Using the progress from Web, update the progress bar and file size labels
@ -560,6 +627,13 @@ class HistoryItemList(QtWidgets.QScrollArea):
if id in self.items: if id in self.items:
self.items[id].cancel() self.items[id].cancel()
def includes_message(self, id, message_filename):
"""
Show message button for receive mode
"""
if id in self.items:
self.items[id].includes_message(message_filename)
def reset(self): def reset(self):
""" """
Reset all items, emptying the list. Override this method. Reset all items, emptying the list. Override this method.
@ -653,7 +727,7 @@ class History(QtWidgets.QWidget):
""" """
Add a new item. Add a new item.
""" """
self.common.log("History", "add", f"id: {id}, item: {item}") self.common.log("History", "add", f"id: {id}")
# Hide empty, show not empty # Hide empty, show not empty
self.empty.hide() self.empty.hide()
@ -674,6 +748,12 @@ class History(QtWidgets.QWidget):
""" """
self.item_list.cancel(id) self.item_list.cancel(id)
def includes_message(self, id, message_filename):
"""
Show the message button
"""
self.item_list.includes_message(id, message_filename)
def reset(self): def reset(self):
""" """
Reset all items. Reset all items.

View file

@ -201,7 +201,7 @@ class ModeSettingsWidget(QtWidgets.QWidget):
self.tab.change_title.emit( self.tab.change_title.emit(
self.tab.tab_id, strings._("gui_tab_name_chat") self.tab.tab_id, strings._("gui_tab_name_chat")
) )
elif self.tab_mode == None: elif self.tab_mode is None:
pass pass
else: else:
title = self.title_lineedit.text() title = self.title_lineedit.text()

View file

@ -78,6 +78,25 @@ class ReceiveMode(Mode):
data_dir_layout.addWidget(data_dir_button) data_dir_layout.addWidget(data_dir_button)
self.mode_settings_widget.mode_specific_layout.addLayout(data_dir_layout) self.mode_settings_widget.mode_specific_layout.addLayout(data_dir_layout)
# Disable text or files
self.disable_text_checkbox = self.settings.get("receive", "disable_files")
self.disable_text_checkbox = QtWidgets.QCheckBox()
self.disable_text_checkbox.clicked.connect(self.disable_text_checkbox_clicked)
self.disable_text_checkbox.setText(
strings._("mode_settings_receive_disable_text_checkbox")
)
self.disable_files_checkbox = self.settings.get("receive", "disable_files")
self.disable_files_checkbox = QtWidgets.QCheckBox()
self.disable_files_checkbox.clicked.connect(self.disable_files_checkbox_clicked)
self.disable_files_checkbox.setText(
strings._("mode_settings_receive_disable_files_checkbox")
)
disable_layout = QtWidgets.QHBoxLayout()
disable_layout.addWidget(self.disable_text_checkbox)
disable_layout.addWidget(self.disable_files_checkbox)
disable_layout.addStretch()
self.mode_settings_widget.mode_specific_layout.addLayout(disable_layout)
# Webhook URL # Webhook URL
webhook_url = self.settings.get("receive", "webhook_url") webhook_url = self.settings.get("receive", "webhook_url")
self.webhook_url_checkbox = QtWidgets.QCheckBox() self.webhook_url_checkbox = QtWidgets.QCheckBox()
@ -217,6 +236,16 @@ class ReceiveMode(Mode):
self.data_dir_lineedit.setText(selected_dir) self.data_dir_lineedit.setText(selected_dir)
self.settings.set("receive", "data_dir", selected_dir) self.settings.set("receive", "data_dir", selected_dir)
def disable_text_checkbox_clicked(self):
self.settings.set(
"receive", "disable_text", self.disable_text_checkbox.isChecked()
)
def disable_files_checkbox_clicked(self):
self.settings.set(
"receive", "disable_files", self.disable_files_checkbox.isChecked()
)
def webhook_url_checkbox_clicked(self): def webhook_url_checkbox_clicked(self):
if self.webhook_url_checkbox.isChecked(): if self.webhook_url_checkbox.isChecked():
if self.settings.get("receive", "webhook_url"): if self.settings.get("receive", "webhook_url"):
@ -312,8 +341,11 @@ class ReceiveMode(Mode):
Handle REQUEST_STARTED event. Handle REQUEST_STARTED event.
""" """
item = ReceiveHistoryItem( item = ReceiveHistoryItem(
self.common, event["data"]["id"], event["data"]["content_length"] self.common,
event["data"]["id"],
event["data"]["content_length"],
) )
self.history.add(event["data"]["id"], item) self.history.add(event["data"]["id"], item)
self.toggle_history.update_indicator(True) self.toggle_history.update_indicator(True)
self.history.in_progress_count += 1 self.history.in_progress_count += 1
@ -333,6 +365,12 @@ class ReceiveMode(Mode):
{"action": "progress", "progress": event["data"]["progress"]}, {"action": "progress", "progress": event["data"]["progress"]},
) )
def handle_request_upload_includes_message(self, event):
"""
Handle REQUEST_UPLOAD_INCLUDES_MESSAGE event.
"""
self.history.includes_message(event["data"]["id"], event["data"]["filename"])
def handle_request_upload_file_renamed(self, event): def handle_request_upload_file_renamed(self, event):
""" """
Handle REQUEST_UPLOAD_FILE_RENAMED event. Handle REQUEST_UPLOAD_FILE_RENAMED event.

View file

@ -21,7 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import os import os
from PySide2 import QtCore, QtWidgets, QtGui from PySide2 import QtCore, QtWidgets, QtGui
from onionshare_cli.onion import *
from onionshare_cli.common import Common from onionshare_cli.common import Common
from onionshare_cli.web import Web from onionshare_cli.web import Web
@ -30,7 +29,7 @@ from .. import Mode
from ..file_selection import FileSelection from ..file_selection import FileSelection
from ..history import History, ToggleHistory, ShareHistoryItem from ..history import History, ToggleHistory, ShareHistoryItem
from .... import strings from .... import strings
from ....widgets import Alert, MinimumWidthWidget from ....widgets import MinimumWidthWidget
from ....gui_common import GuiCommon from ....gui_common import GuiCommon

View file

@ -36,7 +36,7 @@ class CompressThread(QtCore.QThread):
# prepare files to share # prepare files to share
def set_processed_size(self, x): def set_processed_size(self, x):
if self.mode._zip_progress_bar != None: if self.mode._zip_progress_bar is not None:
self.mode._zip_progress_bar.update_processed_size_signal.emit(x) self.mode._zip_progress_bar.update_processed_size_signal.emit(x)
def run(self): def run(self):
@ -47,9 +47,6 @@ class CompressThread(QtCore.QThread):
self.mode.filenames, processed_size_callback=self.set_processed_size self.mode.filenames, processed_size_callback=self.set_processed_size
) )
self.success.emit() self.success.emit()
self.mode.app.cleanup_filenames += (
self.mode.web.share_mode.cleanup_filenames
)
except OSError as e: except OSError as e:
self.error.emit(e.strerror) self.error.emit(e.strerror)

View file

@ -19,12 +19,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import os import os
import random
import string
from PySide2 import QtCore, QtWidgets, QtGui from PySide2 import QtCore, QtWidgets, QtGui
from onionshare_cli.onion import *
from onionshare_cli.common import Common from onionshare_cli.common import Common
from onionshare_cli.web import Web from onionshare_cli.web import Web
@ -32,7 +29,7 @@ from .. import Mode
from ..file_selection import FileSelection from ..file_selection import FileSelection
from ..history import History, ToggleHistory from ..history import History, ToggleHistory
from .... import strings from .... import strings
from ....widgets import Alert, MinimumWidthWidget from ....widgets import MinimumWidthWidget
from ....gui_common import GuiCommon from ....gui_common import GuiCommon

View file

@ -161,7 +161,7 @@ class ServerStatus(QtWidgets.QWidget):
self.url.setText(wrapped_onion_url) self.url.setText(wrapped_onion_url)
else: else:
self.url.setText(self.get_url()) self.url.setText(self.get_url())
except: except Exception:
pass pass
def show_url(self): def show_url(self):

View file

@ -540,6 +540,9 @@ class Tab(QtWidgets.QWidget):
elif event["type"] == Web.REQUEST_CANCELED: elif event["type"] == Web.REQUEST_CANCELED:
mode.handle_request_canceled(event) mode.handle_request_canceled(event)
elif event["type"] == Web.REQUEST_UPLOAD_INCLUDES_MESSAGE:
mode.handle_request_upload_includes_message(event)
elif event["type"] == Web.REQUEST_UPLOAD_FILE_RENAMED: elif event["type"] == Web.REQUEST_UPLOAD_FILE_RENAMED:
mode.handle_request_upload_file_renamed(event) mode.handle_request_upload_file_renamed(event)
@ -665,7 +668,7 @@ class Tab(QtWidgets.QWidget):
if self.close_dialog.clickedButton() == self.close_dialog.accept_button: if self.close_dialog.clickedButton() == self.close_dialog.accept_button:
self.common.log("Tab", "close_tab", "close, closing tab") self.common.log("Tab", "close_tab", "close, closing tab")
self.get_mode().stop_server() self.get_mode().stop_server()
self.app.cleanup() self.get_mode().web.cleanup()
return True return True
# Cancel # Cancel
else: else:
@ -678,4 +681,4 @@ class Tab(QtWidgets.QWidget):
self.get_mode().web.stop(self.get_mode().app.port) self.get_mode().web.stop(self.get_mode().app.port)
self.get_mode().web_thread.quit() self.get_mode().web_thread.quit()
self.get_mode().web_thread.wait() self.get_mode().web_thread.wait()
self.app.cleanup() self.get_mode().web.cleanup()

View file

@ -252,7 +252,7 @@ class EventHandlerThread(QtCore.QThread):
"EventHandler", "run", f"invalid event type: {obj}" "EventHandler", "run", f"invalid event type: {obj}"
) )
except: except Exception:
pass pass
if self.should_quit: if self.should_quit:

View file

@ -166,7 +166,7 @@ class TorConnectionThread(QtCore.QThread):
else: else:
self.canceled_connecting_to_tor.emit() self.canceled_connecting_to_tor.emit()
except BundledTorCanceled as e: except BundledTorCanceled:
self.common.log( self.common.log(
"TorConnectionThread", "run", "caught exception: BundledTorCanceled" "TorConnectionThread", "run", "caught exception: BundledTorCanceled"
) )

View file

@ -19,7 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore from PySide2 import QtCore
import datetime, re import datetime
import re
import socks import socks
from distutils.version import LooseVersion as Version from distutils.version import LooseVersion as Version

View file

@ -24,6 +24,6 @@
<update_contact>micah@micahflee.com</update_contact> <update_contact>micah@micahflee.com</update_contact>
<content_rating type="oars-1.1" /> <content_rating type="oars-1.1" />
<releases> <releases>
<release type="development" date="2021-02-22" version="2.3.1" /> <release type="development" date="2021-05-04" version="2.3.2" />
</releases> </releases>
</component> </component>

View file

@ -25,7 +25,12 @@ version = "2.3.1"
setuptools.setup( setuptools.setup(
name="onionshare", name="onionshare",
version=version, version=version,
description="OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service.", description=(
"OnionShare lets you securely and anonymously send and receive files. It works by starting a web "
"server, making it accessible as a Tor onion service, and generating an unguessable web address so "
"others can download files from you, or upload files to you. It does _not_ require setting up a "
"separate server or using a third party file-sharing service."
),
author="Micah Lee", author="Micah Lee",
author_email="micah@micahflee.com", author_email="micah@micahflee.com",
maintainer="Micah Lee", maintainer="Micah Lee",

View file

@ -1,20 +1,21 @@
import sys import sys
# Force tests to look for resources in the source code tree
sys.onionshare_dev_mode = True
# Let OnionShare know the tests are running, to avoid colliding with settings files
sys.onionshare_test_mode = True
import os import os
import shutil import shutil
import tempfile import tempfile
from datetime import datetime, timedelta from datetime import datetime, timedelta
import pytest import pytest
from PySide2 import QtTest from PySide2 import QtTest
from onionshare_cli import common, web, settings
# Force tests to look for resources in the source code tree
sys.onionshare_dev_mode = True
# Let OnionShare know the tests are running, to avoid colliding with settings files
sys.onionshare_test_mode = True
@staticmethod @staticmethod
def qWait(t, qtapp): def qWait(t, qtapp):
@ -36,9 +37,6 @@ sys.path.insert(
), ),
) )
from onionshare_cli import common, web, settings
# The temporary directory for CLI tests # The temporary directory for CLI tests
test_temp_dir = None test_temp_dir = None
@ -141,7 +139,7 @@ def default_zw():
tmp_dir = os.path.dirname(zw.zip_filename) tmp_dir = os.path.dirname(zw.zip_filename)
try: try:
shutil.rmtree(tmp_dir, ignore_errors=True) shutil.rmtree(tmp_dir, ignore_errors=True)
except: except Exception:
pass pass

View file

@ -48,15 +48,15 @@ class TestReceive(GuiBaseTest):
QtTest.QTest.qWait(1000, self.gui.qtapp) QtTest.QTest.qWait(1000, self.gui.qtapp)
# Make sure the file is within the last 10 seconds worth of fileames # Make sure the file is within the last 10 seconds worth of filenames
exists = False exists = False
now = datetime.now() now = datetime.now()
for _ in range(10): for _ in range(10):
date_dir = now.strftime("%Y-%m-%d") date_dir = now.strftime("%Y-%m-%d")
if identical_files_at_once: if identical_files_at_once:
time_dir = now.strftime("%H.%M.%S-1") time_dir = now.strftime("%H%M%S-1")
else: else:
time_dir = now.strftime("%H.%M.%S") time_dir = now.strftime("%H%M%S")
receive_mode_dir = os.path.join( receive_mode_dir = os.path.join(
tab.settings.get("receive", "data_dir"), date_dir, time_dir tab.settings.get("receive", "data_dir"), date_dir, time_dir
) )
@ -93,6 +93,47 @@ class TestReceive(GuiBaseTest):
QtCore.QTimer.singleShot(1000, accept_dialog) QtCore.QTimer.singleShot(1000, accept_dialog)
self.assertTrue("Error uploading, please inform the OnionShare user" in r.text) self.assertTrue("Error uploading, please inform the OnionShare user" in r.text)
def submit_message(self, tab, message):
"""Test that we can submit a message"""
# Wait 2 seconds to make sure the filename, based on timestamp, isn't accidentally reused
QtTest.QTest.qWait(2000, self.gui.qtapp)
url = f"http://127.0.0.1:{tab.app.port}/upload"
if tab.settings.get("general", "public"):
requests.post(url, data={"text": message})
else:
requests.post(
url,
data={"text": message},
auth=requests.auth.HTTPBasicAuth(
"onionshare", tab.get_mode().web.password
),
)
QtTest.QTest.qWait(1000, self.gui.qtapp)
# Make sure the file is within the last 10 seconds worth of filenames
exists = False
now = datetime.now()
for _ in range(10):
date_dir = now.strftime("%Y-%m-%d")
time_dir = now.strftime("%H%M%S")
expected_filename = os.path.join(
tab.settings.get("receive", "data_dir"),
date_dir,
f"{time_dir}-message.txt",
)
if os.path.exists(expected_filename):
with open(expected_filename) as f:
assert f.read() == message
exists = True
break
now = now - timedelta(seconds=1)
self.assertTrue(exists)
def try_without_auth_in_non_public_mode(self, tab): def try_without_auth_in_non_public_mode(self, tab):
r = requests.post(f"http://127.0.0.1:{tab.app.port}/upload") r = requests.post(f"http://127.0.0.1:{tab.app.port}/upload")
self.assertEqual(r.status_code, 401) self.assertEqual(r.status_code, 401)
@ -115,10 +156,9 @@ class TestReceive(GuiBaseTest):
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)
self.server_status_indicator_says_started(tab) self.server_status_indicator_says_started(tab)
self.web_page(tab, "Select the files you want to send, then click")
def run_all_receive_mode_tests(self, tab): def run_all_receive_mode_tests(self, tab):
"""Upload files 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"): if not tab.settings.get("general", "public"):
self.try_without_auth_in_non_public_mode(tab) self.try_without_auth_in_non_public_mode(tab)
@ -131,9 +171,11 @@ class TestReceive(GuiBaseTest):
self.counter_incremented(tab, 3) self.counter_incremented(tab, 3)
self.upload_file(tab, self.tmpfile_test2, "test2.txt") self.upload_file(tab, self.tmpfile_test2, "test2.txt")
self.counter_incremented(tab, 4) self.counter_incremented(tab, 4)
self.submit_message(tab, "onionshare is an interesting piece of software")
self.counter_incremented(tab, 5)
# Test uploading the same file twice at the same time, and make sure no collisions # Test uploading the same file twice at the same time, and make sure no collisions
self.upload_file(tab, self.tmpfile_test, "test.txt", True) self.upload_file(tab, self.tmpfile_test, "test.txt", True)
self.counter_incremented(tab, 6) self.counter_incremented(tab, 7)
self.history_indicator(tab, "2") self.history_indicator(tab, "2")
self.server_is_stopped(tab) self.server_is_stopped(tab)
self.web_server_is_stopped(tab) self.web_server_is_stopped(tab)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -56,78 +56,90 @@ msgstr ""
msgid "To turn off the password for any tab, just check the \"Don't use a password\" box before starting the server. Then the server will be public and won't have a password." msgid "To turn off the password for any tab, just check the \"Don't use a password\" box before starting the server. Then the server will be public and won't have a password."
msgstr "" msgstr ""
#: ../../source/advanced.rst:38 #: ../../source/advanced.rst:40
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:42
msgid "By default, when people load an OnionShare service in Tor Browser they see the default title for the type of service. For example, the default title of a chat service is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:44
msgid "If you want to choose a custom title, set the \"Custom title\" setting before starting a server."
msgstr ""
#: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
msgstr "" msgstr ""
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:49
msgid "OnionShare supports scheduling exactly when a service should start and stop. Before starting a server, click \"Show advanced settings\" in its tab and then check the boxes next to either \"Start onion service at scheduled time\", \"Stop onion service at scheduled time\", or both, and set the respective desired dates and times." msgid "OnionShare supports scheduling exactly when a service should start and stop. Before starting a server, click \"Show advanced settings\" in its tab and then check the boxes next to either \"Start onion service at scheduled time\", \"Stop onion service at scheduled time\", or both, and set the respective desired dates and times."
msgstr "" msgstr ""
#: ../../source/advanced.rst:43 #: ../../source/advanced.rst:52
msgid "If you scheduled a service to start in the future, when you click the \"Start sharing\" button you will see a timer counting down until it starts. If you scheduled it to stop in the future, after it's started you will see a timer counting down to when it will stop automatically." msgid "If you scheduled a service to start in the future, when you click the \"Start sharing\" button you will see a timer counting down until it starts. If you scheduled it to stop in the future, after it's started you will see a timer counting down to when it will stop automatically."
msgstr "" msgstr ""
#: ../../source/advanced.rst:46 #: ../../source/advanced.rst:55
msgid "**Scheduling an OnionShare service to automatically start can be used as a dead man's switch**, where your service will be made public at a given time in the future if anything happens to you. If nothing happens to you, you can cancel the service before it's scheduled to start." msgid "**Scheduling an OnionShare service to automatically start can be used as a dead man's switch**, where your service will be made public at a given time in the future if anything happens to you. If nothing happens to you, you can cancel the service before it's scheduled to start."
msgstr "" msgstr ""
#: ../../source/advanced.rst:51 #: ../../source/advanced.rst:60
msgid "**Scheduling an OnionShare service to automatically stop can be useful to limit exposure**, like if you want to share secret documents while making sure they're not available on the Internet for more than a few days." msgid "**Scheduling an OnionShare service to automatically stop can be useful to limit exposure**, like if you want to share secret documents while making sure they're not available on the Internet for more than a few days."
msgstr "" msgstr ""
#: ../../source/advanced.rst:56 #: ../../source/advanced.rst:65
msgid "Command-line Interface" msgid "Command-line Interface"
msgstr "" msgstr ""
#: ../../source/advanced.rst:58 #: ../../source/advanced.rst:67
msgid "In addition to its graphical interface, OnionShare has a command-line interface." msgid "In addition to its graphical interface, OnionShare has a command-line interface."
msgstr "" msgstr ""
#: ../../source/advanced.rst:60 #: ../../source/advanced.rst:69
msgid "You can install just the command-line version of OnionShare using ``pip3``::" msgid "You can install just the command-line version of OnionShare using ``pip3``::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:64 #: ../../source/advanced.rst:73
msgid "Note that you will also need the ``tor`` package installed. In macOS, install it with: ``brew install tor``" msgid "Note that you will also need the ``tor`` package installed. In macOS, install it with: ``brew install tor``"
msgstr "" msgstr ""
#: ../../source/advanced.rst:66 #: ../../source/advanced.rst:75
msgid "Then run it like this::" msgid "Then run it like this::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:70 #: ../../source/advanced.rst:79
msgid "If you installed OnionShare using the Linux Snapcraft package, you can also just run ``onionshare.cli`` to access the command-line interface version." msgid "If you installed OnionShare using the Linux Snapcraft package, you can also just run ``onionshare.cli`` to access the command-line interface version."
msgstr "" msgstr ""
#: ../../source/advanced.rst:73 #: ../../source/advanced.rst:82
msgid "Usage" msgid "Usage"
msgstr "" msgstr ""
#: ../../source/advanced.rst:75 #: ../../source/advanced.rst:84
msgid "You can browse the command-line documentation by running ``onionshare --help``::" msgid "You can browse the command-line documentation by running ``onionshare --help``::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:132 #: ../../source/advanced.rst:147
msgid "Legacy Addresses" msgid "Legacy Addresses"
msgstr "" msgstr ""
#: ../../source/advanced.rst:134 #: ../../source/advanced.rst:149
msgid "OnionShare uses v3 Tor onion services by default. These are modern onion addresses that have 56 characters, for example::" msgid "OnionShare uses v3 Tor onion services by default. These are modern onion addresses that have 56 characters, for example::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:139 #: ../../source/advanced.rst:154
msgid "OnionShare still has support for v2 onion addresses, the old type of onion addresses that have 16 characters, for example::" msgid "OnionShare still has support for v2 onion addresses, the old type of onion addresses that have 16 characters, for example::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:143 #: ../../source/advanced.rst:158
msgid "OnionShare calls v2 onion addresses \"legacy addresses\", and they are not recommended, as v3 onion addresses are more secure." msgid "OnionShare calls v2 onion addresses \"legacy addresses\", and they are not recommended, as v3 onion addresses are more secure."
msgstr "" msgstr ""
#: ../../source/advanced.rst:145 #: ../../source/advanced.rst:160
msgid "To use legacy addresses, before starting a server click \"Show advanced settings\" from its tab and check the \"Use a legacy address (v2 onion service, not recommended)\" box. In legacy mode you can optionally turn on Tor client authentication. Once you start a server in legacy mode you cannot remove legacy mode in that tab. Instead you must start a separate service in a separate tab." msgid "To use legacy addresses, before starting a server click \"Show advanced settings\" from its tab and check the \"Use a legacy address (v2 onion service, not recommended)\" box. In legacy mode you can optionally turn on Tor client authentication. Once you start a server in legacy mode you cannot remove legacy mode in that tab. Instead you must start a separate service in a separate tab."
msgstr "" msgstr ""
#: ../../source/advanced.rst:150 #: ../../source/advanced.rst:165
msgid "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." msgid "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."
msgstr "" msgstr ""

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -53,7 +53,7 @@ msgid "You can use OnionShare to send files and folders to people securely and a
msgstr "" msgstr ""
#: ../../source/features.rst:27 #: ../../source/features.rst:27
#: ../../source/features.rst:93 #: ../../source/features.rst:104
msgid "After you add files, you'll see some settings. Make sure you choose the setting you're interested in before you start sharing." msgid "After you add files, you'll see some settings. Make sure you choose the setting you're interested in before you start sharing."
msgstr "" msgstr ""
@ -78,149 +78,165 @@ msgid "That person then must load the address in Tor Browser. After logging in w
msgstr "" msgstr ""
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files" msgid "Receive Files and Messages"
msgstr "" msgstr ""
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "You can use OnionShare to let people anonymously upload files directly to your computer, essentially turning it into an anonymous dropbox. Open a \"Receive tab\", choose where you want to save the files and other settings, and then click \"Start Receive Mode\"." msgid "You can use OnionShare to let people anonymously submit files and messages directly to your computer, essentially turning it into an anonymous dropbox. Open a receive tab and choose the settings that you want."
msgstr "" msgstr ""
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "This starts the OnionShare service. Anyone loading this address in their Tor Browser will be able to upload files to your computer." msgid "You can browse for a folder to save messages and files that get submitted."
msgstr ""
#: ../../source/features.rst:56
msgid "You can check \"Disable submitting text\" if want to only allow file uploads, and you can check \"Disable uploading files\" if you want to only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "You can check \"Use notification webhook\" and then choose a webhook URL if you want to be notified when someone submits files or messages to your OnionShare service. If you use this feature, OnionShare will make an HTTP POST request to this URL whenever someone submits files or messages. For example, if you want to get an encrypted text messaging on the messaging app `Keybase <https://keybase.io/>`_, you can start a conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type ``!webhook create onionshare-alerts``, and it will respond with a URL. Use that as the notification webhook URL. If someone uploads a file to your receive mode service, @webhookbot will send you a message on Keybase letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:63
msgid "When you are ready, click \"Start Receive Mode\". This starts the OnionShare service. Anyone loading this address in their Tor Browser will be able to submit files and messages which get uploaded to your computer."
msgstr ""
#: ../../source/features.rst:67
msgid "You can also click the down \"↓\" icon in the top-right corner to show the history and progress of people sending files to you." msgid "You can also click the down \"↓\" icon in the top-right corner to show the history and progress of people sending files to you."
msgstr "" msgstr ""
#: ../../source/features.rst:60
msgid "Here is what it looks like for someone sending you files."
msgstr ""
#: ../../source/features.rst:64
msgid "When someone uploads files to your receive service, by default they get saved to a folder called ``OnionShare`` in the home folder on your computer, automatically organized into separate subfolders based on the time that the files get uploaded."
msgstr ""
#: ../../source/features.rst:66
msgid "Setting up an OnionShare receiving service is useful for journalists and others needing to securely accept documents from anonymous sources. When used in this way, OnionShare is sort of like a lightweight, simpler, not quite as secure version of `SecureDrop <https://securedrop.org/>`_, the whistleblower submission system."
msgstr ""
#: ../../source/features.rst:69 #: ../../source/features.rst:69
msgid "Use at your own risk" msgid "Here is what it looks like for someone sending you files and messages."
msgstr ""
#: ../../source/features.rst:71
msgid "Just like with malicious e-mail attachments, it's possible someone could try to attack your computer by uploading a malicious file to your OnionShare service. OnionShare does not add any safety mechanisms to protect your system from malicious files."
msgstr "" msgstr ""
#: ../../source/features.rst:73 #: ../../source/features.rst:73
msgid "If you receive an Office document or a PDF through OnionShare, you can convert these documents into PDFs that are safe to open using `Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself when opening untrusted documents by opening them in `Tails <https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ disposableVM." msgid "When someone submits files or messages to your receive service, by default they get saved to a folder called ``OnionShare`` in the home folder on your computer, automatically organized into separate subfolders based on the time that the files get uploaded."
msgstr "" msgstr ""
#: ../../source/features.rst:76 #: ../../source/features.rst:75
msgid "Tips for running a receive service" msgid "Setting up an OnionShare receiving service is useful for journalists and others needing to securely accept documents from anonymous sources. When used in this way, OnionShare is sort of like a lightweight, simpler, not quite as secure version of `SecureDrop <https://securedrop.org/>`_, the whistleblower submission system."
msgstr "" msgstr ""
#: ../../source/features.rst:78 #: ../../source/features.rst:78
msgid "If you want to host your own anonymous dropbox using OnionShare, it's recommended you do so on a separate, dedicated computer always powered on and connected to the Internet, and not on the one you use on a regular basis." msgid "Use at your own risk"
msgstr "" msgstr ""
#: ../../source/features.rst:80 #: ../../source/features.rst:80
msgid "If you intend to put the OnionShare address on your website or social media profiles, save the tab (see :ref:`save_tabs`) and run it as a public service (see :ref:`turn_off_passwords`)." msgid "Just like with malicious e-mail attachments, it's possible someone could try to attack your computer by uploading a malicious file to your OnionShare service. OnionShare does not add any safety mechanisms to protect your system from malicious files."
msgstr "" msgstr ""
#: ../../source/features.rst:83 #: ../../source/features.rst:82
msgid "Host a Website" msgid "If you receive an Office document or a PDF through OnionShare, you can convert these documents into PDFs that are safe to open using `Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself when opening untrusted documents by opening them in `Tails <https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ disposableVM."
msgstr "" msgstr ""
#: ../../source/features.rst:85 #: ../../source/features.rst:84
msgid "To host a static HTML website with OnionShare, open a website tab, drag the files and folders that make up the static content there, and click \"Start sharing\" when you are ready." msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:87
msgid "Tips for running a receive service"
msgstr "" msgstr ""
#: ../../source/features.rst:89 #: ../../source/features.rst:89
msgid "If you add an ``index.html`` file, it will render when someone loads your website. You should also include any other HTML files, CSS files, JavaScript files, and images that make up the website. (Note that OnionShare only supports hosting *static* websites. It can't host websites that execute code or use databases. So you can't for example use WordPress.)" msgid "If you want to host your own anonymous dropbox using OnionShare, it's recommended you do so on a separate, dedicated computer always powered on and connected to the Internet, and not on the one you use on a regular basis."
msgstr "" msgstr ""
#: ../../source/features.rst:91 #: ../../source/features.rst:91
msgid "If you don't have an ``index.html`` file, it will show a directory listing instead, and people loading it can look through the files and download them." msgid "If you intend to put the OnionShare address on your website or social media profiles, save the tab (see :ref:`save_tabs`) and run it as a public service (see :ref:`turn_off_passwords`). It's also a good idea to give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
#: ../../source/features.rst:98 #: ../../source/features.rst:94
msgid "Content Security Policy" msgid "Host a Website"
msgstr ""
#: ../../source/features.rst:96
msgid "To host a static HTML website with OnionShare, open a website tab, drag the files and folders that make up the static content there, and click \"Start sharing\" when you are ready."
msgstr "" msgstr ""
#: ../../source/features.rst:100 #: ../../source/features.rst:100
msgid "By default OnionShare helps secure your website by setting a strict `Content Security Police <https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However, this prevents third-party content from loading inside the web page." msgid "If you add an ``index.html`` file, it will render when someone loads your website. You should also include any other HTML files, CSS files, JavaScript files, and images that make up the website. (Note that OnionShare only supports hosting *static* websites. It can't host websites that execute code or use databases. So you can't for example use WordPress.)"
msgstr "" msgstr ""
#: ../../source/features.rst:102 #: ../../source/features.rst:102
msgid "If you want to load content from third-party websites, like assets or JavaScript libraries from CDNs, check the \"Don't send Content Security Policy header (allows your website to use third-party resources)\" box before starting the service." msgid "If you don't have an ``index.html`` file, it will show a directory listing instead, and people loading it can look through the files and download them."
msgstr "" msgstr ""
#: ../../source/features.rst:105 #: ../../source/features.rst:109
msgid "Tips for running a website service" msgid "Content Security Policy"
msgstr "" msgstr ""
#: ../../source/features.rst:107 #: ../../source/features.rst:111
msgid "If you want to host a long-term website using OnionShare (meaning not something to quickly show someone something), it's recommended you do it on a separate, dedicated computer always powered on and connected to the Internet, and not on the one you use on a regular basis. Save the tab (see :ref:`save_tabs`) so you can resume the website with the same address if you close OnionShare and re-open it later." msgid "By default OnionShare helps secure your website by setting a strict `Content Security Police <https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However, this prevents third-party content from loading inside the web page."
msgstr ""
#: ../../source/features.rst:110
msgid "If your website is intended for the public, you should run it as a public service (see :ref:`turn_off_passwords`)."
msgstr "" msgstr ""
#: ../../source/features.rst:113 #: ../../source/features.rst:113
msgid "Chat Anonymously" msgid "If you want to load content from third-party websites, like assets or JavaScript libraries from CDNs, check the \"Don't send Content Security Policy header (allows your website to use third-party resources)\" box before starting the service."
msgstr "" msgstr ""
#: ../../source/features.rst:115 #: ../../source/features.rst:116
msgid "You can use OnionShare to set up a private, secure chat room that doesn't log anything. Just open a chat tab and click \"Start chat server\"." msgid "Tips for running a website service"
msgstr "" msgstr ""
#: ../../source/features.rst:119 #: ../../source/features.rst:118
msgid "After you start the server, copy the OnionShare address and send it to the people you want in the anonymous chat room. If it's important to limit exactly who can join, use an encrypted messaging app to send out the OnionShare address." msgid "If you want to host a long-term website using OnionShare (meaning not something to quickly show someone something), it's recommended you do it on a separate, dedicated computer always powered on and connected to the Internet, and not on the one you use on a regular basis. Save the tab (see :ref:`save_tabs`) so you can resume the website with the same address if you close OnionShare and re-open it later."
msgstr ""
#: ../../source/features.rst:121
msgid "If your website is intended for the public, you should run it as a public service (see :ref:`turn_off_passwords`)."
msgstr "" msgstr ""
#: ../../source/features.rst:124 #: ../../source/features.rst:124
msgid "Chat Anonymously"
msgstr ""
#: ../../source/features.rst:126
msgid "You can use OnionShare to set up a private, secure chat room that doesn't log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
#: ../../source/features.rst:130
msgid "After you start the server, copy the OnionShare address and send it to the people you want in the anonymous chat room. If it's important to limit exactly who can join, use an encrypted messaging app to send out the OnionShare address."
msgstr ""
#: ../../source/features.rst:135
msgid "People can join the chat room by loading its OnionShare address in Tor Browser. The chat room requires JavasScript, so everyone who wants to participate must have their Tor Browser security level set to \"Standard\" or \"Safer\", instead of \"Safest\"." msgid "People can join the chat room by loading its OnionShare address in Tor Browser. The chat room requires JavasScript, so everyone who wants to participate must have their Tor Browser security level set to \"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr "" msgstr ""
#: ../../source/features.rst:127 #: ../../source/features.rst:138
msgid "When someone joins the chat room they get assigned a random name. They can change their name by typing a new name in the box in the left panel and pressing ↵. Since the chat history isn't saved anywhere, it doesn't get displayed at all, even if others were already chatting in the room." msgid "When someone joins the chat room they get assigned a random name. They can change their name by typing a new name in the box in the left panel and pressing ↵. Since the chat history isn't saved anywhere, it doesn't get displayed at all, even if others were already chatting in the room."
msgstr "" msgstr ""
#: ../../source/features.rst:133 #: ../../source/features.rst:144
msgid "In an OnionShare chat room, everyone is anonymous. Anyone can change their name to anything, and there is no way to confirm anyone's identity." msgid "In an OnionShare chat room, everyone is anonymous. Anyone can change their name to anything, and there is no way to confirm anyone's identity."
msgstr "" msgstr ""
#: ../../source/features.rst:136 #: ../../source/features.rst:147
msgid "However, if you create an OnionShare chat room and securely send the address only to a small group of trusted friends using encrypted messages, you can be reasonably confident the people joining the chat room are your friends." msgid "However, if you create an OnionShare chat room and securely send the address only to a small group of trusted friends using encrypted messages, you can be reasonably confident the people joining the chat room are your friends."
msgstr "" msgstr ""
#: ../../source/features.rst:139 #: ../../source/features.rst:150
msgid "How is this useful?" msgid "How is this useful?"
msgstr "" msgstr ""
#: ../../source/features.rst:141 #: ../../source/features.rst:152
msgid "If you need to already be using an encrypted messaging app, what's the point of an OnionShare chat room to begin with? It leaves less traces." msgid "If you need to already be using an encrypted messaging app, what's the point of an OnionShare chat room to begin with? It leaves less traces."
msgstr "" msgstr ""
#: ../../source/features.rst:143 #: ../../source/features.rst:154
msgid "If you for example send a message to a Signal group, a copy of your message ends up on each device (the devices, and computers if they set up Signal Desktop) of each member of the group. Even if disappearing messages is turned on, it's hard to confirm all copies of the messages are actually deleted from all devices, and from any other places (like notifications databases) they may have been saved to. OnionShare chat rooms don't store any messages anywhere, so the problem is reduced to a minimum." msgid "If you for example send a message to a Signal group, a copy of your message ends up on each device (the devices, and computers if they set up Signal Desktop) of each member of the group. Even if disappearing messages is turned on, it's hard to confirm all copies of the messages are actually deleted from all devices, and from any other places (like notifications databases) they may have been saved to. OnionShare chat rooms don't store any messages anywhere, so the problem is reduced to a minimum."
msgstr "" msgstr ""
#: ../../source/features.rst:146 #: ../../source/features.rst:157
msgid "OnionShare chat rooms can also be useful for people wanting to chat anonymously and securely with someone without needing to create any accounts. For example, a source can send an OnionShare address to a journalist using a disposable e-mail address, and then wait for the journalist to join the chat room, all without compromosing their anonymity." msgid "OnionShare chat rooms can also be useful for people wanting to chat anonymously and securely with someone without needing to create any accounts. For example, a source can send an OnionShare address to a journalist using a disposable e-mail address, and then wait for the journalist to join the chat room, all without compromosing their anonymity."
msgstr "" msgstr ""
#: ../../source/features.rst:150 #: ../../source/features.rst:161
msgid "How does the encryption work?" msgid "How does the encryption work?"
msgstr "" msgstr ""
#: ../../source/features.rst:152 #: ../../source/features.rst:163
msgid "Because OnionShare relies on Tor onion services, connections between the Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When someone posts a message to an OnionShare chat room, they send it to the server through the E2EE onion connection, which then sends it to all other members of the chat room using WebSockets, through their E2EE onion connections." msgid "Because OnionShare relies on Tor onion services, connections between the Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When someone posts a message to an OnionShare chat room, they send it to the server through the E2EE onion connection, which then sends it to all other members of the chat room using WebSockets, through their E2EE onion connections."
msgstr "" msgstr ""
#: ../../source/features.rst:154 #: ../../source/features.rst:165
msgid "OnionShare doesn't implement any chat encryption on its own. It relies on the Tor onion service's encryption instead." msgid "OnionShare doesn't implement any chat encryption on its own. It relies on the Tor onion service's encryption instead."
msgstr "" msgstr ""

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n" "Project-Id-Version: OnionShare 2.3.2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 14:18-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View file

@ -34,6 +34,15 @@ If you don't do this, someone can force your server to stop just by making 20 wr
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 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.
.. _custom_titles:
Custom Titles
-------------
By default, when people load an OnionShare service in Tor Browser they see the default title for the type of service. For example, the default title of a chat service is "OnionShare Chat".
If you want to choose a custom title, set the "Custom title" setting before starting a server.
Scheduled Times Scheduled Times
--------------- ---------------
@ -75,33 +84,33 @@ Usage
You can browse the command-line documentation by running ``onionshare --help``:: You can browse the command-line documentation by running ``onionshare --help``::
$ onionshare-cli --help $ onionshare-cli --help
OnionShare 2.3 | https://onionshare.org/ ╭───────────────────────────────────────────╮
* ▄▄█████▄▄ *
│ ▄████▀▀▀████▄ * │
│ ▀▀█▀ ▀██▄ │
│ * ▄█▄ ▀██▄ │
│ ▄█████▄ ███ -+- │
│ ███ ▀█████▀ │
│ ▀██▄ ▀█▀ │
* ▀██▄ ▄█▄▄ *
│ * ▀████▄▄▄████▀ │
│ ▀▀█████▀▀ │
│ -+- * │
│ ▄▀▄ ▄▀▀ █ │
│ █ █ ▀ ▀▄ █ │
│ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
│ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
│ │
│ v2.3.2 │
│ │
│ https://onionshare.org/ │
╰───────────────────────────────────────────╯
@@@@@@@@@ usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME]
@@@@@@@@@@@@@@@@@@@ [--persistent FILENAME] [--title TITLE] [--public] [--auto-start-timer SECONDS]
@@@@@@@@@@@@@@@@@@@@@@@@@ [--auto-stop-timer SECONDS] [--legacy] [--client-auth] [--no-autostop-sharing] [--data-dir data_dir]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ [--webhook-url webhook_url] [--disable-text] [--disable-files] [--disable_csp] [-v]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _ [filename ...]
@@@@@@ @@@@@@@@@@@@@ / _ \ (_)
@@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __
@@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \
@@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | |
@@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_|
@@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _
@@@@@@@@@@ @@@@@@@@@@@@ / ___| |
@@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___
@@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \
@@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@
@@@@@@@@@
usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME] [--persistent FILENAME]
[--public] [--auto-start-timer SECONDS] [--auto-stop-timer SECONDS] [--legacy] [--client-auth] [--autostop-sharing]
[--data-dir data_dir] [--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
@ -116,6 +125,7 @@ You can browse the command-line documentation by running ``onionshare --help``::
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
--public Don't use a password --public Don't use a password
--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)
@ -123,9 +133,14 @@ You can browse the command-line documentation by running ``onionshare --help``::
Stop onion service at schedule time (N seconds from now) Stop onion service at schedule time (N seconds from now)
--legacy Use legacy address (v2 onion service, not recommended) --legacy Use legacy address (v2 onion service, not recommended)
--client-auth Use client authorization (requires --legacy) --client-auth Use client authorization (requires --legacy)
--autostop-sharing Share files: Stop sharing after files have been sent --no-autostop-sharing Share files: Continue sharing after files have been sent (default is to stop sharing)
--data-dir data_dir Receive files: Save files received to this directory --data-dir data_dir Receive files: Save files received to this directory
--disable_csp Publish website: Disable Content Security Policy header (allows your website to use third-party resources) --webhook-url webhook_url
Receive files: URL to receive webhook notifications
--disable-text Receive files: Disable receiving text messages
--disable-files Receive files: Disable receiving files
--disable_csp Publish website: Disable Content Security Policy header (allows your website to use third-party
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 Legacy Addresses

View file

@ -1,8 +1,6 @@
project = "OnionShare" project = "OnionShare"
author = copyright = "Micah Lee, et al." author = copyright = "Micah Lee, et al."
version = release = "2.3.1" version = release = "2.3.2"
extensions = ["sphinx_rtd_theme"] extensions = ["sphinx_rtd_theme"]
templates_path = ["_templates"] templates_path = ["_templates"]
@ -18,7 +16,7 @@ languages = [
("Українська", "uk"), # Ukranian ("Українська", "uk"), # Ukranian
] ]
versions = ["2.3", "2.3.1"] versions = ["2.3", "2.3.1", "2.3.2"]
html_theme = "sphinx_rtd_theme" html_theme = "sphinx_rtd_theme"
html_logo = "_static/logo.png" html_logo = "_static/logo.png"

View file

@ -43,25 +43,34 @@ That person then must load the address in Tor Browser. After logging in with the
.. image:: _static/screenshots/share-torbrowser.png .. image:: _static/screenshots/share-torbrowser.png
Receive Files Receive Files and Messages
------------- --------------------------
You can use OnionShare to let people anonymously upload files directly to your computer, essentially turning it into an anonymous dropbox. You can use OnionShare to let people anonymously submit files and messages directly to your computer, essentially turning it into an anonymous dropbox.
Open a "Receive tab", choose where you want to save the files and other settings, and then click "Start Receive Mode". Open a receive tab and choose the settings that you want.
.. image:: _static/screenshots/receive.png .. image:: _static/screenshots/receive.png
This starts the OnionShare service. Anyone loading this address in their Tor Browser will be able to upload files to your computer. You can browse for a folder to save messages and files that get submitted.
You can check "Disable submitting text" if want to only allow file uploads, and you can check "Disable uploading files" if you want to only allow submitting text messages, like for an anonymous contact form.
You can check "Use notification webhook" and then choose a webhook URL if you want to be notified when someone submits files or messages to your OnionShare service.
If you use this feature, OnionShare will make an HTTP POST request to this URL whenever someone submits files or messages.
For example, if you want to get an encrypted text messaging on the messaging app `Keybase <https://keybase.io/>`_, you can start a conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type ``!webhook create onionshare-alerts``, and it will respond with a URL. Use that as the notification webhook URL.
If someone uploads a file to your receive mode service, @webhookbot will send you a message on Keybase letting you know as soon as it happens.
When you are ready, click "Start Receive Mode". This starts the OnionShare service. Anyone loading this address in their Tor Browser will be able to submit files and messages which get uploaded to your computer.
.. image:: _static/screenshots/receive-sharing.png .. image:: _static/screenshots/receive-sharing.png
You can also click the down "↓" icon in the top-right corner to show the history and progress of people sending files to you. You can also click the down "↓" icon in the top-right corner to show the history and progress of people sending files to you.
Here is what it looks like for someone sending you files. Here is what it looks like for someone sending you files and messages.
.. image:: _static/screenshots/receive-torbrowser.png .. image:: _static/screenshots/receive-torbrowser.png
When someone uploads files to your receive service, by default they get saved to a folder called ``OnionShare`` in the home folder on your computer, automatically organized into separate subfolders based on the time that the files get uploaded. When someone submits files or messages to your receive service, by default they get saved to a folder called ``OnionShare`` in the home folder on your computer, automatically organized into separate subfolders based on the time that the files get uploaded.
Setting up an OnionShare receiving service is useful for journalists and others needing to securely accept documents from anonymous sources. When used in this way, OnionShare is sort of like a lightweight, simpler, not quite as secure version of `SecureDrop <https://securedrop.org/>`_, the whistleblower submission system. Setting up an OnionShare receiving service is useful for journalists and others needing to securely accept documents from anonymous sources. When used in this way, OnionShare is sort of like a lightweight, simpler, not quite as secure version of `SecureDrop <https://securedrop.org/>`_, the whistleblower submission system.
@ -72,12 +81,14 @@ Just like with malicious e-mail attachments, it's possible someone could try to
If you receive an Office document or a PDF through OnionShare, you can convert these documents into PDFs that are safe to open using `Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself when opening untrusted documents by opening them in `Tails <https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ disposableVM. If you receive an Office document or a PDF through OnionShare, you can convert these documents into PDFs that are safe to open using `Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself when opening untrusted documents by opening them in `Tails <https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ disposableVM.
However, it is always safe to open text messages sent through OnionShare.
Tips for running a receive service 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`). 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`).
Host a Website Host a Website
-------------- --------------

View file

@ -0,0 +1,30 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-02-22 13:40-0800\n"
"PO-Revision-Date: 2021-04-24 23:31+0000\n"
"Last-Translator: Oymate <dhruboadittya96@gmail.com>\n"
"Language-Team: none\n"
"Language: bn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.7-dev\n"
#: ../../source/index.rst:2
msgid "OnionShare's documentation"
msgstr "অনিওনশেয়ারের নির্দেশিকা"
#: ../../source/index.rst:6
msgid "OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network."
msgstr ""
"অনিওনশেয়ার একটি মুক্ত উৎসবিশিষ্ট যন্ত্র, যা তোমাকে নিরাপদে ও গোপনীয়ভাবে ফাইল "
"ভাগ করা, ওয়েবসাইট উপস্থাপন, বন্ধুদের সাথে টর নেটওয়ার্কের সাথে কথা বলতে সাহায্"
"য করে।"

View file

@ -0,0 +1,63 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-02-22 13:40-0800\n"
"PO-Revision-Date: 2021-04-24 23:31+0000\n"
"Last-Translator: Oymate <dhruboadittya96@gmail.com>\n"
"Language-Team: none\n"
"Language: bn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.7-dev\n"
#: ../../source/security.rst:2
msgid "Security Design"
msgstr "নিরাপত্তা নকশা"
#: ../../source/security.rst:4
msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works."
msgstr ""
#: ../../source/security.rst:6
msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
msgstr ""
#: ../../source/security.rst:9
msgid "What OnionShare protects against"
msgstr ""
#: ../../source/security.rst:11
msgid "**Third parties don't have access to anything that happens in OnionShare.** Using OnionShare means hosting services directly on your computer. When sharing files with OnionShare, they are not uploaded to any server. If you make an OnionShare chat room, your computer acts as a server for that too. This avoids the traditional model of having to trust the computers of others."
msgstr ""
#: ../../source/security.rst:13
msgid "**Network eavesdroppers can't spy on anything that happens in OnionShare in transit.** The connection between the Tor onion service and Tor Browser is end-to-end encrypted. This means network attackers can't eavesdrop on anything except encrypted Tor traffic. Even if an eavesdropper is a malicious rendezvous node used to connect the Tor Browser with OnionShare's onion service, the traffic is encrypted using the onion service's private key."
msgstr ""
#: ../../source/security.rst:15
msgid "**Anonymity of OnionShare users are protected by Tor.** OnionShare and Tor Browser protect the anonymity of the users. As long as the OnionShare user anonymously communicates the OnionShare address with the Tor Browser users, the Tor Browser users and eavesdroppers can't learn the identity of the OnionShare user."
msgstr ""
#: ../../source/security.rst:17
msgid "**If an attacker learns about the onion service, it still can't access anything.** Prior attacks against the Tor network to enumerate onion services allowed the attacker to discover private .onion addresses. If an attack discovers a private OnionShare address, a password will be prevent them from accessing it (unless the OnionShare user chooses to turn it off and make it public). The password is generated by choosing two random words from a list of 6800 words, making 6800², or about 46 million possible passwords. Only 20 wrong guesses can be made before OnionShare stops the server, preventing brute force attacks against the password."
msgstr ""
#: ../../source/security.rst:20
msgid "What OnionShare doesn't protect against"
msgstr ""
#: ../../source/security.rst:22
msgid "**Communicating the OnionShare address might not be secure.** Communicating the OnionShare address to people is the responsibility of the OnionShare user. If sent insecurely (such as through an email message monitored by an attacker), an eavesdropper can tell that OnionShare is being used. If the eavesdropper loads the address in Tor Browser while the service is still up, they can access it. To avoid this, the address must be communicateed securely, via encrypted text message (probably with disappearing messages enabled), encrypted email, or in person. This isn't necessary when using OnionShare for something that isn't secret."
msgstr ""
#: ../../source/security.rst:24
msgid "**Communicating the OnionShare address might not be anonymous.** Extra precautions must be taken to ensure the OnionShare address is communicated anonymously. A new email or chat account, only accessed over Tor, can be used to share the address. This isn't necessary unless anonymity is a goal."
msgstr ""

View file

@ -0,0 +1,142 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) Micah Lee, et al.
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-22 13:40-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: bn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
msgstr ""
#: ../../source/tor.rst:4
msgid "Pick a way to connect OnionShare to Tor by clicking the \"⚙\" icon in the bottom right of the OnionShare window to get to its settings."
msgstr ""
#: ../../source/tor.rst:9
msgid "Use the ``tor`` bundled with OnionShare"
msgstr ""
#: ../../source/tor.rst:11
msgid "This is the default, simplest and most reliable way that OnionShare connects to Tor. For this reason, it's recommended for most users."
msgstr ""
#: ../../source/tor.rst:14
msgid "When you open OnionShare, it launches an already configured ``tor`` process in the background for OnionShare to use. It doesn't interfere with other ``tor`` processes on your computer, so you can use the Tor Browser or the system ``tor`` on their own."
msgstr ""
#: ../../source/tor.rst:18
msgid "Attempt auto-configuration with Tor Browser"
msgstr ""
#: ../../source/tor.rst:20
msgid "If you have `downloaded the Tor Browser <https://www.torproject.org>`_ and don't want two ``tor`` processes running, you can use the ``tor`` process from the Tor Browser. Keep in mind you need to keep Tor Browser open in the background while you're using OnionShare for this to work."
msgstr ""
#: ../../source/tor.rst:24
msgid "Using a system ``tor`` in Windows"
msgstr ""
#: ../../source/tor.rst:26
msgid "This is fairly advanced. You'll need to know how edit plaintext files and do stuff as an administrator."
msgstr ""
#: ../../source/tor.rst:28
msgid "Download the Tor Windows Expert Bundle `from <https://www.torproject.org/download/tor/>`_. Extract the compressed file and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``."
msgstr ""
#: ../../source/tor.rst:32
msgid "Make up a control port password. (Using 7 words in a sequence like ``comprised stumble rummage work avenging construct volatile`` is a good idea for a password.) Now open a command prompt (``cmd``) as an administrator, and use ``tor.exe --hash-password`` to generate a hash of your password. For example::"
msgstr ""
#: ../../source/tor.rst:39
msgid "The hashed password output is displayed after some warnings (which you can ignore). In the case of the above example, it is ``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
msgstr ""
#: ../../source/tor.rst:41
msgid "Now create a new text file at ``C:\\Program Files (x86)\\tor-win32\\torrc`` and put your hashed password output in it, replacing the ``HashedControlPassword`` with the one you just generated::"
msgstr ""
#: ../../source/tor.rst:46
msgid "In your administrator command prompt, install ``tor`` as a service using the appropriate ``torrc`` file you just created (as described in `<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). Like this::"
msgstr ""
#: ../../source/tor.rst:50
msgid "You are now running a system ``tor`` process in Windows!"
msgstr ""
#: ../../source/tor.rst:52
msgid "Open OnionShare and click the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" choose \"Connect using control port\", and set \"Control port\" to ``127.0.0.1`` and \"Port\" to ``9051``. Under \"Tor authentication settings\" choose \"Password\" and set the password to the control port password you picked above. Click the \"Test Connection to Tor\" button. If all goes well, you should see \"Connected to the Tor controller\"."
msgstr ""
#: ../../source/tor.rst:61
msgid "Using a system ``tor`` in macOS"
msgstr ""
#: ../../source/tor.rst:63
msgid "First, install `Homebrew <https://brew.sh/>`_ if you don't already have it, and then install Tor::"
msgstr ""
#: ../../source/tor.rst:67
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr ""
#: ../../source/tor.rst:74
msgid "And start the system Tor service::"
msgstr ""
#: ../../source/tor.rst:78
msgid "Open OnionShare and click the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" choose \"Connect using socket file\", and set the socket file to be ``/usr/local/var/run/tor/control.socket``. Under \"Tor authentication settings\" choose \"No authentication, or cookie authentication\". Click the \"Test Connection to Tor\" button."
msgstr ""
#: ../../source/tor.rst:84
#: ../../source/tor.rst:104
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
msgstr ""
#: ../../source/tor.rst:87
msgid "Using a system ``tor`` in Linux"
msgstr ""
#: ../../source/tor.rst:89
msgid "First, install the ``tor`` package. If you're using Debian, Ubuntu, or a similar Linux distro, It is recommended to use the Tor Project's `official repository <https://support.torproject.org/apt/tor-deb-repo/>`_."
msgstr ""
#: ../../source/tor.rst:91
msgid "Next, add your user to the group that runs the ``tor`` process (in the case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect to your system ``tor``'s control socket file."
msgstr ""
#: ../../source/tor.rst:93
msgid "Add your user to the ``debian-tor`` group by running this command (replace ``username`` with your actual username)::"
msgstr ""
#: ../../source/tor.rst:97
msgid "Reboot your computer. After it boots up again, open OnionShare and click the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" choose \"Connect using socket file\". Set the socket file to be ``/var/run/tor/control``. Under \"Tor authentication settings\" choose \"No authentication, or cookie authentication\". Click the \"Test Connection to Tor\" button."
msgstr ""
#: ../../source/tor.rst:107
msgid "Using Tor bridges"
msgstr ""
#: ../../source/tor.rst:109
msgid "If your access to the Internet is censored, you can configure OnionShare to connect to the Tor network using `Tor bridges <https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare connects to Tor without one, you don't need to use a bridge."
msgstr ""
#: ../../source/tor.rst:111
msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
msgstr ""
#: ../../source/tor.rst:113
msgid "You can use the built-in obfs4 pluggable transports, the built-in meek_lite (Azure) pluggable transports, or custom bridges, which you can obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you need to use a bridge, try the built-in obfs4 ones first."
msgstr ""

View file

@ -7,16 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-11-17 10:28+0000\n" "PO-Revision-Date: 2020-11-17 10:28+0000\n"
"Last-Translator: mv87 <mv87@dismail.de>\n" "Last-Translator: mv87 <mv87@dismail.de>\n"
"Language-Team: de <LL@li.org>\n"
"Language: de\n" "Language: de\n"
"Language-Team: de <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2 #: ../../source/advanced.rst:2
@ -35,11 +34,12 @@ msgid ""
"useful if you want to host a website available from the same OnionShare " "useful if you want to host a website available from the same OnionShare "
"address even if you reboot your computer." "address even if you reboot your computer."
msgstr "" msgstr ""
"In OnionShare ist standardmäßig alels nur temporär. Wenn du einen OnionShare-" "In OnionShare ist standardmäßig alels nur temporär. Wenn du einen "
"Reiter schließt, existiert seine Adresse nicht mehr kann nicht nochmals " "OnionShare-Reiter schließt, existiert seine Adresse nicht mehr kann nicht"
"verwendet werden. Manchmal soll ein OnionShare-Service aber dauerhaft sein. " " nochmals verwendet werden. Manchmal soll ein OnionShare-Service aber "
"Das ist hilfreich, wenn du eine Webseite unter derselben OnionShare-Adresse " "dauerhaft sein. Das ist hilfreich, wenn du eine Webseite unter derselben "
"hosten möchtest, auch wenn du deinen Rechner neustartest." "OnionShare-Adresse hosten möchtest, auch wenn du deinen Rechner "
"neustartest."
#: ../../source/advanced.rst:13 #: ../../source/advanced.rst:13
msgid "" msgid ""
@ -47,8 +47,8 @@ msgid ""
"open it when I open OnionShare\" box before starting the server. When a " "open it when I open OnionShare\" box before starting the server. When a "
"tab is saved a purple pin icon appears to the left of its server status." "tab is saved a purple pin icon appears to the left of its server status."
msgstr "" msgstr ""
"Um einen beliebigen Reiter dauerhaft zu machen, setze den Haken bei " "Um einen beliebigen Reiter dauerhaft zu machen, setze den Haken bei "
"Speichere diesen Reiter und öffne ihn automatisch, wenn ich OnionShare " "Speichere diesen Reiter und öffne ihn automatisch, wenn ich OnionShare "
"starte“, bevor du den Dienst startest. So gespeicherte Tabs erhalten ein " "starte“, bevor du den Dienst startest. So gespeicherte Tabs erhalten ein "
"purpurfarbenen Stecknadelsymbol links dem Status des Dienstes." "purpurfarbenen Stecknadelsymbol links dem Status des Dienstes."
@ -60,8 +60,8 @@ msgid ""
msgstr "" msgstr ""
"Wenn du OnionShare beendest und dann wieder öffnest, werden deine " "Wenn du OnionShare beendest und dann wieder öffnest, werden deine "
"gespeicherten Reiter wieder geöffnet. Du musst dann zwar jeden Dienst " "gespeicherten Reiter wieder geöffnet. Du musst dann zwar jeden Dienst "
"manuell starten, aber wenn du dies tust, starten die Dienste mit derselben " "manuell starten, aber wenn du dies tust, starten die Dienste mit "
"OnionShare-Adresse und mit demselben Passwort wie zuvor." "derselben OnionShare-Adresse und mit demselben Passwort wie zuvor."
#: ../../source/advanced.rst:21 #: ../../source/advanced.rst:21
msgid "" msgid ""
@ -83,11 +83,11 @@ msgid ""
"wrong guesses at the password, your onion service is automatically " "wrong guesses at the password, your onion service is automatically "
"stopped to prevent a brute force attack against the OnionShare service." "stopped to prevent a brute force attack against the OnionShare service."
msgstr "" msgstr ""
"Standardmäßig sind alle OnionShare-Dienste mit dem Nutzernamen ``onionshare``" "Standardmäßig sind alle OnionShare-Dienste mit dem Nutzernamen "
" und einem zufällig erzeugten Passwort geschützt. Falls jemand 20 falsche " "``onionshare`` und einem zufällig erzeugten Passwort geschützt. Falls "
"Versuche beim Erraten des Passworts macht, wird dein OnionShare-Service " "jemand 20 falsche Versuche beim Erraten des Passworts macht, wird dein "
"automatisch gestoppt, um eine Bruteforce-Attacke auf den Dienst zu " "OnionShare-Service automatisch gestoppt, um eine Bruteforce-Attacke auf "
"verhindern." "den Dienst zu verhindern."
#: ../../source/advanced.rst:31 #: ../../source/advanced.rst:31
msgid "" msgid ""
@ -98,13 +98,13 @@ msgid ""
"can force your server to stop just by making 20 wrong guesses of your " "can force your server to stop just by making 20 wrong guesses of your "
"password, even if they know the correct password." "password, even if they know the correct password."
msgstr "" msgstr ""
"Manchmal könntest du wollen, dass dein OnionShare-Service der Öffentlichkeit " "Manchmal könntest du wollen, dass dein OnionShare-Service der "
"zugänglich ist; dies ist beispielsweise der Fall, wenn du einen OnionShare-" "Öffentlichkeit zugänglich ist; dies ist beispielsweise der Fall, wenn du "
"Empfangsdienst einrichten möchtest, über den dir die Öffentlichkeit sicher " "einen OnionShare-Empfangsdienst einrichten möchtest, über den dir die "
"und anonym Dateien schicken können. In diesem Fall wäre es besser, das " "Öffentlichkeit sicher und anonym Dateien schicken können. In diesem Fall "
"Passwort komplett zu deaktivieren. Wenn du dies nicht tust, könnte jemand " "wäre es besser, das Passwort komplett zu deaktivieren. Wenn du dies nicht"
"deinen Dienst anhalten, wenn er 20 mal das Passwort falsch eingibt, selbst " " tust, könnte jemand deinen Dienst anhalten, wenn er 20 mal das Passwort "
"wenn er das richtige Passwort kennt." "falsch eingibt, selbst wenn er das richtige Passwort kennt."
#: ../../source/advanced.rst:35 #: ../../source/advanced.rst:35
msgid "" msgid ""
@ -116,11 +116,28 @@ msgstr ""
"Haken bei „Kein Passwort verwenden“, bevor du den Dienst startest. Der " "Haken bei „Kein Passwort verwenden“, bevor du den Dienst startest. Der "
"Dienst wird dann öffentlich sein und kein Passwort erfordern." "Dienst wird dann öffentlich sein und kein Passwort erfordern."
#: ../../source/advanced.rst:38 #: ../../source/advanced.rst:40
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:42
msgid ""
"By default, when people load an OnionShare service in Tor Browser they "
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
#: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
msgstr "Geplante Zeiten" msgstr "Geplante Zeiten"
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:49
msgid "" msgid ""
"OnionShare supports scheduling exactly when a service should start and " "OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its " "stop. Before starting a server, click \"Show advanced settings\" in its "
@ -129,25 +146,25 @@ msgid ""
"set the respective desired dates and times." "set the respective desired dates and times."
msgstr "" msgstr ""
"OnionShare erlaubt eine genaue Zeitsteuerung, wann ein Dienst starten und" "OnionShare erlaubt eine genaue Zeitsteuerung, wann ein Dienst starten und"
"stoppen soll. Bevor du den Dienst startest, klicke im jeweiligen Reiter auf „" " stoppen soll. Bevor du den Dienst startest, klicke im jeweiligen Reiter "
"Erweiterte Einstellungen anzeigen“ und setze die Haken bei „Onion-Dienst zu " "auf „Erweiterte Einstellungen anzeigen“ und setze die Haken bei „Onion-"
"einem festgelegten Zeitpunkt starten“, „Onion-Dienst zu einem festgelegten " "Dienst zu einem festgelegten Zeitpunkt starten“, „Onion-Dienst zu einem "
"Zeitpunkt stoppen“ oder bei beiden, und lege das jeweilig gewünschte Datum " "festgelegten Zeitpunkt stoppen“ oder bei beiden, und lege das jeweilig "
"samt Uhrzeit fest." "gewünschte Datum samt Uhrzeit fest."
#: ../../source/advanced.rst:43 #: ../../source/advanced.rst:52
msgid "" msgid ""
"If you scheduled a service to start in the future, when you click the " "If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it " "\"Start sharing\" button you will see a timer counting down until it "
"starts. If you scheduled it to stop in the future, after it's started you" "starts. If you scheduled it to stop in the future, after it's started you"
" will see a timer counting down to when it will stop automatically." " will see a timer counting down to when it will stop automatically."
msgstr "" msgstr ""
"Wenn einer geplanter Dienst in der Zukunft starten soll, siehst du nach dem " "Wenn einer geplanter Dienst in der Zukunft starten soll, siehst du nach "
"Klick auf den Start-Button einen Timer, der bis zum Start abläuft. Wenn " "dem Klick auf den Start-Button einen Timer, der bis zum Start abläuft. "
"einer geplanter Dienst in der Zukunft stoppen soll, siehst du nach dem Start " "Wenn einer geplanter Dienst in der Zukunft stoppen soll, siehst du nach "
"einen Timer, der bis zum Stopp abläuft." "dem Start einen Timer, der bis zum Stopp abläuft."
#: ../../source/advanced.rst:46 #: ../../source/advanced.rst:55
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically start can be used as " "**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given " "a dead man's switch**, where your service will be made public at a given "
@ -160,7 +177,7 @@ msgstr ""
"Falls dir nichts zustößt, kannst du den Dienst deaktvieren, bevor er " "Falls dir nichts zustößt, kannst du den Dienst deaktvieren, bevor er "
"gemäß Zeitsteuerung starten würde." "gemäß Zeitsteuerung starten würde."
#: ../../source/advanced.rst:51 #: ../../source/advanced.rst:60
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to" "**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while " " limit exposure**, like if you want to share secret documents while "
@ -169,15 +186,15 @@ msgid ""
msgstr "" msgstr ""
"**Der automatische, zeigesteuerte Stopp eines OnionShare-Dienstes kann " "**Der automatische, zeigesteuerte Stopp eines OnionShare-Dienstes kann "
"sinnvoll sein, um den Dienst nicht mehr als nötig einem Zugriff von außen" "sinnvoll sein, um den Dienst nicht mehr als nötig einem Zugriff von außen"
"auszusetzen**; beispielsweise, wenn du geheime Dokumente freigeben möchtest " " auszusetzen**; beispielsweise, wenn du geheime Dokumente freigeben "
"und diese nicht länger als für ein paar Tage über das Internet zugänglich " "möchtest und diese nicht länger als für ein paar Tage über das Internet "
"sein sollen." "zugänglich sein sollen."
#: ../../source/advanced.rst:56 #: ../../source/advanced.rst:65
msgid "Command-line Interface" msgid "Command-line Interface"
msgstr "Kommandozeilen-Schnittstelle" msgstr "Kommandozeilen-Schnittstelle"
#: ../../source/advanced.rst:58 #: ../../source/advanced.rst:67
msgid "" msgid ""
"In addition to its graphical interface, OnionShare has a command-line " "In addition to its graphical interface, OnionShare has a command-line "
"interface." "interface."
@ -185,7 +202,7 @@ msgstr ""
"Zusätzlich zur grafischen Oberfläche verfügt OnionShare auch über eine " "Zusätzlich zur grafischen Oberfläche verfügt OnionShare auch über eine "
"Kommandozeilen-Schnittstelle." "Kommandozeilen-Schnittstelle."
#: ../../source/advanced.rst:60 #: ../../source/advanced.rst:69
msgid "" msgid ""
"You can install just the command-line version of OnionShare using " "You can install just the command-line version of OnionShare using "
"``pip3``::" "``pip3``::"
@ -193,7 +210,7 @@ msgstr ""
"Du kannst eine Kommandozeilen-Version von OnionShare mit ``pip3`` " "Du kannst eine Kommandozeilen-Version von OnionShare mit ``pip3`` "
"installieren::" "installieren::"
#: ../../source/advanced.rst:64 #: ../../source/advanced.rst:73
msgid "" msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, " "Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``" "install it with: ``brew install tor``"
@ -201,11 +218,11 @@ msgstr ""
"Beachte, dass du auch hierfür das ``tor``-Paket installiert haben musst. " "Beachte, dass du auch hierfür das ``tor``-Paket installiert haben musst. "
"Unter macOS kannst du dieses mit ``brew install tor`` installieren" "Unter macOS kannst du dieses mit ``brew install tor`` installieren"
#: ../../source/advanced.rst:66 #: ../../source/advanced.rst:75
msgid "Then run it like this::" msgid "Then run it like this::"
msgstr "Führe es dann wiefolgt aus::" msgstr "Führe es dann wiefolgt aus::"
#: ../../source/advanced.rst:70 #: ../../source/advanced.rst:79
msgid "" msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can " "If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface " "also just run ``onionshare.cli`` to access the command-line interface "
@ -215,11 +232,11 @@ msgstr ""
"kannst du ``onionshare.cli`` ausführen, um zur Kommandozeilen-Version zu " "kannst du ``onionshare.cli`` ausführen, um zur Kommandozeilen-Version zu "
"gelangen." "gelangen."
#: ../../source/advanced.rst:73 #: ../../source/advanced.rst:82
msgid "Usage" msgid "Usage"
msgstr "Benutzung" msgstr "Benutzung"
#: ../../source/advanced.rst:75 #: ../../source/advanced.rst:84
msgid "" msgid ""
"You can browse the command-line documentation by running ``onionshare " "You can browse the command-line documentation by running ``onionshare "
"--help``::" "--help``::"
@ -227,11 +244,11 @@ msgstr ""
"Die Dokumentation zur Kommandozeile kann über den Befehl ``onionshare " "Die Dokumentation zur Kommandozeile kann über den Befehl ``onionshare "
"--help`` abgerufen werden::" "--help`` abgerufen werden::"
#: ../../source/advanced.rst:132 #: ../../source/advanced.rst:147
msgid "Legacy Addresses" msgid "Legacy Addresses"
msgstr "Veraltetes Adressformat" msgstr "Veraltetes Adressformat"
#: ../../source/advanced.rst:134 #: ../../source/advanced.rst:149
msgid "" msgid ""
"OnionShare uses v3 Tor onion services by default. These are modern onion " "OnionShare uses v3 Tor onion services by default. These are modern onion "
"addresses that have 56 characters, for example::" "addresses that have 56 characters, for example::"
@ -239,7 +256,7 @@ msgstr ""
"OnionShare nutzt standardmäßig Tor-OnionDienste der Version 3. Dies sind " "OnionShare nutzt standardmäßig Tor-OnionDienste der Version 3. Dies sind "
"moderne .onion-Adressen von 56 Zeichen Länge, z.B.::" "moderne .onion-Adressen von 56 Zeichen Länge, z.B.::"
#: ../../source/advanced.rst:139 #: ../../source/advanced.rst:154
msgid "" msgid ""
"OnionShare still has support for v2 onion addresses, the old type of " "OnionShare still has support for v2 onion addresses, the old type of "
"onion addresses that have 16 characters, for example::" "onion addresses that have 16 characters, for example::"
@ -247,7 +264,7 @@ msgstr ""
"OnionShare unterstützt immer noch .onion-Adressen der Version 2, die alte" "OnionShare unterstützt immer noch .onion-Adressen der Version 2, die alte"
" Version von .onion-Adressen mit 16 Zeichen Länge, z.B.::" " Version von .onion-Adressen mit 16 Zeichen Länge, z.B.::"
#: ../../source/advanced.rst:143 #: ../../source/advanced.rst:158
msgid "" msgid ""
"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " "OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
"not recommended, as v3 onion addresses are more secure." "not recommended, as v3 onion addresses are more secure."
@ -256,7 +273,7 @@ msgstr ""
"Adressformat“. Adressen der Version 3 sind sicherer, und eine Nutzung der" "Adressformat“. Adressen der Version 3 sind sicherer, und eine Nutzung der"
" veralteten Adressen wird nicht empfohlen." " veralteten Adressen wird nicht empfohlen."
#: ../../source/advanced.rst:145 #: ../../source/advanced.rst:160
msgid "" msgid ""
"To use legacy addresses, before starting a server click \"Show advanced " "To use legacy addresses, before starting a server click \"Show advanced "
"settings\" from its tab and check the \"Use a legacy address (v2 onion " "settings\" from its tab and check the \"Use a legacy address (v2 onion "
@ -269,20 +286,20 @@ msgstr ""
"entsprechenden Dienstes in seinem Reiter auf „Erweiterte Einstellungen " "entsprechenden Dienstes in seinem Reiter auf „Erweiterte Einstellungen "
"anzeigen“; setze dort den Haken bei „Benutze ein veraltetes Adressformat " "anzeigen“; setze dort den Haken bei „Benutze ein veraltetes Adressformat "
"(Onion-Dienste-Adressformat v2, nicht empfohlen)“. In diesem veralteten " "(Onion-Dienste-Adressformat v2, nicht empfohlen)“. In diesem veralteten "
"Modus kannst du die Client-Authorisierung aktivieren. Sobald ein Dienst in " "Modus kannst du die Client-Authorisierung aktivieren. Sobald ein Dienst "
"dem veralteten Modus gestartet wurde, kann man dies in dem entsprechenden " "in dem veralteten Modus gestartet wurde, kann man dies in dem "
"Reiter nicht rückgängig machen; stattdessen müsstest du einen separaten " "entsprechenden Reiter nicht rückgängig machen; stattdessen müsstest du "
"Dienst in einem eigenem Reiter starten." "einen separaten Dienst in einem eigenem Reiter starten."
#: ../../source/advanced.rst:150 #: ../../source/advanced.rst:165
msgid "" msgid ""
"Tor Project plans to `completely deprecate v2 onion services " "Tor Project plans to `completely deprecate v2 onion services "
"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, " "<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
"2021, and legacy onion services will be removed from OnionShare before " "2021, and legacy onion services will be removed from OnionShare before "
"then." "then."
msgstr "" msgstr ""
"Das Tor-Projekt plant, .onion-Dienste der Version 2 zum 15. Oktober 2021 `" "Das Tor-Projekt plant, .onion-Dienste der Version 2 zum 15. Oktober 2021 "
"vollständig zu entfernen <https://blog.torproject.org/v2-deprecation-" "`vollständig zu entfernen <https://blog.torproject.org/v2-deprecation-"
"timeline>`_, und die Unterstützung für diese Dienste wird davor aus " "timeline>`_, und die Unterstützung für diese Dienste wird davor aus "
"OnionShare entfernt werden." "OnionShare entfernt werden."
@ -396,3 +413,4 @@ msgstr ""
#~ "Windows aufsetzen (siehe " #~ "Windows aufsetzen (siehe "
#~ ":ref:`starting_development`) und dann Folgendes " #~ ":ref:`starting_development`) und dann Folgendes "
#~ "auf der Befehlszeile ausführen::" #~ "auf der Befehlszeile ausführen::"

View file

@ -7,16 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:43-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-11-17 10:28+0000\n" "PO-Revision-Date: 2020-11-17 10:28+0000\n"
"Last-Translator: mv87 <mv87@dismail.de>\n" "Last-Translator: mv87 <mv87@dismail.de>\n"
"Language-Team: de <LL@li.org>\n"
"Language: de\n" "Language: de\n"
"Language-Team: de <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4 #: ../../source/features.rst:4
@ -29,8 +28,8 @@ msgid ""
"other people as `Tor <https://www.torproject.org/>`_ `onion services " "other people as `Tor <https://www.torproject.org/>`_ `onion services "
"<https://community.torproject.org/onion-services/>`_." "<https://community.torproject.org/onion-services/>`_."
msgstr "" msgstr ""
"OnionShare startet Webserver lokal auf deinem Rechner und macht sie anderen " "OnionShare startet Webserver lokal auf deinem Rechner und macht sie "
"Leuten als `Tor <https://www.torproject.org/>`_ `Onion-" "anderen Leuten als `Tor <https://www.torproject.org/>`_ `Onion-"
"Dienste<https://community.torproject.org/onion-services/>`_ zugänglich." "Dienste<https://community.torproject.org/onion-services/>`_ zugänglich."
#: ../../source/features.rst:8 #: ../../source/features.rst:8
@ -49,11 +48,11 @@ msgid ""
"something less secure like unencrypted e-mail, depending on your `threat " "something less secure like unencrypted e-mail, depending on your `threat "
"model <https://ssd.eff.org/module/your-security-plan>`_." "model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr "" msgstr ""
"Du musst diese URL über einen sicheren Kommunikationskanal deiner Wahl mit " "Du musst diese URL über einen sicheren Kommunikationskanal deiner Wahl "
"anderen teilen, beispielsweise über eine verschlüsselte Chatnachricht, oder " "mit anderen teilen, beispielsweise über eine verschlüsselte "
"über einen weniger sicheren Weg wie zum Beispiel einerTwitter- oder Facebook-" "Chatnachricht, oder über einen weniger sicheren Weg wie zum Beispiel "
"Nachricht, abhängig von deiner persönlichen `Bedrohungsanalyse <https://ssd." "einerTwitter- oder Facebook-Nachricht, abhängig von deiner persönlichen "
"eff.org/en/module/your-security-plan>`_." "`Bedrohungsanalyse <https://ssd.eff.org/en/module/your-security-plan>`_."
#: ../../source/features.rst:14 #: ../../source/features.rst:14
msgid "" msgid ""
@ -86,8 +85,8 @@ msgid ""
"Tor onion services too, it also protects your anonymity. See the " "Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info." ":doc:`security design </security>` for more info."
msgstr "" msgstr ""
"Weil dein eigener Rechner der Webserver ist, *hat kein Dritter Zugriff auf " "Weil dein eigener Rechner der Webserver ist, *hat kein Dritter Zugriff "
"das, was ihr mit OnionShare tut*, nicht einmal die Entwickler von " "auf das, was ihr mit OnionShare tut*, nicht einmal die Entwickler von "
"OnionShare. Es ist vollständig geheim. Und weil OnionShare auch auf Tors " "OnionShare. Es ist vollständig geheim. Und weil OnionShare auch auf Tors "
"Onion-Diensten basiert, schützt es auch deine Anonymität. Für weitere " "Onion-Diensten basiert, schützt es auch deine Anonymität. Für weitere "
"Informationen siehe :doc:`security design </security>`." "Informationen siehe :doc:`security design </security>`."
@ -102,18 +101,19 @@ msgid ""
"anonymously. Open a share tab, drag in the files and folders you wish to " "anonymously. Open a share tab, drag in the files and folders you wish to "
"share, and click \"Start sharing\"." "share, and click \"Start sharing\"."
msgstr "" msgstr ""
"Du kannst OnionShare dazu verwenden, um Dateien und Ordner sicher und anonym " "Du kannst OnionShare dazu verwenden, um Dateien und Ordner sicher und "
"an andere Leute zu schicken. Öffne einfach einen Freigabe-Reiter, ziehe die " "anonym an andere Leute zu schicken. Öffne einfach einen Freigabe-Reiter, "
"freizugebenden Dateien und Ordner dort hinein und klicke auf „Freigabe " "ziehe die freizugebenden Dateien und Ordner dort hinein und klicke auf "
"starten“." "„Freigabe starten“."
#: ../../source/features.rst:27 ../../source/features.rst:93 #: ../../source/features.rst:27 ../../source/features.rst:104
msgid "" msgid ""
"After you add files, you'll see some settings. Make sure you choose the " "After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing." "setting you're interested in before you start sharing."
msgstr "" msgstr ""
"Nachdem du Dateien hinzugefügt hast, werden dir Einstellungsmöglichkeiten" "Nachdem du Dateien hinzugefügt hast, werden dir Einstellungsmöglichkeiten"
"angezeigt. Wähle die passenden Einstellungen, bevor du die Freigabe startest." " angezeigt. Wähle die passenden Einstellungen, bevor du die Freigabe "
"startest."
#: ../../source/features.rst:31 #: ../../source/features.rst:31
msgid "" msgid ""
@ -123,11 +123,11 @@ msgid ""
" files have been sent (uncheck to allow downloading individual files)\" " " files have been sent (uncheck to allow downloading individual files)\" "
"box." "box."
msgstr "" msgstr ""
"Sobald jemand deine Dateien vollständig heruntergeladen hat, wird OnionShare " "Sobald jemand deine Dateien vollständig heruntergeladen hat, wird "
"den Dienst automatisch starten und die Webseite vom Internet nehmen. Um " "OnionShare den Dienst automatisch starten und die Webseite vom Internet "
"mehreren Leuten das Herunterladen zu ermöglichen, entferne den Haken bei „" "nehmen. Um mehreren Leuten das Herunterladen zu ermöglichen, entferne den"
"Dateifreigabe beenden, sobald alle Dateien versendet wurden (abwählen, um " " Haken bei „Dateifreigabe beenden, sobald alle Dateien versendet wurden "
"das Herunterladen einzelner Dateien zu erlauben)“." "(abwählen, um das Herunterladen einzelner Dateien zu erlauben)“."
#: ../../source/features.rst:34 #: ../../source/features.rst:34
msgid "" msgid ""
@ -146,11 +146,12 @@ msgid ""
" website down. You can also click the \"↑\" icon in the top-right corner " " website down. You can also click the \"↑\" icon in the top-right corner "
"to show the history and progress of people downloading files from you." "to show the history and progress of people downloading files from you."
msgstr "" msgstr ""
"Wenn du bereit zum Freigeben bist, klicke auf den „Freigabe starten”-Button. " "Wenn du bereit zum Freigeben bist, klicke auf den „Freigabe "
"Du kannst jederzeit auf “„Freigabe beenden” klicken oder OnionShare beenden, " "starten”-Button. Du kannst jederzeit auf “„Freigabe beenden” klicken oder"
"um die Webseite augenblicklich vom Internet zu nehmen. Du kannst außerdem " " OnionShare beenden, um die Webseite augenblicklich vom Internet zu "
"auf den „Nach oben”-Pfeil in der oberen rechten Ecke klicken, um dir den " "nehmen. Du kannst außerdem auf den „Nach oben”-Pfeil in der oberen "
"Verlauf und den Fortschritt der Downloads anzeigen zu lassen." "rechten Ecke klicken, um dir den Verlauf und den Fortschritt der "
"Downloads anzeigen zu lassen."
#: ../../source/features.rst:40 #: ../../source/features.rst:40
msgid "" msgid ""
@ -159,10 +160,10 @@ msgid ""
"or the person is otherwise exposed to danger, use an encrypted messaging " "or the person is otherwise exposed to danger, use an encrypted messaging "
"app." "app."
msgstr "" msgstr ""
"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und schicke " "Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und "
"sie der Person, die die Dateien empfangen soll. Falls die Dateien sicher " "schicke sie der Person, die die Dateien empfangen soll. Falls die Dateien"
"bleiben sollen oder die Person sonstwie einer Gefahr ausgesetzt ist, nutze " " sicher bleiben sollen oder die Person sonstwie einer Gefahr ausgesetzt "
"einen verschlüsselten Messenger." "ist, nutze einen verschlüsselten Messenger."
#: ../../source/features.rst:42 #: ../../source/features.rst:42
msgid "" msgid ""
@ -172,37 +173,58 @@ msgid ""
" link in the corner." " link in the corner."
msgstr "" msgstr ""
"Diese Person muss nun die Adresse mit dem Tor Browser öffnen. Nachdem sie" "Diese Person muss nun die Adresse mit dem Tor Browser öffnen. Nachdem sie"
"sich mit dem zufällig erzeugten Passwort eingeloggt hat, das in der Adresse " " sich mit dem zufällig erzeugten Passwort eingeloggt hat, das in der "
"enthalten ist, kann sie die Dateien direkt von deinem Rechner über den „" "Adresse enthalten ist, kann sie die Dateien direkt von deinem Rechner "
"Dateien herunterladen”-Link in der Ecke herunterladen." "über den „Dateien herunterladen”-Link in der Ecke herunterladen."
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files" msgid "Receive Files and Messages"
msgstr "Dateien empfangen" msgstr ""
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "" msgid ""
"You can use OnionShare to let people anonymously upload files directly to" "You can use OnionShare to let people anonymously submit files and "
" your computer, essentially turning it into an anonymous dropbox. Open a " "messages directly to your computer, essentially turning it into an "
"\"Receive tab\", choose where you want to save the files and other " "anonymous dropbox. Open a receive tab and choose the settings that you "
"settings, and then click \"Start Receive Mode\"." "want."
msgstr "" msgstr ""
"Du kannst OnionShare dazu benutzen, um anderen Personen das anonyme "
"Hochladen von Dateien direkt auf deinen Rechner zu ermöglichen; hierdurch "
"wird dein Rechner sozusagen zu einem anonymen Briefkasten. Öffne einen „"
"Dateien Empfangen”-Reiter, wähle einen Speicherpfad und andere "
"Einstellungen, und klicke dann auf „Empfangsmodus starten”."
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "" msgid "You can browse for a folder to save messages and files that get submitted."
"This starts the OnionShare service. Anyone loading this address in their " msgstr ""
"Tor Browser will be able to upload files to your computer."
#: ../../source/features.rst:56
msgid ""
"You can check \"Disable submitting text\" if want to only allow file "
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Damit wird der OnionShare-Service gestartet. Jeder der diese Adresse mit dem "
"Tor Browser öffnet, kann Dateien auf deinen Rechner hochladen."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
"You can check \"Use notification webhook\" and then choose a webhook URL "
"if you want to be notified when someone submits files or messages to your"
" OnionShare service. If you use this feature, OnionShare will make an "
"HTTP POST request to this URL whenever someone submits files or messages."
" For example, if you want to get an encrypted text messaging on the "
"messaging app `Keybase <https://keybase.io/>`_, you can start a "
"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
"``!webhook create onionshare-alerts``, and it will respond with a URL. "
"Use that as the notification webhook URL. If someone uploads a file to "
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:63
msgid ""
"When you are ready, click \"Start Receive Mode\". This starts the "
"OnionShare service. Anyone loading this address in their Tor Browser will"
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
#: ../../source/features.rst:67
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show " "You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you." "the history and progress of people sending files to you."
msgstr "" msgstr ""
@ -210,23 +232,20 @@ msgstr ""
"klicken, um dir den Verlauf und den Fortschritt der Uploads auf deinen " "klicken, um dir den Verlauf und den Fortschritt der Uploads auf deinen "
"rechner anzeigen zu lassen." "rechner anzeigen zu lassen."
#: ../../source/features.rst:60 #: ../../source/features.rst:69
msgid "Here is what it looks like for someone sending you files." #, fuzzy
msgid "Here is what it looks like for someone sending you files and messages."
msgstr "So sieht es aus, wenn jemand Dateien bei dir hochlädt." msgstr "So sieht es aus, wenn jemand Dateien bei dir hochlädt."
#: ../../source/features.rst:64 #: ../../source/features.rst:73
msgid "" msgid ""
"When someone uploads files to your receive service, by default they get " "When someone submits files or messages to your receive service, by "
"saved to a folder called ``OnionShare`` in the home folder on your " "default they get saved to a folder called ``OnionShare`` in the home "
"computer, automatically organized into separate subfolders based on the " "folder on your computer, automatically organized into separate subfolders"
"time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
"Wenn jemand Dateien auf deinen Dienst im Empfangsmodus hochlädt, werden "
"diese standardmäßig in einem Ordner namens ``OnionShare`` in deinem "
"Benutzerverzeichnis abgelegt; die Dateien werden automatisch in Unterordner "
"aufgeteilt, abhängig vom Hochladedatum."
#: ../../source/features.rst:66 #: ../../source/features.rst:75
msgid "" msgid ""
"Setting up an OnionShare receiving service is useful for journalists and " "Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When " "others needing to securely accept documents from anonymous sources. When "
@ -235,28 +254,29 @@ msgid ""
"whistleblower submission system." "whistleblower submission system."
msgstr "" msgstr ""
"Ein solcher OnionShare-Empfangsdienst ist besonders für Journalisten und " "Ein solcher OnionShare-Empfangsdienst ist besonders für Journalisten und "
"andere interessant, die Dokumente von anonymen Quellen erhalten. So genutzt, " "andere interessant, die Dokumente von anonymen Quellen erhalten. So "
"ist OnionShare sozusagen eine leichtgewichtige, einfachere und nicht ganz so " "genutzt, ist OnionShare sozusagen eine leichtgewichtige, einfachere und "
"sichere Variante von `SecureDrop <https://securedrop.org/>`_, einem " "nicht ganz so sichere Variante von `SecureDrop "
"Einsendesystem für Whistleblower." "<https://securedrop.org/>`_, einem Einsendesystem für Whistleblower."
#: ../../source/features.rst:69 #: ../../source/features.rst:78
msgid "Use at your own risk" msgid "Use at your own risk"
msgstr "Nutzung auf eigene Gefahr" msgstr "Nutzung auf eigene Gefahr"
#: ../../source/features.rst:71 #: ../../source/features.rst:80
msgid "" msgid ""
"Just like with malicious e-mail attachments, it's possible someone could " "Just like with malicious e-mail attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your " "try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to " "OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files." "protect your system from malicious files."
msgstr "" msgstr ""
"Ähnlich wie bei bösartigen E-Mail-Anhängen kann es sein, dass jemand deinen " "Ähnlich wie bei bösartigen E-Mail-Anhängen kann es sein, dass jemand "
"Rechner anzugreifen versucht, indem er eine bösartige Datei auf deinen " "deinen Rechner anzugreifen versucht, indem er eine bösartige Datei auf "
"OnionShare-Dienst hochlädt. OnionShare bringt keine Sicherheitsmechanismen " "deinen OnionShare-Dienst hochlädt. OnionShare bringt keine "
"mit, um dein System vor bösartigen Dateien zu schützen." "Sicherheitsmechanismen mit, um dein System vor bösartigen Dateien zu "
"schützen."
#: ../../source/features.rst:73 #: ../../source/features.rst:82
msgid "" msgid ""
"If you receive an Office document or a PDF through OnionShare, you can " "If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone" "convert these documents into PDFs that are safe to open using `Dangerzone"
@ -267,42 +287,49 @@ msgid ""
msgstr "" msgstr ""
"Wenn du ein Office- oder PDF-Dokument über OnionShare erhältst, kannst du" "Wenn du ein Office- oder PDF-Dokument über OnionShare erhältst, kannst du"
" diese in sichere PDF-Dateien überführen, indem du `Dangerzone " " diese in sichere PDF-Dateien überführen, indem du `Dangerzone "
"<https://dangerzone.rocks/>`_ nutzt. Du kannst dich auch schützen, indem du " "<https://dangerzone.rocks/>`_ nutzt. Du kannst dich auch schützen, indem "
"nicht vertrauenswürdige Dokumente in `Tails <https://tails.boum.org/>`_ oder " "du nicht vertrauenswürdige Dokumente in `Tails "
"in einer `Qubes <https://qubes-os.org/>`_-Wegwerf-VM öffnest." "<https://tails.boum.org/>`_ oder in einer `Qubes <https://qubes-"
"os.org/>`_-Wegwerf-VM öffnest."
#: ../../source/features.rst:76 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
msgstr "Tipps für einen OnionShare-Empfangsdienst" msgstr "Tipps für einen OnionShare-Empfangsdienst"
#: ../../source/features.rst:78 #: ../../source/features.rst:89
msgid "" msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's " "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" "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 " " and connected to the Internet, and not on the one you use on a regular "
"basis." "basis."
msgstr "" msgstr ""
"Wenn du deinen eigenen anonymen Briefkasten per OnionShare betreiben willst, " "Wenn du deinen eigenen anonymen Briefkasten per OnionShare betreiben "
"solltest du dies auf einem separaten, eigens dafür eingerichteten Rechner " "willst, solltest du dies auf einem separaten, eigens dafür eingerichteten"
"tun, der immer läuft und mit dem Internet verbunden ist; nicht mit dem, den " " Rechner tun, der immer läuft und mit dem Internet verbunden ist; nicht "
"du sonst regelmäßig benutzt." "mit dem, den du sonst regelmäßig benutzt."
#: ../../source/features.rst:80 #: ../../source/features.rst:91
#, fuzzy
msgid "" msgid ""
"If you intend to put the OnionShare address on your website or social " "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 " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_passwords`)." "public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
"Falls du deine OnionShare-Adresse auf deiner Webseite oder auf deinen " "Falls du deine OnionShare-Adresse auf deiner Webseite oder auf deinen "
"Profilen in den sozialen Medien verbreiten möchtest, solltest du den Reiter " "Profilen in den sozialen Medien verbreiten möchtest, solltest du den "
"speichern (siehe :ref:`save_tabs`) und den Dienst als öffentlichen Dienst " "Reiter speichern (siehe :ref:`save_tabs`) und den Dienst als öffentlichen"
"betreiben (siehe :ref:`disable password`)." " Dienst betreiben (siehe :ref:`disable password`)."
#: ../../source/features.rst:83 #: ../../source/features.rst:94
msgid "Host a Website" msgid "Host a Website"
msgstr "Eine Webseite hosten" msgstr "Eine Webseite hosten"
#: ../../source/features.rst:85 #: ../../source/features.rst:96
msgid "" msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag " "To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click " "the files and folders that make up the static content there, and click "
@ -312,7 +339,7 @@ msgstr ""
"Webseiten-Reiter, ziehe die Dateien und Ordner hinein, aus denen die " "Webseiten-Reiter, ziehe die Dateien und Ordner hinein, aus denen die "
"statische Webseite besteht, und klicke auf „Webseite veröffentlichen\"." "statische Webseite besteht, und klicke auf „Webseite veröffentlichen\"."
#: ../../source/features.rst:89 #: ../../source/features.rst:100
msgid "" msgid ""
"If you add an ``index.html`` file, it will render when someone loads your" "If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, " " website. You should also include any other HTML files, CSS files, "
@ -322,13 +349,13 @@ msgid ""
" WordPress.)" " WordPress.)"
msgstr "" msgstr ""
"Wenn du eine ``index.html``-Datei hinzufügst, wird sie beim Öffnen der " "Wenn du eine ``index.html``-Datei hinzufügst, wird sie beim Öffnen der "
"Webseite dargestellt. Du solltest auch alle anderen HTML-Dateien sowie CSS- " "Webseite dargestellt. Du solltest auch alle anderen HTML-Dateien sowie "
"und JavaScript-Dateien und Bilder mit einbeziehen, aus denen die Webseite " "CSS- und JavaScript-Dateien und Bilder mit einbeziehen, aus denen die "
"besteht. (Beachte, dass OnionShare nur *statische* Webseiten hosten kann. Es " "Webseite besteht. (Beachte, dass OnionShare nur *statische* Webseiten "
"kann keine Webseiten hosten, die Code ausführen oder auf Datenbanken " "hosten kann. Es kann keine Webseiten hosten, die Code ausführen oder auf "
"zugreifen. So kann man z.B. WordPress nicht verwenden.)" "Datenbanken zugreifen. So kann man z.B. WordPress nicht verwenden.)"
#: ../../source/features.rst:91 #: ../../source/features.rst:102
msgid "" msgid ""
"If you don't have an ``index.html`` file, it will show a directory " "If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and " "listing instead, and people loading it can look through the files and "
@ -338,11 +365,11 @@ msgstr ""
"Verzeichnisstruktur angezeigt; beim Aufruf können Personen die Dateien " "Verzeichnisstruktur angezeigt; beim Aufruf können Personen die Dateien "
"durchsehen und herunterladen." "durchsehen und herunterladen."
#: ../../source/features.rst:98 #: ../../source/features.rst:109
msgid "Content Security Policy" msgid "Content Security Policy"
msgstr "Content-Security-Policy" msgstr "Content-Security-Policy"
#: ../../source/features.rst:100 #: ../../source/features.rst:111
msgid "" msgid ""
"By default OnionShare helps secure your website by setting a strict " "By default OnionShare helps secure your website by setting a strict "
"`Content Security Police " "`Content Security Police "
@ -350,13 +377,13 @@ msgid ""
"However, this prevents third-party content from loading inside the web " "However, this prevents third-party content from loading inside the web "
"page." "page."
msgstr "" msgstr ""
"Standardmäßig wird OnionShare beim Absichern deiner Webseite helfen, indem " "Standardmäßig wird OnionShare beim Absichern deiner Webseite helfen, "
"es einen strikten `Content-Security-Policy <https://en.wikipedia.org/wiki/" "indem es einen strikten `Content-Security-Policy "
"Content_Security_Policy>`_-Header setzt. Allerdings wird hierdurch " "<https://en.wikipedia.org/wiki/Content_Security_Policy>`_-Header setzt. "
"verhindert, dass Inhalte von Drittanbietern innerhalb der Webseite geladen " "Allerdings wird hierdurch verhindert, dass Inhalte von Drittanbietern "
"werden." "innerhalb der Webseite geladen werden."
#: ../../source/features.rst:102 #: ../../source/features.rst:113
msgid "" msgid ""
"If you want to load content from third-party websites, like assets or " "If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, check the \"Don't send Content Security " "JavaScript libraries from CDNs, check the \"Don't send Content Security "
@ -365,15 +392,15 @@ msgid ""
msgstr "" msgstr ""
"Falls du auch Inhalte von Drittanbieter-Webseiten laden willst, wie z.B. " "Falls du auch Inhalte von Drittanbieter-Webseiten laden willst, wie z.B. "
"Inhalte oder JavaScript-Bibliotheken von CDNs, musst du einen Haken bei " "Inhalte oder JavaScript-Bibliotheken von CDNs, musst du einen Haken bei "
"„Content-Security-Policy-Header deaktivieren (ermöglicht es, Ressourcen von " "„Content-Security-Policy-Header deaktivieren (ermöglicht es, Ressourcen "
"Drittanbietern auf deiner Onion-Webseite einzubinden)“ setzen, bevor du den " "von Drittanbietern auf deiner Onion-Webseite einzubinden)“ setzen, bevor "
"Dienst startest." "du den Dienst startest."
#: ../../source/features.rst:105 #: ../../source/features.rst:116
msgid "Tips for running a website service" msgid "Tips for running a website service"
msgstr "Tipps zum Betreiben eines Webseiten-Dienstes" msgstr "Tipps zum Betreiben eines Webseiten-Dienstes"
#: ../../source/features.rst:107 #: ../../source/features.rst:118
msgid "" msgid ""
"If you want to host a long-term website using OnionShare (meaning not " "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 " "something to quickly show someone something), it's recommended you do it "
@ -382,15 +409,16 @@ msgid ""
"(see :ref:`save_tabs`) so you can resume the website with the same " "(see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later." "address if you close OnionShare and re-open it later."
msgstr "" msgstr ""
"Falls du eine Webseite längerfristig über OnionShare anbieten (und nicht nur " "Falls du eine Webseite längerfristig über OnionShare anbieten (und nicht "
"kurz jemandem etwas zeigen) möchtest, solltest du dies auf einem separaten, " "nur kurz jemandem etwas zeigen) möchtest, solltest du dies auf einem "
"eigens dafür eingerichteten Rechner tun, der immer läuft und mit dem " "separaten, eigens dafür eingerichteten Rechner tun, der immer läuft und "
"Internet verbunden ist; nicht mit dem, den du sonst regelmäßig benutzt. " "mit dem Internet verbunden ist; nicht mit dem, den du sonst regelmäßig "
"Außerdem solltest du den Reiter speichern (see :ref:`save_tabs`), so dass du " "benutzt. Außerdem solltest du den Reiter speichern (see "
"die Webseite mit derselben Adresse weiterbetreiben kannst, falls du " ":ref:`save_tabs`), so dass du die Webseite mit derselben Adresse "
"OnionShare schließt und später wieder öffnest." "weiterbetreiben kannst, falls du OnionShare schließt und später wieder "
"öffnest."
#: ../../source/features.rst:110 #: ../../source/features.rst:121
msgid "" msgid ""
"If your website is intended for the public, you should run it as a public" "If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_passwords`)." " service (see :ref:`turn_off_passwords`)."
@ -398,11 +426,11 @@ msgstr ""
"Falls du die Webseite öffentlich betreiben wilst, solltest du sie als " "Falls du die Webseite öffentlich betreiben wilst, solltest du sie als "
"öffentlichen Dienst hosten (see :ref:`disable_passwords`)." "öffentlichen Dienst hosten (see :ref:`disable_passwords`)."
#: ../../source/features.rst:113 #: ../../source/features.rst:124
msgid "Chat Anonymously" msgid "Chat Anonymously"
msgstr "Anonym chatten" msgstr "Anonym chatten"
#: ../../source/features.rst:115 #: ../../source/features.rst:126
msgid "" msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't" "You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"." " log anything. Just open a chat tab and click \"Start chat server\"."
@ -411,7 +439,7 @@ msgstr ""
"aufsetzen, der nichts aufzeichnet. Öffne einfach einen Chat-Reiter und " "aufsetzen, der nichts aufzeichnet. Öffne einfach einen Chat-Reiter und "
"klicke auf „Chat starten“." "klicke auf „Chat starten“."
#: ../../source/features.rst:119 #: ../../source/features.rst:130
msgid "" msgid ""
"After you start the server, copy the OnionShare address and send it to " "After you start the server, copy the OnionShare address and send it to "
"the people you want in the anonymous chat room. If it's important to " "the people you want in the anonymous chat room. If it's important to "
@ -419,11 +447,12 @@ msgid ""
"the OnionShare address." "the OnionShare address."
msgstr "" msgstr ""
"Nachdem du den Dienst gestartest hast, kopiere die OnionShare-Adresse und" "Nachdem du den Dienst gestartest hast, kopiere die OnionShare-Adresse und"
"schicke sie den Leuten, die du in dem anonymen Chatroom gerne hättest. Falls " " schicke sie den Leuten, die du in dem anonymen Chatroom gerne hättest. "
"es wichtig ist, den Teilnehmerkreis strikt zu beschränken, solltest du einen " "Falls es wichtig ist, den Teilnehmerkreis strikt zu beschränken, solltest"
"verschlüsselten Messenger zum Teilen der OnionShare-Adresse verwenden." " du einen verschlüsselten Messenger zum Teilen der OnionShare-Adresse "
"verwenden."
#: ../../source/features.rst:124 #: ../../source/features.rst:135
msgid "" msgid ""
"People can join the chat room by loading its OnionShare address in Tor " "People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to " "Browser. The chat room requires JavasScript, so everyone who wants to "
@ -431,11 +460,11 @@ msgid ""
"\"Standard\" or \"Safer\", instead of \"Safest\"." "\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr "" msgstr ""
"Man kann dem Chatroom beitreten, indem man die OnionShare-Adresse im Tor " "Man kann dem Chatroom beitreten, indem man die OnionShare-Adresse im Tor "
"Browser aufruft. Der Chatroom setzt JavaScript voraus, d.h. jeder Teilnehmer " "Browser aufruft. Der Chatroom setzt JavaScript voraus, d.h. jeder "
"muss im Tor Browser seinen Sicherheitslevel auf „Standard“ oder „Safer“ (" "Teilnehmer muss im Tor Browser seinen Sicherheitslevel auf „Standard“ "
"anstelle von Safest) setzen." "oder „Safer“ (anstelle von Safest) setzen."
#: ../../source/features.rst:127 #: ../../source/features.rst:138
msgid "" msgid ""
"When someone joins the chat room they get assigned a random name. They " "When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel " "can change their name by typing a new name in the box in the left panel "
@ -448,7 +477,7 @@ msgstr ""
"Chatverlauf wird nicht angezeigt, selbst wenn andere bereits zuvor im " "Chatverlauf wird nicht angezeigt, selbst wenn andere bereits zuvor im "
"Chatroot gechattet hatten, da der Chatverlauf nirgendwo gespeichert wird." "Chatroot gechattet hatten, da der Chatverlauf nirgendwo gespeichert wird."
#: ../../source/features.rst:133 #: ../../source/features.rst:144
msgid "" msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change " "In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity." "their name to anything, and there is no way to confirm anyone's identity."
@ -456,7 +485,7 @@ msgstr ""
"In einem OnionShare-Chatroom ist jeder anonym. Jeder kann seinen Namen " "In einem OnionShare-Chatroom ist jeder anonym. Jeder kann seinen Namen "
"beliebig ändern und die Identität der Nutzer kann nicht überprüft werden." "beliebig ändern und die Identität der Nutzer kann nicht überprüft werden."
#: ../../source/features.rst:136 #: ../../source/features.rst:147
msgid "" msgid ""
"However, if you create an OnionShare chat room and securely send the " "However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted " "address only to a small group of trusted friends using encrypted "
@ -468,11 +497,11 @@ msgstr ""
" nur an eine kleine Anzahl vertrauenswürdiger Freunde über einen " " nur an eine kleine Anzahl vertrauenswürdiger Freunde über einen "
"verschlüsselten Kanal geschickt hast." "verschlüsselten Kanal geschickt hast."
#: ../../source/features.rst:139 #: ../../source/features.rst:150
msgid "How is this useful?" msgid "How is this useful?"
msgstr "Wozu soll das gut sein?" msgstr "Wozu soll das gut sein?"
#: ../../source/features.rst:141 #: ../../source/features.rst:152
msgid "" msgid ""
"If you need to already be using an encrypted messaging app, what's the " "If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces." "point of an OnionShare chat room to begin with? It leaves less traces."
@ -481,7 +510,7 @@ msgstr ""
"verschlüsselten Messenger benutzen solltest? Sie hinterlassen weniger " "verschlüsselten Messenger benutzen solltest? Sie hinterlassen weniger "
"Spuren." "Spuren."
#: ../../source/features.rst:143 #: ../../source/features.rst:154
msgid "" msgid ""
"If you for example send a message to a Signal group, a copy of your " "If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the devices, and computers if they set up" "message ends up on each device (the devices, and computers if they set up"
@ -496,12 +525,13 @@ msgstr ""
" landet eine Kopie deiner Nachricht auf jedem Gerät (den Geräten und " " landet eine Kopie deiner Nachricht auf jedem Gerät (den Geräten und "
"Computern, falls auch Signal Desktop verwendet wird). Selbst wenn " "Computern, falls auch Signal Desktop verwendet wird). Selbst wenn "
"verschwindende Nachrichten aktiviert ist, lässt sich kaum mit Sicherheit " "verschwindende Nachrichten aktiviert ist, lässt sich kaum mit Sicherheit "
"sagen, dass alle Kopieren von allen Geräten entfernt wurden, und ggfs. auch " "sagen, dass alle Kopieren von allen Geräten entfernt wurden, und ggfs. "
"von anderen Orten, an denen Kopien gelandet sein können (z.B. in einer " "auch von anderen Orten, an denen Kopien gelandet sein können (z.B. in "
"Benachrichtigungs-Datenbank). OnionShare-Chatrooms speichern nirgendwo " "einer Benachrichtigungs-Datenbank). OnionShare-Chatrooms speichern "
"Nachrichten, so dass dieses Problem auf ein Minimum reduziert ist." "nirgendwo Nachrichten, so dass dieses Problem auf ein Minimum reduziert "
"ist."
#: ../../source/features.rst:146 #: ../../source/features.rst:157
msgid "" msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat " "OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any " "anonymously and securely with someone without needing to create any "
@ -511,17 +541,17 @@ msgid ""
"anonymity." "anonymity."
msgstr "" msgstr ""
"OnionShare-Chatrooms können außerdem für einander unbekannte Personen " "OnionShare-Chatrooms können außerdem für einander unbekannte Personen "
"nützlich sein, die sicher untereinander chatten wollen, ohne Benutzerkonten " "nützlich sein, die sicher untereinander chatten wollen, ohne "
"zu erstellen. Beispielsweise könnte eine Quelle einem Journalisten über eine " "Benutzerkonten zu erstellen. Beispielsweise könnte eine Quelle einem "
"Wegwerf-E-Mail-Adresse eine OnionShare-Adresse schicken und dann warten, bis " "Journalisten über eine Wegwerf-E-Mail-Adresse eine OnionShare-Adresse "
"der Journalist den Chatroom betritt; all dies, ohne die Anonymität zu " "schicken und dann warten, bis der Journalist den Chatroom betritt; all "
"gefährden." "dies, ohne die Anonymität zu gefährden."
#: ../../source/features.rst:150 #: ../../source/features.rst:161
msgid "How does the encryption work?" msgid "How does the encryption work?"
msgstr "Wie funktioniert die Verschlüsselung?" msgstr "Wie funktioniert die Verschlüsselung?"
#: ../../source/features.rst:152 #: ../../source/features.rst:163
msgid "" msgid ""
"Because OnionShare relies on Tor onion services, connections between the " "Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@ -531,13 +561,14 @@ msgid ""
" connections." " connections."
msgstr "" msgstr ""
"Weil OnionShare auf Tors Onion-Dienste aufbaut, sind alle Verbindungen " "Weil OnionShare auf Tors Onion-Dienste aufbaut, sind alle Verbindungen "
"zwischen Tor Browser und OnionShare Ende zu Ende verschlüsselt (E2EE). Wenn " "zwischen Tor Browser und OnionShare Ende zu Ende verschlüsselt (E2EE). "
"jemand eine Nachricht in einem OnionShare-Chatroom absetzt, wird diese durch " "Wenn jemand eine Nachricht in einem OnionShare-Chatroom absetzt, wird "
"die E2EE-Onion-Verbindung an den Chatserver gesendet, welcher sie dann " "diese durch die E2EE-Onion-Verbindung an den Chatserver gesendet, welcher"
"wiederum an alle anderen Mitglieder des Chatrooms über sog. WebSockets " " sie dann wiederum an alle anderen Mitglieder des Chatrooms über sog. "
"weiterschickt, wiederum durch deren eigene E2EE-Onion-Verbindungen." "WebSockets weiterschickt, wiederum durch deren eigene E2EE-Onion-"
"Verbindungen."
#: ../../source/features.rst:154 #: ../../source/features.rst:165
msgid "" msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on" "OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead." " the Tor onion service's encryption instead."
@ -749,3 +780,55 @@ msgstr ""
#~ "OnionShare-Chatrooms speichern nirgendwo " #~ "OnionShare-Chatrooms speichern nirgendwo "
#~ "Nachrichten, so dass es hier kein " #~ "Nachrichten, so dass es hier kein "
#~ "vergleichbares Problem gibt." #~ "vergleichbares Problem gibt."
#~ msgid "Receive Files"
#~ msgstr "Dateien empfangen"
#~ msgid ""
#~ "You can use OnionShare to let "
#~ "people anonymously upload files directly "
#~ "to your computer, essentially turning it"
#~ " into an anonymous dropbox. Open a"
#~ " \"Receive tab\", choose where you "
#~ "want to save the files and other"
#~ " settings, and then click \"Start "
#~ "Receive Mode\"."
#~ msgstr ""
#~ "Du kannst OnionShare dazu benutzen, um"
#~ " anderen Personen das anonyme Hochladen "
#~ "von Dateien direkt auf deinen Rechner"
#~ " zu ermöglichen; hierdurch wird dein "
#~ "Rechner sozusagen zu einem anonymen "
#~ "Briefkasten. Öffne einen „Dateien "
#~ "Empfangen”-Reiter, wähle einen Speicherpfad "
#~ "und andere Einstellungen, und klicke "
#~ "dann auf „Empfangsmodus starten”."
#~ msgid ""
#~ "This starts the OnionShare service. "
#~ "Anyone loading this address in their "
#~ "Tor Browser will be able to upload"
#~ " files to your computer."
#~ msgstr ""
#~ "Damit wird der OnionShare-Service "
#~ "gestartet. Jeder der diese Adresse mit"
#~ " dem Tor Browser öffnet, kann Dateien"
#~ " auf deinen Rechner hochladen."
#~ msgid ""
#~ "When someone uploads files to your "
#~ "receive service, by default they get "
#~ "saved to a folder called ``OnionShare``"
#~ " in the home folder on your "
#~ "computer, automatically organized into "
#~ "separate subfolders based on the time"
#~ " that the files get uploaded."
#~ msgstr ""
#~ "Wenn jemand Dateien auf deinen Dienst"
#~ " im Empfangsmodus hochlädt, werden diese"
#~ " standardmäßig in einem Ordner namens "
#~ "``OnionShare`` in deinem Benutzerverzeichnis "
#~ "abgelegt; die Dateien werden automatisch "
#~ "in Unterordner aufgeteilt, abhängig vom "
#~ "Hochladedatum."

View file

@ -7,16 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-12-01 17:29+0000\n" "PO-Revision-Date: 2020-12-01 17:29+0000\n"
"Last-Translator: george k <norhorn@gmail.com>\n" "Last-Translator: george k <norhorn@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: el\n" "Language: el\n"
"Language-Team: el <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2 #: ../../source/advanced.rst:2
@ -36,11 +35,11 @@ msgid ""
"address even if you reboot your computer." "address even if you reboot your computer."
msgstr "" msgstr ""
"Από προεπιλογή, τα πάντα στο OnionShare είναι προσωρινά. Εάν κλείσετε μια" "Από προεπιλογή, τα πάντα στο OnionShare είναι προσωρινά. Εάν κλείσετε μια"
"καρτέλα OnionShare, η διεύθυνσή της δεν θα υπάρχει πλέον και δεν μπορεί να " " καρτέλα OnionShare, η διεύθυνσή της δεν θα υπάρχει πλέον και δεν μπορεί "
"χρησιμοποιηθεί ξανά. Μερικές φορές ίσως χρειαστείτε μια ποιο μόνιμη υπηρεσία " "να χρησιμοποιηθεί ξανά. Μερικές φορές ίσως χρειαστείτε μια ποιο μόνιμη "
"OnionShare. Είναι χρήσιμο εάν θέλετε να φιλοξενήσετε έναν ιστότοπο που θα " "υπηρεσία OnionShare. Είναι χρήσιμο εάν θέλετε να φιλοξενήσετε έναν "
"είναι διαθέσιμος στην ίδια διεύθυνση OnionShare ακόμα και αν κάνετε " "ιστότοπο που θα είναι διαθέσιμος στην ίδια διεύθυνση OnionShare ακόμα και"
"επανεκκίνηση του υπολογιστή σας." " αν κάνετε επανεκκίνηση του υπολογιστή σας."
#: ../../source/advanced.rst:13 #: ../../source/advanced.rst:13
msgid "" msgid ""
@ -48,8 +47,8 @@ msgid ""
"open it when I open OnionShare\" box before starting the server. When a " "open it when I open OnionShare\" box before starting the server. When a "
"tab is saved a purple pin icon appears to the left of its server status." "tab is saved a purple pin icon appears to the left of its server status."
msgstr "" msgstr ""
"Για να διατηρήσετε οποιαδήποτε καρτέλα, επιλέξτε το \"Αποθήκευση αυτής της " "Για να διατηρήσετε οποιαδήποτε καρτέλα, επιλέξτε το \"Αποθήκευση αυτής "
"καρτέλας και αυτόματη έναρξη με το OnionShare\" πριν ξεκινήσετε τον " "της καρτέλας και αυτόματη έναρξη με το OnionShare\" πριν ξεκινήσετε τον "
"διακομιστή. Όταν αποθηκεύεται μια καρτέλα, εμφανίζεται ένα μώβ εικονίδιο " "διακομιστή. Όταν αποθηκεύεται μια καρτέλα, εμφανίζεται ένα μώβ εικονίδιο "
"καρφίτσωσης στα αριστερά της κατάστασης του διακομιστή." "καρφίτσωσης στα αριστερά της κατάστασης του διακομιστή."
@ -60,8 +59,8 @@ msgid ""
" they will start with the same OnionShare address and password." " they will start with the same OnionShare address and password."
msgstr "" msgstr ""
"Όταν κάνετε έξοδο από το OnionShare και άνοιγμα ξανά, οι αποθηκευμένες " "Όταν κάνετε έξοδο από το OnionShare και άνοιγμα ξανά, οι αποθηκευμένες "
"καρτέλες σας θα ξεκινήσουν ανοιχτές. Θα πρέπει να εκκινήσετε χειροκίνητα την " "καρτέλες σας θα ξεκινήσουν ανοιχτές. Θα πρέπει να εκκινήσετε χειροκίνητα "
"κάθε υπηρεσία, αλλά θα ξεκινήσουν με την ίδια διεύθυνση και κωδικό " "την κάθε υπηρεσία, αλλά θα ξεκινήσουν με την ίδια διεύθυνση και κωδικό "
"OnionShare." "OnionShare."
#: ../../source/advanced.rst:21 #: ../../source/advanced.rst:21
@ -69,8 +68,8 @@ msgid ""
"If you save a tab, a copy of that tab's onion service secret key will be " "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." "stored on your computer with your OnionShare settings."
msgstr "" msgstr ""
"Εάν αποθηκεύσετε μια καρτέλα, ένα αντίγραφο κλειδιού της υπηρεσίας onion της " "Εάν αποθηκεύσετε μια καρτέλα, ένα αντίγραφο κλειδιού της υπηρεσίας onion "
"καρτέλας, θα αποθηκευτεί στον υπολογιστή σύμφωνα με τις ρυθμίσεις του " "της καρτέλας, θα αποθηκευτεί στον υπολογιστή σύμφωνα με τις ρυθμίσεις του"
" OnionShare." " OnionShare."
#: ../../source/advanced.rst:26 #: ../../source/advanced.rst:26
@ -85,9 +84,9 @@ msgid ""
"stopped to prevent a brute force attack against the OnionShare service." "stopped to prevent a brute force attack against the OnionShare service."
msgstr "" msgstr ""
"Από προεπιλογή, οι υπηρεσίες OnionShare προστατεύονται με το όνομα χρήστη" "Από προεπιλογή, οι υπηρεσίες OnionShare προστατεύονται με το όνομα χρήστη"
"``onionshare`` και έναν τυχαίο κωδικό πρόσβασης. Με τη χρήση 20 λανθασμένων " " ``onionshare`` και έναν τυχαίο κωδικό πρόσβασης. Με τη χρήση 20 "
"προσπαθειών, η υπηρεσία onion διακόπτεται αυτόματα για να αποφευχθεί μια " "λανθασμένων προσπαθειών, η υπηρεσία onion διακόπτεται αυτόματα για να "
"επίθεση brute force κατά της υπηρεσίας OnionShare." "αποφευχθεί μια επίθεση brute force κατά της υπηρεσίας OnionShare."
#: ../../source/advanced.rst:31 #: ../../source/advanced.rst:31
msgid "" msgid ""
@ -101,10 +100,10 @@ msgstr ""
"Μερικές φορές μπορεί να θέλετε η υπηρεσία OnionShare να είναι δημόσια " "Μερικές φορές μπορεί να θέλετε η υπηρεσία OnionShare να είναι δημόσια "
"προσβάσιμη, ή να ρυθμίσετε την υπηρεσία λήψης OnionShare ώστε να μπορεί " "προσβάσιμη, ή να ρυθμίσετε την υπηρεσία λήψης OnionShare ώστε να μπορεί "
"κάποιος να σας στέλνει με ασφάλεια και ανώνυμα αρχεία. Σε αυτήν την " "κάποιος να σας στέλνει με ασφάλεια και ανώνυμα αρχεία. Σε αυτήν την "
"περίπτωση, είναι καλύτερα να απενεργοποιήσετε εντελώς τον κωδικό πρόσβασης. " "περίπτωση, είναι καλύτερα να απενεργοποιήσετε εντελώς τον κωδικό "
"Εάν δεν το κάνετε αυτό, κάποιος μπορεί να αναγκάσει τον διακομιστή σας να " "πρόσβασης. Εάν δεν το κάνετε αυτό, κάποιος μπορεί να αναγκάσει τον "
"σταματήσει απλά κάνοντας 20 λανθασμένες δοκιμές για τον κωδικό πρόσβασής " "διακομιστή σας να σταματήσει απλά κάνοντας 20 λανθασμένες δοκιμές για τον"
"σας, ακόμη και αν γνωρίζουν τον σωστό." " κωδικό πρόσβασής σας, ακόμη και αν γνωρίζουν τον σωστό."
#: ../../source/advanced.rst:35 #: ../../source/advanced.rst:35
msgid "" msgid ""
@ -112,15 +111,32 @@ msgid ""
"password\" box before starting the server. Then the server will be public" "password\" box before starting the server. Then the server will be public"
" and won't have a password." " and won't have a password."
msgstr "" msgstr ""
"Για απενεργοποίηση των κωδικών πρόσβασης των καρτελών, επιλέξτε το \"Χωρίς " "Για απενεργοποίηση των κωδικών πρόσβασης των καρτελών, επιλέξτε το "
"χρήση κωδικού πρόσβασης\" πρίν την έναρξη του διακομιστή. Τότε ο διακομιστής " "\"Χωρίς χρήση κωδικού πρόσβασης\" πρίν την έναρξη του διακομιστή. Τότε ο "
"θα είναι δημόσιος χωρίς κωδικό πρόσβασης." "διακομιστής θα είναι δημόσιος χωρίς κωδικό πρόσβασης."
#: ../../source/advanced.rst:38 #: ../../source/advanced.rst:40
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:42
msgid ""
"By default, when people load an OnionShare service in Tor Browser they "
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
#: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
msgstr "Προγραμματισμένες ώρες" msgstr "Προγραμματισμένες ώρες"
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:49
msgid "" msgid ""
"OnionShare supports scheduling exactly when a service should start and " "OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its " "stop. Before starting a server, click \"Show advanced settings\" in its "
@ -128,38 +144,38 @@ msgid ""
"scheduled time\", \"Stop onion service at scheduled time\", or both, and " "scheduled time\", \"Stop onion service at scheduled time\", or both, and "
"set the respective desired dates and times." "set the respective desired dates and times."
msgstr "" msgstr ""
"Το OnionShare υποστηρίζει την προγραμματισμένη έναρξη και διακοπή υπηρεσιών " "Το OnionShare υποστηρίζει την προγραμματισμένη έναρξη και διακοπή "
"του. Πρίν την έναρξη του διακομιστή, κάντε κλικ στο \"Εμφάνιση προχωρημένων " "υπηρεσιών του. Πρίν την έναρξη του διακομιστή, κάντε κλικ στο \"Εμφάνιση "
"ρυθμίσεων\" της καρτέλας και επιλέξτε το \"Προγραμματισμένη εκκίνηση\", " "προχωρημένων ρυθμίσεων\" της καρτέλας και επιλέξτε το \"Προγραμματισμένη "
"\"Προγραμματισμένος τερματισμός\" ή και τα δύο, ρυθμίζοντας ημερομηνία και " "εκκίνηση\", \"Προγραμματισμένος τερματισμός\" ή και τα δύο, ρυθμίζοντας "
"ώρα αντίστοιχα." "ημερομηνία και ώρα αντίστοιχα."
#: ../../source/advanced.rst:43 #: ../../source/advanced.rst:52
msgid "" msgid ""
"If you scheduled a service to start in the future, when you click the " "If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it " "\"Start sharing\" button you will see a timer counting down until it "
"starts. If you scheduled it to stop in the future, after it's started you" "starts. If you scheduled it to stop in the future, after it's started you"
" will see a timer counting down to when it will stop automatically." " will see a timer counting down to when it will stop automatically."
msgstr "" msgstr ""
"Εάν προγραμματίσατε την εκκίνηση της υπηρεσίας, όταν κάνετε κλικ στο κουμπί " "Εάν προγραμματίσατε την εκκίνηση της υπηρεσίας, όταν κάνετε κλικ στο "
"\"Εκκίνηση διαμοιρασμού\" θα δείτε την εμφάνιση ενός χρονόμετρου. Εάν " "κουμπί \"Εκκίνηση διαμοιρασμού\" θα δείτε την εμφάνιση ενός χρονόμετρου. "
"προγραμματίσατε τερματισμό υπηρεσιών, θα δείτε ένα χρονόμετρο με αντίστροφη " "Εάν προγραμματίσατε τερματισμό υπηρεσιών, θα δείτε ένα χρονόμετρο με "
"μέτρηση έως τη λήξη." "αντίστροφη μέτρηση έως τη λήξη."
#: ../../source/advanced.rst:46 #: ../../source/advanced.rst:55
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically start can be used as " "**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given " "a dead man's switch**, where your service will be made public at a given "
"time in the future if anything happens to you. If nothing happens to you," "time in the future if anything happens to you. If nothing happens to you,"
" you can cancel the service before it's scheduled to start." " you can cancel the service before it's scheduled to start."
msgstr "" msgstr ""
"**Ο προγραμματισμός ενεργοποίησης της υπηρεσίας διαμοιρασμού του OnionShare " "**Ο προγραμματισμός ενεργοποίησης της υπηρεσίας διαμοιρασμού του "
"μπορεί να χρησιμοποιηθεί σε περίπτωση ανάγκης** όπου θα γίνει δηλαδή η " "OnionShare μπορεί να χρησιμοποιηθεί σε περίπτωση ανάγκης** όπου θα γίνει "
"ενεργοποίηση διαμοιρασμού αρχείων σας σε χρόνο που θα ορίσετε σε περίπτωση " "δηλαδή η ενεργοποίηση διαμοιρασμού αρχείων σας σε χρόνο που θα ορίσετε σε"
"που σας συμβεί κάτι. Εάν δεν σας συμβεί τίποτα μπορείτε να ακυρώσετε την " " περίπτωση που σας συμβεί κάτι. Εάν δεν σας συμβεί τίποτα μπορείτε να "
"υπηρεσία πριν αυτή ξεκινήσει." "ακυρώσετε την υπηρεσία πριν αυτή ξεκινήσει."
#: ../../source/advanced.rst:51 #: ../../source/advanced.rst:60
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to" "**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while " " limit exposure**, like if you want to share secret documents while "
@ -170,11 +186,11 @@ msgstr ""
" χρήσιμη για τον περιορισμό της έκθεσής σας**, όπως εάν επιθυμείτε τον " " χρήσιμη για τον περιορισμό της έκθεσής σας**, όπως εάν επιθυμείτε τον "
"διαμοιρασμό κρυφών αρχείων στο Διαδίκτυο για συγκεκριμένο χρόνο." "διαμοιρασμό κρυφών αρχείων στο Διαδίκτυο για συγκεκριμένο χρόνο."
#: ../../source/advanced.rst:56 #: ../../source/advanced.rst:65
msgid "Command-line Interface" msgid "Command-line Interface"
msgstr "Περιβάλλον γραμμής εντολών" msgstr "Περιβάλλον γραμμής εντολών"
#: ../../source/advanced.rst:58 #: ../../source/advanced.rst:67
msgid "" msgid ""
"In addition to its graphical interface, OnionShare has a command-line " "In addition to its graphical interface, OnionShare has a command-line "
"interface." "interface."
@ -182,7 +198,7 @@ msgstr ""
"Σε μια εναλλακτική του γραφικού περιβάλοντος, το OnionShare διαθέτει " "Σε μια εναλλακτική του γραφικού περιβάλοντος, το OnionShare διαθέτει "
"λειτουργία με γραμμή εντολών." "λειτουργία με γραμμή εντολών."
#: ../../source/advanced.rst:60 #: ../../source/advanced.rst:69
msgid "" msgid ""
"You can install just the command-line version of OnionShare using " "You can install just the command-line version of OnionShare using "
"``pip3``::" "``pip3``::"
@ -190,45 +206,45 @@ msgstr ""
"Μπορείτε να εγκαταστήσετε την έκδοση με γραμμή εντολών του OnionShare με " "Μπορείτε να εγκαταστήσετε την έκδοση με γραμμή εντολών του OnionShare με "
"χρήση του ``pip3``::" "χρήση του ``pip3``::"
#: ../../source/advanced.rst:64 #: ../../source/advanced.rst:73
msgid "" msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, " "Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``" "install it with: ``brew install tor``"
msgstr "" msgstr ""
"Υπενθυμίζεται ότι πάντοτε χρειάζεται η εγκατάσταση των πακέτων του ``tor``. " "Υπενθυμίζεται ότι πάντοτε χρειάζεται η εγκατάσταση των πακέτων του "
"Σε macOS, εγκαταστήστε το με: ``brew install tor``" "``tor``. Σε macOS, εγκαταστήστε το με: ``brew install tor``"
#: ../../source/advanced.rst:66 #: ../../source/advanced.rst:75
msgid "Then run it like this::" msgid "Then run it like this::"
msgstr "Και εκτελέστε όπως:" msgstr "Και εκτελέστε όπως:"
#: ../../source/advanced.rst:70 #: ../../source/advanced.rst:79
msgid "" msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can " "If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface " "also just run ``onionshare.cli`` to access the command-line interface "
"version." "version."
msgstr "" msgstr ""
"Εάν κάνετε εγκατάσταση του OnionShare με χρήση πακέτου του Linux Snapcraft, " "Εάν κάνετε εγκατάσταση του OnionShare με χρήση πακέτου του Linux "
"εκτελέστε την εντολή ``onionshare.cli`` για πρόσβαση στο περιβάλλον γραμμής " "Snapcraft, εκτελέστε την εντολή ``onionshare.cli`` για πρόσβαση στο "
"εντολών." "περιβάλλον γραμμής εντολών."
#: ../../source/advanced.rst:73 #: ../../source/advanced.rst:82
msgid "Usage" msgid "Usage"
msgstr "Χρήση" msgstr "Χρήση"
#: ../../source/advanced.rst:75 #: ../../source/advanced.rst:84
msgid "" msgid ""
"You can browse the command-line documentation by running ``onionshare " "You can browse the command-line documentation by running ``onionshare "
"--help``::" "--help``::"
msgstr "" msgstr ""
"Μπορείτε να περιηγηθείτε στην τεκμηρίωση της γραμμής εντολών με ``onionshare " "Μπορείτε να περιηγηθείτε στην τεκμηρίωση της γραμμής εντολών με "
"--help``::" "``onionshare --help``::"
#: ../../source/advanced.rst:132 #: ../../source/advanced.rst:147
msgid "Legacy Addresses" msgid "Legacy Addresses"
msgstr "Διευθύνσεις παλαιού τύπου" msgstr "Διευθύνσεις παλαιού τύπου"
#: ../../source/advanced.rst:134 #: ../../source/advanced.rst:149
msgid "" msgid ""
"OnionShare uses v3 Tor onion services by default. These are modern onion " "OnionShare uses v3 Tor onion services by default. These are modern onion "
"addresses that have 56 characters, for example::" "addresses that have 56 characters, for example::"
@ -236,7 +252,7 @@ msgstr ""
"Το OnionShare χρησιμοποιεί απο προεπιλογή υπηρεσίες onion Tor v3. Τη " "Το OnionShare χρησιμοποιεί απο προεπιλογή υπηρεσίες onion Tor v3. Τη "
"μοντέρνα εκδοχή διευθύνσεων 56 χαρακτήρων, για παράδειγμα::" "μοντέρνα εκδοχή διευθύνσεων 56 χαρακτήρων, για παράδειγμα::"
#: ../../source/advanced.rst:139 #: ../../source/advanced.rst:154
msgid "" msgid ""
"OnionShare still has support for v2 onion addresses, the old type of " "OnionShare still has support for v2 onion addresses, the old type of "
"onion addresses that have 16 characters, for example::" "onion addresses that have 16 characters, for example::"
@ -244,15 +260,15 @@ msgstr ""
"Το OnionShare υποστηρίζει ακόμη τις διευθύνσεις onion v2, παλαιού τύπου " "Το OnionShare υποστηρίζει ακόμη τις διευθύνσεις onion v2, παλαιού τύπου "
"διευθύνσεις των 16 χαρακτήρων, για παράδειγμα::" "διευθύνσεις των 16 χαρακτήρων, για παράδειγμα::"
#: ../../source/advanced.rst:143 #: ../../source/advanced.rst:158
msgid "" msgid ""
"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " "OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
"not recommended, as v3 onion addresses are more secure." "not recommended, as v3 onion addresses are more secure."
msgstr "" msgstr ""
"Το OnionShare αποκαλεί τις διευθύνσεις onion v2 \"παλαιές διευθύνσεις\" και " "Το OnionShare αποκαλεί τις διευθύνσεις onion v2 \"παλαιές διευθύνσεις\" "
"δεν τις προτείνει, καθώς οι διευθύνσεις onion v3 είναι ποιο ασφαλείς." "και δεν τις προτείνει, καθώς οι διευθύνσεις onion v3 είναι ποιο ασφαλείς."
#: ../../source/advanced.rst:145 #: ../../source/advanced.rst:160
msgid "" msgid ""
"To use legacy addresses, before starting a server click \"Show advanced " "To use legacy addresses, before starting a server click \"Show advanced "
"settings\" from its tab and check the \"Use a legacy address (v2 onion " "settings\" from its tab and check the \"Use a legacy address (v2 onion "
@ -261,14 +277,14 @@ msgid ""
"cannot remove legacy mode in that tab. Instead you must start a separate " "cannot remove legacy mode in that tab. Instead you must start a separate "
"service in a separate tab." "service in a separate tab."
msgstr "" msgstr ""
"Για χρήση των παλαιών διευθύνσεων, πριν την έναρξη του διακομιστή κάντε κλικ " "Για χρήση των παλαιών διευθύνσεων, πριν την έναρξη του διακομιστή κάντε "
"\"Εμφάνιση προχωρημένων ρυθμίσεων\" από την καρτέλα του και επιλέξτε το " "κλικ \"Εμφάνιση προχωρημένων ρυθμίσεων\" από την καρτέλα του και επιλέξτε"
"\"Χρήση παλαιών διευθύνσεων (υπηρεσία onion v2, μη προτεινόμενη)\". Σε " " το \"Χρήση παλαιών διευθύνσεων (υπηρεσία onion v2, μη προτεινόμενη)\". "
"παλαιή κατάσταση μπορείτε να ενεργοποιήσετε την αυθεντικοποίηση πελάτη. Μετά " "Σε παλαιή κατάσταση μπορείτε να ενεργοποιήσετε την αυθεντικοποίηση "
"την έναρξη του διακομιστή, δεν μπορείτε να αφαιρέσετε την παλαιά κατάσταση. " "πελάτη. Μετά την έναρξη του διακομιστή, δεν μπορείτε να αφαιρέσετε την "
"Θα πρέπει να εκκινήσετε νέα υπηρεσία σε νέα καρτέλα." "παλαιά κατάσταση. Θα πρέπει να εκκινήσετε νέα υπηρεσία σε νέα καρτέλα."
#: ../../source/advanced.rst:150 #: ../../source/advanced.rst:165
msgid "" msgid ""
"Tor Project plans to `completely deprecate v2 onion services " "Tor Project plans to `completely deprecate v2 onion services "
"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, " "<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
@ -276,8 +292,8 @@ msgid ""
"then." "then."
msgstr "" msgstr ""
"Το Tor Project σχεδιάζει την `πλήρη απενεργοποίηση των υπηρεσιών onion v2" "Το Tor Project σχεδιάζει την `πλήρη απενεργοποίηση των υπηρεσιών onion v2"
"<https://blog.torproject.org/v2-deprecation-timeline>`_ στις 15 Οκτωβρίου " " <https://blog.torproject.org/v2-deprecation-timeline>`_ στις 15 "
"2021 και την αφαίρεση των παλαιών onion υπηρεσιών νωρίτερα." "Οκτωβρίου 2021 και την αφαίρεση των παλαιών onion υπηρεσιών νωρίτερα."
#~ msgid "Make a symbolic link to the OnionShare command line binary line this::" #~ msgid "Make a symbolic link to the OnionShare command line binary line this::"
#~ msgstr "" #~ msgstr ""
@ -477,3 +493,4 @@ msgstr ""
#~ " services will soon be removed from" #~ " services will soon be removed from"
#~ " OnionShare as well." #~ " OnionShare as well."
#~ msgstr "" #~ msgstr ""

View file

@ -7,16 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:43-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-12-02 19:29+0000\n" "PO-Revision-Date: 2020-12-02 19:29+0000\n"
"Last-Translator: george k <norhorn@gmail.com>\n" "Last-Translator: george k <norhorn@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: el\n" "Language: el\n"
"Language-Team: el <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4 #: ../../source/features.rst:4
@ -39,7 +38,8 @@ msgid ""
"password. A typical OnionShare address might look something like this::" "password. A typical OnionShare address might look something like this::"
msgstr "" msgstr ""
"Από προεπιλογή, οι διευθύνσεις ιστού του OnionShare προστατεύονται με ένα" "Από προεπιλογή, οι διευθύνσεις ιστού του OnionShare προστατεύονται με ένα"
"τυχαίο κωδικό πρόσβασης. Μια τυπική διεύθυνση OnionShare μοιάζει κάπως έτσι::" " τυχαίο κωδικό πρόσβασης. Μια τυπική διεύθυνση OnionShare μοιάζει κάπως "
"έτσι::"
#: ../../source/features.rst:12 #: ../../source/features.rst:12
msgid "" msgid ""
@ -51,17 +51,17 @@ msgstr ""
"Είστε υπεύθυνοι για την ασφαλή κοινή χρήση της διεύθυνσης URL " "Είστε υπεύθυνοι για την ασφαλή κοινή χρήση της διεύθυνσης URL "
"χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, όπως με ένα " "χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, όπως με ένα "
"κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο ασφαλές, όπως μη " "κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο ασφαλές, όπως μη "
"κρυπτογραφημένο email, ανάλογα με το `μοντέλο απειλής σας <https://ssd.eff." "κρυπτογραφημένο email, ανάλογα με το `μοντέλο απειλής σας "
"org/module/your-security-plan>`_." "<https://ssd.eff.org/module/your-security-plan>`_."
#: ../../source/features.rst:14 #: ../../source/features.rst:14
msgid "" msgid ""
"The people you send the URL to then copy and paste it into their `Tor " "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." "Browser <https://www.torproject.org/>`_ to access the OnionShare service."
msgstr "" msgstr ""
"Οι αποδέκτες της διεύθυνσης URL πρέπει να την αντιγράψουν στο `Tor Browser " "Οι αποδέκτες της διεύθυνσης URL πρέπει να την αντιγράψουν στο `Tor "
"<https://www.torproject.org/>`_ για να αποκτήσουν πρόσβαση στην υπηρεσία " "Browser <https://www.torproject.org/>`_ για να αποκτήσουν πρόσβαση στην "
"OnionShare." "υπηρεσία OnionShare."
#: ../../source/features.rst:16 #: ../../source/features.rst:16
msgid "" msgid ""
@ -70,11 +70,11 @@ msgid ""
"until your laptop is unsuspended and on the Internet again. OnionShare " "until your laptop is unsuspended and on the Internet again. OnionShare "
"works best when working with people in real-time." "works best when working with people in real-time."
msgstr "" msgstr ""
"Εάν εκτελέσετε Το OnionShare στο laptop σας για να στείλετε αρχεία και τεθεί " "Εάν εκτελέσετε Το OnionShare στο laptop σας για να στείλετε αρχεία και "
"σε αναστολή πριν την ολοκλήρωση της μεταφοράς, η υπηρεσία δεν θα είναι " "τεθεί σε αναστολή πριν την ολοκλήρωση της μεταφοράς, η υπηρεσία δεν θα "
"διαθέσιμη έως ότου ο φορητός υπολογιστής σας συνδεθεί ξανά στο Διαδίκτυο. Το " "είναι διαθέσιμη έως ότου ο φορητός υπολογιστής σας συνδεθεί ξανά στο "
"OnionShare λειτουργεί καλύτερα όταν λειτουργεί με τους ανθρώπους σε " "Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα όταν λειτουργεί με τους "
"πραγματικό χρόνο." "ανθρώπους σε πραγματικό χρόνο."
#: ../../source/features.rst:18 #: ../../source/features.rst:18
msgid "" msgid ""
@ -85,8 +85,8 @@ msgid ""
":doc:`security design </security>` for more info." ":doc:`security design </security>` for more info."
msgstr "" msgstr ""
"Επειδή ο υπολογιστής σας είναι ο διακομιστής ιστού, *κανένας τρίτος δεν " "Επειδή ο υπολογιστής σας είναι ο διακομιστής ιστού, *κανένας τρίτος δεν "
"μπορεί να έχει πρόσβαση σε οτιδήποτε συμβαίνει στο OnionShare*, ούτε καν οι " "μπορεί να έχει πρόσβαση σε οτιδήποτε συμβαίνει στο OnionShare*, ούτε καν "
"προγραμματιστές του OnionShare. Είναι εντελώς ιδιωτικό. Και επειδή το " "οι προγραμματιστές του OnionShare. Είναι εντελώς ιδιωτικό. Και επειδή το "
"OnionShare βασίζεται σε υπηρεσίες Tor, προστατεύει και την ανωνυμία σας. " "OnionShare βασίζεται σε υπηρεσίες Tor, προστατεύει και την ανωνυμία σας. "
"Δείτε για περισσότερες πληροφορίες :doc:`σχεδίαση ασφαλείας </security>`." "Δείτε για περισσότερες πληροφορίες :doc:`σχεδίαση ασφαλείας </security>`."
@ -101,17 +101,18 @@ msgid ""
"share, and click \"Start sharing\"." "share, and click \"Start sharing\"."
msgstr "" msgstr ""
"Μπορείτε να χρησιμοποιήσετε το OnionShare για να στείλετε αρχεία και " "Μπορείτε να χρησιμοποιήσετε το OnionShare για να στείλετε αρχεία και "
"φακέλους σε άτομα με ασφάλεια και ανώνυμα. Ανοίξτε τη καρτέλα διαμοιρασμός " "φακέλους σε άτομα με ασφάλεια και ανώνυμα. Ανοίξτε τη καρτέλα "
"αρχείων, μεταφέρετε και αποθέστε αρχεία και φακέλους που θέλετε να " "διαμοιρασμός αρχείων, μεταφέρετε και αποθέστε αρχεία και φακέλους που "
"μοιραστείτε και κάντε κλικ στην επιλογή \"Εκκίνηση διαμοιρασμού\"." "θέλετε να μοιραστείτε και κάντε κλικ στην επιλογή \"Εκκίνηση "
"διαμοιρασμού\"."
#: ../../source/features.rst:27 ../../source/features.rst:93 #: ../../source/features.rst:27 ../../source/features.rst:104
msgid "" msgid ""
"After you add files, you'll see some settings. Make sure you choose the " "After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing." "setting you're interested in before you start sharing."
msgstr "" msgstr ""
"Μετά την προσθήκη αρχείων, σιγουρευτείτε ότι επιλέξατε τις σωστές ρυθμίσεις " "Μετά την προσθήκη αρχείων, σιγουρευτείτε ότι επιλέξατε τις σωστές "
"πριν την έναρξη του διαμοιρασμού." "ρυθμίσεις πριν την έναρξη του διαμοιρασμού."
#: ../../source/features.rst:31 #: ../../source/features.rst:31
msgid "" msgid ""
@ -121,11 +122,11 @@ msgid ""
" files have been sent (uncheck to allow downloading individual files)\" " " files have been sent (uncheck to allow downloading individual files)\" "
"box." "box."
msgstr "" msgstr ""
"Με την ολοκλήρωση αποστολής των αρχείων σας, το OnionShare σταματά αυτόματα " "Με την ολοκλήρωση αποστολής των αρχείων σας, το OnionShare σταματά "
"τον διακομιστή, αφαιρώντας την ιστοσελίδα από το Διαδίκτυο. Για να " "αυτόματα τον διακομιστή, αφαιρώντας την ιστοσελίδα από το Διαδίκτυο. Για "
"επιτρέψετε τη λήψη απο περισσότερους χρήστες, αποεπιλέξτε το \"Τερματισμός " "να επιτρέψετε τη λήψη απο περισσότερους χρήστες, αποεπιλέξτε το "
"διαμοιρασμού με την ολοκλήρωση αποστολής (αποεπιλέξτε ώστε να επιτρέπεται η " "\"Τερματισμός διαμοιρασμού με την ολοκλήρωση αποστολής (αποεπιλέξτε ώστε "
"λήψη μεμονωμένων αρχείων)\"." "να επιτρέπεται η λήψη μεμονωμένων αρχείων)\"."
#: ../../source/features.rst:34 #: ../../source/features.rst:34
msgid "" msgid ""
@ -134,7 +135,8 @@ msgid ""
" the files." " the files."
msgstr "" msgstr ""
"Επίσης, με την κατάργηση της επιλογής, μπορεί να πραγματοποιηθεί λήψη " "Επίσης, με την κατάργηση της επιλογής, μπορεί να πραγματοποιηθεί λήψη "
"μεμονωμένων αρχείων και όχι μόνο της συμπιεσμένης έκδοσης όλων των αρχείων." "μεμονωμένων αρχείων και όχι μόνο της συμπιεσμένης έκδοσης όλων των "
"αρχείων."
#: ../../source/features.rst:36 #: ../../source/features.rst:36
msgid "" msgid ""
@ -143,10 +145,11 @@ msgid ""
" website down. You can also click the \"↑\" icon in the top-right corner " " website down. You can also click the \"↑\" icon in the top-right corner "
"to show the history and progress of people downloading files from you." "to show the history and progress of people downloading files from you."
msgstr "" msgstr ""
"Όταν είστε έτοιμοι, κάντε κλικ στο κουμπί \"Έναρξη διαμοιρασμού\". Πάντοτε " "Όταν είστε έτοιμοι, κάντε κλικ στο κουμπί \"Έναρξη διαμοιρασμού\". "
"μπορείτε να κάνετε κλικ στο \"Διακοπή διαμοιρασμού\" ή να κάνετε έξοδο από " "Πάντοτε μπορείτε να κάνετε κλικ στο \"Διακοπή διαμοιρασμού\" ή να κάνετε "
"το OnionShare, με τον άμεσο τερματισμό της ιστοσελίδας. Μπορείτε επίσης να " "έξοδο από το OnionShare, με τον άμεσο τερματισμό της ιστοσελίδας. "
"δείτε το ιστορικό και την πρόοδο λήψεων με κλικ στο εικονίδιο \"↑\"." "Μπορείτε επίσης να δείτε το ιστορικό και την πρόοδο λήψεων με κλικ στο "
"εικονίδιο \"↑\"."
#: ../../source/features.rst:40 #: ../../source/features.rst:40
msgid "" msgid ""
@ -155,9 +158,10 @@ msgid ""
"or the person is otherwise exposed to danger, use an encrypted messaging " "or the person is otherwise exposed to danger, use an encrypted messaging "
"app." "app."
msgstr "" msgstr ""
"Τώρα που αποκτήσατε το OnionShare, αντιγράψτε και στείλτε τη διεύθυνση λήψης " "Τώρα που αποκτήσατε το OnionShare, αντιγράψτε και στείλτε τη διεύθυνση "
"των αρχείων σας. Εάν χρειάζεστε περισσότερη ασφάλεια ή ο αποδέκτης δεν είναι " "λήψης των αρχείων σας. Εάν χρειάζεστε περισσότερη ασφάλεια ή ο αποδέκτης "
"έμπιστος, χρησιμοποιήστε εφαρμογή αποστολής κρυπτογραφημένου μηνύματος." "δεν είναι έμπιστος, χρησιμοποιήστε εφαρμογή αποστολής κρυπτογραφημένου "
"μηνύματος."
#: ../../source/features.rst:42 #: ../../source/features.rst:42
msgid "" msgid ""
@ -171,54 +175,73 @@ msgstr ""
"απευθείας από τον υπολογιστή σας με κλικ στον σύνδεσμο \"Λήψη αρχείων\"." "απευθείας από τον υπολογιστή σας με κλικ στον σύνδεσμο \"Λήψη αρχείων\"."
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files" msgid "Receive Files and Messages"
msgstr "Λήψη αρχείων" msgstr ""
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "" msgid ""
"You can use OnionShare to let people anonymously upload files directly to" "You can use OnionShare to let people anonymously submit files and "
" your computer, essentially turning it into an anonymous dropbox. Open a " "messages directly to your computer, essentially turning it into an "
"\"Receive tab\", choose where you want to save the files and other " "anonymous dropbox. Open a receive tab and choose the settings that you "
"settings, and then click \"Start Receive Mode\"." "want."
msgstr "" msgstr ""
"Μπορείτε να χρησιμοποιήσετε το OnionShare για να επιτρέψετε σε άλλους την "
"αποστολή αρχείων στον υπολογιστή σας, μετατρέποντάς τον σε ένα ανώνυμο "
"dropbox. Ανοίξτε μία \"Καρτέλα λήψης\", επιλέξτε τη διαδρομή αποθήκευσης "
"αρχείων και κάντε κλικ στο \"Εκκίνηση κατάστασης λήψης\"."
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "" msgid "You can browse for a folder to save messages and files that get submitted."
"This starts the OnionShare service. Anyone loading this address in their " msgstr ""
"Tor Browser will be able to upload files to your computer."
#: ../../source/features.rst:56
msgid ""
"You can check \"Disable submitting text\" if want to only allow file "
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Αυτό θα ξεκινήσει την υπηρεσία του OnionShare. Οποιοσδήποτε προσθέσει τη "
"διεύθυνση στο Tor Browser του, θα μπορεί να ανεβάσει αρχεία στον υπολογιστή "
"σας."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
"You can check \"Use notification webhook\" and then choose a webhook URL "
"if you want to be notified when someone submits files or messages to your"
" OnionShare service. If you use this feature, OnionShare will make an "
"HTTP POST request to this URL whenever someone submits files or messages."
" For example, if you want to get an encrypted text messaging on the "
"messaging app `Keybase <https://keybase.io/>`_, you can start a "
"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
"``!webhook create onionshare-alerts``, and it will respond with a URL. "
"Use that as the notification webhook URL. If someone uploads a file to "
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:63
msgid ""
"When you are ready, click \"Start Receive Mode\". This starts the "
"OnionShare service. Anyone loading this address in their Tor Browser will"
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
#: ../../source/features.rst:67
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show " "You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you." "the history and progress of people sending files to you."
msgstr "" msgstr ""
"Μπορείτε επίσης κάνοντας κλικ στο εικονίδιο \"↓\" από την επάνω αριστερή " "Μπορείτε επίσης κάνοντας κλικ στο εικονίδιο \"↓\" από την επάνω αριστερή "
"γωνία, να δείτε το ιστορικό και την πρόοδο των αρχείων που σας στέλνουν." "γωνία, να δείτε το ιστορικό και την πρόοδο των αρχείων που σας στέλνουν."
#: ../../source/features.rst:60 #: ../../source/features.rst:69
msgid "Here is what it looks like for someone sending you files." #, fuzzy
msgid "Here is what it looks like for someone sending you files and messages."
msgstr "Δείτε παρακάτω πως εμφανίζονται τα αρχεία που σας στέλνουν." msgstr "Δείτε παρακάτω πως εμφανίζονται τα αρχεία που σας στέλνουν."
#: ../../source/features.rst:64 #: ../../source/features.rst:73
msgid "" msgid ""
"When someone uploads files to your receive service, by default they get " "When someone submits files or messages to your receive service, by "
"saved to a folder called ``OnionShare`` in the home folder on your " "default they get saved to a folder called ``OnionShare`` in the home "
"computer, automatically organized into separate subfolders based on the " "folder on your computer, automatically organized into separate subfolders"
"time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
"Μόλις κάποιος προσθέσει αρχεία στην υπηρεσία λήψεώς σας, απο προεπιλογή θα "
"αποθηκευτούν στο φάκελο ``OnionShare`` στον αρχικό φάκελο του υπολογιστή "
"σας, με αυτόματο διαχωρισμό και οργάνωση σύμφωνα με το χρόνο προσθήκης."
#: ../../source/features.rst:66 #: ../../source/features.rst:75
msgid "" msgid ""
"Setting up an OnionShare receiving service is useful for journalists and " "Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When " "others needing to securely accept documents from anonymous sources. When "
@ -226,17 +249,18 @@ msgid ""
"quite as secure version of `SecureDrop <https://securedrop.org/>`_, the " "quite as secure version of `SecureDrop <https://securedrop.org/>`_, the "
"whistleblower submission system." "whistleblower submission system."
msgstr "" msgstr ""
"Η ρύθμιση μιας υπηρεσίας λήψεως OnionShare είναι χρήσιμη σε δημοσιογράφους " "Η ρύθμιση μιας υπηρεσίας λήψεως OnionShare είναι χρήσιμη σε "
"και λοιπούς που χρειάζονται την ασφαλή ανταλλαγή εγγράφων από ανώνυμες " "δημοσιογράφους και λοιπούς που χρειάζονται την ασφαλή ανταλλαγή εγγράφων "
"πηγές. Όταν χρησιμοποιείται με αυτόν τον τρόπο, το OnionShare μοιάζει με μια " "από ανώνυμες πηγές. Όταν χρησιμοποιείται με αυτόν τον τρόπο, το "
"ελαφριά, απλούστερη και όχι τόσο ασφαλή έκδοση του `SecureDrop " "OnionShare μοιάζει με μια ελαφριά, απλούστερη και όχι τόσο ασφαλή έκδοση "
"<https://securedrop.org/>`_, το σύστημα υποβολής καταγγελλιών." "του `SecureDrop <https://securedrop.org/>`_, το σύστημα υποβολής "
"καταγγελλιών."
#: ../../source/features.rst:69 #: ../../source/features.rst:78
msgid "Use at your own risk" msgid "Use at your own risk"
msgstr "Χρησιμοποιήστε το με δική σας ευθύνη" msgstr "Χρησιμοποιήστε το με δική σας ευθύνη"
#: ../../source/features.rst:71 #: ../../source/features.rst:80
msgid "" msgid ""
"Just like with malicious e-mail attachments, it's possible someone could " "Just like with malicious e-mail attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your " "try to attack your computer by uploading a malicious file to your "
@ -244,11 +268,12 @@ msgid ""
"protect your system from malicious files." "protect your system from malicious files."
msgstr "" msgstr ""
"Όπως και με τα κακόβουλα συνημμένα e-mail, είναι πιθανό κάποιος να " "Όπως και με τα κακόβουλα συνημμένα e-mail, είναι πιθανό κάποιος να "
"προσπαθήσει να επιτεθεί στον υπολογιστή σας ανεβάζοντας ένα κακόβουλο αρχείο " "προσπαθήσει να επιτεθεί στον υπολογιστή σας ανεβάζοντας ένα κακόβουλο "
"στην υπηρεσία του OnionShare σας. Το OnionShare δεν διαθέτει μηχανισμούς " "αρχείο στην υπηρεσία του OnionShare σας. Το OnionShare δεν διαθέτει "
"ασφαλείας για την προστασία του συστήματός σας από κακόβουλα αρχεία." "μηχανισμούς ασφαλείας για την προστασία του συστήματός σας από κακόβουλα "
"αρχεία."
#: ../../source/features.rst:73 #: ../../source/features.rst:82
msgid "" msgid ""
"If you receive an Office document or a PDF through OnionShare, you can " "If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone" "convert these documents into PDFs that are safe to open using `Dangerzone"
@ -257,17 +282,21 @@ msgid ""
"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ " "<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
"disposableVM." "disposableVM."
msgstr "" msgstr ""
"Εάν λάβετε ένα έγγραφο του Office ή ένα PDF μέσω του OnionShare, μπορείτε να " "Εάν λάβετε ένα έγγραφο του Office ή ένα PDF μέσω του OnionShare, μπορείτε"
"μετατρέψετε αυτά τα έγγραφα σε PDFs που είναι ασφαλή για άνοιγμα με το `" " να μετατρέψετε αυτά τα έγγραφα σε PDFs που είναι ασφαλή για άνοιγμα με "
"Dangerzone <https://dangerzone.rocks/>`_. Μπορείτε επίσης να προστατευτείτε " "το `Dangerzone <https://dangerzone.rocks/>`_. Μπορείτε επίσης να "
"ανοίγοντας μη έμπιστα αρχεία με το `Tails <https://tails.boum.org/>`_ ή στο `" "προστατευτείτε ανοίγοντας μη έμπιστα αρχεία με το `Tails "
"Qubes <https://qubes-os.org/>`_." "<https://tails.boum.org/>`_ ή στο `Qubes <https://qubes-os.org/>`_."
#: ../../source/features.rst:76 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
msgstr "Συμβουλές για τη λειτουργία υπηρεσίας λήψης" msgstr "Συμβουλές για τη λειτουργία υπηρεσίας λήψης"
#: ../../source/features.rst:78 #: ../../source/features.rst:89
msgid "" msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's " "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" "recommended you do so on a separate, dedicated computer always powered on"
@ -275,36 +304,39 @@ msgid ""
"basis." "basis."
msgstr "" msgstr ""
"Εάν θέλετε να φιλοξενήσετε το δικό σας ανώνυμο dropbox χρησιμοποιώντας το" "Εάν θέλετε να φιλοξενήσετε το δικό σας ανώνυμο dropbox χρησιμοποιώντας το"
"OnionShare, συνιστάται να το κάνετε σε έναν ξεχωριστό, μεμονωμένο υπολογιστή " " OnionShare, συνιστάται να το κάνετε σε έναν ξεχωριστό, μεμονωμένο "
"που είναι πάντα ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο και όχι σε " "υπολογιστή που είναι πάντα ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο"
"αυτόν που χρησιμοποιείτε σε τακτική βάση." " και όχι σε αυτόν που χρησιμοποιείτε σε τακτική βάση."
#: ../../source/features.rst:80 #: ../../source/features.rst:91
#, fuzzy
msgid "" msgid ""
"If you intend to put the OnionShare address on your website or social " "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 " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_passwords`)." "public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
"Εάν σκοπεύετε να δημοσιεύσετε τη διεύθυνση OnionShare στην ιστοσελίδα ή στα " "Εάν σκοπεύετε να δημοσιεύσετε τη διεύθυνση OnionShare στην ιστοσελίδα ή "
"προφίλ κοινωνικών μέσων σας, αποθηκεύστε την καρτέλα (δείτε :ref:`save_tabs`)" "στα προφίλ κοινωνικών μέσων σας, αποθηκεύστε την καρτέλα (δείτε "
" και εκτελέστε ως δημόσια υπηρεσία (δείτε :ref:`turn_off_passwords`)." ":ref:`save_tabs`) και εκτελέστε ως δημόσια υπηρεσία (δείτε "
":ref:`turn_off_passwords`)."
#: ../../source/features.rst:83 #: ../../source/features.rst:94
msgid "Host a Website" msgid "Host a Website"
msgstr "Φιλοξενήστε μια ιστοσελίδα" msgstr "Φιλοξενήστε μια ιστοσελίδα"
#: ../../source/features.rst:85 #: ../../source/features.rst:96
msgid "" msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag " "To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click " "the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready." "\"Start sharing\" when you are ready."
msgstr "" msgstr ""
"Για να φιλοξενήσετε μια στατική HTML ιστοσελίδα με το OnionShare, ανοίξτε" "Για να φιλοξενήσετε μια στατική HTML ιστοσελίδα με το OnionShare, ανοίξτε"
"μια καρτέλα ιστοσελίδας, σύρετε τα αρχεία και τους φακέλους που αποτελούν το " " μια καρτέλα ιστοσελίδας, σύρετε τα αρχεία και τους φακέλους που "
"στατικό περιεχόμενο και κάντε κλικ στο \"Εκκίνηση διαμοιρασμού\" όταν είστε " "αποτελούν το στατικό περιεχόμενο και κάντε κλικ στο \"Εκκίνηση "
"έτοιμοι." "διαμοιρασμού\" όταν είστε έτοιμοι."
#: ../../source/features.rst:89 #: ../../source/features.rst:100
msgid "" msgid ""
"If you add an ``index.html`` file, it will render when someone loads your" "If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, " " website. You should also include any other HTML files, CSS files, "
@ -314,27 +346,27 @@ msgid ""
" WordPress.)" " WordPress.)"
msgstr "" msgstr ""
"Εάν προσθέσετε αρχείο ``index.html``, θα φορτώνεται με κάθε επίσκεψη στον" "Εάν προσθέσετε αρχείο ``index.html``, θα φορτώνεται με κάθε επίσκεψη στον"
"ιστότοπό σας. Θα πρέπει επίσης να συμπεριλάβετε και άλλα αρχεία HTML, αρχεία " " ιστότοπό σας. Θα πρέπει επίσης να συμπεριλάβετε και άλλα αρχεία HTML, "
"CSS, αρχεία JavaScript και εικόνες που θα αποτελούν την ιστοσελίδα. (" "αρχεία CSS, αρχεία JavaScript και εικόνες που θα αποτελούν την "
"Σημειώστε ότι το OnionShare υποστηρίζει μόνο φιλοξενία *στατικών* " "ιστοσελίδα. (Σημειώστε ότι το OnionShare υποστηρίζει μόνο φιλοξενία "
"ιστοσελίδων. Δεν μπορεί να φιλοξενήσει ιστότοπους που εκτελούν κώδικα ή " "*στατικών* ιστοσελίδων. Δεν μπορεί να φιλοξενήσει ιστότοπους που εκτελούν"
"χρησιμοποιούν βάσεις δεδομένων. Επομένως, δεν μπορείτε, για παράδειγμα, να " " κώδικα ή χρησιμοποιούν βάσεις δεδομένων. Επομένως, δεν μπορείτε, για "
"χρησιμοποιήσετε το WordPress)." "παράδειγμα, να χρησιμοποιήσετε το WordPress)."
#: ../../source/features.rst:91 #: ../../source/features.rst:102
msgid "" msgid ""
"If you don't have an ``index.html`` file, it will show a directory " "If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and " "listing instead, and people loading it can look through the files and "
"download them." "download them."
msgstr "" msgstr ""
"Εάν δεν διαθέτετε αρχείο ``index.html``, θα εμφανιστεί μια λίστα καταλόγου " "Εάν δεν διαθέτετε αρχείο ``index.html``, θα εμφανιστεί μια λίστα "
"οπού θα μπορεί να γίνει η λήψη τους." "καταλόγου οπού θα μπορεί να γίνει η λήψη τους."
#: ../../source/features.rst:98 #: ../../source/features.rst:109
msgid "Content Security Policy" msgid "Content Security Policy"
msgstr "Περιεχόμε πολιτικής ασφαλείας" msgstr "Περιεχόμε πολιτικής ασφαλείας"
#: ../../source/features.rst:100 #: ../../source/features.rst:111
msgid "" msgid ""
"By default OnionShare helps secure your website by setting a strict " "By default OnionShare helps secure your website by setting a strict "
"`Content Security Police " "`Content Security Police "
@ -343,27 +375,27 @@ msgid ""
"page." "page."
msgstr "" msgstr ""
"Από προεπιλογή το OnionShare σας βοηθά στην ασφάλιση της ιστοσελίδας " "Από προεπιλογή το OnionShare σας βοηθά στην ασφάλιση της ιστοσελίδας "
"ορίζοντας την επικεφαλίδα `Περιεχόμενο πολιτικής ασφαλείας <https://en." "ορίζοντας την επικεφαλίδα `Περιεχόμενο πολιτικής ασφαλείας "
"wikipedia.org/wiki/Content_Security_Policy>`_. Ωστόσο, αυτό εμποδίζει τη " "<https://en.wikipedia.org/wiki/Content_Security_Policy>`_. Ωστόσο, αυτό "
"φόρτωση περιεχομένου τρίτων εντός της ιστοσελίδας." "εμποδίζει τη φόρτωση περιεχομένου τρίτων εντός της ιστοσελίδας."
#: ../../source/features.rst:102 #: ../../source/features.rst:113
msgid "" msgid ""
"If you want to load content from third-party websites, like assets or " "If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, check the \"Don't send Content Security " "JavaScript libraries from CDNs, check the \"Don't send Content Security "
"Policy header (allows your website to use third-party resources)\" box " "Policy header (allows your website to use third-party resources)\" box "
"before starting the service." "before starting the service."
msgstr "" msgstr ""
"Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία ή " "Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία "
"βιβλιοθήκες JavaScript από CDN, επιλέξτε το πλαίσιο \"Μην στέλνετε την " "ή βιβλιοθήκες JavaScript από CDN, επιλέξτε το πλαίσιο \"Μην στέλνετε την "
"κεφαλίδα Πολιτικής ασφάλειας περιεχομένου (επιτρέπει στην ιστοσελίδα σας να " "κεφαλίδα Πολιτικής ασφάλειας περιεχομένου (επιτρέπει στην ιστοσελίδα σας "
"χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσία." "να χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσία."
#: ../../source/features.rst:105 #: ../../source/features.rst:116
msgid "Tips for running a website service" msgid "Tips for running a website service"
msgstr "Συμβουλές για εκτέλεση μιας υπηρεσίας ιστοσελίδας" msgstr "Συμβουλές για εκτέλεση μιας υπηρεσίας ιστοσελίδας"
#: ../../source/features.rst:107 #: ../../source/features.rst:118
msgid "" msgid ""
"If you want to host a long-term website using OnionShare (meaning not " "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 " "something to quickly show someone something), it's recommended you do it "
@ -372,14 +404,15 @@ msgid ""
"(see :ref:`save_tabs`) so you can resume the website with the same " "(see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later." "address if you close OnionShare and re-open it later."
msgstr "" msgstr ""
"Εάν θέλετε να φιλοξενήσετε μια μακροσκελή ιστοσελίδα με το OnionShare (που " "Εάν θέλετε να φιλοξενήσετε μια μακροσκελή ιστοσελίδα με το OnionShare "
"σημαίνει πως χρειάζεται χρόνος για περιήγηση), συνιστάται να το κάνετε σε " "(που σημαίνει πως χρειάζεται χρόνος για περιήγηση), συνιστάται να το "
"έναν ξεχωριστό, αυτόνομο υπολογιστή που είναι πάντα ενεργοποιημένος και " "κάνετε σε έναν ξεχωριστό, αυτόνομο υπολογιστή που είναι πάντα "
"συνδεδεμένος στο Διαδίκτυο και όχι σε αυτόν που χρησιμοποιείτε σε τακτική " "ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο και όχι σε αυτόν που "
"βάση. Αποθηκεύστε την καρτέλα (δείτε: :ref:`save_tabs`) ώστε να μπορείτε να " "χρησιμοποιείτε σε τακτική βάση. Αποθηκεύστε την καρτέλα (δείτε: "
"την ξανανοίξετε με την ίδια διεύθυνση εάν κλείσετε το OnionShare." ":ref:`save_tabs`) ώστε να μπορείτε να την ξανανοίξετε με την ίδια "
"διεύθυνση εάν κλείσετε το OnionShare."
#: ../../source/features.rst:110 #: ../../source/features.rst:121
msgid "" msgid ""
"If your website is intended for the public, you should run it as a public" "If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_passwords`)." " service (see :ref:`turn_off_passwords`)."
@ -387,20 +420,20 @@ msgstr ""
"Εάν η ιστοσελίδα σας προορίζεται για δημόσια χρήση, πρέπει να δηλωθεί ως " "Εάν η ιστοσελίδα σας προορίζεται για δημόσια χρήση, πρέπει να δηλωθεί ως "
"δημόσια υπηρεσία (δείτε :ref:`turn_off_passwords`)." "δημόσια υπηρεσία (δείτε :ref:`turn_off_passwords`)."
#: ../../source/features.rst:113 #: ../../source/features.rst:124
msgid "Chat Anonymously" msgid "Chat Anonymously"
msgstr "Συνομιλήστε ανώνυμα" msgstr "Συνομιλήστε ανώνυμα"
#: ../../source/features.rst:115 #: ../../source/features.rst:126
msgid "" msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't" "You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"." " log anything. Just open a chat tab and click \"Start chat server\"."
msgstr "" msgstr ""
"Χρησιμοποιήστε το OnionShare για να ρυθμίσετε ένα ιδιωτικό, ασφαλές δωμάτιο " "Χρησιμοποιήστε το OnionShare για να ρυθμίσετε ένα ιδιωτικό, ασφαλές "
"συνομιλίας που δεν καταγράφει τίποτα. Απλός ανοίξτε μια καρτέλα συνομιλίας " "δωμάτιο συνομιλίας που δεν καταγράφει τίποτα. Απλός ανοίξτε μια καρτέλα "
"και κάντε κλικ \"Έναρξη διακομιστή συνομιλίας\"." "συνομιλίας και κάντε κλικ \"Έναρξη διακομιστή συνομιλίας\"."
#: ../../source/features.rst:119 #: ../../source/features.rst:130
msgid "" msgid ""
"After you start the server, copy the OnionShare address and send it to " "After you start the server, copy the OnionShare address and send it to "
"the people you want in the anonymous chat room. If it's important to " "the people you want in the anonymous chat room. If it's important to "
@ -408,11 +441,11 @@ msgid ""
"the OnionShare address." "the OnionShare address."
msgstr "" msgstr ""
"Μετά την εκκίνηση του διακομιστή, αντιγράψτε τη διεύθυνση OnionShare και " "Μετά την εκκίνηση του διακομιστή, αντιγράψτε τη διεύθυνση OnionShare και "
"στείλτε την στα άτομα που θέλετε από ανώνυμο δωμάτιο συνομιλίας. Εάν είναι " "στείλτε την στα άτομα που θέλετε από ανώνυμο δωμάτιο συνομιλίας. Εάν "
"σημαντικό να περιορίσετε ποιος μπορεί να συμμετάσχει, χρησιμοποιήστε μια " "είναι σημαντικό να περιορίσετε ποιος μπορεί να συμμετάσχει, "
"κρυπτογραφημένη εφαρμογή ανταλλαγής μηνυμάτων." "χρησιμοποιήστε μια κρυπτογραφημένη εφαρμογή ανταλλαγής μηνυμάτων."
#: ../../source/features.rst:124 #: ../../source/features.rst:135
msgid "" msgid ""
"People can join the chat room by loading its OnionShare address in Tor " "People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to " "Browser. The chat room requires JavasScript, so everyone who wants to "
@ -420,23 +453,25 @@ msgid ""
"\"Standard\" or \"Safer\", instead of \"Safest\"." "\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr "" msgstr ""
"Οι χρήστες μπορούν να συμμετέχουν στο δωμάτιο επικοινωνίας με χρήση της " "Οι χρήστες μπορούν να συμμετέχουν στο δωμάτιο επικοινωνίας με χρήση της "
"διεύθυνσης OnionShare με τον Tor Browser. Το δωμάτιο συνομιλίας απαιτεί τη " "διεύθυνσης OnionShare με τον Tor Browser. Το δωμάτιο συνομιλίας απαιτεί "
"χρήση JavasScript, έτσι οι συμμετέχοντες θα πρέπει να ρυθμίσουν την ασφάλεια " "τη χρήση JavasScript, έτσι οι συμμετέχοντες θα πρέπει να ρυθμίσουν την "
"του Tor Browser σε \"Βασικό\" ή \"Ασφαλέστερο\" εκτός από \"Ασφαλέστατο\"." "ασφάλεια του Tor Browser σε \"Βασικό\" ή \"Ασφαλέστερο\" εκτός από "
"\"Ασφαλέστατο\"."
#: ../../source/features.rst:127 #: ../../source/features.rst:138
msgid "" msgid ""
"When someone joins the chat room they get assigned a random name. They " "When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel " "can change their name by typing a new name in the box in the left panel "
"and pressing ↵. Since the chat history isn't saved anywhere, it doesn't " "and pressing ↵. Since the chat history isn't saved anywhere, it doesn't "
"get displayed at all, even if others were already chatting in the room." "get displayed at all, even if others were already chatting in the room."
msgstr "" msgstr ""
"Με την είσοδο σε δωμάτιο συνομιλίας, αποδίδεται ένα τυχαίο όνομα. Μπορούν να " "Με την είσοδο σε δωμάτιο συνομιλίας, αποδίδεται ένα τυχαίο όνομα. Μπορούν"
"γίνει αλλαγή ονόματος πληκτρολογώντας ένα νέο στο πλαίσιο αριστερά και " " να γίνει αλλαγή ονόματος πληκτρολογώντας ένα νέο στο πλαίσιο αριστερά "
"πατώντας ↵. Δεδομένου ότι το ιστορικό συνομιλιών δεν αποθηκεύεται πουθενά, " "και πατώντας ↵. Δεδομένου ότι το ιστορικό συνομιλιών δεν αποθηκεύεται "
"δεν εμφανίζεται καθόλου ακόμα κι αν βρίσκεται συζήτηση σε εξέλιξη." "πουθενά, δεν εμφανίζεται καθόλου ακόμα κι αν βρίσκεται συζήτηση σε "
"εξέλιξη."
#: ../../source/features.rst:133 #: ../../source/features.rst:144
msgid "" msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change " "In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity." "their name to anything, and there is no way to confirm anyone's identity."
@ -445,7 +480,7 @@ msgstr ""
"μπορεί να αλλάξει το όνομά του και δεν υπάρχει τρόπος επιβεβαίωσης της " "μπορεί να αλλάξει το όνομά του και δεν υπάρχει τρόπος επιβεβαίωσης της "
"ταυτότητάς του." "ταυτότητάς του."
#: ../../source/features.rst:136 #: ../../source/features.rst:147
msgid "" msgid ""
"However, if you create an OnionShare chat room and securely send the " "However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted " "address only to a small group of trusted friends using encrypted "
@ -454,22 +489,24 @@ msgid ""
msgstr "" msgstr ""
"Ωστόσο, με τη δημιουργία δωματίου συνομιλίας OnionShare και αποστολή με " "Ωστόσο, με τη δημιουργία δωματίου συνομιλίας OnionShare και αποστολή με "
"ασφάλεια της διεύθυνση μόνο σε μια μικρή ομάδα αξιόπιστων φίλων " "ασφάλεια της διεύθυνση μόνο σε μια μικρή ομάδα αξιόπιστων φίλων "
"χρησιμοποιώντας κρυπτογραφημένα μηνύματα, μπορείτε να είστε αρκετά σίγουροι " "χρησιμοποιώντας κρυπτογραφημένα μηνύματα, μπορείτε να είστε αρκετά "
"ότι τα άτομα που συμμετέχουν στην αίθουσα συνομιλίας είναι φίλοι σας." "σίγουροι ότι τα άτομα που συμμετέχουν στην αίθουσα συνομιλίας είναι φίλοι"
" σας."
#: ../../source/features.rst:139 #: ../../source/features.rst:150
msgid "How is this useful?" msgid "How is this useful?"
msgstr "Πού χρησιμεύει;" msgstr "Πού χρησιμεύει;"
#: ../../source/features.rst:141 #: ../../source/features.rst:152
msgid "" msgid ""
"If you need to already be using an encrypted messaging app, what's the " "If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces." "point of an OnionShare chat room to begin with? It leaves less traces."
msgstr "" msgstr ""
"Εάν χρησιμοποιείτε ήδη μια κρυπτογραφημένη εφαρμογή ανταλλαγής μηνυμάτων," "Εάν χρησιμοποιείτε ήδη μια κρυπτογραφημένη εφαρμογή ανταλλαγής μηνυμάτων,"
"δεν υπάρχει λόγος του δωματίου συνομιλίας OnionShare; Αφήνει λιγότερα ίχνη." " δεν υπάρχει λόγος του δωματίου συνομιλίας OnionShare; Αφήνει λιγότερα "
"ίχνη."
#: ../../source/features.rst:143 #: ../../source/features.rst:154
msgid "" msgid ""
"If you for example send a message to a Signal group, a copy of your " "If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the devices, and computers if they set up" "message ends up on each device (the devices, and computers if they set up"
@ -480,15 +517,16 @@ msgid ""
"rooms don't store any messages anywhere, so the problem is reduced to a " "rooms don't store any messages anywhere, so the problem is reduced to a "
"minimum." "minimum."
msgstr "" msgstr ""
"Εάν, για παράδειγμα, στείλετε ένα μήνυμα σε μια ομάδα Signal, ένα αντίγραφο " "Εάν, για παράδειγμα, στείλετε ένα μήνυμα σε μια ομάδα Signal, ένα "
"του μηνύματός σας καταλήγει σε κάθε συσκευή, κάθε μέλους της ομάδας. Ακόμα " "αντίγραφο του μηνύματός σας καταλήγει σε κάθε συσκευή, κάθε μέλους της "
"κι αν η ενεργοποιηθεί η διαγραφή μηνυμάτων, είναι δύσκολο να επιβεβαιωθεί " "ομάδας. Ακόμα κι αν η ενεργοποιηθεί η διαγραφή μηνυμάτων, είναι δύσκολο "
"ότι όλα τα μηνύματα έχουν πραγματικά διαγραφεί από όλες τις συσκευές και από " "να επιβεβαιωθεί ότι όλα τα μηνύματα έχουν πραγματικά διαγραφεί από όλες "
"οποιαδήποτε άλλη τοποθεσία (όπως βάσεις δεδομένων ειδοποιήσεων) στα οποία " "τις συσκευές και από οποιαδήποτε άλλη τοποθεσία (όπως βάσεις δεδομένων "
"ενδέχεται να έχουν αποθηκευτεί. Τα δωμάτια συνομιλίας OnionShare δεν " "ειδοποιήσεων) στα οποία ενδέχεται να έχουν αποθηκευτεί. Τα δωμάτια "
"αποθηκεύουν μηνύματα πουθενά, οπότε το πρόβλημα μειώνεται στο ελάχιστο." "συνομιλίας OnionShare δεν αποθηκεύουν μηνύματα πουθενά, οπότε το πρόβλημα"
" μειώνεται στο ελάχιστο."
#: ../../source/features.rst:146 #: ../../source/features.rst:157
msgid "" msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat " "OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any " "anonymously and securely with someone without needing to create any "
@ -497,18 +535,18 @@ msgid ""
"journalist to join the chat room, all without compromosing their " "journalist to join the chat room, all without compromosing their "
"anonymity." "anonymity."
msgstr "" msgstr ""
"Τα δωμάτια συνομιλίας OnionShare είναι επίσης χρήσιμα για άτομα που θέλουν " "Τα δωμάτια συνομιλίας OnionShare είναι επίσης χρήσιμα για άτομα που "
"να συνομιλήσουν ανώνυμα και με ασφάλεια χωρίς να χρειάζεται να δημιουργήσουν " "θέλουν να συνομιλήσουν ανώνυμα και με ασφάλεια χωρίς να χρειάζεται να "
"λογαριασμό. Για παράδειγμα, μια πηγή μπορεί να στείλει μια διεύθυνση " "δημιουργήσουν λογαριασμό. Για παράδειγμα, μια πηγή μπορεί να στείλει μια "
"OnionShare σε έναν δημοσιογράφο χρησιμοποιώντας μια διεύθυνση e-mail μιας " "διεύθυνση OnionShare σε έναν δημοσιογράφο χρησιμοποιώντας μια διεύθυνση "
"χρήσης και στη συνέχεια, να περιμένει τον δημοσιογράφο να συμμετάσχει στο " "e-mail μιας χρήσης και στη συνέχεια, να περιμένει τον δημοσιογράφο να "
"δωμάτιο συνομιλίας, χωρίς να διακυβεύεται η ανωνυμία του." "συμμετάσχει στο δωμάτιο συνομιλίας, χωρίς να διακυβεύεται η ανωνυμία του."
#: ../../source/features.rst:150 #: ../../source/features.rst:161
msgid "How does the encryption work?" msgid "How does the encryption work?"
msgstr "Πως λειτουργεί η κρυπτογράφηση;" msgstr "Πως λειτουργεί η κρυπτογράφηση;"
#: ../../source/features.rst:152 #: ../../source/features.rst:163
msgid "" msgid ""
"Because OnionShare relies on Tor onion services, connections between the " "Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@ -518,13 +556,13 @@ msgid ""
" connections." " connections."
msgstr "" msgstr ""
"Επειδή το OnionShare βασίζεται σε υπηρεσίες onion του Tor, οι συνδέσεις " "Επειδή το OnionShare βασίζεται σε υπηρεσίες onion του Tor, οι συνδέσεις "
"μεταξύ του Tor Browser και του OnionShare είναι κρυπτογραφημένες από άκρο σε " "μεταξύ του Tor Browser και του OnionShare είναι κρυπτογραφημένες από άκρο"
"άκρο (E2EE). Όταν κάποιος δημοσιεύει ένα μήνυμα σε ένα δωμάτιο συνομιλίας, " " σε άκρο (E2EE). Όταν κάποιος δημοσιεύει ένα μήνυμα σε ένα δωμάτιο "
"το στέλνει στο διακομιστή μέσω της σύνδεσης onion E2EE, η οποία στη συνέχεια " "συνομιλίας, το στέλνει στο διακομιστή μέσω της σύνδεσης onion E2EE, η "
"το στέλνει σε όλα τα μέλη της συνομιλίας χρησιμοποιώντας WebSockets, μέσω " "οποία στη συνέχεια το στέλνει σε όλα τα μέλη της συνομιλίας "
"των συνδέσεων onion E2EE." "χρησιμοποιώντας WebSockets, μέσω των συνδέσεων onion E2EE."
#: ../../source/features.rst:154 #: ../../source/features.rst:165
msgid "" msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on" "OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead." " the Tor onion service's encryption instead."
@ -919,3 +957,54 @@ msgstr ""
#~ "WebSockets, through their E2EE onion " #~ "WebSockets, through their E2EE onion "
#~ "connections." #~ "connections."
#~ msgstr "" #~ msgstr ""
#~ msgid "Receive Files"
#~ msgstr "Λήψη αρχείων"
#~ msgid ""
#~ "You can use OnionShare to let "
#~ "people anonymously upload files directly "
#~ "to your computer, essentially turning it"
#~ " into an anonymous dropbox. Open a"
#~ " \"Receive tab\", choose where you "
#~ "want to save the files and other"
#~ " settings, and then click \"Start "
#~ "Receive Mode\"."
#~ msgstr ""
#~ "Μπορείτε να χρησιμοποιήσετε το OnionShare "
#~ "για να επιτρέψετε σε άλλους την "
#~ "αποστολή αρχείων στον υπολογιστή σας, "
#~ "μετατρέποντάς τον σε ένα ανώνυμο "
#~ "dropbox. Ανοίξτε μία \"Καρτέλα λήψης\", "
#~ "επιλέξτε τη διαδρομή αποθήκευσης αρχείων "
#~ "και κάντε κλικ στο \"Εκκίνηση κατάστασης"
#~ " λήψης\"."
#~ msgid ""
#~ "This starts the OnionShare service. "
#~ "Anyone loading this address in their "
#~ "Tor Browser will be able to upload"
#~ " files to your computer."
#~ msgstr ""
#~ "Αυτό θα ξεκινήσει την υπηρεσία του "
#~ "OnionShare. Οποιοσδήποτε προσθέσει τη "
#~ "διεύθυνση στο Tor Browser του, θα "
#~ "μπορεί να ανεβάσει αρχεία στον "
#~ "υπολογιστή σας."
#~ msgid ""
#~ "When someone uploads files to your "
#~ "receive service, by default they get "
#~ "saved to a folder called ``OnionShare``"
#~ " in the home folder on your "
#~ "computer, automatically organized into "
#~ "separate subfolders based on the time"
#~ " that the files get uploaded."
#~ msgstr ""
#~ "Μόλις κάποιος προσθέσει αρχεία στην "
#~ "υπηρεσία λήψεώς σας, απο προεπιλογή θα"
#~ " αποθηκευτούν στο φάκελο ``OnionShare`` "
#~ "στον αρχικό φάκελο του υπολογιστή σας,"
#~ " με αυτόματο διαχωρισμό και οργάνωση "
#~ "σύμφωνα με το χρόνο προσθήκης."

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -83,11 +83,28 @@ msgid ""
" and won't have a password." " and won't have a password."
msgstr "" msgstr ""
#: ../../source/advanced.rst:38 #: ../../source/advanced.rst:40
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:42
msgid ""
"By default, when people load an OnionShare service in Tor Browser they "
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
#: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
msgstr "" msgstr ""
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:49
msgid "" msgid ""
"OnionShare supports scheduling exactly when a service should start and " "OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its " "stop. Before starting a server, click \"Show advanced settings\" in its "
@ -96,7 +113,7 @@ msgid ""
"set the respective desired dates and times." "set the respective desired dates and times."
msgstr "" msgstr ""
#: ../../source/advanced.rst:43 #: ../../source/advanced.rst:52
msgid "" msgid ""
"If you scheduled a service to start in the future, when you click the " "If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it " "\"Start sharing\" button you will see a timer counting down until it "
@ -104,7 +121,7 @@ msgid ""
" will see a timer counting down to when it will stop automatically." " will see a timer counting down to when it will stop automatically."
msgstr "" msgstr ""
#: ../../source/advanced.rst:46 #: ../../source/advanced.rst:55
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically start can be used as " "**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given " "a dead man's switch**, where your service will be made public at a given "
@ -112,7 +129,7 @@ msgid ""
" you can cancel the service before it's scheduled to start." " you can cancel the service before it's scheduled to start."
msgstr "" msgstr ""
#: ../../source/advanced.rst:51 #: ../../source/advanced.rst:60
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to" "**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while " " limit exposure**, like if you want to share secret documents while "
@ -120,72 +137,72 @@ msgid ""
"days." "days."
msgstr "" msgstr ""
#: ../../source/advanced.rst:56 #: ../../source/advanced.rst:65
msgid "Command-line Interface" msgid "Command-line Interface"
msgstr "" msgstr ""
#: ../../source/advanced.rst:58 #: ../../source/advanced.rst:67
msgid "" msgid ""
"In addition to its graphical interface, OnionShare has a command-line " "In addition to its graphical interface, OnionShare has a command-line "
"interface." "interface."
msgstr "" msgstr ""
#: ../../source/advanced.rst:60 #: ../../source/advanced.rst:69
msgid "" msgid ""
"You can install just the command-line version of OnionShare using " "You can install just the command-line version of OnionShare using "
"``pip3``::" "``pip3``::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:64 #: ../../source/advanced.rst:73
msgid "" msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, " "Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``" "install it with: ``brew install tor``"
msgstr "" msgstr ""
#: ../../source/advanced.rst:66 #: ../../source/advanced.rst:75
msgid "Then run it like this::" msgid "Then run it like this::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:70 #: ../../source/advanced.rst:79
msgid "" msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can " "If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface " "also just run ``onionshare.cli`` to access the command-line interface "
"version." "version."
msgstr "" msgstr ""
#: ../../source/advanced.rst:73 #: ../../source/advanced.rst:82
msgid "Usage" msgid "Usage"
msgstr "" msgstr ""
#: ../../source/advanced.rst:75 #: ../../source/advanced.rst:84
msgid "" msgid ""
"You can browse the command-line documentation by running ``onionshare " "You can browse the command-line documentation by running ``onionshare "
"--help``::" "--help``::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:132 #: ../../source/advanced.rst:147
msgid "Legacy Addresses" msgid "Legacy Addresses"
msgstr "" msgstr ""
#: ../../source/advanced.rst:134 #: ../../source/advanced.rst:149
msgid "" msgid ""
"OnionShare uses v3 Tor onion services by default. These are modern onion " "OnionShare uses v3 Tor onion services by default. These are modern onion "
"addresses that have 56 characters, for example::" "addresses that have 56 characters, for example::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:139 #: ../../source/advanced.rst:154
msgid "" msgid ""
"OnionShare still has support for v2 onion addresses, the old type of " "OnionShare still has support for v2 onion addresses, the old type of "
"onion addresses that have 16 characters, for example::" "onion addresses that have 16 characters, for example::"
msgstr "" msgstr ""
#: ../../source/advanced.rst:143 #: ../../source/advanced.rst:158
msgid "" msgid ""
"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " "OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
"not recommended, as v3 onion addresses are more secure." "not recommended, as v3 onion addresses are more secure."
msgstr "" msgstr ""
#: ../../source/advanced.rst:145 #: ../../source/advanced.rst:160
msgid "" msgid ""
"To use legacy addresses, before starting a server click \"Show advanced " "To use legacy addresses, before starting a server click \"Show advanced "
"settings\" from its tab and check the \"Use a legacy address (v2 onion " "settings\" from its tab and check the \"Use a legacy address (v2 onion "
@ -195,7 +212,7 @@ msgid ""
"service in a separate tab." "service in a separate tab."
msgstr "" msgstr ""
#: ../../source/advanced.rst:150 #: ../../source/advanced.rst:165
msgid "" msgid ""
"Tor Project plans to `completely deprecate v2 onion services " "Tor Project plans to `completely deprecate v2 onion services "
"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, " "<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-15 14:43-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -76,7 +76,7 @@ msgid ""
"share, and click \"Start sharing\"." "share, and click \"Start sharing\"."
msgstr "" msgstr ""
#: ../../source/features.rst:27 ../../source/features.rst:93 #: ../../source/features.rst:27 ../../source/features.rst:104
msgid "" msgid ""
"After you add files, you'll see some settings. Make sure you choose the " "After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing." "setting you're interested in before you start sharing."
@ -123,42 +123,70 @@ msgid ""
msgstr "" msgstr ""
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files" msgid "Receive Files and Messages"
msgstr "" msgstr ""
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "" msgid ""
"You can use OnionShare to let people anonymously upload files directly to" "You can use OnionShare to let people anonymously submit files and "
" your computer, essentially turning it into an anonymous dropbox. Open a " "messages directly to your computer, essentially turning it into an "
"\"Receive tab\", choose where you want to save the files and other " "anonymous dropbox. Open a receive tab and choose the settings that you "
"settings, and then click \"Start Receive Mode\"." "want."
msgstr "" msgstr ""
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "You can browse for a folder to save messages and files that get submitted."
msgstr ""
#: ../../source/features.rst:56
msgid "" msgid ""
"This starts the OnionShare service. Anyone loading this address in their " "You can check \"Disable submitting text\" if want to only allow file "
"Tor Browser will be able to upload files to your computer." "uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
"You can check \"Use notification webhook\" and then choose a webhook URL "
"if you want to be notified when someone submits files or messages to your"
" OnionShare service. If you use this feature, OnionShare will make an "
"HTTP POST request to this URL whenever someone submits files or messages."
" For example, if you want to get an encrypted text messaging on the "
"messaging app `Keybase <https://keybase.io/>`_, you can start a "
"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
"``!webhook create onionshare-alerts``, and it will respond with a URL. "
"Use that as the notification webhook URL. If someone uploads a file to "
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:63
msgid ""
"When you are ready, click \"Start Receive Mode\". This starts the "
"OnionShare service. Anyone loading this address in their Tor Browser will"
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
#: ../../source/features.rst:67
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show " "You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you." "the history and progress of people sending files to you."
msgstr "" msgstr ""
#: ../../source/features.rst:60 #: ../../source/features.rst:69
msgid "Here is what it looks like for someone sending you files." msgid "Here is what it looks like for someone sending you files and messages."
msgstr "" msgstr ""
#: ../../source/features.rst:64 #: ../../source/features.rst:73
msgid "" msgid ""
"When someone uploads files to your receive service, by default they get " "When someone submits files or messages to your receive service, by "
"saved to a folder called ``OnionShare`` in the home folder on your " "default they get saved to a folder called ``OnionShare`` in the home "
"computer, automatically organized into separate subfolders based on the " "folder on your computer, automatically organized into separate subfolders"
"time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
#: ../../source/features.rst:66 #: ../../source/features.rst:75
msgid "" msgid ""
"Setting up an OnionShare receiving service is useful for journalists and " "Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When " "others needing to securely accept documents from anonymous sources. When "
@ -167,11 +195,11 @@ msgid ""
"whistleblower submission system." "whistleblower submission system."
msgstr "" msgstr ""
#: ../../source/features.rst:69 #: ../../source/features.rst:78
msgid "Use at your own risk" msgid "Use at your own risk"
msgstr "" msgstr ""
#: ../../source/features.rst:71 #: ../../source/features.rst:80
msgid "" msgid ""
"Just like with malicious e-mail attachments, it's possible someone could " "Just like with malicious e-mail attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your " "try to attack your computer by uploading a malicious file to your "
@ -179,7 +207,7 @@ msgid ""
"protect your system from malicious files." "protect your system from malicious files."
msgstr "" msgstr ""
#: ../../source/features.rst:73 #: ../../source/features.rst:82
msgid "" msgid ""
"If you receive an Office document or a PDF through OnionShare, you can " "If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone" "convert these documents into PDFs that are safe to open using `Dangerzone"
@ -189,11 +217,15 @@ msgid ""
"disposableVM." "disposableVM."
msgstr "" msgstr ""
#: ../../source/features.rst:76 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
msgstr "" msgstr ""
#: ../../source/features.rst:78 #: ../../source/features.rst:89
msgid "" msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's " "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" "recommended you do so on a separate, dedicated computer always powered on"
@ -201,25 +233,26 @@ msgid ""
"basis." "basis."
msgstr "" msgstr ""
#: ../../source/features.rst:80 #: ../../source/features.rst:91
msgid "" msgid ""
"If you intend to put the OnionShare address on your website or social " "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 " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_passwords`)." "public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
#: ../../source/features.rst:83 #: ../../source/features.rst:94
msgid "Host a Website" msgid "Host a Website"
msgstr "" msgstr ""
#: ../../source/features.rst:85 #: ../../source/features.rst:96
msgid "" msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag " "To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click " "the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready." "\"Start sharing\" when you are ready."
msgstr "" msgstr ""
#: ../../source/features.rst:89 #: ../../source/features.rst:100
msgid "" msgid ""
"If you add an ``index.html`` file, it will render when someone loads your" "If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, " " website. You should also include any other HTML files, CSS files, "
@ -229,18 +262,18 @@ msgid ""
" WordPress.)" " WordPress.)"
msgstr "" msgstr ""
#: ../../source/features.rst:91 #: ../../source/features.rst:102
msgid "" msgid ""
"If you don't have an ``index.html`` file, it will show a directory " "If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and " "listing instead, and people loading it can look through the files and "
"download them." "download them."
msgstr "" msgstr ""
#: ../../source/features.rst:98 #: ../../source/features.rst:109
msgid "Content Security Policy" msgid "Content Security Policy"
msgstr "" msgstr ""
#: ../../source/features.rst:100 #: ../../source/features.rst:111
msgid "" msgid ""
"By default OnionShare helps secure your website by setting a strict " "By default OnionShare helps secure your website by setting a strict "
"`Content Security Police " "`Content Security Police "
@ -249,7 +282,7 @@ msgid ""
"page." "page."
msgstr "" msgstr ""
#: ../../source/features.rst:102 #: ../../source/features.rst:113
msgid "" msgid ""
"If you want to load content from third-party websites, like assets or " "If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, check the \"Don't send Content Security " "JavaScript libraries from CDNs, check the \"Don't send Content Security "
@ -257,11 +290,11 @@ msgid ""
"before starting the service." "before starting the service."
msgstr "" msgstr ""
#: ../../source/features.rst:105 #: ../../source/features.rst:116
msgid "Tips for running a website service" msgid "Tips for running a website service"
msgstr "" msgstr ""
#: ../../source/features.rst:107 #: ../../source/features.rst:118
msgid "" msgid ""
"If you want to host a long-term website using OnionShare (meaning not " "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 " "something to quickly show someone something), it's recommended you do it "
@ -271,23 +304,23 @@ msgid ""
"address if you close OnionShare and re-open it later." "address if you close OnionShare and re-open it later."
msgstr "" msgstr ""
#: ../../source/features.rst:110 #: ../../source/features.rst:121
msgid "" msgid ""
"If your website is intended for the public, you should run it as a public" "If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_passwords`)." " service (see :ref:`turn_off_passwords`)."
msgstr "" msgstr ""
#: ../../source/features.rst:113 #: ../../source/features.rst:124
msgid "Chat Anonymously" msgid "Chat Anonymously"
msgstr "" msgstr ""
#: ../../source/features.rst:115 #: ../../source/features.rst:126
msgid "" msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't" "You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"." " log anything. Just open a chat tab and click \"Start chat server\"."
msgstr "" msgstr ""
#: ../../source/features.rst:119 #: ../../source/features.rst:130
msgid "" msgid ""
"After you start the server, copy the OnionShare address and send it to " "After you start the server, copy the OnionShare address and send it to "
"the people you want in the anonymous chat room. If it's important to " "the people you want in the anonymous chat room. If it's important to "
@ -295,7 +328,7 @@ msgid ""
"the OnionShare address." "the OnionShare address."
msgstr "" msgstr ""
#: ../../source/features.rst:124 #: ../../source/features.rst:135
msgid "" msgid ""
"People can join the chat room by loading its OnionShare address in Tor " "People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to " "Browser. The chat room requires JavasScript, so everyone who wants to "
@ -303,7 +336,7 @@ msgid ""
"\"Standard\" or \"Safer\", instead of \"Safest\"." "\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr "" msgstr ""
#: ../../source/features.rst:127 #: ../../source/features.rst:138
msgid "" msgid ""
"When someone joins the chat room they get assigned a random name. They " "When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel " "can change their name by typing a new name in the box in the left panel "
@ -311,13 +344,13 @@ msgid ""
"get displayed at all, even if others were already chatting in the room." "get displayed at all, even if others were already chatting in the room."
msgstr "" msgstr ""
#: ../../source/features.rst:133 #: ../../source/features.rst:144
msgid "" msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change " "In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity." "their name to anything, and there is no way to confirm anyone's identity."
msgstr "" msgstr ""
#: ../../source/features.rst:136 #: ../../source/features.rst:147
msgid "" msgid ""
"However, if you create an OnionShare chat room and securely send the " "However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted " "address only to a small group of trusted friends using encrypted "
@ -325,17 +358,17 @@ msgid ""
"room are your friends." "room are your friends."
msgstr "" msgstr ""
#: ../../source/features.rst:139 #: ../../source/features.rst:150
msgid "How is this useful?" msgid "How is this useful?"
msgstr "" msgstr ""
#: ../../source/features.rst:141 #: ../../source/features.rst:152
msgid "" msgid ""
"If you need to already be using an encrypted messaging app, what's the " "If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces." "point of an OnionShare chat room to begin with? It leaves less traces."
msgstr "" msgstr ""
#: ../../source/features.rst:143 #: ../../source/features.rst:154
msgid "" msgid ""
"If you for example send a message to a Signal group, a copy of your " "If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the devices, and computers if they set up" "message ends up on each device (the devices, and computers if they set up"
@ -347,7 +380,7 @@ msgid ""
"minimum." "minimum."
msgstr "" msgstr ""
#: ../../source/features.rst:146 #: ../../source/features.rst:157
msgid "" msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat " "OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any " "anonymously and securely with someone without needing to create any "
@ -357,11 +390,11 @@ msgid ""
"anonymity." "anonymity."
msgstr "" msgstr ""
#: ../../source/features.rst:150 #: ../../source/features.rst:161
msgid "How does the encryption work?" msgid "How does the encryption work?"
msgstr "" msgstr ""
#: ../../source/features.rst:152 #: ../../source/features.rst:163
msgid "" msgid ""
"Because OnionShare relies on Tor onion services, connections between the " "Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@ -371,7 +404,7 @@ msgid ""
" connections." " connections."
msgstr "" msgstr ""
#: ../../source/features.rst:154 #: ../../source/features.rst:165
msgid "" msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on" "OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead." " the Tor onion service's encryption instead."
@ -765,3 +798,46 @@ msgstr ""
#~ "connections." #~ "connections."
#~ msgstr "" #~ msgstr ""
#~ msgid "Receive Files"
#~ msgstr ""
#~ msgid ""
#~ "You can use OnionShare to let "
#~ "people anonymously upload files directly "
#~ "to your computer, essentially turning it"
#~ " into an anonymous dropbox. Open a"
#~ " \"Receive tab\", choose where you "
#~ "want to save the files and other"
#~ " settings, and then click \"Start "
#~ "Receive Mode\"."
#~ msgstr ""
#~ msgid ""
#~ "This starts the OnionShare service. "
#~ "Anyone loading this address in their "
#~ "Tor Browser will be able to upload"
#~ " files to your computer."
#~ msgstr ""
#~ msgid "Here is what it looks like for someone sending you files."
#~ msgstr ""
#~ msgid ""
#~ "When someone uploads files to your "
#~ "receive service, by default they get "
#~ "saved to a folder called ``OnionShare``"
#~ " in the home folder on your "
#~ "computer, automatically organized into "
#~ "separate subfolders based on the time"
#~ " that the files get uploaded."
#~ msgstr ""
#~ msgid ""
#~ "If you intend to put the "
#~ "OnionShare address on your website or"
#~ " social media profiles, save the tab"
#~ " (see :ref:`save_tabs`) and run it as"
#~ " a public service (see "
#~ ":ref:`turn_off_passwords`)."
#~ msgstr ""

View file

@ -7,16 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-12-04 23:29+0000\n" "PO-Revision-Date: 2020-12-04 23:29+0000\n"
"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n" "Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
"Language-Team: none\n"
"Language: es\n" "Language: es\n"
"Language-Team: none\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2 #: ../../source/advanced.rst:2
@ -37,9 +36,10 @@ msgid ""
msgstr "" msgstr ""
"En forma predeterminada, todo en OnionShare es temporario. Si cierras una" "En forma predeterminada, todo en OnionShare es temporario. Si cierras una"
" pestaña OnionShare, su dirección ya no existe, y no puede ser usada de " " pestaña OnionShare, su dirección ya no existe, y no puede ser usada de "
"nuevo. A veces, podrías querer que un servicio OnionShare sea persistente. " "nuevo. A veces, podrías querer que un servicio OnionShare sea "
"Esto es útil si quieres alojar un sitio web que esté disponible desde la " "persistente. Esto es útil si quieres alojar un sitio web que esté "
"misma dirección OnionShare, aún si reinicias tu computadora." "disponible desde la misma dirección OnionShare, aún si reinicias tu "
"computadora."
#: ../../source/advanced.rst:13 #: ../../source/advanced.rst:13
msgid "" msgid ""
@ -58,10 +58,10 @@ msgid ""
"start opened. You'll have to manually start each service, but when you do" "start opened. You'll have to manually start each service, but when you do"
" they will start with the same OnionShare address and password." " they will start with the same OnionShare address and password."
msgstr "" msgstr ""
"Cuando sales de OnionShare y lo vuelves a abrir, tus pestañas guardadas se " "Cuando sales de OnionShare y lo vuelves a abrir, tus pestañas guardadas "
"iniciarán abiertas. Tendrás que arrancar cada servicio manualmente, pero " "se iniciarán abiertas. Tendrás que arrancar cada servicio manualmente, "
"cuando lo hagas, se iniciarán con la misma dirección OnionShare, y con la " "pero cuando lo hagas, se iniciarán con la misma dirección OnionShare, y "
"misma contraseña." "con la misma contraseña."
#: ../../source/advanced.rst:21 #: ../../source/advanced.rst:21
msgid "" msgid ""
@ -83,11 +83,11 @@ msgid ""
"wrong guesses at the password, your onion service is automatically " "wrong guesses at the password, your onion service is automatically "
"stopped to prevent a brute force attack against the OnionShare service." "stopped to prevent a brute force attack against the OnionShare service."
msgstr "" msgstr ""
"Por defecto, todos los servicios OnionShare están protegidos con el nombre " "Por defecto, todos los servicios OnionShare están protegidos con el "
"de usuario ``onionshare`` y una contraseña generada al azar. Si alguien " "nombre de usuario ``onionshare`` y una contraseña generada al azar. Si "
"intenta adivinarla 20 veces erróneamente, tu servicio onion es detenido en " "alguien intenta adivinarla 20 veces erróneamente, tu servicio onion es "
"forma automática para prevenir un ataque por fuerza bruta en contra del " "detenido en forma automática para prevenir un ataque por fuerza bruta en "
"mismo." "contra del mismo."
#: ../../source/advanced.rst:31 #: ../../source/advanced.rst:31
msgid "" msgid ""
@ -98,12 +98,12 @@ msgid ""
"can force your server to stop just by making 20 wrong guesses of your " "can force your server to stop just by making 20 wrong guesses of your "
"password, even if they know the correct password." "password, even if they know the correct password."
msgstr "" msgstr ""
"A veces, podrías querer que tu servicio OnionShare sea accesible al público, " "A veces, podrías querer que tu servicio OnionShare sea accesible al "
"por ejemplo si quisieras un servicio OnionShare de recepción para que el " "público, por ejemplo si quisieras un servicio OnionShare de recepción "
"público pueda enviarte archivos segura y anónimamente. En esta caso, es " "para que el público pueda enviarte archivos segura y anónimamente. En "
"mejor deshabilitar del todo la contraseña. Si no lo haces, alguien puede " "esta caso, es mejor deshabilitar del todo la contraseña. Si no lo haces, "
"forzar a tu servidor para que se detenga efectuando solo 20 suposiciones " "alguien puede forzar a tu servidor para que se detenga efectuando solo 20"
"erróneas de tu contraseña, aún si conocen la correcta." " suposiciones erróneas de tu contraseña, aún si conocen la correcta."
#: ../../source/advanced.rst:35 #: ../../source/advanced.rst:35
msgid "" msgid ""
@ -115,11 +115,28 @@ msgstr ""
"casilla \"No usar una contraseña\" antes de iniciar el servidor. Entonces" "casilla \"No usar una contraseña\" antes de iniciar el servidor. Entonces"
" será público y no tendrá contraseña." " será público y no tendrá contraseña."
#: ../../source/advanced.rst:38 #: ../../source/advanced.rst:40
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:42
msgid ""
"By default, when people load an OnionShare service in Tor Browser they "
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
#: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
msgstr "Tiempos programados" msgstr "Tiempos programados"
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:49
msgid "" msgid ""
"OnionShare supports scheduling exactly when a service should start and " "OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its " "stop. Before starting a server, click \"Show advanced settings\" in its "
@ -130,24 +147,24 @@ msgstr ""
"OnionShare soporta la programación exacta de cuándo un servicio debería " "OnionShare soporta la programación exacta de cuándo un servicio debería "
"arrancar y detenerse. Antes de iniciar un servidor, haz clic en \"Mostrar" "arrancar y detenerse. Antes de iniciar un servidor, haz clic en \"Mostrar"
" ajustes avanzados\" en su pestaña, y luego marca las casillas próximas a" " ajustes avanzados\" en su pestaña, y luego marca las casillas próximas a"
"\"Iniciar el servicio onion en el tiempo programado\", \"Detener el servicio " " \"Iniciar el servicio onion en el tiempo programado\", \"Detener el "
"onion en el tiempo programado\", o ambas, y establece las fechas y horas " "servicio onion en el tiempo programado\", o ambas, y establece las fechas"
"deseadas." " y horas deseadas."
#: ../../source/advanced.rst:43 #: ../../source/advanced.rst:52
msgid "" msgid ""
"If you scheduled a service to start in the future, when you click the " "If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it " "\"Start sharing\" button you will see a timer counting down until it "
"starts. If you scheduled it to stop in the future, after it's started you" "starts. If you scheduled it to stop in the future, after it's started you"
" will see a timer counting down to when it will stop automatically." " will see a timer counting down to when it will stop automatically."
msgstr "" msgstr ""
"Si programaste un servicio para arrancar en el futuro, cuando hagas clic en " "Si programaste un servicio para arrancar en el futuro, cuando hagas clic "
"el botón \"Empezar a compartir\", verás un temporizador contando " "en el botón \"Empezar a compartir\", verás un temporizador contando "
"regresivamente hasta el arranque. Si lo hiciste para detenerse en el futuro, " "regresivamente hasta el arranque. Si lo hiciste para detenerse en el "
"luego que sea arrancado verás un temporizador contando regresivamente hasta " "futuro, luego que sea arrancado verás un temporizador contando "
"el momento en que se detendrá automáticamente." "regresivamente hasta el momento en que se detendrá automáticamente."
#: ../../source/advanced.rst:46 #: ../../source/advanced.rst:55
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically start can be used as " "**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given " "a dead man's switch**, where your service will be made public at a given "
@ -159,30 +176,29 @@ msgstr ""
"público en un momento dado en el futuro si te pasa algo. Si no te pasa " "público en un momento dado en el futuro si te pasa algo. Si no te pasa "
"nada, puedes cancelarlo antes de su inicio programado." "nada, puedes cancelarlo antes de su inicio programado."
#: ../../source/advanced.rst:51 #: ../../source/advanced.rst:60
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to" "**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while " " limit exposure**, like if you want to share secret documents while "
"making sure they're not available on the Internet for more than a few " "making sure they're not available on the Internet for more than a few "
"days." "days."
msgstr "" msgstr ""
"**Programar un servicio OnionShare para detenerse automáticamente puede ser " "**Programar un servicio OnionShare para detenerse automáticamente puede "
"útil para limitar la exposición**, como cuando quieras compartir documentos " "ser útil para limitar la exposición**, como cuando quieras compartir "
"secretos mientras te aseguras que no estarán disponibles en Internet por más " "documentos secretos mientras te aseguras que no estarán disponibles en "
"de unos pocos días." "Internet por más de unos pocos días."
#: ../../source/advanced.rst:56 #: ../../source/advanced.rst:65
msgid "Command-line Interface" msgid "Command-line Interface"
msgstr "Interfaz de línea de comando" msgstr "Interfaz de línea de comando"
#: ../../source/advanced.rst:58 #: ../../source/advanced.rst:67
msgid "" msgid ""
"In addition to its graphical interface, OnionShare has a command-line " "In addition to its graphical interface, OnionShare has a command-line "
"interface." "interface."
msgstr "" msgstr "Además de su interfaz gráfico, OnionShare tiene una de línea de comando."
"Además de su interfaz gráfico, OnionShare tiene una de línea de comando."
#: ../../source/advanced.rst:60 #: ../../source/advanced.rst:69
msgid "" msgid ""
"You can install just the command-line version of OnionShare using " "You can install just the command-line version of OnionShare using "
"``pip3``::" "``pip3``::"
@ -190,7 +206,7 @@ msgstr ""
"Puedes instalar la versión de línea de comando de OnionShare usando " "Puedes instalar la versión de línea de comando de OnionShare usando "
"``pip3``::" "``pip3``::"
#: ../../source/advanced.rst:64 #: ../../source/advanced.rst:73
msgid "" msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, " "Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``" "install it with: ``brew install tor``"
@ -198,37 +214,37 @@ msgstr ""
"Ten en cuenta que también necesitarás el paquete ``tor`` instalado. En " "Ten en cuenta que también necesitarás el paquete ``tor`` instalado. En "
"macOS, instálalo con: ``brew install tor``" "macOS, instálalo con: ``brew install tor``"
#: ../../source/advanced.rst:66 #: ../../source/advanced.rst:75
msgid "Then run it like this::" msgid "Then run it like this::"
msgstr "Luego, ejecútalo así::" msgstr "Luego, ejecútalo así::"
#: ../../source/advanced.rst:70 #: ../../source/advanced.rst:79
msgid "" msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can " "If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface " "also just run ``onionshare.cli`` to access the command-line interface "
"version." "version."
msgstr "" msgstr ""
"Si instalaste OnionShare usando el paquete Snapcraft de Linux, también " "Si instalaste OnionShare usando el paquete Snapcraft de Linux, también "
"puedes ejecutar ``onionshare.cli`` para acceder a la versión de interfaz de " "puedes ejecutar ``onionshare.cli`` para acceder a la versión de interfaz "
"línea de comando." "de línea de comando."
#: ../../source/advanced.rst:73 #: ../../source/advanced.rst:82
msgid "Usage" msgid "Usage"
msgstr "Uso" msgstr "Uso"
#: ../../source/advanced.rst:75 #: ../../source/advanced.rst:84
msgid "" msgid ""
"You can browse the command-line documentation by running ``onionshare " "You can browse the command-line documentation by running ``onionshare "
"--help``::" "--help``::"
msgstr "" msgstr ""
"Puedes navegar la documentación de línea de comando ejecutando ``onionshare " "Puedes navegar la documentación de línea de comando ejecutando "
"--help``::" "``onionshare --help``::"
#: ../../source/advanced.rst:132 #: ../../source/advanced.rst:147
msgid "Legacy Addresses" msgid "Legacy Addresses"
msgstr "Direcciones antiguas" msgstr "Direcciones antiguas"
#: ../../source/advanced.rst:134 #: ../../source/advanced.rst:149
msgid "" msgid ""
"OnionShare uses v3 Tor onion services by default. These are modern onion " "OnionShare uses v3 Tor onion services by default. These are modern onion "
"addresses that have 56 characters, for example::" "addresses that have 56 characters, for example::"
@ -236,7 +252,7 @@ msgstr ""
"OnionShare usa servicios onion Tor v3 por defecto. Estas son direcciones " "OnionShare usa servicios onion Tor v3 por defecto. Estas son direcciones "
"onion modernas que tienen 56 caracteres, por ejemplo::" "onion modernas que tienen 56 caracteres, por ejemplo::"
#: ../../source/advanced.rst:139 #: ../../source/advanced.rst:154
msgid "" msgid ""
"OnionShare still has support for v2 onion addresses, the old type of " "OnionShare still has support for v2 onion addresses, the old type of "
"onion addresses that have 16 characters, for example::" "onion addresses that have 16 characters, for example::"
@ -244,7 +260,7 @@ msgstr ""
"OnionShare aún tiene soporte para direcciones onion v2, el viejo tipo de " "OnionShare aún tiene soporte para direcciones onion v2, el viejo tipo de "
"direcciones onion que tienen 16 caracteres, por ejemplo::" "direcciones onion que tienen 16 caracteres, por ejemplo::"
#: ../../source/advanced.rst:143 #: ../../source/advanced.rst:158
msgid "" msgid ""
"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " "OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
"not recommended, as v3 onion addresses are more secure." "not recommended, as v3 onion addresses are more secure."
@ -253,7 +269,7 @@ msgstr ""
" cuales no están recomendadas, ya que las direcciones onion v3 son más " " cuales no están recomendadas, ya que las direcciones onion v3 son más "
"seguras." "seguras."
#: ../../source/advanced.rst:145 #: ../../source/advanced.rst:160
msgid "" msgid ""
"To use legacy addresses, before starting a server click \"Show advanced " "To use legacy addresses, before starting a server click \"Show advanced "
"settings\" from its tab and check the \"Use a legacy address (v2 onion " "settings\" from its tab and check the \"Use a legacy address (v2 onion "
@ -263,13 +279,13 @@ msgid ""
"service in a separate tab." "service in a separate tab."
msgstr "" msgstr ""
"Para usar direcciones antiguas, antes de iniciar un servidor haz clic en " "Para usar direcciones antiguas, antes de iniciar un servidor haz clic en "
"\"Mostrar ajustes avanzados\" en su pestaña, y marca la casilla \"Usar una " "\"Mostrar ajustes avanzados\" en su pestaña, y marca la casilla \"Usar "
"dirección antigua (servicio onion v2, no recomendado)\". En el modo antiguo, " "una dirección antigua (servicio onion v2, no recomendado)\". En el modo "
"puedes habilitar opcionalmente la autenticación de cliente Tor. Una vez que " "antiguo, puedes habilitar opcionalmente la autenticación de cliente Tor. "
"inicias un servidor en modo antiguo no puedes cambiarlo en esa pestaña. En " "Una vez que inicias un servidor en modo antiguo no puedes cambiarlo en "
"vez, debes arrancar un servicio separado en otra pestaña." "esa pestaña. En vez, debes arrancar un servicio separado en otra pestaña."
#: ../../source/advanced.rst:150 #: ../../source/advanced.rst:165
msgid "" msgid ""
"Tor Project plans to `completely deprecate v2 onion services " "Tor Project plans to `completely deprecate v2 onion services "
"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, " "<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
@ -277,9 +293,9 @@ msgid ""
"then." "then."
msgstr "" msgstr ""
"El Tor Project planea `descontinuar completamente los servicios onion v2 " "El Tor Project planea `descontinuar completamente los servicios onion v2 "
"<https://blog.torproject.org/v2-deprecation-timeline>`_ el 15 de octubre de " "<https://blog.torproject.org/v2-deprecation-timeline>`_ el 15 de octubre "
"2021, y los servicios onion antiguos serán removidos de OnionShare antes de " "de 2021, y los servicios onion antiguos serán removidos de OnionShare "
"esa fecha." "antes de esa fecha."
#~ msgid "" #~ msgid ""
#~ "By default, everything in OnionShare is" #~ "By default, everything in OnionShare is"
@ -399,3 +415,4 @@ msgstr ""
#~ "desarrollo (mira :ref:`starting_development`), y " #~ "desarrollo (mira :ref:`starting_development`), y "
#~ "luego ejecutar esto en una ventana " #~ "luego ejecutar esto en una ventana "
#~ "de línea de comando::" #~ "de línea de comando::"

View file

@ -7,16 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-12-06 00:29+0000\n" "PO-Revision-Date: 2020-12-06 00:29+0000\n"
"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n" "Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
"Language-Team: none\n"
"Language: es\n" "Language: es\n"
"Language-Team: none\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4 #: ../../source/features.rst:4
@ -30,8 +29,9 @@ msgid ""
"<https://community.torproject.org/onion-services/>`_." "<https://community.torproject.org/onion-services/>`_."
msgstr "" msgstr ""
"Mediante servidores web iniciados localmente en tu computadora, y hechos " "Mediante servidores web iniciados localmente en tu computadora, y hechos "
"accesibles a otras personas como `servicios onion <https://community." "accesibles a otras personas como `servicios onion "
"torproject.org/onion-services/>`_`Tor <https://www.torproject.org/>`_ ." "<https://community.torproject.org/onion-services/>`_`Tor "
"<https://www.torproject.org/>`_ ."
#: ../../source/features.rst:8 #: ../../source/features.rst:8
msgid "" msgid ""
@ -49,20 +49,20 @@ msgid ""
"something less secure like unencrypted e-mail, depending on your `threat " "something less secure like unencrypted e-mail, depending on your `threat "
"model <https://ssd.eff.org/module/your-security-plan>`_." "model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr "" msgstr ""
"Tu eres responsable por compartir en forma segura ese URL, usando un canal " "Tu eres responsable por compartir en forma segura ese URL, usando un "
"de comunicación de tu elección, como un mensaje cifrado en una charla, o " "canal de comunicación de tu elección, como un mensaje cifrado en una "
"usando algo menos seguro, como un correo electrónico no cifrado, dependiendo " "charla, o usando algo menos seguro, como un correo electrónico no "
"de tu `modelo de amenaza <https://ssd.eff.org/en/module/your-security-" "cifrado, dependiendo de tu `modelo de amenaza "
"plan>`_." "<https://ssd.eff.org/en/module/your-security-plan>`_."
#: ../../source/features.rst:14 #: ../../source/features.rst:14
msgid "" msgid ""
"The people you send the URL to then copy and paste it into their `Tor " "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." "Browser <https://www.torproject.org/>`_ to access the OnionShare service."
msgstr "" msgstr ""
"Las personas a quienes les envías el URL deben copiarlo y pegarlo dentro del " "Las personas a quienes les envías el URL deben copiarlo y pegarlo dentro "
"`Navegador Tor <https://www.torproject.org/>`_ para acceder al servicio " "del `Navegador Tor <https://www.torproject.org/>`_ para acceder al "
"OnionShare." "servicio OnionShare."
#: ../../source/features.rst:16 #: ../../source/features.rst:16
msgid "" msgid ""
@ -72,9 +72,10 @@ msgid ""
"works best when working with people in real-time." "works best when working with people in real-time."
msgstr "" msgstr ""
"Si ejecutas OnionShare en tu portátil para enviarle archivos a alguien, y" "Si ejecutas OnionShare en tu portátil para enviarle archivos a alguien, y"
"antes de que sean enviados es suspendida, el servicio no estará disponible " " antes de que sean enviados es suspendida, el servicio no estará "
"hasta que tu portátil deje de estarlo, y se conecte de nuevo a Internet. " "disponible hasta que tu portátil deje de estarlo, y se conecte de nuevo a"
"OnionShare funciona mejor cuando se trabaja con personas en tiempo real." " Internet. OnionShare funciona mejor cuando se trabaja con personas en "
"tiempo real."
#: ../../source/features.rst:18 #: ../../source/features.rst:18
msgid "" msgid ""
@ -84,11 +85,11 @@ msgid ""
"Tor onion services too, it also protects your anonymity. See the " "Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info." ":doc:`security design </security>` for more info."
msgstr "" msgstr ""
"Como tu propia computadora es el servidor web, *ningún tercero puede acceder " "Como tu propia computadora es el servidor web, *ningún tercero puede "
"a nada de lo que pasa en OnionShare*, ni siquiera sus desarrolladores. Es " "acceder a nada de lo que pasa en OnionShare*, ni siquiera sus "
"completamente privado. Y como OnionShare también está basado en los " "desarrolladores. Es completamente privado. Y como OnionShare también está"
"servicios onion de Tor, también protege tu anonimato. Mira el :doc:`diseño " " basado en los servicios onion de Tor, también protege tu anonimato. Mira"
"de seguridad </security>` para más información." " el :doc:`diseño de seguridad </security>` para más información."
#: ../../source/features.rst:21 #: ../../source/features.rst:21
msgid "Share Files" msgid "Share Files"
@ -105,14 +106,14 @@ msgstr ""
"hacia ella los archivos y carpetas que deseas compartir, y haz clic en " "hacia ella los archivos y carpetas que deseas compartir, y haz clic en "
"\"Iniciar compartición\"." "\"Iniciar compartición\"."
#: ../../source/features.rst:27 ../../source/features.rst:93 #: ../../source/features.rst:27 ../../source/features.rst:104
msgid "" msgid ""
"After you add files, you'll see some settings. Make sure you choose the " "After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing." "setting you're interested in before you start sharing."
msgstr "" msgstr ""
"Después de que agregas archivos, verás algunas configuraciones. Asegúrate de " "Después de que agregas archivos, verás algunas configuraciones. Asegúrate"
"elegir primero los ajustes en los que estás interesado antes de empezar a " " de elegir primero los ajustes en los que estás interesado antes de "
"compartir." "empezar a compartir."
#: ../../source/features.rst:31 #: ../../source/features.rst:31
msgid "" msgid ""
@ -123,10 +124,10 @@ msgid ""
"box." "box."
msgstr "" msgstr ""
"Tan pronto como alguien termine de descargar tus archivos, OnionShare " "Tan pronto como alguien termine de descargar tus archivos, OnionShare "
"detendrá automáticamente al servidor, removiendo al sitio web de Internet. " "detendrá automáticamente al servidor, removiendo al sitio web de "
"Para permitirle descargarlos a múltiples personas, desmarca la casilla " "Internet. Para permitirle descargarlos a múltiples personas, desmarca la "
"\"Detener compartición después de que los archivos han sido enviados (" "casilla \"Detener compartición después de que los archivos han sido "
"desmarca para permitir la descarga de archivos individuales)\"." "enviados (desmarca para permitir la descarga de archivos individuales)\"."
#: ../../source/features.rst:34 #: ../../source/features.rst:34
msgid "" msgid ""
@ -134,9 +135,9 @@ msgid ""
"individual files you share rather than a single compressed version of all" "individual files you share rather than a single compressed version of all"
" the files." " the files."
msgstr "" msgstr ""
"Además, si desmarcas esta casilla, las personas serán capaces de descargar " "Además, si desmarcas esta casilla, las personas serán capaces de "
"los archivos individuales que compartas, en vez de una única versión " "descargar los archivos individuales que compartas, en vez de una única "
"comprimida de todos ellos." "versión comprimida de todos ellos."
#: ../../source/features.rst:36 #: ../../source/features.rst:36
msgid "" msgid ""
@ -159,10 +160,10 @@ msgid ""
"or the person is otherwise exposed to danger, use an encrypted messaging " "or the person is otherwise exposed to danger, use an encrypted messaging "
"app." "app."
msgstr "" msgstr ""
"Ahora que tienes un OnionShare, copia la dirección y envíasela a la persona " "Ahora que tienes un OnionShare, copia la dirección y envíasela a la "
"que quieres que reciba los archivos. Si necesitan permanecer seguros, o si " "persona que quieres que reciba los archivos. Si necesitan permanecer "
"la persona está expuesta a cualquier otro peligro, usa una aplicación de " "seguros, o si la persona está expuesta a cualquier otro peligro, usa una "
"mensajería cifrada." "aplicación de mensajería cifrada."
#: ../../source/features.rst:42 #: ../../source/features.rst:42
msgid "" msgid ""
@ -171,61 +172,81 @@ msgid ""
"downloaded directly from your computer by clicking the \"Download Files\"" "downloaded directly from your computer by clicking the \"Download Files\""
" link in the corner." " link in the corner."
msgstr "" msgstr ""
"Esa persona debe cargar luego la dirección en el Navegador Tor. Después de " "Esa persona debe cargar luego la dirección en el Navegador Tor. Después "
"iniciar sesión con la contraseña aleatoria incluída en la dirección web, " "de iniciar sesión con la contraseña aleatoria incluída en la dirección "
"serán capaces de descargar los archivos directamente desde tu computadora " "web, serán capaces de descargar los archivos directamente desde tu "
"haciendo clic en el vínculo \"Descargar Archivos\" en la esquina." "computadora haciendo clic en el vínculo \"Descargar Archivos\" en la "
"esquina."
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files" msgid "Receive Files and Messages"
msgstr "Recibir Archivos" msgstr ""
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "" msgid ""
"You can use OnionShare to let people anonymously upload files directly to" "You can use OnionShare to let people anonymously submit files and "
" your computer, essentially turning it into an anonymous dropbox. Open a " "messages directly to your computer, essentially turning it into an "
"\"Receive tab\", choose where you want to save the files and other " "anonymous dropbox. Open a receive tab and choose the settings that you "
"settings, and then click \"Start Receive Mode\"." "want."
msgstr "" msgstr ""
"Puedes usar OnionShare para permitir a las personas la subida anónima de "
"archivos directamente a tu computadora, convirtiéndola esencialmente en un "
"buzón anónimo. Abre una pestaña de recepción, elige dónde quieres que los "
"archivos sean descargados y otros ajustes, y luego haz clic en \"Iniciar "
"Modo de Recepción\"."
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "" msgid "You can browse for a folder to save messages and files that get submitted."
"This starts the OnionShare service. Anyone loading this address in their " msgstr ""
"Tor Browser will be able to upload files to your computer."
#: ../../source/features.rst:56
msgid ""
"You can check \"Disable submitting text\" if want to only allow file "
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Esto iniciará al servicio OnionShare. Cualquiera que cargue esta dirección "
"en el Navegador Tor será capaz de subir archivos a tu computadora."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
"You can check \"Use notification webhook\" and then choose a webhook URL "
"if you want to be notified when someone submits files or messages to your"
" OnionShare service. If you use this feature, OnionShare will make an "
"HTTP POST request to this URL whenever someone submits files or messages."
" For example, if you want to get an encrypted text messaging on the "
"messaging app `Keybase <https://keybase.io/>`_, you can start a "
"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
"``!webhook create onionshare-alerts``, and it will respond with a URL. "
"Use that as the notification webhook URL. If someone uploads a file to "
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:63
msgid ""
"When you are ready, click \"Start Receive Mode\". This starts the "
"OnionShare service. Anyone loading this address in their Tor Browser will"
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
#: ../../source/features.rst:67
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show " "You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you." "the history and progress of people sending files to you."
msgstr "" msgstr ""
"También puedes hacer clic en el ícono \"↓\" en la esquina superior derecha " "También puedes hacer clic en el ícono \"↓\" en la esquina superior "
"para mostrar el historial y el progreso de las personas enviándote archivos." "derecha para mostrar el historial y el progreso de las personas "
"enviándote archivos."
#: ../../source/features.rst:60 #: ../../source/features.rst:69
msgid "Here is what it looks like for someone sending you files." #, fuzzy
msgid "Here is what it looks like for someone sending you files and messages."
msgstr "He aquí como luce cuando alguien está enviándote archivos." msgstr "He aquí como luce cuando alguien está enviándote archivos."
#: ../../source/features.rst:64 #: ../../source/features.rst:73
msgid "" msgid ""
"When someone uploads files to your receive service, by default they get " "When someone submits files or messages to your receive service, by "
"saved to a folder called ``OnionShare`` in the home folder on your " "default they get saved to a folder called ``OnionShare`` in the home "
"computer, automatically organized into separate subfolders based on the " "folder on your computer, automatically organized into separate subfolders"
"time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
"Cuando alguien sube archivos a tu servicio de recepción, son guardados por "
"defecto en una carpeta llamada ``OnionShare``, en tu carpeta personal en la "
"computadora, y automáticamente organizados en subcarpetas separadas, "
"basándose en la hora en que los archivos son subidos."
#: ../../source/features.rst:66 #: ../../source/features.rst:75
msgid "" msgid ""
"Setting up an OnionShare receiving service is useful for journalists and " "Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When " "others needing to securely accept documents from anonymous sources. When "
@ -239,23 +260,24 @@ msgstr ""
"versión liviana, más simple y no tan segura de `SecureDrop " "versión liviana, más simple y no tan segura de `SecureDrop "
"<https://securedrop.org/>`_, el sistema de envíos para informantes." "<https://securedrop.org/>`_, el sistema de envíos para informantes."
#: ../../source/features.rst:69 #: ../../source/features.rst:78
msgid "Use at your own risk" msgid "Use at your own risk"
msgstr "Úsalo a tu propio riesgo" msgstr "Úsalo a tu propio riesgo"
#: ../../source/features.rst:71 #: ../../source/features.rst:80
msgid "" msgid ""
"Just like with malicious e-mail attachments, it's possible someone could " "Just like with malicious e-mail attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your " "try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to " "OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files." "protect your system from malicious files."
msgstr "" msgstr ""
"De la misma manera que con adjuntos maliciosos en correos electrónicos, es " "De la misma manera que con adjuntos maliciosos en correos electrónicos, "
"posible que alguien pudiera intentar atacar tu computadora subiendo un " "es posible que alguien pudiera intentar atacar tu computadora subiendo un"
" archivo malicioso a tu servicio OnionShare, el cual no añade ningún " " archivo malicioso a tu servicio OnionShare, el cual no añade ningún "
"mecanismo de seguridad para proteger tu sistema contra archivos maliciosos." "mecanismo de seguridad para proteger tu sistema contra archivos "
"maliciosos."
#: ../../source/features.rst:73 #: ../../source/features.rst:82
msgid "" msgid ""
"If you receive an Office document or a PDF through OnionShare, you can " "If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone" "convert these documents into PDFs that are safe to open using `Dangerzone"
@ -266,51 +288,60 @@ msgid ""
msgstr "" msgstr ""
"Si recibes un documento de Office o un PDF a través de OnionShare, puedes" "Si recibes un documento de Office o un PDF a través de OnionShare, puedes"
" convertirlos en PDFs que son seguros para abrir usando `Dangerzone " " convertirlos en PDFs que son seguros para abrir usando `Dangerzone "
"<https://dangerzone.rocks/>`_. También puedes protegerte al abrir documentos " "<https://dangerzone.rocks/>`_. También puedes protegerte al abrir "
"no confiables haciéndolo en `Tails <https://tails.boum.org/>`_, o en una " "documentos no confiables haciéndolo en `Tails "
"máquina virtual descartable`Qubes <https://qubes-os.org/>`_." "<https://tails.boum.org/>`_, o en una máquina virtual descartable`Qubes "
"<https://qubes-os.org/>`_."
#: ../../source/features.rst:76 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
msgstr "Consejos para correr un servicio de recepción" msgstr "Consejos para correr un servicio de recepción"
#: ../../source/features.rst:78 #: ../../source/features.rst:89
msgid "" msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's " "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" "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 " " and connected to the Internet, and not on the one you use on a regular "
"basis." "basis."
msgstr "" msgstr ""
"Si quieres alojar tu propio buzón anónimo usando OnionShare, es recomendado " "Si quieres alojar tu propio buzón anónimo usando OnionShare, es "
"que lo hagas en una computadora dedicada y separada, que siempre esté " "recomendado que lo hagas en una computadora dedicada y separada, que "
"encendida y conectada a Internet, y no en la que usas regularmente." "siempre esté encendida y conectada a Internet, y no en la que usas "
"regularmente."
#: ../../source/features.rst:80 #: ../../source/features.rst:91
#, fuzzy
msgid "" msgid ""
"If you intend to put the OnionShare address on your website or social " "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 " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_passwords`)." "public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
"Si tu intención es publicitar la dirección OnionShare en tu sitio web o tus " "Si tu intención es publicitar la dirección OnionShare en tu sitio web o "
"perfiles de redes sociales, entonces deberías guardar la pestaña (mira " "tus perfiles de redes sociales, entonces deberías guardar la pestaña "
":ref:`save_tabs`) y correrla como servicio público (mira " "(mira :ref:`save_tabs`) y correrla como servicio público (mira "
":ref:`turn_off_passwords`)." ":ref:`turn_off_passwords`)."
#: ../../source/features.rst:83 #: ../../source/features.rst:94
msgid "Host a Website" msgid "Host a Website"
msgstr "Aloja un Sitio Web" msgstr "Aloja un Sitio Web"
#: ../../source/features.rst:85 #: ../../source/features.rst:96
msgid "" msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag " "To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click " "the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready." "\"Start sharing\" when you are ready."
msgstr "" msgstr ""
"Para alojar un sitio web con HTML estático con OnionShare, abre una pestaña " "Para alojar un sitio web con HTML estático con OnionShare, abre una "
"de sitio web, arrastra los archivos y carpetas que constituyen el sitio web " "pestaña de sitio web, arrastra los archivos y carpetas que constituyen el"
"estático, y haz clic cuando estés listo en \"Iniciar compartición\"." " sitio web estático, y haz clic cuando estés listo en \"Iniciar "
"compartición\"."
#: ../../source/features.rst:89 #: ../../source/features.rst:100
msgid "" msgid ""
"If you add an ``index.html`` file, it will render when someone loads your" "If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, " " website. You should also include any other HTML files, CSS files, "
@ -326,7 +357,7 @@ msgstr ""
"*estáticos*, y no puede hacerlo con aquellos que ejecutan código o usan " "*estáticos*, y no puede hacerlo con aquellos que ejecutan código o usan "
"bases de datos. Por lo que, por ejemplo, no puedes usar WordPress.)" "bases de datos. Por lo que, por ejemplo, no puedes usar WordPress.)"
#: ../../source/features.rst:91 #: ../../source/features.rst:102
msgid "" msgid ""
"If you don't have an ``index.html`` file, it will show a directory " "If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and " "listing instead, and people loading it can look through the files and "
@ -336,11 +367,11 @@ msgstr ""
"directorio, y las personas que lo carguen podrán mirar a través de los " "directorio, y las personas que lo carguen podrán mirar a través de los "
"archivos y descargarlos." "archivos y descargarlos."
#: ../../source/features.rst:98 #: ../../source/features.rst:109
msgid "Content Security Policy" msgid "Content Security Policy"
msgstr "Política de Seguridad de Contenido" msgstr "Política de Seguridad de Contenido"
#: ../../source/features.rst:100 #: ../../source/features.rst:111
msgid "" msgid ""
"By default OnionShare helps secure your website by setting a strict " "By default OnionShare helps secure your website by setting a strict "
"`Content Security Police " "`Content Security Police "
@ -348,28 +379,30 @@ msgid ""
"However, this prevents third-party content from loading inside the web " "However, this prevents third-party content from loading inside the web "
"page." "page."
msgstr "" msgstr ""
"Por defecto, OnionShare te ayudará a asegurar tu sitio web estableciendo un " "Por defecto, OnionShare te ayudará a asegurar tu sitio web estableciendo "
"encabezado de `Política de Seguridad de Contenido <https://en.wikipedia.org/" "un encabezado de `Política de Seguridad de Contenido "
"wiki/Content_Security_Policy>`_ estricto. Sin embargo, esto evitará que el " "<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ estricto. Sin "
"contenido de terceros sea cargado dentro de la página web." "embargo, esto evitará que el contenido de terceros sea cargado dentro de "
"la página web."
#: ../../source/features.rst:102 #: ../../source/features.rst:113
msgid "" msgid ""
"If you want to load content from third-party websites, like assets or " "If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, check the \"Don't send Content Security " "JavaScript libraries from CDNs, check the \"Don't send Content Security "
"Policy header (allows your website to use third-party resources)\" box " "Policy header (allows your website to use third-party resources)\" box "
"before starting the service." "before starting the service."
msgstr "" msgstr ""
"Si quieres cargar contenido desde sitios web de terceros, como recursoss o " "Si quieres cargar contenido desde sitios web de terceros, como recursoss "
"bibliotecas JavaScript desde CDNs, entonces debes marcar la casilla " "o bibliotecas JavaScript desde CDNs, entonces debes marcar la casilla "
"\"Deshabilitar el encabezado de Política de Seguridad de Contenido (permite " "\"Deshabilitar el encabezado de Política de Seguridad de Contenido "
"a tu sitio web usar recursos de terceros)\" antes de iniciar el servicio." "(permite a tu sitio web usar recursos de terceros)\" antes de iniciar el "
"servicio."
#: ../../source/features.rst:105 #: ../../source/features.rst:116
msgid "Tips for running a website service" msgid "Tips for running a website service"
msgstr "Consejos para correr un servicio de sitio web" msgstr "Consejos para correr un servicio de sitio web"
#: ../../source/features.rst:107 #: ../../source/features.rst:118
msgid "" msgid ""
"If you want to host a long-term website using OnionShare (meaning not " "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 " "something to quickly show someone something), it's recommended you do it "
@ -378,14 +411,15 @@ msgid ""
"(see :ref:`save_tabs`) so you can resume the website with the same " "(see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later." "address if you close OnionShare and re-open it later."
msgstr "" msgstr ""
"Si quieres alojar un sitio web a largo plazo usando OnionShare (que no sea " "Si quieres alojar un sitio web a largo plazo usando OnionShare (que no "
"solo para mostrarle algo a alguien rápidamente), es recomendado que lo hagas " "sea solo para mostrarle algo a alguien rápidamente), es recomendado que "
"en una computadora separada y dedicada, que siempre esté encendida y " "lo hagas en una computadora separada y dedicada, que siempre esté "
"conectada a Internet, y no en la que usas regularmente. Guarda la pestaña (" "encendida y conectada a Internet, y no en la que usas regularmente. "
"mira :ref:`save_tabs`) con el fin de que puedas reanudar al sitio web con la " "Guarda la pestaña (mira :ref:`save_tabs`) con el fin de que puedas "
"misma dirección, si cierras OnionShare y lo vuelves a iniciar más tarde." "reanudar al sitio web con la misma dirección, si cierras OnionShare y lo "
"vuelves a iniciar más tarde."
#: ../../source/features.rst:110 #: ../../source/features.rst:121
msgid "" msgid ""
"If your website is intended for the public, you should run it as a public" "If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_passwords`)." " service (see :ref:`turn_off_passwords`)."
@ -393,32 +427,32 @@ msgstr ""
"Si planeas que tu sitio web sea visto por el público, deberías ejecutarlo" "Si planeas que tu sitio web sea visto por el público, deberías ejecutarlo"
" como servicio público (see :ref:`turn_off_passwords`)." " como servicio público (see :ref:`turn_off_passwords`)."
#: ../../source/features.rst:113 #: ../../source/features.rst:124
msgid "Chat Anonymously" msgid "Chat Anonymously"
msgstr "Chat Anónimo" msgstr "Chat Anónimo"
#: ../../source/features.rst:115 #: ../../source/features.rst:126
msgid "" msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't" "You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"." " log anything. Just open a chat tab and click \"Start chat server\"."
msgstr "" msgstr ""
"Puedes usar OnionShare para establecer un cuarto de chat completamente " "Puedes usar OnionShare para establecer un cuarto de chat completamente "
"anónimo y seguro, que no registra nada. Solo abre una pestaña de chat y haz " "anónimo y seguro, que no registra nada. Solo abre una pestaña de chat y "
"clic en \"Iniciar servidor de chat\"." "haz clic en \"Iniciar servidor de chat\"."
#: ../../source/features.rst:119 #: ../../source/features.rst:130
msgid "" msgid ""
"After you start the server, copy the OnionShare address and send it to " "After you start the server, copy the OnionShare address and send it to "
"the people you want in the anonymous chat room. If it's important to " "the people you want in the anonymous chat room. If it's important to "
"limit exactly who can join, use an encrypted messaging app to send out " "limit exactly who can join, use an encrypted messaging app to send out "
"the OnionShare address." "the OnionShare address."
msgstr "" msgstr ""
"Después de iniciar el servidor, copie la dirección de OnionShare y envíela a " "Después de iniciar el servidor, copie la dirección de OnionShare y "
"las personas que desee en la sala de chat anónima. Si es importante limitar " "envíela a las personas que desee en la sala de chat anónima. Si es "
"exactamente quién puede unirse, use una aplicación de mensajería encriptada " "importante limitar exactamente quién puede unirse, use una aplicación de "
"para enviar la dirección de OnionShare." "mensajería encriptada para enviar la dirección de OnionShare."
#: ../../source/features.rst:124 #: ../../source/features.rst:135
msgid "" msgid ""
"People can join the chat room by loading its OnionShare address in Tor " "People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to " "Browser. The chat room requires JavasScript, so everyone who wants to "
@ -426,24 +460,24 @@ msgid ""
"\"Standard\" or \"Safer\", instead of \"Safest\"." "\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr "" msgstr ""
"Las personas pueden unirse al cuarto de chat cargando su dirección " "Las personas pueden unirse al cuarto de chat cargando su dirección "
"OnionShare en el Navegador Tor. El cuarto de chat requiere JavasScript, por " "OnionShare en el Navegador Tor. El cuarto de chat requiere JavasScript, "
"lo que todo aquel que quiera participar debe ajustar su nivel de seguridad a " "por lo que todo aquel que quiera participar debe ajustar su nivel de "
"'Estándar' o 'Más Seguro' en vez de a 'El Más Seguro'." "seguridad a 'Estándar' o 'Más Seguro' en vez de a 'El Más Seguro'."
#: ../../source/features.rst:127 #: ../../source/features.rst:138
msgid "" msgid ""
"When someone joins the chat room they get assigned a random name. They " "When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel " "can change their name by typing a new name in the box in the left panel "
"and pressing ↵. Since the chat history isn't saved anywhere, it doesn't " "and pressing ↵. Since the chat history isn't saved anywhere, it doesn't "
"get displayed at all, even if others were already chatting in the room." "get displayed at all, even if others were already chatting in the room."
msgstr "" msgstr ""
"Cuando alguien se une al cuarto de chat, se le asigna un nombre aleatorio. " "Cuando alguien se une al cuarto de chat, se le asigna un nombre "
"Puede cambiarlo tipeando un nombre nuevo en la casilla en el panel izquierdo " "aleatorio. Puede cambiarlo tipeando un nombre nuevo en la casilla en el "
"y presionando ↵. Ningún historial de chat será mostrado en absoluto, aún si " "panel izquierdo y presionando ↵. Ningún historial de chat será mostrado "
"otros ya estaban chateando en el cuarto, porque ese historial no es guardado " "en absoluto, aún si otros ya estaban chateando en el cuarto, porque ese "
"en ningún lado." "historial no es guardado en ningún lado."
#: ../../source/features.rst:133 #: ../../source/features.rst:144
msgid "" msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change " "In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity." "their name to anything, and there is no way to confirm anyone's identity."
@ -452,23 +486,23 @@ msgstr ""
"cambiar su nombre a cualquier cosa, y no hay manera de confirmar la " "cambiar su nombre a cualquier cosa, y no hay manera de confirmar la "
"identidad de nadie." "identidad de nadie."
#: ../../source/features.rst:136 #: ../../source/features.rst:147
msgid "" msgid ""
"However, if you create an OnionShare chat room and securely send the " "However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted " "address only to a small group of trusted friends using encrypted "
"messages, you can be reasonably confident the people joining the chat " "messages, you can be reasonably confident the people joining the chat "
"room are your friends." "room are your friends."
msgstr "" msgstr ""
"Sin embargo, si creas un cuarto de chat OnionShare, y envías la dirección en " "Sin embargo, si creas un cuarto de chat OnionShare, y envías la dirección"
"forma segura solamente a un grupo pequeño de amigos confiables usando " " en forma segura solamente a un grupo pequeño de amigos confiables usando"
" mensajes cifrados, entonces puedes estar razonablemente seguro que las " " mensajes cifrados, entonces puedes estar razonablemente seguro que las "
"personas que se unan a él son tus amigos." "personas que se unan a él son tus amigos."
#: ../../source/features.rst:139 #: ../../source/features.rst:150
msgid "How is this useful?" msgid "How is this useful?"
msgstr "¿Cómo es que esto es útil?" msgstr "¿Cómo es que esto es útil?"
#: ../../source/features.rst:141 #: ../../source/features.rst:152
msgid "" msgid ""
"If you need to already be using an encrypted messaging app, what's the " "If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces." "point of an OnionShare chat room to begin with? It leaves less traces."
@ -477,7 +511,7 @@ msgstr ""
"cifrada, ¿cuál es el punto de un cuarto de chat OnionShare? Deja menos " "cifrada, ¿cuál es el punto de un cuarto de chat OnionShare? Deja menos "
"rastros." "rastros."
#: ../../source/features.rst:143 #: ../../source/features.rst:154
msgid "" msgid ""
"If you for example send a message to a Signal group, a copy of your " "If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the devices, and computers if they set up" "message ends up on each device (the devices, and computers if they set up"
@ -488,16 +522,17 @@ msgid ""
"rooms don't store any messages anywhere, so the problem is reduced to a " "rooms don't store any messages anywhere, so the problem is reduced to a "
"minimum." "minimum."
msgstr "" msgstr ""
"Si, por ejemplo, envías un mensaje a un grupo de Signal, una copia del mismo " "Si, por ejemplo, envías un mensaje a un grupo de Signal, una copia del "
"termina en cada dispositivo (los dispositivos, y las computadoras si " "mismo termina en cada dispositivo (los dispositivos, y las computadoras "
"configuran Signal Desktop) de cada miembro del grupo. Incluso si los " "si configuran Signal Desktop) de cada miembro del grupo. Incluso si los "
"mensajes que desaparecen están activados, es difícil confirmar que todas las " "mensajes que desaparecen están activados, es difícil confirmar que todas "
"copias de los mismos se hayan eliminado de todos los dispositivos y de " "las copias de los mismos se hayan eliminado de todos los dispositivos y "
"cualquier otro lugar (como las bases de datos de notificaciones) en los que " "de cualquier otro lugar (como las bases de datos de notificaciones) en "
"se hayan guardado. Los cuartos de chat de OnionShare no almacenan ningún " "los que se hayan guardado. Los cuartos de chat de OnionShare no almacenan"
"mensaje en ningún lugar, por lo que el problema se reduce al mínimo." " ningún mensaje en ningún lugar, por lo que el problema se reduce al "
"mínimo."
#: ../../source/features.rst:146 #: ../../source/features.rst:157
msgid "" msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat " "OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any " "anonymously and securely with someone without needing to create any "
@ -507,17 +542,17 @@ msgid ""
"anonymity." "anonymity."
msgstr "" msgstr ""
"Los cuartos de chat OnionShare también pueden ser útiles para personas " "Los cuartos de chat OnionShare también pueden ser útiles para personas "
"anónimas que quieran charlar en forma segura con alguien sin necesitar crear " "anónimas que quieran charlar en forma segura con alguien sin necesitar "
"alguna cuenta. Por ejemplo, una fuente puede enviar una dirección OnionShare " "crear alguna cuenta. Por ejemplo, una fuente puede enviar una dirección "
"a un periodista usando una dirección de correo electrónico descartable, y " "OnionShare a un periodista usando una dirección de correo electrónico "
"luego esperar a que el periodista se una al cuarto de chat, todo eso sin " "descartable, y luego esperar a que el periodista se una al cuarto de "
"comprometer su anonimato." "chat, todo eso sin comprometer su anonimato."
#: ../../source/features.rst:150 #: ../../source/features.rst:161
msgid "How does the encryption work?" msgid "How does the encryption work?"
msgstr "¿Cómo funciona el cifrado?" msgstr "¿Cómo funciona el cifrado?"
#: ../../source/features.rst:152 #: ../../source/features.rst:163
msgid "" msgid ""
"Because OnionShare relies on Tor onion services, connections between the " "Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@ -529,11 +564,11 @@ msgstr ""
"Como OnionShare se respalda en los servicios onion de Tor, todas las " "Como OnionShare se respalda en los servicios onion de Tor, todas las "
"conexiones entre el Navegador Tor y OnionShare son cifradas de extremo a " "conexiones entre el Navegador Tor y OnionShare son cifradas de extremo a "
"extremo (E2EE). Cuando alguien publica un mensaje a un cuarto de chat " "extremo (E2EE). Cuando alguien publica un mensaje a un cuarto de chat "
"OnionShare, lo envía al servidor a través de la conexión onion E2EE, la cual " "OnionShare, lo envía al servidor a través de la conexión onion E2EE, la "
"lo envía luego a todos los otros miembros del cuarto de chat usando " "cual lo envía luego a todos los otros miembros del cuarto de chat usando "
"WebSockets, a través de sus conexiones onion E2EE." "WebSockets, a través de sus conexiones onion E2EE."
#: ../../source/features.rst:154 #: ../../source/features.rst:165
msgid "" msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on" "OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead." " the Tor onion service's encryption instead."
@ -745,3 +780,56 @@ msgstr ""
#~ "cuartos de chat OnionShare no almacenan" #~ "cuartos de chat OnionShare no almacenan"
#~ " ningún mensaje en ningún lado, por" #~ " ningún mensaje en ningún lado, por"
#~ " lo que esto no es un problema." #~ " lo que esto no es un problema."
#~ msgid "Receive Files"
#~ msgstr "Recibir Archivos"
#~ msgid ""
#~ "You can use OnionShare to let "
#~ "people anonymously upload files directly "
#~ "to your computer, essentially turning it"
#~ " into an anonymous dropbox. Open a"
#~ " \"Receive tab\", choose where you "
#~ "want to save the files and other"
#~ " settings, and then click \"Start "
#~ "Receive Mode\"."
#~ msgstr ""
#~ "Puedes usar OnionShare para permitir a"
#~ " las personas la subida anónima de"
#~ " archivos directamente a tu computadora,"
#~ " convirtiéndola esencialmente en un buzón"
#~ " anónimo. Abre una pestaña de "
#~ "recepción, elige dónde quieres que los"
#~ " archivos sean descargados y otros "
#~ "ajustes, y luego haz clic en "
#~ "\"Iniciar Modo de Recepción\"."
#~ msgid ""
#~ "This starts the OnionShare service. "
#~ "Anyone loading this address in their "
#~ "Tor Browser will be able to upload"
#~ " files to your computer."
#~ msgstr ""
#~ "Esto iniciará al servicio OnionShare. "
#~ "Cualquiera que cargue esta dirección en"
#~ " el Navegador Tor será capaz de "
#~ "subir archivos a tu computadora."
#~ msgid ""
#~ "When someone uploads files to your "
#~ "receive service, by default they get "
#~ "saved to a folder called ``OnionShare``"
#~ " in the home folder on your "
#~ "computer, automatically organized into "
#~ "separate subfolders based on the time"
#~ " that the files get uploaded."
#~ msgstr ""
#~ "Cuando alguien sube archivos a tu "
#~ "servicio de recepción, son guardados por"
#~ " defecto en una carpeta llamada "
#~ "``OnionShare``, en tu carpeta personal "
#~ "en la computadora, y automáticamente "
#~ "organizados en subcarpetas separadas, "
#~ "basándose en la hora en que los"
#~ " archivos son subidos."

View file

@ -7,17 +7,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-03-30 16:26+0000\n" "PO-Revision-Date: 2021-03-30 16:26+0000\n"
"Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n" "Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n"
"Language-Team: ru <LL@li.org>\n"
"Language: ru\n" "Language: ru\n"
"Language-Team: ru <LL@li.org>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.6-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2 #: ../../source/advanced.rst:2
@ -36,11 +35,11 @@ msgid ""
"useful if you want to host a website available from the same OnionShare " "useful if you want to host a website available from the same OnionShare "
"address even if you reboot your computer." "address even if you reboot your computer."
msgstr "" msgstr ""
"В OnionShare по умолчанию каждый элемент - временный. При закрытии вкладки " "В OnionShare по умолчанию каждый элемент - временный. При закрытии "
"её адрес исчезает и не может быть больше использован. Время от времени может " "вкладки её адрес исчезает и не может быть больше использован. Время от "
"потребоваться сделать тот или иной сервис OnionShare доступным на постоянной " "времени может потребоваться сделать тот или иной сервис OnionShare "
"основе, например, разместить сайт у которого будет один и тот же адрес даже " "доступным на постоянной основе, например, разместить сайт у которого "
"после перезагрузки компьютера." "будет один и тот же адрес даже после перезагрузки компьютера."
#: ../../source/advanced.rst:13 #: ../../source/advanced.rst:13
msgid "" msgid ""
@ -50,8 +49,8 @@ msgid ""
msgstr "" msgstr ""
"Чтобы сделать любую вкладку постоянной, отметье пункт \"Сохранить эту " "Чтобы сделать любую вкладку постоянной, отметье пункт \"Сохранить эту "
"вкладку, и открывать ее автоматически при открытии OnionShare\" перед " "вкладку, и открывать ее автоматически при открытии OnionShare\" перед "
"запуском сервера. При сохранении вкладки появится иконка сиреневого цвета с " "запуском сервера. При сохранении вкладки появится иконка сиреневого цвета"
"изображением булавки слева от статуса сервера." " с изображением булавки слева от статуса сервера."
#: ../../source/advanced.rst:18 #: ../../source/advanced.rst:18
msgid "" msgid ""
@ -59,17 +58,18 @@ msgid ""
"start opened. You'll have to manually start each service, but when you do" "start opened. You'll have to manually start each service, but when you do"
" they will start with the same OnionShare address and password." " they will start with the same OnionShare address and password."
msgstr "" msgstr ""
"Теперь, при завершении работы с OnionShare и повторном запуске, сохранённые " "Теперь, при завершении работы с OnionShare и повторном запуске, "
"вкладки открываются автоматически. Сервис на каждой вкладке нужно запустить " "сохранённые вкладки открываются автоматически. Сервис на каждой вкладке "
"вручную, но при этом адрес и пароль OnionShare остаются прежние." "нужно запустить вручную, но при этом адрес и пароль OnionShare остаются "
"прежние."
#: ../../source/advanced.rst:21 #: ../../source/advanced.rst:21
msgid "" msgid ""
"If you save a tab, a copy of that tab's onion service secret key will be " "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." "stored on your computer with your OnionShare settings."
msgstr "" msgstr ""
"При сохранении вкладки копия ключа onions сервиса также будет сохранена на " "При сохранении вкладки копия ключа onions сервиса также будет сохранена "
"компьютере вместе с настройками OnionShare." "на компьютере вместе с настройками OnionShare."
#: ../../source/advanced.rst:26 #: ../../source/advanced.rst:26
msgid "Turn Off Passwords" msgid "Turn Off Passwords"
@ -82,10 +82,11 @@ msgid ""
"wrong guesses at the password, your onion service is automatically " "wrong guesses at the password, your onion service is automatically "
"stopped to prevent a brute force attack against the OnionShare service." "stopped to prevent a brute force attack against the OnionShare service."
msgstr "" msgstr ""
"По умолчанию, все сервисы OnionShare защищены при помощи имени пользователя " "По умолчанию, все сервисы OnionShare защищены при помощи имени "
"``onionshare`` и произвольно-сгенерированного пароля. При совершении более " "пользователя ``onionshare`` и произвольно-сгенерированного пароля. При "
"20-ти попыток доступа с неверным паролем, сервис автоматически " "совершении более 20-ти попыток доступа с неверным паролем, сервис "
"останавливается, чтобы предотвратить 'brute-force' атаку на сервис." "автоматически останавливается, чтобы предотвратить 'brute-force' атаку на"
" сервис."
#: ../../source/advanced.rst:31 #: ../../source/advanced.rst:31
msgid "" msgid ""
@ -109,15 +110,32 @@ msgid ""
"password\" box before starting the server. Then the server will be public" "password\" box before starting the server. Then the server will be public"
" and won't have a password." " and won't have a password."
msgstr "" msgstr ""
"Чтобы отключить использование пароля для любой вкладки, отметьте пункт \"Не " "Чтобы отключить использование пароля для любой вкладки, отметьте пункт "
"использовать пароль\" перед запуском сервера. В этом случае сервер " "\"Не использовать пароль\" перед запуском сервера. В этом случае сервер "
"становится общедоступным и проверка пароля не осуществляется." "становится общедоступным и проверка пароля не осуществляется."
#: ../../source/advanced.rst:38 #: ../../source/advanced.rst:40
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:42
msgid ""
"By default, when people load an OnionShare service in Tor Browser they "
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
#: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
msgstr "Планирование времени" msgstr "Планирование времени"
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:49
msgid "" msgid ""
"OnionShare supports scheduling exactly when a service should start and " "OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its " "stop. Before starting a server, click \"Show advanced settings\" in its "
@ -126,12 +144,13 @@ msgid ""
"set the respective desired dates and times." "set the respective desired dates and times."
msgstr "" msgstr ""
"OnionShare поддерживает возможность точного планирования, когда сервис " "OnionShare поддерживает возможность точного планирования, когда сервис "
"должен запуститься или остановиться. Перед запуском сервера, нажмите на его " "должен запуститься или остановиться. Перед запуском сервера, нажмите на "
"вкладке кнопку \"Показать дополнительные настройки\", отметьте нужные пункты:" "его вкладке кнопку \"Показать дополнительные настройки\", отметьте нужные"
" \"Запустить сервис onion в назначенное время\", \"Остановить сервис onion в " " пункты: \"Запустить сервис onion в назначенное время\", \"Остановить "
"назначенное время\", и укажите нужную дату и время для каждого пункта." "сервис onion в назначенное время\", и укажите нужную дату и время для "
"каждого пункта."
#: ../../source/advanced.rst:43 #: ../../source/advanced.rst:52
msgid "" msgid ""
"If you scheduled a service to start in the future, when you click the " "If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it " "\"Start sharing\" button you will see a timer counting down until it "
@ -140,10 +159,10 @@ msgid ""
msgstr "" msgstr ""
"Если запуск сервиса был запланирован на будущее, то при нажатии кнопки " "Если запуск сервиса был запланирован на будущее, то при нажатии кнопки "
"\"Сделать доступным для скачивания\" появится таймер обратного отсчёта до" "\"Сделать доступным для скачивания\" появится таймер обратного отсчёта до"
"запуска сервиса. Если была запланирована остановка сервиса, то после нажатия " " запуска сервиса. Если была запланирована остановка сервиса, то после "
"кнопки появится таймер обратного отсчёта до отстановки сервиса." "нажатия кнопки появится таймер обратного отсчёта до отстановки сервиса."
#: ../../source/advanced.rst:46 #: ../../source/advanced.rst:55
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically start can be used as " "**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given " "a dead man's switch**, where your service will be made public at a given "
@ -151,12 +170,12 @@ msgid ""
" you can cancel the service before it's scheduled to start." " you can cancel the service before it's scheduled to start."
msgstr "" msgstr ""
"**Запланированный автоматический запуск сервиса OnionShare может быть " "**Запланированный автоматический запуск сервиса OnionShare может быть "
"использован как 'переключатель мертвеца'\". ** В этом случае сервис окажется " "использован как 'переключатель мертвеца'\". ** В этом случае сервис "
"общедоступен в указанное время, в случае если с отправителем что-то " "окажется общедоступен в указанное время, в случае если с отправителем "
"произойдёт. Если угроза исчезнет, отправитель сможет остановить таймер до " "что-то произойдёт. Если угроза исчезнет, отправитель сможет остановить "
"автоматического запуска." "таймер до автоматического запуска."
#: ../../source/advanced.rst:51 #: ../../source/advanced.rst:60
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to" "**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while " " limit exposure**, like if you want to share secret documents while "
@ -169,39 +188,40 @@ msgstr ""
"определённый период времени, чтобы они были доступны пользователям в сети" "определённый период времени, чтобы они были доступны пользователям в сети"
" Интернет всего несколько дней." " Интернет всего несколько дней."
#: ../../source/advanced.rst:56 #: ../../source/advanced.rst:65
msgid "Command-line Interface" msgid "Command-line Interface"
msgstr "Интерфейс командной строки" msgstr "Интерфейс командной строки"
#: ../../source/advanced.rst:58 #: ../../source/advanced.rst:67
msgid "" msgid ""
"In addition to its graphical interface, OnionShare has a command-line " "In addition to its graphical interface, OnionShare has a command-line "
"interface." "interface."
msgstr "" msgstr ""
"В дополнение к графическому интерфейсу, у OnionShare присутствует поддержка " "В дополнение к графическому интерфейсу, у OnionShare присутствует "
"интерфейса командной строки." "поддержка интерфейса командной строки."
#: ../../source/advanced.rst:60 #: ../../source/advanced.rst:69
msgid "" msgid ""
"You can install just the command-line version of OnionShare using " "You can install just the command-line version of OnionShare using "
"``pip3``::" "``pip3``::"
msgstr "" msgstr ""
"Отдельно установить консольную версию OnionShare можно при помощи ``pip3``::" "Отдельно установить консольную версию OnionShare можно при помощи "
"``pip3``::"
#: ../../source/advanced.rst:64 #: ../../source/advanced.rst:73
msgid "" msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, " "Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``" "install it with: ``brew install tor``"
msgstr "" msgstr ""
"Для работы консольной версии также необходимо установить пакет ``tor``. Для " "Для работы консольной версии также необходимо установить пакет ``tor``. "
"установки пакета в операционной системе macOS выполните команду: ``brew " "Для установки пакета в операционной системе macOS выполните команду: "
"install tor``" "``brew install tor``"
#: ../../source/advanced.rst:66 #: ../../source/advanced.rst:75
msgid "Then run it like this::" msgid "Then run it like this::"
msgstr "Затем произведите запуск следующим образом::" msgstr "Затем произведите запуск следующим образом::"
#: ../../source/advanced.rst:70 #: ../../source/advanced.rst:79
msgid "" msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can " "If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface " "also just run ``onionshare.cli`` to access the command-line interface "
@ -210,11 +230,11 @@ msgstr ""
"Если установка OnionShare была произведена при помощи Linux Snapcraft, " "Если установка OnionShare была произведена при помощи Linux Snapcraft, "
"запустить консольную версию можно при помощи команды: ``onionshare.cli``." "запустить консольную версию можно при помощи команды: ``onionshare.cli``."
#: ../../source/advanced.rst:73 #: ../../source/advanced.rst:82
msgid "Usage" msgid "Usage"
msgstr "Использование" msgstr "Использование"
#: ../../source/advanced.rst:75 #: ../../source/advanced.rst:84
msgid "" msgid ""
"You can browse the command-line documentation by running ``onionshare " "You can browse the command-line documentation by running ``onionshare "
"--help``::" "--help``::"
@ -222,11 +242,11 @@ msgstr ""
"Чтобы просмотреть документацию консольной версии OnionShare запустите " "Чтобы просмотреть документацию консольной версии OnionShare запустите "
"команду: ``onionshare --help``::" "команду: ``onionshare --help``::"
#: ../../source/advanced.rst:132 #: ../../source/advanced.rst:147
msgid "Legacy Addresses" msgid "Legacy Addresses"
msgstr "Устаревшие Адреса" msgstr "Устаревшие Адреса"
#: ../../source/advanced.rst:134 #: ../../source/advanced.rst:149
msgid "" msgid ""
"OnionShare uses v3 Tor onion services by default. These are modern onion " "OnionShare uses v3 Tor onion services by default. These are modern onion "
"addresses that have 56 characters, for example::" "addresses that have 56 characters, for example::"
@ -234,23 +254,23 @@ msgstr ""
"OnionShare по умолчанию исользует v3 Tor сервисов onion. Это современные " "OnionShare по умолчанию исользует v3 Tor сервисов onion. Это современные "
"onion адреса, состоящие из 56 символов например::" "onion адреса, состоящие из 56 символов например::"
#: ../../source/advanced.rst:139 #: ../../source/advanced.rst:154
msgid "" msgid ""
"OnionShare still has support for v2 onion addresses, the old type of " "OnionShare still has support for v2 onion addresses, the old type of "
"onion addresses that have 16 characters, for example::" "onion addresses that have 16 characters, for example::"
msgstr "" msgstr ""
"OnionShare всё ещё поддерживает адреса v2 Tor onion сервисов, состоящие из " "OnionShare всё ещё поддерживает адреса v2 Tor onion сервисов, состоящие "
"16 символов, например::" "из 16 символов, например::"
#: ../../source/advanced.rst:143 #: ../../source/advanced.rst:158
msgid "" msgid ""
"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " "OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
"not recommended, as v3 onion addresses are more secure." "not recommended, as v3 onion addresses are more secure."
msgstr "" msgstr ""
"OnionShare обозначает v2 onion адреса как \"устаревшие\" и не рекомендует их " "OnionShare обозначает v2 onion адреса как \"устаревшие\" и не рекомендует"
"использование, поскольку v3 onion адреса более безопасны." " их использование, поскольку v3 onion адреса более безопасны."
#: ../../source/advanced.rst:145 #: ../../source/advanced.rst:160
msgid "" msgid ""
"To use legacy addresses, before starting a server click \"Show advanced " "To use legacy addresses, before starting a server click \"Show advanced "
"settings\" from its tab and check the \"Use a legacy address (v2 onion " "settings\" from its tab and check the \"Use a legacy address (v2 onion "
@ -259,14 +279,14 @@ msgid ""
"cannot remove legacy mode in that tab. Instead you must start a separate " "cannot remove legacy mode in that tab. Instead you must start a separate "
"service in a separate tab." "service in a separate tab."
msgstr "" msgstr ""
"Для использования устаревших адресов, перед запуском сервера на его вкладке " "Для использования устаревших адресов, перед запуском сервера на его "
"нужно нажать кнопку \"Показать рассширенные настройки\" и отметить пункт " "вкладке нужно нажать кнопку \"Показать рассширенные настройки\" и "
"\"Использовать устаревшую версию адресов (версия 2 сервиса Тор, не " "отметить пункт \"Использовать устаревшую версию адресов (версия 2 сервиса"
"рукомендуем)\". В \"устаревшем\" режиме возможно включить аутентификацию " " Тор, не рукомендуем)\". В \"устаревшем\" режиме возможно включить "
"клента Tor. Отключить \"устаревший\" режим сервера для вкладки невозможно, " "аутентификацию клента Tor. Отключить \"устаревший\" режим сервера для "
"необходимо перезапустить сервис в новой вкладке." "вкладки невозможно, необходимо перезапустить сервис в новой вкладке."
#: ../../source/advanced.rst:150 #: ../../source/advanced.rst:165
msgid "" msgid ""
"Tor Project plans to `completely deprecate v2 onion services " "Tor Project plans to `completely deprecate v2 onion services "
"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, " "<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
@ -473,3 +493,4 @@ msgstr ""
#~ " services will soon be removed from" #~ " services will soon be removed from"
#~ " OnionShare as well." #~ " OnionShare as well."
#~ msgstr "" #~ msgstr ""

View file

@ -7,17 +7,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-03-30 16:26+0000\n" "PO-Revision-Date: 2021-03-30 16:26+0000\n"
"Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n" "Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n"
"Language-Team: ru <LL@li.org>\n"
"Language: ru\n" "Language: ru\n"
"Language-Team: ru <LL@li.org>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.6-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4 #: ../../source/features.rst:4
@ -31,8 +30,9 @@ msgid ""
"<https://community.torproject.org/onion-services/>`_." "<https://community.torproject.org/onion-services/>`_."
msgstr "" msgstr ""
"OnionShare запускает службы локально на компьютере пользователя и затем " "OnionShare запускает службы локально на компьютере пользователя и затем "
"делает их доступными другим людям при помощи`Tor <https://www.torproject.org/" "делает их доступными другим людям при помощи`Tor "
">`_ `onion сервисов <https://community.torproject.org/onion-services/>`_." "<https://www.torproject.org/>`_ `onion сервисов "
"<https://community.torproject.org/onion-services/>`_."
#: ../../source/features.rst:8 #: ../../source/features.rst:8
msgid "" msgid ""
@ -50,9 +50,9 @@ msgid ""
"model <https://ssd.eff.org/module/your-security-plan>`_." "model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr "" msgstr ""
"Безопасность передачи этого адреса зависит от пользователя OnionShare. " "Безопасность передачи этого адреса зависит от пользователя OnionShare. "
"Исходя из `модели угрозы <https://ssd.eff.org/module/your-security-plan>`_, " "Исходя из `модели угрозы <https://ssd.eff.org/module/your-security-"
"можно использовать либо приложение для обмена зашифрованными сообщениями, " "plan>`_, можно использовать либо приложение для обмена зашифрованными "
"либо сервис электронной почты без шифрования." "сообщениями, либо сервис электронной почты без шифрования."
#: ../../source/features.rst:14 #: ../../source/features.rst:14
msgid "" msgid ""
@ -60,8 +60,8 @@ msgid ""
"Browser <https://www.torproject.org/>`_ to access the OnionShare service." "Browser <https://www.torproject.org/>`_ to access the OnionShare service."
msgstr "" msgstr ""
"Чтобы получить доступ к сервисам OnionShare, получатели веб-адреса должны" "Чтобы получить доступ к сервисам OnionShare, получатели веб-адреса должны"
"скопировать и вставить его в адресную строку `Tor Browser <https://www." " скопировать и вставить его в адресную строку `Tor Browser "
"torproject.org/>`_." "<https://www.torproject.org/>`_."
#: ../../source/features.rst:16 #: ../../source/features.rst:16
msgid "" msgid ""
@ -70,12 +70,12 @@ msgid ""
"until your laptop is unsuspended and on the Internet again. OnionShare " "until your laptop is unsuspended and on the Internet again. OnionShare "
"works best when working with people in real-time." "works best when working with people in real-time."
msgstr "" msgstr ""
"Если запуск OnionShare производится на ноутбуке и используется для отправки " "Если запуск OnionShare производится на ноутбуке и используется для "
"файлов, то, в случае перехода операционной системы в \"спящий режим\", " "отправки файлов, то, в случае перехода операционной системы в \"спящий "
"сервис OnionShare будет недоступен до тех пор, пока у ноутбука не будет " "режим\", сервис OnionShare будет недоступен до тех пор, пока у ноутбука "
"восстановлено соединение с сетью Internet. Рекомендуется использовать " "не будет восстановлено соединение с сетью Internet. Рекомендуется "
"OnionShare для взаимодействия с другими людьми в режиме \"реального времени\"" "использовать OnionShare для взаимодействия с другими людьми в режиме "
"." "\"реального времени\"."
#: ../../source/features.rst:18 #: ../../source/features.rst:18
msgid "" msgid ""
@ -85,12 +85,12 @@ msgid ""
"Tor onion services too, it also protects your anonymity. See the " "Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info." ":doc:`security design </security>` for more info."
msgstr "" msgstr ""
"Поскольку комьютер пользователя является одновременно веб-сервером, *никакие " "Поскольку комьютер пользователя является одновременно веб-сервером, "
"третьи лица не имеют доступа к внутренним процессам OnionShare*, включая " "*никакие третьи лица не имеют доступа к внутренним процессам OnionShare*,"
"разработчиков. Приложение полностью приватно. И, поскольку работа OnionShare " " включая разработчиков. Приложение полностью приватно. И, поскольку "
"основана на использовании onion сервисов сети Tor, он также защищает " "работа OnionShare основана на использовании onion сервисов сети Tor, он "
"анонимность пользователя. Дополнительную информацию можно найти :здесь:`" "также защищает анонимность пользователя. Дополнительную информацию можно "
"Обеспечение безопасности </security>`." "найти :здесь:`Обеспечение безопасности </security>`."
#: ../../source/features.rst:21 #: ../../source/features.rst:21
msgid "Share Files" msgid "Share Files"
@ -103,18 +103,18 @@ msgid ""
"share, and click \"Start sharing\"." "share, and click \"Start sharing\"."
msgstr "" msgstr ""
"OnionShare позволяет анонимно и безопасно отправлять файлы и директории " "OnionShare позволяет анонимно и безопасно отправлять файлы и директории "
"другим людями. Для этого нужно открыть вкладку \"Отправить\", \"перетащить\" " "другим людями. Для этого нужно открыть вкладку \"Отправить\", "
"в приложение файлы и директории, которые нужно отправить и нажать кнопку " "\"перетащить\" в приложение файлы и директории, которые нужно отправить и"
"\"Сделать доступным для скачивания\"." " нажать кнопку \"Сделать доступным для скачивания\"."
#: ../../source/features.rst:27 ../../source/features.rst:93 #: ../../source/features.rst:27 ../../source/features.rst:104
msgid "" msgid ""
"After you add files, you'll see some settings. Make sure you choose the " "After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing." "setting you're interested in before you start sharing."
msgstr "" msgstr ""
"После добавления файлов в OnionShare отобразятся некоторые настройки. " "После добавления файлов в OnionShare отобразятся некоторые настройки. "
"Убедитесь, что используете только интересующие Вас настройки перед началом " "Убедитесь, что используете только интересующие Вас настройки перед "
"отправки." "началом отправки."
#: ../../source/features.rst:31 #: ../../source/features.rst:31
msgid "" msgid ""
@ -126,9 +126,9 @@ msgid ""
msgstr "" msgstr ""
"Как только завершится первая загрузка файлов, OnionShare автоматически " "Как только завершится первая загрузка файлов, OnionShare автоматически "
"остановит сервер и удалит веб-сайт из сети Internet. Чтобы разрешить " "остановит сервер и удалит веб-сайт из сети Internet. Чтобы разрешить "
"нескольким людями загружать Ваши файлы, снимите флажок с настройки \"Закрыть " "нескольким людями загружать Ваши файлы, снимите флажок с настройки "
"доступ к файлам после их отправки (отмените чтобы разрешить скачивание " "\"Закрыть доступ к файлам после их отправки (отмените чтобы разрешить "
"отдельных файлов)\"." "скачивание отдельных файлов)\"."
#: ../../source/features.rst:34 #: ../../source/features.rst:34
msgid "" msgid ""
@ -159,10 +159,11 @@ msgid ""
"or the person is otherwise exposed to danger, use an encrypted messaging " "or the person is otherwise exposed to danger, use an encrypted messaging "
"app." "app."
msgstr "" msgstr ""
"Теперь, когда отображается адрес сервиса OnionShare, его нужно скопировать и " "Теперь, когда отображается адрес сервиса OnionShare, его нужно "
"отправить получателю файлов. Если файлы должны оставаться в безопасности или " "скопировать и отправить получателю файлов. Если файлы должны оставаться в"
"получатель по той или иной причине находится под угрозой, для передачи " " безопасности или получатель по той или иной причине находится под "
"адреса используйте приложение для обмена зашифроваными сообщениями." "угрозой, для передачи адреса используйте приложение для обмена "
"зашифроваными сообщениями."
#: ../../source/features.rst:42 #: ../../source/features.rst:42
msgid "" msgid ""
@ -171,61 +172,79 @@ msgid ""
"downloaded directly from your computer by clicking the \"Download Files\"" "downloaded directly from your computer by clicking the \"Download Files\""
" link in the corner." " link in the corner."
msgstr "" msgstr ""
"Получателю нужно перейти по полученному веб-адресу при помощи Tor Browser'а. " "Получателю нужно перейти по полученному веб-адресу при помощи Tor "
"После того, как получатель пройдёт авторизацию при помощи пароля, " "Browser'а. После того, как получатель пройдёт авторизацию при помощи "
"включённого в адрес сервиса OnionShare, он сможет загрузить файлы прямо на " "пароля, включённого в адрес сервиса OnionShare, он сможет загрузить файлы"
"свой компьютер, нажав на ссылку \"Загрузить Файлы\"." " прямо на свой компьютер, нажав на ссылку \"Загрузить Файлы\"."
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files" msgid "Receive Files and Messages"
msgstr "Получение файлов" msgstr ""
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "" msgid ""
"You can use OnionShare to let people anonymously upload files directly to" "You can use OnionShare to let people anonymously submit files and "
" your computer, essentially turning it into an anonymous dropbox. Open a " "messages directly to your computer, essentially turning it into an "
"\"Receive tab\", choose where you want to save the files and other " "anonymous dropbox. Open a receive tab and choose the settings that you "
"settings, and then click \"Start Receive Mode\"." "want."
msgstr "" msgstr ""
"Возможно использование OnionShare в качестве анонимного почтового ящика, "
"чтобы другие люди загружали файлы на компьютер получателя, сохраняя при этом "
"анонимность. Для этого нужно открыть вкладку \"Получение\", выбрать "
"директорию для сохранения файлов, произвести некоторые настройки и затем "
"нажать на кнопку \"Включить режим получения\"."
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "" msgid "You can browse for a folder to save messages and files that get submitted."
"This starts the OnionShare service. Anyone loading this address in their " msgstr ""
"Tor Browser will be able to upload files to your computer."
#: ../../source/features.rst:56
msgid ""
"You can check \"Disable submitting text\" if want to only allow file "
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Это запустит сервис OnionShare. Любой, у кого есть веб-адрес данного сервиса "
"сможет загрузить файлы на компьютер получателя при помощи Tor Browser."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
"You can check \"Use notification webhook\" and then choose a webhook URL "
"if you want to be notified when someone submits files or messages to your"
" OnionShare service. If you use this feature, OnionShare will make an "
"HTTP POST request to this URL whenever someone submits files or messages."
" For example, if you want to get an encrypted text messaging on the "
"messaging app `Keybase <https://keybase.io/>`_, you can start a "
"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
"``!webhook create onionshare-alerts``, and it will respond with a URL. "
"Use that as the notification webhook URL. If someone uploads a file to "
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:63
msgid ""
"When you are ready, click \"Start Receive Mode\". This starts the "
"OnionShare service. Anyone loading this address in their Tor Browser will"
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
#: ../../source/features.rst:67
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show " "You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you." "the history and progress of people sending files to you."
msgstr "" msgstr ""
"Для просмотра истории получения и прогресса текущих загрузок, нажмите кнопку " "Для просмотра истории получения и прогресса текущих загрузок, нажмите "
"\"↓\" в правом верхнем углу." "кнопку \"↓\" в правом верхнем углу."
#: ../../source/features.rst:60 #: ../../source/features.rst:69
msgid "Here is what it looks like for someone sending you files." #, fuzzy
msgid "Here is what it looks like for someone sending you files and messages."
msgstr "Примерно так выглядит OnionShare когда кто-то вам отправляет файлы." msgstr "Примерно так выглядит OnionShare когда кто-то вам отправляет файлы."
#: ../../source/features.rst:64 #: ../../source/features.rst:73
msgid "" msgid ""
"When someone uploads files to your receive service, by default they get " "When someone submits files or messages to your receive service, by "
"saved to a folder called ``OnionShare`` in the home folder on your " "default they get saved to a folder called ``OnionShare`` in the home "
"computer, automatically organized into separate subfolders based on the " "folder on your computer, automatically organized into separate subfolders"
"time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
"При использовании сервиса получения, по умолчанию файлы сохраняются в "
"директорию ``OnionShare`` в \"домашней\" директории комьютера пользователя. "
"Эта директория автоматически создаёт поддиректории в зависимости от времени "
"загрузки."
#: ../../source/features.rst:66 #: ../../source/features.rst:75
msgid "" msgid ""
"Setting up an OnionShare receiving service is useful for journalists and " "Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When " "others needing to securely accept documents from anonymous sources. When "
@ -234,26 +253,26 @@ msgid ""
"whistleblower submission system." "whistleblower submission system."
msgstr "" msgstr ""
"Использование OnionShare в качестве сервиса получения файлов может быть " "Использование OnionShare в качестве сервиса получения файлов может быть "
"полезным, например, для журналистов, в случае если нужно безопасно получить " "полезным, например, для журналистов, в случае если нужно безопасно "
"документы от анонимного источника." "получить документы от анонимного источника."
#: ../../source/features.rst:69 #: ../../source/features.rst:78
msgid "Use at your own risk" msgid "Use at your own risk"
msgstr "Возможные риски" msgstr "Возможные риски"
#: ../../source/features.rst:71 #: ../../source/features.rst:80
msgid "" msgid ""
"Just like with malicious e-mail attachments, it's possible someone could " "Just like with malicious e-mail attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your " "try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to " "OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files." "protect your system from malicious files."
msgstr "" msgstr ""
"Как и вредоносные приложения к письмам электронной почты, файлы загружаемые " "Как и вредоносные приложения к письмам электронной почты, файлы "
"на Ваш компьютер при помощи OnionShare могут быть использованы для атаки. " "загружаемые на Ваш компьютер при помощи OnionShare могут быть "
"OnionShare не содержит какого-либо защитного механизма операционной системы " "использованы для атаки. OnionShare не содержит какого-либо защитного "
"от вредоносных файлов." "механизма операционной системы от вредоносных файлов."
#: ../../source/features.rst:73 #: ../../source/features.rst:82
msgid "" msgid ""
"If you receive an Office document or a PDF through OnionShare, you can " "If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone" "convert these documents into PDFs that are safe to open using `Dangerzone"
@ -264,43 +283,49 @@ msgid ""
msgstr "" msgstr ""
"Если при помощи OnionShare был получен документ Office или PDF, его можно" "Если при помощи OnionShare был получен документ Office или PDF, его можно"
" преобразовать в определённый формат PDF и, затем, безопасно открыть при " " преобразовать в определённый формат PDF и, затем, безопасно открыть при "
"помощи `Dangerzone <https://dangerzone.rocks/>`_. Так же, в качестве защиты " "помощи `Dangerzone <https://dangerzone.rocks/>`_. Так же, в качестве "
"при работе с подозрительными документами, можно ииспользовать ОС `Tails " "защиты при работе с подозрительными документами, можно ииспользовать ОС "
"<https://tails.boum.org/>`_ или внутри одноразовой виртуальной машины ОС `" "`Tails <https://tails.boum.org/>`_ или внутри одноразовой виртуальной "
"Qubes <https://qubes-os.org/>`_." "машины ОС `Qubes <https://qubes-os.org/>`_."
#: ../../source/features.rst:76 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
msgstr "Советы для использования сервиса приёма файлов" msgstr "Советы для использования сервиса приёма файлов"
#: ../../source/features.rst:78 #: ../../source/features.rst:89
msgid "" msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's " "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" "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 " " and connected to the Internet, and not on the one you use on a regular "
"basis." "basis."
msgstr "" msgstr ""
"Если нужно разместить свой собственный анонимный почтовый язщик для приёма " "Если нужно разместить свой собственный анонимный почтовый язщик для "
"документов, рекомендуется сделать это при помощи отдельного компьютера, " "приёма документов, рекомендуется сделать это при помощи отдельного "
"постоянно подключённого к сети питания, который не используется для обычной " "компьютера, постоянно подключённого к сети питания, который не "
"работы." "используется для обычной работы."
#: ../../source/features.rst:80 #: ../../source/features.rst:91
#, fuzzy
msgid "" msgid ""
"If you intend to put the OnionShare address on your website or social " "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 " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_passwords`)." "public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
"Если планируется разместить адрес сервиса OnionShare на своём веб-сайте или " "Если планируется разместить адрес сервиса OnionShare на своём веб-сайте "
"в социальных сетях, рекомендуется сохранить вкладку (подробнее " "или в социальных сетях, рекомендуется сохранить вкладку (подробнее "
":ref:`save_tabs`) и сделать сервис общедоступным (подробнее " ":ref:`save_tabs`) и сделать сервис общедоступным (подробнее "
":ref:`turn_off_passwords`)." ":ref:`turn_off_passwords`)."
#: ../../source/features.rst:83 #: ../../source/features.rst:94
msgid "Host a Website" msgid "Host a Website"
msgstr "Размещение Вебсайта" msgstr "Размещение Вебсайта"
#: ../../source/features.rst:85 #: ../../source/features.rst:96
msgid "" msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag " "To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click " "the files and folders that make up the static content there, and click "
@ -308,10 +333,10 @@ msgid ""
msgstr "" msgstr ""
"Чтобы разместить статический HTML сайт при помощи OnionShare, нужно " "Чтобы разместить статический HTML сайт при помощи OnionShare, нужно "
"соответствующую вкладку, перетащить файлы и директории со статическим " "соответствующую вкладку, перетащить файлы и директории со статическим "
"содержимым и, когда всё будет готово, нажать кнопку \"Сделать доступным для " "содержимым и, когда всё будет готово, нажать кнопку \"Сделать доступным "
"скачивания\"." "для скачивания\"."
#: ../../source/features.rst:89 #: ../../source/features.rst:100
msgid "" msgid ""
"If you add an ``index.html`` file, it will render when someone loads your" "If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, " " website. You should also include any other HTML files, CSS files, "
@ -320,14 +345,15 @@ msgid ""
"websites that execute code or use databases. So you can't for example use" "websites that execute code or use databases. So you can't for example use"
" WordPress.)" " WordPress.)"
msgstr "" msgstr ""
"Если добавить во вкладку файл ``index.html``, то он отобразится как вебсайт, " "Если добавить во вкладку файл ``index.html``, то он отобразится как "
"когда кто-то перейдёт по веб-адресу сервиса OnionShare. Также следует " "вебсайт, когда кто-то перейдёт по веб-адресу сервиса OnionShare. Также "
"приложить все прочие HTML, CSS JavaScript файлы и изображения из которых " "следует приложить все прочие HTML, CSS JavaScript файлы и изображения из "
"состоит вебсайт. (Обратите внимание, что OnionShare поддерживает создание " "которых состоит вебсайт. (Обратите внимание, что OnionShare поддерживает "
"только *статических* файлов и не может быть использован для размещения веб-" "создание только *статических* файлов и не может быть использован для "
"приложений или сайтов, использующих базы данных (например, WordPress).)" "размещения веб-приложений или сайтов, использующих базы данных (например,"
" WordPress).)"
#: ../../source/features.rst:91 #: ../../source/features.rst:102
msgid "" msgid ""
"If you don't have an ``index.html`` file, it will show a directory " "If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and " "listing instead, and people loading it can look through the files and "
@ -337,11 +363,11 @@ msgstr ""
"отобразится список директорий и файлов, которые можно просмотреть и/или " "отобразится список директорий и файлов, которые можно просмотреть и/или "
"загрузить." "загрузить."
#: ../../source/features.rst:98 #: ../../source/features.rst:109
msgid "Content Security Policy" msgid "Content Security Policy"
msgstr "Политика безопасности контента" msgstr "Политика безопасности контента"
#: ../../source/features.rst:100 #: ../../source/features.rst:111
msgid "" msgid ""
"By default OnionShare helps secure your website by setting a strict " "By default OnionShare helps secure your website by setting a strict "
"`Content Security Police " "`Content Security Police "
@ -350,28 +376,29 @@ msgid ""
"page." "page."
msgstr "" msgstr ""
"По умолчанию OnionShare помогает обезопасить вебсайт пользователя, " "По умолчанию OnionShare помогает обезопасить вебсайт пользователя, "
"устанавливая строгую `Политикаубезопасности контента <https://en.wikipedia." "устанавливая строгую `Политикаубезопасности контента "
"org/wiki/Content_Security_Policy>`_ . Тем не менее, это исключает " "<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ . Тем не менее,"
"возможность загрузки и использования на веб-странице контента из сторонних " " это исключает возможность загрузки и использования на веб-странице "
"источников." "контента из сторонних источников."
#: ../../source/features.rst:102 #: ../../source/features.rst:113
msgid "" msgid ""
"If you want to load content from third-party websites, like assets or " "If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, check the \"Don't send Content Security " "JavaScript libraries from CDNs, check the \"Don't send Content Security "
"Policy header (allows your website to use third-party resources)\" box " "Policy header (allows your website to use third-party resources)\" box "
"before starting the service." "before starting the service."
msgstr "" msgstr ""
"Если требуется загрузить и использовать содержимое из сторонних иточников, " "Если требуется загрузить и использовать содержимое из сторонних "
"например активы или библиотеки JavaScript из CDN, то нужно установить флажок " "иточников, например активы или библиотеки JavaScript из CDN, то нужно "
"\"Не отправлять заголовок политики безопасности контента\" перед запуском " "установить флажок \"Не отправлять заголовок политики безопасности "
"сервиса. Это позволит вебсайту использовать сторонние источники содержимого." "контента\" перед запуском сервиса. Это позволит вебсайту использовать "
"сторонние источники содержимого."
#: ../../source/features.rst:105 #: ../../source/features.rst:116
msgid "Tips for running a website service" msgid "Tips for running a website service"
msgstr "Советы по использованию сервсиа размещения вебсайтов" msgstr "Советы по использованию сервсиа размещения вебсайтов"
#: ../../source/features.rst:107 #: ../../source/features.rst:118
msgid "" msgid ""
"If you want to host a long-term website using OnionShare (meaning not " "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 " "something to quickly show someone something), it's recommended you do it "
@ -380,15 +407,15 @@ msgid ""
"(see :ref:`save_tabs`) so you can resume the website with the same " "(see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later." "address if you close OnionShare and re-open it later."
msgstr "" msgstr ""
"Чтобы разместить сайт при помощи OnionShare на длительный срок (то есть, не " "Чтобы разместить сайт при помощи OnionShare на длительный срок (то есть, "
"для быстрой демонстрации чего-то кому-то), рекомендуется сделать это при " "не для быстрой демонстрации чего-то кому-то), рекомендуется сделать это "
"помощи отдельного компьютера, постоянно подключённого к сети питания и " "при помощи отдельного компьютера, постоянно подключённого к сети питания "
"Интернету, который не используется для обычной работы. Также, нужно " "и Интернету, который не используется для обычной работы. Также, нужно "
"сохранить вкладку (подробнее :ref:`save_tabs`), чтобы в дальнейшем можно " "сохранить вкладку (подробнее :ref:`save_tabs`), чтобы в дальнейшем можно "
"было восстановить доступ к вебсайту с тем же самым адресом, в случае " "было восстановить доступ к вебсайту с тем же самым адресом, в случае "
"закрытия и повторного запуска OnionShare." "закрытия и повторного запуска OnionShare."
#: ../../source/features.rst:110 #: ../../source/features.rst:121
msgid "" msgid ""
"If your website is intended for the public, you should run it as a public" "If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_passwords`)." " service (see :ref:`turn_off_passwords`)."
@ -396,32 +423,32 @@ msgstr ""
"Если планируется сделать сайт общедоступным, рекомендуется отключить " "Если планируется сделать сайт общедоступным, рекомендуется отключить "
"проверку паролей (подробнее :ref:`turn_off_passwords`)." "проверку паролей (подробнее :ref:`turn_off_passwords`)."
#: ../../source/features.rst:113 #: ../../source/features.rst:124
msgid "Chat Anonymously" msgid "Chat Anonymously"
msgstr "Анонимный чат" msgstr "Анонимный чат"
#: ../../source/features.rst:115 #: ../../source/features.rst:126
msgid "" msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't" "You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"." " log anything. Just open a chat tab and click \"Start chat server\"."
msgstr "" msgstr ""
"Возможно использование OnionShare в качестве приватного и безопасного чата, " "Возможно использование OnionShare в качестве приватного и безопасного "
"который не хранит какие-либо логи. Для этого, нужно открыть вкладку чата и " "чата, который не хранит какие-либо логи. Для этого, нужно открыть вкладку"
"нажать кнопку \"Запустить сервер чата\"." " чата и нажать кнопку \"Запустить сервер чата\"."
#: ../../source/features.rst:119 #: ../../source/features.rst:130
msgid "" msgid ""
"After you start the server, copy the OnionShare address and send it to " "After you start the server, copy the OnionShare address and send it to "
"the people you want in the anonymous chat room. If it's important to " "the people you want in the anonymous chat room. If it's important to "
"limit exactly who can join, use an encrypted messaging app to send out " "limit exactly who can join, use an encrypted messaging app to send out "
"the OnionShare address." "the OnionShare address."
msgstr "" msgstr ""
"После запуска сервера, нужно скопировать адрес OnionShare и отправить людям, " "После запуска сервера, нужно скопировать адрес OnionShare и отправить "
"с которыми планируется анонимная переписка. Если нужно ввести ограничить " "людям, с которыми планируется анонимная переписка. Если нужно ввести "
"круг участников, используйте для рассылки адреса OnionShare приложение для " "ограничить круг участников, используйте для рассылки адреса OnionShare "
"обмена зашифрованными сообщениями." "приложение для обмена зашифрованными сообщениями."
#: ../../source/features.rst:124 #: ../../source/features.rst:135
msgid "" msgid ""
"People can join the chat room by loading its OnionShare address in Tor " "People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to " "Browser. The chat room requires JavasScript, so everyone who wants to "
@ -430,22 +457,23 @@ msgid ""
msgstr "" msgstr ""
"Участники могут присодиниться к чату при помощи адреса OnionShare и Tor " "Участники могут присодиниться к чату при помощи адреса OnionShare и Tor "
"Browser. Для функционирования чата нужен JavaScript, так что каждому " "Browser. Для функционирования чата нужен JavaScript, так что каждому "
"предполагаемому участнику необходимо выставить уровень безопасности \"Обычный" "предполагаемому участнику необходимо выставить уровень безопасности "
"\" или \"Высокий\", вместо \"Высший\"." "\"Обычный\" или \"Высокий\", вместо \"Высший\"."
#: ../../source/features.rst:127 #: ../../source/features.rst:138
msgid "" msgid ""
"When someone joins the chat room they get assigned a random name. They " "When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel " "can change their name by typing a new name in the box in the left panel "
"and pressing ↵. Since the chat history isn't saved anywhere, it doesn't " "and pressing ↵. Since the chat history isn't saved anywhere, it doesn't "
"get displayed at all, even if others were already chatting in the room." "get displayed at all, even if others were already chatting in the room."
msgstr "" msgstr ""
"Когда в чате появляется новый участник, ему присваивается случайное имя. В " "Когда в чате появляется новый участник, ему присваивается случайное имя. "
"дальнейшем это имя может быть изменено форме на левой панели: нужно ввести " "В дальнейшем это имя может быть изменено форме на левой панели: нужно "
"новое имя и нажать ↵. Поскольку никакая история переписки не сохраняется, " "ввести новое имя и нажать ↵. Поскольку никакая история переписки не "
"это имя нигде не отбражается, даже если в чате уже были участники." "сохраняется, это имя нигде не отбражается, даже если в чате уже были "
"участники."
#: ../../source/features.rst:133 #: ../../source/features.rst:144
msgid "" msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change " "In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity." "their name to anything, and there is no way to confirm anyone's identity."
@ -454,7 +482,7 @@ msgstr ""
"изменить своё имя и нет никакого способа определить/подтвердить личность " "изменить своё имя и нет никакого способа определить/подтвердить личность "
"такого участника." "такого участника."
#: ../../source/features.rst:136 #: ../../source/features.rst:147
msgid "" msgid ""
"However, if you create an OnionShare chat room and securely send the " "However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted " "address only to a small group of trusted friends using encrypted "
@ -463,21 +491,22 @@ msgid ""
msgstr "" msgstr ""
"Тем не менее, если при создании чата в OnionShare вдрес будет разослан " "Тем не менее, если при создании чата в OnionShare вдрес будет разослан "
"только небольшой группе проверенных друзей при помощи зашифрованных " "только небольшой группе проверенных друзей при помощи зашифрованных "
"сообщений, можно быть достаточно уверенным, что в чате присутствуют друзья." "сообщений, можно быть достаточно уверенным, что в чате присутствуют "
"друзья."
#: ../../source/features.rst:139 #: ../../source/features.rst:150
msgid "How is this useful?" msgid "How is this useful?"
msgstr "Насколько это полезно?" msgstr "Насколько это полезно?"
#: ../../source/features.rst:141 #: ../../source/features.rst:152
msgid "" msgid ""
"If you need to already be using an encrypted messaging app, what's the " "If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces." "point of an OnionShare chat room to begin with? It leaves less traces."
msgstr "" msgstr ""
"Какая может быть польза от чата OnionShare при наличии приложений для обмена " "Какая может быть польза от чата OnionShare при наличии приложений для "
"зашифрованными сообщениями? OnionShare оставляет меньше следов." "обмена зашифрованными сообщениями? OnionShare оставляет меньше следов."
#: ../../source/features.rst:143 #: ../../source/features.rst:154
msgid "" msgid ""
"If you for example send a message to a Signal group, a copy of your " "If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the devices, and computers if they set up" "message ends up on each device (the devices, and computers if they set up"
@ -488,16 +517,16 @@ msgid ""
"rooms don't store any messages anywhere, so the problem is reduced to a " "rooms don't store any messages anywhere, so the problem is reduced to a "
"minimum." "minimum."
msgstr "" msgstr ""
"Например, если отправить групповое сообщение при помощи мессенджера Signal, " "Например, если отправить групповое сообщение при помощи мессенджера "
"копия сообщения появится на всех устройствах (включая компьютеры, на которых " "Signal, копия сообщения появится на всех устройствах (включая компьютеры,"
"установлен Signal Desktop) каждого из участников группы. Даже если включены " " на которых установлен Signal Desktop) каждого из участников группы. Даже"
"\"исчезающие сообщения\", достаточно трудно убедиться, что все копии " " если включены \"исчезающие сообщения\", достаточно трудно убедиться, что"
"сообщения были в действительности удалены со всех устройств и каких-либо " " все копии сообщения были в действительности удалены со всех устройств и "
"других мест (например, центров уведомлений), куда они могли быть сохранены. " "каких-либо других мест (например, центров уведомлений), куда они могли "
"OnionShare не хранит какие-либо сообщения, так что описанная проблема " "быть сохранены. OnionShare не хранит какие-либо сообщения, так что "
"сведена к минимуму." "описанная проблема сведена к минимуму."
#: ../../source/features.rst:146 #: ../../source/features.rst:157
msgid "" msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat " "OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any " "anonymously and securely with someone without needing to create any "
@ -508,16 +537,16 @@ msgid ""
msgstr "" msgstr ""
"OnionShare также может быть полезен для людей, которым нужна анонимная и " "OnionShare также может быть полезен для людей, которым нужна анонимная и "
"безопасная переписка без создания каких-либо учётных записей. Например, с" "безопасная переписка без создания каких-либо учётных записей. Например, с"
"журналистом может связаться 'источник': прислать адрес OnionShare при помощи " " журналистом может связаться 'источник': прислать адрес OnionShare при "
"временного адреса электронной почты и затем подождать пока журналист, " "помощи временного адреса электронной почты и затем подождать пока "
"присоединится к чату. При таком сценарии источник не подвергает опасности " "журналист, присоединится к чату. При таком сценарии источник не "
"свою анонимность." "подвергает опасности свою анонимность."
#: ../../source/features.rst:150 #: ../../source/features.rst:161
msgid "How does the encryption work?" msgid "How does the encryption work?"
msgstr "Как работает шифрование?" msgstr "Как работает шифрование?"
#: ../../source/features.rst:152 #: ../../source/features.rst:163
msgid "" msgid ""
"Because OnionShare relies on Tor onion services, connections between the " "Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@ -527,12 +556,12 @@ msgid ""
" connections." " connections."
msgstr "" msgstr ""
"Работа OnionShare обеспечивается onion сервисами сети Tor, все соединения" "Работа OnionShare обеспечивается onion сервисами сети Tor, все соединения"
"между Tor Browser и OnionShare зашифровны сквозным шифрованием (E2EE). При " " между Tor Browser и OnionShare зашифровны сквозным шифрованием (E2EE). "
"отправке в чат OnionShare, сообщение передаётся на сервер через E2EE onion " "При отправке в чат OnionShare, сообщение передаётся на сервер через E2EE "
"соединение. Далее, сообщение рассылается всем участникам чата при помощи " "onion соединение. Далее, сообщение рассылается всем участникам чата при "
"WebSockets, также при использовании E2EE и onion соединений." "помощи WebSockets, также при использовании E2EE и onion соединений."
#: ../../source/features.rst:154 #: ../../source/features.rst:165
msgid "" msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on" "OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead." " the Tor onion service's encryption instead."
@ -915,3 +944,54 @@ msgstr ""
#~ "WebSockets, through their E2EE onion " #~ "WebSockets, through their E2EE onion "
#~ "connections." #~ "connections."
#~ msgstr "" #~ msgstr ""
#~ msgid "Receive Files"
#~ msgstr "Получение файлов"
#~ msgid ""
#~ "You can use OnionShare to let "
#~ "people anonymously upload files directly "
#~ "to your computer, essentially turning it"
#~ " into an anonymous dropbox. Open a"
#~ " \"Receive tab\", choose where you "
#~ "want to save the files and other"
#~ " settings, and then click \"Start "
#~ "Receive Mode\"."
#~ msgstr ""
#~ "Возможно использование OnionShare в качестве"
#~ " анонимного почтового ящика, чтобы другие"
#~ " люди загружали файлы на компьютер "
#~ "получателя, сохраняя при этом анонимность. "
#~ "Для этого нужно открыть вкладку "
#~ "\"Получение\", выбрать директорию для "
#~ "сохранения файлов, произвести некоторые "
#~ "настройки и затем нажать на кнопку "
#~ "\"Включить режим получения\"."
#~ msgid ""
#~ "This starts the OnionShare service. "
#~ "Anyone loading this address in their "
#~ "Tor Browser will be able to upload"
#~ " files to your computer."
#~ msgstr ""
#~ "Это запустит сервис OnionShare. Любой, у"
#~ " кого есть веб-адрес данного сервиса "
#~ "сможет загрузить файлы на компьютер "
#~ "получателя при помощи Tor Browser."
#~ msgid ""
#~ "When someone uploads files to your "
#~ "receive service, by default they get "
#~ "saved to a folder called ``OnionShare``"
#~ " in the home folder on your "
#~ "computer, automatically organized into "
#~ "separate subfolders based on the time"
#~ " that the files get uploaded."
#~ msgstr ""
#~ "При использовании сервиса получения, по "
#~ "умолчанию файлы сохраняются в директорию "
#~ "``OnionShare`` в \"домашней\" директории "
#~ "комьютера пользователя. Эта директория "
#~ "автоматически создаёт поддиректории в "
#~ "зависимости от времени загрузки."

View file

@ -7,16 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-01-09 15:33+0000\n" "PO-Revision-Date: 2021-01-09 15:33+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n" "Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: tr\n" "Language: tr\n"
"Language-Team: tr <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.1-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2 #: ../../source/advanced.rst:2
@ -35,11 +34,12 @@ msgid ""
"useful if you want to host a website available from the same OnionShare " "useful if you want to host a website available from the same OnionShare "
"address even if you reboot your computer." "address even if you reboot your computer."
msgstr "" msgstr ""
"OnionShare'deki her şey öntanımlı olarak geçicidir. Bir OnionShare sekmesini " "OnionShare'deki her şey öntanımlı olarak geçicidir. Bir OnionShare "
"kapatırsanız, adresi artık mevcut değildir ve tekrar kullanılamaz. Bazen bir " "sekmesini kapatırsanız, adresi artık mevcut değildir ve tekrar "
"OnionShare hizmetinin kalıcı olmasını isteyebilirsiniz. Bilgisayarınızı " "kullanılamaz. Bazen bir OnionShare hizmetinin kalıcı olmasını "
"yeniden başlatsanız bile, aynı OnionShare adresinden kullanılabilen bir web " "isteyebilirsiniz. Bilgisayarınızı yeniden başlatsanız bile, aynı "
"sitesini barındırmak istiyorsanız bu kullanışlıdır." "OnionShare adresinden kullanılabilen bir web sitesini barındırmak "
"istiyorsanız bu kullanışlıdır."
#: ../../source/advanced.rst:13 #: ../../source/advanced.rst:13
msgid "" msgid ""
@ -48,9 +48,9 @@ msgid ""
"tab is saved a purple pin icon appears to the left of its server status." "tab is saved a purple pin icon appears to the left of its server status."
msgstr "" msgstr ""
"Herhangi bir sekmeyi kalıcı hale getirmek için, sunucuyu başlatmadan önce" "Herhangi bir sekmeyi kalıcı hale getirmek için, sunucuyu başlatmadan önce"
"\"Bu sekmeyi kaydet ve OnionShare'i açtığımda otomatik olarak aç\" kutusunu " " \"Bu sekmeyi kaydet ve OnionShare'i açtığımda otomatik olarak aç\" "
"işaretleyin. Bir sekme kaydedildiğinde, sunucu durumunun solunda mor bir " "kutusunu işaretleyin. Bir sekme kaydedildiğinde, sunucu durumunun solunda"
"iğne simgesi görünür." " mor bir iğne simgesi görünür."
#: ../../source/advanced.rst:18 #: ../../source/advanced.rst:18
msgid "" msgid ""
@ -58,17 +58,18 @@ msgid ""
"start opened. You'll have to manually start each service, but when you do" "start opened. You'll have to manually start each service, but when you do"
" they will start with the same OnionShare address and password." " they will start with the same OnionShare address and password."
msgstr "" msgstr ""
"OnionShare'den çıkıp tekrar açtığınızda, kaydedilmiş sekmeleriniz ılmaya " "OnionShare'den çıkıp tekrar açtığınızda, kaydedilmiş sekmeleriniz "
"başlayacaktır. Her hizmeti elle başlatmanız gerekecektir, ancak bunu " "ılmaya başlayacaktır. Her hizmeti elle başlatmanız gerekecektir, ancak "
"yaptığınızda aynı OnionShare adresi ve parolasıyla başlayacaklardır." "bunu yaptığınızda aynı OnionShare adresi ve parolasıyla başlayacaklardır."
#: ../../source/advanced.rst:21 #: ../../source/advanced.rst:21
msgid "" msgid ""
"If you save a tab, a copy of that tab's onion service secret key will be " "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." "stored on your computer with your OnionShare settings."
msgstr "" msgstr ""
"Bir sekmeyi kaydederseniz, bu sekmenin onion hizmeti gizli anahtarının bir " "Bir sekmeyi kaydederseniz, bu sekmenin onion hizmeti gizli anahtarının "
"kopyası, OnionShare ayarlarınızla birlikte bilgisayarınızda saklanacaktır." "bir kopyası, OnionShare ayarlarınızla birlikte bilgisayarınızda "
"saklanacaktır."
#: ../../source/advanced.rst:26 #: ../../source/advanced.rst:26
msgid "Turn Off Passwords" msgid "Turn Off Passwords"
@ -81,10 +82,10 @@ msgid ""
"wrong guesses at the password, your onion service is automatically " "wrong guesses at the password, your onion service is automatically "
"stopped to prevent a brute force attack against the OnionShare service." "stopped to prevent a brute force attack against the OnionShare service."
msgstr "" msgstr ""
"Öntanımlı olarak, tüm OnionShare hizmetleri, ``onionshare`` kullanıcı adı ve " "Öntanımlı olarak, tüm OnionShare hizmetleri, ``onionshare`` kullanıcı adı"
"rastgele oluşturulan bir parola ile korunur. Birisi parola için 20 yanlış " " ve rastgele oluşturulan bir parola ile korunur. Birisi parola için 20 "
"tahmin yaparsa, OnionShare hizmetine karşı bir kaba kuvvet saldırısını " "yanlış tahmin yaparsa, OnionShare hizmetine karşı bir kaba kuvvet "
"önlemek için onion hizmetiniz otomatik olarak durdurulur." "saldırısını önlemek için onion hizmetiniz otomatik olarak durdurulur."
#: ../../source/advanced.rst:31 #: ../../source/advanced.rst:31
msgid "" msgid ""
@ -95,12 +96,12 @@ msgid ""
"can force your server to stop just by making 20 wrong guesses of your " "can force your server to stop just by making 20 wrong guesses of your "
"password, even if they know the correct password." "password, even if they know the correct password."
msgstr "" msgstr ""
"Bazen, örneğin bir OnionShare alma hizmeti kurmak istediğinizde, insanların " "Bazen, örneğin bir OnionShare alma hizmeti kurmak istediğinizde, "
"size güvenli ve anonim olarak dosya gönderebilmesi için OnionShare " "insanların size güvenli ve anonim olarak dosya gönderebilmesi için "
"hizmetinizin herkes tarafından erişilebilir olmasını isteyebilirsiniz. Bu " "OnionShare hizmetinizin herkes tarafından erişilebilir olmasını "
"durumda parolayı tamamen devre dışı bırakmak daha iyidir. Bunu yapmazsanız, " "isteyebilirsiniz. Bu durumda parolayı tamamen devre dışı bırakmak daha "
"birisi doğru parolayı bilse bile parolanız hakkında 20 yanlış tahmin yaparak " "iyidir. Bunu yapmazsanız, birisi doğru parolayı bilse bile parolanız "
"sunucunuzu durmaya zorlayabilir." "hakkında 20 yanlış tahmin yaparak sunucunuzu durmaya zorlayabilir."
#: ../../source/advanced.rst:35 #: ../../source/advanced.rst:35
msgid "" msgid ""
@ -112,11 +113,28 @@ msgstr ""
" \"Parola kullanma\" kutusunu işaretlemeniz yeterlidir. Daha sonra sunucu" " \"Parola kullanma\" kutusunu işaretlemeniz yeterlidir. Daha sonra sunucu"
" herkese açık olacak ve bir parolası olmayacaktır." " herkese açık olacak ve bir parolası olmayacaktır."
#: ../../source/advanced.rst:38 #: ../../source/advanced.rst:40
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:42
msgid ""
"By default, when people load an OnionShare service in Tor Browser they "
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
#: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
msgstr "Zamanlanan Saatler" msgstr "Zamanlanan Saatler"
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:49
msgid "" msgid ""
"OnionShare supports scheduling exactly when a service should start and " "OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its " "stop. Before starting a server, click \"Show advanced settings\" in its "
@ -124,27 +142,27 @@ msgid ""
"scheduled time\", \"Stop onion service at scheduled time\", or both, and " "scheduled time\", \"Stop onion service at scheduled time\", or both, and "
"set the respective desired dates and times." "set the respective desired dates and times."
msgstr "" msgstr ""
"OnionShare, bir hizmetin tam olarak ne zaman başlaması ve durması gerektiği " "OnionShare, bir hizmetin tam olarak ne zaman başlaması ve durması "
"zamanlamayı destekler. Bir sunucuyu başlatmadan önce, onun sekmesinde " "gerektiği zamanlamayı destekler. Bir sunucuyu başlatmadan önce, onun "
"\"Gelişmiş ayarları göster\" düğmesine tıklayın ve ardından \"Onion " "sekmesinde \"Gelişmiş ayarları göster\" düğmesine tıklayın ve ardından "
"hizmetini zamanlanan saatte başlat\", \"Onion hizmetini zamanlanan saatte " "\"Onion hizmetini zamanlanan saatte başlat\", \"Onion hizmetini "
"durdur\" veya her ikisinin yanındaki kutuları işaretleyin ve istenen " "zamanlanan saatte durdur\" veya her ikisinin yanındaki kutuları "
"tarihleri ve saatleri ayarlayın." "işaretleyin ve istenen tarihleri ve saatleri ayarlayın."
#: ../../source/advanced.rst:43 #: ../../source/advanced.rst:52
msgid "" msgid ""
"If you scheduled a service to start in the future, when you click the " "If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it " "\"Start sharing\" button you will see a timer counting down until it "
"starts. If you scheduled it to stop in the future, after it's started you" "starts. If you scheduled it to stop in the future, after it's started you"
" will see a timer counting down to when it will stop automatically." " will see a timer counting down to when it will stop automatically."
msgstr "" msgstr ""
"Bir hizmeti gelecekte başlaması için zamanladıysanız, \"Paylaşmaya başla\" " "Bir hizmeti gelecekte başlaması için zamanladıysanız, \"Paylaşmaya "
"düğmesine tıkladığınızda, başlayana kadar geri sayım yapan bir zamanlayıcı " "başla\" düğmesine tıkladığınızda, başlayana kadar geri sayım yapan bir "
"göreceksiniz. Gelecekte durması için zamanladıysanız, başladıktan sonra " "zamanlayıcı göreceksiniz. Gelecekte durması için zamanladıysanız, "
"otomatik olarak duracağı zamana kadar geri sayan bir zamanlayıcı " "başladıktan sonra otomatik olarak duracağı zamana kadar geri sayan bir "
"göreceksiniz." "zamanlayıcı göreceksiniz."
#: ../../source/advanced.rst:46 #: ../../source/advanced.rst:55
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically start can be used as " "**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given " "a dead man's switch**, where your service will be made public at a given "
@ -152,27 +170,28 @@ msgid ""
" you can cancel the service before it's scheduled to start." " you can cancel the service before it's scheduled to start."
msgstr "" msgstr ""
"**Bir OnionShare hizmetini otomatik olarak başlayacak şekilde zamanlamak," "**Bir OnionShare hizmetini otomatik olarak başlayacak şekilde zamanlamak,"
"ölü adam anahtarı olarak kullanılabilir**, bu şekilde size bir şey olursa, " " ölü adam anahtarı olarak kullanılabilir**, bu şekilde size bir şey "
"hizmetiniz gelecekte belirli bir zamanda herkese açık duruma getirilecektir. " "olursa, hizmetiniz gelecekte belirli bir zamanda herkese açık duruma "
"Size bir şey olmazsa, hizmetin başlama zamanından önce iptal edebilirsiniz." "getirilecektir. Size bir şey olmazsa, hizmetin başlama zamanından önce "
"iptal edebilirsiniz."
#: ../../source/advanced.rst:51 #: ../../source/advanced.rst:60
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to" "**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while " " limit exposure**, like if you want to share secret documents while "
"making sure they're not available on the Internet for more than a few " "making sure they're not available on the Internet for more than a few "
"days." "days."
msgstr "" msgstr ""
"**Bir OnionShare hizmetini otomatik olarak durdurulacak şekilde zamanlamak, " "**Bir OnionShare hizmetini otomatik olarak durdurulacak şekilde "
"maruz kalmayı sınırlandırmak için kullanışlı olabilir**, örneğin gizli " "zamanlamak, maruz kalmayı sınırlandırmak için kullanışlı olabilir**, "
"belgeleri birkaç günden daha uzun süre internette bulunmadıklarından emin " "örneğin gizli belgeleri birkaç günden daha uzun süre internette "
"olacak şekilde paylaşmak isterseniz." "bulunmadıklarından emin olacak şekilde paylaşmak isterseniz."
#: ../../source/advanced.rst:56 #: ../../source/advanced.rst:65
msgid "Command-line Interface" msgid "Command-line Interface"
msgstr "Komut Satırı Arayüzü" msgstr "Komut Satırı Arayüzü"
#: ../../source/advanced.rst:58 #: ../../source/advanced.rst:67
msgid "" msgid ""
"In addition to its graphical interface, OnionShare has a command-line " "In addition to its graphical interface, OnionShare has a command-line "
"interface." "interface."
@ -180,7 +199,7 @@ msgstr ""
"Grafiksel arayüzüne ek olarak, OnionShare bir komut satırı arayüzüne " "Grafiksel arayüzüne ek olarak, OnionShare bir komut satırı arayüzüne "
"sahiptir." "sahiptir."
#: ../../source/advanced.rst:60 #: ../../source/advanced.rst:69
msgid "" msgid ""
"You can install just the command-line version of OnionShare using " "You can install just the command-line version of OnionShare using "
"``pip3``::" "``pip3``::"
@ -188,53 +207,53 @@ msgstr ""
"OnionShare'in yalnızca komut satırı sürümünü ``pip3`` kullanarak " "OnionShare'in yalnızca komut satırı sürümünü ``pip3`` kullanarak "
"kurabilirsiniz::" "kurabilirsiniz::"
#: ../../source/advanced.rst:64 #: ../../source/advanced.rst:73
msgid "" msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, " "Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``" "install it with: ``brew install tor``"
msgstr "" msgstr ""
"Ayrıca ``tor`` paketinin kurulu olması gerekeceğini unutmayın. macOS için şu " "Ayrıca ``tor`` paketinin kurulu olması gerekeceğini unutmayın. macOS için"
"komutla kurun: ``brew install tor``" " şu komutla kurun: ``brew install tor``"
#: ../../source/advanced.rst:66 #: ../../source/advanced.rst:75
msgid "Then run it like this::" msgid "Then run it like this::"
msgstr "Sonra şu şekilde çalıştırın::" msgstr "Sonra şu şekilde çalıştırın::"
#: ../../source/advanced.rst:70 #: ../../source/advanced.rst:79
msgid "" msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can " "If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface " "also just run ``onionshare.cli`` to access the command-line interface "
"version." "version."
msgstr "" msgstr ""
"OnionShare'i Linux Snapcraft paketini kullanarak kurduysanız, komut satırı " "OnionShare'i Linux Snapcraft paketini kullanarak kurduysanız, komut "
"arayüzü sürümüne erişmek için ``onionshare.cli`` komutunu " "satırı arayüzü sürümüne erişmek için ``onionshare.cli`` komutunu "
"çalıştırabilirsiniz." "çalıştırabilirsiniz."
#: ../../source/advanced.rst:73 #: ../../source/advanced.rst:82
msgid "Usage" msgid "Usage"
msgstr "Kullanım" msgstr "Kullanım"
#: ../../source/advanced.rst:75 #: ../../source/advanced.rst:84
msgid "" msgid ""
"You can browse the command-line documentation by running ``onionshare " "You can browse the command-line documentation by running ``onionshare "
"--help``::" "--help``::"
msgstr "" msgstr ""
"``onionshare --help`` komutunu çalıştırarak komut satırı belgelendirmesine " "``onionshare --help`` komutunu çalıştırarak komut satırı "
"göz atabilirsiniz::" "belgelendirmesine göz atabilirsiniz::"
#: ../../source/advanced.rst:132 #: ../../source/advanced.rst:147
msgid "Legacy Addresses" msgid "Legacy Addresses"
msgstr "Eski Adresler" msgstr "Eski Adresler"
#: ../../source/advanced.rst:134 #: ../../source/advanced.rst:149
msgid "" msgid ""
"OnionShare uses v3 Tor onion services by default. These are modern onion " "OnionShare uses v3 Tor onion services by default. These are modern onion "
"addresses that have 56 characters, for example::" "addresses that have 56 characters, for example::"
msgstr "" msgstr ""
"OnionShare, öntanımlı olarak v3 Tor onion hizmetlerini kullanır. Bunlar, 56 " "OnionShare, öntanımlı olarak v3 Tor onion hizmetlerini kullanır. Bunlar, "
"karakter içeren modern onion adresleridir, örneğin::" "56 karakter içeren modern onion adresleridir, örneğin::"
#: ../../source/advanced.rst:139 #: ../../source/advanced.rst:154
msgid "" msgid ""
"OnionShare still has support for v2 onion addresses, the old type of " "OnionShare still has support for v2 onion addresses, the old type of "
"onion addresses that have 16 characters, for example::" "onion addresses that have 16 characters, for example::"
@ -242,15 +261,15 @@ msgstr ""
"OnionShare, v2 onion adreslerini, yani 16 karakter içeren eski tür onion " "OnionShare, v2 onion adreslerini, yani 16 karakter içeren eski tür onion "
"adreslerini hala desteklemektedir, örneğin::" "adreslerini hala desteklemektedir, örneğin::"
#: ../../source/advanced.rst:143 #: ../../source/advanced.rst:158
msgid "" msgid ""
"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " "OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
"not recommended, as v3 onion addresses are more secure." "not recommended, as v3 onion addresses are more secure."
msgstr "" msgstr ""
"OnionShare, v2 onion adreslerini \"eski adresler\" olarak adlandırır ve v3 " "OnionShare, v2 onion adreslerini \"eski adresler\" olarak adlandırır ve "
"onion adresleri daha güvenli olduğu için bunlar tavsiye edilmez." "v3 onion adresleri daha güvenli olduğu için bunlar tavsiye edilmez."
#: ../../source/advanced.rst:145 #: ../../source/advanced.rst:160
msgid "" msgid ""
"To use legacy addresses, before starting a server click \"Show advanced " "To use legacy addresses, before starting a server click \"Show advanced "
"settings\" from its tab and check the \"Use a legacy address (v2 onion " "settings\" from its tab and check the \"Use a legacy address (v2 onion "
@ -259,14 +278,15 @@ msgid ""
"cannot remove legacy mode in that tab. Instead you must start a separate " "cannot remove legacy mode in that tab. Instead you must start a separate "
"service in a separate tab." "service in a separate tab."
msgstr "" msgstr ""
"Eski adresleri kullanmak için, bir sunucuyu başlatmadan önce onun sekmesinde " "Eski adresleri kullanmak için, bir sunucuyu başlatmadan önce onun "
"\"Gelişmiş ayarları göster\" düğmesine tıklayın ve \"Eski bir adres kullan (" "sekmesinde \"Gelişmiş ayarları göster\" düğmesine tıklayın ve \"Eski bir "
"v2 onion hizmeti, tavsiye edilmez)\" kutusunu işaretleyin. Eski modda isteğe " "adres kullan (v2 onion hizmeti, tavsiye edilmez)\" kutusunu işaretleyin. "
"bağlı olarak Tor istemci kimlik doğrulamasını açabilirsiniz. Eski modda bir " "Eski modda isteğe bağlı olarak Tor istemci kimlik doğrulamasını "
"sunucu başlattığınızda, o sekmede eski modu kaldıramazsınız. Bunun yerine, " "açabilirsiniz. Eski modda bir sunucu başlattığınızda, o sekmede eski modu"
"ayrı bir sekmede ayrı bir hizmet başlatmalısınız." " kaldıramazsınız. Bunun yerine, ayrı bir sekmede ayrı bir hizmet "
"başlatmalısınız."
#: ../../source/advanced.rst:150 #: ../../source/advanced.rst:165
msgid "" msgid ""
"Tor Project plans to `completely deprecate v2 onion services " "Tor Project plans to `completely deprecate v2 onion services "
"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, " "<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
@ -476,3 +496,4 @@ msgstr ""
#~ " services will soon be removed from" #~ " services will soon be removed from"
#~ " OnionShare as well." #~ " OnionShare as well."
#~ msgstr "" #~ msgstr ""

View file

@ -7,16 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2021-01-10 16:32+0000\n" "PO-Revision-Date: 2021-01-10 16:32+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n" "Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: tr\n" "Language: tr\n"
"Language-Team: tr <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.1-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4 #: ../../source/features.rst:4
@ -29,17 +28,18 @@ msgid ""
"other people as `Tor <https://www.torproject.org/>`_ `onion services " "other people as `Tor <https://www.torproject.org/>`_ `onion services "
"<https://community.torproject.org/onion-services/>`_." "<https://community.torproject.org/onion-services/>`_."
msgstr "" msgstr ""
"Web sunucuları bilgisayarınızda yerel olarak başlatılır ve `Tor <https://www." "Web sunucuları bilgisayarınızda yerel olarak başlatılır ve `Tor "
"torproject.org/>`_ `onion hizmetleri <https://community.torproject.org/" "<https://www.torproject.org/>`_ `onion hizmetleri "
"onion-services/>`_ olarak diğer kişilerin erişimine açılır." "<https://community.torproject.org/onion-services/>`_ olarak diğer "
"kişilerin erişimine açılır."
#: ../../source/features.rst:8 #: ../../source/features.rst:8
msgid "" msgid ""
"By default, OnionShare web addresses are protected with a random " "By default, OnionShare web addresses are protected with a random "
"password. A typical OnionShare address might look something like this::" "password. A typical OnionShare address might look something like this::"
msgstr "" msgstr ""
"Öntanımlı olarak, OnionShare web adresleri rastgele bir parola ile korunur. " "Öntanımlı olarak, OnionShare web adresleri rastgele bir parola ile "
"Tipik bir OnionShare adresi aşağıdaki gibi görünebilir::" "korunur. Tipik bir OnionShare adresi aşağıdaki gibi görünebilir::"
#: ../../source/features.rst:12 #: ../../source/features.rst:12
msgid "" msgid ""
@ -48,10 +48,10 @@ msgid ""
"something less secure like unencrypted e-mail, depending on your `threat " "something less secure like unencrypted e-mail, depending on your `threat "
"model <https://ssd.eff.org/module/your-security-plan>`_." "model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr "" msgstr ""
"`Tehdit modelinize <https://ssd.eff.org/module/your-security-plan>`_ bağlı " "`Tehdit modelinize <https://ssd.eff.org/module/your-security-plan>`_ "
"olarak, bu URL'yi şifrelenmiş bir sohbet mesajı gibi seçtiğiniz bir iletişim " "bağlı olarak, bu URL'yi şifrelenmiş bir sohbet mesajı gibi seçtiğiniz bir"
"kanalını veya şifrelenmemiş e-posta gibi daha az güvenli bir şeyi kullanarak " " iletişim kanalını veya şifrelenmemiş e-posta gibi daha az güvenli bir "
"güvenli bir şekilde paylaşmaktan sorumlusunuz." "şeyi kullanarak güvenli bir şekilde paylaşmaktan sorumlusunuz."
#: ../../source/features.rst:14 #: ../../source/features.rst:14
msgid "" msgid ""
@ -69,10 +69,10 @@ msgid ""
"works best when working with people in real-time." "works best when working with people in real-time."
msgstr "" msgstr ""
"Birine dosya göndermek için dizüstü bilgisayarınızda OnionShare " "Birine dosya göndermek için dizüstü bilgisayarınızda OnionShare "
"çalıştırırsanız ve dosyalar gönderilmeden önce onu askıya alırsanız, dizüstü " "çalıştırırsanız ve dosyalar gönderilmeden önce onu askıya alırsanız, "
"bilgisayarınız devam ettirilip tekrar internete bağlanana kadar hizmet " "dizüstü bilgisayarınız devam ettirilip tekrar internete bağlanana kadar "
"kullanılamayacaktır. OnionShare, insanlarla gerçek zamanlı olarak çalışırken " "hizmet kullanılamayacaktır. OnionShare, insanlarla gerçek zamanlı olarak "
"en iyi şekilde çalışır." "çalışırken en iyi şekilde çalışır."
#: ../../source/features.rst:18 #: ../../source/features.rst:18
msgid "" msgid ""
@ -100,16 +100,16 @@ msgid ""
msgstr "" msgstr ""
"OnionShare'i, dosyaları ve klasörleri insanlara güvenli ve anonim olarak " "OnionShare'i, dosyaları ve klasörleri insanlara güvenli ve anonim olarak "
"göndermek için kullanabilirsiniz. Bir paylaşma sekmesi açın, paylaşmak " "göndermek için kullanabilirsiniz. Bir paylaşma sekmesi açın, paylaşmak "
"istediğiniz dosya ve klasörleri sürükleyin ve \"Paylaşmaya başla\" düğmesine " "istediğiniz dosya ve klasörleri sürükleyin ve \"Paylaşmaya başla\" "
"tıklayın." "düğmesine tıklayın."
#: ../../source/features.rst:27 ../../source/features.rst:93 #: ../../source/features.rst:27 ../../source/features.rst:104
msgid "" msgid ""
"After you add files, you'll see some settings. Make sure you choose the " "After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing." "setting you're interested in before you start sharing."
msgstr "" msgstr ""
"Dosyaları ekledikten sonra bazı ayarlar göreceksiniz. Paylaşmaya başlamadan " "Dosyaları ekledikten sonra bazı ayarlar göreceksiniz. Paylaşmaya "
"önce istediğiniz ayarı seçtiğinizden emin olun." "başlamadan önce istediğiniz ayarı seçtiğinizden emin olun."
#: ../../source/features.rst:31 #: ../../source/features.rst:31
msgid "" msgid ""
@ -120,10 +120,10 @@ msgid ""
"box." "box."
msgstr "" msgstr ""
"Birisi dosyalarınızı indirmeyi bitirir bitirmez, OnionShare sunucuyu " "Birisi dosyalarınızı indirmeyi bitirir bitirmez, OnionShare sunucuyu "
"otomatik olarak durduracak ve web sitesini internetten kaldıracaktır. Birden " "otomatik olarak durduracak ve web sitesini internetten kaldıracaktır. "
"çok kişinin bunları indirmesine izin vermek için, \"Dosyalar gönderildikten " "Birden çok kişinin bunları indirmesine izin vermek için, \"Dosyalar "
"sonra paylaşmayı durdur (dosyaların tek tek indirilmesine izin vermek için " "gönderildikten sonra paylaşmayı durdur (dosyaların tek tek indirilmesine "
"işareti kaldırın)\" kutusunun işaretini kaldırın." "izin vermek için işareti kaldırın)\" kutusunun işaretini kaldırın."
#: ../../source/features.rst:34 #: ../../source/features.rst:34
msgid "" msgid ""
@ -131,8 +131,9 @@ msgid ""
"individual files you share rather than a single compressed version of all" "individual files you share rather than a single compressed version of all"
" the files." " the files."
msgstr "" msgstr ""
"Ayrıca, bu kutunun işaretini kaldırırsanız, kişiler tüm dosyaların tek bir " "Ayrıca, bu kutunun işaretini kaldırırsanız, kişiler tüm dosyaların tek "
"sıkıştırılmış çeşidi yerine paylaştığınız dosyaları tek tek indirebilirler." "bir sıkıştırılmış çeşidi yerine paylaştığınız dosyaları tek tek "
"indirebilirler."
#: ../../source/features.rst:36 #: ../../source/features.rst:36
msgid "" msgid ""
@ -143,9 +144,9 @@ msgid ""
msgstr "" msgstr ""
"Paylaşmaya hazır olduğunuzda, \"Paylaşmaya başla\" düğmesine tıklayın. " "Paylaşmaya hazır olduğunuzda, \"Paylaşmaya başla\" düğmesine tıklayın. "
"İstediğiniz zaman \"Paylaşmayı durdur\" düğmesine tıklayarak veya " "İstediğiniz zaman \"Paylaşmayı durdur\" düğmesine tıklayarak veya "
"OnionShare'den çıkarak web sitesini anında kapatabilirsiniz. Ayrıca, sizden " "OnionShare'den çıkarak web sitesini anında kapatabilirsiniz. Ayrıca, "
"dosya indiren kişilerin geçmişini ve ilerlemesini göstermek için sağ üst " "sizden dosya indiren kişilerin geçmişini ve ilerlemesini göstermek için "
"köşedeki \"↑\" simgesine tıklayabilirsiniz." "sağ üst köşedeki \"↑\" simgesine tıklayabilirsiniz."
#: ../../source/features.rst:40 #: ../../source/features.rst:40
msgid "" msgid ""
@ -154,10 +155,10 @@ msgid ""
"or the person is otherwise exposed to danger, use an encrypted messaging " "or the person is otherwise exposed to danger, use an encrypted messaging "
"app." "app."
msgstr "" msgstr ""
"Artık bir OnionShare'e sahip olduğunuza göre, adresi kopyalayın ve dosyaları " "Artık bir OnionShare'e sahip olduğunuza göre, adresi kopyalayın ve "
"almasını istediğiniz kişiye gönderin. Dosyaların güvende kalması gerekiyorsa " "dosyaları almasını istediğiniz kişiye gönderin. Dosyaların güvende "
"veya kişi başka bir şekilde tehlikeye maruz kalırsa, şifreli bir mesajlaşma " "kalması gerekiyorsa veya kişi başka bir şekilde tehlikeye maruz kalırsa, "
"uygulaması kullanın." "şifreli bir mesajlaşma uygulaması kullanın."
#: ../../source/features.rst:42 #: ../../source/features.rst:42
msgid "" msgid ""
@ -168,58 +169,77 @@ msgid ""
msgstr "" msgstr ""
"Bu kişi daha sonra adresi Tor Browser'da açmalıdır. Web adresinde bulunan" "Bu kişi daha sonra adresi Tor Browser'da açmalıdır. Web adresinde bulunan"
" rastgele parola ile oturum açtıktan sonra, köşedeki \"Dosyaları İndir\" " " rastgele parola ile oturum açtıktan sonra, köşedeki \"Dosyaları İndir\" "
"bağlantısına tıklayarak dosyalar doğrudan bilgisayarınızdan indirilebilir." "bağlantısına tıklayarak dosyalar doğrudan bilgisayarınızdan "
"indirilebilir."
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files" msgid "Receive Files and Messages"
msgstr "Dosya Alın" msgstr ""
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "" msgid ""
"You can use OnionShare to let people anonymously upload files directly to" "You can use OnionShare to let people anonymously submit files and "
" your computer, essentially turning it into an anonymous dropbox. Open a " "messages directly to your computer, essentially turning it into an "
"\"Receive tab\", choose where you want to save the files and other " "anonymous dropbox. Open a receive tab and choose the settings that you "
"settings, and then click \"Start Receive Mode\"." "want."
msgstr "" msgstr ""
"OnionShare'i, kullanıcıların dosyaları anonim olarak doğrudan "
"bilgisayarınıza yüklemesine, bir anlamda onu anonim bir depolama alanına "
"dönüştürmesine izin vermek için kullanabilirsiniz. Bir \"Alma sekmesi\" "
"açın, dosyaları nereye kaydetmek istediğinizi ve diğer ayarları seçin ve "
"ardından \"Alma Modunu Başlat\" düğmesine tıklayın."
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "" msgid "You can browse for a folder to save messages and files that get submitted."
"This starts the OnionShare service. Anyone loading this address in their " msgstr ""
"Tor Browser will be able to upload files to your computer."
#: ../../source/features.rst:56
msgid ""
"You can check \"Disable submitting text\" if want to only allow file "
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Bu, OnionShare hizmetini başlatır. Bu adresi Tor Browser'da açan herkes, "
"bilgisayarınıza dosya yükleyebilir."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
"You can check \"Use notification webhook\" and then choose a webhook URL "
"if you want to be notified when someone submits files or messages to your"
" OnionShare service. If you use this feature, OnionShare will make an "
"HTTP POST request to this URL whenever someone submits files or messages."
" For example, if you want to get an encrypted text messaging on the "
"messaging app `Keybase <https://keybase.io/>`_, you can start a "
"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
"``!webhook create onionshare-alerts``, and it will respond with a URL. "
"Use that as the notification webhook URL. If someone uploads a file to "
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:63
msgid ""
"When you are ready, click \"Start Receive Mode\". This starts the "
"OnionShare service. Anyone loading this address in their Tor Browser will"
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
#: ../../source/features.rst:67
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show " "You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you." "the history and progress of people sending files to you."
msgstr "" msgstr ""
"Ayrıca, size dosya gönderen kişilerin geçmişini ve ilerlemesini göstermek" "Ayrıca, size dosya gönderen kişilerin geçmişini ve ilerlemesini göstermek"
" için sağ üst köşedeki \"↑\" simgesine tıklayabilirsiniz." " için sağ üst köşedeki \"↑\" simgesine tıklayabilirsiniz."
#: ../../source/features.rst:60 #: ../../source/features.rst:69
msgid "Here is what it looks like for someone sending you files." #, fuzzy
msgid "Here is what it looks like for someone sending you files and messages."
msgstr "Size dosya gönderen birisi için şu şekilde görünür." msgstr "Size dosya gönderen birisi için şu şekilde görünür."
#: ../../source/features.rst:64 #: ../../source/features.rst:73
msgid "" msgid ""
"When someone uploads files to your receive service, by default they get " "When someone submits files or messages to your receive service, by "
"saved to a folder called ``OnionShare`` in the home folder on your " "default they get saved to a folder called ``OnionShare`` in the home "
"computer, automatically organized into separate subfolders based on the " "folder on your computer, automatically organized into separate subfolders"
"time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
"Bir kişi alma hizmetinize dosyalar yüklediğinde, öntanımlı olarak "
"bilgisayarınızdaki ev klasöründe ``OnionShare`` adlı bir klasöre kaydedilir "
"ve dosyaların yüklenme zamanına göre otomatik olarak ayrı alt klasörler "
"halinde düzenlenir."
#: ../../source/features.rst:66 #: ../../source/features.rst:75
msgid "" msgid ""
"Setting up an OnionShare receiving service is useful for journalists and " "Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When " "others needing to securely accept documents from anonymous sources. When "
@ -227,29 +247,29 @@ msgid ""
"quite as secure version of `SecureDrop <https://securedrop.org/>`_, the " "quite as secure version of `SecureDrop <https://securedrop.org/>`_, the "
"whistleblower submission system." "whistleblower submission system."
msgstr "" msgstr ""
"Bir OnionShare alma hizmeti kurmak, gazeteciler ve anonim kaynaklardan gelen " "Bir OnionShare alma hizmeti kurmak, gazeteciler ve anonim kaynaklardan "
"belgeleri güvenli bir şekilde kabul etmesi gereken diğer kişiler için " "gelen belgeleri güvenli bir şekilde kabul etmesi gereken diğer kişiler "
"kullanışlıdır. Bu şekilde kullanıldığında, OnionShare hafif, daha basit, " "için kullanışlıdır. Bu şekilde kullanıldığında, OnionShare hafif, daha "
"onun kadar güvenli olmayan bir muhbir teslimat sistemi `SecureDrop " "basit, onun kadar güvenli olmayan bir muhbir teslimat sistemi `SecureDrop"
" <https://securedrop.org/>`_ çeşidi gibidir." " <https://securedrop.org/>`_ çeşidi gibidir."
#: ../../source/features.rst:69 #: ../../source/features.rst:78
msgid "Use at your own risk" msgid "Use at your own risk"
msgstr "Sorumluluk size aittir" msgstr "Sorumluluk size aittir"
#: ../../source/features.rst:71 #: ../../source/features.rst:80
msgid "" msgid ""
"Just like with malicious e-mail attachments, it's possible someone could " "Just like with malicious e-mail attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your " "try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to " "OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files." "protect your system from malicious files."
msgstr "" msgstr ""
"Kötü niyetli e-posta eklerinde olduğu gibi, birisinin OnionShare hizmetinize " "Kötü niyetli e-posta eklerinde olduğu gibi, birisinin OnionShare "
"kötü amaçlı bir dosya yükleyerek bilgisayarınıza saldırmaya çalışması " "hizmetinize kötü amaçlı bir dosya yükleyerek bilgisayarınıza saldırmaya "
"mümkündür. OnionShare, sisteminizi kötü amaçlı dosyalardan korumak için " "çalışması mümkündür. OnionShare, sisteminizi kötü amaçlı dosyalardan "
"herhangi bir güvenlik mekanizması eklemez." "korumak için herhangi bir güvenlik mekanizması eklemez."
#: ../../source/features.rst:73 #: ../../source/features.rst:82
msgid "" msgid ""
"If you receive an Office document or a PDF through OnionShare, you can " "If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone" "convert these documents into PDFs that are safe to open using `Dangerzone"
@ -259,17 +279,21 @@ msgid ""
"disposableVM." "disposableVM."
msgstr "" msgstr ""
"OnionShare aracılığıyla bir Office belgesi veya PDF dosyası alırsanız, bu" "OnionShare aracılığıyla bir Office belgesi veya PDF dosyası alırsanız, bu"
"belgeleri `Dangerzone <https://dangerzone.rocks/>`_ kullanarakılmaları " " belgeleri `Dangerzone <https://dangerzone.rocks/>`_ kullanarak "
"güvenli PDF dosyalarına dönüştürebilirsiniz. Ayrıca, güvenilmeyen belgeleri " "ılmaları güvenli PDF dosyalarına dönüştürebilirsiniz. Ayrıca, "
"açarken onları tek kullanımlık `Tails <https://tails.boum.org/>`_ veya `" "güvenilmeyen belgeleri açarken onları tek kullanımlık `Tails "
"Qubes <https://qubes-os.org/>`_ sanal makinelerinde açarak kendinizi " "<https://tails.boum.org/>`_ veya `Qubes <https://qubes-os.org/>`_ sanal "
"koruyabilirsiniz." "makinelerinde açarak kendinizi koruyabilirsiniz."
#: ../../source/features.rst:76 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
msgstr "Alma hizmeti çalıştırma ipuçları" msgstr "Alma hizmeti çalıştırma ipuçları"
#: ../../source/features.rst:78 #: ../../source/features.rst:89
msgid "" msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's " "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" "recommended you do so on a separate, dedicated computer always powered on"
@ -278,35 +302,37 @@ msgid ""
msgstr "" msgstr ""
"OnionShare kullanarak kendi anonim depolama alanınızı barındırmak " "OnionShare kullanarak kendi anonim depolama alanınızı barındırmak "
"istiyorsanız, bunu düzenli olarak kullandığınız bilgisayarda değil, her " "istiyorsanız, bunu düzenli olarak kullandığınız bilgisayarda değil, her "
"zaman açık ve internete bağlı ayrı, özel bir bilgisayarda yapmanız tavsiye " "zaman açık ve internete bağlı ayrı, özel bir bilgisayarda yapmanız "
"edilir." "tavsiye edilir."
#: ../../source/features.rst:80 #: ../../source/features.rst:91
#, fuzzy
msgid "" msgid ""
"If you intend to put the OnionShare address on your website or social " "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 " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_passwords`)." "public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
"OnionShare adresini web sitenize veya sosyal medya profillerinize koymayı" "OnionShare adresini web sitenize veya sosyal medya profillerinize koymayı"
" düşünüyorsanız, sekmeyi kaydedin (:ref:`save_tabs` bölümüne bakın) ve " " düşünüyorsanız, sekmeyi kaydedin (:ref:`save_tabs` bölümüne bakın) ve "
"herkese açık bir hizmet olarak çalıştırın (:ref:`turn_off_passwords` " "herkese açık bir hizmet olarak çalıştırın (:ref:`turn_off_passwords` "
"bölümüne bakın)." "bölümüne bakın)."
#: ../../source/features.rst:83 #: ../../source/features.rst:94
msgid "Host a Website" msgid "Host a Website"
msgstr "Web Sitesi Barındırın" msgstr "Web Sitesi Barındırın"
#: ../../source/features.rst:85 #: ../../source/features.rst:96
msgid "" msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag " "To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click " "the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready." "\"Start sharing\" when you are ready."
msgstr "" msgstr ""
"OnionShare ile statik bir HTML web sitesi barındırmak için bir web sitesi" "OnionShare ile statik bir HTML web sitesi barındırmak için bir web sitesi"
"sekmesi açın, statik içeriği oluşturan dosya ve klasörleri oraya sürükleyin " " sekmesi açın, statik içeriği oluşturan dosya ve klasörleri oraya "
"ve hazır olduğunuzda \"Paylaşmaya başla\" düğmesine tıklayın." "sürükleyin ve hazır olduğunuzda \"Paylaşmaya başla\" düğmesine tıklayın."
#: ../../source/features.rst:89 #: ../../source/features.rst:100
msgid "" msgid ""
"If you add an ``index.html`` file, it will render when someone loads your" "If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, " " website. You should also include any other HTML files, CSS files, "
@ -317,12 +343,12 @@ msgid ""
msgstr "" msgstr ""
"Bir ``index.html`` dosyası eklerseniz, birisi web sitenizi yüklediğinde o" "Bir ``index.html`` dosyası eklerseniz, birisi web sitenizi yüklediğinde o"
" gösterilecektir. Web sitesini oluşturan diğer HTML, CSS, JavaScript " " gösterilecektir. Web sitesini oluşturan diğer HTML, CSS, JavaScript "
"dosyalarını ve resimleri de eklemelisiniz. (OnionShare'in yalnızca *statik* " "dosyalarını ve resimleri de eklemelisiniz. (OnionShare'in yalnızca "
"web sitelerini barındırmayı desteklediğini unutmayın. Kod çalıştıran veya " "*statik* web sitelerini barındırmayı desteklediğini unutmayın. Kod "
"veri tabanları kullanan web sitelerini barındıramaz. Yani, örneğin WordPress " "çalıştıran veya veri tabanları kullanan web sitelerini barındıramaz. "
"kullanamazsınız.)" "Yani, örneğin WordPress kullanamazsınız.)"
#: ../../source/features.rst:91 #: ../../source/features.rst:102
msgid "" msgid ""
"If you don't have an ``index.html`` file, it will show a directory " "If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and " "listing instead, and people loading it can look through the files and "
@ -331,11 +357,11 @@ msgstr ""
"Bir ``index.html`` dosyanız yoksa, onun yerine bir dizin listesi " "Bir ``index.html`` dosyanız yoksa, onun yerine bir dizin listesi "
"gösterilecek ve onu yükleyen kişiler dosyalara göz atıp indirebilecektir." "gösterilecek ve onu yükleyen kişiler dosyalara göz atıp indirebilecektir."
#: ../../source/features.rst:98 #: ../../source/features.rst:109
msgid "Content Security Policy" msgid "Content Security Policy"
msgstr "İçerik Güvenliği Politikası" msgstr "İçerik Güvenliği Politikası"
#: ../../source/features.rst:100 #: ../../source/features.rst:111
msgid "" msgid ""
"By default OnionShare helps secure your website by setting a strict " "By default OnionShare helps secure your website by setting a strict "
"`Content Security Police " "`Content Security Police "
@ -345,10 +371,10 @@ msgid ""
msgstr "" msgstr ""
"OnionShare, öntanımlı olarak katı bir `İçerik Güvenliği Politikası " "OnionShare, öntanımlı olarak katı bir `İçerik Güvenliği Politikası "
"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ başlığı " "<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ başlığı "
"ayarlayarak web sitenizin güvenliğini sağlamaya yardımcı olur. Ancak bu, web " "ayarlayarak web sitenizin güvenliğini sağlamaya yardımcı olur. Ancak bu, "
"sayfasında üçüncü taraf içeriğinin yüklenmesini engeller." "web sayfasında üçüncü taraf içeriğinin yüklenmesini engeller."
#: ../../source/features.rst:102 #: ../../source/features.rst:113
msgid "" msgid ""
"If you want to load content from third-party websites, like assets or " "If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, check the \"Don't send Content Security " "JavaScript libraries from CDNs, check the \"Don't send Content Security "
@ -356,15 +382,15 @@ msgid ""
"before starting the service." "before starting the service."
msgstr "" msgstr ""
"CDN'lerden varlıklar veya JavaScript kütüphaneleri gibi üçüncü taraf web " "CDN'lerden varlıklar veya JavaScript kütüphaneleri gibi üçüncü taraf web "
"sitelerinden içerik yüklemek istiyorsanız, hizmeti başlatmadan önce \"İçerik " "sitelerinden içerik yüklemek istiyorsanız, hizmeti başlatmadan önce "
"Güvenliği Politikası başlığı gönderme (web sitenizin üçüncü taraf " "\"İçerik Güvenliği Politikası başlığı gönderme (web sitenizin üçüncü "
"kaynaklarını kullanmasına izin verir)\" kutusunu işaretleyin." "taraf kaynaklarını kullanmasına izin verir)\" kutusunu işaretleyin."
#: ../../source/features.rst:105 #: ../../source/features.rst:116
msgid "Tips for running a website service" msgid "Tips for running a website service"
msgstr "Web sitesi hizmeti çalıştırma ipuçları" msgstr "Web sitesi hizmeti çalıştırma ipuçları"
#: ../../source/features.rst:107 #: ../../source/features.rst:118
msgid "" msgid ""
"If you want to host a long-term website using OnionShare (meaning not " "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 " "something to quickly show someone something), it's recommended you do it "
@ -375,12 +401,12 @@ msgid ""
msgstr "" msgstr ""
"OnionShare kullanarak (birine hızlı bir şekilde bir şey göstermek yerine)" "OnionShare kullanarak (birine hızlı bir şekilde bir şey göstermek yerine)"
" uzun vadeli bir web sitesi barındırmak istiyorsanız, bunu düzenli olarak" " uzun vadeli bir web sitesi barındırmak istiyorsanız, bunu düzenli olarak"
"kullandığınız bilgisayarda değil, her zaman açık ve internete bağlı ayrı, " " kullandığınız bilgisayarda değil, her zaman açık ve internete bağlı "
"özel bir bilgisayarda yapmanız tavsiye edilir. OnionShare'i kapatıp ve daha " "ayrı, özel bir bilgisayarda yapmanız tavsiye edilir. OnionShare'i kapatıp"
"sonra yeniden açmanız halinde web sitesini aynı adresle devam ettirebilmek " " ve daha sonra yeniden açmanız halinde web sitesini aynı adresle devam "
"için sekmeyi kaydedin (:ref:`save_tabs` bölümüne bakın)." "ettirebilmek için sekmeyi kaydedin (:ref:`save_tabs` bölümüne bakın)."
#: ../../source/features.rst:110 #: ../../source/features.rst:121
msgid "" msgid ""
"If your website is intended for the public, you should run it as a public" "If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_passwords`)." " service (see :ref:`turn_off_passwords`)."
@ -388,32 +414,32 @@ msgstr ""
"Web siteniz herkesin kullanımına yönelikse, onu herkese açık bir hizmet " "Web siteniz herkesin kullanımına yönelikse, onu herkese açık bir hizmet "
"olarak çalıştırmalısınız (:ref:`turn_off_passwords` bölümüne bakın)." "olarak çalıştırmalısınız (:ref:`turn_off_passwords` bölümüne bakın)."
#: ../../source/features.rst:113 #: ../../source/features.rst:124
msgid "Chat Anonymously" msgid "Chat Anonymously"
msgstr "Anonim Olarak Sohbet Edin" msgstr "Anonim Olarak Sohbet Edin"
#: ../../source/features.rst:115 #: ../../source/features.rst:126
msgid "" msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't" "You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"." " log anything. Just open a chat tab and click \"Start chat server\"."
msgstr "" msgstr ""
"Hiçbir şey kaydetmeyen özel, güvenli bir sohbet odası kurmak için OnionShare " "Hiçbir şey kaydetmeyen özel, güvenli bir sohbet odası kurmak için "
"kullanabilirsiniz. Bir sohbet sekmesi açın ve \"Sohbet sunucusu başlat\" " "OnionShare kullanabilirsiniz. Bir sohbet sekmesi açın ve \"Sohbet "
"düğmesine tıklayın." "sunucusu başlat\" düğmesine tıklayın."
#: ../../source/features.rst:119 #: ../../source/features.rst:130
msgid "" msgid ""
"After you start the server, copy the OnionShare address and send it to " "After you start the server, copy the OnionShare address and send it to "
"the people you want in the anonymous chat room. If it's important to " "the people you want in the anonymous chat room. If it's important to "
"limit exactly who can join, use an encrypted messaging app to send out " "limit exactly who can join, use an encrypted messaging app to send out "
"the OnionShare address." "the OnionShare address."
msgstr "" msgstr ""
"Sunucuyu başlattıktan sonra, OnionShare adresini kopyalayın ve anonim sohbet " "Sunucuyu başlattıktan sonra, OnionShare adresini kopyalayın ve anonim "
"odasında olmasını istediğiniz kişilere gönderin. Tam olarak kimlerin " "sohbet odasında olmasını istediğiniz kişilere gönderin. Tam olarak "
"katılabileceğini sınırlamak önemliyse, OnionShare adresini göndermek için " "kimlerin katılabileceğini sınırlamak önemliyse, OnionShare adresini "
"şifreli bir mesajlaşma uygulaması kullanın." "göndermek için şifreli bir mesajlaşma uygulaması kullanın."
#: ../../source/features.rst:124 #: ../../source/features.rst:135
msgid "" msgid ""
"People can join the chat room by loading its OnionShare address in Tor " "People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to " "Browser. The chat room requires JavasScript, so everyone who wants to "
@ -422,10 +448,10 @@ msgid ""
msgstr "" msgstr ""
"İnsanlar OnionShare adresini Tor Browser'da açarak sohbet odasına " "İnsanlar OnionShare adresini Tor Browser'da açarak sohbet odasına "
"katılabilirler. Sohbet odası JavasScript gerektirir, bu nedenle katılmak " "katılabilirler. Sohbet odası JavasScript gerektirir, bu nedenle katılmak "
"isteyenler Tor Browser güvenlik düzeyini \"En Güvenli\" yerine \"Standart\" " "isteyenler Tor Browser güvenlik düzeyini \"En Güvenli\" yerine "
"veya \"Daha Güvenli\" olarak ayarlamalıdır." "\"Standart\" veya \"Daha Güvenli\" olarak ayarlamalıdır."
#: ../../source/features.rst:127 #: ../../source/features.rst:138
msgid "" msgid ""
"When someone joins the chat room they get assigned a random name. They " "When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel " "can change their name by typing a new name in the box in the left panel "
@ -433,36 +459,36 @@ msgid ""
"get displayed at all, even if others were already chatting in the room." "get displayed at all, even if others were already chatting in the room."
msgstr "" msgstr ""
"Birisi sohbet odasına katıldığında rastgele bir ad alır. Sol paneldeki " "Birisi sohbet odasına katıldığında rastgele bir ad alır. Sol paneldeki "
"kutuya yeni bir ad yazıp ↵ tuşuna basarak adlarını değiştirebilirler. Sohbet " "kutuya yeni bir ad yazıp ↵ tuşuna basarak adlarını değiştirebilirler. "
"geçmişi herhangi bir yere kaydedilmediğinden, başkaları odada sohbet ediyor " "Sohbet geçmişi herhangi bir yere kaydedilmediğinden, başkaları odada "
"olsa bile bu hiç görüntülenmez." "sohbet ediyor olsa bile bu hiç görüntülenmez."
#: ../../source/features.rst:133 #: ../../source/features.rst:144
msgid "" msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change " "In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity." "their name to anything, and there is no way to confirm anyone's identity."
msgstr "" msgstr ""
"Bir OnionShare sohbet odasında herkes anonimdir. Herkes adını herhangi bir " "Bir OnionShare sohbet odasında herkes anonimdir. Herkes adını herhangi "
"şeyle değiştirebilir ve herhangi birinin kimliğini doğrulamanın bir yolu " "bir şeyle değiştirebilir ve herhangi birinin kimliğini doğrulamanın bir "
"yoktur." "yolu yoktur."
#: ../../source/features.rst:136 #: ../../source/features.rst:147
msgid "" msgid ""
"However, if you create an OnionShare chat room and securely send the " "However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted " "address only to a small group of trusted friends using encrypted "
"messages, you can be reasonably confident the people joining the chat " "messages, you can be reasonably confident the people joining the chat "
"room are your friends." "room are your friends."
msgstr "" msgstr ""
"Ancak, bir OnionShare sohbet odası oluşturur ve adresi şifrelenmiş mesajlar " "Ancak, bir OnionShare sohbet odası oluşturur ve adresi şifrelenmiş "
"kullanarak güvenli bir şekilde yalnızca küçük bir güvenilir arkadaş grubuna " "mesajlar kullanarak güvenli bir şekilde yalnızca küçük bir güvenilir "
"gönderirseniz, sohbet odasına katılan kişilerin arkadaşlarınız olduğundan " "arkadaş grubuna gönderirseniz, sohbet odasına katılan kişilerin "
"hemen hemen emin olabilirsiniz." "arkadaşlarınız olduğundan hemen hemen emin olabilirsiniz."
#: ../../source/features.rst:139 #: ../../source/features.rst:150
msgid "How is this useful?" msgid "How is this useful?"
msgstr "Bunun ne faydası var?" msgstr "Bunun ne faydası var?"
#: ../../source/features.rst:141 #: ../../source/features.rst:152
msgid "" msgid ""
"If you need to already be using an encrypted messaging app, what's the " "If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces." "point of an OnionShare chat room to begin with? It leaves less traces."
@ -470,7 +496,7 @@ msgstr ""
"Zaten şifrelenmiş bir mesajlaşma uygulaması kullanmanız gerekiyorsa, " "Zaten şifrelenmiş bir mesajlaşma uygulaması kullanmanız gerekiyorsa, "
"OnionShare sohbet odasından başlamanın ne anlamı var? Daha az iz bırakır." "OnionShare sohbet odasından başlamanın ne anlamı var? Daha az iz bırakır."
#: ../../source/features.rst:143 #: ../../source/features.rst:154
msgid "" msgid ""
"If you for example send a message to a Signal group, a copy of your " "If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the devices, and computers if they set up" "message ends up on each device (the devices, and computers if they set up"
@ -481,15 +507,15 @@ msgid ""
"rooms don't store any messages anywhere, so the problem is reduced to a " "rooms don't store any messages anywhere, so the problem is reduced to a "
"minimum." "minimum."
msgstr "" msgstr ""
"Örneğin bir Signal grubuna bir mesaj gönderirseniz, mesajınızın bir kopyası " "Örneğin bir Signal grubuna bir mesaj gönderirseniz, mesajınızın bir "
"grubun her üyesinin her aygıtında (aygıtlar ve Signal Masaüstünü kurdularsa " "kopyası grubun her üyesinin her aygıtında (aygıtlar ve Signal Masaüstünü "
"bilgisayarlar) bulunur. Kaybolan mesajlar açık olsa bile, mesajların tüm " "kurdularsa bilgisayarlar) bulunur. Kaybolan mesajlar açık olsa bile, "
"kopyalarının tüm aygıtlardan ve kaydedilmiş olabilecekleri diğer yerlerden (" "mesajların tüm kopyalarının tüm aygıtlardan ve kaydedilmiş olabilecekleri"
"bildirim veri tabanları gibi) gerçekten silindiğini doğrulamak zordur. " " diğer yerlerden (bildirim veri tabanları gibi) gerçekten silindiğini "
"OnionShare sohbet odaları mesajları hiçbir yerde depolamadığından sorun en " "doğrulamak zordur. OnionShare sohbet odaları mesajları hiçbir yerde "
"aza indirilir." "depolamadığından sorun en aza indirilir."
#: ../../source/features.rst:146 #: ../../source/features.rst:157
msgid "" msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat " "OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any " "anonymously and securely with someone without needing to create any "
@ -499,17 +525,17 @@ msgid ""
"anonymity." "anonymity."
msgstr "" msgstr ""
"OnionShare sohbet odaları, herhangi bir hesap oluşturmaya gerek kalmadan " "OnionShare sohbet odaları, herhangi bir hesap oluşturmaya gerek kalmadan "
"biriyle anonim ve güvenli bir şekilde sohbet etmek isteyen kişiler için de " "biriyle anonim ve güvenli bir şekilde sohbet etmek isteyen kişiler için "
"kullanışlı olabilir. Örneğin, bir kaynak tek kullanımlık bir e-posta " "de kullanışlı olabilir. Örneğin, bir kaynak tek kullanımlık bir e-posta "
"adresini kullanarak bir gazeteciye OnionShare adresini gönderebilir ve " "adresini kullanarak bir gazeteciye OnionShare adresini gönderebilir ve "
"ardından anonimliklerinden ödün vermeden gazetecinin sohbet odasına " "ardından anonimliklerinden ödün vermeden gazetecinin sohbet odasına "
"katılmasını bekleyebilir." "katılmasını bekleyebilir."
#: ../../source/features.rst:150 #: ../../source/features.rst:161
msgid "How does the encryption work?" msgid "How does the encryption work?"
msgstr "Şifreleme nasıl çalışır?" msgstr "Şifreleme nasıl çalışır?"
#: ../../source/features.rst:152 #: ../../source/features.rst:163
msgid "" msgid ""
"Because OnionShare relies on Tor onion services, connections between the " "Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@ -518,14 +544,14 @@ msgid ""
"other members of the chat room using WebSockets, through their E2EE onion" "other members of the chat room using WebSockets, through their E2EE onion"
" connections." " connections."
msgstr "" msgstr ""
"OnionShare, Tor onion hizmetlerine dayandığından, Tor Browser ve OnionShare " "OnionShare, Tor onion hizmetlerine dayandığından, Tor Browser ve "
"arasındaki bağlantıların tümü uçtan uca şifrelenmiştir (E2EE). Birisi bir " "OnionShare arasındaki bağlantıların tümü uçtan uca şifrelenmiştir (E2EE)."
"OnionShare sohbet odasına bir mesaj gönderdiğinde, bunu E2EE onion " " Birisi bir OnionShare sohbet odasına bir mesaj gönderdiğinde, bunu E2EE "
"bağlantısı üzerinden sunucuya gönderir ve ardından sunucu bunu WebSockets " "onion bağlantısı üzerinden sunucuya gönderir ve ardından sunucu bunu "
"kullanarak E2EE onion bağlantıları aracılığıyla sohbet odasının diğer tüm " "WebSockets kullanarak E2EE onion bağlantıları aracılığıyla sohbet "
"üyelerine gönderir." "odasının diğer tüm üyelerine gönderir."
#: ../../source/features.rst:154 #: ../../source/features.rst:165
msgid "" msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on" "OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead." " the Tor onion service's encryption instead."
@ -920,3 +946,52 @@ msgstr ""
#~ "WebSockets, through their E2EE onion " #~ "WebSockets, through their E2EE onion "
#~ "connections." #~ "connections."
#~ msgstr "" #~ msgstr ""
#~ msgid "Receive Files"
#~ msgstr "Dosya Alın"
#~ msgid ""
#~ "You can use OnionShare to let "
#~ "people anonymously upload files directly "
#~ "to your computer, essentially turning it"
#~ " into an anonymous dropbox. Open a"
#~ " \"Receive tab\", choose where you "
#~ "want to save the files and other"
#~ " settings, and then click \"Start "
#~ "Receive Mode\"."
#~ msgstr ""
#~ "OnionShare'i, kullanıcıların dosyaları anonim "
#~ "olarak doğrudan bilgisayarınıza yüklemesine, "
#~ "bir anlamda onu anonim bir depolama "
#~ "alanına dönüştürmesine izin vermek için "
#~ "kullanabilirsiniz. Bir \"Alma sekmesi\" açın,"
#~ " dosyaları nereye kaydetmek istediğinizi ve"
#~ " diğer ayarları seçin ve ardından "
#~ "\"Alma Modunu Başlat\" düğmesine tıklayın."
#~ msgid ""
#~ "This starts the OnionShare service. "
#~ "Anyone loading this address in their "
#~ "Tor Browser will be able to upload"
#~ " files to your computer."
#~ msgstr ""
#~ "Bu, OnionShare hizmetini başlatır. Bu "
#~ "adresi Tor Browser'da açan herkes, "
#~ "bilgisayarınıza dosya yükleyebilir."
#~ msgid ""
#~ "When someone uploads files to your "
#~ "receive service, by default they get "
#~ "saved to a folder called ``OnionShare``"
#~ " in the home folder on your "
#~ "computer, automatically organized into "
#~ "separate subfolders based on the time"
#~ " that the files get uploaded."
#~ msgstr ""
#~ "Bir kişi alma hizmetinize dosyalar "
#~ "yüklediğinde, öntanımlı olarak bilgisayarınızdaki"
#~ " ev klasöründe ``OnionShare`` adlı bir "
#~ "klasöre kaydedilir ve dosyaların yüklenme "
#~ "zamanına göre otomatik olarak ayrı alt"
#~ " klasörler halinde düzenlenir."

View file

@ -7,17 +7,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-11-17 10:28+0000\n" "PO-Revision-Date: 2020-11-17 10:28+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n" "Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: none\n"
"Language: uk\n" "Language: uk\n"
"Language-Team: none\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.4-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2 #: ../../source/advanced.rst:2
@ -37,10 +36,10 @@ msgid ""
"address even if you reboot your computer." "address even if you reboot your computer."
msgstr "" msgstr ""
"Усе в OnionShare типово є тимчасовим. Якщо закрити вкладку OnionShare, її" "Усе в OnionShare типово є тимчасовим. Якщо закрити вкладку OnionShare, її"
"адреса більше не існуватиме й її більше не можна використовувати. Іноді вам " " адреса більше не існуватиме й її більше не можна використовувати. Іноді "
"може знадобитися, щоб служба OnionShare була постійною. Це корисно, якщо ви " "вам може знадобитися, щоб служба OnionShare була постійною. Це корисно, "
"хочете розмістити вебсайт, доступний з тієї ж адреси OnionShare, навіть якщо " "якщо ви хочете розмістити вебсайт, доступний з тієї ж адреси OnionShare, "
"ви перезапустите свій комп’ютер." "навіть якщо ви перезапустите свій комп’ютер."
#: ../../source/advanced.rst:13 #: ../../source/advanced.rst:13
msgid "" msgid ""
@ -61,8 +60,8 @@ msgid ""
msgstr "" msgstr ""
"Коли ви вийдете з OnionShare, а потім знову відкриєте його, збережені " "Коли ви вийдете з OnionShare, а потім знову відкриєте його, збережені "
"вкладки почнуть відкриватися. Вам доведеться власноруч запускати кожну " "вкладки почнуть відкриватися. Вам доведеться власноруч запускати кожну "
"службу, але коли ви це зробите, вони запустяться з тієї ж адреси OnionShare " "службу, але коли ви це зробите, вони запустяться з тієї ж адреси "
"і з тим же паролем." "OnionShare і з тим же паролем."
#: ../../source/advanced.rst:21 #: ../../source/advanced.rst:21
msgid "" msgid ""
@ -84,9 +83,9 @@ msgid ""
"stopped to prevent a brute force attack against the OnionShare service." "stopped to prevent a brute force attack against the OnionShare service."
msgstr "" msgstr ""
"Типово всі служби OnionShare захищені іменем користувача ``onionshare`` і" "Типово всі служби OnionShare захищені іменем користувача ``onionshare`` і"
"випадково створеним паролем. Якщо хтось вводить пароль неправильно 20 разів, " " випадково створеним паролем. Якщо хтось вводить пароль неправильно 20 "
"ваша служба onion автоматично зупинениться, щоб запобігти грубій спробі " "разів, ваша служба onion автоматично зупинениться, щоб запобігти грубій "
"зламу служби OnionShare." "спробі зламу служби OnionShare."
#: ../../source/advanced.rst:31 #: ../../source/advanced.rst:31
msgid "" msgid ""
@ -99,10 +98,10 @@ msgid ""
msgstr "" msgstr ""
"Іноді вам може знадобитися, щоб ваша служба OnionShare була " "Іноді вам може знадобитися, щоб ваша служба OnionShare була "
"загальнодоступною, наприклад, якщо ви хочете налаштувати службу отримання" "загальнодоступною, наприклад, якщо ви хочете налаштувати службу отримання"
"OnionShare, щоб інші могли безпечно та анонімно надсилати вам файли. У цьому " " OnionShare, щоб інші могли безпечно та анонімно надсилати вам файли. У "
"випадку краще взагалі вимкнути пароль. Якщо ви цього не зробите, хтось може " "цьому випадку краще взагалі вимкнути пароль. Якщо ви цього не зробите, "
"змусити ваш сервер зупинитися, просто зробивши 20 неправильних спроб " "хтось може змусити ваш сервер зупинитися, просто зробивши 20 неправильних"
"введення паролю, навіть якщо вони знають правильний пароль." " спроб введення паролю, навіть якщо вони знають правильний пароль."
#: ../../source/advanced.rst:35 #: ../../source/advanced.rst:35
msgid "" msgid ""
@ -114,11 +113,28 @@ msgstr ""
"використовувати пароль» перед запуском сервера. Тоді сервер буде " "використовувати пароль» перед запуском сервера. Тоді сервер буде "
"загальнодоступним і не матиме пароля." "загальнодоступним і не матиме пароля."
#: ../../source/advanced.rst:38 #: ../../source/advanced.rst:40
msgid "Custom Titles"
msgstr ""
#: ../../source/advanced.rst:42
msgid ""
"By default, when people load an OnionShare service in Tor Browser they "
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
#: ../../source/advanced.rst:47
msgid "Scheduled Times" msgid "Scheduled Times"
msgstr "Запланований час" msgstr "Запланований час"
#: ../../source/advanced.rst:40 #: ../../source/advanced.rst:49
msgid "" msgid ""
"OnionShare supports scheduling exactly when a service should start and " "OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its " "stop. Before starting a server, click \"Show advanced settings\" in its "
@ -129,22 +145,23 @@ msgstr ""
"OnionShare підтримує планування, коли саме служба повинна запускатися та " "OnionShare підтримує планування, коли саме служба повинна запускатися та "
"зупинятися. Перш ніж запускати сервер, натисніть «Показати розширені " "зупинятися. Перш ніж запускати сервер, натисніть «Показати розширені "
"налаштування» на його вкладці, а потім позначте «Запускати службу onion у" "налаштування» на його вкладці, а потім позначте «Запускати службу onion у"
"запланований час», «Зупинити службу onion у запланований час» або обидва і " " запланований час», «Зупинити службу onion у запланований час» або обидва"
"встановіть бажані дати та час." " і встановіть бажані дати та час."
#: ../../source/advanced.rst:43 #: ../../source/advanced.rst:52
msgid "" msgid ""
"If you scheduled a service to start in the future, when you click the " "If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it " "\"Start sharing\" button you will see a timer counting down until it "
"starts. If you scheduled it to stop in the future, after it's started you" "starts. If you scheduled it to stop in the future, after it's started you"
" will see a timer counting down to when it will stop automatically." " will see a timer counting down to when it will stop automatically."
msgstr "" msgstr ""
"Якщо ви запланували запуск послуги в майбутньому, після натискання кнопки «" "Якщо ви запланували запуск послуги в майбутньому, після натискання кнопки"
"Почати надсилання» ви побачите таймер зі зворотним відліком до початку " " «Почати надсилання» ви побачите таймер зі зворотним відліком до початку "
"запуску. Якщо ви запланували його зупинку в майбутньому, після його запуску " "запуску. Якщо ви запланували його зупинку в майбутньому, після його "
"ви побачите таймер з відліком часу, коли його буде автоматично зупинено." "запуску ви побачите таймер з відліком часу, коли його буде автоматично "
"зупинено."
#: ../../source/advanced.rst:46 #: ../../source/advanced.rst:55
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically start can be used as " "**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given " "a dead man's switch**, where your service will be made public at a given "
@ -156,29 +173,29 @@ msgstr ""
"певний час у майбутньому, якщо з вами щось станеться. Якщо з вами нічого " "певний час у майбутньому, якщо з вами щось станеться. Якщо з вами нічого "
"не відбувається, ви можете вимкнути службу до запланованого запуску." "не відбувається, ви можете вимкнути службу до запланованого запуску."
#: ../../source/advanced.rst:51 #: ../../source/advanced.rst:60
msgid "" msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to" "**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while " " limit exposure**, like if you want to share secret documents while "
"making sure they're not available on the Internet for more than a few " "making sure they're not available on the Internet for more than a few "
"days." "days."
msgstr "" msgstr ""
"**Планування автоматичної зупинки служби OnionShare може бути корисним для " "**Планування автоматичної зупинки служби OnionShare може бути корисним "
"обмеження надсилання**, наприклад, якщо ви хочете поділитися таємними " "для обмеження надсилання**, наприклад, якщо ви хочете поділитися таємними"
"документами й буди певними, що вони не доступні в Інтернеті впродовж більше " " документами й буди певними, що вони не доступні в Інтернеті впродовж "
"кількох днів." "більше кількох днів."
#: ../../source/advanced.rst:56 #: ../../source/advanced.rst:65
msgid "Command-line Interface" msgid "Command-line Interface"
msgstr "Інтерфейс командного рядка" msgstr "Інтерфейс командного рядка"
#: ../../source/advanced.rst:58 #: ../../source/advanced.rst:67
msgid "" msgid ""
"In addition to its graphical interface, OnionShare has a command-line " "In addition to its graphical interface, OnionShare has a command-line "
"interface." "interface."
msgstr "Окрім графічного інтерфейсу, OnionShare має інтерфейс командного рядка." msgstr "Окрім графічного інтерфейсу, OnionShare має інтерфейс командного рядка."
#: ../../source/advanced.rst:60 #: ../../source/advanced.rst:69
msgid "" msgid ""
"You can install just the command-line version of OnionShare using " "You can install just the command-line version of OnionShare using "
"``pip3``::" "``pip3``::"
@ -186,7 +203,7 @@ msgstr ""
"Ви можете встановити версію для командного рядка OnionShare лише " "Ви можете встановити версію для командного рядка OnionShare лише "
"використовуючи ``pip3``::" "використовуючи ``pip3``::"
#: ../../source/advanced.rst:64 #: ../../source/advanced.rst:73
msgid "" msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, " "Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``" "install it with: ``brew install tor``"
@ -194,37 +211,37 @@ msgstr ""
"Зауважте, що вам також знадобиться встановлений пакунок ``tor``. У macOS " "Зауважте, що вам також знадобиться встановлений пакунок ``tor``. У macOS "
"встановіть його за допомогою: ``brew install tor``" "встановіть його за допомогою: ``brew install tor``"
#: ../../source/advanced.rst:66 #: ../../source/advanced.rst:75
msgid "Then run it like this::" msgid "Then run it like this::"
msgstr "Потім запустіть його так::" msgstr "Потім запустіть його так::"
#: ../../source/advanced.rst:70 #: ../../source/advanced.rst:79
msgid "" msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can " "If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface " "also just run ``onionshare.cli`` to access the command-line interface "
"version." "version."
msgstr "" msgstr ""
"Якщо ви встановили OnionShare за допомогою пакунка Linux Snapcraft, ви " "Якщо ви встановили OnionShare за допомогою пакунка Linux Snapcraft, ви "
"можете просто запустити ``onionshare.cli`` для доступу до версії інтерфейсу " "можете просто запустити ``onionshare.cli`` для доступу до версії "
"командного рядка." "інтерфейсу командного рядка."
#: ../../source/advanced.rst:73 #: ../../source/advanced.rst:82
msgid "Usage" msgid "Usage"
msgstr "Користування" msgstr "Користування"
#: ../../source/advanced.rst:75 #: ../../source/advanced.rst:84
msgid "" msgid ""
"You can browse the command-line documentation by running ``onionshare " "You can browse the command-line documentation by running ``onionshare "
"--help``::" "--help``::"
msgstr "" msgstr ""
"Ви можете переглянути документацію командного рядка, запустивши ``onionshare " "Ви можете переглянути документацію командного рядка, запустивши "
"--help``::" "``onionshare --help``::"
#: ../../source/advanced.rst:132 #: ../../source/advanced.rst:147
msgid "Legacy Addresses" msgid "Legacy Addresses"
msgstr "Застарілі адреси" msgstr "Застарілі адреси"
#: ../../source/advanced.rst:134 #: ../../source/advanced.rst:149
msgid "" msgid ""
"OnionShare uses v3 Tor onion services by default. These are modern onion " "OnionShare uses v3 Tor onion services by default. These are modern onion "
"addresses that have 56 characters, for example::" "addresses that have 56 characters, for example::"
@ -232,15 +249,15 @@ msgstr ""
"Типово, OnionShare використовує служби onion Tor v3. Це сучасні адреси " "Типово, OnionShare використовує служби onion Tor v3. Це сучасні адреси "
"onion, що мають 56 символів, наприклад::" "onion, що мають 56 символів, наприклад::"
#: ../../source/advanced.rst:139 #: ../../source/advanced.rst:154
msgid "" msgid ""
"OnionShare still has support for v2 onion addresses, the old type of " "OnionShare still has support for v2 onion addresses, the old type of "
"onion addresses that have 16 characters, for example::" "onion addresses that have 16 characters, for example::"
msgstr "" msgstr ""
"OnionShare досі підтримує адреси onion v2, старий тип адрес onion, які мають " "OnionShare досі підтримує адреси onion v2, старий тип адрес onion, які "
"16 символів, наприклад::" "мають 16 символів, наприклад::"
#: ../../source/advanced.rst:143 #: ../../source/advanced.rst:158
msgid "" msgid ""
"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " "OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
"not recommended, as v3 onion addresses are more secure." "not recommended, as v3 onion addresses are more secure."
@ -248,7 +265,7 @@ msgstr ""
"OnionShare називає адреси onion v2 «застарілими адресами» і вони не " "OnionShare називає адреси onion v2 «застарілими адресами» і вони не "
"рекомендовані, оскільки адреси onion v3 безпечніші." "рекомендовані, оскільки адреси onion v3 безпечніші."
#: ../../source/advanced.rst:145 #: ../../source/advanced.rst:160
msgid "" msgid ""
"To use legacy addresses, before starting a server click \"Show advanced " "To use legacy addresses, before starting a server click \"Show advanced "
"settings\" from its tab and check the \"Use a legacy address (v2 onion " "settings\" from its tab and check the \"Use a legacy address (v2 onion "
@ -261,20 +278,21 @@ msgstr ""
"розширені налаштування» на його вкладці та позначте «Користуватися " "розширені налаштування» на його вкладці та позначте «Користуватися "
"застарілою адресою (служба onion v2, не рекомендовано)». У застарілому " "застарілою адресою (служба onion v2, не рекомендовано)». У застарілому "
"режимі ви можете додатково ввімкнути автентифікацію клієнта Tor. Після " "режимі ви можете додатково ввімкнути автентифікацію клієнта Tor. Після "
"запуску сервера у застарілому режимі ви не зможете вилучити застарілий режим " "запуску сервера у застарілому режимі ви не зможете вилучити застарілий "
"у цій вкладці. Натомість ви повинні запустити окрему службу в окремій " "режим у цій вкладці. Натомість ви повинні запустити окрему службу в "
"вкладці." "окремій вкладці."
#: ../../source/advanced.rst:150 #: ../../source/advanced.rst:165
msgid "" msgid ""
"Tor Project plans to `completely deprecate v2 onion services " "Tor Project plans to `completely deprecate v2 onion services "
"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, " "<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
"2021, and legacy onion services will be removed from OnionShare before " "2021, and legacy onion services will be removed from OnionShare before "
"then." "then."
msgstr "" msgstr ""
"Проєкт Tor планує `повністю припинити роботу службами onion v2 <https://blog." "Проєкт Tor планує `повністю припинити роботу службами onion v2 "
"torproject.org/v2-deprecation-timeline>`_ 15 жовтня 2021 р. і застарілі " "<https://blog.torproject.org/v2-deprecation-timeline>`_ 15 жовтня 2021 р."
"служби onion також буде вилучено з OnionShare незадовго до цього часу." " і застарілі служби onion також буде вилучено з OnionShare незадовго до "
"цього часу."
#~ msgid "" #~ msgid ""
#~ "By default, everything in OnionShare is" #~ "By default, everything in OnionShare is"
@ -389,3 +407,4 @@ msgstr ""
#~ " розробки Windows (подробиці " #~ " розробки Windows (подробиці "
#~ ":ref:`starting_development`), а потім запустити " #~ ":ref:`starting_development`), а потім запустити "
#~ "його в командному рядку::" #~ "його в командному рядку::"

View file

@ -7,17 +7,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OnionShare 2.3\n" "Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n" "POT-Creation-Date: 2021-05-03 21:48-0700\n"
"PO-Revision-Date: 2020-11-17 10:28+0000\n" "PO-Revision-Date: 2020-11-17 10:28+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n" "Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: none\n"
"Language: uk\n" "Language: uk\n"
"Language-Team: none\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.4-dev\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4 #: ../../source/features.rst:4
@ -30,9 +29,9 @@ msgid ""
"other people as `Tor <https://www.torproject.org/>`_ `onion services " "other people as `Tor <https://www.torproject.org/>`_ `onion services "
"<https://community.torproject.org/onion-services/>`_." "<https://community.torproject.org/onion-services/>`_."
msgstr "" msgstr ""
"Вебсервери локально запускаються на вашому комп’ютері та стають доступними " "Вебсервери локально запускаються на вашому комп’ютері та стають "
"для інших людей як `Tor <https://www.torproject.org/>`_ `onion служби " оступними для інших людей як `Tor <https://www.torproject.org/>`_ `onion"
"<https://community.torproject.org/onion-services/>`_." " служби <https://community.torproject.org/onion-services/>`_."
#: ../../source/features.rst:8 #: ../../source/features.rst:8
msgid "" msgid ""
@ -50,19 +49,19 @@ msgid ""
"model <https://ssd.eff.org/module/your-security-plan>`_." "model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr "" msgstr ""
"Ви відповідальні за безпечний доступ до цієї URL-адреси за допомогою " "Ви відповідальні за безпечний доступ до цієї URL-адреси за допомогою "
"вибраного вами каналу зв'язку, як-от у зашифрованому повідомленні чату, або " "вибраного вами каналу зв'язку, як-от у зашифрованому повідомленні чату, "
"за використання менш захищеного повідомлення, як от незашифрований " "або за використання менш захищеного повідомлення, як от незашифрований "
"електронний лист, залежно від вашої `моделі загрози <https://ssd.eff.org/en/" "електронний лист, залежно від вашої `моделі загрози "
"module/your-security-plan>`_." "<https://ssd.eff.org/en/module/your-security-plan>`_."
#: ../../source/features.rst:14 #: ../../source/features.rst:14
msgid "" msgid ""
"The people you send the URL to then copy and paste it into their `Tor " "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." "Browser <https://www.torproject.org/>`_ to access the OnionShare service."
msgstr "" msgstr ""
"Люди, яким ви надсилаєте URL-адресу, повинні копіювати та вставити її до `" "Люди, яким ви надсилаєте URL-адресу, повинні копіювати та вставити її до "
"Tor Browser <https://www.torproject.org/>`_, щоб отримати доступ до служби " "`Tor Browser <https://www.torproject.org/>`_, щоб отримати доступ до "
"OnionShare." "служби OnionShare."
#: ../../source/features.rst:16 #: ../../source/features.rst:16
msgid "" msgid ""
@ -72,9 +71,10 @@ msgid ""
"works best when working with people in real-time." "works best when working with people in real-time."
msgstr "" msgstr ""
"Якщо ви запустили OnionShare на ноутбуці, щоб надіслати комусь файли, а " "Якщо ви запустили OnionShare на ноутбуці, щоб надіслати комусь файли, а "
"потім зупинити його роботу перед надсиланням файлів, служба буде недоступна, " "потім зупинити його роботу перед надсиланням файлів, служба буде "
"доки роботу ноутбука не буде поновлено і знову з'явиться в Інтернеті. " "недоступна, доки роботу ноутбука не буде поновлено і знову з'явиться в "
"OnionShare найкраще працює під час роботи з людьми в режимі реального часу." "Інтернеті. OnionShare найкраще працює під час роботи з людьми в режимі "
"реального часу."
#: ../../source/features.rst:18 #: ../../source/features.rst:18
msgid "" msgid ""
@ -86,9 +86,9 @@ msgid ""
msgstr "" msgstr ""
"Оскільки ваш власний комп'ютер є вебсервером, *ніхто сторонній не може " "Оскільки ваш власний комп'ютер є вебсервером, *ніхто сторонній не може "
"отримати доступ до будь-чого, що відбувається в OnionShare*, навіть " "отримати доступ до будь-чого, що відбувається в OnionShare*, навіть "
"розробники OnionShare. Це цілком приватно. Оскільки OnionShare теж базується " "розробники OnionShare. Це цілком приватно. Оскільки OnionShare теж "
"на onion службах Tor, вашу анонімність також захищено. Докладніше про це у " "базується на onion службах Tor, вашу анонімність також захищено. "
"статті :doc:`про побудову безпеки </security>`." "Докладніше про це у статті :doc:`про побудову безпеки </security>`."
#: ../../source/features.rst:21 #: ../../source/features.rst:21
msgid "Share Files" msgid "Share Files"
@ -101,10 +101,11 @@ msgid ""
"share, and click \"Start sharing\"." "share, and click \"Start sharing\"."
msgstr "" msgstr ""
"Ви можете використовувати OnionShare, щоб безпечно та анонімно надсилати " "Ви можете використовувати OnionShare, щоб безпечно та анонімно надсилати "
"файли та теки людям. Просто відкрийте вкладку спільного доступу, перетягніть " "файли та теки людям. Просто відкрийте вкладку спільного доступу, "
"файли та теки, якими хочете поділитися і натисніть \"Почати надсилання\"." "перетягніть файли та теки, якими хочете поділитися і натисніть \"Почати "
"надсилання\"."
#: ../../source/features.rst:27 ../../source/features.rst:93 #: ../../source/features.rst:27 ../../source/features.rst:104
msgid "" msgid ""
"After you add files, you'll see some settings. Make sure you choose the " "After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing." "setting you're interested in before you start sharing."
@ -122,8 +123,8 @@ msgid ""
msgstr "" msgstr ""
"Як тільки хтось завершив завантажувати ваші файли, OnionShare автоматично" "Як тільки хтось завершив завантажувати ваші файли, OnionShare автоматично"
" зупиняє сервер, вилучивши вебсайт з Інтернету. Якщо ви хочете дозволити " " зупиняє сервер, вилучивши вебсайт з Інтернету. Якщо ви хочете дозволити "
"кільком людям завантажувати ці файли, приберіть позначку біля пункту «" "кільком людям завантажувати ці файли, приберіть позначку біля пункту "
"Закрити доступ, коли файли надіслано (приберіть позначку, щоб дозволити " "«Закрити доступ, коли файли надіслано (приберіть позначку, щоб дозволити "
"завантаження окремих файлів)»." "завантаження окремих файлів)»."
#: ../../source/features.rst:34 #: ../../source/features.rst:34
@ -132,8 +133,8 @@ msgid ""
"individual files you share rather than a single compressed version of all" "individual files you share rather than a single compressed version of all"
" the files." " the files."
msgstr "" msgstr ""
"Також, якщо прибрати цю позначку, користувачі зможуть завантажувати окремі " "Також, якщо прибрати цю позначку, користувачі зможуть завантажувати "
"файли, які ви надсилаєте, а не одну стиснуту версію всіх файлів." "окремі файли, які ви надсилаєте, а не одну стиснуту версію всіх файлів."
#: ../../source/features.rst:36 #: ../../source/features.rst:36
msgid "" msgid ""
@ -142,10 +143,11 @@ msgid ""
" website down. You can also click the \"↑\" icon in the top-right corner " " website down. You can also click the \"↑\" icon in the top-right corner "
"to show the history and progress of people downloading files from you." "to show the history and progress of people downloading files from you."
msgstr "" msgstr ""
"Коли ви будете готові поділитися, натисніть кнопку \"Почати надсилання\". Ви " "Коли ви будете готові поділитися, натисніть кнопку \"Почати надсилання\"."
"завжди можете натиснути \"Зупинити надсилання\" або вийти з OnionShare, щоб " " Ви завжди можете натиснути \"Зупинити надсилання\" або вийти з "
"негайно вимкнути вебсайт. Ви також можете натиснути піктограму «↑» у " "OnionShare, щоб негайно вимкнути вебсайт. Ви також можете натиснути "
"верхньому правому куті, щоб побачити журнал та поступ надсилання файлів." "піктограму «↑» у верхньому правому куті, щоб побачити журнал та поступ "
"надсилання файлів."
#: ../../source/features.rst:40 #: ../../source/features.rst:40
msgid "" msgid ""
@ -154,8 +156,8 @@ msgid ""
"or the person is otherwise exposed to danger, use an encrypted messaging " "or the person is otherwise exposed to danger, use an encrypted messaging "
"app." "app."
msgstr "" msgstr ""
"Тепер, коли у вас є OnionShare, копіюйте адресу та надішліть людині, якій ви " "Тепер, коли у вас є OnionShare, копіюйте адресу та надішліть людині, якій"
"хочете надіслати файли. Якщо файли повинні бути захищеними або особа " " ви хочете надіслати файли. Якщо файли повинні бути захищеними або особа "
"піддається небезпеці, скористайтеся застосунком зашифрованих повідомлень." "піддається небезпеці, скористайтеся застосунком зашифрованих повідомлень."
#: ../../source/features.rst:42 #: ../../source/features.rst:42
@ -167,59 +169,77 @@ msgid ""
msgstr "" msgstr ""
"Потім ця особа повинна завантажити адресу в Tor Browser. Після входу за " "Потім ця особа повинна завантажити адресу в Tor Browser. Після входу за "
"випадковим паролем, який міститься у вебадресі, вони зможуть завантажити " "випадковим паролем, який міститься у вебадресі, вони зможуть завантажити "
"файли безпосередньо з вашого комп’ютера, натиснувши посилання «Завантажити " "файли безпосередньо з вашого комп’ютера, натиснувши посилання "
"файли» в кутку." "«Завантажити файли» в кутку."
#: ../../source/features.rst:47 #: ../../source/features.rst:47
msgid "Receive Files" msgid "Receive Files and Messages"
msgstr "Отримання файлів" msgstr ""
#: ../../source/features.rst:49 #: ../../source/features.rst:49
msgid "" msgid ""
"You can use OnionShare to let people anonymously upload files directly to" "You can use OnionShare to let people anonymously submit files and "
" your computer, essentially turning it into an anonymous dropbox. Open a " "messages directly to your computer, essentially turning it into an "
"\"Receive tab\", choose where you want to save the files and other " "anonymous dropbox. Open a receive tab and choose the settings that you "
"settings, and then click \"Start Receive Mode\"." "want."
msgstr "" msgstr ""
"Ви можете користуватися OnionShare, щоб дозволити людям анонімно "
"завантажувати файли безпосередньо на ваш комп’ютер, по суті, перетворивши "
"його на анонімну скриньку. Відкрийте вкладку «Отримання», виберіть, куди "
"потрібно завантажувати файли, та інші параметри, а потім натисніть «"
"Запустити режим отримання»."
#: ../../source/features.rst:54 #: ../../source/features.rst:54
msgid "" msgid "You can browse for a folder to save messages and files that get submitted."
"This starts the OnionShare service. Anyone loading this address in their " msgstr ""
"Tor Browser will be able to upload files to your computer."
#: ../../source/features.rst:56
msgid ""
"You can check \"Disable submitting text\" if want to only allow file "
"uploads, and you can check \"Disable uploading files\" if you want to "
"only allow submitting text messages, like for an anonymous contact form."
msgstr "" msgstr ""
"Запуститься служба OnionShare. Будь-хто, хто завантажить цю адресу в Tor "
"Browser, зможе завантажувати файли на ваш комп’ютер."
#: ../../source/features.rst:58 #: ../../source/features.rst:58
msgid "" msgid ""
"You can check \"Use notification webhook\" and then choose a webhook URL "
"if you want to be notified when someone submits files or messages to your"
" OnionShare service. If you use this feature, OnionShare will make an "
"HTTP POST request to this URL whenever someone submits files or messages."
" For example, if you want to get an encrypted text messaging on the "
"messaging app `Keybase <https://keybase.io/>`_, you can start a "
"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
"``!webhook create onionshare-alerts``, and it will respond with a URL. "
"Use that as the notification webhook URL. If someone uploads a file to "
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
#: ../../source/features.rst:63
msgid ""
"When you are ready, click \"Start Receive Mode\". This starts the "
"OnionShare service. Anyone loading this address in their Tor Browser will"
" be able to submit files and messages which get uploaded to your "
"computer."
msgstr ""
#: ../../source/features.rst:67
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show " "You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you." "the history and progress of people sending files to you."
msgstr "" msgstr ""
"Також можна клацнути піктограму «↓» у верхньому правому куті, щоб побачити " "Також можна клацнути піктограму «↓» у верхньому правому куті, щоб "
"журнал і перебіг надсилання файлів." "побачити журнал і перебіг надсилання файлів."
#: ../../source/features.rst:60 #: ../../source/features.rst:69
msgid "Here is what it looks like for someone sending you files." #, fuzzy
msgid "Here is what it looks like for someone sending you files and messages."
msgstr "Ось як це виглядає для когось, хто надсилає вам файли." msgstr "Ось як це виглядає для когось, хто надсилає вам файли."
#: ../../source/features.rst:64 #: ../../source/features.rst:73
msgid "" msgid ""
"When someone uploads files to your receive service, by default they get " "When someone submits files or messages to your receive service, by "
"saved to a folder called ``OnionShare`` in the home folder on your " "default they get saved to a folder called ``OnionShare`` in the home "
"computer, automatically organized into separate subfolders based on the " "folder on your computer, automatically organized into separate subfolders"
"time that the files get uploaded." " based on the time that the files get uploaded."
msgstr "" msgstr ""
"Коли хтось завантажує файли до вашої служби отримання, типово вони "
"зберігаються у теці з назвою ``OnionShare`` у вашій домашній теці вашого "
"комп'ютера та автоматично впорядковуються до окремих підтек за часом "
"завантаження файлів."
#: ../../source/features.rst:66 #: ../../source/features.rst:75
msgid "" msgid ""
"Setting up an OnionShare receiving service is useful for journalists and " "Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When " "others needing to securely accept documents from anonymous sources. When "
@ -227,29 +247,29 @@ msgid ""
"quite as secure version of `SecureDrop <https://securedrop.org/>`_, the " "quite as secure version of `SecureDrop <https://securedrop.org/>`_, the "
"whistleblower submission system." "whistleblower submission system."
msgstr "" msgstr ""
"Параметри служби отримання OnionShare корисні для журналістів та інших осіб, " "Параметри служби отримання OnionShare корисні для журналістів та інших "
"яким потрібно безпечно отримувати документи від анонімних джерел. " "осіб, яким потрібно безпечно отримувати документи від анонімних джерел. "
"Використовуючи таким чином, OnionShare як легку, простішу, не настільки " "Використовуючи таким чином, OnionShare як легку, простішу, не настільки "
"безпечну версію `SecureDrop <https://securedrop.org/>`_, системи подання " "безпечну версію `SecureDrop <https://securedrop.org/>`_, системи подання "
"таємних повідомлень викривачів." "таємних повідомлень викривачів."
#: ../../source/features.rst:69 #: ../../source/features.rst:78
msgid "Use at your own risk" msgid "Use at your own risk"
msgstr "Використовуйте на власний ризик" msgstr "Використовуйте на власний ризик"
#: ../../source/features.rst:71 #: ../../source/features.rst:80
msgid "" msgid ""
"Just like with malicious e-mail attachments, it's possible someone could " "Just like with malicious e-mail attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your " "try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to " "OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files." "protect your system from malicious files."
msgstr "" msgstr ""
"Як і у випадку зі шкідливими вкладеннями електронної пошти, можливо, хтось " "Як і у випадку зі шкідливими вкладеннями електронної пошти, можливо, "
"спробує зламати ваш комп’ютер, завантаживши шкідливий файл до вашої служби " "хтось спробує зламати ваш комп’ютер, завантаживши шкідливий файл до вашої"
"OnionShare. OnionShare не додає жодних механізмів безпеки, щоб захистити " " служби OnionShare. OnionShare не додає жодних механізмів безпеки, щоб "
"вашу систему від шкідливих файлів." "захистити вашу систему від шкідливих файлів."
#: ../../source/features.rst:73 #: ../../source/features.rst:82
msgid "" msgid ""
"If you receive an Office document or a PDF through OnionShare, you can " "If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone" "convert these documents into PDFs that are safe to open using `Dangerzone"
@ -262,14 +282,18 @@ msgstr ""
" документи можна перетворити на PDF-файли, які можна безпечно відкрити за" " документи можна перетворити на PDF-файли, які можна безпечно відкрити за"
" допомогою `Dangerzone <https://dangerzone.rocks/>`_. Ви також можете " " допомогою `Dangerzone <https://dangerzone.rocks/>`_. Ви також можете "
"захистити себе під час відкриття недовірених документів, відкривши їх у " "захистити себе під час відкриття недовірених документів, відкривши їх у "
"одноразових віртуальних машинах `Tails <https://tails.boum.org/>`_ або в `" "одноразових віртуальних машинах `Tails <https://tails.boum.org/>`_ або в "
"Qubes <https://qubes-os.org/>`_." "`Qubes <https://qubes-os.org/>`_."
#: ../../source/features.rst:76 #: ../../source/features.rst:84
msgid "However, it is always safe to open text messages sent through OnionShare."
msgstr ""
#: ../../source/features.rst:87
msgid "Tips for running a receive service" msgid "Tips for running a receive service"
msgstr "Поради щодо запуску служби отримання" msgstr "Поради щодо запуску служби отримання"
#: ../../source/features.rst:78 #: ../../source/features.rst:89
msgid "" msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's " "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" "recommended you do so on a separate, dedicated computer always powered on"
@ -277,26 +301,28 @@ msgid ""
"basis." "basis."
msgstr "" msgstr ""
"Якщо ви хочете розмістити свою власну анонімну скриньку за допомогою " "Якщо ви хочете розмістити свою власну анонімну скриньку за допомогою "
"OnionShare, радимо робити це на окремому виділеному комп’ютері, який завжди " "OnionShare, радимо робити це на окремому виділеному комп’ютері, який "
"ввімкнено та під'єднано до Інтернету, а не на тому, яким ви користуєтеся " "завжди ввімкнено та під'єднано до Інтернету, а не на тому, яким ви "
"регулярно." "користуєтеся регулярно."
#: ../../source/features.rst:80 #: ../../source/features.rst:91
#, fuzzy
msgid "" msgid ""
"If you intend to put the OnionShare address on your website or social " "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 " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
"public service (see :ref:`turn_off_passwords`)." "public service (see :ref:`turn_off_passwords`). It's also a good idea to "
"give it a custom title (see :ref:`custom_titles`)."
msgstr "" msgstr ""
"Якщо ви маєте намір рекламувати адресу OnionShare на своєму вебсайті або в " "Якщо ви маєте намір рекламувати адресу OnionShare на своєму вебсайті або "
"профілях соціальних мереж, вам слід зберегти вкладку (докладніше " "в профілях соціальних мереж, вам слід зберегти вкладку (докладніше "
":ref:`save_tabs`) і запустити її як загальнодоступну службу (докладніше " ":ref:`save_tabs`) і запустити її як загальнодоступну службу (докладніше "
":ref:`turn_off_passwords`)." ":ref:`turn_off_passwords`)."
#: ../../source/features.rst:83 #: ../../source/features.rst:94
msgid "Host a Website" msgid "Host a Website"
msgstr "Розміщення вебсайту" msgstr "Розміщення вебсайту"
#: ../../source/features.rst:85 #: ../../source/features.rst:96
msgid "" msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag " "To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click " "the files and folders that make up the static content there, and click "
@ -306,7 +332,7 @@ msgstr ""
" вкладку вебсайту, перетягніть файли та теки, що є статичним вмістом і " " вкладку вебсайту, перетягніть файли та теки, що є статичним вмістом і "
"натисніть кнопку «Почати надсилання», коли будете готові." "натисніть кнопку «Почати надсилання», коли будете готові."
#: ../../source/features.rst:89 #: ../../source/features.rst:100
msgid "" msgid ""
"If you add an ``index.html`` file, it will render when someone loads your" "If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, " " website. You should also include any other HTML files, CSS files, "
@ -315,14 +341,14 @@ msgid ""
"websites that execute code or use databases. So you can't for example use" "websites that execute code or use databases. So you can't for example use"
" WordPress.)" " WordPress.)"
msgstr "" msgstr ""
"Якщо ви додасте файл ``index.html``, коли хтось завантажить ваш вебсайт, він " "Якщо ви додасте файл ``index.html``, коли хтось завантажить ваш вебсайт, "
"покаже цю сторінку. Слід також включити будь-які інші файли HTML, файли CSS, " "він покаже цю сторінку. Слід також включити будь-які інші файли HTML, "
"файли JavaScript та зображення, що складають вебсайт. (Зуважте, що " "файли CSS, файли JavaScript та зображення, що складають вебсайт. "
"OnionShare підтримує розміщення лише *статичних* вебсайтів. Він не може " "(Зуважте, що OnionShare підтримує розміщення лише *статичних* вебсайтів. "
"розміщувати вебсайти, які виконують код або використовують бази даних. Тож " "Він не може розміщувати вебсайти, які виконують код або використовують "
"ви не можете, наприклад, використовувати WordPress.)" "бази даних. Тож ви не можете, наприклад, використовувати WordPress.)"
#: ../../source/features.rst:91 #: ../../source/features.rst:102
msgid "" msgid ""
"If you don't have an ``index.html`` file, it will show a directory " "If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and " "listing instead, and people loading it can look through the files and "
@ -332,11 +358,11 @@ msgstr ""
"каталогів, а люди, які завантажують його, зможуть оглядати файли та " "каталогів, а люди, які завантажують його, зможуть оглядати файли та "
"завантажувати їх." "завантажувати їх."
#: ../../source/features.rst:98 #: ../../source/features.rst:109
msgid "Content Security Policy" msgid "Content Security Policy"
msgstr "Політика безпеки вмісту" msgstr "Політика безпеки вмісту"
#: ../../source/features.rst:100 #: ../../source/features.rst:111
msgid "" msgid ""
"By default OnionShare helps secure your website by setting a strict " "By default OnionShare helps secure your website by setting a strict "
"`Content Security Police " "`Content Security Police "
@ -345,11 +371,11 @@ msgid ""
"page." "page."
msgstr "" msgstr ""
"Типово OnionShare допоможе захистити ваш вебсайт, встановивши надійний " "Типово OnionShare допоможе захистити ваш вебсайт, встановивши надійний "
"заголовок `Content Security Police <https://en.wikipedia.org/wiki/" "заголовок `Content Security Police "
"Content_Security_Policy>`_. Однак, це запобігає завантаженню сторонніх " "<https://en.wikipedia.org/wiki/Content_Security_Policy>`_. Однак, це "
"матеріалів на вебсторінку." "запобігає завантаженню сторонніх матеріалів на вебсторінку."
#: ../../source/features.rst:102 #: ../../source/features.rst:113
msgid "" msgid ""
"If you want to load content from third-party websites, like assets or " "If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, check the \"Don't send Content Security " "JavaScript libraries from CDNs, check the \"Don't send Content Security "
@ -357,15 +383,15 @@ msgid ""
"before starting the service." "before starting the service."
msgstr "" msgstr ""
"Якщо ви хочете завантажити вміст зі сторонніх вебсайтів, як-от активи або" "Якщо ви хочете завантажити вміст зі сторонніх вебсайтів, як-от активи або"
"бібліотеки JavaScript із CDN, то перед запуском служби потрібно встановити " " бібліотеки JavaScript із CDN, то перед запуском служби потрібно "
"позначку «Не надсилати заголовок політики безпеки вмісту (дозволяє вебсайту " "встановити позначку «Не надсилати заголовок політики безпеки вмісту "
"застосовувати сторонні ресурси)»." "(дозволяє вебсайту застосовувати сторонні ресурси)»."
#: ../../source/features.rst:105 #: ../../source/features.rst:116
msgid "Tips for running a website service" msgid "Tips for running a website service"
msgstr "Поради щодо запуску служби розміщення вебсайту" msgstr "Поради щодо запуску служби розміщення вебсайту"
#: ../../source/features.rst:107 #: ../../source/features.rst:118
msgid "" msgid ""
"If you want to host a long-term website using OnionShare (meaning not " "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 " "something to quickly show someone something), it's recommended you do it "
@ -374,15 +400,15 @@ msgid ""
"(see :ref:`save_tabs`) so you can resume the website with the same " "(see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later." "address if you close OnionShare and re-open it later."
msgstr "" msgstr ""
"Якщо ви хочете розмістити довгостроковий вебсайт за допомогою OnionShare (це " "Якщо ви хочете розмістити довгостроковий вебсайт за допомогою OnionShare "
"не просто для того, щоб швидко комусь щось показати), рекомендовано робити " "(це не просто для того, щоб швидко комусь щось показати), рекомендовано "
"це на окремому виділеному комп’ютері, який завжди ввімкнено та під'єднано до " "робити це на окремому виділеному комп’ютері, який завжди ввімкнено та "
"Інтернету, а не на той, яким ви користуєтеся регулярно. Вам також слід " "під'єднано до Інтернету, а не на той, яким ви користуєтеся регулярно. Вам"
"зберегти вкладку (подробиці :ref:`save_tabs`), щоб ви могли відновити " " також слід зберегти вкладку (подробиці :ref:`save_tabs`), щоб ви могли "
"вебсайт з тією ж адресою, якщо закриєте OnionShare і знову відкриєте його " ідновити вебсайт з тією ж адресою, якщо закриєте OnionShare і знову "
"пізніше." "відкриєте його пізніше."
#: ../../source/features.rst:110 #: ../../source/features.rst:121
msgid "" msgid ""
"If your website is intended for the public, you should run it as a public" "If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_passwords`)." " service (see :ref:`turn_off_passwords`)."
@ -390,44 +416,44 @@ msgstr ""
"Якщо ваш вебсайт призначено для загального перегляду, вам слід запустити " "Якщо ваш вебсайт призначено для загального перегляду, вам слід запустити "
"його як загальнодоступну службу (подробиці :ref:`turn_off_passwords`)." "його як загальнодоступну службу (подробиці :ref:`turn_off_passwords`)."
#: ../../source/features.rst:113 #: ../../source/features.rst:124
msgid "Chat Anonymously" msgid "Chat Anonymously"
msgstr "Спілкуйтеся таємно" msgstr "Спілкуйтеся таємно"
#: ../../source/features.rst:115 #: ../../source/features.rst:126
msgid "" msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't" "You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"." " log anything. Just open a chat tab and click \"Start chat server\"."
msgstr "" msgstr ""
"Ви можете застосовувати OnionShare для створення цілком анонімної, захищеної " "Ви можете застосовувати OnionShare для створення цілком анонімної, "
"кімнати чату, яка нічого не реєструє. Просто відкрийте вкладку чату та " "захищеної кімнати чату, яка нічого не реєструє. Просто відкрийте вкладку "
"натисніть «Запустити сервер чату»." "чату та натисніть «Запустити сервер чату»."
#: ../../source/features.rst:119 #: ../../source/features.rst:130
msgid "" msgid ""
"After you start the server, copy the OnionShare address and send it to " "After you start the server, copy the OnionShare address and send it to "
"the people you want in the anonymous chat room. If it's important to " "the people you want in the anonymous chat room. If it's important to "
"limit exactly who can join, use an encrypted messaging app to send out " "limit exactly who can join, use an encrypted messaging app to send out "
"the OnionShare address." "the OnionShare address."
msgstr "" msgstr ""
"Після запуску сервера копіюйте адресу OnionShare і надішліть її людям, які " "Після запуску сервера копіюйте адресу OnionShare і надішліть її людям, "
"приєднаються до цієї анонімної кімнати чату. Якщо важливо обмежити коло, хто " "які приєднаються до цієї анонімної кімнати чату. Якщо важливо обмежити "
"може приєднатися, ви повинні використовувати зашифровані програми обміну " "коло, хто може приєднатися, ви повинні використовувати зашифровані "
"повідомленнями для надсилання адреси OnionShare." "програми обміну повідомленнями для надсилання адреси OnionShare."
#: ../../source/features.rst:124 #: ../../source/features.rst:135
msgid "" msgid ""
"People can join the chat room by loading its OnionShare address in Tor " "People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to " "Browser. The chat room requires JavasScript, so everyone who wants to "
"participate must have their Tor Browser security level set to " "participate must have their Tor Browser security level set to "
"\"Standard\" or \"Safer\", instead of \"Safest\"." "\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr "" msgstr ""
"Люди можуть приєднатися до чату, завантаживши його адресу OnionShare у Tor " "Люди можуть приєднатися до чату, завантаживши його адресу OnionShare у "
"Browser. Для чату потрібен JavasScript, тому всі, хто хоче взяти участь, " "Tor Browser. Для чату потрібен JavasScript, тому всі, хто хоче взяти "
"повинні встановити рівень безпеки на «Стандартний» або «Безпечніший» замість " "участь, повинні встановити рівень безпеки на «Стандартний» або "
"«Найбезпечніший»." Безпечніший» замість «Найбезпечніший»."
#: ../../source/features.rst:127 #: ../../source/features.rst:138
msgid "" msgid ""
"When someone joins the chat room they get assigned a random name. They " "When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel " "can change their name by typing a new name in the box in the left panel "
@ -436,10 +462,10 @@ msgid ""
msgstr "" msgstr ""
"Коли хтось приєднується до чату, йому присвоюється випадкове ім'я. Вони " "Коли хтось приєднується до чату, йому присвоюється випадкове ім'я. Вони "
"можуть змінити своє ім’я, ввівши нове ім’я у полі на панелі ліворуч та " "можуть змінити своє ім’я, ввівши нове ім’я у полі на панелі ліворуч та "
"натиснувши ↵. Попередні повідомлення взагалі не з'являться, навіть якщо інші " "натиснувши ↵. Попередні повідомлення взагалі не з'являться, навіть якщо "
"вже спілкувалися в чаті, оскільки історія чату ніде не зберігається." "інші вже спілкувалися в чаті, оскільки історія чату ніде не зберігається."
#: ../../source/features.rst:133 #: ../../source/features.rst:144
msgid "" msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change " "In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity." "their name to anything, and there is no way to confirm anyone's identity."
@ -447,7 +473,7 @@ msgstr ""
"У чаті OnionShare всі анонімні. Будь-хто може змінити своє ім'я на яке " "У чаті OnionShare всі анонімні. Будь-хто може змінити своє ім'я на яке "
"завгодно і жодного способу підтвердження особи не існує." "завгодно і жодного способу підтвердження особи не існує."
#: ../../source/features.rst:136 #: ../../source/features.rst:147
msgid "" msgid ""
"However, if you create an OnionShare chat room and securely send the " "However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted " "address only to a small group of trusted friends using encrypted "
@ -455,15 +481,15 @@ msgid ""
"room are your friends." "room are your friends."
msgstr "" msgstr ""
"Однак, якщо ви створюєте чат OnionShare і безпечно надсилаєте адресу лише" "Однак, якщо ви створюєте чат OnionShare і безпечно надсилаєте адресу лише"
"невеликій групі надійних друзів за допомогою зашифрованих повідомлень, то ви " " невеликій групі надійних друзів за допомогою зашифрованих повідомлень, "
"можете бути обґрунтовано впевнені, що люди, які приєднуються до чату, є " "то ви можете бути обґрунтовано впевнені, що люди, які приєднуються до "
"вашими друзями." "чату, є вашими друзями."
#: ../../source/features.rst:139 #: ../../source/features.rst:150
msgid "How is this useful?" msgid "How is this useful?"
msgstr "Чим це корисно?" msgstr "Чим це корисно?"
#: ../../source/features.rst:141 #: ../../source/features.rst:152
msgid "" msgid ""
"If you need to already be using an encrypted messaging app, what's the " "If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces." "point of an OnionShare chat room to begin with? It leaves less traces."
@ -472,7 +498,7 @@ msgstr ""
"повідомленнями, то який сенс спілкування в OnionShare? Він залишає менше " "повідомленнями, то який сенс спілкування в OnionShare? Він залишає менше "
"слідів." "слідів."
#: ../../source/features.rst:143 #: ../../source/features.rst:154
msgid "" msgid ""
"If you for example send a message to a Signal group, a copy of your " "If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the devices, and computers if they set up" "message ends up on each device (the devices, and computers if they set up"
@ -485,14 +511,14 @@ msgid ""
msgstr "" msgstr ""
"Наприклад, якщо ви надсилаєте повідомлення до групи в Signal, копія " "Наприклад, якщо ви надсилаєте повідомлення до групи в Signal, копія "
"повідомлення потрапляє на кожен пристрій (телефони та комп’ютери, якщо на" "повідомлення потрапляє на кожен пристрій (телефони та комп’ютери, якщо на"
"них встановлено Signal для комп'ютерів) кожного з учасників групи. Навіть " " них встановлено Signal для комп'ютерів) кожного з учасників групи. "
"якщо ввімкнено зникання повідомлень, важко впевнитися, що всі копії " "Навіть якщо ввімкнено зникання повідомлень, важко впевнитися, що всі "
"повідомлень було фактично видалено з усіх пристроїв та з будь-яких інших " "копії повідомлень було фактично видалено з усіх пристроїв та з будь-яких "
"місць (наприклад, баз даних сповіщень), до яких вони могли бути збережені. " "інших місць (наприклад, баз даних сповіщень), до яких вони могли бути "
"Кімнати чатів OnionShare ніде не зберігають жодних повідомлень, тож проблему " "збережені. Кімнати чатів OnionShare ніде не зберігають жодних "
"мінімізовано." "повідомлень, тож проблему мінімізовано."
#: ../../source/features.rst:146 #: ../../source/features.rst:157
msgid "" msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat " "OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any " "anonymously and securely with someone without needing to create any "
@ -501,17 +527,18 @@ msgid ""
"journalist to join the chat room, all without compromosing their " "journalist to join the chat room, all without compromosing their "
"anonymity." "anonymity."
msgstr "" msgstr ""
"Кімнати чатів OnionShare також можуть бути корисними для людей, які хочуть " "Кімнати чатів OnionShare також можуть бути корисними для людей, які "
"анонімно та безпечно спілкуватися з кимось, не створюючи жодних облікових " "хочуть анонімно та безпечно спілкуватися з кимось, не створюючи жодних "
"записів. Наприклад, джерело може надіслати журналісту адресу OnionShare за " "облікових записів. Наприклад, джерело може надіслати журналісту адресу "
"допомогою одноразової адреси електронної пошти, а потім зачекати, поки " "OnionShare за допомогою одноразової адреси електронної пошти, а потім "
"журналіст приєднається до чату і все це без шкоди для їхньої анонімности." "зачекати, поки журналіст приєднається до чату і все це без шкоди для "
"їхньої анонімности."
#: ../../source/features.rst:150 #: ../../source/features.rst:161
msgid "How does the encryption work?" msgid "How does the encryption work?"
msgstr "Як працює шифрування?" msgstr "Як працює шифрування?"
#: ../../source/features.rst:152 #: ../../source/features.rst:163
msgid "" msgid ""
"Because OnionShare relies on Tor onion services, connections between the " "Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@ -522,11 +549,11 @@ msgid ""
msgstr "" msgstr ""
"Оскільки OnionShare покладається на onion служби Tor, з’єднання між Tor " "Оскільки OnionShare покладається на onion служби Tor, з’єднання між Tor "
"Browser та OnionShare захищено наскрізним шифруванням (E2EE). Коли хтось " "Browser та OnionShare захищено наскрізним шифруванням (E2EE). Коли хтось "
"публікує повідомлення в кімнаті чату OnionShare, він надсилає його на сервер " "публікує повідомлення в кімнаті чату OnionShare, він надсилає його на "
"через E2EE onion з'єднання, який потім надсилає його всім іншим учасникам " "сервер через E2EE onion з'єднання, який потім надсилає його всім іншим "
"чату за допомогою WebSockets через їхні E2EE onion з'єднання." "учасникам чату за допомогою WebSockets через їхні E2EE onion з'єднання."
#: ../../source/features.rst:154 #: ../../source/features.rst:165
msgid "" msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on" "OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead." " the Tor onion service's encryption instead."
@ -732,3 +759,53 @@ msgstr ""
#~ "могли бути збережені. Чати OnionShare " #~ "могли бути збережені. Чати OnionShare "
#~ "ніде не зберігають жодних повідомлень, " #~ "ніде не зберігають жодних повідомлень, "
#~ "тому це не проблема." #~ "тому це не проблема."
#~ msgid "Receive Files"
#~ msgstr "Отримання файлів"
#~ msgid ""
#~ "You can use OnionShare to let "
#~ "people anonymously upload files directly "
#~ "to your computer, essentially turning it"
#~ " into an anonymous dropbox. Open a"
#~ " \"Receive tab\", choose where you "
#~ "want to save the files and other"
#~ " settings, and then click \"Start "
#~ "Receive Mode\"."
#~ msgstr ""
#~ "Ви можете користуватися OnionShare, щоб "
#~ "дозволити людям анонімно завантажувати файли"
#~ " безпосередньо на ваш комп’ютер, по "
#~ "суті, перетворивши його на анонімну "
#~ "скриньку. Відкрийте вкладку «Отримання», "
#~ "виберіть, куди потрібно завантажувати файли,"
#~ " та інші параметри, а потім натисніть"
#~ " «Запустити режим отримання»."
#~ msgid ""
#~ "This starts the OnionShare service. "
#~ "Anyone loading this address in their "
#~ "Tor Browser will be able to upload"
#~ " files to your computer."
#~ msgstr ""
#~ "Запуститься служба OnionShare. Будь-хто, хто"
#~ " завантажить цю адресу в Tor Browser,"
#~ " зможе завантажувати файли на ваш "
#~ "комп’ютер."
#~ msgid ""
#~ "When someone uploads files to your "
#~ "receive service, by default they get "
#~ "saved to a folder called ``OnionShare``"
#~ " in the home folder on your "
#~ "computer, automatically organized into "
#~ "separate subfolders based on the time"
#~ " that the files get uploaded."
#~ msgstr ""
#~ "Коли хтось завантажує файли до вашої "
#~ "служби отримання, типово вони зберігаються "
#~ "у теці з назвою ``OnionShare`` у "
#~ "вашій домашній теці вашого комп'ютера та"
#~ " автоматично впорядковуються до окремих "
#~ "підтек за часом завантаження файлів."

View file

@ -1,6 +1,6 @@
name: onionshare name: onionshare
base: core18 base: core18
version: '2.3.1' version: '2.3.2.dev1'
summary: Securely and anonymously share files, host websites, and chat using Tor summary: Securely and anonymously share files, host websites, and chat using Tor
description: | description: |
OnionShare lets you securely and anonymously send and receive files. It works by starting OnionShare lets you securely and anonymously send and receive files. It works by starting
@ -8,7 +8,7 @@ description: |
web address so others can download files from you, or upload files to you. It does _not_ web address so others can download files from you, or upload files to you. It does _not_
require setting up a separate server or using a third party file-sharing service. require setting up a separate server or using a third party file-sharing service.
grade: stable # must be 'stable' to release into candidate/stable channels grade: devel # stable or devel
confinement: strict confinement: strict
apps: apps:
@ -40,7 +40,7 @@ parts:
python-version: python3 python-version: python3
python-packages: python-packages:
- psutil - psutil
- pyside2==5.15.1 - pyside2==5.15.2
- qrcode - qrcode
stage-packages: stage-packages:
- libasound2 - libasound2
@ -127,8 +127,8 @@ parts:
after: [tor, obfs4] after: [tor, obfs4]
tor: tor:
source: https://dist.torproject.org/tor-0.4.5.6.tar.gz source: https://dist.torproject.org/tor-0.4.5.7.tar.gz
source-checksum: sha256/22cba3794fedd5fa87afc1e512c6ce2c21bc20b4e1c6f8079d832dc1e545e733 source-checksum: sha256/447fcaaa133e2ef22427e98098a60a9c495edf9ff3e0dd13f484b9ad0185f074
source-type: tar source-type: tar
plugin: autotools plugin: autotools
build-packages: build-packages: