diff --git a/.circleci/config.yml b/.circleci/config.yml index b9938c28..47d6340f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ workflows: jobs: test-cli: docker: - - image: circleci/python:3.8-buster + - image: circleci/python:3.9-bullseye working_directory: ~/repo @@ -37,7 +37,7 @@ jobs: test-gui: docker: - - image: circleci/python:3.8-buster + - image: circleci/python:3.9-bullseye working_directory: ~/repo @@ -50,16 +50,11 @@ jobs: sudo apt-get update sudo apt-get install -y tor obfs4proxy gcc python3-dev python3-pyside2.qtcore python3-pyside2.qtwidgets python3-pyside2.qtgui sudo apt-get install -y xvfb x11-utils libxkbcommon-x11-0 libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-render-util0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 - cd ~/repo/cli - poetry install - poetry build - cp dist/onionshare_cli-*.whl ~/repo/desktop cd ~/repo/desktop - pip install briefcase pytest pytest-briefcase pytest-faulthandler pytest-qt pytest-xvfb - pip install $(python -c 'import toml; print(" ".join(toml.loads(open("pyproject.toml").read())["tool"]["briefcase"]["app"]["onionshare"]["requires"]))') + poetry install - run: name: Run tests command: | cd ~/repo/desktop - ./tests/run.sh + xvfb-run poetry run ./tests/run.sh diff --git a/.gitignore b/.gitignore index c96d9d1d..00bd6ab4 100644 --- a/.gitignore +++ b/.gitignore @@ -59,10 +59,4 @@ venv # other .vscode onionshare.dist-info -desktop/src/onionshare/resources/tor -desktop/*.whl -desktop/linux -desktop/windows -desktop/macOS -# gets added automatically when building for Windows or macOS -desktop/include \ No newline at end of file +desktop/onionshare/resources/tor diff --git a/CHANGELOG.md b/CHANGELOG.md index 442f688f..ce455a45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # OnionShare Changelog +## 2.5 + +* Security fix: Sanitize the path parameter in History item widget to be plain text +* Security fix: Use microseconds in Receive mode directory creation to avoid potential DoS +* Security fix: Several hardening improvements for session and username management in Chat mode, to prevent impersonation and other issues +* Major feature: Obtain bridges from Moat / BridgeDB (over a domain-fronted Meek client) +* Major feature: Snowflake bridge support +* New feature: Tor connection settings, as well as general settings, are now Tabs rather than dialogs +* New feature: User can customize the Content-Security-Policy header in Website mode +* New feature: Built-in bridges are automatically updated from Tor's API when the user has chosen to use them +* Switch to using our `stem` fork called `cepa`, which is now published on Pypi so we can build it in releases +* Various bug fixes + ## 2.4 * Major feature: Private keys (v3 onion client authentication) replaces passwords and HTTP basic auth diff --git a/LICENSE b/LICENSE index d6405d0e..41232270 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ (Note: Third-party licenses can be found under licenses/.) OnionShare -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 diff --git a/RELEASE.md b/RELEASE.md index 0332d8ea..76c33a4b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -7,11 +7,10 @@ Unless you're a core OnionShare developer making a release, you'll probably neve Before making a release, you must update the version in these places: - [ ] `cli/pyproject.toml` -- [ ] `cli/setup.py` - [ ] `cli/onionshare_cli/resources/version.txt` -- [ ] `desktop/pyproject.toml` (under `version` and **don't forget** the `./onionshare_cli-$VERSION-py3-none-any.whl` dependency) -- [ ] `desktop/src/setup.py` -- [ ] `desktop/src/org.onionshare.OnionShare.appdata.xml` +- [ ] `desktop/pyproject.toml` +- [ ] `desktop/setup.py` +- [ ] `desktop/org.onionshare.OnionShare.appdata.xml` - [ ] `docs/source/conf.py` (`version` at the top, and the `versions` list too) - [ ] `snap/snapcraft.yaml` @@ -19,6 +18,7 @@ If you update `flask-socketio`, ensure that you also update the [socket.io.min.j Use tor binaries from the latest Tor Browser: +- [ ] `desktop/scripts/get-tor-linux.py` - [ ] `desktop/scripts/get-tor-osx.py` - [ ] `desktop/scripts/get-tor-windows.py` @@ -43,13 +43,13 @@ Finalize localization: You also must edit these files: -- [ ] `desktop/src/org.onionshare.OnionShare.appdata.xml` should have the correct release date, and links to correct screenshots +- [ ] `desktop/org.onionshare.OnionShare.appdata.xml` should have the correct release date, and links to correct screenshots - [ ] `CHANGELOG.md` should be updated to include a list of all major changes since the last release Make sure snapcraft packaging works. In `snap/snapcraft.yaml`: - [ ] The `tor`, `libevent`, and `obfs4` parts should be updated if necessary -- [ ] All python packages should be updated to match `cli/pyproject.toml` and `desktop/pyproject.toml` +- [ ] All python packages in the `onionshare` part should be updated to match `desktop/pyproject.toml` - [ ] Test the snap package, ensure it works Finally: @@ -79,10 +79,10 @@ Build and test the snap before publishing (note that `--dangerous` lets you inst ```sh snapcraft -snap install --dangerous ./onionshare_$VERSION_amd64.snap +snap install --dangerous ./onionshare_${VERSION}_amd64.snap ``` -This will create `onionshare_$VERSION_amd64.snap`. +This will create `onionshare_${VERSION}_amd64.snap`. Run the OnionShare snap locally: @@ -95,72 +95,44 @@ Upload the to Snapcraft: ```sh snapcraft login -snapcraft upload --release=stable onionshare_$VERSION_amd64.snap -``` - -## Linux AppImage release - -_Note: AppImage packages are currently broken due to [this briefcase bug](https://github.com/beeware/briefcase/issues/504). Until it's fixed, OnionShare for Linux will only be available in Flatpak and Snapcraft._ - -Set up the development environment described in `README.md`. - -Make sure your virtual environment is active: - -```sh -. venv/bin/activate -``` - -Run the AppImage build script: - -```sh -./package/linux/build-appimage.py +snapcraft upload --release=stable onionshare_${VERSION}_amd64.snap ``` ## Windows -Set up the development environment described in `README.md`. And install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) and add `C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86` to your path. +Set up the development environment described in desktop `README.md`. -Make sure your virtual environment is active: - -``` -venv\Scripts\activate.bat -``` +- To get `signtool.exe`, install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) and add `C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86` to your path. +- Go to https://dotnet.microsoft.com/download/dotnet-framework and download and install .NET Framework 3.5 SP1 Runtime. I downloaded `dotnetfx35.exe`. +- Go to https://wixtoolset.org/releases/ and download and install WiX toolset. I downloaded `wix311.exe`. Add `C:\Program Files (x86)\WiX Toolset v3.11\bin` to the path. Run the Windows build script: ``` -python package\windows\build.py +poetry run python .\package\build-windows.py ``` -This will create `desktop/windows/OnionShare-$VERSION.msi`, signed. +This will create `desktop/dist/OnionShare-$VERSION.msi`, signed. ## macOS -Set up the development environment described in `README.md`. And install `create-dmg`: +Set up the development environment described in `README.md`. + +Then build an executable, make it a macOS app bundle, and package it in a dmg: ```sh -brew install create-dmg +poetry run ./package/build-mac.py ``` -Make sure your virtual environment is active: - -```sh -. venv/bin/activate -``` - -Run the macOS build script: - -```sh -./package/macos/build.py --with-codesign -``` +The will create `dist/OnionShare-$VERSION.dmg`. Now, notarize the release. You must have an app-specific Apple ID password saved in the login keychain called `onionshare-notarize`. -- Notarize it: `xcrun altool --notarize-app --primary-bundle-id "com.micahflee.onionshare" -u "micah@micahflee.com" -p "@keychain:onionshare-notarize" --file macOS/OnionShare.dmg` +- Notarize it: `xcrun altool --notarize-app --primary-bundle-id "com.micahflee.onionshare" -u "micah@micahflee.com" -p "@keychain:onionshare-notarize" --file dist/OnionShare-$VERSION.dmg` - Wait for it to get approved, check status with: `xcrun altool --notarization-history 0 -u "micah@micahflee.com" -p "@keychain:onionshare-notarize"` -- After it's approved, staple the ticket: `xcrun stapler staple macOS/OnionShare.dmg` +- After it's approved, staple the ticket: `xcrun stapler staple dist/OnionShare-$VERSION.dmg` -This will create `desktop/macOS/OnionShare.dmg`, signed and notarized. +This will create `desktop/dist/OnionShare-$VERSION.dmg`, signed and notarized. ## Source package @@ -174,7 +146,7 @@ This will create `dist/onionshare-$VERSION.tar.gz`. After following all of the previous steps, gather these files: -- `onionshare_$VERSION_amd64.snap` +- `onionshare_${VERSION}_amd64.snap` - `OnionShare-$VERSION.msi` - `OnionShare.dmg` (rename it to `OnionShare-$VERSION.dmg`) - `onionshare-$VERSION.tar.gz` diff --git a/cli/README.md b/cli/README.md index bfc287be..12a157e3 100644 --- a/cli/README.md +++ b/cli/README.md @@ -97,11 +97,3 @@ To run tests: ```sh poetry run pytest -v ./tests ``` - -## Build a wheel package - -```sh -poetry build -``` - -This will create `dist/onionshare_cli-$VERSION-py3-none-any.whl`. diff --git a/cli/onionshare_cli/__init__.py b/cli/onionshare_cli/__init__.py index ded67ed6..f77bceab 100644 --- a/cli/onionshare_cli/__init__.py +++ b/cli/onionshare_cli/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/cli/onionshare_cli/censorship.py b/cli/onionshare_cli/censorship.py index ee013cca..4ab5c366 100644 --- a/cli/onionshare_cli/censorship.py +++ b/cli/onionshare_cli/censorship.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/cli/onionshare_cli/common.py b/cli/onionshare_cli/common.py index 3d918fa0..ceec654d 100644 --- a/cli/onionshare_cli/common.py +++ b/cli/onionshare_cli/common.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -329,23 +329,49 @@ class Common: tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip") tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6") elif self.platform == "Windows": + # In Windows, the Tor binaries are in the onionshare package, not the onionshare_cli package base_path = self.get_resource_path("tor") + base_path = base_path.replace("onionshare_cli", "onionshare") tor_path = os.path.join(base_path, "Tor", "tor.exe") + + # If tor.exe isn't there, mayber we're running from the source tree + if not os.path.exists(tor_path): + base_path = os.path.join(os.getcwd(), "onionshare", "resources", "tor") + + tor_path = os.path.join(base_path, "Tor", "tor.exe") + if not os.path.exists(tor_path): + raise CannotFindTor() + obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe") snowflake_file_path = os.path.join(base_path, "Tor", "snowflake-client.exe") meek_client_file_path = os.path.join(base_path, "Tor", "meek-client.exe") tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip") tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6") + elif self.platform == "Darwin": - tor_path = shutil.which("tor") - if not tor_path: - raise CannotFindTor() - obfs4proxy_file_path = shutil.which("obfs4proxy") - snowflake_file_path = shutil.which("snowflake-client") - meek_client_file_path = shutil.which("meek-client") - prefix = os.path.dirname(os.path.dirname(tor_path)) - tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip") - tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6") + # Let's see if we have tor binaries in the onionshare GUI package + base_path = self.get_resource_path("tor") + base_path = base_path.replace("onionshare_cli", "onionshare") + tor_path = os.path.join(base_path, "tor") + if os.path.exists(tor_path): + obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy") + snowflake_file_path = os.path.join(base_path, "snowflake-client") + meek_client_file_path = os.path.join(base_path, "meek-client") + tor_geo_ip_file_path = os.path.join(base_path, "geoip") + tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6") + else: + # Fallback to looking in the path + tor_path = shutil.which("tor") + if not os.path.exists(tor_path): + raise CannotFindTor() + + obfs4proxy_file_path = shutil.which("obfs4proxy") + snowflake_file_path = shutil.which("snowflake-client") + meek_client_file_path = shutil.which("meek-client") + prefix = os.path.dirname(os.path.dirname(tor_path)) + tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip") + tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6") + elif self.platform == "BSD": tor_path = "/usr/local/bin/tor" tor_geo_ip_file_path = "/usr/local/share/tor/geoip" diff --git a/cli/onionshare_cli/meek.py b/cli/onionshare_cli/meek.py index 3ada19c7..777c0ab6 100644 --- a/cli/onionshare_cli/meek.py +++ b/cli/onionshare_cli/meek.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/cli/onionshare_cli/mode_settings.py b/cli/onionshare_cli/mode_settings.py index b94b1d25..90bcaf07 100644 --- a/cli/onionshare_cli/mode_settings.py +++ b/cli/onionshare_cli/mode_settings.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -55,12 +55,8 @@ class ModeSettings: "disable_text": False, "disable_files": False, }, - "website": { - "disable_csp": False, - "custom_csp": None, - "filenames": [] - }, - "chat": {"room": "default"}, + "website": {"disable_csp": False, "custom_csp": None, "filenames": []}, + "chat": {}, } self._settings = {} diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py index ba9e2e77..6ef4af2c 100644 --- a/cli/onionshare_cli/onion.py +++ b/cli/onionshare_cli/onion.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -414,6 +414,10 @@ class Onion(object): self.common.log("Onion", "connect", f"tor pid: {self.tor_proc.pid}") time.sleep(2) + return_code = self.tor_proc.poll() + if return_code != None: + self.common.log("Onion", "connect", f"tor process has terminated early: {return_code}") + # Connect to the controller self.common.log("Onion", "connect", "authenticating to tor controller") try: diff --git a/cli/onionshare_cli/onionshare.py b/cli/onionshare_cli/onionshare.py index 2bb22296..2d43cc6f 100644 --- a/cli/onionshare_cli/onionshare.py +++ b/cli/onionshare_cli/onionshare.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/cli/onionshare_cli/resources/static/js/chat.js b/cli/onionshare_cli/resources/static/js/chat.js index b4ef30df..88abf4f4 100644 --- a/cli/onionshare_cli/resources/static/js/chat.js +++ b/cli/onionshare_cli/resources/static/js/chat.js @@ -9,31 +9,25 @@ $(function () { ); // Store current username received from app context - var current_username = $('#username').val(); - - // On browser connect, emit a socket event to be added to - // room and assigned random username - socket.on('connect', function () { - socket.emit('joined', {}); - }); + var current_username = $('#username').val().trim(); // Triggered on any status change by any user, such as some // user joined, or changed username, or left, etc. socket.on('status', function (data) { - addMessageToRoom(data, current_username, 'status'); + addMessageToPanel(data, current_username, 'status'); console.log(data, current_username); }); // Triggered when message is received from a user. Even when sent // by self, it get triggered after the server sends back the emit. - socket.on('message', function (data) { - addMessageToRoom(data, current_username, 'chat'); + socket.on('chat_message', function (data) { + addMessageToPanel(data, current_username, 'chat'); console.log(data, current_username); }); // Triggered when disconnected either by server stop or timeout socket.on('disconnect', function (data) { - addMessageToRoom({ 'msg': 'The chat server is disconnected.' }, current_username, 'status'); + addMessageToPanel({ 'msg': 'The chat server is disconnected.' }, current_username, 'status'); }) socket.on('connect_error', function (error) { console.log("error"); @@ -66,7 +60,7 @@ $(function () { }); }); -var addMessageToRoom = function (data, current_username, messageType) { +var addMessageToPanel = function (data, current_username, messageType) { var scrollDiff = getScrollDiffBefore(); if (messageType === 'status') { addStatusMessage(data.msg); @@ -88,7 +82,7 @@ var emitMessage = function (socket) { var updateUsername = function (socket) { var username = $('#username').val(); - if (!checkUsernameExists(username) && !checkUsernameTooLong(username)) { + if (!checkUsernameExists(username) && !checkUsernameTooLong(username) && !checkUsernameAscii(username)) { $.ajax({ method: 'POST', url: `http://${document.domain}:${location.port}/update-session-username`, @@ -99,6 +93,8 @@ var updateUsername = function (socket) { console.log(response); if (response.success && response.username == username) { socket.emit('update_username', { username: username }); + } else { + addStatusMessage("Failed to update username.") } }); return username; @@ -121,6 +117,16 @@ var createUserListHTML = function (connected_users, current_user) { return userListHTML; } +var checkUsernameAscii = function (username) { + // ASCII characters have code points in the range U+0000-U+007F. + $('#username-error').text(''); + if (!/^[\u0000-\u007f]*$/.test(username)) { + $('#username-error').text('Non-ASCII usernames are not supported.'); + return true; + } + return false; +} + var checkUsernameExists = function (username) { $('#username-error').text(''); var userMatches = $('#user-list li').filter(function () { diff --git a/cli/onionshare_cli/resources/torrc_template-meek_lite_azure b/cli/onionshare_cli/resources/torrc_template-meek_lite_azure index cbc5a9ee..ff67f518 100644 --- a/cli/onionshare_cli/resources/torrc_template-meek_lite_azure +++ b/cli/onionshare_cli/resources/torrc_template-meek_lite_azure @@ -1,2 +1,2 @@ -# Enable built-in meek-azure bridge -Bridge meek_lite 0.0.2.0:3 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com +# Enable built-in meek bridge +Bridge meek_lite 0.0.2.0:2 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com diff --git a/cli/onionshare_cli/resources/torrc_template-obfs4 b/cli/onionshare_cli/resources/torrc_template-obfs4 index 4ea90134..adf343de 100644 --- a/cli/onionshare_cli/resources/torrc_template-obfs4 +++ b/cli/onionshare_cli/resources/torrc_template-obfs4 @@ -1,16 +1,16 @@ -# Enable built-in obfs4-bridge -Bridge obfs4 38.229.33.83:80 0BAC39417268B96B9F514E7F63FA6FBA1A788955 cert=VwEFpk9F/UN9JED7XpG1XOjm/O8ZCXK80oPecgWnNDZDv5pdkhq1OpbAH0wNqOT6H6BmRQ iat-mode=1 -Bridge obfs4 193.11.166.194:27015 2D82C2E354D531A68469ADF7F878FA6060C6BACA cert=4TLQPJrTSaDffMK7Nbao6LC7G9OW/NHkUwIdjLSS3KYf0Nv4/nQiiI8dY2TcsQx01NniOg iat-mode=0 -Bridge obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0 -Bridge obfs4 146.57.248.225:22 10A6CD36A537FCE513A322361547444B393989F0 cert=K1gDtDAIcUfeLqbstggjIw2rtgIKqdIhUlHp82XRqNSq/mtAjp1BIC9vHKJ2FAEpGssTPw iat-mode=0 -Bridge obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0 -Bridge obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0 -Bridge obfs4 209.148.46.65:443 74FAD13168806246602538555B5521A0383A1875 cert=ssH+9rP8dG2NLDN2XuFw63hIO/9MNNinLmxQDpVa+7kTOa9/m+tGWT1SmSYpQ9uTBGa6Hw iat-mode=0 -Bridge obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0 -Bridge obfs4 38.229.1.78:80 C8CBDB2464FC9804A69531437BCF2BE31FDD2EE4 cert=Hmyfd2ev46gGY7NoVxA9ngrPF2zCZtzskRTzoWXbxNkzeVnGFPWmrTtILRyqCTjHR+s9dg iat-mode=1 -Bridge obfs4 193.11.166.194:27025 1AE2C08904527FEA90C4C4F8C1083EA59FBC6FAF cert=ItvYZzW5tn6v3G4UnQa6Qz04Npro6e81AP70YujmK/KXwDFPTs3aHXcHp4n8Vt6w/bv8cA iat-mode=0 -Bridge obfs4 193.11.166.194:27020 86AC7B8D430DAC4117E9F42C9EAED18133863AAF cert=0LDeJH4JzMDtkJJrFphJCiPqKx7loozKN7VNfuukMGfHO0Z8OGdzHVkhVAOfo1mUdv9cMg iat-mode=0 -Bridge obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0 +# Enable built-in obfs4 bridge Bridge obfs4 144.217.20.138:80 FB70B257C162BF1038CA669D568D76F5B7F0BABB cert=vYIV5MgrghGQvZPIi1tJwnzorMgqgmlKaB77Y3Z9Q/v94wZBOAXkW+fdx4aSxLVnKO+xNw iat-mode=0 +Bridge obfs4 146.57.248.225:22 10A6CD36A537FCE513A322361547444B393989F0 cert=K1gDtDAIcUfeLqbstggjIw2rtgIKqdIhUlHp82XRqNSq/mtAjp1BIC9vHKJ2FAEpGssTPw iat-mode=0 Bridge obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1 +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 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg 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 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0 +Bridge obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0 +Bridge obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0 +Bridge obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0 Bridge obfs4 [2a0c:4d80:42:702::1]:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0 diff --git a/cli/onionshare_cli/resources/torrc_template-snowflake b/cli/onionshare_cli/resources/torrc_template-snowflake index 20efe28c..06cb2734 100644 --- a/cli/onionshare_cli/resources/torrc_template-snowflake +++ b/cli/onionshare_cli/resources/torrc_template-snowflake @@ -1 +1,2 @@ +# Enable built-in snowflake bridge Bridge snowflake 0.0.3.0:1 2B280B23E1107BB62ABFC40DDCC8824814F80A72 diff --git a/cli/onionshare_cli/resources/version.txt b/cli/onionshare_cli/resources/version.txt index 7208c218..68151b2e 100644 --- a/cli/onionshare_cli/resources/version.txt +++ b/cli/onionshare_cli/resources/version.txt @@ -1 +1 @@ -2.4 \ No newline at end of file +2.5 \ No newline at end of file diff --git a/cli/onionshare_cli/settings.py b/cli/onionshare_cli/settings.py index 473d8379..cab64681 100644 --- a/cli/onionshare_cli/settings.py +++ b/cli/onionshare_cli/settings.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -55,8 +55,8 @@ class Settings(object): # Dictionary of available languages in this version of OnionShare, # mapped to the language name, in that language self.available_locales = { - "ar": "العربية", # Arabic - "bn": "বাংলা", # Bengali + # "ar": "العربية", # Arabic + # "bn": "বাংলা", # Bengali # "ca": "Català", # Catalan # "zh_Hant": "正體中文 (繁體)", # Traditional Chinese "zh_Hans": "中文 (简体)", # Simplified Chinese @@ -64,28 +64,28 @@ class Settings(object): # "da": "Dansk", # Danish # "nl": "Nederlands", # Dutch "en": "English", # English - "fi": "Suomi", # Finnish - # "fr": "Français", # French + # "fi": "Suomi", # Finnish + "fr": "Français", # French "gl": "Galego", # Galician "de": "Deutsch", # German - # "el": "Ελληνικά", # Greek + "el": "Ελληνικά", # Greek "is": "Íslenska", # Icelandic # "id": "Bahasa Indonesia", # Indonesian # "ga": "Gaeilge", # Irish # "it": "Italiano", # Italian - # "ja": "日本語", # Japanese + "ja": "日本語", # Japanese # "ckb": "Soranî", # Kurdish (Central) - "lt": "Lietuvių Kalba", # Lithuanian - "nb_NO": "Norsk Bokmål", # Norwegian Bokmål + # "lt": "Lietuvių Kalba", # Lithuanian + # "nb_NO": "Norsk Bokmål", # Norwegian Bokmål # "fa": "فارسی", # Persian - "pl": "Polski", # Polish + # "pl": "Polski", # Polish "pt_BR": "Português (Brasil)", # Portuguese Brazil - # "pt_PT": "Português (Portugal)", # Portuguese Portugal + "pt_PT": "Português (Portugal)", # Portuguese Portugal # "ro": "Română", # Romanian "ru": "Русский", # Russian # "sr_Latn": "Srpska (latinica)", # Serbian (latin) # "sk": "Slovenčina", # Slovak - "sv": "Svenska", # Swedish + # "sv": "Svenska", # Swedish "es": "Español", # Spanish # "te": "తెలుగు", # Telugu "tr": "Türkçe", # Turkish diff --git a/cli/onionshare_cli/web/__init__.py b/cli/onionshare_cli/web/__init__.py index 3c7f4a51..24a08a19 100644 --- a/cli/onionshare_cli/web/__init__.py +++ b/cli/onionshare_cli/web/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/cli/onionshare_cli/web/chat_mode.py b/cli/onionshare_cli/web/chat_mode.py index e92ce385..5a11eedd 100644 --- a/cli/onionshare_cli/web/chat_mode.py +++ b/cli/onionshare_cli/web/chat_mode.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,7 +19,7 @@ along with this program. If not, see . """ from flask import request, render_template, make_response, jsonify, session -from flask_socketio import emit, join_room, leave_room +from flask_socketio import emit, ConnectionRefusedError class ChatModeWeb: @@ -33,7 +33,7 @@ class ChatModeWeb: self.web = web - # This tracks users in the room + # This tracks users in the server self.connected_users = [] # This tracks the history id @@ -47,6 +47,15 @@ class ChatModeWeb: self.define_routes() + def validate_username(self, username): + username = username.strip() + return ( + username + and username.isascii() + and username not in self.connected_users + and len(username) < 128 + ) + def define_routes(self): """ The web app routes for chatting @@ -61,7 +70,6 @@ class ChatModeWeb: if session.get("name") else self.common.build_username() ) - session["room"] = self.web.settings.default_settings["chat"]["room"] self.web.add_request( request.path, {"id": history_id, "status_code": 200}, @@ -79,12 +87,9 @@ class ChatModeWeb: def update_session_username(): history_id = self.cur_history_id data = request.get_json() - if ( - data.get("username", "") - and data.get("username", "") not in self.connected_users - and len(data.get("username", "")) < 128 - ): - session["name"] = data.get("username", session.get("name")) + username = data.get("username", session.get("name")).strip() + if self.validate_username(username): + session["name"] = username self.web.add_request( request.path, {"id": history_id, "status_code": 200}, @@ -111,67 +116,75 @@ class ChatModeWeb: ) return r - @self.web.socketio.on("joined", namespace="/chat") - def joined(message): + @self.web.socketio.on("connect", namespace="/chat") + def server_connect(): """Sent by clients when they enter a room. A status message is broadcast to all people in the room.""" - self.connected_users.append(session.get("name")) - join_room(session.get("room")) - emit( - "status", - { - "username": session.get("name"), - "msg": "{} has joined.".format(session.get("name")), - "connected_users": self.connected_users, - "user": session.get("name"), - }, - room=session.get("room"), - ) + if self.validate_username(session.get("name")): + self.connected_users.append(session.get("name")) + emit( + "status", + { + "username": session.get("name"), + "msg": "{} has joined.".format(session.get("name")), + "connected_users": self.connected_users, + "user": session.get("name"), + }, + broadcast=True, + ) + else: + raise ConnectionRefusedError('You are active from another session!') @self.web.socketio.on("text", namespace="/chat") def text(message): """Sent by a client when the user entered a new message. - The message is sent to all people in the room.""" + The message is sent to all people in the server.""" emit( - "message", + "chat_message", {"username": session.get("name"), "msg": message["msg"]}, - room=session.get("room"), + broadcast=True, ) @self.web.socketio.on("update_username", namespace="/chat") def update_username(message): """Sent by a client when the user updates their username. - The message is sent to all people in the room.""" + The message is sent to all people in the server.""" current_name = session.get("name") - if message.get("username", ""): - session["name"] = message["username"] + new_name = message.get("username", "").strip() + if self.validate_username(new_name): + session["name"] = new_name self.connected_users[ self.connected_users.index(current_name) ] = session.get("name") - emit( - "status", - { - "msg": "{} has updated their username to: {}".format( - current_name, session.get("name") - ), - "connected_users": self.connected_users, - "old_name": current_name, - "new_name": session.get("name"), - }, - room=session.get("room"), - ) + emit( + "status", + { + "msg": "{} has updated their username to: {}".format( + current_name, session.get("name") + ), + "connected_users": self.connected_users, + "old_name": current_name, + "new_name": session.get("name"), + }, + broadcast=True, + ) + else: + emit( + "status", + {"msg": "Failed to update username."}, + ) @self.web.socketio.on("disconnect", namespace="/chat") def disconnect(): - """Sent by clients when they disconnect from a room. - A status message is broadcast to all people in the room.""" - self.connected_users.remove(session.get("name")) - leave_room(session.get("room")) + """Sent by clients when they disconnect. + A status message is broadcast to all people in the server.""" + if session.get("name") in self.connected_users: + self.connected_users.remove(session.get("name")) emit( "status", { "msg": "{} has left the room.".format(session.get("name")), "connected_users": self.connected_users, }, - room=session.get("room"), + broadcast=True, ) diff --git a/cli/onionshare_cli/web/receive_mode.py b/cli/onionshare_cli/web/receive_mode.py index 6b106d37..9ddf22ff 100644 --- a/cli/onionshare_cli/web/receive_mode.py +++ b/cli/onionshare_cli/web/receive_mode.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -378,7 +378,7 @@ class ReceiveModeRequest(Request): # Figure out what files should be saved now = datetime.now() date_dir = now.strftime("%Y-%m-%d") - time_dir = now.strftime("%H%M%S") + time_dir = now.strftime("%H%M%S%f") self.receive_mode_dir = os.path.join( self.web.settings.get("receive", "data_dir"), date_dir, time_dir ) diff --git a/cli/onionshare_cli/web/send_base_mode.py b/cli/onionshare_cli/web/send_base_mode.py index d0fccf06..e608298b 100644 --- a/cli/onionshare_cli/web/send_base_mode.py +++ b/cli/onionshare_cli/web/send_base_mode.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/cli/onionshare_cli/web/share_mode.py b/cli/onionshare_cli/web/share_mode.py index 38f3f78d..f714081d 100644 --- a/cli/onionshare_cli/web/share_mode.py +++ b/cli/onionshare_cli/web/share_mode.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -189,7 +189,7 @@ class ShareModeWeb(SendBaseModeWeb): # and serve that use_gzip = self.should_use_gzip() if use_gzip: - file_to_download = self.gzip_file.name + file_to_download = self.gzip_filename self.filesize = self.gzip_filesize etag = self.gzip_etag else: @@ -492,20 +492,21 @@ class ShareModeWeb(SendBaseModeWeb): self.download_etag = make_etag(f) # Compress the file with gzip now, so we don't have to do it on each request - self.gzip_file = tempfile.NamedTemporaryFile( - "wb+", dir=self.common.build_tmp_dir() + self.gzip_tmp_dir = tempfile.TemporaryDirectory( + dir=self.common.build_tmp_dir() ) + self.gzip_filename = os.path.join(self.gzip_tmp_dir.name, "file.gz") self._gzip_compress( - self.download_filename, self.gzip_file.name, 6, processed_size_callback + self.download_filename, self.gzip_filename, 6, processed_size_callback ) - self.gzip_filesize = os.path.getsize(self.gzip_file.name) - with open(self.gzip_file.name, "rb") as f: + self.gzip_filesize = os.path.getsize(self.gzip_filename) + with open(self.gzip_filename, "rb") as f: self.gzip_etag = make_etag(f) self.is_zipped = False # Cleanup this tempfile - self.web.cleanup_tempfiles.append(self.gzip_file) + self.web.cleanup_tempdirs.append(self.gzip_tmp_dir) else: # Zip up the files and folders diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py index cf65b69e..64844b5c 100644 --- a/cli/onionshare_cli/web/web.py +++ b/cli/onionshare_cli/web/web.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . """ import logging +import mimetypes import os import queue import requests @@ -80,6 +81,16 @@ class Web: self.settings = mode_settings + # Flask guesses the MIME type of files from a database on the operating + # system. + # Some operating systems, or applications that can modify the database + # (such as the Windows Registry) can treat .js files as text/plain, + # which breaks the chat app due to X-Content-Type-Options: nosniff. + # + # It's probably #notourbug but we can fix it by forcing the mimetype. + # https://github.com/onionshare/onionshare/issues/1443 + mimetypes.add_type("text/javascript", ".js") + # The flask app self.app = Flask( __name__, @@ -151,7 +162,12 @@ class Web: elif self.mode == "website": self.website_mode = WebsiteModeWeb(self.common, self) elif self.mode == "chat": - self.socketio = SocketIO() + if self.common.verbose: + self.socketio = SocketIO( + async_mode="gevent", logger=True, engineio_logger=True + ) + else: + self.socketio = SocketIO(async_mode="gevent") self.socketio.init_app(self.app) self.chat_mode = ChatModeWeb(self.common, self) diff --git a/cli/onionshare_cli/web/website_mode.py b/cli/onionshare_cli/web/website_mode.py index 5ab1b184..1f61532b 100644 --- a/cli/onionshare_cli/web/website_mode.py +++ b/cli/onionshare_cli/web/website_mode.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/cli/poetry.lock b/cli/poetry.lock index 966aea84..4673aa52 100644 --- a/cli/poetry.lock +++ b/cli/poetry.lock @@ -8,17 +8,17 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "attrs" -version = "21.2.0" +version = "21.4.0" description = "Classes Without Boilerplate" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] [[package]] name = "bidict" @@ -57,7 +57,7 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "2.0.7" +version = "2.0.10" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false @@ -99,7 +99,7 @@ trio = ["trio (>=0.14.0)", "sniffio (>=1.1)"] [[package]] name = "eventlet" -version = "0.32.0" +version = "0.33.0" description = "Highly concurrent networking library" category = "main" optional = false @@ -141,6 +141,38 @@ python-versions = "*" Flask = ">=0.9" python-socketio = ">=5.0.2" +[[package]] +name = "gevent" +version = "21.12.0" +description = "Coroutine-based network library" +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5" + +[package.dependencies] +cffi = {version = ">=1.12.2", markers = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\""} +greenlet = {version = ">=1.1.0,<2.0", markers = "platform_python_implementation == \"CPython\""} +"zope.event" = "*" +"zope.interface" = "*" + +[package.extras] +dnspython = ["dnspython (>=1.16.0,<2.0)", "idna"] +docs = ["repoze.sphinx.autointerface", "sphinxcontrib-programoutput", "zope.schema"] +monitor = ["psutil (>=5.7.0)"] +recommended = ["cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "backports.socketpair", "psutil (>=5.7.0)"] +test = ["requests", "objgraph", "cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "futures", "mock", "backports.socketpair", "contextvars (==2.4)", "coverage (>=5.0)", "coveralls (>=1.7.0)", "psutil (>=5.7.0)"] + +[[package]] +name = "gevent-websocket" +version = "0.10.1" +description = "Websocket handler for the gevent pywsgi server, a Python network library" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +gevent = "*" + [[package]] name = "greenlet" version = "1.1.2" @@ -162,7 +194,7 @@ python-versions = ">=3.5" [[package]] name = "importlib-metadata" -version = "4.8.2" +version = "4.8.3" description = "Read metadata from Python packages" category = "dev" optional = false @@ -217,14 +249,14 @@ python-versions = ">=3.6" [[package]] name = "packaging" -version = "21.2" +version = "21.3" description = "Core utilities for Python packages" category = "dev" optional = false python-versions = ">=3.6" [package.dependencies] -pyparsing = ">=2.0.2,<3" +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pluggy" @@ -243,7 +275,7 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "psutil" -version = "5.8.0" +version = "5.9.0" description = "Cross-platform lib for process and system monitoring in Python." category = "main" optional = false @@ -270,15 +302,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pynacl" -version = "1.4.0" +version = "1.5.0" description = "Python binding to the Networking and Cryptography (NaCl) library" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" [package.dependencies] cffi = ">=1.4.1" -six = "*" [package.extras] docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"] @@ -286,11 +317,14 @@ tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"] [[package]] name = "pyparsing" -version = "2.4.7" +version = "3.0.6" description = "Python parsing module" category = "dev" optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = ">=3.6" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pysocks" @@ -324,7 +358,7 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm [[package]] name = "python-engineio" -version = "4.3.0" +version = "4.3.1" description = "Engine.IO server and client for Python" category = "main" optional = false @@ -336,7 +370,7 @@ client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] [[package]] name = "python-socketio" -version = "5.5.0" +version = "5.5.1" description = "Socket.IO server and client for Python" category = "main" optional = false @@ -352,7 +386,7 @@ client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] [[package]] name = "requests" -version = "2.26.0" +version = "2.27.1" description = "Python HTTP for Humans." category = "main" optional = false @@ -387,7 +421,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "typing-extensions" -version = "4.0.0" +version = "4.0.1" description = "Backported and Experimental Type Hints for Python 3.6+" category = "dev" optional = false @@ -403,7 +437,7 @@ python-versions = ">=3.5" [[package]] name = "urllib3" -version = "1.26.7" +version = "1.26.8" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false @@ -438,10 +472,35 @@ python-versions = ">=3.6" docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] +[[package]] +name = "zope.event" +version = "4.5.0" +description = "Very basic event publishing system" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +docs = ["sphinx"] +test = ["zope.testrunner"] + +[[package]] +name = "zope.interface" +version = "5.4.0" +description = "Interfaces for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +docs = ["sphinx", "repoze.sphinx.autointerface"] +test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] +testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] + [metadata] lock-version = "1.1" python-versions = "^3.6" -content-hash = "b6700c9652a3292f2ab3153544c46ed78c75fc9b65c15fcf4e3c243f841565dd" +content-hash = "064aff40554c171d65c246432baaa66bc6775cad7c69c6524e927d233f1880b4" [metadata.files] atomicwrites = [ @@ -449,8 +508,8 @@ atomicwrites = [ {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, ] attrs = [ - {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, - {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] bidict = [ {file = "bidict-0.21.4-py3-none-any.whl", hash = "sha256:3ac67daa353ecf853a1df9d3e924f005e729227a60a8dbada31a4c31aba7f654"}, @@ -516,8 +575,8 @@ cffi = [ {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"}, ] charset-normalizer = [ - {file = "charset-normalizer-2.0.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"}, - {file = "charset_normalizer-2.0.7-py3-none-any.whl", hash = "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"}, + {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"}, + {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"}, ] click = [ {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, @@ -532,8 +591,8 @@ dnspython = [ {file = "dnspython-2.1.0.zip", hash = "sha256:e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4"}, ] eventlet = [ - {file = "eventlet-0.32.0-py2.py3-none-any.whl", hash = "sha256:a3a67b02f336e97a1894b277bc33b695831525758781eb024f4da00e75ce5e25"}, - {file = "eventlet-0.32.0.tar.gz", hash = "sha256:2f0bb8ed0dc0ab21d683975d5d8ab3c054d588ce61def9faf7a465ee363e839b"}, + {file = "eventlet-0.33.0-py2.py3-none-any.whl", hash = "sha256:d10a8fcc9e33381905d9873303fde96ebe3541c03fb795055d2c7347dce0639c"}, + {file = "eventlet-0.33.0.tar.gz", hash = "sha256:80144f489c1bb273a51b6f96ff9785a382d2866b9bab1f5bd748385019f4141f"}, ] flask = [ {file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"}, @@ -543,6 +602,45 @@ flask-socketio = [ {file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"}, {file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"}, ] +gevent = [ + {file = "gevent-21.12.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:2afa3f3ad528155433f6ac8bd64fa5cc303855b97004416ec719a6b1ca179481"}, + {file = "gevent-21.12.0-cp27-cp27m-win32.whl", hash = "sha256:177f93a3a90f46a5009e0841fef561601e5c637ba4332ab8572edd96af650101"}, + {file = "gevent-21.12.0-cp27-cp27m-win_amd64.whl", hash = "sha256:a5ad4ed8afa0a71e1927623589f06a9b5e8b5e77810be3125cb4d93050d3fd1f"}, + {file = "gevent-21.12.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:eae3c46f9484eaacd67ffcdf4eaf6ca830f587edd543613b0f5c4eb3c11d052d"}, + {file = "gevent-21.12.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e1899b921219fc8959ff9afb94dae36be82e0769ed13d330a393594d478a0b3a"}, + {file = "gevent-21.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c21cb5c9f4e14d75b3fe0b143ec875d7dbd1495fad6d49704b00e57e781ee0f"}, + {file = "gevent-21.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:542ae891e2aa217d2cf6d8446538fcd2f3263a40eec123b970b899bac391c47a"}, + {file = "gevent-21.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:0082d8a5d23c35812ce0e716a91ede597f6dd2c5ff508a02a998f73598c59397"}, + {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:da8d2d51a49b2a5beb02ad619ca9ddbef806ef4870ba04e5ac7b8b41a5b61db3"}, + {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cfff82f05f14b7f5d9ed53ccb7a609ae8604df522bb05c971bca78ec9d8b2b9"}, + {file = "gevent-21.12.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:7909780f0cf18a1fc32aafd8c8e130cdd93c6e285b11263f7f2d1a0f3678bc50"}, + {file = "gevent-21.12.0-cp36-cp36m-win32.whl", hash = "sha256:bb5cb8db753469c7a9a0b8a972d2660fe851aa06eee699a1ca42988afb0aaa02"}, + {file = "gevent-21.12.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c43f081cbca41d27fd8fef9c6a32cf83cb979345b20abc07bf68df165cdadb24"}, + {file = "gevent-21.12.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:74fc1ef16b86616cfddcc74f7292642b0f72dde4dd95aebf4c45bb236744be54"}, + {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc2fef0f98ee180704cf95ec84f2bc2d86c6c3711bb6b6740d74e0afe708b62c"}, + {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08b4c17064e28f4eb85604486abc89f442c7407d2aed249cf54544ce5c9baee6"}, + {file = "gevent-21.12.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:973749bacb7bc4f4181a8fb2a7e0e2ff44038de56d08e856dd54a5ac1d7331b4"}, + {file = "gevent-21.12.0-cp37-cp37m-win32.whl", hash = "sha256:6a02a88723ed3f0fd92cbf1df3c4cd2fbd87d82b0a4bac3e36a8875923115214"}, + {file = "gevent-21.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f289fae643a3f1c3b909d6b033e6921b05234a4907e9c9c8c3f1fe403e6ac452"}, + {file = "gevent-21.12.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:3baeeccc4791ba3f8db27179dff11855a8f9210ddd754f6c9b48e0d2561c2aea"}, + {file = "gevent-21.12.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05c5e8a50cd6868dd36536c92fb4468d18090e801bd63611593c0717bab63692"}, + {file = "gevent-21.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d86438ede1cbe0fde6ef4cc3f72bf2f1ecc9630d8b633ff344a3aeeca272cdd"}, + {file = "gevent-21.12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:01928770972181ad8866ee37ea3504f1824587b188fcab782ef1619ce7538766"}, + {file = "gevent-21.12.0-cp38-cp38-win32.whl", hash = "sha256:3c012c73e6c61f13c75e3a4869dbe6a2ffa025f103421a6de9c85e627e7477b1"}, + {file = "gevent-21.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:b7709c64afa8bb3000c28bb91ec42c79594a7cb0f322e20427d57f9762366a5b"}, + {file = "gevent-21.12.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ec21f9eaaa6a7b1e62da786132d6788675b314f25f98d9541f1bf00584ed4749"}, + {file = "gevent-21.12.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22ce1f38fdfe2149ffe8ec2131ca45281791c1e464db34b3b4321ae9d8d2efbb"}, + {file = "gevent-21.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ccffcf708094564e442ac6fde46f0ae9e40015cb69d995f4b39cc29a7643881"}, + {file = "gevent-21.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24d3550fbaeef5fddd794819c2853bca45a86c3d64a056a2c268d981518220d1"}, + {file = "gevent-21.12.0-cp39-cp39-win32.whl", hash = "sha256:2bcec9f80196c751fdcf389ca9f7141e7b0db960d8465ed79be5e685bfcad682"}, + {file = "gevent-21.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:3dad62f55fad839d498c801e139481348991cee6e1c7706041b5fe096cb6a279"}, + {file = "gevent-21.12.0-pp27-pypy_73-win_amd64.whl", hash = "sha256:9f9652d1e4062d4b5b5a0a49ff679fa890430b5f76969d35dccb2df114c55e0f"}, + {file = "gevent-21.12.0.tar.gz", hash = "sha256:f48b64578c367b91fa793bf8eaaaf4995cb93c8bc45860e473bf868070ad094e"}, +] +gevent-websocket = [ + {file = "gevent-websocket-0.10.1.tar.gz", hash = "sha256:7eaef32968290c9121f7c35b973e2cc302ffb076d018c9068d2f5ca8b2d85fb0"}, + {file = "gevent_websocket-0.10.1-py3-none-any.whl", hash = "sha256:17b67d91282f8f4c973eba0551183fc84f56f1c90c8f6b6b30256f31f66f5242"}, +] greenlet = [ {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"}, {file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"}, @@ -555,6 +653,7 @@ greenlet = [ {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497"}, {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1"}, {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58"}, + {file = "greenlet-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965"}, {file = "greenlet-1.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708"}, {file = "greenlet-1.1.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23"}, {file = "greenlet-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee"}, @@ -567,6 +666,7 @@ greenlet = [ {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce"}, {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08"}, {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168"}, + {file = "greenlet-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f"}, {file = "greenlet-1.1.2-cp36-cp36m-win32.whl", hash = "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa"}, {file = "greenlet-1.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d"}, {file = "greenlet-1.1.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4"}, @@ -575,6 +675,7 @@ greenlet = [ {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1"}, {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28"}, {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5"}, + {file = "greenlet-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe"}, {file = "greenlet-1.1.2-cp37-cp37m-win32.whl", hash = "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc"}, {file = "greenlet-1.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06"}, {file = "greenlet-1.1.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0"}, @@ -583,6 +684,7 @@ greenlet = [ {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43"}, {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711"}, {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b"}, + {file = "greenlet-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2"}, {file = "greenlet-1.1.2-cp38-cp38-win32.whl", hash = "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd"}, {file = "greenlet-1.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3"}, {file = "greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67"}, @@ -591,6 +693,7 @@ greenlet = [ {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88"}, {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b"}, {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3"}, + {file = "greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3"}, {file = "greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf"}, {file = "greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd"}, {file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"}, @@ -600,8 +703,8 @@ idna = [ {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] importlib-metadata = [ - {file = "importlib_metadata-4.8.2-py3-none-any.whl", hash = "sha256:53ccfd5c134223e497627b9815d5030edf77d2ed573922f7a0b8f8bb81a1c100"}, - {file = "importlib_metadata-4.8.2.tar.gz", hash = "sha256:75bdec14c397f528724c1bfd9709d660b33a4d2e77387a3358f20b848bb5e5fb"}, + {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"}, + {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"}, ] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, @@ -621,6 +724,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, @@ -632,6 +738,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, @@ -643,6 +752,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, @@ -655,6 +767,9 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, @@ -667,47 +782,54 @@ markupsafe = [ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, ] packaging = [ - {file = "packaging-21.2-py3-none-any.whl", hash = "sha256:14317396d1e8cdb122989b916fa2c7e9ca8e2be9e8060a6eff75b6b7b4d8a7e0"}, - {file = "packaging-21.2.tar.gz", hash = "sha256:096d689d78ca690e4cd8a89568ba06d07ca097e3306a4381635073ca91479966"}, + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] pluggy = [ {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, ] psutil = [ - {file = "psutil-5.8.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:0066a82f7b1b37d334e68697faba68e5ad5e858279fd6351c8ca6024e8d6ba64"}, - {file = "psutil-5.8.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ae6f386d8d297177fd288be6e8d1afc05966878704dad9847719650e44fc49c"}, - {file = "psutil-5.8.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:12d844996d6c2b1d3881cfa6fa201fd635971869a9da945cf6756105af73d2df"}, - {file = "psutil-5.8.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:02b8292609b1f7fcb34173b25e48d0da8667bc85f81d7476584d889c6e0f2131"}, - {file = "psutil-5.8.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:6ffe81843131ee0ffa02c317186ed1e759a145267d54fdef1bc4ea5f5931ab60"}, - {file = "psutil-5.8.0-cp27-none-win32.whl", hash = "sha256:ea313bb02e5e25224e518e4352af4bf5e062755160f77e4b1767dd5ccb65f876"}, - {file = "psutil-5.8.0-cp27-none-win_amd64.whl", hash = "sha256:5da29e394bdedd9144c7331192e20c1f79283fb03b06e6abd3a8ae45ffecee65"}, - {file = "psutil-5.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:74fb2557d1430fff18ff0d72613c5ca30c45cdbfcddd6a5773e9fc1fe9364be8"}, - {file = "psutil-5.8.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:74f2d0be88db96ada78756cb3a3e1b107ce8ab79f65aa885f76d7664e56928f6"}, - {file = "psutil-5.8.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:99de3e8739258b3c3e8669cb9757c9a861b2a25ad0955f8e53ac662d66de61ac"}, - {file = "psutil-5.8.0-cp36-cp36m-win32.whl", hash = "sha256:36b3b6c9e2a34b7d7fbae330a85bf72c30b1c827a4366a07443fc4b6270449e2"}, - {file = "psutil-5.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:52de075468cd394ac98c66f9ca33b2f54ae1d9bff1ef6b67a212ee8f639ec06d"}, - {file = "psutil-5.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c6a5fd10ce6b6344e616cf01cc5b849fa8103fbb5ba507b6b2dee4c11e84c935"}, - {file = "psutil-5.8.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:61f05864b42fedc0771d6d8e49c35f07efd209ade09a5afe6a5059e7bb7bf83d"}, - {file = "psutil-5.8.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:0dd4465a039d343925cdc29023bb6960ccf4e74a65ad53e768403746a9207023"}, - {file = "psutil-5.8.0-cp37-cp37m-win32.whl", hash = "sha256:1bff0d07e76114ec24ee32e7f7f8d0c4b0514b3fae93e3d2aaafd65d22502394"}, - {file = "psutil-5.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:fcc01e900c1d7bee2a37e5d6e4f9194760a93597c97fee89c4ae51701de03563"}, - {file = "psutil-5.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6223d07a1ae93f86451d0198a0c361032c4c93ebd4bf6d25e2fb3edfad9571ef"}, - {file = "psutil-5.8.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d225cd8319aa1d3c85bf195c4e07d17d3cd68636b8fc97e6cf198f782f99af28"}, - {file = "psutil-5.8.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:28ff7c95293ae74bf1ca1a79e8805fcde005c18a122ca983abf676ea3466362b"}, - {file = "psutil-5.8.0-cp38-cp38-win32.whl", hash = "sha256:ce8b867423291cb65cfc6d9c4955ee9bfc1e21fe03bb50e177f2b957f1c2469d"}, - {file = "psutil-5.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:90f31c34d25b1b3ed6c40cdd34ff122b1887a825297c017e4cbd6796dd8b672d"}, - {file = "psutil-5.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6323d5d845c2785efb20aded4726636546b26d3b577aded22492908f7c1bdda7"}, - {file = "psutil-5.8.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:245b5509968ac0bd179287d91210cd3f37add77dad385ef238b275bad35fa1c4"}, - {file = "psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:90d4091c2d30ddd0a03e0b97e6a33a48628469b99585e2ad6bf21f17423b112b"}, - {file = "psutil-5.8.0-cp39-cp39-win32.whl", hash = "sha256:ea372bcc129394485824ae3e3ddabe67dc0b118d262c568b4d2602a7070afdb0"}, - {file = "psutil-5.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:f4634b033faf0d968bb9220dd1c793b897ab7f1189956e1aa9eae752527127d3"}, - {file = "psutil-5.8.0.tar.gz", hash = "sha256:0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6"}, + {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"}, + {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"}, + {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:cb8d10461c1ceee0c25a64f2dd54872b70b89c26419e147a05a10b753ad36ec2"}, + {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:7641300de73e4909e5d148e90cc3142fb890079e1525a840cf0dfd39195239fd"}, + {file = "psutil-5.9.0-cp27-none-win32.whl", hash = "sha256:ea42d747c5f71b5ccaa6897b216a7dadb9f52c72a0fe2b872ef7d3e1eacf3ba3"}, + {file = "psutil-5.9.0-cp27-none-win_amd64.whl", hash = "sha256:ef216cc9feb60634bda2f341a9559ac594e2eeaadd0ba187a4c2eb5b5d40b91c"}, + {file = "psutil-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90a58b9fcae2dbfe4ba852b57bd4a1dded6b990a33d6428c7614b7d48eccb492"}, + {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d41f8b3e9ebb6b6110057e40019a432e96aae2008951121ba4e56040b84f3"}, + {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:742c34fff804f34f62659279ed5c5b723bb0195e9d7bd9907591de9f8f6558e2"}, + {file = "psutil-5.9.0-cp310-cp310-win32.whl", hash = "sha256:8293942e4ce0c5689821f65ce6522ce4786d02af57f13c0195b40e1edb1db61d"}, + {file = "psutil-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:9b51917c1af3fa35a3f2dabd7ba96a2a4f19df3dec911da73875e1edaf22a40b"}, + {file = "psutil-5.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e9805fed4f2a81de98ae5fe38b75a74c6e6ad2df8a5c479594c7629a1fe35f56"}, + {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c51f1af02334e4b516ec221ee26b8fdf105032418ca5a5ab9737e8c87dafe203"}, + {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32acf55cb9a8cbfb29167cd005951df81b567099295291bcfd1027365b36591d"}, + {file = "psutil-5.9.0-cp36-cp36m-win32.whl", hash = "sha256:e5c783d0b1ad6ca8a5d3e7b680468c9c926b804be83a3a8e95141b05c39c9f64"}, + {file = "psutil-5.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d62a2796e08dd024b8179bd441cb714e0f81226c352c802fca0fd3f89eeacd94"}, + {file = "psutil-5.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d00a664e31921009a84367266b35ba0aac04a2a6cad09c550a89041034d19a0"}, + {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7779be4025c540d1d65a2de3f30caeacc49ae7a2152108adeaf42c7534a115ce"}, + {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5"}, + {file = "psutil-5.9.0-cp37-cp37m-win32.whl", hash = "sha256:df2c8bd48fb83a8408c8390b143c6a6fa10cb1a674ca664954de193fdcab36a9"}, + {file = "psutil-5.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d7b433519b9a38192dfda962dd8f44446668c009833e1429a52424624f408b4"}, + {file = "psutil-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3400cae15bdb449d518545cbd5b649117de54e3596ded84aacabfbb3297ead2"}, + {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2237f35c4bbae932ee98902a08050a27821f8f6dfa880a47195e5993af4702d"}, + {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a"}, + {file = "psutil-5.9.0-cp38-cp38-win32.whl", hash = "sha256:76cebf84aac1d6da5b63df11fe0d377b46b7b500d892284068bacccf12f20666"}, + {file = "psutil-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:3151a58f0fbd8942ba94f7c31c7e6b310d2989f4da74fcbf28b934374e9bf841"}, + {file = "psutil-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:539e429da49c5d27d5a58e3563886057f8fc3868a5547b4f1876d9c0f007bccf"}, + {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58c7d923dc209225600aec73aa2c4ae8ea33b1ab31bc11ef8a5933b027476f07"}, + {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3611e87eea393f779a35b192b46a164b1d01167c9d323dda9b1e527ea69d697d"}, + {file = "psutil-5.9.0-cp39-cp39-win32.whl", hash = "sha256:4e2fb92e3aeae3ec3b7b66c528981fd327fb93fd906a77215200404444ec1845"}, + {file = "psutil-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d190ee2eaef7831163f254dc58f6d2e2a22e27382b936aab51c835fc080c3d3"}, + {file = "psutil-5.9.0.tar.gz", hash = "sha256:869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"}, ] py = [ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, @@ -718,28 +840,20 @@ pycparser = [ {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, ] pynacl = [ - {file = "PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff"}, - {file = "PyNaCl-1.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514"}, - {file = "PyNaCl-1.4.0-cp27-cp27m-win32.whl", hash = "sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574"}, - {file = "PyNaCl-1.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80"}, - {file = "PyNaCl-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7"}, - {file = "PyNaCl-1.4.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122"}, - {file = "PyNaCl-1.4.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d"}, - {file = "PyNaCl-1.4.0-cp35-abi3-win32.whl", hash = "sha256:4e10569f8cbed81cb7526ae137049759d2a8d57726d52c1a000a3ce366779634"}, - {file = "PyNaCl-1.4.0-cp35-abi3-win_amd64.whl", hash = "sha256:c914f78da4953b33d4685e3cdc7ce63401247a21425c16a39760e282075ac4a6"}, - {file = "PyNaCl-1.4.0-cp35-cp35m-win32.whl", hash = "sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4"}, - {file = "PyNaCl-1.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25"}, - {file = "PyNaCl-1.4.0-cp36-cp36m-win32.whl", hash = "sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4"}, - {file = "PyNaCl-1.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6"}, - {file = "PyNaCl-1.4.0-cp37-cp37m-win32.whl", hash = "sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f"}, - {file = "PyNaCl-1.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f"}, - {file = "PyNaCl-1.4.0-cp38-cp38-win32.whl", hash = "sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96"}, - {file = "PyNaCl-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420"}, - {file = "PyNaCl-1.4.0.tar.gz", hash = "sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505"}, + {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858"}, + {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b"}, + {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff"}, + {file = "PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543"}, + {file = "PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93"}, + {file = "PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"}, ] pyparsing = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, + {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"}, + {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"}, ] pysocks = [ {file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"}, @@ -751,16 +865,16 @@ pytest = [ {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, ] python-engineio = [ - {file = "python-engineio-4.3.0.tar.gz", hash = "sha256:fed35eeacfa21f53f1fc05ef0cadd65a50780364da3a2be7650eb92f928fdb11"}, - {file = "python_engineio-4.3.0-py3-none-any.whl", hash = "sha256:ad06a975f7e14cb3bb7137cbf70fd883804484d29acd58004d1db1e2a7fc0ad3"}, + {file = "python-engineio-4.3.1.tar.gz", hash = "sha256:6e1d26977ffefe3b7da1b5df7a8750aedc7686da8201cd90daf36693db122489"}, + {file = "python_engineio-4.3.1-py3-none-any.whl", hash = "sha256:85986067cb9f7695347954d4e03491f7d45152c5428c07109a9707e04e8942cb"}, ] python-socketio = [ - {file = "python-socketio-5.5.0.tar.gz", hash = "sha256:ce972ea1b82aa1811fa10d30cf0d5c251b9a1558c3d66829b6fe70854bcccf0b"}, - {file = "python_socketio-5.5.0-py3-none-any.whl", hash = "sha256:ca28a0ff0ca5dd05ec5ba4ee2572fe06b96d6f0bc7df384d8b50fbbc06986134"}, + {file = "python-socketio-5.5.1.tar.gz", hash = "sha256:ac8e64d59a15d1c31a4fe8434f4ff16d0f640c824ba517dce7ca99e95f0cd36a"}, + {file = "python_socketio-5.5.1-py3-none-any.whl", hash = "sha256:d0b98474064ac239a618649ca67f5288827705d36bd5f7615a473b37965baf61"}, ] requests = [ - {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"}, - {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"}, + {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, + {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, ] six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, @@ -771,15 +885,16 @@ toml = [ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] typing-extensions = [ - {file = "typing_extensions-4.0.0-py3-none-any.whl", hash = "sha256:829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9"}, + {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"}, + {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"}, ] unidecode = [ {file = "Unidecode-1.3.2-py3-none-any.whl", hash = "sha256:215fe33c9d1c889fa823ccb66df91b02524eb8cc8c9c80f9c5b8129754d27829"}, {file = "Unidecode-1.3.2.tar.gz", hash = "sha256:669898c1528912bcf07f9819dc60df18d057f7528271e31f8ec28cc88ef27504"}, ] urllib3 = [ - {file = "urllib3-1.26.7-py2.py3-none-any.whl", hash = "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"}, - {file = "urllib3-1.26.7.tar.gz", hash = "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"}, + {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, + {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"}, ] werkzeug = [ {file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"}, @@ -789,3 +904,60 @@ zipp = [ {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"}, {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"}, ] +"zope.event" = [ + {file = "zope.event-4.5.0-py2.py3-none-any.whl", hash = "sha256:2666401939cdaa5f4e0c08cf7f20c9b21423b95e88f4675b1443973bdb080c42"}, + {file = "zope.event-4.5.0.tar.gz", hash = "sha256:5e76517f5b9b119acf37ca8819781db6c16ea433f7e2062c4afc2b6fbedb1330"}, +] +"zope.interface" = [ + {file = "zope.interface-5.4.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:7df1e1c05304f26faa49fa752a8c690126cf98b40b91d54e6e9cc3b7d6ffe8b7"}, + {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2c98384b254b37ce50eddd55db8d381a5c53b4c10ee66e1e7fe749824f894021"}, + {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:08f9636e99a9d5410181ba0729e0408d3d8748026ea938f3b970a0249daa8192"}, + {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ea1d73b7c9dcbc5080bb8aaffb776f1c68e807767069b9ccdd06f27a161914a"}, + {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:273f158fabc5ea33cbc936da0ab3d4ba80ede5351babc4f577d768e057651531"}, + {file = "zope.interface-5.4.0-cp27-cp27m-win32.whl", hash = "sha256:a1e6e96217a0f72e2b8629e271e1b280c6fa3fe6e59fa8f6701bec14e3354325"}, + {file = "zope.interface-5.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:877473e675fdcc113c138813a5dd440da0769a2d81f4d86614e5d62b69497155"}, + {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f7ee479e96f7ee350db1cf24afa5685a5899e2b34992fb99e1f7c1b0b758d263"}, + {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:b0297b1e05fd128d26cc2460c810d42e205d16d76799526dfa8c8ccd50e74959"}, + {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:af310ec8335016b5e52cae60cda4a4f2a60a788cbb949a4fbea13d441aa5a09e"}, + {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:9a9845c4c6bb56e508651f005c4aeb0404e518c6f000d5a1123ab077ab769f5c"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0b465ae0962d49c68aa9733ba92a001b2a0933c317780435f00be7ecb959c702"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:5dd9ca406499444f4c8299f803d4a14edf7890ecc595c8b1c7115c2342cadc5f"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:469e2407e0fe9880ac690a3666f03eb4c3c444411a5a5fddfdabc5d184a79f05"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:52de7fc6c21b419078008f697fd4103dbc763288b1406b4562554bd47514c004"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:3dd4952748521205697bc2802e4afac5ed4b02909bb799ba1fe239f77fd4e117"}, + {file = "zope.interface-5.4.0-cp35-cp35m-win32.whl", hash = "sha256:dd93ea5c0c7f3e25335ab7d22a507b1dc43976e1345508f845efc573d3d779d8"}, + {file = "zope.interface-5.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:3748fac0d0f6a304e674955ab1365d515993b3a0a865e16a11ec9d86fb307f63"}, + {file = "zope.interface-5.4.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:66c0061c91b3b9cf542131148ef7ecbecb2690d48d1612ec386de9d36766058f"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:d0c1bc2fa9a7285719e5678584f6b92572a5b639d0e471bb8d4b650a1a910920"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2876246527c91e101184f63ccd1d716ec9c46519cc5f3d5375a3351c46467c46"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:334701327f37c47fa628fc8b8d28c7d7730ce7daaf4bda1efb741679c2b087fc"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:71aace0c42d53abe6fc7f726c5d3b60d90f3c5c055a447950ad6ea9cec2e37d9"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5bb3489b4558e49ad2c5118137cfeaf59434f9737fa9c5deefc72d22c23822e2"}, + {file = "zope.interface-5.4.0-cp36-cp36m-win32.whl", hash = "sha256:1c0e316c9add0db48a5b703833881351444398b04111188069a26a61cfb4df78"}, + {file = "zope.interface-5.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f0c02cbb9691b7c91d5009108f975f8ffeab5dff8f26d62e21c493060eff2a1"}, + {file = "zope.interface-5.4.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:7d97a4306898b05404a0dcdc32d9709b7d8832c0c542b861d9a826301719794e"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:867a5ad16892bf20e6c4ea2aab1971f45645ff3102ad29bd84c86027fa99997b"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5f931a1c21dfa7a9c573ec1f50a31135ccce84e32507c54e1ea404894c5eb96f"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:194d0bcb1374ac3e1e023961610dc8f2c78a0f5f634d0c737691e215569e640d"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:8270252effc60b9642b423189a2fe90eb6b59e87cbee54549db3f5562ff8d1b8"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:15e7d1f7a6ee16572e21e3576d2012b2778cbacf75eb4b7400be37455f5ca8bf"}, + {file = "zope.interface-5.4.0-cp37-cp37m-win32.whl", hash = "sha256:8892f89999ffd992208754851e5a052f6b5db70a1e3f7d54b17c5211e37a98c7"}, + {file = "zope.interface-5.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2e5a26f16503be6c826abca904e45f1a44ff275fdb7e9d1b75c10671c26f8b94"}, + {file = "zope.interface-5.4.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:0f91b5b948686659a8e28b728ff5e74b1be6bf40cb04704453617e5f1e945ef3"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:4de4bc9b6d35c5af65b454d3e9bc98c50eb3960d5a3762c9438df57427134b8e"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf68f4b2b6683e52bec69273562df15af352e5ed25d1b6641e7efddc5951d1a7"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:63b82bb63de7c821428d513607e84c6d97d58afd1fe2eb645030bdc185440120"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:db1fa631737dab9fa0b37f3979d8d2631e348c3b4e8325d6873c2541d0ae5a48"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f44e517131a98f7a76696a7b21b164bcb85291cee106a23beccce454e1f433a4"}, + {file = "zope.interface-5.4.0-cp38-cp38-win32.whl", hash = "sha256:a9506a7e80bcf6eacfff7f804c0ad5350c8c95b9010e4356a4b36f5322f09abb"}, + {file = "zope.interface-5.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:3c02411a3b62668200910090a0dff17c0b25aaa36145082a5a6adf08fa281e54"}, + {file = "zope.interface-5.4.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:0cee5187b60ed26d56eb2960136288ce91bcf61e2a9405660d271d1f122a69a4"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:a8156e6a7f5e2a0ff0c5b21d6bcb45145efece1909efcbbbf48c56f8da68221d"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:205e40ccde0f37496904572035deea747390a8b7dc65146d30b96e2dd1359a83"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:3f24df7124c323fceb53ff6168da70dbfbae1442b4f3da439cd441681f54fe25"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:5208ebd5152e040640518a77827bdfcc73773a15a33d6644015b763b9c9febc1"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:17776ecd3a1fdd2b2cd5373e5ef8b307162f581c693575ec62e7c5399d80794c"}, + {file = "zope.interface-5.4.0-cp39-cp39-win32.whl", hash = "sha256:d4d9d6c1a455d4babd320203b918ccc7fcbefe308615c521062bc2ba1aa4d26e"}, + {file = "zope.interface-5.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:0cba8477e300d64a11a9789ed40ee8932b59f9ee05f85276dbb4b59acee5dd09"}, + {file = "zope.interface-5.4.0.tar.gz", hash = "sha256:5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e"}, +] diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 372d9aa4..422eb890 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "onionshare_cli" -version = "2.4" +version = "2.5" description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service." authors = ["Micah Lee "] license = "GPLv3+" @@ -27,8 +27,9 @@ unidecode = "*" urllib3 = "*" eventlet = "*" setuptools = "*" -pynacl = "^1.4.0" +pynacl = "*" colorama = "*" +gevent-websocket = "*" cepa = "1.8.3" [tool.poetry.dev-dependencies] diff --git a/cli/setup.py b/cli/setup.py index 407991d0..2db047e5 100644 --- a/cli/setup.py +++ b/cli/setup.py @@ -3,7 +3,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,9 +18,11 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . """ +import os import setuptools -version = "2.4" +with open(os.path.join("onionshare_cli", "resources", "version.txt")) as f: + version = f.read().strip() setuptools.setup( name="onionshare-cli", diff --git a/cli/tests/test_cli_web.py b/cli/tests/test_cli_web.py index e93e3e33..f6076ef9 100644 --- a/cli/tests/test_cli_web.py +++ b/cli/tests/test_cli_web.py @@ -228,7 +228,7 @@ class TestWeb: 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] + time_str = filenames[0][0:12] assert time_str in filenames assert f"{time_str}-message.txt" in filenames data_dir_time = os.path.join(data_dir_date, time_str) @@ -260,7 +260,7 @@ class TestWeb: 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] + time_str = filenames[0][0:12] 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) diff --git a/desktop/README.md b/desktop/README.md index 9c55f343..1578f956 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -9,135 +9,83 @@ git clone https://github.com/onionshare/onionshare.git cd onionshare/desktop ``` +Make sure you have Python 3 installed. If you're using Windows or macOS, install version 3.9.9 [from python.org](https://www.python.org/downloads/release/python-399/). For Windows, make sure to install the 32-bit (x86) version, and to check the box to add python to the path on the first page of the installer. + +Make sure you have [poetry installed](https://python-poetry.org/docs/#installation), and then install the dependencies: + +```sh +poetry install +``` + ### Install platform-specific dependencies #### Linux In Ubuntu 20.04 you need the `libxcb-xinerama0` package installed. -Install python dependencies: - -```sh -pip3 install --user poetry requests -``` - Download Tor Browser and extract the binaries: ```sh -./scripts/get-tor-linux.py +poetry run ./scripts/get-tor-linux.py ``` #### macOS -Download and install Python 3.8.6 from https://www.python.org/downloads/release/python-386/. I downloaded `python-3.8.6-macosx10.9.pkg`. (You may need to also run `/Applications/Python\ 3.8/Install\ Certificates.command`.) - -Install python dependencies: - -```sh -pip3 install --user poetry requests -``` - Download Tor Browser and extract the binaries: ```sh -./scripts/get-tor-osx.py +poetry run ./scripts/get-tor-osx.py ``` #### Windows These instructions include adding folders to the path in Windows. To do this, go to Start and type "advanced system settings", and open "View advanced system settings" in the Control Panel. Click Environment Variables. Under "System variables" double-click on Path. From there you can add and remove folders that are available in the PATH. -Download Python 3.8.6, 32-bit (x86) from https://www.python.org/downloads/release/python-386/. I downloaded `python-3.8.6.exe`. When installing it, make sure to check the "Add Python 3.8 to PATH" checkbox on the first page of the installer. - Download and install 7-Zip from https://7-zip.org/download.html. I downloaded `7z1900.exe`. Add `C:\Program Files (x86)\7-Zip` to your path. -Install python dependencies: - -``` -pip install poetry requests -``` - Download Tor Browser and extract the binaries: -``` -python scripts\get-tor-windows.py +```sh +poetry run python scripts\get-tor-windows.py ``` ### Compile dependencies -Install Go. The simplest way to make sure everything works is to install Go by following [these instructions](https://golang.org/doc/install). (In Windows, make sure to install the 32-bit version of Go, such as `go1.17.3.windows-386.msi`.) +Install Go. The simplest way to make sure everything works is to install Go by following [these instructions](https://golang.org/doc/install). (In Windows, make sure to install the 32-bit version of Go, such as `go1.17.5.windows-386.msi`.) Download and compile `meek-client`: -``` -./scripts/build-meek-client.py -``` - -### Prepare the virtual environment - -OnionShare uses [Briefcase](https://briefcase.readthedocs.io/en/latest/). - -Install Briefcase dependencies by following [these instructions](https://docs.beeware.org/en/latest/tutorial/tutorial-0.html#install-dependencies). - -Now create and/or activate a virtual environment. - -* Linux and macOS - ``` - python3 -m venv venv - . venv/bin/activate - ``` -* Windows - ``` - python -m venv venv - venv\Scripts\activate.bat - ``` - -While your virtual environment is active, install briefcase from pip. - -``` -pip install briefcase -``` - -In order to work with the desktop app, you'll need to build a wheel of the CLI package first, and copy it into the `desktop` folder. You'll need to re-run this script each time you change the CLI code. - ```sh -python scripts/rebuild-cli.py +./scripts/build-meek-client.py ``` ### Running OnionShare from the source code tree -Inside the virtual environment, run OnionShare like this to install all of the dependencies: +To run OnionShare from the source tree: -``` -briefcase dev -d +```sh +poetry run onionshare +poetry run onionshare --help +poetry run onionshare -v +poetry run onionshare -v --local-only ``` -Once you have the dependencies installed, you can run it using the `dev.sh` script, which lets you use command line arguments, such as to `--verbose` or `--local-only`: +You can also run `onionshare-cli` from the source tree, and it will look for Tor binaries in `desktop/onionshare/resources/tor`. +```sh +poetry run onionshare-cli --help ``` -./scripts/dev.sh --help -./scripts/dev.sh -v -./scripts/dev.sh -v --local-only -``` - -Windows uses `scripts\dev.bat` instead. ## Running tests -Install these packages inside your virtual environment: +Run the tests: ```sh -pip install pytest pytest-briefcase pytest-faulthandler pytest-qt -``` - -Then run the tests: - -```sh -./tests/run.sh +poetry run ./tests/run.sh ``` If you want to run tests while hiding the GUI, you must have the `xvfb` package installed, and then: ```sh -xvfb-run ./tests/run.sh +xvfb-run poetry run ./tests/run.sh ``` diff --git a/desktop/src/onionshare/__init__.py b/desktop/onionshare/__init__.py similarity index 99% rename from desktop/src/onionshare/__init__.py rename to desktop/onionshare/__init__.py index 40a91913..fbe75a27 100644 --- a/desktop/src/onionshare/__init__.py +++ b/desktop/onionshare/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/__main__.py b/desktop/onionshare/__main__.py similarity index 92% rename from desktop/src/onionshare/__main__.py rename to desktop/onionshare/__main__.py index 3a7f3554..b526477c 100644 --- a/desktop/src/onionshare/__main__.py +++ b/desktop/onionshare/__main__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py similarity index 100% rename from desktop/src/onionshare/connection_tab.py rename to desktop/onionshare/connection_tab.py diff --git a/desktop/src/onionshare/gui_common.py b/desktop/onionshare/gui_common.py similarity index 99% rename from desktop/src/onionshare/gui_common.py rename to desktop/onionshare/gui_common.py index f34d4ac4..4cf0f010 100644 --- a/desktop/src/onionshare/gui_common.py +++ b/desktop/onionshare/gui_common.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/main_window.py b/desktop/onionshare/main_window.py similarity index 99% rename from desktop/src/onionshare/main_window.py rename to desktop/onionshare/main_window.py index 8e6605ed..9c6f455f 100644 --- a/desktop/src/onionshare/main_window.py +++ b/desktop/onionshare/main_window.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/moat_dialog.py b/desktop/onionshare/moat_dialog.py similarity index 99% rename from desktop/src/onionshare/moat_dialog.py rename to desktop/onionshare/moat_dialog.py index 84a52390..fd04ee9c 100644 --- a/desktop/src/onionshare/moat_dialog.py +++ b/desktop/onionshare/moat_dialog.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/resources/__init__.py b/desktop/onionshare/resources/__init__.py similarity index 100% rename from desktop/src/onionshare/resources/__init__.py rename to desktop/onionshare/resources/__init__.py diff --git a/desktop/src/onionshare/resources/countries/ar.json b/desktop/onionshare/resources/countries/ar.json similarity index 100% rename from desktop/src/onionshare/resources/countries/ar.json rename to desktop/onionshare/resources/countries/ar.json diff --git a/desktop/src/onionshare/resources/countries/bn.json b/desktop/onionshare/resources/countries/bn.json similarity index 100% rename from desktop/src/onionshare/resources/countries/bn.json rename to desktop/onionshare/resources/countries/bn.json diff --git a/desktop/src/onionshare/resources/countries/de.json b/desktop/onionshare/resources/countries/de.json similarity index 100% rename from desktop/src/onionshare/resources/countries/de.json rename to desktop/onionshare/resources/countries/de.json diff --git a/desktop/src/onionshare/resources/countries/en.json b/desktop/onionshare/resources/countries/en.json similarity index 100% rename from desktop/src/onionshare/resources/countries/en.json rename to desktop/onionshare/resources/countries/en.json diff --git a/desktop/src/onionshare/resources/countries/es.json b/desktop/onionshare/resources/countries/es.json similarity index 100% rename from desktop/src/onionshare/resources/countries/es.json rename to desktop/onionshare/resources/countries/es.json diff --git a/desktop/src/onionshare/resources/countries/fi.json b/desktop/onionshare/resources/countries/fi.json similarity index 100% rename from desktop/src/onionshare/resources/countries/fi.json rename to desktop/onionshare/resources/countries/fi.json diff --git a/desktop/src/onionshare/resources/countries/gl.json b/desktop/onionshare/resources/countries/gl.json similarity index 100% rename from desktop/src/onionshare/resources/countries/gl.json rename to desktop/onionshare/resources/countries/gl.json diff --git a/desktop/src/onionshare/resources/countries/is.json b/desktop/onionshare/resources/countries/is.json similarity index 100% rename from desktop/src/onionshare/resources/countries/is.json rename to desktop/onionshare/resources/countries/is.json diff --git a/desktop/src/onionshare/resources/countries/lt.json b/desktop/onionshare/resources/countries/lt.json similarity index 100% rename from desktop/src/onionshare/resources/countries/lt.json rename to desktop/onionshare/resources/countries/lt.json diff --git a/desktop/src/onionshare/resources/countries/nb_NO.json b/desktop/onionshare/resources/countries/nb_NO.json similarity index 100% rename from desktop/src/onionshare/resources/countries/nb_NO.json rename to desktop/onionshare/resources/countries/nb_NO.json diff --git a/desktop/src/onionshare/resources/countries/pl.json b/desktop/onionshare/resources/countries/pl.json similarity index 100% rename from desktop/src/onionshare/resources/countries/pl.json rename to desktop/onionshare/resources/countries/pl.json diff --git a/desktop/src/onionshare/resources/countries/pt_BR.json b/desktop/onionshare/resources/countries/pt_BR.json similarity index 100% rename from desktop/src/onionshare/resources/countries/pt_BR.json rename to desktop/onionshare/resources/countries/pt_BR.json diff --git a/desktop/src/onionshare/resources/countries/ru.json b/desktop/onionshare/resources/countries/ru.json similarity index 100% rename from desktop/src/onionshare/resources/countries/ru.json rename to desktop/onionshare/resources/countries/ru.json diff --git a/desktop/src/onionshare/resources/countries/sv.json b/desktop/onionshare/resources/countries/sv.json similarity index 100% rename from desktop/src/onionshare/resources/countries/sv.json rename to desktop/onionshare/resources/countries/sv.json diff --git a/desktop/src/onionshare/resources/countries/tr.json b/desktop/onionshare/resources/countries/tr.json similarity index 100% rename from desktop/src/onionshare/resources/countries/tr.json rename to desktop/onionshare/resources/countries/tr.json diff --git a/desktop/src/onionshare/resources/countries/uk.json b/desktop/onionshare/resources/countries/uk.json similarity index 100% rename from desktop/src/onionshare/resources/countries/uk.json rename to desktop/onionshare/resources/countries/uk.json diff --git a/desktop/src/onionshare/resources/countries/zh_Hans.json b/desktop/onionshare/resources/countries/zh_Hans.json similarity index 100% rename from desktop/src/onionshare/resources/countries/zh_Hans.json rename to desktop/onionshare/resources/countries/zh_Hans.json diff --git a/desktop/src/onionshare/resources/images/close_tab.png b/desktop/onionshare/resources/images/close_tab.png similarity index 100% rename from desktop/src/onionshare/resources/images/close_tab.png rename to desktop/onionshare/resources/images/close_tab.png diff --git a/desktop/src/onionshare/resources/images/countries/ad-dark.png b/desktop/onionshare/resources/images/countries/ad-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ad-dark.png rename to desktop/onionshare/resources/images/countries/ad-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ad-light.png b/desktop/onionshare/resources/images/countries/ad-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ad-light.png rename to desktop/onionshare/resources/images/countries/ad-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ae-dark.png b/desktop/onionshare/resources/images/countries/ae-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ae-dark.png rename to desktop/onionshare/resources/images/countries/ae-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ae-light.png b/desktop/onionshare/resources/images/countries/ae-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ae-light.png rename to desktop/onionshare/resources/images/countries/ae-light.png diff --git a/desktop/src/onionshare/resources/images/countries/af-dark.png b/desktop/onionshare/resources/images/countries/af-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/af-dark.png rename to desktop/onionshare/resources/images/countries/af-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/af-light.png b/desktop/onionshare/resources/images/countries/af-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/af-light.png rename to desktop/onionshare/resources/images/countries/af-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ag-dark.png b/desktop/onionshare/resources/images/countries/ag-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ag-dark.png rename to desktop/onionshare/resources/images/countries/ag-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ag-light.png b/desktop/onionshare/resources/images/countries/ag-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ag-light.png rename to desktop/onionshare/resources/images/countries/ag-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ai-dark.png b/desktop/onionshare/resources/images/countries/ai-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ai-dark.png rename to desktop/onionshare/resources/images/countries/ai-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ai-light.png b/desktop/onionshare/resources/images/countries/ai-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ai-light.png rename to desktop/onionshare/resources/images/countries/ai-light.png diff --git a/desktop/src/onionshare/resources/images/countries/al-dark.png b/desktop/onionshare/resources/images/countries/al-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/al-dark.png rename to desktop/onionshare/resources/images/countries/al-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/al-light.png b/desktop/onionshare/resources/images/countries/al-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/al-light.png rename to desktop/onionshare/resources/images/countries/al-light.png diff --git a/desktop/src/onionshare/resources/images/countries/am-dark.png b/desktop/onionshare/resources/images/countries/am-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/am-dark.png rename to desktop/onionshare/resources/images/countries/am-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/am-light.png b/desktop/onionshare/resources/images/countries/am-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/am-light.png rename to desktop/onionshare/resources/images/countries/am-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ao-dark.png b/desktop/onionshare/resources/images/countries/ao-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ao-dark.png rename to desktop/onionshare/resources/images/countries/ao-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ao-light.png b/desktop/onionshare/resources/images/countries/ao-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ao-light.png rename to desktop/onionshare/resources/images/countries/ao-light.png diff --git a/desktop/src/onionshare/resources/images/countries/aq-dark.png b/desktop/onionshare/resources/images/countries/aq-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/aq-dark.png rename to desktop/onionshare/resources/images/countries/aq-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/aq-light.png b/desktop/onionshare/resources/images/countries/aq-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/aq-light.png rename to desktop/onionshare/resources/images/countries/aq-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ar-dark.png b/desktop/onionshare/resources/images/countries/ar-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ar-dark.png rename to desktop/onionshare/resources/images/countries/ar-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ar-light.png b/desktop/onionshare/resources/images/countries/ar-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ar-light.png rename to desktop/onionshare/resources/images/countries/ar-light.png diff --git a/desktop/src/onionshare/resources/images/countries/as-dark.png b/desktop/onionshare/resources/images/countries/as-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/as-dark.png rename to desktop/onionshare/resources/images/countries/as-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/as-light.png b/desktop/onionshare/resources/images/countries/as-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/as-light.png rename to desktop/onionshare/resources/images/countries/as-light.png diff --git a/desktop/src/onionshare/resources/images/countries/at-dark.png b/desktop/onionshare/resources/images/countries/at-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/at-dark.png rename to desktop/onionshare/resources/images/countries/at-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/at-light.png b/desktop/onionshare/resources/images/countries/at-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/at-light.png rename to desktop/onionshare/resources/images/countries/at-light.png diff --git a/desktop/src/onionshare/resources/images/countries/au-dark.png b/desktop/onionshare/resources/images/countries/au-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/au-dark.png rename to desktop/onionshare/resources/images/countries/au-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/au-light.png b/desktop/onionshare/resources/images/countries/au-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/au-light.png rename to desktop/onionshare/resources/images/countries/au-light.png diff --git a/desktop/src/onionshare/resources/images/countries/aw-dark.png b/desktop/onionshare/resources/images/countries/aw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/aw-dark.png rename to desktop/onionshare/resources/images/countries/aw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/aw-light.png b/desktop/onionshare/resources/images/countries/aw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/aw-light.png rename to desktop/onionshare/resources/images/countries/aw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ax-dark.png b/desktop/onionshare/resources/images/countries/ax-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ax-dark.png rename to desktop/onionshare/resources/images/countries/ax-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ax-light.png b/desktop/onionshare/resources/images/countries/ax-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ax-light.png rename to desktop/onionshare/resources/images/countries/ax-light.png diff --git a/desktop/src/onionshare/resources/images/countries/az-dark.png b/desktop/onionshare/resources/images/countries/az-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/az-dark.png rename to desktop/onionshare/resources/images/countries/az-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/az-light.png b/desktop/onionshare/resources/images/countries/az-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/az-light.png rename to desktop/onionshare/resources/images/countries/az-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ba-dark.png b/desktop/onionshare/resources/images/countries/ba-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ba-dark.png rename to desktop/onionshare/resources/images/countries/ba-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ba-light.png b/desktop/onionshare/resources/images/countries/ba-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ba-light.png rename to desktop/onionshare/resources/images/countries/ba-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bb-dark.png b/desktop/onionshare/resources/images/countries/bb-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bb-dark.png rename to desktop/onionshare/resources/images/countries/bb-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bb-light.png b/desktop/onionshare/resources/images/countries/bb-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bb-light.png rename to desktop/onionshare/resources/images/countries/bb-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bd-dark.png b/desktop/onionshare/resources/images/countries/bd-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bd-dark.png rename to desktop/onionshare/resources/images/countries/bd-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bd-light.png b/desktop/onionshare/resources/images/countries/bd-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bd-light.png rename to desktop/onionshare/resources/images/countries/bd-light.png diff --git a/desktop/src/onionshare/resources/images/countries/be-dark.png b/desktop/onionshare/resources/images/countries/be-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/be-dark.png rename to desktop/onionshare/resources/images/countries/be-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/be-light.png b/desktop/onionshare/resources/images/countries/be-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/be-light.png rename to desktop/onionshare/resources/images/countries/be-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bf-dark.png b/desktop/onionshare/resources/images/countries/bf-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bf-dark.png rename to desktop/onionshare/resources/images/countries/bf-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bf-light.png b/desktop/onionshare/resources/images/countries/bf-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bf-light.png rename to desktop/onionshare/resources/images/countries/bf-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bg-dark.png b/desktop/onionshare/resources/images/countries/bg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bg-dark.png rename to desktop/onionshare/resources/images/countries/bg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bg-light.png b/desktop/onionshare/resources/images/countries/bg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bg-light.png rename to desktop/onionshare/resources/images/countries/bg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bh-dark.png b/desktop/onionshare/resources/images/countries/bh-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bh-dark.png rename to desktop/onionshare/resources/images/countries/bh-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bh-light.png b/desktop/onionshare/resources/images/countries/bh-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bh-light.png rename to desktop/onionshare/resources/images/countries/bh-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bi-dark.png b/desktop/onionshare/resources/images/countries/bi-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bi-dark.png rename to desktop/onionshare/resources/images/countries/bi-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bi-light.png b/desktop/onionshare/resources/images/countries/bi-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bi-light.png rename to desktop/onionshare/resources/images/countries/bi-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bj-dark.png b/desktop/onionshare/resources/images/countries/bj-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bj-dark.png rename to desktop/onionshare/resources/images/countries/bj-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bj-light.png b/desktop/onionshare/resources/images/countries/bj-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bj-light.png rename to desktop/onionshare/resources/images/countries/bj-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bl-dark.png b/desktop/onionshare/resources/images/countries/bl-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bl-dark.png rename to desktop/onionshare/resources/images/countries/bl-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bl-light.png b/desktop/onionshare/resources/images/countries/bl-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bl-light.png rename to desktop/onionshare/resources/images/countries/bl-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bm-dark.png b/desktop/onionshare/resources/images/countries/bm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bm-dark.png rename to desktop/onionshare/resources/images/countries/bm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bm-light.png b/desktop/onionshare/resources/images/countries/bm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bm-light.png rename to desktop/onionshare/resources/images/countries/bm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bn-dark.png b/desktop/onionshare/resources/images/countries/bn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bn-dark.png rename to desktop/onionshare/resources/images/countries/bn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bn-light.png b/desktop/onionshare/resources/images/countries/bn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bn-light.png rename to desktop/onionshare/resources/images/countries/bn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bo-dark.png b/desktop/onionshare/resources/images/countries/bo-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bo-dark.png rename to desktop/onionshare/resources/images/countries/bo-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bo-light.png b/desktop/onionshare/resources/images/countries/bo-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bo-light.png rename to desktop/onionshare/resources/images/countries/bo-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bq-dark.png b/desktop/onionshare/resources/images/countries/bq-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bq-dark.png rename to desktop/onionshare/resources/images/countries/bq-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bq-light.png b/desktop/onionshare/resources/images/countries/bq-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bq-light.png rename to desktop/onionshare/resources/images/countries/bq-light.png diff --git a/desktop/src/onionshare/resources/images/countries/br-dark.png b/desktop/onionshare/resources/images/countries/br-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/br-dark.png rename to desktop/onionshare/resources/images/countries/br-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/br-light.png b/desktop/onionshare/resources/images/countries/br-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/br-light.png rename to desktop/onionshare/resources/images/countries/br-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bs-dark.png b/desktop/onionshare/resources/images/countries/bs-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bs-dark.png rename to desktop/onionshare/resources/images/countries/bs-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bs-light.png b/desktop/onionshare/resources/images/countries/bs-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bs-light.png rename to desktop/onionshare/resources/images/countries/bs-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bt-dark.png b/desktop/onionshare/resources/images/countries/bt-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bt-dark.png rename to desktop/onionshare/resources/images/countries/bt-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bt-light.png b/desktop/onionshare/resources/images/countries/bt-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bt-light.png rename to desktop/onionshare/resources/images/countries/bt-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bv-dark.png b/desktop/onionshare/resources/images/countries/bv-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bv-dark.png rename to desktop/onionshare/resources/images/countries/bv-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bv-light.png b/desktop/onionshare/resources/images/countries/bv-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bv-light.png rename to desktop/onionshare/resources/images/countries/bv-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bw-dark.png b/desktop/onionshare/resources/images/countries/bw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bw-dark.png rename to desktop/onionshare/resources/images/countries/bw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bw-light.png b/desktop/onionshare/resources/images/countries/bw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bw-light.png rename to desktop/onionshare/resources/images/countries/bw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/by-dark.png b/desktop/onionshare/resources/images/countries/by-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/by-dark.png rename to desktop/onionshare/resources/images/countries/by-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/by-light.png b/desktop/onionshare/resources/images/countries/by-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/by-light.png rename to desktop/onionshare/resources/images/countries/by-light.png diff --git a/desktop/src/onionshare/resources/images/countries/bz-dark.png b/desktop/onionshare/resources/images/countries/bz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bz-dark.png rename to desktop/onionshare/resources/images/countries/bz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/bz-light.png b/desktop/onionshare/resources/images/countries/bz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/bz-light.png rename to desktop/onionshare/resources/images/countries/bz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ca-dark.png b/desktop/onionshare/resources/images/countries/ca-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ca-dark.png rename to desktop/onionshare/resources/images/countries/ca-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ca-light.png b/desktop/onionshare/resources/images/countries/ca-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ca-light.png rename to desktop/onionshare/resources/images/countries/ca-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cc-dark.png b/desktop/onionshare/resources/images/countries/cc-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cc-dark.png rename to desktop/onionshare/resources/images/countries/cc-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cc-light.png b/desktop/onionshare/resources/images/countries/cc-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cc-light.png rename to desktop/onionshare/resources/images/countries/cc-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cd-dark.png b/desktop/onionshare/resources/images/countries/cd-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cd-dark.png rename to desktop/onionshare/resources/images/countries/cd-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cd-light.png b/desktop/onionshare/resources/images/countries/cd-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cd-light.png rename to desktop/onionshare/resources/images/countries/cd-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cf-dark.png b/desktop/onionshare/resources/images/countries/cf-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cf-dark.png rename to desktop/onionshare/resources/images/countries/cf-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cf-light.png b/desktop/onionshare/resources/images/countries/cf-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cf-light.png rename to desktop/onionshare/resources/images/countries/cf-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cg-dark.png b/desktop/onionshare/resources/images/countries/cg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cg-dark.png rename to desktop/onionshare/resources/images/countries/cg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cg-light.png b/desktop/onionshare/resources/images/countries/cg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cg-light.png rename to desktop/onionshare/resources/images/countries/cg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ch-dark.png b/desktop/onionshare/resources/images/countries/ch-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ch-dark.png rename to desktop/onionshare/resources/images/countries/ch-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ch-light.png b/desktop/onionshare/resources/images/countries/ch-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ch-light.png rename to desktop/onionshare/resources/images/countries/ch-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ci-dark.png b/desktop/onionshare/resources/images/countries/ci-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ci-dark.png rename to desktop/onionshare/resources/images/countries/ci-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ci-light.png b/desktop/onionshare/resources/images/countries/ci-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ci-light.png rename to desktop/onionshare/resources/images/countries/ci-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ck-dark.png b/desktop/onionshare/resources/images/countries/ck-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ck-dark.png rename to desktop/onionshare/resources/images/countries/ck-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ck-light.png b/desktop/onionshare/resources/images/countries/ck-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ck-light.png rename to desktop/onionshare/resources/images/countries/ck-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cl-dark.png b/desktop/onionshare/resources/images/countries/cl-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cl-dark.png rename to desktop/onionshare/resources/images/countries/cl-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cl-light.png b/desktop/onionshare/resources/images/countries/cl-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cl-light.png rename to desktop/onionshare/resources/images/countries/cl-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cm-dark.png b/desktop/onionshare/resources/images/countries/cm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cm-dark.png rename to desktop/onionshare/resources/images/countries/cm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cm-light.png b/desktop/onionshare/resources/images/countries/cm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cm-light.png rename to desktop/onionshare/resources/images/countries/cm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cn-dark.png b/desktop/onionshare/resources/images/countries/cn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cn-dark.png rename to desktop/onionshare/resources/images/countries/cn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cn-light.png b/desktop/onionshare/resources/images/countries/cn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cn-light.png rename to desktop/onionshare/resources/images/countries/cn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/co-dark.png b/desktop/onionshare/resources/images/countries/co-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/co-dark.png rename to desktop/onionshare/resources/images/countries/co-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/co-light.png b/desktop/onionshare/resources/images/countries/co-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/co-light.png rename to desktop/onionshare/resources/images/countries/co-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cr-dark.png b/desktop/onionshare/resources/images/countries/cr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cr-dark.png rename to desktop/onionshare/resources/images/countries/cr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cr-light.png b/desktop/onionshare/resources/images/countries/cr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cr-light.png rename to desktop/onionshare/resources/images/countries/cr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cu-dark.png b/desktop/onionshare/resources/images/countries/cu-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cu-dark.png rename to desktop/onionshare/resources/images/countries/cu-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cu-light.png b/desktop/onionshare/resources/images/countries/cu-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cu-light.png rename to desktop/onionshare/resources/images/countries/cu-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cv-dark.png b/desktop/onionshare/resources/images/countries/cv-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cv-dark.png rename to desktop/onionshare/resources/images/countries/cv-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cv-light.png b/desktop/onionshare/resources/images/countries/cv-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cv-light.png rename to desktop/onionshare/resources/images/countries/cv-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cw-dark.png b/desktop/onionshare/resources/images/countries/cw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cw-dark.png rename to desktop/onionshare/resources/images/countries/cw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cw-light.png b/desktop/onionshare/resources/images/countries/cw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cw-light.png rename to desktop/onionshare/resources/images/countries/cw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cx-dark.png b/desktop/onionshare/resources/images/countries/cx-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cx-dark.png rename to desktop/onionshare/resources/images/countries/cx-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cx-light.png b/desktop/onionshare/resources/images/countries/cx-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cx-light.png rename to desktop/onionshare/resources/images/countries/cx-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cy-dark.png b/desktop/onionshare/resources/images/countries/cy-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cy-dark.png rename to desktop/onionshare/resources/images/countries/cy-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cy-light.png b/desktop/onionshare/resources/images/countries/cy-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cy-light.png rename to desktop/onionshare/resources/images/countries/cy-light.png diff --git a/desktop/src/onionshare/resources/images/countries/cz-dark.png b/desktop/onionshare/resources/images/countries/cz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cz-dark.png rename to desktop/onionshare/resources/images/countries/cz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/cz-light.png b/desktop/onionshare/resources/images/countries/cz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/cz-light.png rename to desktop/onionshare/resources/images/countries/cz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/de-dark.png b/desktop/onionshare/resources/images/countries/de-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/de-dark.png rename to desktop/onionshare/resources/images/countries/de-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/de-light.png b/desktop/onionshare/resources/images/countries/de-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/de-light.png rename to desktop/onionshare/resources/images/countries/de-light.png diff --git a/desktop/src/onionshare/resources/images/countries/dj-dark.png b/desktop/onionshare/resources/images/countries/dj-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/dj-dark.png rename to desktop/onionshare/resources/images/countries/dj-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/dj-light.png b/desktop/onionshare/resources/images/countries/dj-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/dj-light.png rename to desktop/onionshare/resources/images/countries/dj-light.png diff --git a/desktop/src/onionshare/resources/images/countries/dk-dark.png b/desktop/onionshare/resources/images/countries/dk-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/dk-dark.png rename to desktop/onionshare/resources/images/countries/dk-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/dk-light.png b/desktop/onionshare/resources/images/countries/dk-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/dk-light.png rename to desktop/onionshare/resources/images/countries/dk-light.png diff --git a/desktop/src/onionshare/resources/images/countries/dm-dark.png b/desktop/onionshare/resources/images/countries/dm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/dm-dark.png rename to desktop/onionshare/resources/images/countries/dm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/dm-light.png b/desktop/onionshare/resources/images/countries/dm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/dm-light.png rename to desktop/onionshare/resources/images/countries/dm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/do-dark.png b/desktop/onionshare/resources/images/countries/do-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/do-dark.png rename to desktop/onionshare/resources/images/countries/do-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/do-light.png b/desktop/onionshare/resources/images/countries/do-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/do-light.png rename to desktop/onionshare/resources/images/countries/do-light.png diff --git a/desktop/src/onionshare/resources/images/countries/dz-dark.png b/desktop/onionshare/resources/images/countries/dz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/dz-dark.png rename to desktop/onionshare/resources/images/countries/dz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/dz-light.png b/desktop/onionshare/resources/images/countries/dz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/dz-light.png rename to desktop/onionshare/resources/images/countries/dz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ec-dark.png b/desktop/onionshare/resources/images/countries/ec-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ec-dark.png rename to desktop/onionshare/resources/images/countries/ec-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ec-light.png b/desktop/onionshare/resources/images/countries/ec-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ec-light.png rename to desktop/onionshare/resources/images/countries/ec-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ee-dark.png b/desktop/onionshare/resources/images/countries/ee-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ee-dark.png rename to desktop/onionshare/resources/images/countries/ee-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ee-light.png b/desktop/onionshare/resources/images/countries/ee-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ee-light.png rename to desktop/onionshare/resources/images/countries/ee-light.png diff --git a/desktop/src/onionshare/resources/images/countries/eg-dark.png b/desktop/onionshare/resources/images/countries/eg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/eg-dark.png rename to desktop/onionshare/resources/images/countries/eg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/eg-light.png b/desktop/onionshare/resources/images/countries/eg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/eg-light.png rename to desktop/onionshare/resources/images/countries/eg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/eh-dark.png b/desktop/onionshare/resources/images/countries/eh-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/eh-dark.png rename to desktop/onionshare/resources/images/countries/eh-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/eh-light.png b/desktop/onionshare/resources/images/countries/eh-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/eh-light.png rename to desktop/onionshare/resources/images/countries/eh-light.png diff --git a/desktop/src/onionshare/resources/images/countries/er-dark.png b/desktop/onionshare/resources/images/countries/er-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/er-dark.png rename to desktop/onionshare/resources/images/countries/er-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/er-light.png b/desktop/onionshare/resources/images/countries/er-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/er-light.png rename to desktop/onionshare/resources/images/countries/er-light.png diff --git a/desktop/src/onionshare/resources/images/countries/es-dark.png b/desktop/onionshare/resources/images/countries/es-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/es-dark.png rename to desktop/onionshare/resources/images/countries/es-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/es-light.png b/desktop/onionshare/resources/images/countries/es-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/es-light.png rename to desktop/onionshare/resources/images/countries/es-light.png diff --git a/desktop/src/onionshare/resources/images/countries/et-dark.png b/desktop/onionshare/resources/images/countries/et-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/et-dark.png rename to desktop/onionshare/resources/images/countries/et-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/et-light.png b/desktop/onionshare/resources/images/countries/et-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/et-light.png rename to desktop/onionshare/resources/images/countries/et-light.png diff --git a/desktop/src/onionshare/resources/images/countries/fi-dark.png b/desktop/onionshare/resources/images/countries/fi-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fi-dark.png rename to desktop/onionshare/resources/images/countries/fi-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/fi-light.png b/desktop/onionshare/resources/images/countries/fi-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fi-light.png rename to desktop/onionshare/resources/images/countries/fi-light.png diff --git a/desktop/src/onionshare/resources/images/countries/fj-dark.png b/desktop/onionshare/resources/images/countries/fj-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fj-dark.png rename to desktop/onionshare/resources/images/countries/fj-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/fj-light.png b/desktop/onionshare/resources/images/countries/fj-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fj-light.png rename to desktop/onionshare/resources/images/countries/fj-light.png diff --git a/desktop/src/onionshare/resources/images/countries/fk-dark.png b/desktop/onionshare/resources/images/countries/fk-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fk-dark.png rename to desktop/onionshare/resources/images/countries/fk-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/fk-light.png b/desktop/onionshare/resources/images/countries/fk-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fk-light.png rename to desktop/onionshare/resources/images/countries/fk-light.png diff --git a/desktop/src/onionshare/resources/images/countries/fo-dark.png b/desktop/onionshare/resources/images/countries/fo-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fo-dark.png rename to desktop/onionshare/resources/images/countries/fo-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/fo-light.png b/desktop/onionshare/resources/images/countries/fo-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fo-light.png rename to desktop/onionshare/resources/images/countries/fo-light.png diff --git a/desktop/src/onionshare/resources/images/countries/fr-dark.png b/desktop/onionshare/resources/images/countries/fr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fr-dark.png rename to desktop/onionshare/resources/images/countries/fr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/fr-light.png b/desktop/onionshare/resources/images/countries/fr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/fr-light.png rename to desktop/onionshare/resources/images/countries/fr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ga-dark.png b/desktop/onionshare/resources/images/countries/ga-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ga-dark.png rename to desktop/onionshare/resources/images/countries/ga-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ga-light.png b/desktop/onionshare/resources/images/countries/ga-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ga-light.png rename to desktop/onionshare/resources/images/countries/ga-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gb-dark.png b/desktop/onionshare/resources/images/countries/gb-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gb-dark.png rename to desktop/onionshare/resources/images/countries/gb-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gb-light.png b/desktop/onionshare/resources/images/countries/gb-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gb-light.png rename to desktop/onionshare/resources/images/countries/gb-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gd-dark.png b/desktop/onionshare/resources/images/countries/gd-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gd-dark.png rename to desktop/onionshare/resources/images/countries/gd-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gd-light.png b/desktop/onionshare/resources/images/countries/gd-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gd-light.png rename to desktop/onionshare/resources/images/countries/gd-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ge-dark.png b/desktop/onionshare/resources/images/countries/ge-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ge-dark.png rename to desktop/onionshare/resources/images/countries/ge-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ge-light.png b/desktop/onionshare/resources/images/countries/ge-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ge-light.png rename to desktop/onionshare/resources/images/countries/ge-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gf-dark.png b/desktop/onionshare/resources/images/countries/gf-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gf-dark.png rename to desktop/onionshare/resources/images/countries/gf-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gf-light.png b/desktop/onionshare/resources/images/countries/gf-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gf-light.png rename to desktop/onionshare/resources/images/countries/gf-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gg-dark.png b/desktop/onionshare/resources/images/countries/gg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gg-dark.png rename to desktop/onionshare/resources/images/countries/gg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gg-light.png b/desktop/onionshare/resources/images/countries/gg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gg-light.png rename to desktop/onionshare/resources/images/countries/gg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gh-dark.png b/desktop/onionshare/resources/images/countries/gh-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gh-dark.png rename to desktop/onionshare/resources/images/countries/gh-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gh-light.png b/desktop/onionshare/resources/images/countries/gh-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gh-light.png rename to desktop/onionshare/resources/images/countries/gh-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gi-dark.png b/desktop/onionshare/resources/images/countries/gi-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gi-dark.png rename to desktop/onionshare/resources/images/countries/gi-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gi-light.png b/desktop/onionshare/resources/images/countries/gi-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gi-light.png rename to desktop/onionshare/resources/images/countries/gi-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gl-dark.png b/desktop/onionshare/resources/images/countries/gl-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gl-dark.png rename to desktop/onionshare/resources/images/countries/gl-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gl-light.png b/desktop/onionshare/resources/images/countries/gl-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gl-light.png rename to desktop/onionshare/resources/images/countries/gl-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gm-dark.png b/desktop/onionshare/resources/images/countries/gm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gm-dark.png rename to desktop/onionshare/resources/images/countries/gm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gm-light.png b/desktop/onionshare/resources/images/countries/gm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gm-light.png rename to desktop/onionshare/resources/images/countries/gm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gn-dark.png b/desktop/onionshare/resources/images/countries/gn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gn-dark.png rename to desktop/onionshare/resources/images/countries/gn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gn-light.png b/desktop/onionshare/resources/images/countries/gn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gn-light.png rename to desktop/onionshare/resources/images/countries/gn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gp-dark.png b/desktop/onionshare/resources/images/countries/gp-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gp-dark.png rename to desktop/onionshare/resources/images/countries/gp-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gp-light.png b/desktop/onionshare/resources/images/countries/gp-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gp-light.png rename to desktop/onionshare/resources/images/countries/gp-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gq-dark.png b/desktop/onionshare/resources/images/countries/gq-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gq-dark.png rename to desktop/onionshare/resources/images/countries/gq-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gq-light.png b/desktop/onionshare/resources/images/countries/gq-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gq-light.png rename to desktop/onionshare/resources/images/countries/gq-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gr-dark.png b/desktop/onionshare/resources/images/countries/gr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gr-dark.png rename to desktop/onionshare/resources/images/countries/gr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gr-light.png b/desktop/onionshare/resources/images/countries/gr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gr-light.png rename to desktop/onionshare/resources/images/countries/gr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gs-dark.png b/desktop/onionshare/resources/images/countries/gs-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gs-dark.png rename to desktop/onionshare/resources/images/countries/gs-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gs-light.png b/desktop/onionshare/resources/images/countries/gs-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gs-light.png rename to desktop/onionshare/resources/images/countries/gs-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gt-dark.png b/desktop/onionshare/resources/images/countries/gt-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gt-dark.png rename to desktop/onionshare/resources/images/countries/gt-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gt-light.png b/desktop/onionshare/resources/images/countries/gt-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gt-light.png rename to desktop/onionshare/resources/images/countries/gt-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gu-dark.png b/desktop/onionshare/resources/images/countries/gu-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gu-dark.png rename to desktop/onionshare/resources/images/countries/gu-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gu-light.png b/desktop/onionshare/resources/images/countries/gu-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gu-light.png rename to desktop/onionshare/resources/images/countries/gu-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gw-dark.png b/desktop/onionshare/resources/images/countries/gw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gw-dark.png rename to desktop/onionshare/resources/images/countries/gw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gw-light.png b/desktop/onionshare/resources/images/countries/gw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gw-light.png rename to desktop/onionshare/resources/images/countries/gw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/gy-dark.png b/desktop/onionshare/resources/images/countries/gy-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gy-dark.png rename to desktop/onionshare/resources/images/countries/gy-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/gy-light.png b/desktop/onionshare/resources/images/countries/gy-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/gy-light.png rename to desktop/onionshare/resources/images/countries/gy-light.png diff --git a/desktop/src/onionshare/resources/images/countries/hk-dark.png b/desktop/onionshare/resources/images/countries/hk-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hk-dark.png rename to desktop/onionshare/resources/images/countries/hk-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/hk-light.png b/desktop/onionshare/resources/images/countries/hk-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hk-light.png rename to desktop/onionshare/resources/images/countries/hk-light.png diff --git a/desktop/src/onionshare/resources/images/countries/hm-dark.png b/desktop/onionshare/resources/images/countries/hm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hm-dark.png rename to desktop/onionshare/resources/images/countries/hm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/hm-light.png b/desktop/onionshare/resources/images/countries/hm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hm-light.png rename to desktop/onionshare/resources/images/countries/hm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/hn-dark.png b/desktop/onionshare/resources/images/countries/hn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hn-dark.png rename to desktop/onionshare/resources/images/countries/hn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/hn-light.png b/desktop/onionshare/resources/images/countries/hn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hn-light.png rename to desktop/onionshare/resources/images/countries/hn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/hr-dark.png b/desktop/onionshare/resources/images/countries/hr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hr-dark.png rename to desktop/onionshare/resources/images/countries/hr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/hr-light.png b/desktop/onionshare/resources/images/countries/hr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hr-light.png rename to desktop/onionshare/resources/images/countries/hr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ht-dark.png b/desktop/onionshare/resources/images/countries/ht-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ht-dark.png rename to desktop/onionshare/resources/images/countries/ht-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ht-light.png b/desktop/onionshare/resources/images/countries/ht-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ht-light.png rename to desktop/onionshare/resources/images/countries/ht-light.png diff --git a/desktop/src/onionshare/resources/images/countries/hu-dark.png b/desktop/onionshare/resources/images/countries/hu-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hu-dark.png rename to desktop/onionshare/resources/images/countries/hu-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/hu-light.png b/desktop/onionshare/resources/images/countries/hu-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/hu-light.png rename to desktop/onionshare/resources/images/countries/hu-light.png diff --git a/desktop/src/onionshare/resources/images/countries/id-dark.png b/desktop/onionshare/resources/images/countries/id-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/id-dark.png rename to desktop/onionshare/resources/images/countries/id-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/id-light.png b/desktop/onionshare/resources/images/countries/id-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/id-light.png rename to desktop/onionshare/resources/images/countries/id-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ie-dark.png b/desktop/onionshare/resources/images/countries/ie-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ie-dark.png rename to desktop/onionshare/resources/images/countries/ie-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ie-light.png b/desktop/onionshare/resources/images/countries/ie-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ie-light.png rename to desktop/onionshare/resources/images/countries/ie-light.png diff --git a/desktop/src/onionshare/resources/images/countries/il-dark.png b/desktop/onionshare/resources/images/countries/il-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/il-dark.png rename to desktop/onionshare/resources/images/countries/il-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/il-light.png b/desktop/onionshare/resources/images/countries/il-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/il-light.png rename to desktop/onionshare/resources/images/countries/il-light.png diff --git a/desktop/src/onionshare/resources/images/countries/im-dark.png b/desktop/onionshare/resources/images/countries/im-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/im-dark.png rename to desktop/onionshare/resources/images/countries/im-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/im-light.png b/desktop/onionshare/resources/images/countries/im-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/im-light.png rename to desktop/onionshare/resources/images/countries/im-light.png diff --git a/desktop/src/onionshare/resources/images/countries/in-dark.png b/desktop/onionshare/resources/images/countries/in-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/in-dark.png rename to desktop/onionshare/resources/images/countries/in-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/in-light.png b/desktop/onionshare/resources/images/countries/in-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/in-light.png rename to desktop/onionshare/resources/images/countries/in-light.png diff --git a/desktop/src/onionshare/resources/images/countries/io-dark.png b/desktop/onionshare/resources/images/countries/io-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/io-dark.png rename to desktop/onionshare/resources/images/countries/io-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/io-light.png b/desktop/onionshare/resources/images/countries/io-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/io-light.png rename to desktop/onionshare/resources/images/countries/io-light.png diff --git a/desktop/src/onionshare/resources/images/countries/iq-dark.png b/desktop/onionshare/resources/images/countries/iq-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/iq-dark.png rename to desktop/onionshare/resources/images/countries/iq-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/iq-light.png b/desktop/onionshare/resources/images/countries/iq-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/iq-light.png rename to desktop/onionshare/resources/images/countries/iq-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ir-dark.png b/desktop/onionshare/resources/images/countries/ir-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ir-dark.png rename to desktop/onionshare/resources/images/countries/ir-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ir-light.png b/desktop/onionshare/resources/images/countries/ir-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ir-light.png rename to desktop/onionshare/resources/images/countries/ir-light.png diff --git a/desktop/src/onionshare/resources/images/countries/is-dark.png b/desktop/onionshare/resources/images/countries/is-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/is-dark.png rename to desktop/onionshare/resources/images/countries/is-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/is-light.png b/desktop/onionshare/resources/images/countries/is-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/is-light.png rename to desktop/onionshare/resources/images/countries/is-light.png diff --git a/desktop/src/onionshare/resources/images/countries/it-dark.png b/desktop/onionshare/resources/images/countries/it-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/it-dark.png rename to desktop/onionshare/resources/images/countries/it-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/it-light.png b/desktop/onionshare/resources/images/countries/it-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/it-light.png rename to desktop/onionshare/resources/images/countries/it-light.png diff --git a/desktop/src/onionshare/resources/images/countries/jm-dark.png b/desktop/onionshare/resources/images/countries/jm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/jm-dark.png rename to desktop/onionshare/resources/images/countries/jm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/jm-light.png b/desktop/onionshare/resources/images/countries/jm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/jm-light.png rename to desktop/onionshare/resources/images/countries/jm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/jo-dark.png b/desktop/onionshare/resources/images/countries/jo-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/jo-dark.png rename to desktop/onionshare/resources/images/countries/jo-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/jo-light.png b/desktop/onionshare/resources/images/countries/jo-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/jo-light.png rename to desktop/onionshare/resources/images/countries/jo-light.png diff --git a/desktop/src/onionshare/resources/images/countries/jp-dark.png b/desktop/onionshare/resources/images/countries/jp-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/jp-dark.png rename to desktop/onionshare/resources/images/countries/jp-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/jp-light.png b/desktop/onionshare/resources/images/countries/jp-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/jp-light.png rename to desktop/onionshare/resources/images/countries/jp-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ke-dark.png b/desktop/onionshare/resources/images/countries/ke-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ke-dark.png rename to desktop/onionshare/resources/images/countries/ke-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ke-light.png b/desktop/onionshare/resources/images/countries/ke-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ke-light.png rename to desktop/onionshare/resources/images/countries/ke-light.png diff --git a/desktop/src/onionshare/resources/images/countries/kg-dark.png b/desktop/onionshare/resources/images/countries/kg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kg-dark.png rename to desktop/onionshare/resources/images/countries/kg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/kg-light.png b/desktop/onionshare/resources/images/countries/kg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kg-light.png rename to desktop/onionshare/resources/images/countries/kg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/kh-dark.png b/desktop/onionshare/resources/images/countries/kh-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kh-dark.png rename to desktop/onionshare/resources/images/countries/kh-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/kh-light.png b/desktop/onionshare/resources/images/countries/kh-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kh-light.png rename to desktop/onionshare/resources/images/countries/kh-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ki-dark.png b/desktop/onionshare/resources/images/countries/ki-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ki-dark.png rename to desktop/onionshare/resources/images/countries/ki-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ki-light.png b/desktop/onionshare/resources/images/countries/ki-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ki-light.png rename to desktop/onionshare/resources/images/countries/ki-light.png diff --git a/desktop/src/onionshare/resources/images/countries/km-dark.png b/desktop/onionshare/resources/images/countries/km-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/km-dark.png rename to desktop/onionshare/resources/images/countries/km-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/km-light.png b/desktop/onionshare/resources/images/countries/km-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/km-light.png rename to desktop/onionshare/resources/images/countries/km-light.png diff --git a/desktop/src/onionshare/resources/images/countries/kn-dark.png b/desktop/onionshare/resources/images/countries/kn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kn-dark.png rename to desktop/onionshare/resources/images/countries/kn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/kn-light.png b/desktop/onionshare/resources/images/countries/kn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kn-light.png rename to desktop/onionshare/resources/images/countries/kn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/kp-dark.png b/desktop/onionshare/resources/images/countries/kp-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kp-dark.png rename to desktop/onionshare/resources/images/countries/kp-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/kp-light.png b/desktop/onionshare/resources/images/countries/kp-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kp-light.png rename to desktop/onionshare/resources/images/countries/kp-light.png diff --git a/desktop/src/onionshare/resources/images/countries/kr-dark.png b/desktop/onionshare/resources/images/countries/kr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kr-dark.png rename to desktop/onionshare/resources/images/countries/kr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/kr-light.png b/desktop/onionshare/resources/images/countries/kr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kr-light.png rename to desktop/onionshare/resources/images/countries/kr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/kw-dark.png b/desktop/onionshare/resources/images/countries/kw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kw-dark.png rename to desktop/onionshare/resources/images/countries/kw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/kw-light.png b/desktop/onionshare/resources/images/countries/kw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kw-light.png rename to desktop/onionshare/resources/images/countries/kw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ky-dark.png b/desktop/onionshare/resources/images/countries/ky-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ky-dark.png rename to desktop/onionshare/resources/images/countries/ky-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ky-light.png b/desktop/onionshare/resources/images/countries/ky-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ky-light.png rename to desktop/onionshare/resources/images/countries/ky-light.png diff --git a/desktop/src/onionshare/resources/images/countries/kz-dark.png b/desktop/onionshare/resources/images/countries/kz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kz-dark.png rename to desktop/onionshare/resources/images/countries/kz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/kz-light.png b/desktop/onionshare/resources/images/countries/kz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/kz-light.png rename to desktop/onionshare/resources/images/countries/kz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/la-dark.png b/desktop/onionshare/resources/images/countries/la-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/la-dark.png rename to desktop/onionshare/resources/images/countries/la-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/la-light.png b/desktop/onionshare/resources/images/countries/la-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/la-light.png rename to desktop/onionshare/resources/images/countries/la-light.png diff --git a/desktop/src/onionshare/resources/images/countries/lb-dark.png b/desktop/onionshare/resources/images/countries/lb-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lb-dark.png rename to desktop/onionshare/resources/images/countries/lb-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/lb-light.png b/desktop/onionshare/resources/images/countries/lb-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lb-light.png rename to desktop/onionshare/resources/images/countries/lb-light.png diff --git a/desktop/src/onionshare/resources/images/countries/lc-dark.png b/desktop/onionshare/resources/images/countries/lc-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lc-dark.png rename to desktop/onionshare/resources/images/countries/lc-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/lc-light.png b/desktop/onionshare/resources/images/countries/lc-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lc-light.png rename to desktop/onionshare/resources/images/countries/lc-light.png diff --git a/desktop/src/onionshare/resources/images/countries/li-dark.png b/desktop/onionshare/resources/images/countries/li-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/li-dark.png rename to desktop/onionshare/resources/images/countries/li-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/li-light.png b/desktop/onionshare/resources/images/countries/li-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/li-light.png rename to desktop/onionshare/resources/images/countries/li-light.png diff --git a/desktop/src/onionshare/resources/images/countries/lk-dark.png b/desktop/onionshare/resources/images/countries/lk-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lk-dark.png rename to desktop/onionshare/resources/images/countries/lk-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/lk-light.png b/desktop/onionshare/resources/images/countries/lk-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lk-light.png rename to desktop/onionshare/resources/images/countries/lk-light.png diff --git a/desktop/src/onionshare/resources/images/countries/lr-dark.png b/desktop/onionshare/resources/images/countries/lr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lr-dark.png rename to desktop/onionshare/resources/images/countries/lr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/lr-light.png b/desktop/onionshare/resources/images/countries/lr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lr-light.png rename to desktop/onionshare/resources/images/countries/lr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ls-dark.png b/desktop/onionshare/resources/images/countries/ls-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ls-dark.png rename to desktop/onionshare/resources/images/countries/ls-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ls-light.png b/desktop/onionshare/resources/images/countries/ls-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ls-light.png rename to desktop/onionshare/resources/images/countries/ls-light.png diff --git a/desktop/src/onionshare/resources/images/countries/lt-dark.png b/desktop/onionshare/resources/images/countries/lt-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lt-dark.png rename to desktop/onionshare/resources/images/countries/lt-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/lt-light.png b/desktop/onionshare/resources/images/countries/lt-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lt-light.png rename to desktop/onionshare/resources/images/countries/lt-light.png diff --git a/desktop/src/onionshare/resources/images/countries/lu-dark.png b/desktop/onionshare/resources/images/countries/lu-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lu-dark.png rename to desktop/onionshare/resources/images/countries/lu-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/lu-light.png b/desktop/onionshare/resources/images/countries/lu-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lu-light.png rename to desktop/onionshare/resources/images/countries/lu-light.png diff --git a/desktop/src/onionshare/resources/images/countries/lv-dark.png b/desktop/onionshare/resources/images/countries/lv-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lv-dark.png rename to desktop/onionshare/resources/images/countries/lv-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/lv-light.png b/desktop/onionshare/resources/images/countries/lv-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/lv-light.png rename to desktop/onionshare/resources/images/countries/lv-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ly-dark.png b/desktop/onionshare/resources/images/countries/ly-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ly-dark.png rename to desktop/onionshare/resources/images/countries/ly-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ly-light.png b/desktop/onionshare/resources/images/countries/ly-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ly-light.png rename to desktop/onionshare/resources/images/countries/ly-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ma-dark.png b/desktop/onionshare/resources/images/countries/ma-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ma-dark.png rename to desktop/onionshare/resources/images/countries/ma-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ma-light.png b/desktop/onionshare/resources/images/countries/ma-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ma-light.png rename to desktop/onionshare/resources/images/countries/ma-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mc-dark.png b/desktop/onionshare/resources/images/countries/mc-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mc-dark.png rename to desktop/onionshare/resources/images/countries/mc-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mc-light.png b/desktop/onionshare/resources/images/countries/mc-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mc-light.png rename to desktop/onionshare/resources/images/countries/mc-light.png diff --git a/desktop/src/onionshare/resources/images/countries/md-dark.png b/desktop/onionshare/resources/images/countries/md-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/md-dark.png rename to desktop/onionshare/resources/images/countries/md-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/md-light.png b/desktop/onionshare/resources/images/countries/md-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/md-light.png rename to desktop/onionshare/resources/images/countries/md-light.png diff --git a/desktop/src/onionshare/resources/images/countries/me-dark.png b/desktop/onionshare/resources/images/countries/me-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/me-dark.png rename to desktop/onionshare/resources/images/countries/me-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/me-light.png b/desktop/onionshare/resources/images/countries/me-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/me-light.png rename to desktop/onionshare/resources/images/countries/me-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mf-dark.png b/desktop/onionshare/resources/images/countries/mf-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mf-dark.png rename to desktop/onionshare/resources/images/countries/mf-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mf-light.png b/desktop/onionshare/resources/images/countries/mf-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mf-light.png rename to desktop/onionshare/resources/images/countries/mf-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mg-dark.png b/desktop/onionshare/resources/images/countries/mg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mg-dark.png rename to desktop/onionshare/resources/images/countries/mg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mg-light.png b/desktop/onionshare/resources/images/countries/mg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mg-light.png rename to desktop/onionshare/resources/images/countries/mg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mk-dark.png b/desktop/onionshare/resources/images/countries/mk-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mk-dark.png rename to desktop/onionshare/resources/images/countries/mk-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mk-light.png b/desktop/onionshare/resources/images/countries/mk-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mk-light.png rename to desktop/onionshare/resources/images/countries/mk-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ml-dark.png b/desktop/onionshare/resources/images/countries/ml-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ml-dark.png rename to desktop/onionshare/resources/images/countries/ml-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ml-light.png b/desktop/onionshare/resources/images/countries/ml-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ml-light.png rename to desktop/onionshare/resources/images/countries/ml-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mm-dark.png b/desktop/onionshare/resources/images/countries/mm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mm-dark.png rename to desktop/onionshare/resources/images/countries/mm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mm-light.png b/desktop/onionshare/resources/images/countries/mm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mm-light.png rename to desktop/onionshare/resources/images/countries/mm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mn-dark.png b/desktop/onionshare/resources/images/countries/mn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mn-dark.png rename to desktop/onionshare/resources/images/countries/mn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mn-light.png b/desktop/onionshare/resources/images/countries/mn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mn-light.png rename to desktop/onionshare/resources/images/countries/mn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mo-dark.png b/desktop/onionshare/resources/images/countries/mo-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mo-dark.png rename to desktop/onionshare/resources/images/countries/mo-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mo-light.png b/desktop/onionshare/resources/images/countries/mo-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mo-light.png rename to desktop/onionshare/resources/images/countries/mo-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mq-dark.png b/desktop/onionshare/resources/images/countries/mq-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mq-dark.png rename to desktop/onionshare/resources/images/countries/mq-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mq-light.png b/desktop/onionshare/resources/images/countries/mq-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mq-light.png rename to desktop/onionshare/resources/images/countries/mq-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mr-dark.png b/desktop/onionshare/resources/images/countries/mr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mr-dark.png rename to desktop/onionshare/resources/images/countries/mr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mr-light.png b/desktop/onionshare/resources/images/countries/mr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mr-light.png rename to desktop/onionshare/resources/images/countries/mr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ms-dark.png b/desktop/onionshare/resources/images/countries/ms-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ms-dark.png rename to desktop/onionshare/resources/images/countries/ms-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ms-light.png b/desktop/onionshare/resources/images/countries/ms-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ms-light.png rename to desktop/onionshare/resources/images/countries/ms-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mt-dark.png b/desktop/onionshare/resources/images/countries/mt-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mt-dark.png rename to desktop/onionshare/resources/images/countries/mt-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mt-light.png b/desktop/onionshare/resources/images/countries/mt-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mt-light.png rename to desktop/onionshare/resources/images/countries/mt-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mu-dark.png b/desktop/onionshare/resources/images/countries/mu-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mu-dark.png rename to desktop/onionshare/resources/images/countries/mu-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mu-light.png b/desktop/onionshare/resources/images/countries/mu-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mu-light.png rename to desktop/onionshare/resources/images/countries/mu-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mv-dark.png b/desktop/onionshare/resources/images/countries/mv-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mv-dark.png rename to desktop/onionshare/resources/images/countries/mv-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mv-light.png b/desktop/onionshare/resources/images/countries/mv-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mv-light.png rename to desktop/onionshare/resources/images/countries/mv-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mw-dark.png b/desktop/onionshare/resources/images/countries/mw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mw-dark.png rename to desktop/onionshare/resources/images/countries/mw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mw-light.png b/desktop/onionshare/resources/images/countries/mw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mw-light.png rename to desktop/onionshare/resources/images/countries/mw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mx-dark.png b/desktop/onionshare/resources/images/countries/mx-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mx-dark.png rename to desktop/onionshare/resources/images/countries/mx-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mx-light.png b/desktop/onionshare/resources/images/countries/mx-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mx-light.png rename to desktop/onionshare/resources/images/countries/mx-light.png diff --git a/desktop/src/onionshare/resources/images/countries/my-dark.png b/desktop/onionshare/resources/images/countries/my-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/my-dark.png rename to desktop/onionshare/resources/images/countries/my-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/my-light.png b/desktop/onionshare/resources/images/countries/my-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/my-light.png rename to desktop/onionshare/resources/images/countries/my-light.png diff --git a/desktop/src/onionshare/resources/images/countries/mz-dark.png b/desktop/onionshare/resources/images/countries/mz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mz-dark.png rename to desktop/onionshare/resources/images/countries/mz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/mz-light.png b/desktop/onionshare/resources/images/countries/mz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/mz-light.png rename to desktop/onionshare/resources/images/countries/mz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/na-dark.png b/desktop/onionshare/resources/images/countries/na-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/na-dark.png rename to desktop/onionshare/resources/images/countries/na-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/na-light.png b/desktop/onionshare/resources/images/countries/na-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/na-light.png rename to desktop/onionshare/resources/images/countries/na-light.png diff --git a/desktop/src/onionshare/resources/images/countries/nc-dark.png b/desktop/onionshare/resources/images/countries/nc-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nc-dark.png rename to desktop/onionshare/resources/images/countries/nc-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/nc-light.png b/desktop/onionshare/resources/images/countries/nc-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nc-light.png rename to desktop/onionshare/resources/images/countries/nc-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ne-dark.png b/desktop/onionshare/resources/images/countries/ne-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ne-dark.png rename to desktop/onionshare/resources/images/countries/ne-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ne-light.png b/desktop/onionshare/resources/images/countries/ne-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ne-light.png rename to desktop/onionshare/resources/images/countries/ne-light.png diff --git a/desktop/src/onionshare/resources/images/countries/nf-dark.png b/desktop/onionshare/resources/images/countries/nf-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nf-dark.png rename to desktop/onionshare/resources/images/countries/nf-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/nf-light.png b/desktop/onionshare/resources/images/countries/nf-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nf-light.png rename to desktop/onionshare/resources/images/countries/nf-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ng-dark.png b/desktop/onionshare/resources/images/countries/ng-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ng-dark.png rename to desktop/onionshare/resources/images/countries/ng-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ng-light.png b/desktop/onionshare/resources/images/countries/ng-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ng-light.png rename to desktop/onionshare/resources/images/countries/ng-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ni-dark.png b/desktop/onionshare/resources/images/countries/ni-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ni-dark.png rename to desktop/onionshare/resources/images/countries/ni-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ni-light.png b/desktop/onionshare/resources/images/countries/ni-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ni-light.png rename to desktop/onionshare/resources/images/countries/ni-light.png diff --git a/desktop/src/onionshare/resources/images/countries/nl-dark.png b/desktop/onionshare/resources/images/countries/nl-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nl-dark.png rename to desktop/onionshare/resources/images/countries/nl-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/nl-light.png b/desktop/onionshare/resources/images/countries/nl-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nl-light.png rename to desktop/onionshare/resources/images/countries/nl-light.png diff --git a/desktop/src/onionshare/resources/images/countries/no-dark.png b/desktop/onionshare/resources/images/countries/no-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/no-dark.png rename to desktop/onionshare/resources/images/countries/no-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/no-light.png b/desktop/onionshare/resources/images/countries/no-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/no-light.png rename to desktop/onionshare/resources/images/countries/no-light.png diff --git a/desktop/src/onionshare/resources/images/countries/np-dark.png b/desktop/onionshare/resources/images/countries/np-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/np-dark.png rename to desktop/onionshare/resources/images/countries/np-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/np-light.png b/desktop/onionshare/resources/images/countries/np-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/np-light.png rename to desktop/onionshare/resources/images/countries/np-light.png diff --git a/desktop/src/onionshare/resources/images/countries/nr-dark.png b/desktop/onionshare/resources/images/countries/nr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nr-dark.png rename to desktop/onionshare/resources/images/countries/nr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/nr-light.png b/desktop/onionshare/resources/images/countries/nr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nr-light.png rename to desktop/onionshare/resources/images/countries/nr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/nu-dark.png b/desktop/onionshare/resources/images/countries/nu-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nu-dark.png rename to desktop/onionshare/resources/images/countries/nu-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/nu-light.png b/desktop/onionshare/resources/images/countries/nu-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nu-light.png rename to desktop/onionshare/resources/images/countries/nu-light.png diff --git a/desktop/src/onionshare/resources/images/countries/nz-dark.png b/desktop/onionshare/resources/images/countries/nz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nz-dark.png rename to desktop/onionshare/resources/images/countries/nz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/nz-light.png b/desktop/onionshare/resources/images/countries/nz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/nz-light.png rename to desktop/onionshare/resources/images/countries/nz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/om-dark.png b/desktop/onionshare/resources/images/countries/om-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/om-dark.png rename to desktop/onionshare/resources/images/countries/om-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/om-light.png b/desktop/onionshare/resources/images/countries/om-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/om-light.png rename to desktop/onionshare/resources/images/countries/om-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pa-dark.png b/desktop/onionshare/resources/images/countries/pa-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pa-dark.png rename to desktop/onionshare/resources/images/countries/pa-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pa-light.png b/desktop/onionshare/resources/images/countries/pa-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pa-light.png rename to desktop/onionshare/resources/images/countries/pa-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pe-dark.png b/desktop/onionshare/resources/images/countries/pe-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pe-dark.png rename to desktop/onionshare/resources/images/countries/pe-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pe-light.png b/desktop/onionshare/resources/images/countries/pe-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pe-light.png rename to desktop/onionshare/resources/images/countries/pe-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pf-dark.png b/desktop/onionshare/resources/images/countries/pf-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pf-dark.png rename to desktop/onionshare/resources/images/countries/pf-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pf-light.png b/desktop/onionshare/resources/images/countries/pf-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pf-light.png rename to desktop/onionshare/resources/images/countries/pf-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pg-dark.png b/desktop/onionshare/resources/images/countries/pg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pg-dark.png rename to desktop/onionshare/resources/images/countries/pg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pg-light.png b/desktop/onionshare/resources/images/countries/pg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pg-light.png rename to desktop/onionshare/resources/images/countries/pg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ph-dark.png b/desktop/onionshare/resources/images/countries/ph-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ph-dark.png rename to desktop/onionshare/resources/images/countries/ph-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ph-light.png b/desktop/onionshare/resources/images/countries/ph-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ph-light.png rename to desktop/onionshare/resources/images/countries/ph-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pk-dark.png b/desktop/onionshare/resources/images/countries/pk-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pk-dark.png rename to desktop/onionshare/resources/images/countries/pk-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pk-light.png b/desktop/onionshare/resources/images/countries/pk-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pk-light.png rename to desktop/onionshare/resources/images/countries/pk-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pl-dark.png b/desktop/onionshare/resources/images/countries/pl-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pl-dark.png rename to desktop/onionshare/resources/images/countries/pl-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pl-light.png b/desktop/onionshare/resources/images/countries/pl-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pl-light.png rename to desktop/onionshare/resources/images/countries/pl-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pm-dark.png b/desktop/onionshare/resources/images/countries/pm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pm-dark.png rename to desktop/onionshare/resources/images/countries/pm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pm-light.png b/desktop/onionshare/resources/images/countries/pm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pm-light.png rename to desktop/onionshare/resources/images/countries/pm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pn-dark.png b/desktop/onionshare/resources/images/countries/pn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pn-dark.png rename to desktop/onionshare/resources/images/countries/pn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pn-light.png b/desktop/onionshare/resources/images/countries/pn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pn-light.png rename to desktop/onionshare/resources/images/countries/pn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pr-dark.png b/desktop/onionshare/resources/images/countries/pr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pr-dark.png rename to desktop/onionshare/resources/images/countries/pr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pr-light.png b/desktop/onionshare/resources/images/countries/pr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pr-light.png rename to desktop/onionshare/resources/images/countries/pr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pt-dark.png b/desktop/onionshare/resources/images/countries/pt-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pt-dark.png rename to desktop/onionshare/resources/images/countries/pt-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pt-light.png b/desktop/onionshare/resources/images/countries/pt-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pt-light.png rename to desktop/onionshare/resources/images/countries/pt-light.png diff --git a/desktop/src/onionshare/resources/images/countries/pw-dark.png b/desktop/onionshare/resources/images/countries/pw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pw-dark.png rename to desktop/onionshare/resources/images/countries/pw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/pw-light.png b/desktop/onionshare/resources/images/countries/pw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/pw-light.png rename to desktop/onionshare/resources/images/countries/pw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/py-dark.png b/desktop/onionshare/resources/images/countries/py-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/py-dark.png rename to desktop/onionshare/resources/images/countries/py-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/py-light.png b/desktop/onionshare/resources/images/countries/py-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/py-light.png rename to desktop/onionshare/resources/images/countries/py-light.png diff --git a/desktop/src/onionshare/resources/images/countries/qa-dark.png b/desktop/onionshare/resources/images/countries/qa-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/qa-dark.png rename to desktop/onionshare/resources/images/countries/qa-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/qa-light.png b/desktop/onionshare/resources/images/countries/qa-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/qa-light.png rename to desktop/onionshare/resources/images/countries/qa-light.png diff --git a/desktop/src/onionshare/resources/images/countries/re-dark.png b/desktop/onionshare/resources/images/countries/re-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/re-dark.png rename to desktop/onionshare/resources/images/countries/re-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/re-light.png b/desktop/onionshare/resources/images/countries/re-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/re-light.png rename to desktop/onionshare/resources/images/countries/re-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ro-dark.png b/desktop/onionshare/resources/images/countries/ro-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ro-dark.png rename to desktop/onionshare/resources/images/countries/ro-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ro-light.png b/desktop/onionshare/resources/images/countries/ro-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ro-light.png rename to desktop/onionshare/resources/images/countries/ro-light.png diff --git a/desktop/src/onionshare/resources/images/countries/rs-dark.png b/desktop/onionshare/resources/images/countries/rs-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/rs-dark.png rename to desktop/onionshare/resources/images/countries/rs-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/rs-light.png b/desktop/onionshare/resources/images/countries/rs-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/rs-light.png rename to desktop/onionshare/resources/images/countries/rs-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ru-dark.png b/desktop/onionshare/resources/images/countries/ru-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ru-dark.png rename to desktop/onionshare/resources/images/countries/ru-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ru-light.png b/desktop/onionshare/resources/images/countries/ru-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ru-light.png rename to desktop/onionshare/resources/images/countries/ru-light.png diff --git a/desktop/src/onionshare/resources/images/countries/rw-dark.png b/desktop/onionshare/resources/images/countries/rw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/rw-dark.png rename to desktop/onionshare/resources/images/countries/rw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/rw-light.png b/desktop/onionshare/resources/images/countries/rw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/rw-light.png rename to desktop/onionshare/resources/images/countries/rw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sa-dark.png b/desktop/onionshare/resources/images/countries/sa-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sa-dark.png rename to desktop/onionshare/resources/images/countries/sa-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sa-light.png b/desktop/onionshare/resources/images/countries/sa-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sa-light.png rename to desktop/onionshare/resources/images/countries/sa-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sb-dark.png b/desktop/onionshare/resources/images/countries/sb-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sb-dark.png rename to desktop/onionshare/resources/images/countries/sb-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sb-light.png b/desktop/onionshare/resources/images/countries/sb-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sb-light.png rename to desktop/onionshare/resources/images/countries/sb-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sc-dark.png b/desktop/onionshare/resources/images/countries/sc-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sc-dark.png rename to desktop/onionshare/resources/images/countries/sc-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sc-light.png b/desktop/onionshare/resources/images/countries/sc-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sc-light.png rename to desktop/onionshare/resources/images/countries/sc-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sd-dark.png b/desktop/onionshare/resources/images/countries/sd-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sd-dark.png rename to desktop/onionshare/resources/images/countries/sd-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sd-light.png b/desktop/onionshare/resources/images/countries/sd-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sd-light.png rename to desktop/onionshare/resources/images/countries/sd-light.png diff --git a/desktop/src/onionshare/resources/images/countries/se-dark.png b/desktop/onionshare/resources/images/countries/se-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/se-dark.png rename to desktop/onionshare/resources/images/countries/se-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/se-light.png b/desktop/onionshare/resources/images/countries/se-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/se-light.png rename to desktop/onionshare/resources/images/countries/se-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sg-dark.png b/desktop/onionshare/resources/images/countries/sg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sg-dark.png rename to desktop/onionshare/resources/images/countries/sg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sg-light.png b/desktop/onionshare/resources/images/countries/sg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sg-light.png rename to desktop/onionshare/resources/images/countries/sg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sh-dark.png b/desktop/onionshare/resources/images/countries/sh-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sh-dark.png rename to desktop/onionshare/resources/images/countries/sh-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sh-light.png b/desktop/onionshare/resources/images/countries/sh-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sh-light.png rename to desktop/onionshare/resources/images/countries/sh-light.png diff --git a/desktop/src/onionshare/resources/images/countries/si-dark.png b/desktop/onionshare/resources/images/countries/si-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/si-dark.png rename to desktop/onionshare/resources/images/countries/si-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/si-light.png b/desktop/onionshare/resources/images/countries/si-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/si-light.png rename to desktop/onionshare/resources/images/countries/si-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sj-dark.png b/desktop/onionshare/resources/images/countries/sj-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sj-dark.png rename to desktop/onionshare/resources/images/countries/sj-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sj-light.png b/desktop/onionshare/resources/images/countries/sj-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sj-light.png rename to desktop/onionshare/resources/images/countries/sj-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sk-dark.png b/desktop/onionshare/resources/images/countries/sk-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sk-dark.png rename to desktop/onionshare/resources/images/countries/sk-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sk-light.png b/desktop/onionshare/resources/images/countries/sk-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sk-light.png rename to desktop/onionshare/resources/images/countries/sk-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sl-dark.png b/desktop/onionshare/resources/images/countries/sl-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sl-dark.png rename to desktop/onionshare/resources/images/countries/sl-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sl-light.png b/desktop/onionshare/resources/images/countries/sl-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sl-light.png rename to desktop/onionshare/resources/images/countries/sl-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sm-dark.png b/desktop/onionshare/resources/images/countries/sm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sm-dark.png rename to desktop/onionshare/resources/images/countries/sm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sm-light.png b/desktop/onionshare/resources/images/countries/sm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sm-light.png rename to desktop/onionshare/resources/images/countries/sm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sn-dark.png b/desktop/onionshare/resources/images/countries/sn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sn-dark.png rename to desktop/onionshare/resources/images/countries/sn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sn-light.png b/desktop/onionshare/resources/images/countries/sn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sn-light.png rename to desktop/onionshare/resources/images/countries/sn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/so-dark.png b/desktop/onionshare/resources/images/countries/so-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/so-dark.png rename to desktop/onionshare/resources/images/countries/so-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/so-light.png b/desktop/onionshare/resources/images/countries/so-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/so-light.png rename to desktop/onionshare/resources/images/countries/so-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sr-dark.png b/desktop/onionshare/resources/images/countries/sr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sr-dark.png rename to desktop/onionshare/resources/images/countries/sr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sr-light.png b/desktop/onionshare/resources/images/countries/sr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sr-light.png rename to desktop/onionshare/resources/images/countries/sr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ss-dark.png b/desktop/onionshare/resources/images/countries/ss-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ss-dark.png rename to desktop/onionshare/resources/images/countries/ss-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ss-light.png b/desktop/onionshare/resources/images/countries/ss-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ss-light.png rename to desktop/onionshare/resources/images/countries/ss-light.png diff --git a/desktop/src/onionshare/resources/images/countries/st-dark.png b/desktop/onionshare/resources/images/countries/st-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/st-dark.png rename to desktop/onionshare/resources/images/countries/st-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/st-light.png b/desktop/onionshare/resources/images/countries/st-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/st-light.png rename to desktop/onionshare/resources/images/countries/st-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sv-dark.png b/desktop/onionshare/resources/images/countries/sv-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sv-dark.png rename to desktop/onionshare/resources/images/countries/sv-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sv-light.png b/desktop/onionshare/resources/images/countries/sv-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sv-light.png rename to desktop/onionshare/resources/images/countries/sv-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sx-dark.png b/desktop/onionshare/resources/images/countries/sx-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sx-dark.png rename to desktop/onionshare/resources/images/countries/sx-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sx-light.png b/desktop/onionshare/resources/images/countries/sx-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sx-light.png rename to desktop/onionshare/resources/images/countries/sx-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sy-dark.png b/desktop/onionshare/resources/images/countries/sy-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sy-dark.png rename to desktop/onionshare/resources/images/countries/sy-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sy-light.png b/desktop/onionshare/resources/images/countries/sy-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sy-light.png rename to desktop/onionshare/resources/images/countries/sy-light.png diff --git a/desktop/src/onionshare/resources/images/countries/sz-dark.png b/desktop/onionshare/resources/images/countries/sz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sz-dark.png rename to desktop/onionshare/resources/images/countries/sz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/sz-light.png b/desktop/onionshare/resources/images/countries/sz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/sz-light.png rename to desktop/onionshare/resources/images/countries/sz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tc-dark.png b/desktop/onionshare/resources/images/countries/tc-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tc-dark.png rename to desktop/onionshare/resources/images/countries/tc-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tc-light.png b/desktop/onionshare/resources/images/countries/tc-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tc-light.png rename to desktop/onionshare/resources/images/countries/tc-light.png diff --git a/desktop/src/onionshare/resources/images/countries/td-dark.png b/desktop/onionshare/resources/images/countries/td-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/td-dark.png rename to desktop/onionshare/resources/images/countries/td-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/td-light.png b/desktop/onionshare/resources/images/countries/td-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/td-light.png rename to desktop/onionshare/resources/images/countries/td-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tf-dark.png b/desktop/onionshare/resources/images/countries/tf-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tf-dark.png rename to desktop/onionshare/resources/images/countries/tf-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tf-light.png b/desktop/onionshare/resources/images/countries/tf-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tf-light.png rename to desktop/onionshare/resources/images/countries/tf-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tg-dark.png b/desktop/onionshare/resources/images/countries/tg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tg-dark.png rename to desktop/onionshare/resources/images/countries/tg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tg-light.png b/desktop/onionshare/resources/images/countries/tg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tg-light.png rename to desktop/onionshare/resources/images/countries/tg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/th-dark.png b/desktop/onionshare/resources/images/countries/th-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/th-dark.png rename to desktop/onionshare/resources/images/countries/th-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/th-light.png b/desktop/onionshare/resources/images/countries/th-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/th-light.png rename to desktop/onionshare/resources/images/countries/th-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tj-dark.png b/desktop/onionshare/resources/images/countries/tj-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tj-dark.png rename to desktop/onionshare/resources/images/countries/tj-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tj-light.png b/desktop/onionshare/resources/images/countries/tj-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tj-light.png rename to desktop/onionshare/resources/images/countries/tj-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tk-dark.png b/desktop/onionshare/resources/images/countries/tk-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tk-dark.png rename to desktop/onionshare/resources/images/countries/tk-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tk-light.png b/desktop/onionshare/resources/images/countries/tk-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tk-light.png rename to desktop/onionshare/resources/images/countries/tk-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tl-dark.png b/desktop/onionshare/resources/images/countries/tl-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tl-dark.png rename to desktop/onionshare/resources/images/countries/tl-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tl-light.png b/desktop/onionshare/resources/images/countries/tl-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tl-light.png rename to desktop/onionshare/resources/images/countries/tl-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tm-dark.png b/desktop/onionshare/resources/images/countries/tm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tm-dark.png rename to desktop/onionshare/resources/images/countries/tm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tm-light.png b/desktop/onionshare/resources/images/countries/tm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tm-light.png rename to desktop/onionshare/resources/images/countries/tm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tn-dark.png b/desktop/onionshare/resources/images/countries/tn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tn-dark.png rename to desktop/onionshare/resources/images/countries/tn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tn-light.png b/desktop/onionshare/resources/images/countries/tn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tn-light.png rename to desktop/onionshare/resources/images/countries/tn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/to-dark.png b/desktop/onionshare/resources/images/countries/to-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/to-dark.png rename to desktop/onionshare/resources/images/countries/to-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/to-light.png b/desktop/onionshare/resources/images/countries/to-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/to-light.png rename to desktop/onionshare/resources/images/countries/to-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tr-dark.png b/desktop/onionshare/resources/images/countries/tr-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tr-dark.png rename to desktop/onionshare/resources/images/countries/tr-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tr-light.png b/desktop/onionshare/resources/images/countries/tr-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tr-light.png rename to desktop/onionshare/resources/images/countries/tr-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tt-dark.png b/desktop/onionshare/resources/images/countries/tt-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tt-dark.png rename to desktop/onionshare/resources/images/countries/tt-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tt-light.png b/desktop/onionshare/resources/images/countries/tt-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tt-light.png rename to desktop/onionshare/resources/images/countries/tt-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tw-dark.png b/desktop/onionshare/resources/images/countries/tw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tw-dark.png rename to desktop/onionshare/resources/images/countries/tw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tw-light.png b/desktop/onionshare/resources/images/countries/tw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tw-light.png rename to desktop/onionshare/resources/images/countries/tw-light.png diff --git a/desktop/src/onionshare/resources/images/countries/tz-dark.png b/desktop/onionshare/resources/images/countries/tz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tz-dark.png rename to desktop/onionshare/resources/images/countries/tz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/tz-light.png b/desktop/onionshare/resources/images/countries/tz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/tz-light.png rename to desktop/onionshare/resources/images/countries/tz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ua-dark.png b/desktop/onionshare/resources/images/countries/ua-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ua-dark.png rename to desktop/onionshare/resources/images/countries/ua-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ua-light.png b/desktop/onionshare/resources/images/countries/ua-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ua-light.png rename to desktop/onionshare/resources/images/countries/ua-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ug-dark.png b/desktop/onionshare/resources/images/countries/ug-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ug-dark.png rename to desktop/onionshare/resources/images/countries/ug-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ug-light.png b/desktop/onionshare/resources/images/countries/ug-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ug-light.png rename to desktop/onionshare/resources/images/countries/ug-light.png diff --git a/desktop/src/onionshare/resources/images/countries/us-dark.png b/desktop/onionshare/resources/images/countries/us-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/us-dark.png rename to desktop/onionshare/resources/images/countries/us-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/us-light.png b/desktop/onionshare/resources/images/countries/us-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/us-light.png rename to desktop/onionshare/resources/images/countries/us-light.png diff --git a/desktop/src/onionshare/resources/images/countries/uy-dark.png b/desktop/onionshare/resources/images/countries/uy-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/uy-dark.png rename to desktop/onionshare/resources/images/countries/uy-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/uy-light.png b/desktop/onionshare/resources/images/countries/uy-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/uy-light.png rename to desktop/onionshare/resources/images/countries/uy-light.png diff --git a/desktop/src/onionshare/resources/images/countries/uz-dark.png b/desktop/onionshare/resources/images/countries/uz-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/uz-dark.png rename to desktop/onionshare/resources/images/countries/uz-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/uz-light.png b/desktop/onionshare/resources/images/countries/uz-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/uz-light.png rename to desktop/onionshare/resources/images/countries/uz-light.png diff --git a/desktop/src/onionshare/resources/images/countries/va-dark.png b/desktop/onionshare/resources/images/countries/va-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/va-dark.png rename to desktop/onionshare/resources/images/countries/va-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/va-light.png b/desktop/onionshare/resources/images/countries/va-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/va-light.png rename to desktop/onionshare/resources/images/countries/va-light.png diff --git a/desktop/src/onionshare/resources/images/countries/vc-dark.png b/desktop/onionshare/resources/images/countries/vc-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vc-dark.png rename to desktop/onionshare/resources/images/countries/vc-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/vc-light.png b/desktop/onionshare/resources/images/countries/vc-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vc-light.png rename to desktop/onionshare/resources/images/countries/vc-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ve-dark.png b/desktop/onionshare/resources/images/countries/ve-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ve-dark.png rename to desktop/onionshare/resources/images/countries/ve-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ve-light.png b/desktop/onionshare/resources/images/countries/ve-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ve-light.png rename to desktop/onionshare/resources/images/countries/ve-light.png diff --git a/desktop/src/onionshare/resources/images/countries/vg-dark.png b/desktop/onionshare/resources/images/countries/vg-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vg-dark.png rename to desktop/onionshare/resources/images/countries/vg-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/vg-light.png b/desktop/onionshare/resources/images/countries/vg-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vg-light.png rename to desktop/onionshare/resources/images/countries/vg-light.png diff --git a/desktop/src/onionshare/resources/images/countries/vi-dark.png b/desktop/onionshare/resources/images/countries/vi-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vi-dark.png rename to desktop/onionshare/resources/images/countries/vi-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/vi-light.png b/desktop/onionshare/resources/images/countries/vi-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vi-light.png rename to desktop/onionshare/resources/images/countries/vi-light.png diff --git a/desktop/src/onionshare/resources/images/countries/vn-dark.png b/desktop/onionshare/resources/images/countries/vn-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vn-dark.png rename to desktop/onionshare/resources/images/countries/vn-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/vn-light.png b/desktop/onionshare/resources/images/countries/vn-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vn-light.png rename to desktop/onionshare/resources/images/countries/vn-light.png diff --git a/desktop/src/onionshare/resources/images/countries/vu-dark.png b/desktop/onionshare/resources/images/countries/vu-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vu-dark.png rename to desktop/onionshare/resources/images/countries/vu-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/vu-light.png b/desktop/onionshare/resources/images/countries/vu-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/vu-light.png rename to desktop/onionshare/resources/images/countries/vu-light.png diff --git a/desktop/src/onionshare/resources/images/countries/wf-dark.png b/desktop/onionshare/resources/images/countries/wf-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/wf-dark.png rename to desktop/onionshare/resources/images/countries/wf-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/wf-light.png b/desktop/onionshare/resources/images/countries/wf-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/wf-light.png rename to desktop/onionshare/resources/images/countries/wf-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ws-dark.png b/desktop/onionshare/resources/images/countries/ws-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ws-dark.png rename to desktop/onionshare/resources/images/countries/ws-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ws-light.png b/desktop/onionshare/resources/images/countries/ws-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ws-light.png rename to desktop/onionshare/resources/images/countries/ws-light.png diff --git a/desktop/src/onionshare/resources/images/countries/ye-dark.png b/desktop/onionshare/resources/images/countries/ye-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ye-dark.png rename to desktop/onionshare/resources/images/countries/ye-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/ye-light.png b/desktop/onionshare/resources/images/countries/ye-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/ye-light.png rename to desktop/onionshare/resources/images/countries/ye-light.png diff --git a/desktop/src/onionshare/resources/images/countries/yt-dark.png b/desktop/onionshare/resources/images/countries/yt-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/yt-dark.png rename to desktop/onionshare/resources/images/countries/yt-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/yt-light.png b/desktop/onionshare/resources/images/countries/yt-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/yt-light.png rename to desktop/onionshare/resources/images/countries/yt-light.png diff --git a/desktop/src/onionshare/resources/images/countries/za-dark.png b/desktop/onionshare/resources/images/countries/za-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/za-dark.png rename to desktop/onionshare/resources/images/countries/za-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/za-light.png b/desktop/onionshare/resources/images/countries/za-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/za-light.png rename to desktop/onionshare/resources/images/countries/za-light.png diff --git a/desktop/src/onionshare/resources/images/countries/zm-dark.png b/desktop/onionshare/resources/images/countries/zm-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/zm-dark.png rename to desktop/onionshare/resources/images/countries/zm-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/zm-light.png b/desktop/onionshare/resources/images/countries/zm-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/zm-light.png rename to desktop/onionshare/resources/images/countries/zm-light.png diff --git a/desktop/src/onionshare/resources/images/countries/zw-dark.png b/desktop/onionshare/resources/images/countries/zw-dark.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/zw-dark.png rename to desktop/onionshare/resources/images/countries/zw-dark.png diff --git a/desktop/src/onionshare/resources/images/countries/zw-light.png b/desktop/onionshare/resources/images/countries/zw-light.png similarity index 100% rename from desktop/src/onionshare/resources/images/countries/zw-light.png rename to desktop/onionshare/resources/images/countries/zw-light.png diff --git a/desktop/src/onionshare/resources/images/dark_icon-add.png b/desktop/onionshare/resources/images/dark_icon-add.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_icon-add.png rename to desktop/onionshare/resources/images/dark_icon-add.png diff --git a/desktop/src/onionshare/resources/images/dark_icon-close.png b/desktop/onionshare/resources/images/dark_icon-close.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_icon-close.png rename to desktop/onionshare/resources/images/dark_icon-close.png diff --git a/desktop/src/onionshare/resources/images/dark_logo_text.png b/desktop/onionshare/resources/images/dark_logo_text.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_logo_text.png rename to desktop/onionshare/resources/images/dark_logo_text.png diff --git a/desktop/src/onionshare/resources/images/dark_logo_text_bg.png b/desktop/onionshare/resources/images/dark_logo_text_bg.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_logo_text_bg.png rename to desktop/onionshare/resources/images/dark_logo_text_bg.png diff --git a/desktop/src/onionshare/resources/images/dark_mode_chat.png b/desktop/onionshare/resources/images/dark_mode_chat.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_mode_chat.png rename to desktop/onionshare/resources/images/dark_mode_chat.png diff --git a/desktop/src/onionshare/resources/images/dark_mode_new_tab_chat.png b/desktop/onionshare/resources/images/dark_mode_new_tab_chat.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_mode_new_tab_chat.png rename to desktop/onionshare/resources/images/dark_mode_new_tab_chat.png diff --git a/desktop/src/onionshare/resources/images/dark_mode_new_tab_receive.png b/desktop/onionshare/resources/images/dark_mode_new_tab_receive.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_mode_new_tab_receive.png rename to desktop/onionshare/resources/images/dark_mode_new_tab_receive.png diff --git a/desktop/src/onionshare/resources/images/dark_mode_new_tab_share.png b/desktop/onionshare/resources/images/dark_mode_new_tab_share.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_mode_new_tab_share.png rename to desktop/onionshare/resources/images/dark_mode_new_tab_share.png diff --git a/desktop/src/onionshare/resources/images/dark_mode_new_tab_website.png b/desktop/onionshare/resources/images/dark_mode_new_tab_website.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_mode_new_tab_website.png rename to desktop/onionshare/resources/images/dark_mode_new_tab_website.png diff --git a/desktop/src/onionshare/resources/images/dark_mode_receive.png b/desktop/onionshare/resources/images/dark_mode_receive.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_mode_receive.png rename to desktop/onionshare/resources/images/dark_mode_receive.png diff --git a/desktop/src/onionshare/resources/images/dark_mode_share.png b/desktop/onionshare/resources/images/dark_mode_share.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_mode_share.png rename to desktop/onionshare/resources/images/dark_mode_share.png diff --git a/desktop/src/onionshare/resources/images/dark_mode_website.png b/desktop/onionshare/resources/images/dark_mode_website.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_mode_website.png rename to desktop/onionshare/resources/images/dark_mode_website.png diff --git a/desktop/src/onionshare/resources/images/dark_settings.png b/desktop/onionshare/resources/images/dark_settings.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_settings.png rename to desktop/onionshare/resources/images/dark_settings.png diff --git a/desktop/src/onionshare/resources/images/dark_tor_settings.png b/desktop/onionshare/resources/images/dark_tor_settings.png similarity index 100% rename from desktop/src/onionshare/resources/images/dark_tor_settings.png rename to desktop/onionshare/resources/images/dark_tor_settings.png diff --git a/desktop/src/onionshare/resources/images/file_delete.png b/desktop/onionshare/resources/images/file_delete.png similarity index 100% rename from desktop/src/onionshare/resources/images/file_delete.png rename to desktop/onionshare/resources/images/file_delete.png diff --git a/desktop/src/onionshare/resources/images/history_completed.png b/desktop/onionshare/resources/images/history_completed.png similarity index 100% rename from desktop/src/onionshare/resources/images/history_completed.png rename to desktop/onionshare/resources/images/history_completed.png diff --git a/desktop/src/onionshare/resources/images/history_completed_none.png b/desktop/onionshare/resources/images/history_completed_none.png similarity index 100% rename from desktop/src/onionshare/resources/images/history_completed_none.png rename to desktop/onionshare/resources/images/history_completed_none.png diff --git a/desktop/src/onionshare/resources/images/history_in_progress.png b/desktop/onionshare/resources/images/history_in_progress.png similarity index 100% rename from desktop/src/onionshare/resources/images/history_in_progress.png rename to desktop/onionshare/resources/images/history_in_progress.png diff --git a/desktop/src/onionshare/resources/images/history_in_progress_none.png b/desktop/onionshare/resources/images/history_in_progress_none.png similarity index 100% rename from desktop/src/onionshare/resources/images/history_in_progress_none.png rename to desktop/onionshare/resources/images/history_in_progress_none.png diff --git a/desktop/src/onionshare/resources/images/history_requests.png b/desktop/onionshare/resources/images/history_requests.png similarity index 100% rename from desktop/src/onionshare/resources/images/history_requests.png rename to desktop/onionshare/resources/images/history_requests.png diff --git a/desktop/src/onionshare/resources/images/history_requests_none.png b/desktop/onionshare/resources/images/history_requests_none.png similarity index 100% rename from desktop/src/onionshare/resources/images/history_requests_none.png rename to desktop/onionshare/resources/images/history_requests_none.png diff --git a/desktop/src/onionshare/resources/images/info.png b/desktop/onionshare/resources/images/info.png similarity index 100% rename from desktop/src/onionshare/resources/images/info.png rename to desktop/onionshare/resources/images/info.png diff --git a/desktop/src/onionshare/resources/images/light_logo_text.png b/desktop/onionshare/resources/images/light_logo_text.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_logo_text.png rename to desktop/onionshare/resources/images/light_logo_text.png diff --git a/desktop/src/onionshare/resources/images/light_logo_text_bg.png b/desktop/onionshare/resources/images/light_logo_text_bg.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_logo_text_bg.png rename to desktop/onionshare/resources/images/light_logo_text_bg.png diff --git a/desktop/src/onionshare/resources/images/light_mode_chat.png b/desktop/onionshare/resources/images/light_mode_chat.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_mode_chat.png rename to desktop/onionshare/resources/images/light_mode_chat.png diff --git a/desktop/src/onionshare/resources/images/light_mode_new_tab_chat.png b/desktop/onionshare/resources/images/light_mode_new_tab_chat.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_mode_new_tab_chat.png rename to desktop/onionshare/resources/images/light_mode_new_tab_chat.png diff --git a/desktop/src/onionshare/resources/images/light_mode_new_tab_receive.png b/desktop/onionshare/resources/images/light_mode_new_tab_receive.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_mode_new_tab_receive.png rename to desktop/onionshare/resources/images/light_mode_new_tab_receive.png diff --git a/desktop/src/onionshare/resources/images/light_mode_new_tab_share.png b/desktop/onionshare/resources/images/light_mode_new_tab_share.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_mode_new_tab_share.png rename to desktop/onionshare/resources/images/light_mode_new_tab_share.png diff --git a/desktop/src/onionshare/resources/images/light_mode_new_tab_website.png b/desktop/onionshare/resources/images/light_mode_new_tab_website.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_mode_new_tab_website.png rename to desktop/onionshare/resources/images/light_mode_new_tab_website.png diff --git a/desktop/src/onionshare/resources/images/light_mode_receive.png b/desktop/onionshare/resources/images/light_mode_receive.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_mode_receive.png rename to desktop/onionshare/resources/images/light_mode_receive.png diff --git a/desktop/src/onionshare/resources/images/light_mode_share.png b/desktop/onionshare/resources/images/light_mode_share.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_mode_share.png rename to desktop/onionshare/resources/images/light_mode_share.png diff --git a/desktop/src/onionshare/resources/images/light_mode_website.png b/desktop/onionshare/resources/images/light_mode_website.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_mode_website.png rename to desktop/onionshare/resources/images/light_mode_website.png diff --git a/desktop/src/onionshare/resources/images/light_settings.png b/desktop/onionshare/resources/images/light_settings.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_settings.png rename to desktop/onionshare/resources/images/light_settings.png diff --git a/desktop/src/onionshare/resources/images/light_tor_settings.png b/desktop/onionshare/resources/images/light_tor_settings.png similarity index 100% rename from desktop/src/onionshare/resources/images/light_tor_settings.png rename to desktop/onionshare/resources/images/light_tor_settings.png diff --git a/desktop/src/onionshare/resources/images/logo.png b/desktop/onionshare/resources/images/logo.png similarity index 100% rename from desktop/src/onionshare/resources/images/logo.png rename to desktop/onionshare/resources/images/logo.png diff --git a/desktop/src/onionshare/resources/images/logo_grayscale.png b/desktop/onionshare/resources/images/logo_grayscale.png similarity index 100% rename from desktop/src/onionshare/resources/images/logo_grayscale.png rename to desktop/onionshare/resources/images/logo_grayscale.png diff --git a/desktop/src/onionshare/resources/images/logo_transparent.png b/desktop/onionshare/resources/images/logo_transparent.png similarity index 100% rename from desktop/src/onionshare/resources/images/logo_transparent.png rename to desktop/onionshare/resources/images/logo_transparent.png diff --git a/desktop/src/onionshare/resources/images/mode_chat.svg b/desktop/onionshare/resources/images/mode_chat.svg similarity index 100% rename from desktop/src/onionshare/resources/images/mode_chat.svg rename to desktop/onionshare/resources/images/mode_chat.svg diff --git a/desktop/src/onionshare/resources/images/mode_receive.svg b/desktop/onionshare/resources/images/mode_receive.svg similarity index 100% rename from desktop/src/onionshare/resources/images/mode_receive.svg rename to desktop/onionshare/resources/images/mode_receive.svg diff --git a/desktop/src/onionshare/resources/images/mode_share.svg b/desktop/onionshare/resources/images/mode_share.svg similarity index 100% rename from desktop/src/onionshare/resources/images/mode_share.svg rename to desktop/onionshare/resources/images/mode_share.svg diff --git a/desktop/src/onionshare/resources/images/mode_website.svg b/desktop/onionshare/resources/images/mode_website.svg similarity index 100% rename from desktop/src/onionshare/resources/images/mode_website.svg rename to desktop/onionshare/resources/images/mode_website.svg diff --git a/desktop/src/onionshare/resources/images/open_folder.png b/desktop/onionshare/resources/images/open_folder.png similarity index 100% rename from desktop/src/onionshare/resources/images/open_folder.png rename to desktop/onionshare/resources/images/open_folder.png diff --git a/desktop/src/onionshare/resources/images/open_message.png b/desktop/onionshare/resources/images/open_message.png similarity index 100% rename from desktop/src/onionshare/resources/images/open_message.png rename to desktop/onionshare/resources/images/open_message.png diff --git a/desktop/src/onionshare/resources/images/persistent_enabled.png b/desktop/onionshare/resources/images/persistent_enabled.png similarity index 100% rename from desktop/src/onionshare/resources/images/persistent_enabled.png rename to desktop/onionshare/resources/images/persistent_enabled.png diff --git a/desktop/src/onionshare/resources/images/receive_icon_toggle.png b/desktop/onionshare/resources/images/receive_icon_toggle.png similarity index 100% rename from desktop/src/onionshare/resources/images/receive_icon_toggle.png rename to desktop/onionshare/resources/images/receive_icon_toggle.png diff --git a/desktop/src/onionshare/resources/images/receive_icon_toggle_selected.png b/desktop/onionshare/resources/images/receive_icon_toggle_selected.png similarity index 100% rename from desktop/src/onionshare/resources/images/receive_icon_toggle_selected.png rename to desktop/onionshare/resources/images/receive_icon_toggle_selected.png diff --git a/desktop/src/onionshare/resources/images/receive_icon_transparent.png b/desktop/onionshare/resources/images/receive_icon_transparent.png similarity index 100% rename from desktop/src/onionshare/resources/images/receive_icon_transparent.png rename to desktop/onionshare/resources/images/receive_icon_transparent.png diff --git a/desktop/src/onionshare/resources/images/server_started.png b/desktop/onionshare/resources/images/server_started.png similarity index 100% rename from desktop/src/onionshare/resources/images/server_started.png rename to desktop/onionshare/resources/images/server_started.png diff --git a/desktop/src/onionshare/resources/images/server_stopped.png b/desktop/onionshare/resources/images/server_stopped.png similarity index 100% rename from desktop/src/onionshare/resources/images/server_stopped.png rename to desktop/onionshare/resources/images/server_stopped.png diff --git a/desktop/src/onionshare/resources/images/server_working.png b/desktop/onionshare/resources/images/server_working.png similarity index 100% rename from desktop/src/onionshare/resources/images/server_working.png rename to desktop/onionshare/resources/images/server_working.png diff --git a/desktop/src/onionshare/resources/images/share_icon_toggle.png b/desktop/onionshare/resources/images/share_icon_toggle.png similarity index 100% rename from desktop/src/onionshare/resources/images/share_icon_toggle.png rename to desktop/onionshare/resources/images/share_icon_toggle.png diff --git a/desktop/src/onionshare/resources/images/share_icon_toggle_selected.png b/desktop/onionshare/resources/images/share_icon_toggle_selected.png similarity index 100% rename from desktop/src/onionshare/resources/images/share_icon_toggle_selected.png rename to desktop/onionshare/resources/images/share_icon_toggle_selected.png diff --git a/desktop/src/onionshare/resources/images/share_icon_transparent.png b/desktop/onionshare/resources/images/share_icon_transparent.png similarity index 100% rename from desktop/src/onionshare/resources/images/share_icon_transparent.png rename to desktop/onionshare/resources/images/share_icon_transparent.png diff --git a/desktop/src/onionshare/resources/locale/af.json b/desktop/onionshare/resources/locale/af.json similarity index 100% rename from desktop/src/onionshare/resources/locale/af.json rename to desktop/onionshare/resources/locale/af.json diff --git a/desktop/src/onionshare/resources/locale/am.json b/desktop/onionshare/resources/locale/am.json similarity index 100% rename from desktop/src/onionshare/resources/locale/am.json rename to desktop/onionshare/resources/locale/am.json diff --git a/desktop/src/onionshare/resources/locale/ar.json b/desktop/onionshare/resources/locale/ar.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ar.json rename to desktop/onionshare/resources/locale/ar.json diff --git a/desktop/src/onionshare/resources/locale/bg.json b/desktop/onionshare/resources/locale/bg.json similarity index 100% rename from desktop/src/onionshare/resources/locale/bg.json rename to desktop/onionshare/resources/locale/bg.json diff --git a/desktop/src/onionshare/resources/locale/bn.json b/desktop/onionshare/resources/locale/bn.json similarity index 100% rename from desktop/src/onionshare/resources/locale/bn.json rename to desktop/onionshare/resources/locale/bn.json diff --git a/desktop/src/onionshare/resources/locale/ca.json b/desktop/onionshare/resources/locale/ca.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ca.json rename to desktop/onionshare/resources/locale/ca.json diff --git a/desktop/src/onionshare/resources/locale/ckb.json b/desktop/onionshare/resources/locale/ckb.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ckb.json rename to desktop/onionshare/resources/locale/ckb.json diff --git a/desktop/src/onionshare/resources/locale/cs.json b/desktop/onionshare/resources/locale/cs.json similarity index 100% rename from desktop/src/onionshare/resources/locale/cs.json rename to desktop/onionshare/resources/locale/cs.json diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/onionshare/resources/locale/da.json similarity index 100% rename from desktop/src/onionshare/resources/locale/da.json rename to desktop/onionshare/resources/locale/da.json diff --git a/desktop/src/onionshare/resources/locale/de.json b/desktop/onionshare/resources/locale/de.json similarity index 100% rename from desktop/src/onionshare/resources/locale/de.json rename to desktop/onionshare/resources/locale/de.json diff --git a/desktop/src/onionshare/resources/locale/el.json b/desktop/onionshare/resources/locale/el.json similarity index 89% rename from desktop/src/onionshare/resources/locale/el.json rename to desktop/onionshare/resources/locale/el.json index b195869c..d47d92d2 100644 --- a/desktop/src/onionshare/resources/locale/el.json +++ b/desktop/onionshare/resources/locale/el.json @@ -90,16 +90,16 @@ "gui_settings_authenticate_no_auth_option": "Χωρίς επαλήθευση ή επαλήθευση με cookie", "gui_settings_authenticate_password_option": "Κωδικός", "gui_settings_password_label": "Κωδικός", - "gui_settings_tor_bridges": "Υποστήριξη γεφυρών Tor", + "gui_settings_tor_bridges": "Σύνδεση με χρήση γέφυρας Tor;", "gui_settings_tor_bridges_no_bridges_radio_option": "Να μη χρησιμοποιηθούν γέφυρες", "gui_settings_tor_bridges_obfs4_radio_option": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports", "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports (απαιτείται το πρόγραμμα obfs4proxy)", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Να χρησιμοποιηθουν τα ενσωματωμένα meek_lite (Azure) pluggable transports", "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα meek_lite (Azure) pluggable transports (απαιτείται το πρόγραμμα obfs4proxy)", - "gui_settings_meek_lite_expensive_warning": "Προσοχή: Τα meek_lite bridges επιβαρύνουν πολύ το Tor Project στη λειτουργία.

Χρησιμοποιήστε τα μόνο αν δεν μπορείτε να συνδεθείτε κατ' ευθείαν στο Tor μέσω obfs4 transports ή άλλων κανονικών bridges.", + "gui_settings_meek_lite_expensive_warning": "Προσοχή: Οι γέφυρες meek_azure επιβαρύνουν τη λειτουργία του Tor Project.

Χρησιμοποιήστε τες μόνο αν δεν μπορείτε να συνδεθείτε κατ' ευθείαν στο Tor μέσω obfs4 transports ή άλλων κανονικών γεφυρών.", "gui_settings_tor_bridges_custom_radio_option": "Χρήση παραμετροποιημένων γεφυρών", "gui_settings_tor_bridges_custom_label": "Αποκτήστε γέφυρες στο https://bridges.torproject.org", - "gui_settings_tor_bridges_invalid": "Δεν λειτούργησε κάποιο από τα bridges που προσθέσατε.\nΞαναελέγξτε τα ή προσθέστε άλλα.", + "gui_settings_tor_bridges_invalid": "Καμία γέφυρα που προσθέσατε δεν λειτουργεί. Ελέγξτε ξανά ή προσθέστε άλλες.", "gui_settings_button_save": "Αποθήκευση", "gui_settings_button_cancel": "Άκυρο", "gui_settings_button_help": "Βοήθεια", @@ -178,7 +178,7 @@ "gui_upload_finished": "", "gui_download_in_progress": "", "gui_open_folder_error_nautilus": "Δεν μπορεί να ανοιχτεί ο φάκελος γιατί το nautilus δεν είναι διαθέσιμο. Το αρχείο είναι εδω: {}", - "gui_settings_language_label": "Προτιμώμενη γλώσσα", + "gui_settings_language_label": "Γλώσσα", "gui_settings_language_changed_notice": "Επανεκκινήστε το OnionShare για να εφαρμοστεί η αλλαγή γλώσσας.", "timeout_upload_still_running": "Αναμονή ολοκλήρωσης του ανεβάσματος", "gui_add_files": "Προσθήκη αρχείων", @@ -237,7 +237,7 @@ "gui_receive_flatpak_data_dir": "Επειδή έχετε εγκαταστήσει το OnionShare μέσω Flatpak, θα πρέπει να αποθηκεύσετε τα αρχεία μέσα σε έναν φάκελο στο ~/OnionShare.", "gui_chat_stop_server": "Τερματισμός διακομιστή συνομιλίας", "gui_chat_start_server": "Έναρξη διακομιστή συνομιλίας", - "mode_settings_website_disable_csp_checkbox": "Μην στέλνετε κεφαλίδα με περιεχόμενο από την πολιτικής ασφάλειας σας (επιτρέπει στην ιστοσελίδα σας να χρησιμοποιεί πόρους τρίτων)", + "mode_settings_website_disable_csp_checkbox": "Μην στέλνετε την προεπιλεγμένη κεφαλίδα Πολιτικής Ασφάλειας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας να χρησιμοποιεί πόρους τρίτων)", "mode_settings_receive_data_dir_browse_button": "Επιλογή", "mode_settings_receive_data_dir_label": "Αποθήκευση αρχείων σε", "mode_settings_share_autostop_sharing_checkbox": "Τερματισμός κοινής χρήσης με την ολοκλήρωση αρχείων (αποεπιλέξτε για λήψη μεμονωμένων αρχείων)", @@ -309,5 +309,30 @@ "gui_settings_theme_dark": "Σκοτεινό", "gui_url_instructions": "Αρχικά, στείλτε την παρακάτω διεύθυνση OnionShare:", "gui_settings_theme_light": "Φωτεινό", - "gui_client_auth_instructions": "Στη συνέχεια, στείλτε το ιδιωτικό κλειδί για πρόσβαση στην υπηρεσία OnionShare:" + "gui_client_auth_instructions": "Στη συνέχεια, στείλτε το ιδιωτικό κλειδί για πρόσβαση στην υπηρεσία OnionShare:", + "gui_dragdrop_sandbox_flatpak": "Για να γίνει πιο ασφαλές το sandbox του Flatpak, δεν υποστηρίζεται η μεταφορά και απόθεση. Χρησιμοποιήστε τα κουμπιά Προσθήκη αρχείων και Προσθήκη φακέλου για να αναζητήσετε αρχεία.", + "moat_captcha_label": "Λύστε το CAPTCHA για να αιτηθείτε μια γέφυρα.", + "gui_settings_tor_bridges_label": "Οι γέφυρες σας βοηθούν να αποκτήσετε πρόσβαση στο δίκτυο Tor σε τοποθεσίες όπου είναι αποκλεισμένο. Ανάλογα με το πού βρίσκεστε, μια γέφυρα μπορεί να λειτουργεί καλύτερα από μια άλλη.", + "moat_captcha_submit": "Υποβολή", + "moat_solution_empty_error": "Πρέπει να εισαγάγετε τους χαρακτήρες από την εικόνα", + "moat_contact_label": "Επικοινωνία με BridgeDB...", + "gui_tor_settings_window_title": "Ρυθμίσεις Tor", + "gui_settings_controller_extras_label": "Ρυθμίσεις Tor", + "gui_settings_bridge_use_checkbox": "Χρήση γέφυρας", + "gui_settings_bridge_radio_builtin": "Επιλέξτε μια ενσωματωμένη γέφυρα", + "gui_settings_bridge_none_radio_option": "Χωρίς χρήση γέφυρας", + "gui_settings_bridge_moat_radio_option": "Αιτηθείτε μια γέφυρα από torproject.org", + "gui_settings_bridge_moat_button": "Αίτημα για νέα γέφυρα", + "gui_settings_bridge_custom_radio_option": "Προτείνετε μια γέφυρα για την οποία ενημερωθήκατε από αξιόπιστη πηγή", + "gui_settings_bridge_custom_placeholder": "πληκτρολογήστε διεύθυνση: πόρτα (μια ανά γραμμή)", + "gui_settings_moat_bridges_invalid": "Δεν έχετε αιτηθεί ακόμα γέφυρα από το torproject.org.", + "gui_settings_stop_active_tabs_label": "Υπάρχουν υπηρεσίες που εκτελούνται σε ορισμένες από τις καρτέλες σας.\nΠρέπει να σταματήσετε όλες τις υπηρεσίες για να αλλάξετε τις ρυθμίσεις του Tor.", + "gui_settings_version_label": "Χρησιμοποιείτε το OnionShare {}", + "gui_settings_help_label": "Χρειάζεστε βοήθεια; Δείτε το docs.onionshare.org", + "mode_settings_website_custom_csp_checkbox": "Αποστολή προσαρμοσμένης κεφαλίδας Πολιτικής Ασφαλείας Περιεχομένου", + "moat_captcha_placeholder": "Εισαγάγετε τους χαρακτήρες από την εικόνα", + "moat_captcha_reload": "Επαναφόρτωση", + "moat_bridgedb_error": "Σφάλμα επικοινωνίας με BridgeDB.", + "moat_captcha_error": "Η λύση δεν είναι σωστή. Παρακαλούμε δοκιμάστε ξανά.", + "mode_tor_not_connected_label": "Το OnionShare δεν είναι συνδεδεμένο με το δίκτυο Tor" } diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/onionshare/resources/locale/en.json similarity index 100% rename from desktop/src/onionshare/resources/locale/en.json rename to desktop/onionshare/resources/locale/en.json diff --git a/desktop/src/onionshare/resources/locale/enm.json b/desktop/onionshare/resources/locale/enm.json similarity index 100% rename from desktop/src/onionshare/resources/locale/enm.json rename to desktop/onionshare/resources/locale/enm.json diff --git a/desktop/src/onionshare/resources/locale/eo.json b/desktop/onionshare/resources/locale/eo.json similarity index 100% rename from desktop/src/onionshare/resources/locale/eo.json rename to desktop/onionshare/resources/locale/eo.json diff --git a/desktop/src/onionshare/resources/locale/es.json b/desktop/onionshare/resources/locale/es.json similarity index 100% rename from desktop/src/onionshare/resources/locale/es.json rename to desktop/onionshare/resources/locale/es.json diff --git a/desktop/src/onionshare/resources/locale/fa.json b/desktop/onionshare/resources/locale/fa.json similarity index 100% rename from desktop/src/onionshare/resources/locale/fa.json rename to desktop/onionshare/resources/locale/fa.json diff --git a/desktop/src/onionshare/resources/locale/fi.json b/desktop/onionshare/resources/locale/fi.json similarity index 100% rename from desktop/src/onionshare/resources/locale/fi.json rename to desktop/onionshare/resources/locale/fi.json diff --git a/desktop/src/onionshare/resources/locale/fr.json b/desktop/onionshare/resources/locale/fr.json similarity index 87% rename from desktop/src/onionshare/resources/locale/fr.json rename to desktop/onionshare/resources/locale/fr.json index fdbd6ae4..21bd0bf4 100644 --- a/desktop/src/onionshare/resources/locale/fr.json +++ b/desktop/onionshare/resources/locale/fr.json @@ -80,10 +80,10 @@ "gui_settings_connection_type_test_button": "Tester la connexion à Tor", "gui_settings_control_port_label": "Port de contrôle", "gui_settings_authenticate_label": "Paramètres d’authentification de Tor", - "gui_settings_tor_bridges": "Prise en charge des ponts de Tor", + "gui_settings_tor_bridges": "Se connecter en utilisant un pont Tor ?", "gui_settings_tor_bridges_custom_radio_option": "Utiliser des ponts personnalisés", "gui_settings_tor_bridges_custom_label": "Vous pouvez obtenir des ponts sur https://bridges.torproject.org", - "gui_settings_tor_bridges_invalid": "Aucun des ponts que vous avez ajoutés ne fonctionne.\nVérifiez-les de nouveau ou ajoutez-en d’autres.", + "gui_settings_tor_bridges_invalid": "Aucun des ponts que vous avez ajoutés ne fonctionne. Vérifiez-les de nouveau ou ajoutez-en d’autres.", "settings_error_unknown": "Impossible de se connecter au contrôleur Tor, car vos paramètres sont incohérents.", "settings_error_automatic": "Impossible de se connecter au contrôleur Tor. Le Navigateur Tor (téléchargeable sur torproject.org/fr) fonctionne-t-il en arrière-plan ?", "settings_error_socket_port": "Impossible de se connecter au contrôleur Tor à {}:{}.", @@ -140,7 +140,7 @@ "gui_upload_finished": "{} envoyé", "gui_download_in_progress": "Téléchargement démarré {}", "gui_open_folder_error_nautilus": "Impossible d’ouvrir le dossier, car nautilus n’est pas disponible. Le fichier est ici : {}", - "gui_settings_language_label": "Langue de choix", + "gui_settings_language_label": "Langue", "help_stealth": "Utilisation de l’autorisation client (avancé)", "help_receive": "Recevoir des partages au lieu de les envoyer", "gui_receive_start_server": "Démarrer le mode réception", @@ -153,7 +153,7 @@ "gui_settings_stealth_option": "Utiliser l’autorisation du client", "timeout_upload_still_running": "En attente de la fin de l'envoi", "gui_settings_autoupdate_check_button": "Vérifier la présence d’une nouvelle version", - "settings_test_success": "Vous êtes connecté au contrôleur Tor.\n\nVersion de Tor : {}\nPrend en charge les services onion éphémères : {}.\nPrend en charge l’authentification client : {}.\nPrend en charge la nouvelle génération d’adresses .onion : {}.", + "settings_test_success": "Vous êtes connecté au contrôleur Tor.\n\nVersion de Tor : {}\nPrend en charge les services oignon éphémères : {}.\nPrend en charge l’authentification client : {}.\nPrend en charge la nouvelle génération d’adresses .onion : {}.", "update_error_check_error": "Impossible de vérifier l’existence d’une mise à jour : peut-être n’êtes-vous pas connecté à Tor ou le site Web d’OnionShare est-il hors service ?", "update_error_invalid_latest_version": "Impossible de vérifier la présence d’une mise à jour : le site Web d’OnionShare indique que la version la plus récente est la « {} » qui n’est pas reconnue…", "gui_tor_connection_ask": "Ouvrir les paramètres pour résoudre le problème de connexion à Tor ?", @@ -172,7 +172,7 @@ "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Utiliser les transports enfichables obfs4 intégrés (exige obfs4proxy)", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Utiliser les transports enfichables meek_lite (Azure) intégrés", "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Utiliser les transports enfichables meek_lite (Azure) intégrés (exige obfs4proxy)", - "gui_settings_meek_lite_expensive_warning": "Avertissement : L’exploitation de ponts meek_lite demande beaucoup de ressources au Projet Tor.

Ne les utilisez que si vous ne pouvez pas vous connecter directement à Tor par les transports obfs4 ou autres ponts normaux.", + "gui_settings_meek_lite_expensive_warning": "Avertissement : L’exploitation de ponts meek_azure demande beaucoup de ressources au Projet Tor.

Ne les utilisez que si vous ne pouvez pas vous connecter directement à Tor par les transports obfs4 ou autres ponts normaux.", "gui_settings_autostop_timer_checkbox": "Utiliser une minuterie d’arrêt automatique", "gui_server_started_after_autostop_timer": "La minuterie d’arrêt automatique est arrivée au bout de son délai avant le démarrage du serveur. Veuillez mettre en place un nouveau partage.", "gui_server_autostop_timer_expired": "La minuterie d’arrêt automatique est déjà arrivée au bout de son délai. Veuillez la modifier pour commencer le partage.", @@ -247,12 +247,12 @@ "gui_close_tab_warning_persistent_description": "Cet onglet est persistant. Si vous le fermez, vous perdrez l’adresse onion qu’il utilise. Voulez-vous vraiment le fermer ?", "mode_settings_autostop_timer_checkbox": "Arrêter un service onion à une heure prédéterminée", "mode_settings_autostart_timer_checkbox": "Démarrer un service onion à une heure prédéterminée", - "mode_settings_website_disable_csp_checkbox": "Ne pas envoyer d’en-tête Politique de sécurité de contenu (permet à votre site Web d’utiliser des ressources tierces)", + "mode_settings_website_disable_csp_checkbox": "Ne pas envoyer l’en-tête par défaut de Politique de sécurité de contenu (permet à votre site Web d’utiliser des ressources tierces)", "mode_settings_receive_data_dir_browse_button": "Parcourir", "mode_settings_receive_data_dir_label": "Enregistrer les fichiers dans", "mode_settings_share_autostop_sharing_checkbox": "Cesser le partage une fois que les fichiers ont été envoyés (décocher afin de permettre le téléchargement de fichiers individuels)", "mode_settings_legacy_checkbox": "Utiliser une ancienne adresse (service onion v2, non recommandée)", - "mode_settings_public_checkbox": "Ceci est un service OnionShare public (sans clé privée)", + "mode_settings_public_checkbox": "Ce service OnionShare est public (il désactive la clé privée)", "mode_settings_persistent_checkbox": "Enregistrer cet onglet et l’ouvrir automatiquement quand j’ouvre OnionShare", "mode_settings_advanced_toggle_hide": "Cacher les paramètres avancés", "mode_settings_advanced_toggle_show": "Afficher les paramètres avancés", @@ -297,24 +297,49 @@ "gui_status_indicator_chat_scheduled": "Planifié…", "gui_status_indicator_chat_working": "Démarrage…", "gui_status_indicator_chat_stopped": "Prêt à dialoguer", - "gui_copied_client_auth_title": "Clé privée copiée", + "gui_copied_client_auth_title": "La clé privée a été copiée", "gui_please_wait_no_button": "Démarrage…", - "gui_copied_client_auth": "Clé privée copiée dans le presse-papiers", - "gui_qr_label_url_title": "Adresse OnionShare", + "gui_copied_client_auth": "La clé privée a été copiée dans le presse-papiers", + "gui_qr_label_url_title": "Adresse OnionShare", "gui_hide": "Cacher", "gui_qr_label_auth_string_title": "Clé privée", "gui_copy_client_auth": "Copier la clé privée", "gui_share_url_public_description": "Quiconque disposant de cette adresse OnionShare peut télécharger vos fichiers en utilisant le Navigateur Tor : ", - "gui_url_instructions": "Tout d'abord, envoyez l'adresse OnionShare ci-dessous :", + "gui_url_instructions": "Envoyez d’abord l’adresse OnionShare ci-dessous :", "gui_settings_theme_light": "Clair", - "gui_reveal": "Montrer", + "gui_reveal": "Révéler", "gui_chat_url_public_description": "Quiconque disposant de cette adresse OnionShare peut se joindre à ce salon de discussion en utilisant le Navigateur Tor : ", - "gui_url_instructions_public_mode": "Envoyez l'adresse OnionShare ci-dessous :", + "gui_url_instructions_public_mode": "Envoyez l’adresse OnionShare ci-dessous :", "gui_settings_theme_label": "Thème", "gui_settings_theme_auto": "Automatique", "gui_settings_theme_dark": "Sombre", "gui_website_url_public_description": "Quiconque disposant de cette adresse OnionShare peut visiter votre site Web en utilisant le Navigateur Tor : ", - "gui_server_doesnt_support_stealth": "Désolé, cette version de Tor ne prend pas en charge la fonctionnalité \"stealth\" (le client d'authentification). Veuillez essayer avec une version plus récente de Tor, ou utilisez le mode 'public' s'il n'a pas besoin d'être privé.", + "gui_server_doesnt_support_stealth": "Désolé, cette version de Tor ne prend pas en charge l’authentification client. Veuillez essayer avec une version plus récente de Tor ou utilisez le mode « public » si la confidentialité n’est pas nécessaire.", "gui_receive_url_public_description": "Quiconque disposant de cette adresse OnionShare peut téléverser des fichiers vers votre ordinateur en utilisant le Navigateur Tor : ", - "gui_client_auth_instructions": "Ensuite, envoyez la clé privée pour autoriser l'accès à votre service OnionShare :" + "gui_client_auth_instructions": "Envoyez ensuite la clé privée pour accorder l’accès à votre service OnionShare :", + "gui_dragdrop_sandbox_flatpak": "Afin de rendre la sandbox Flatpak plus sécurisée, le glisser-coller n'est pas pris en charge. Utilisez les boutons Ajouter des fichiers et Ajouter des dossiers pour chercher vos fichiers à la place.", + "moat_solution_empty_error": "Vous devez saisir les caractères présentés par l’image", + "gui_settings_stop_active_tabs_label": "Des services sont en cours d’exécution dans certains de vos onglets.\nVous devez arrêter tous les services pour changer vos paramètres de Tor.", + "moat_captcha_label": "Résolvez le CAPTCHA pour demander un pont.", + "gui_tor_settings_window_title": "Paramètres de Tor", + "gui_settings_controller_extras_label": "Paramètres de Tor", + "gui_settings_tor_bridges_label": "Les ponts vous aident à accéder au réseau Tor où Tor est bloqué. Selon l’endroit où vous êtes, un pont pourrait fonctionner mieux qu’un autre.", + "gui_settings_bridge_use_checkbox": "Utiliser un pont", + "gui_settings_bridge_radio_builtin": "Choisir un pont intégré", + "gui_settings_bridge_none_radio_option": "Ne pas utiliser de pont", + "gui_settings_bridge_moat_radio_option": "Demander un pont à torproject.org", + "gui_settings_bridge_moat_button": "Demander un nouveau pont", + "gui_settings_bridge_custom_radio_option": "Fournir un pont dont vous avez connaissance de source sûre", + "gui_settings_bridge_custom_placeholder": "écrire address:port (une par ligne)", + "gui_settings_moat_bridges_invalid": "Vous n'avez pas encore demandé un pont depuis torprohect.com.", + "gui_settings_version_label": "Vous utilisez OnionShare {}", + "gui_settings_help_label": "Besoin d’aide ? Consultez docs.onionshare.org", + "mode_settings_website_custom_csp_checkbox": "Envoyer en-tête de Politique de sécurité de contenu personnalisé", + "moat_contact_label": "Contact de BridgeDB…", + "moat_captcha_placeholder": "Saisissez les caractères de l’image", + "moat_captcha_submit": "Envoyer", + "moat_captcha_reload": "Recharger", + "moat_bridgedb_error": "Erreur lors du contact de BridgeDB.", + "moat_captcha_error": "La solution est erronée. Veuillez réessayer.", + "mode_tor_not_connected_label": "OnionShare n’est pas connecté au réseau Tor" } diff --git a/desktop/src/onionshare/resources/locale/ga.json b/desktop/onionshare/resources/locale/ga.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ga.json rename to desktop/onionshare/resources/locale/ga.json diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/onionshare/resources/locale/gl.json similarity index 100% rename from desktop/src/onionshare/resources/locale/gl.json rename to desktop/onionshare/resources/locale/gl.json diff --git a/desktop/src/onionshare/resources/locale/gu.json b/desktop/onionshare/resources/locale/gu.json similarity index 100% rename from desktop/src/onionshare/resources/locale/gu.json rename to desktop/onionshare/resources/locale/gu.json diff --git a/desktop/src/onionshare/resources/locale/he.json b/desktop/onionshare/resources/locale/he.json similarity index 100% rename from desktop/src/onionshare/resources/locale/he.json rename to desktop/onionshare/resources/locale/he.json diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/onionshare/resources/locale/hi.json similarity index 100% rename from desktop/src/onionshare/resources/locale/hi.json rename to desktop/onionshare/resources/locale/hi.json diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/onionshare/resources/locale/hr.json similarity index 100% rename from desktop/src/onionshare/resources/locale/hr.json rename to desktop/onionshare/resources/locale/hr.json diff --git a/desktop/src/onionshare/resources/locale/hu.json b/desktop/onionshare/resources/locale/hu.json similarity index 100% rename from desktop/src/onionshare/resources/locale/hu.json rename to desktop/onionshare/resources/locale/hu.json diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/onionshare/resources/locale/id.json similarity index 100% rename from desktop/src/onionshare/resources/locale/id.json rename to desktop/onionshare/resources/locale/id.json diff --git a/desktop/src/onionshare/resources/locale/is.json b/desktop/onionshare/resources/locale/is.json similarity index 100% rename from desktop/src/onionshare/resources/locale/is.json rename to desktop/onionshare/resources/locale/is.json diff --git a/desktop/src/onionshare/resources/locale/it.json b/desktop/onionshare/resources/locale/it.json similarity index 100% rename from desktop/src/onionshare/resources/locale/it.json rename to desktop/onionshare/resources/locale/it.json diff --git a/desktop/src/onionshare/resources/locale/ja.json b/desktop/onionshare/resources/locale/ja.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ja.json rename to desktop/onionshare/resources/locale/ja.json diff --git a/desktop/src/onionshare/resources/locale/ka.json b/desktop/onionshare/resources/locale/ka.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ka.json rename to desktop/onionshare/resources/locale/ka.json diff --git a/desktop/src/onionshare/resources/locale/km.json b/desktop/onionshare/resources/locale/km.json similarity index 100% rename from desktop/src/onionshare/resources/locale/km.json rename to desktop/onionshare/resources/locale/km.json diff --git a/desktop/src/onionshare/resources/locale/ko.json b/desktop/onionshare/resources/locale/ko.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ko.json rename to desktop/onionshare/resources/locale/ko.json diff --git a/desktop/src/onionshare/resources/locale/lg.json b/desktop/onionshare/resources/locale/lg.json similarity index 100% rename from desktop/src/onionshare/resources/locale/lg.json rename to desktop/onionshare/resources/locale/lg.json diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/onionshare/resources/locale/lt.json similarity index 100% rename from desktop/src/onionshare/resources/locale/lt.json rename to desktop/onionshare/resources/locale/lt.json diff --git a/desktop/src/onionshare/resources/locale/mk.json b/desktop/onionshare/resources/locale/mk.json similarity index 100% rename from desktop/src/onionshare/resources/locale/mk.json rename to desktop/onionshare/resources/locale/mk.json diff --git a/desktop/src/onionshare/resources/locale/ms.json b/desktop/onionshare/resources/locale/ms.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ms.json rename to desktop/onionshare/resources/locale/ms.json diff --git a/desktop/src/onionshare/resources/locale/nb_NO.json b/desktop/onionshare/resources/locale/nb_NO.json similarity index 100% rename from desktop/src/onionshare/resources/locale/nb_NO.json rename to desktop/onionshare/resources/locale/nb_NO.json diff --git a/desktop/src/onionshare/resources/locale/nl.json b/desktop/onionshare/resources/locale/nl.json similarity index 100% rename from desktop/src/onionshare/resources/locale/nl.json rename to desktop/onionshare/resources/locale/nl.json diff --git a/desktop/src/onionshare/resources/locale/pa.json b/desktop/onionshare/resources/locale/pa.json similarity index 100% rename from desktop/src/onionshare/resources/locale/pa.json rename to desktop/onionshare/resources/locale/pa.json diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/onionshare/resources/locale/pl.json similarity index 100% rename from desktop/src/onionshare/resources/locale/pl.json rename to desktop/onionshare/resources/locale/pl.json diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/onionshare/resources/locale/pt_BR.json similarity index 90% rename from desktop/src/onionshare/resources/locale/pt_BR.json rename to desktop/onionshare/resources/locale/pt_BR.json index 55789bf4..cab895e3 100644 --- a/desktop/src/onionshare/resources/locale/pt_BR.json +++ b/desktop/onionshare/resources/locale/pt_BR.json @@ -86,16 +86,16 @@ "gui_settings_authenticate_no_auth_option": "Sem autenticação nem cookie de autenticação", "gui_settings_authenticate_password_option": "Senha", "gui_settings_password_label": "Senha", - "gui_settings_tor_bridges": "Suporte para pontes Tor", + "gui_settings_tor_bridges": "Conectar usando uma ponte Tor?", "gui_settings_tor_bridges_no_bridges_radio_option": "Não usar pontes", "gui_settings_tor_bridges_obfs4_radio_option": "Usar transportadores plugáveis obfs4 já instalados", "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Usar transportadores plugáveis obfs4 já instalados (requer obfs4proxy)", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Usar transportadores plugáveis meek_lite (Azure) já instalados", "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Usar transportadores plugáveis meek_lite (Azure) já instalados (requer obfs4proxy)", - "gui_settings_meek_lite_expensive_warning": "Aviso: as pontes meek_lite são muito custosas para o Projeto Tor.

Use-as somente se você não conseguir se conectar ao Tor diretamente, via transportadores obfs4 ou outras pontes comuns.", + "gui_settings_meek_lite_expensive_warning": "Aviso: as pontes meek-azure são muito custosas para o Projeto Tor.

Use-as somente se você não conseguir se conectar ao Tor diretamente, via transportadores obfs4 ou outras pontes comuns.", "gui_settings_tor_bridges_custom_radio_option": "Usar pontes personalizadas", "gui_settings_tor_bridges_custom_label": "Você pode obter pontes em https://bridges.torproject.org", - "gui_settings_tor_bridges_invalid": "Nenhuma das ponte adicionadas funciona.\nTente usá-las de novo ou adicione outras.", + "gui_settings_tor_bridges_invalid": "Nenhuma das ponte adicionadas funciona. Tente usá-las de novo ou adicione outras.", "gui_settings_button_save": "Salvar", "gui_settings_button_cancel": "Cancelar", "gui_settings_button_help": "Ajuda", @@ -174,7 +174,7 @@ "gui_upload_finished": "Upload realizado de {}", "gui_download_in_progress": "Download Iniciado {}", "gui_open_folder_error_nautilus": "Não foi possível abrir a pasta porque o nautilus não está disponível. O arquivo está aqui: {}", - "gui_settings_language_label": "Idioma", + "gui_settings_language_label": "Língua", "gui_settings_language_changed_notice": "Reinicie OnionShare para que o novo idioma seja aplicado.", "timeout_upload_still_running": "Esperando o término do upload", "gui_add_files": "Adicionar Arquivos", @@ -229,7 +229,7 @@ "gui_website_mode_no_files": "Nenhum website compartilhado ainda", "history_requests_tooltip": "{} solicitações da web", "gui_settings_website_label": "Configurações do Website", - "mode_settings_website_disable_csp_checkbox": "Desativar cabeçalho da política de segurança de conteúdo (permite que seu site use recursos de terceiros)", + "mode_settings_website_disable_csp_checkbox": "Não envie o cabeçalho padrão da Política de Segurança de Conteúdo (permite que seu website utilize recursos de terceiros)", "mode_settings_receive_data_dir_browse_button": "Navegar", "mode_settings_receive_data_dir_label": "Salvar arquivos em", "mode_settings_share_autostop_sharing_checkbox": "Interrompa o compartilhamento após o envio dos arquivos (desmarque para permitir o download de arquivos individuais)", @@ -309,5 +309,30 @@ "gui_url_instructions": "Primeiro, envie o endereço OnionShare abaixo:", "gui_chat_url_public_description": "Qualquer pessoa com este endereço OnionShare pode entrar nesta sala de bate-papo usando o Navegador Tor: ", "gui_receive_url_public_description": "Qualquer pessoa com este endereço OnionShare pode carregar arquivos para o seu computador usando o Navegador Tor: ", - "gui_website_url_public_description": "Qualquer pessoa com este endereço OnionShare pode visitar o seu site usando o Navegador Tor: " + "gui_website_url_public_description": "Qualquer pessoa com este endereço OnionShare pode visitar o seu site usando o Navegador Tor: ", + "gui_dragdrop_sandbox_flatpak": "Para tornar a ferramenta Flatpak sandbox mais segura, a função de arrastar e largar não é suportada. Em vez disso, use os botões Adicionar Arquivos e Adicionar Pasta para procurar por arquivos.", + "gui_tor_settings_window_title": "Configurações do Tor", + "gui_settings_controller_extras_label": "Configurações do Tor", + "gui_settings_tor_bridges_label": "Pontes ajudam a acessar a Rede Tor em locais onde o Tor está bloqueado. Dependendo de onde você estiver, uma ponte pode funcionar melhor que outra.", + "gui_settings_bridge_use_checkbox": "Usar uma ponte", + "gui_settings_bridge_radio_builtin": "Selecione uma ponte embutida", + "gui_settings_bridge_none_radio_option": "Não usar uma ponte", + "gui_settings_bridge_moat_radio_option": "Solicite uma ponte no torproject.org", + "gui_settings_bridge_moat_button": "Solicitar uma nova ponte", + "gui_settings_bridge_custom_radio_option": "Fornece uma ponte que você teve acesso de uma fonte confiável", + "gui_settings_bridge_custom_placeholder": "digite adress:port (um por linha)", + "gui_settings_moat_bridges_invalid": "Você ainda não solicitou uma ponte do torproject.org.", + "gui_settings_stop_active_tabs_label": "Há serviços funcionando em algumas de suas abas.\nVocê deve parar todos os serviços para alterar suas configurações Tor.", + "gui_settings_version_label": "Você está usando o OnionShare {}", + "gui_settings_help_label": "Precisa de ajuda? Veja docs.onionshare.org", + "mode_settings_website_custom_csp_checkbox": "Enviar um cabeçalho personalizado da Política de Segurança de Conteúdo", + "moat_contact_label": "Contactando BridgeDB...", + "moat_captcha_label": "Resolva o CAPTCHA para solicitar uma ponte.", + "moat_captcha_placeholder": "Digite os caracteres que aparecem na imagem", + "moat_captcha_submit": "Enviar", + "moat_captcha_reload": "Recarregar", + "moat_bridgedb_error": "Erro ao contactar BridgeDB.", + "moat_captcha_error": "A solução não está correta. Por favor tente novamente.", + "moat_solution_empty_error": "Você deve informar os caracteres que aparecem na imagem", + "mode_tor_not_connected_label": "OnionShare não está conectado com a rede Tor" } diff --git a/desktop/src/onionshare/resources/locale/pt_PT.json b/desktop/onionshare/resources/locale/pt_PT.json similarity index 100% rename from desktop/src/onionshare/resources/locale/pt_PT.json rename to desktop/onionshare/resources/locale/pt_PT.json diff --git a/desktop/src/onionshare/resources/locale/ro.json b/desktop/onionshare/resources/locale/ro.json similarity index 100% rename from desktop/src/onionshare/resources/locale/ro.json rename to desktop/onionshare/resources/locale/ro.json diff --git a/desktop/src/onionshare/resources/locale/ru.json b/desktop/onionshare/resources/locale/ru.json similarity index 90% rename from desktop/src/onionshare/resources/locale/ru.json rename to desktop/onionshare/resources/locale/ru.json index 5819e38e..2636323f 100644 --- a/desktop/src/onionshare/resources/locale/ru.json +++ b/desktop/onionshare/resources/locale/ru.json @@ -98,16 +98,16 @@ "gui_settings_socks_label": "Порт SOCKS", "gui_settings_authenticate_label": "Настройки аутентификации Tor", "gui_settings_authenticate_no_auth_option": "Без аутентификации или cookie-аутентификации", - "gui_settings_tor_bridges": "Поддержка \"мостов\" Tor", + "gui_settings_tor_bridges": "Использовать \"мост\" Tor?", "gui_settings_tor_bridges_no_bridges_radio_option": "Не использовать \"мосты\"", "gui_settings_tor_bridges_obfs4_radio_option": "Использовать встроенные подключаемые транспорты obfs4", "gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Использовать встроенные подключаемые транспорты obfs4 (необходим obfs4proxy)", "gui_settings_tor_bridges_meek_lite_azure_radio_option": "Использовать встроенные транспорты meek_lite (Azure)", "gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Использовать встроенные транспорты meek_lite (Azure) (необходим obfs4proxy)", - "gui_settings_meek_lite_expensive_warning": "Внимание: использование \"мостов\" meek_lite очень затратно для Tor Project.

Используйте их только если не можете подключиться к сети Tor напрямую, через obfs4 транспорты или другие обычные \"мосты\".", + "gui_settings_meek_lite_expensive_warning": "Внимание: использование \"мостов\" meek_azure очень затратно для Tor Project.

Используйте их только если не можете подключиться к сети Tor напрямую, через obfs4 транспорты или другие обычные \"мосты\".", "gui_settings_tor_bridges_custom_radio_option": "Использовать пользовательские \"мосты\"", "gui_settings_tor_bridges_custom_label": "Получить настройки \"мостов\" можно здесь: https://bridges.torproject.org", - "gui_settings_tor_bridges_invalid": "Ни один из добавленных вами \"мостов\" не работает.\nПроверьте их снова или добавьте другие.", + "gui_settings_tor_bridges_invalid": "Ни один из добавленных вами \"мостов\" не работает. Проверьте их снова или добавьте другие.", "gui_settings_autostop_timer_checkbox": "Использовать стоп-таймер", "gui_settings_autostop_timer": "Остановить отправку в:", "settings_error_unknown": "Невозможно произвести подключение к контроллеру Tor: некорректные настройки.", @@ -230,7 +230,7 @@ "gui_settings_website_label": "Настройки Веб-сайта", "gui_main_page_share_button": "Сделать доступным для скачивания", "gui_close_tab_warning_title": "Вы уверены?", - "mode_settings_website_disable_csp_checkbox": "Не посылать заголовок Content Security Policy (позволяет Вашему веб сайту использовать ресурсы третих сторон)", + "mode_settings_website_disable_csp_checkbox": "Не посылать стандартный заголовок Content Security Policy (разрешить вашему веб-сайту использовать сторонние ресурсы)", "mode_settings_receive_data_dir_browse_button": "Обзор файлов", "mode_settings_receive_data_dir_label": "Сохранять файлы в", "mode_settings_share_autostop_sharing_checkbox": "Закрыть доступ к файлам после их отправки (отмените чтобы разрешить скачивание отдельных файлов)", @@ -305,5 +305,30 @@ "gui_qr_label_url_title": "Адрес OnionShare", "gui_copied_client_auth": "Секретный Ключ скопирован в буфер обмена", "gui_copied_client_auth_title": "Секретный Ключ Скопирован", - "gui_copy_client_auth": "Копировать Секретный Ключ" + "gui_copy_client_auth": "Копировать Секретный Ключ", + "gui_dragdrop_sandbox_flatpak": "Для обеспечения дополнительной безопасности, функция \"drag and drop\" не поддерживается песочницей Flatpak. Вместо этого используйте кнопки \"Добавить файлы\" и \"Добавить папку\".", + "gui_tor_settings_window_title": "Настройки Tor", + "gui_settings_controller_extras_label": "Настройки Tor", + "gui_settings_tor_bridges_label": "Мосты позволяют подключаться к сети Tor в местах, где его использование заблокировано. В зависимости от вашего местоположения лучше работать может тот или иной мост.", + "gui_settings_bridge_use_checkbox": "Использовать мост", + "gui_settings_bridge_radio_builtin": "Выбрать встроенный мост", + "gui_settings_bridge_none_radio_option": "Не использовать мост", + "gui_settings_bridge_moat_radio_option": "Запросить мост с сайта torproject.org", + "gui_settings_bridge_moat_button": "Запросить Новый Мост", + "gui_settings_bridge_custom_radio_option": "Подключить мост о котором вы узнали из доверенного источника", + "gui_settings_bridge_custom_placeholder": "ввести адрес:порт (по одному на каждой строке)", + "gui_settings_moat_bridges_invalid": "Вы ещё не запрашивали мост с сайта torproject.org.", + "gui_settings_stop_active_tabs_label": "На некоторых из ваших вкладок запущены сервисы.\nНеобходимо остановить все сервисы чтобы изменить настройки Tor.", + "gui_settings_version_label": "Вы используете OnionShare {}", + "gui_settings_help_label": "Нужна помощь? Вам сюда: docs.onionshare.org", + "mode_settings_website_custom_csp_checkbox": "Отправить самостоятельно настроенный заголовок Content Security Policy", + "moat_contact_label": "Устанавливается связь с BridgeDB...", + "moat_captcha_label": "Решите CAPTCHA, чтобы запросить мост.", + "moat_captcha_placeholder": "Введите символы на картинке", + "moat_captcha_submit": "Отправить", + "moat_captcha_reload": "Перезагрузить", + "moat_bridgedb_error": "Ошибка соединения с BridgeDB.", + "moat_captcha_error": "Решение не верно. Пожалуйста, попробуйте ещё раз.", + "moat_solution_empty_error": "Вы должны ввести символы с картинки", + "mode_tor_not_connected_label": "OnionShare не подключен к сети Tor" } diff --git a/desktop/src/onionshare/resources/locale/si.json b/desktop/onionshare/resources/locale/si.json similarity index 100% rename from desktop/src/onionshare/resources/locale/si.json rename to desktop/onionshare/resources/locale/si.json diff --git a/desktop/src/onionshare/resources/locale/sk.json b/desktop/onionshare/resources/locale/sk.json similarity index 100% rename from desktop/src/onionshare/resources/locale/sk.json rename to desktop/onionshare/resources/locale/sk.json diff --git a/desktop/src/onionshare/resources/locale/sl.json b/desktop/onionshare/resources/locale/sl.json similarity index 100% rename from desktop/src/onionshare/resources/locale/sl.json rename to desktop/onionshare/resources/locale/sl.json diff --git a/desktop/src/onionshare/resources/locale/sn.json b/desktop/onionshare/resources/locale/sn.json similarity index 100% rename from desktop/src/onionshare/resources/locale/sn.json rename to desktop/onionshare/resources/locale/sn.json diff --git a/desktop/src/onionshare/resources/locale/sr_Latn.json b/desktop/onionshare/resources/locale/sr_Latn.json similarity index 100% rename from desktop/src/onionshare/resources/locale/sr_Latn.json rename to desktop/onionshare/resources/locale/sr_Latn.json diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/onionshare/resources/locale/sv.json similarity index 98% rename from desktop/src/onionshare/resources/locale/sv.json rename to desktop/onionshare/resources/locale/sv.json index 6593ed7f..d44b3a9e 100644 --- a/desktop/src/onionshare/resources/locale/sv.json +++ b/desktop/onionshare/resources/locale/sv.json @@ -315,5 +315,8 @@ "gui_qr_label_url_title": "OnionShare-adress", "gui_copied_client_auth": "Privat nyckel kopierad till Urklipp", "gui_copied_client_auth_title": "Kopierad privat nyckel", - "gui_copy_client_auth": "Kopiera den privata nyckeln" + "gui_copy_client_auth": "Kopiera den privata nyckeln", + "gui_tor_settings_window_title": "Torinställningar", + "gui_settings_controller_extras_label": "Torinställningar", + "gui_dragdrop_sandbox_flatpak": "För att göra Flatpak mer säkert, är dra och släpp inte tillåtet. Använd Lägg till filer och Lägg till katalog knapparna för att bläddra efter filer istället." } diff --git a/desktop/src/onionshare/resources/locale/sw.json b/desktop/onionshare/resources/locale/sw.json similarity index 100% rename from desktop/src/onionshare/resources/locale/sw.json rename to desktop/onionshare/resources/locale/sw.json diff --git a/desktop/src/onionshare/resources/locale/te.json b/desktop/onionshare/resources/locale/te.json similarity index 100% rename from desktop/src/onionshare/resources/locale/te.json rename to desktop/onionshare/resources/locale/te.json diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/onionshare/resources/locale/tr.json similarity index 100% rename from desktop/src/onionshare/resources/locale/tr.json rename to desktop/onionshare/resources/locale/tr.json diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/onionshare/resources/locale/uk.json similarity index 100% rename from desktop/src/onionshare/resources/locale/uk.json rename to desktop/onionshare/resources/locale/uk.json diff --git a/desktop/src/onionshare/resources/locale/wo.json b/desktop/onionshare/resources/locale/wo.json similarity index 100% rename from desktop/src/onionshare/resources/locale/wo.json rename to desktop/onionshare/resources/locale/wo.json diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/onionshare/resources/locale/yo.json similarity index 100% rename from desktop/src/onionshare/resources/locale/yo.json rename to desktop/onionshare/resources/locale/yo.json diff --git a/desktop/src/onionshare/resources/locale/zh_Hans.json b/desktop/onionshare/resources/locale/zh_Hans.json similarity index 100% rename from desktop/src/onionshare/resources/locale/zh_Hans.json rename to desktop/onionshare/resources/locale/zh_Hans.json diff --git a/desktop/src/onionshare/resources/locale/zh_Hant.json b/desktop/onionshare/resources/locale/zh_Hant.json similarity index 100% rename from desktop/src/onionshare/resources/locale/zh_Hant.json rename to desktop/onionshare/resources/locale/zh_Hant.json diff --git a/desktop/src/onionshare/resources/onionshare-128.png b/desktop/onionshare/resources/onionshare-128.png similarity index 100% rename from desktop/src/onionshare/resources/onionshare-128.png rename to desktop/onionshare/resources/onionshare-128.png diff --git a/desktop/src/onionshare/resources/onionshare-16.png b/desktop/onionshare/resources/onionshare-16.png similarity index 100% rename from desktop/src/onionshare/resources/onionshare-16.png rename to desktop/onionshare/resources/onionshare-16.png diff --git a/desktop/src/onionshare/resources/onionshare-256.png b/desktop/onionshare/resources/onionshare-256.png similarity index 100% rename from desktop/src/onionshare/resources/onionshare-256.png rename to desktop/onionshare/resources/onionshare-256.png diff --git a/desktop/src/onionshare/resources/onionshare-32.png b/desktop/onionshare/resources/onionshare-32.png similarity index 100% rename from desktop/src/onionshare/resources/onionshare-32.png rename to desktop/onionshare/resources/onionshare-32.png diff --git a/desktop/src/onionshare/resources/onionshare-512.png b/desktop/onionshare/resources/onionshare-512.png similarity index 100% rename from desktop/src/onionshare/resources/onionshare-512.png rename to desktop/onionshare/resources/onionshare-512.png diff --git a/desktop/src/onionshare/resources/onionshare-64.png b/desktop/onionshare/resources/onionshare-64.png similarity index 100% rename from desktop/src/onionshare/resources/onionshare-64.png rename to desktop/onionshare/resources/onionshare-64.png diff --git a/desktop/src/onionshare/resources/onionshare.icns b/desktop/onionshare/resources/onionshare.icns similarity index 100% rename from desktop/src/onionshare/resources/onionshare.icns rename to desktop/onionshare/resources/onionshare.icns diff --git a/desktop/src/onionshare/resources/onionshare.ico b/desktop/onionshare/resources/onionshare.ico similarity index 100% rename from desktop/src/onionshare/resources/onionshare.ico rename to desktop/onionshare/resources/onionshare.ico diff --git a/desktop/src/onionshare/resources/onionshare.png b/desktop/onionshare/resources/onionshare.png similarity index 100% rename from desktop/src/onionshare/resources/onionshare.png rename to desktop/onionshare/resources/onionshare.png diff --git a/desktop/src/onionshare/settings_tab.py b/desktop/onionshare/settings_tab.py similarity index 99% rename from desktop/src/onionshare/settings_tab.py rename to desktop/onionshare/settings_tab.py index cfa3261e..58843a0d 100644 --- a/desktop/src/onionshare/settings_tab.py +++ b/desktop/onionshare/settings_tab.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/strings.py b/desktop/onionshare/strings.py similarity index 96% rename from desktop/src/onionshare/strings.py rename to desktop/onionshare/strings.py index 55f56788..f79195ea 100644 --- a/desktop/src/onionshare/strings.py +++ b/desktop/onionshare/strings.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/__init__.py b/desktop/onionshare/tab/__init__.py similarity index 91% rename from desktop/src/onionshare/tab/__init__.py rename to desktop/onionshare/tab/__init__.py index 62ec4a74..38c3abd5 100644 --- a/desktop/src/onionshare/tab/__init__.py +++ b/desktop/onionshare/tab/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/onionshare/tab/mode/__init__.py similarity index 99% rename from desktop/src/onionshare/tab/mode/__init__.py rename to desktop/onionshare/tab/mode/__init__.py index c9b5cad1..e50b9859 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/onionshare/tab/mode/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/mode/chat_mode/__init__.py b/desktop/onionshare/tab/mode/chat_mode/__init__.py similarity index 98% rename from desktop/src/onionshare/tab/mode/chat_mode/__init__.py rename to desktop/onionshare/tab/mode/chat_mode/__init__.py index 1081fe9d..af2cab81 100644 --- a/desktop/src/onionshare/tab/mode/chat_mode/__init__.py +++ b/desktop/onionshare/tab/mode/chat_mode/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/mode/file_selection.py b/desktop/onionshare/tab/mode/file_selection.py similarity index 99% rename from desktop/src/onionshare/tab/mode/file_selection.py rename to desktop/onionshare/tab/mode/file_selection.py index 1addba22..87d2e087 100644 --- a/desktop/src/onionshare/tab/mode/file_selection.py +++ b/desktop/onionshare/tab/mode/file_selection.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/mode/history.py b/desktop/onionshare/tab/mode/history.py similarity index 99% rename from desktop/src/onionshare/tab/mode/history.py rename to desktop/onionshare/tab/mode/history.py index 091905f7..d24e53c1 100644 --- a/desktop/src/onionshare/tab/mode/history.py +++ b/desktop/onionshare/tab/mode/history.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -481,6 +481,7 @@ class IndividualFileHistoryItem(HistoryItem): self.common.gui.css["history_individual_file_timestamp_label"] ) self.path_label = QtWidgets.QLabel(self.path) + self.path_label.setTextFormat(QtCore.Qt.PlainText) self.path_label.setStyleSheet(self.common.gui.css["history_default_label"]) self.status_code_label = QtWidgets.QLabel() diff --git a/desktop/src/onionshare/tab/mode/mode_settings_widget.py b/desktop/onionshare/tab/mode/mode_settings_widget.py similarity index 99% rename from desktop/src/onionshare/tab/mode/mode_settings_widget.py rename to desktop/onionshare/tab/mode/mode_settings_widget.py index 0e80023e..7545c19e 100644 --- a/desktop/src/onionshare/tab/mode/mode_settings_widget.py +++ b/desktop/onionshare/tab/mode/mode_settings_widget.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/mode/receive_mode/__init__.py b/desktop/onionshare/tab/mode/receive_mode/__init__.py similarity index 99% rename from desktop/src/onionshare/tab/mode/receive_mode/__init__.py rename to desktop/onionshare/tab/mode/receive_mode/__init__.py index b2b2fc5a..55640c33 100644 --- a/desktop/src/onionshare/tab/mode/receive_mode/__init__.py +++ b/desktop/onionshare/tab/mode/receive_mode/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/mode/share_mode/__init__.py b/desktop/onionshare/tab/mode/share_mode/__init__.py similarity index 99% rename from desktop/src/onionshare/tab/mode/share_mode/__init__.py rename to desktop/onionshare/tab/mode/share_mode/__init__.py index ed7f6912..2617176d 100644 --- a/desktop/src/onionshare/tab/mode/share_mode/__init__.py +++ b/desktop/onionshare/tab/mode/share_mode/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/mode/share_mode/threads.py b/desktop/onionshare/tab/mode/share_mode/threads.py similarity index 96% rename from desktop/src/onionshare/tab/mode/share_mode/threads.py rename to desktop/onionshare/tab/mode/share_mode/threads.py index 839d30ea..6b1d96d6 100644 --- a/desktop/src/onionshare/tab/mode/share_mode/threads.py +++ b/desktop/onionshare/tab/mode/share_mode/threads.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/mode/website_mode/__init__.py b/desktop/onionshare/tab/mode/website_mode/__init__.py similarity index 99% rename from desktop/src/onionshare/tab/mode/website_mode/__init__.py rename to desktop/onionshare/tab/mode/website_mode/__init__.py index 0acbc1a2..a732c390 100644 --- a/desktop/src/onionshare/tab/mode/website_mode/__init__.py +++ b/desktop/onionshare/tab/mode/website_mode/__init__.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/onionshare/tab/server_status.py similarity index 99% rename from desktop/src/onionshare/tab/server_status.py rename to desktop/onionshare/tab/server_status.py index 115acfd5..d355b43b 100644 --- a/desktop/src/onionshare/tab/server_status.py +++ b/desktop/onionshare/tab/server_status.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/onionshare/tab/tab.py similarity index 99% rename from desktop/src/onionshare/tab/tab.py rename to desktop/onionshare/tab/tab.py index b0aa25df..7f4e4073 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/onionshare/tab/tab.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py similarity index 99% rename from desktop/src/onionshare/tab_widget.py rename to desktop/onionshare/tab_widget.py index b810d607..29f443ac 100644 --- a/desktop/src/onionshare/tab_widget.py +++ b/desktop/onionshare/tab_widget.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/threads.py b/desktop/onionshare/threads.py similarity index 99% rename from desktop/src/onionshare/threads.py rename to desktop/onionshare/threads.py index b02c6f21..7f445fc1 100644 --- a/desktop/src/onionshare/threads.py +++ b/desktop/onionshare/threads.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/onionshare/tor_connection.py similarity index 99% rename from desktop/src/onionshare/tor_connection.py rename to desktop/onionshare/tor_connection.py index 83422b3a..f6b4bcb2 100644 --- a/desktop/src/onionshare/tor_connection.py +++ b/desktop/onionshare/tor_connection.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/onionshare/tor_settings_tab.py similarity index 99% rename from desktop/src/onionshare/tor_settings_tab.py rename to desktop/onionshare/tor_settings_tab.py index 28cafc4c..9c9ea593 100644 --- a/desktop/src/onionshare/tor_settings_tab.py +++ b/desktop/onionshare/tor_settings_tab.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/update_checker.py b/desktop/onionshare/update_checker.py similarity index 99% rename from desktop/src/onionshare/update_checker.py rename to desktop/onionshare/update_checker.py index e9dbc060..71095356 100644 --- a/desktop/src/onionshare/update_checker.py +++ b/desktop/onionshare/update_checker.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/onionshare/widgets.py b/desktop/onionshare/widgets.py similarity index 98% rename from desktop/src/onionshare/widgets.py rename to desktop/onionshare/widgets.py index 761df212..64a07703 100644 --- a/desktop/src/onionshare/widgets.py +++ b/desktop/onionshare/widgets.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/desktop/src/org.onionshare.OnionShare.appdata.xml b/desktop/org.onionshare.OnionShare.appdata.xml similarity index 89% rename from desktop/src/org.onionshare.OnionShare.appdata.xml rename to desktop/org.onionshare.OnionShare.appdata.xml index 1bdac5f8..d6afc314 100644 --- a/desktop/src/org.onionshare.OnionShare.appdata.xml +++ b/desktop/org.onionshare.OnionShare.appdata.xml @@ -13,7 +13,7 @@ org.onionshare.OnionShare.desktop - https://docs.onionshare.org/2.4/en/_images/tabs.png + https://docs.onionshare.org/2.5/en/_images/tabs.png Types of services that OnionShare supports @@ -24,6 +24,6 @@ micah@micahflee.com - + diff --git a/desktop/src/org.onionshare.OnionShare.desktop b/desktop/org.onionshare.OnionShare.desktop similarity index 100% rename from desktop/src/org.onionshare.OnionShare.desktop rename to desktop/org.onionshare.OnionShare.desktop diff --git a/desktop/src/org.onionshare.OnionShare.svg b/desktop/org.onionshare.OnionShare.svg similarity index 100% rename from desktop/src/org.onionshare.OnionShare.svg rename to desktop/org.onionshare.OnionShare.svg diff --git a/desktop/package/macos/Entitlements.plist b/desktop/package/Entitlements.plist similarity index 100% rename from desktop/package/macos/Entitlements.plist rename to desktop/package/Entitlements.plist diff --git a/desktop/package/build-mac.py b/desktop/package/build-mac.py new file mode 100755 index 00000000..9d2a0dfd --- /dev/null +++ b/desktop/package/build-mac.py @@ -0,0 +1,308 @@ +#!/usr/bin/env python3 +import os +import inspect +import subprocess +import shutil +import itertools +import glob + +root = os.path.dirname( + os.path.dirname( + os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) + ) +) + + +def run(cmd, cwd=None, error_ok=False): + print(f"{cmd} # cwd={cwd}") + subprocess.run(cmd, cwd=cwd, check=True) + + +def get_size(dir): + size = 0 + for path, dirs, files in os.walk(dir): + for f in files: + fp = os.path.join(path, f) + size += os.path.getsize(fp) + return size + + +def codesign(path, entitlements, identity): + run( + [ + "codesign", + "--sign", + identity, + "--entitlements", + str(entitlements), + "--timestamp", + "--deep", + "--force", + "--options", + "runtime,library", + str(path), + ] + ) + + +def main(): + desktop_dir = f"{root}/desktop" + app_dir = f"{desktop_dir}/build/OnionShare.app" + + print("○ Clean up from last build") + if os.path.exists(f"{desktop_dir}/build"): + shutil.rmtree(f"{desktop_dir}/build") + if os.path.exists(f"{desktop_dir}/dist"): + shutil.rmtree(f"{desktop_dir}/dist") + + print("○ Building binaries") + run( + [ + shutil.which("python"), + "setup-freeze.py", + "bdist_mac", + ], + desktop_dir, + ) + before_size = get_size(f"{app_dir}") + + print("○ Delete unused Qt Frameworks") + for framework in [ + "Qt3DAnimation", + "Qt3DCore", + "Qt3DExtras", + "Qt3DInput", + "Qt3DLogic", + "Qt3DQuick", + "Qt3DQuickAnimation", + "Qt3DQuickExtras", + "Qt3DQuickInput", + "Qt3DQuickRender", + "Qt3DQuickScene2D", + "Qt3DRender", + "QtBluetooth", + "QtBodymovin", + "QtCharts", + "QtConcurrent", + "QtDataVisualization", + "QtDesigner", + "QtDesignerComponents", + "QtGamepad", + "QtHelp", + "QtLocation", + "QtMultimedia", + "QtMultimediaQuick", + "QtMultimediaWidgets", + "QtNetwork", + "QtNetworkAuth", + "QtNfc", + "QtOpenGL", + "QtPdf", + "QtPdfWidgets", + "QtPositioning", + "QtPositioningQuick", + "QtPrintSupport", + "QtPurchasing", + "QtQml", + "QtQmlModels", + "QtQmlWorkerScript", + "QtQuick", + "QtQuick3D", + "QtQuick3DAssetImport", + "QtQuick3DRender", + "QtQuick3DRuntimeRender", + "QtQuick3DUtils", + "QtQuickControls2", + "QtQuickParticles", + "QtQuickShapes", + "QtQuickTemplates2", + "QtQuickTest", + "QtQuickWidgets", + "QtRemoteObjects", + "QtRepParser", + "QtScript", + "QtScriptTools", + "QtScxml", + "QtSensors", + "QtSerialBus", + "QtSerialPort", + "QtSql", + "QtSvg", + "QtTest", + "QtTextToSpeech", + "QtUiPlugin", + "QtVirtualKeyboard", + "QtWebChannel", + "QtWebEngine", + "QtWebEngineCore", + "QtWebEngineWidgets", + "QtWebSockets", + "QtWebView", + "QtXml", + "QtXmlPatterns", + ]: + shutil.rmtree( + f"{app_dir}/Contents/MacOS/lib/PySide2/Qt/lib/{framework}.framework" + ) + try: + os.remove( + f"{app_dir}/Contents/MacOS/lib/PySide2/{framework}.abi3.so" + ) + os.remove( + f"{app_dir}/Contents/MacOS/lib/PySide2/{framework}.pyi" + ) + except FileNotFoundError: + pass + + print("○ Move files around so Apple will notarize") + # https://github.com/marcelotduarte/cx_Freeze/issues/594 + # https://gist.github.com/TechnicalPirate/259a9c24878fcad948452cb148af2a2c#file-custom_bdist_mac-py-L415 + + # Move lib from MacOS into Resources + os.rename( + f"{app_dir}/Contents/MacOS/lib", + f"{app_dir}/Contents/Resources/lib", + ) + run( + ["ln", "-s", "../Resources/lib"], + cwd=f"{app_dir}/Contents/MacOS", + ) + + # Move frameworks from Resources/lib into Frameworks + os.makedirs(f"{app_dir}/Contents/Frameworks", exist_ok=True) + for framework_filename in glob.glob( + f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib/Qt*.framework" + ): + basename = os.path.basename(framework_filename) + + os.rename(framework_filename, f"{app_dir}/Contents/Frameworks/{basename}") + run( + ["ln", "-s", f"../../../../../Frameworks/{basename}"], + cwd=f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib", + ) + if os.path.exists(f"{app_dir}/Contents/Frameworks/{basename}/Resources"): + os.rename( + f"{app_dir}/Contents/Frameworks/{basename}/Resources", + f"{app_dir}/Contents/Frameworks/{basename}/Versions/5/Resources" + ) + run( + ["ln", "-s", "Versions/5/Resources"], + cwd=f"{app_dir}/Contents/Frameworks/{basename}", + ) + + run( + ["ln", "-s", "5", "Current"], + cwd=f"{app_dir}/Contents/Frameworks/{basename}/Versions", + ) + + # Move Qt plugins + os.rename( + f"{app_dir}/Contents/Resources/lib/PySide2/Qt/plugins", + f"{app_dir}/Contents/Frameworks/plugins", + ) + run( + ["ln", "-s", "../../../../Frameworks/plugins"], + cwd=f"{app_dir}/Contents/Resources/lib/PySide2/Qt", + ) + + print("○ Delete more unused PySide2 stuff to save space") + for filename in [ + f"{app_dir}/Contents/Resources/lib/PySide2/Designer.app", + f"{app_dir}/Contents/Resources/lib/PySide2/examples", + f"{app_dir}/Contents/Resources/lib/PySide2/glue", + f"{app_dir}/Contents/Resources/lib/PySide2/include", + f"{app_dir}/Contents/Resources/lib/PySide2/pyside2-lupdate", + f"{app_dir}/Contents/Resources/lib/PySide2/Qt/qml", + f"{app_dir}/Contents/Resources/lib/PySide2/libpyside2.abi3.5.15.dylib", + f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib/QtRepParser.framework", + f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib/QtUiPlugin.framework", + f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib/QtWebEngineCore.framework/Helpers", + f"{app_dir}/Contents/Resources/lib/shiboken2/libshiboken2.abi3.5.15.dylib", + f"{app_dir}/Contents/Resources/lib/shiboken2/docs", + f"{app_dir}/Contents/Resources/lib/PySide2/rcc", + f"{app_dir}/Contents/Resources/lib/PySide2/uic", + ]: + if os.path.isdir(filename): + shutil.rmtree(filename) + elif os.path.isfile(filename): + os.remove(filename) + else: + print(f"Cannot delete, filename not found: {filename}") + + after_size = get_size(f"{app_dir}") + freed_bytes = before_size - after_size + freed_mb = int(freed_bytes / 1024 / 1024) + print(f"○ Freed {freed_mb} mb") + + print("○ Sign app bundle") + identity_name_application = "Developer ID Application: Micah Lee (N9B95FDWH4)" + entitlements_plist_path = f"{desktop_dir}/package/Entitlements.plist" + + for path in itertools.chain( + glob.glob(f"{app_dir}/Contents/Resources/lib/**/*.so", recursive=True), + glob.glob(f"{app_dir}/Contents/Resources/lib/**/*.dylib", recursive=True), + [ + f"{app_dir}/Contents/Frameworks/QtCore.framework/Versions/5/QtCore", + f"{app_dir}/Contents/Frameworks/QtDBus.framework/Versions/5/QtDBus", + f"{app_dir}/Contents/Frameworks/QtGui.framework/Versions/5/QtGui", + f"{app_dir}/Contents/Frameworks/QtMacExtras.framework/Versions/5/QtMacExtras", + f"{app_dir}/Contents/Frameworks/QtWidgets.framework/Versions/5/QtWidgets", + f"{app_dir}/Contents/Resources/lib/Python", + f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/meek-client", + f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/obfs4proxy", + f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/snowflake-client", + f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/tor", + f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/libevent-2.1.7.dylib", + f"{app_dir}/Contents/MacOS/onionshare", + f"{app_dir}/Contents/MacOS/onionshare-cli", + f"{app_dir}", + ], + ): + codesign(path, entitlements_plist_path, identity_name_application) + + print(f"○ Signed app bundle: {app_dir}") + + if not os.path.exists("/usr/local/bin/create-dmg"): + print("○ Error: create-dmg is not installed") + return + + print("○ Create DMG") + version_filename = f"{root}/cli/onionshare_cli/resources/version.txt" + with open(version_filename) as f: + version = f.read().strip() + + os.makedirs(f"{desktop_dir}/dist", exist_ok=True) + dmg_path = f"{desktop_dir}/dist/OnionShare-{version}.dmg" + run( + [ + "create-dmg", + "--volname", + "OnionShare", + "--volicon", + f"{desktop_dir}/onionshare/resources/onionshare.icns", + "--window-size", + "400", + "200", + "--icon-size", + "100", + "--icon", + "OnionShare.app", + "100", + "70", + "--hide-extension", + "OnionShare.app", + "--app-drop-link", + "300", + "70", + dmg_path, + f"{app_dir}", + "--identity", + identity_name_application, + ] + ) + + print(f"○ Finished building DMG: {dmg_path}") + + +if __name__ == "__main__": + main() diff --git a/desktop/package/build-windows.py b/desktop/package/build-windows.py new file mode 100644 index 00000000..9984dd4f --- /dev/null +++ b/desktop/package/build-windows.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python3 +import os +import inspect +import subprocess +import shutil +import uuid +import xml.etree.ElementTree as ET + + +root = os.path.dirname( + os.path.dirname( + os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) + ) +) + + +def run(cmd, cwd=None, error_ok=False): + print(cmd) + try: + subprocess.run(cmd, cwd=cwd, check=True) + except subprocess.CalledProcessError as e: + if not error_ok: + raise subprocess.CalledProcessError(e) + + +def sign(filename, cwd=None): + run( + [ + shutil.which("signtool"), + "sign", + "/v", + "/d", + "OnionShare", + "/sha1", + "bb1d265ab02272e8fc742f149dcf8751cac63f50", + "/fd", + "SHA256", + "/td", + "SHA256", + "/tr", + "http://timestamp.digicert.com", + filename, + ], + cwd, + ) + + +def get_size(dir): + size = 0 + for path, dirs, files in os.walk(dir): + for f in files: + fp = os.path.join(path, f) + size += os.path.getsize(fp) + return size + + +def wix_build_data(dirname, dir_prefix, id_, name): + data = { + "id": id_, + "name": name, + "files": [], + "dirs": [], + } + + for basename in os.listdir(dirname): + filename = os.path.join(dirname, basename) + if os.path.isfile(filename): + data["files"].append(os.path.join(dir_prefix, basename)) + elif os.path.isdir(filename): + if id_ == "INSTALLDIR": + id_prefix = "Folder" + else: + id_prefix = id_ + + # Skip lib/Pyside2/Examples folder + if "\\build\\exe.win32-3.9\\lib\\PySide2\\examples" in dirname: + continue + + id_value = f"{id_prefix}{basename.capitalize().replace('-', '_')}" + data["dirs"].append( + wix_build_data( + os.path.join(dirname, basename), + os.path.join(dir_prefix, basename), + id_value, + basename, + ) + ) + + if len(data["files"]) > 0: + if id_ == "INSTALLDIR": + data["component_id"] = "ApplicationFiles" + else: + data["component_id"] = "FolderComponent" + id_[len("Folder") :] + data["component_guid"] = str(uuid.uuid4()) + + return data + + +def wix_build_dir_xml(root, data): + attrs = {} + if "id" in data: + attrs["Id"] = data["id"] + if "name" in data: + attrs["Name"] = data["name"] + el = ET.SubElement(root, "Directory", attrs) + for subdata in data["dirs"]: + wix_build_dir_xml(el, subdata) + + # If this is the ProgramMenuFolder, add the menu component + if "id" in data and data["id"] == "ProgramMenuFolder": + component_el = ET.SubElement( + el, + "Component", + Id="ApplicationShortcuts", + Guid="539e7de8-a124-4c09-aa55-0dd516aad7bc", + ) + ET.SubElement( + component_el, + "Shortcut", + Id="ApplicationShortcut1", + Name="OnionShare", + Description="OnionShare", + Target="[INSTALLDIR]onionshare.exe", + WorkingDirectory="INSTALLDIR", + ) + ET.SubElement( + component_el, + "RegistryValue", + Root="HKCU", + Key="Software\OnionShare", + Name="installed", + Type="integer", + Value="1", + KeyPath="yes", + ) + + +def wix_build_components_xml(root, data): + component_ids = [] + if "component_id" in data: + component_ids.append(data["component_id"]) + + for subdata in data["dirs"]: + if "component_guid" in subdata: + dir_ref_el = ET.SubElement(root, "DirectoryRef", Id=subdata["id"]) + component_el = ET.SubElement( + dir_ref_el, + "Component", + Id=subdata["component_id"], + Guid=subdata["component_guid"], + ) + for filename in subdata["files"]: + file_el = ET.SubElement( + component_el, "File", Source=filename, Id="file_" + uuid.uuid4().hex + ) + + component_ids += wix_build_components_xml(root, subdata) + + return component_ids + + +def main(): + desktop_dir = os.path.join(root, "desktop") + + print("○ Clean up from last build") + if os.path.exists(os.path.join(desktop_dir, "build")): + shutil.rmtree(os.path.join(desktop_dir, "build")) + if os.path.exists(os.path.join(desktop_dir, "dist")): + shutil.rmtree(os.path.join(desktop_dir, "dist")) + + print("○ Building binaries") + run( + [ + shutil.which("python"), + "setup-freeze.py", + "build", + ], + desktop_dir, + ) + before_size = get_size(os.path.join(desktop_dir, "build", "exe.win32-3.9")) + + print("○ Delete unused PySide2 stuff to save space") + for dirname in ["examples", "qml"]: + shutil.rmtree( + os.path.join( + desktop_dir, "build", "exe.win32-3.9", "lib", "PySide2", dirname + ) + ) + for filename in [ + "lconvert.exe", + "linguist.exe", + "lrelease.exe", + "lupdate.exe", + "plugins/assetimporters/assimp.dll", + "plugins/assetimporters/uip.dll", + "plugins/audio/qtaudio_wasapi.dll", + "plugins/audio/qtaudio_windows.dll", + "plugins/bearer/qgenericbearer.dll", + "plugins/canbus/qtpassthrucanbus.dll", + "plugins/canbus/qtpeakcanbus.dll", + "plugins/canbus/qtsysteccanbus.dll", + "plugins/canbus/qttinycanbus.dll", + "plugins/canbus/qtvectorcanbus.dll", + "plugins/canbus/qtvirtualcanbus.dll", + "plugins/gamepads/xinputgamepad.dll", + "plugins/generic/qtuiotouchplugin.dll", + "plugins/geometryloaders/defaultgeometryloader.dll", + "plugins/geometryloaders/gltfgeometryloader.dll", + "plugins/geoservices/qtgeoservices_esri.dll", + "plugins/geoservices/qtgeoservices_itemsoverlay.dll", + "plugins/geoservices/qtgeoservices_mapbox.dll", + "plugins/geoservices/qtgeoservices_nokia.dll", + "plugins/geoservices/qtgeoservices_osm.dll", + "plugins/mediaservice/dsengine.dll", + "plugins/mediaservice/qtmedia_audioengine.dll", + "plugins/mediaservice/wmfengine.dll", + "plugins/platforminputcontexts/qtvirtualkeyboardplugin.dll", + "plugins/platforms/qdirect2d.dll", + "plugins/platforms/qoffscreen.dll", + "plugins/platforms/qwebgl.dll", + "plugins/platformthemes/qxdgdesktopportal.dll", + "plugins/playlistformats/qtmultimedia_m3u.dll", + "plugins/position/qtposition_positionpoll.dll", + "plugins/position/qtposition_serialnmea.dll", + "plugins/position/qtposition_winrt.dll", + "plugins/printsupport/windowsprintersupport.dll", + "plugins/qmltooling/qmldbg_debugger.dll", + "plugins/qmltooling/qmldbg_inspector.dll", + "plugins/qmltooling/qmldbg_local.dll", + "plugins/qmltooling/qmldbg_messages.dll", + "plugins/qmltooling/qmldbg_native.dll", + "plugins/qmltooling/qmldbg_nativedebugger.dll", + "plugins/qmltooling/qmldbg_preview.dll", + "plugins/qmltooling/qmldbg_profiler.dll", + "plugins/qmltooling/qmldbg_quickprofiler.dll", + "plugins/qmltooling/qmldbg_server.dll", + "plugins/qmltooling/qmldbg_tcp.dll", + "plugins/renderers/openglrenderer.dll", + "plugins/renderplugins/scene2d.dll", + "plugins/scenegraph/qsgd3d12backend.dll", + "plugins/sceneparsers/gltfsceneexport.dll", + "plugins/sceneparsers/gltfsceneimport.dll", + "plugins/sensorgestures/qtsensorgestures_plugin.dll", + "plugins/sensorgestures/qtsensorgestures_shakeplugin.dll", + "plugins/sensors/qtsensors_generic.dll", + "plugins/sqldrivers/qsqlite.dll", + "plugins/sqldrivers/qsqlodbc.dll", + "plugins/sqldrivers/qsqlpsql.dll", + "plugins/styles/qwindowsvistastyle.dll", + "plugins/texttospeech/qtexttospeech_sapi.dll", + "plugins/virtualkeyboard/qtvirtualkeyboard_hangul.dll", + "plugins/virtualkeyboard/qtvirtualkeyboard_openwnn.dll", + "plugins/virtualkeyboard/qtvirtualkeyboard_pinyin.dll", + "plugins/virtualkeyboard/qtvirtualkeyboard_tcime.dll", + "plugins/virtualkeyboard/qtvirtualkeyboard_thai.dll", + "plugins/webview/qtwebview_webengine.dll", + "pyside2-lupdate.exe", + "Qt3DAnimation.pyd", + "Qt3DAnimation.pyi", + "Qt3DCore.pyd", + "Qt3DCore.pyi", + "Qt3DExtras.pyd", + "Qt3DExtras.pyi", + "Qt3DInput.pyd", + "Qt3DInput.pyi", + "Qt3DLogic.pyd", + "Qt3DLogic.pyi", + "Qt3DRender.pyd", + "Qt3DRender.pyi", + "Qt53DAnimation.dll", + "Qt53DCore.dll", + "Qt53DExtras.dll", + "Qt53DInput.dll", + "Qt53DLogic.dll", + "Qt53DQuick.dll", + "Qt53DQuickAnimation.dll", + "Qt53DQuickExtras.dll", + "Qt53DQuickInput.dll", + "Qt53DQuickRender.dll", + "Qt53DQuickScene2D.dll", + "Qt53DRender.dll", + "Qt5Bluetooth.dll", + "Qt5Bodymovin.dll", + "Qt5Charts.dll", + "Qt5Concurrent.dll", + "Qt5DataVisualization.dll", + "Qt5DBus.dll", + "Qt5Designer.dll", + "Qt5DesignerComponents.dll", + "Qt5Gamepad.dll", + "Qt5Help.dll", + "Qt5Location.dll", + "Qt5Multimedia.dll", + "Qt5MultimediaQuick.dll", + "Qt5MultimediaWidgets.dll", + "Qt5Nfc.dll", + "Qt5OpenGL.dll", + "Qt5Pdf.dll", + "Qt5PdfWidgets.dll", + "Qt5Positioning.dll", + "Qt5PositioningQuick.dll", + "Qt5PrintSupport.dll", + "Qt5Purchasing.dll", + "Qt5Quick.dll", + "Qt5Quick3D.dll", + "Qt5Quick3DAssetImport.dll", + "Qt5Quick3DRender.dll", + "Qt5Quick3DRuntimeRender.dll", + "Qt5Quick3DUtils.dll", + "Qt5QuickControls2.dll", + "Qt5QuickParticles.dll", + "Qt5QuickShapes.dll", + "Qt5QuickTemplates2.dll", + "Qt5QuickTest.dll", + "Qt5QuickWidgets.dll", + "Qt5RemoteObjects.dll", + "Qt5Script.dll", + "Qt5ScriptTools.dll", + "Qt5Scxml.dll", + "Qt5Sensors.dll", + "Qt5SerialBus.dll", + "Qt5SerialPort.dll", + "Qt5Sql.dll", + "Qt5Svg.dll", + "Qt5Test.dll", + "Qt5TextToSpeech.dll", + "Qt5VirtualKeyboard.dll", + "Qt5WebChannel.dll", + "Qt5WebEngine.dll", + "Qt5WebEngineCore.dll", + "Qt5WebEngineWidgets.dll", + "Qt5WebSockets.dll", + "Qt5WebView.dll", + "Qt5Xml.dll", + "Qt5XmlPatterns.dll", + "QtAxContainer.pyd", + "QtAxContainer.pyi", + "QtCharts.pyd", + "QtCharts.pyi", + "QtConcurrent.pyd", + "QtConcurrent.pyi", + "QtDataVisualization.pyd", + "QtDataVisualization.pyi", + "qtdiag.exe", + "QtHelp.pyd", + "QtHelp.pyi", + "QtLocation.pyd", + "QtLocation.pyi", + "QtMultimedia.pyd", + "QtMultimedia.pyi", + "QtMultimediaWidgets.pyd", + "QtMultimediaWidgets.pyi", + "QtNetwork.pyd", + "QtNetwork.pyi", + "QtOpenGL.pyd", + "QtOpenGL.pyi", + "QtOpenGLFunctions.pyd", + "QtOpenGLFunctions.pyi", + "QtPositioning.pyd", + "QtPositioning.pyi", + "QtPrintSupport.pyd", + "QtPrintSupport.pyi", + "QtQml.pyd", + "QtQml.pyi", + "QtQuick.pyd", + "QtQuick.pyi", + "QtQuickControls2.pyd", + "QtQuickControls2.pyi", + "QtQuickWidgets.pyd", + "QtQuickWidgets.pyi", + "QtRemoteObjects.pyd", + "QtRemoteObjects.pyi", + "QtScript.pyd", + "QtScript.pyi", + "QtScriptTools.pyd", + "QtScriptTools.pyi", + "QtScxml.pyd", + "QtScxml.pyi", + "QtSensors.pyd", + "QtSensors.pyi", + "QtSerialPort.pyd", + "QtSerialPort.pyi", + "QtSql.pyd", + "QtSql.pyi", + "QtSvg.pyd", + "QtSvg.pyi", + "QtTest.pyd", + "QtTest.pyi", + "QtTextToSpeech.pyd", + "QtTextToSpeech.pyi", + "QtUiTools.pyd", + "QtUiTools.pyi", + "QtWebChannel.pyd", + "QtWebChannel.pyi", + "QtWebEngine.pyd", + "QtWebEngine.pyi", + "QtWebEngineCore.pyd", + "QtWebEngineCore.pyi", + "QtWebEngineProcess.exe", + "QtWebEngineWidgets.pyd", + "QtWebEngineWidgets.pyi", + "QtWebSockets.pyd", + "QtWebSockets.pyi", + "QtWinExtras.pyd", + "QtWinExtras.pyi", + "QtXml.pyd", + "QtXml.pyi", + "QtXmlPatterns.pyd", + "QtXmlPatterns.pyi", + "rcc.exe", + "uic.exe", + ]: + os.remove( + os.path.join( + desktop_dir, + "build", + "exe.win32-3.9", + "lib", + "PySide2", + filename.replace("/", "\\"), + ) + ) + + after_size = get_size(os.path.join(desktop_dir, "build", "exe.win32-3.9")) + freed_bytes = before_size - after_size + freed_mb = int(freed_bytes / 1024 / 1024) + print(f"○ Freed {freed_mb} mb") + + print(f"○ Signing onionshare.exe") + sign(os.path.join("build", "exe.win32-3.9", "onionshare.exe"), desktop_dir) + + print(f"○ Signing onionshare-cli.exe") + sign(os.path.join("build", "exe.win32-3.9", "onionshare-cli.exe"), desktop_dir) + + print(f"○ Build the WiX file") + version_filename = os.path.join( + root, "cli", "onionshare_cli", "resources", "version.txt" + ) + with open(version_filename) as f: + version = f.read().strip() + + dist_dir = os.path.join( + root, + "desktop", + "build", + "exe.win32-3.9", + ) + + data = { + "id": "TARGETDIR", + "name": "SourceDir", + "dirs": [ + { + "id": "ProgramFilesFolder", + "dirs": [], + }, + { + "id": "ProgramMenuFolder", + "dirs": [], + }, + ], + } + + data["dirs"][0]["dirs"].append( + wix_build_data( + dist_dir, + "exe.win32-3.9", + "INSTALLDIR", + "OnionShare", + ) + ) + + root_el = ET.Element("Wix", xmlns="http://schemas.microsoft.com/wix/2006/wi") + product_el = ET.SubElement( + root_el, + "Product", + Name="OnionShare", + Manufacturer="Micah Lee, et al.", + Id="*", + UpgradeCode="$(var.ProductUpgradeCode)", + Language="1033", + Codepage="1252", + Version="$(var.ProductVersion)", + ) + ET.SubElement( + product_el, + "Package", + Id="*", + Keywords="Installer", + Description="OnionShare $(var.ProductVersion) Installer", + Manufacturer="Micah Lee, et al.", + InstallerVersion="100", + Languages="1033", + Compressed="yes", + SummaryCodepage="1252", + ) + ET.SubElement(product_el, "Media", Id="1", Cabinet="product.cab", EmbedCab="yes") + ET.SubElement( + product_el, + "Icon", + Id="ProductIcon", + SourceFile="..\\onionshare\\resources\\onionshare.ico", + ) + ET.SubElement(product_el, "Property", Id="ARPPRODUCTICON", Value="ProductIcon") + ET.SubElement( + product_el, + "Property", + Id="ARPHELPLINK", + Value="https://docs.onionshare.org", + ) + ET.SubElement( + product_el, + "Property", + Id="ARPURLINFOABOUT", + Value="https://onionshare.org", + ) + ET.SubElement(product_el, "UIRef", Id="WixUI_Minimal") + ET.SubElement(product_el, "UIRef", Id="WixUI_ErrorProgressText") + ET.SubElement( + product_el, + "WixVariable", + Id="WixUILicenseRtf", + Value="..\\package\\license.rtf", + ) + ET.SubElement( + product_el, + "WixVariable", + Id="WixUIDialogBmp", + Value="..\\package\\dialog.bmp", + ) + ET.SubElement( + product_el, + "MajorUpgrade", + AllowSameVersionUpgrades="yes", + DowngradeErrorMessage="A newer version of [ProductName] is already installed. If you are sure you want to downgrade, remove the existing installation via Programs and Features.", + ) + + wix_build_dir_xml(product_el, data) + component_ids = wix_build_components_xml(product_el, data) + + feature_el = ET.SubElement(product_el, "Feature", Id="DefaultFeature", Level="1") + for component_id in component_ids: + ET.SubElement(feature_el, "ComponentRef", Id=component_id) + ET.SubElement(feature_el, "ComponentRef", Id="ApplicationShortcuts") + + with open(os.path.join(root, "desktop", "build", "OnionShare.wxs"), "w") as f: + f.write('\n') + f.write(f'\n') + f.write( + '\n' + ) + + ET.indent(root_el) + f.write(ET.tostring(root_el).decode()) + + print(f"○ Build the MSI") + run( + [shutil.which("candle.exe"), "OnionShare.wxs"], + os.path.join(desktop_dir, "build"), + ) + run( + [shutil.which("light.exe"), "-ext", "WixUIExtension", "OnionShare.wixobj"], + os.path.join(desktop_dir, "build"), + ) + + print(f"○ Prepare OnionShare.msi for signing") + run( + [ + shutil.which("insignia.exe"), + "-im", + os.path.join(desktop_dir, "build", "OnionShare.msi"), + ], + error_ok=True, + ) + sign(os.path.join(desktop_dir, "build", "OnionShare.msi")) + + final_msi_filename = os.path.join(desktop_dir, "dist", f"OnionShare-{version}.msi") + print(f"○ Final MSI: {final_msi_filename}") + os.makedirs(os.path.join(desktop_dir, "dist"), exist_ok=True) + os.rename( + os.path.join(desktop_dir, "build", "OnionShare.msi"), + final_msi_filename, + ) + + +if __name__ == "__main__": + main() diff --git a/desktop/package/dialog.bmp b/desktop/package/dialog.bmp new file mode 100644 index 00000000..02576827 Binary files /dev/null and b/desktop/package/dialog.bmp differ diff --git a/desktop/package/license.rtf b/desktop/package/license.rtf new file mode 100644 index 00000000..d9385a66 --- /dev/null +++ b/desktop/package/license.rtf @@ -0,0 +1,136 @@ +{\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\fswiss\fcharset0 Helvetica;}{\f1\fswiss Helvetica;}{\f2\fnil Courier;}} +{\colortbl ;\red0\green0\blue255;} +{\*\generator Riched20 10.0.19041}\viewkind4\uc1 +\pard\sa180\b\f0\fs24\lang1033 OnionShare is free and open source software and is developed by Micah Lee, et al.\f1\lang9\par +\fs28 GNU GENERAL PUBLIC LICENSE\par +\b0\fs24 Version 3, 29 June 2007\par +Copyright \f0\'a9 2007 Free Software Foundation, Inc. <{{\field{\*\fldinst{HYPERLINK "https://fsf.org/"}}{\fldrslt{https://fsf.org/\ul0\cf0}}}}\f0\fs24 >\par +\f1 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.\par +\b\fs28 Preamble\par +\b0\fs24 The GNU General Public License is a free, copyleft license for software and other kinds of works.\par +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.\par +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.\par +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.\par +For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.\par +Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.\par +For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.\par +Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.\par +Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.\par +The precise terms and conditions for copying, distribution and modification follow.\par +\b\fs28 TERMS AND CONDITIONS\par +\fs24 0. Definitions.\par +\b0\ldblquote This License\rdblquote refers to version 3 of the GNU General Public License.\par +\ldblquote Copyright\rdblquote also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.\par +\ldblquote The Program\rdblquote refers to any copyrightable work licensed under this License. Each licensee is addressed as \ldblquote you\rdblquote . \ldblquote Licensees\rdblquote and \ldblquote recipients\rdblquote may be individuals or organizations.\par +To \ldblquote modify\rdblquote a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a \ldblquote modified version\rdblquote of the earlier work or a work \ldblquote based on\rdblquote the earlier work.\par +A \ldblquote covered work\rdblquote means either the unmodified Program or a work based on the Program.\par +To \ldblquote propagate\rdblquote a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.\par +To \ldblquote convey\rdblquote a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.\par +An interactive user interface displays \ldblquote Appropriate Legal Notices\rdblquote to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.\par +\b 1. Source Code.\par +\b0 The \ldblquote source code\rdblquote for a work means the preferred form of the work for making modifications to it. \ldblquote Object code\rdblquote means any non-source form of a work.\par +A \ldblquote Standard Interface\rdblquote means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.\par +The \ldblquote System Libraries\rdblquote of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A \ldblquote Major Component\rdblquote , in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.\par +The \ldblquote Corresponding Source\rdblquote for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.\par +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.\par +The Corresponding Source for a work in source code form is that same work.\par +\b 2. Basic Permissions.\par +\b0 All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.\par +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.\par +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.\par +\b 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\par +\b0 No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.\par +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.\par +\b 4. Conveying Verbatim Copies.\par +\b0 You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.\par +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.\par +\b 5. Conveying Modified Source Versions.\par +\b0 You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:\par + +\pard\fi-360\li360\tx360\bullet\tab a) The work must carry prominent notices stating that you modified it, and giving a relevant date.\par +\bullet\tab b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to \ldblquote keep intact all notices\rdblquote .\par +\bullet\tab c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.\par + +\pard\fi-360\li360\sa180\tx360\bullet\tab d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.\par + +\pard\sa180 A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an \ldblquote aggregate\rdblquote if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.\par +\b 6. Conveying Non-Source Forms.\par +\b0 You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:\par + +\pard\fi-360\li360\tx360\bullet\tab a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.\par +\bullet\tab b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.\par +\bullet\tab c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.\par +\bullet\tab d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.\par + +\pard\fi-360\li360\sa180\tx360\bullet\tab e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.\par + +\pard\sa180 A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.\par +A \ldblquote User Product\rdblquote is either (1) a \ldblquote consumer product\rdblquote , which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, \ldblquote normally used\rdblquote refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.\par +\ldblquote Installation Information\rdblquote for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.\par +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).\par +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.\par +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.\par +\b 7. Additional Terms.\par +\b0\ldblquote Additional permissions\rdblquote are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.\par +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.\par +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:\par + +\pard\fi-360\li360\tx360\bullet\tab a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or\par +\bullet\tab b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or\par +\bullet\tab c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or\par +\bullet\tab d) Limiting the use for publicity purposes of names of licensors or authors of the material; or\par +\bullet\tab e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or\par + +\pard\fi-360\li360\sa180\tx360\bullet\tab f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.\par + +\pard\sa180 All other non-permissive additional terms are considered \ldblquote further restrictions\rdblquote within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.\par +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.\par +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.\par +\b 8. Termination.\par +\b0 You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).\par +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.\par +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.\par +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.\par +\b 9. Acceptance Not Required for Having Copies.\par +\b0 You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.\par +\b 10. Automatic Licensing of Downstream Recipients.\par +\b0 Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.\par +An \ldblquote entity transaction\rdblquote is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.\par +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.\par +\b 11. Patents.\par +\b0 A \ldblquote contributor\rdblquote is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's \ldblquote contributor version\rdblquote .\par +A contributor's \ldblquote essential patent claims\rdblquote are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, \ldblquote control\rdblquote includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.\par +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.\par +In the following three paragraphs, a \ldblquote patent license\rdblquote is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To \ldblquote grant\rdblquote such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.\par +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. \ldblquote Knowingly relying\rdblquote means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.\par +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.\par +A patent license is \ldblquote discriminatory\rdblquote if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.\par +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.\par +\b 12. No Surrender of Others' Freedom.\par +\b0 If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.\par +\b 13. Use with the GNU Affero General Public License.\par +\b0 Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.\par +\b 14. Revised Versions of this License.\par +\b0 The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\par +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License \ldblquote or any later version\rdblquote applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.\par +If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.\par +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.\par +\b 15. Disclaimer of Warranty.\par +\b0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \ldblquote AS IS\rdblquote WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par +\b 16. Limitation of Liability.\par +\b0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par +\b 17. Interpretation of Sections 15 and 16.\par +\b0 If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.\par +END OF TERMS AND CONDITIONS\par +\b\fs28 How to Apply These Terms to Your New Programs\par +\b0\fs24 If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.\par +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the \ldblquote copyright\rdblquote line and a pointer to where the full notice is found.\par +\f2 \line Copyright (C) \line\line This program is free software: you can redistribute it and/or modify\line it under the terms of the GNU General Public License as published by\line the Free Software Foundation, either version 3 of the License, or\line (at your option) any later version.\line\line This program is distributed in the hope that it will be useful,\line but WITHOUT ANY WARRANTY; without even the implied warranty of\line MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\line GNU General Public License for more details.\line\line You should have received a copy of the GNU General Public License\line along with this program. If not, see <{{\field{\*\fldinst{HYPERLINK "https://www.gnu.org/licenses/"}}{\fldrslt{https://www.gnu.org/licenses/\ul0\cf0}}}}\f2\fs24 >.\par +\f1 Also add information on how to contact you by electronic and paper mail.\par +If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:\par +\f2 Copyright (C) \line This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\line This is free software, and you are welcome to redistribute it\line under certain conditions; type `show c' for details.\par +\f1 The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an \ldblquote about box\rdblquote .\par +You should also get your employer (if you work as a programmer) or school, if any, to sign a \ldblquote copyright disclaimer\rdblquote for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <{{\field{\*\fldinst{HYPERLINK "https://www.gnu.org/licenses/"}}{\fldrslt{https://www.gnu.org/licenses/\ul0\cf0}}}}\f1\fs24 >.\par +The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <{{\field{\*\fldinst{HYPERLINK "https://www.gnu.org/licenses/why-not-lgpl.html"}}{\fldrslt{https://www.gnu.org/licenses/why-not-lgpl.html\ul0\cf0}}}}\f1\fs24 >.\par +} + \ No newline at end of file diff --git a/desktop/package/linux/build-appimage.py b/desktop/package/linux/build-appimage.py deleted file mode 100755 index dfaba1b4..00000000 --- a/desktop/package/linux/build-appimage.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python3 -import os -import inspect -import subprocess -import shutil -import glob - -root = os.path.dirname( - os.path.dirname( - os.path.dirname( - os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) - ) - ) -) - - -def run(cmd, cwd=None): - subprocess.run(cmd, cwd=cwd, check=True) - - -def main(): - cli_dir = os.path.join(root, "cli") - desktop_dir = os.path.join(root, "desktop") - - print("○ Clean up from last build") - if os.path.exists(os.path.join(cli_dir, "dist")): - shutil.rmtree(os.path.join(cli_dir, "dist")) - if os.path.exists(os.path.join(desktop_dir, "linux")): - shutil.rmtree(os.path.join(desktop_dir, "linux")) - - print("○ Building onionshare-cli") - run(["poetry", "install"], cli_dir) - run(["poetry", "build"], cli_dir) - whl_filename = glob.glob(os.path.join(cli_dir, "dist", "*.whl"))[0] - whl_basename = os.path.basename(whl_filename) - shutil.copyfile(whl_filename, os.path.join(desktop_dir, whl_basename)) - - print("○ Create the binary") - run(["briefcase", "create"], desktop_dir) - - print("○ Create the AppImage") - run(["briefcase", "build"], desktop_dir) - - -if __name__ == "__main__": - main() diff --git a/desktop/package/macos/build.py b/desktop/package/macos/build.py deleted file mode 100755 index 2bfea3ad..00000000 --- a/desktop/package/macos/build.py +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/env python3 -import os -import inspect -import subprocess -import argparse -import shutil -import glob -import itertools - -root = os.path.dirname( - os.path.dirname( - os.path.dirname( - os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) - ) - ) -) - - -def codesign(path, entitlements, identity): - run( - [ - "codesign", - "--sign", - identity, - "--entitlements", - str(entitlements), - "--timestamp", - "--deep", - str(path), - "--force", - "--options", - "runtime", - ] - ) - - -def run(cmd, cwd=None): - subprocess.run(cmd, cwd=cwd, check=True) - - -def main(): - # Parse arguments - parser = argparse.ArgumentParser() - parser.add_argument( - "--with-codesign", - action="store_true", - dest="with_codesign", - help="Codesign the app bundle", - ) - args = parser.parse_args() - - cli_dir = os.path.join(root, "cli") - desktop_dir = os.path.join(root, "desktop") - - print("○ Clean up from last build") - if os.path.exists(os.path.join(cli_dir, "dist")): - shutil.rmtree(os.path.join(cli_dir, "dist")) - if os.path.exists(os.path.join(desktop_dir, "macOS")): - shutil.rmtree(os.path.join(desktop_dir, "macOS")) - - print("○ Build onionshare-cli") - run(["poetry", "install"], cli_dir) - run(["poetry", "build"], cli_dir) - whl_filename = glob.glob(os.path.join(cli_dir, "dist", "*.whl"))[0] - whl_basename = os.path.basename(whl_filename) - shutil.copyfile(whl_filename, os.path.join(desktop_dir, whl_basename)) - - print("○ Create app bundle") - run(["briefcase", "create"], desktop_dir) - app_path = os.path.join(desktop_dir, "macOS", "app", "OnionShare", "OnionShare.app") - - print("○ Delete unused Qt5 frameworks from app bundle") - for framework in [ - "Qt3DAnimation", - "Qt3DCore", - "Qt3DExtras", - "Qt3DInput", - "Qt3DLogic", - "Qt3DQuick", - "Qt3DQuickAnimation", - "Qt3DQuickExtras", - "Qt3DQuickInput", - "Qt3DQuickRender", - "Qt3DQuickScene2D", - "Qt3DRender", - "QtBluetooth", - "QtBodymovin", - "QtCharts", - "QtConcurrent", - "QtDataVisualization", - "QtDesigner", - "QtDesignerComponents", - "QtGamepad", - "QtHelp", - "QtLocation", - "QtMultimedia", - "QtMultimediaQuick", - "QtMultimediaWidgets", - "QtNfc", - "QtOpenGL", - "QtPdf", - "QtPdfWidgets", - "QtPositioning", - "QtPositioningQuick", - "QtPurchasing", - "QtQuick", - "QtQuick3D", - "QtQuick3DAssetImport", - "QtQuick3DRender", - "QtQuick3DRuntimeRender", - "QtQuick3DUtils", - "QtQuickControls2", - "QtQuickParticles", - "QtQuickShapes", - "QtQuickTemplates2", - "QtQuickTest", - "QtQuickWidgets", - "QtRemoteObjects", - "QtRepParser", - "QtScript", - "QtScriptTools", - "QtScxml", - "QtSensors", - "QtSerialBus", - "QtSerialPort", - "QtSql", - "QtSvg", - "QtTest", - "QtTextToSpeech", - "QtUiPlugin", - "QtVirtualKeyboard", - "QtWebChannel", - "QtWebEngine", - "QtWebEngineCore", - "QtWebEngineWidgets", - "QtWebSockets", - "QtWebView", - "QtXml", - "QtXmlPatterns", - ]: - shutil.rmtree( - os.path.join( - app_path, - "Contents", - "Resources", - "app_packages", - "PySide2", - "Qt", - "lib", - f"{framework}.framework", - ) - ) - try: - os.remove( - os.path.join( - app_path, - "Contents", - "Resources", - "app_packages", - "PySide2", - f"{framework}.abi3.so", - ) - ) - os.remove( - os.path.join( - app_path, - "Contents", - "Resources", - "app_packages", - "PySide2", - f"{framework}.pyi", - ) - ) - except FileNotFoundError: - pass - shutil.rmtree( - os.path.join( - app_path, - "Contents", - "Resources", - "app_packages", - "PySide2", - "Designer.app", - ) - ) - - print(f"○ Unsigned app bundle: {app_path}") - - if args.with_codesign: - identity_name_application = "Developer ID Application: Micah Lee (N9B95FDWH4)" - entitlements_plist_path = os.path.join( - desktop_dir, "package", "macos", "Entitlements.plist" - ) - - print("○ Code sign app bundle") - for path in itertools.chain( - glob.glob( - f"{app_path}/Contents/Resources/app_packages/**/*.dylib", recursive=True - ), - glob.glob( - f"{app_path}/Contents/Resources/app_packages/**/*.so", recursive=True - ), - glob.glob( - f"{app_path}/Contents/Resources/Support/**/*.dylib", recursive=True - ), - glob.glob(f"{app_path}/Contents/Resources/Support/**/*.so", recursive=True), - glob.glob( - f"{app_path}/Contents/Resources/app_packages/PySide2/Qt/lib/**/Versions/5/*", - recursive=True, - ), - [ - f"{app_path}/Contents/Resources/app_packages/PySide2/pyside2-lupdate", - f"{app_path}/Contents/Resources/app_packages/PySide2/rcc", - f"{app_path}/Contents/Resources/app_packages/PySide2/uic", - app_path, - ], - ): - codesign(path, entitlements_plist_path, identity_name_application) - codesign(app_path, entitlements_plist_path, identity_name_application) - print(f"○ Signed app bundle: {app_path}") - - if not os.path.exists("/usr/local/bin/create-dmg"): - print("○ Error: create-dmg is not installed") - return - - print("○ Create DMG") - dmg_path = os.path.join(desktop_dir, "macOS", "OnionShare.dmg") - run( - [ - "create-dmg", - "--volname", - "OnionShare", - "--volicon", - os.path.join( - desktop_dir, "src", "onionshare", "resources", "onionshare.icns" - ), - "--window-size", - "400", - "200", - "--icon-size", - "100", - "--icon", - "OnionShare.app", - "100", - "70", - "--hide-extension", - "OnionShare.app", - "--app-drop-link", - "300", - "70", - dmg_path, - app_path, - "--identity", - identity_name_application, - ] - ) - - print(f"○ Finished building DMG: {dmg_path}") - - -if __name__ == "__main__": - main() diff --git a/desktop/package/onionshare-cli.py b/desktop/package/onionshare-cli.py new file mode 100644 index 00000000..3cb03d59 --- /dev/null +++ b/desktop/package/onionshare-cli.py @@ -0,0 +1,3 @@ +import onionshare_cli + +onionshare_cli.main() diff --git a/desktop/package/onionshare.py b/desktop/package/onionshare.py new file mode 100644 index 00000000..f9b7c4c8 --- /dev/null +++ b/desktop/package/onionshare.py @@ -0,0 +1,3 @@ +import onionshare + +onionshare.main() diff --git a/desktop/package/windows/build.py b/desktop/package/windows/build.py deleted file mode 100644 index bbccbe46..00000000 --- a/desktop/package/windows/build.py +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/env python3 -import os -import inspect -import subprocess -import shutil -import glob - -root = os.path.dirname( - os.path.dirname( - os.path.dirname( - os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) - ) - ) -) - - -def run(cmd, cwd=None): - subprocess.run(cmd, cwd=cwd, check=True) - - -def main(): - cli_dir = os.path.join(root, "cli") - desktop_dir = os.path.join(root, "desktop") - - print("○ Clean up from last build") - if os.path.exists(os.path.join(cli_dir, "dist")): - shutil.rmtree(os.path.join(cli_dir, "dist")) - if os.path.exists(os.path.join(desktop_dir, "windows")): - shutil.rmtree(os.path.join(desktop_dir, "windows")) - - print("○ Building onionshare-cli") - run(["poetry", "install"], cli_dir) - run(["poetry", "build"], cli_dir) - whl_filename = glob.glob(os.path.join(cli_dir, "dist", "*.whl"))[0] - whl_basename = os.path.basename(whl_filename) - shutil.copyfile(whl_filename, os.path.join(desktop_dir, whl_basename)) - - print("○ Create the binary") - run(["briefcase", "create"], desktop_dir) - - print("○ Delete unused Qt5 DLLs to save space") - for filename in [ - "plugins/assetimporters/assimp.dll", - "plugins/assetimporters/uip.dll", - "plugins/audio/qtaudio_wasapi.dll", - "plugins/audio/qtaudio_windows.dll", - "plugins/bearer/qgenericbearer.dll", - "plugins/canbus/qtpassthrucanbus.dll", - "plugins/canbus/qtpeakcanbus.dll", - "plugins/canbus/qtsysteccanbus.dll", - "plugins/canbus/qttinycanbus.dll", - "plugins/canbus/qtvectorcanbus.dll", - "plugins/canbus/qtvirtualcanbus.dll", - "plugins/gamepads/xinputgamepad.dll", - "plugins/generic/qtuiotouchplugin.dll", - "plugins/geometryloaders/defaultgeometryloader.dll", - "plugins/geometryloaders/gltfgeometryloader.dll", - "plugins/geoservices/qtgeoservices_esri.dll", - "plugins/geoservices/qtgeoservices_itemsoverlay.dll", - "plugins/geoservices/qtgeoservices_mapbox.dll", - "plugins/geoservices/qtgeoservices_nokia.dll", - "plugins/geoservices/qtgeoservices_osm.dll", - "plugins/mediaservice/dsengine.dll", - "plugins/mediaservice/qtmedia_audioengine.dll", - "plugins/mediaservice/wmfengine.dll", - "plugins/platforminputcontexts/qtvirtualkeyboardplugin.dll", - "plugins/platformthemes/qxdgdesktopportal.dll", - "plugins/playlistformats/qtmultimedia_m3u.dll", - "plugins/position/qtposition_positionpoll.dll", - "plugins/position/qtposition_serialnmea.dll", - "plugins/position/qtposition_winrt.dll", - "plugins/printsupport/windowsprintersupport.dll", - "plugins/qmltooling/qmldbg_debugger.dll", - "plugins/qmltooling/qmldbg_inspector.dll", - "plugins/qmltooling/qmldbg_local.dll", - "plugins/qmltooling/qmldbg_messages.dll", - "plugins/qmltooling/qmldbg_native.dll", - "plugins/qmltooling/qmldbg_nativedebugger.dll", - "plugins/qmltooling/qmldbg_preview.dll", - "plugins/qmltooling/qmldbg_profiler.dll", - "plugins/qmltooling/qmldbg_quickprofiler.dll", - "plugins/qmltooling/qmldbg_server.dll", - "plugins/qmltooling/qmldbg_tcp.dll", - "plugins/renderers/openglrenderer.dll", - "plugins/renderplugins/scene2d.dll", - "plugins/scenegraph/qsgd3d12backend.dll", - "plugins/sceneparsers/assimpsceneimport.dll", - "plugins/sceneparsers/gltfsceneexport.dll", - "plugins/sceneparsers/gltfsceneimport.dll", - "plugins/sensorgestures/qtsensorgestures_plugin.dll", - "plugins/sensorgestures/qtsensorgestures_shakeplugin.dll", - "plugins/sensors/qtsensors_generic.dll", - "plugins/sqldrivers/qsqlite.dll", - "plugins/sqldrivers/qsqlodbc.dll", - "plugins/sqldrivers/qsqlpsql.dll", - "plugins/texttospeech/qtexttospeech_sapi.dll", - "plugins/virtualkeyboard/qtvirtualkeyboard_hangul.dll", - "plugins/virtualkeyboard/qtvirtualkeyboard_openwnn.dll", - "plugins/virtualkeyboard/qtvirtualkeyboard_pinyin.dll", - "plugins/virtualkeyboard/qtvirtualkeyboard_tcime.dll", - "plugins/virtualkeyboard/qtvirtualkeyboard_thai.dll", - "plugins/webview/qtwebview_webengine.dll", - "qml/Qt/labs/animation/labsanimationplugin.dll", - "qml/Qt/labs/calendar/qtlabscalendarplugin.dll", - "qml/Qt/labs/folderlistmodel/qmlfolderlistmodelplugin.dll", - "qml/Qt/labs/location/locationlabsplugin.dll", - "qml/Qt/labs/lottieqt/lottieqtplugin.dll", - "qml/Qt/labs/platform/qtlabsplatformplugin.dll", - "qml/Qt/labs/qmlmodels/labsmodelsplugin.dll", - "qml/Qt/labs/settings/qmlsettingsplugin.dll", - "qml/Qt/labs/sharedimage/sharedimageplugin.dll", - "qml/Qt/labs/wavefrontmesh/qmlwavefrontmeshplugin.dll", - "qml/Qt3D/Animation/quick3danimationplugin.dll", - "qml/Qt3D/Core/quick3dcoreplugin.dll", - "qml/Qt3D/Extras/quick3dextrasplugin.dll", - "qml/Qt3D/Input/quick3dinputplugin.dll", - "qml/Qt3D/Logic/quick3dlogicplugin.dll", - "qml/Qt3D/Render/quick3drenderplugin.dll", - "qml/QtBluetooth/declarative_bluetooth.dll", - "qml/QtCharts/qtchartsqml2.dll", - "qml/QtDataVisualization/datavisualizationqml2.dll", - "qml/QtGamepad/declarative_gamepad.dll", - "qml/QtGraphicalEffects/private/qtgraphicaleffectsprivate.dll", - "qml/QtGraphicalEffects/qtgraphicaleffectsplugin.dll", - "qml/QtLocation/declarative_location.dll", - "qml/QtMultimedia/declarative_multimedia.dll", - "qml/QtNfc/declarative_nfc.dll", - "qml/QtPositioning/declarative_positioning.dll", - "qml/QtPurchasing/declarative_purchasing.dll", - "qml/QtQml/Models.2/modelsplugin.dll", - "qml/QtQml/qmlplugin.dll", - "qml/QtQml/RemoteObjects/qtqmlremoteobjects.dll", - "qml/QtQml/StateMachine/qtqmlstatemachine.dll", - "qml/QtQml/WorkerScript.2/workerscriptplugin.dll", - "qml/QtQuick/Controls/qtquickcontrolsplugin.dll", - "qml/QtQuick/Controls/Styles/Flat/qtquickextrasflatplugin.dll", - "qml/QtQuick/Controls.2/Fusion/qtquickcontrols2fusionstyleplugin.dll", - "qml/QtQuick/Controls.2/Imagine/qtquickcontrols2imaginestyleplugin.dll", - "qml/QtQuick/Controls.2/Material/qtquickcontrols2materialstyleplugin.dll", - "qml/QtQuick/Controls.2/qtquickcontrols2plugin.dll", - "qml/QtQuick/Controls.2/Universal/qtquickcontrols2universalstyleplugin.dll", - "qml/QtQuick/Dialogs/dialogplugin.dll", - "qml/QtQuick/Dialogs/Private/dialogsprivateplugin.dll", - "qml/QtQuick/Extras/qtquickextrasplugin.dll", - "qml/QtQuick/Layouts/qquicklayoutsplugin.dll", - "qml/QtQuick/LocalStorage/qmllocalstorageplugin.dll", - "qml/QtQuick/Particles.2/particlesplugin.dll", - "qml/QtQuick/Pdf/pdfplugin.dll", - "qml/QtQuick/PrivateWidgets/widgetsplugin.dll", - "qml/QtQuick/Scene2D/qtquickscene2dplugin.dll", - "qml/QtQuick/Scene3D/qtquickscene3dplugin.dll", - "qml/QtQuick/Shapes/qmlshapesplugin.dll", - "qml/QtQuick/Templates.2/qtquicktemplates2plugin.dll", - "qml/QtQuick/Timeline/qtquicktimelineplugin.dll", - "qml/QtQuick/VirtualKeyboard/qtquickvirtualkeyboardplugin.dll", - "qml/QtQuick/VirtualKeyboard/Settings/qtquickvirtualkeyboardsettingsplugin.dll", - "qml/QtQuick/VirtualKeyboard/Styles/qtquickvirtualkeyboardstylesplugin.dll", - "qml/QtQuick/Window.2/windowplugin.dll", - "qml/QtQuick/XmlListModel/qmlxmllistmodelplugin.dll", - "qml/QtQuick.2/qtquick2plugin.dll", - "qml/QtQuick3D/Effects/qtquick3deffectplugin.dll", - "qml/QtQuick3D/Helpers/qtquick3dhelpersplugin.dll", - "qml/QtQuick3D/Materials/qtquick3dmaterialplugin.dll", - "qml/QtQuick3D/qquick3dplugin.dll", - "qml/QtRemoteObjects/qtremoteobjects.dll", - "qml/QtScxml/declarative_scxml.dll", - "qml/QtSensors/declarative_sensors.dll", - "qml/QtTest/qmltestplugin.dll", - "qml/QtWebChannel/declarative_webchannel.dll", - "qml/QtWebEngine/qtwebengineplugin.dll", - "qml/QtWebSockets/declarative_qmlwebsockets.dll", - "qml/QtWebView/declarative_webview.dll", - "Qt5DBus.dll", - "Qt5PrintSupport.dll", - "Qt5Script.dll", - "Qt5ScriptTools.dll", - "Qt5Scxml.dll", - "Qt5Sensors.dll", - "Qt5SerialBus.dll", - "Qt5SerialPort.dll", - "Qt5Sql.dll", - "Qt5Svg.dll", - "Qt5Test.dll", - "Qt5TextToSpeech.dll", - "Qt5VirtualKeyboard.dll", - "Qt5WebChannel.dll", - "Qt5WebEngine.dll", - "Qt5WebEngineCore.dll", - "Qt5WebEngineWidgets.dll", - "Qt5WebSockets.dll", - "Qt5WebView.dll", - "Qt5Xml.dll", - "Qt5XmlPatterns.dll", - ]: - os.remove( - os.path.join( - desktop_dir, - "windows", - "msi", - "OnionShare", - "src", - "app_packages", - "PySide2", - filename.replace("/", "\\"), - ) - ) - - print("○ Create the installer") - run(["briefcase", "package"], desktop_dir) - msi_filename = glob.glob(os.path.join(desktop_dir, "windows", "OnionShare-*.msi"))[ - 0 - ] - print(f"○ Created unsigned installer: {msi_filename}") - - print("○ Signing installer") - run( - [ - "signtool.exe", - "sign", - "/v", - "/d", - "OnionShare", - "/a", - "/tr", - "http://time.certum.pl/", - msi_filename, - ], - desktop_dir, - ) - print(f"○ Signed installer: {msi_filename}") - - -if __name__ == "__main__": - main() diff --git a/desktop/poetry.lock b/desktop/poetry.lock new file mode 100644 index 00000000..149ceae4 --- /dev/null +++ b/desktop/poetry.lock @@ -0,0 +1,1317 @@ +[[package]] +name = "appdirs" +version = "1.4.4" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "atomicwrites" +version = "1.4.0" +description = "Atomic file writes." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "attrs" +version = "21.4.0" +description = "Classes Without Boilerplate" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] +docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] + +[[package]] +name = "bidict" +version = "0.21.4" +description = "The bidirectional mapping library for Python." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "black" +version = "20.8b1" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +appdirs = "*" +click = ">=7.1.2" +dataclasses = {version = ">=0.6", markers = "python_version < \"3.7\""} +mypy-extensions = ">=0.4.3" +pathspec = ">=0.6,<1" +regex = ">=2020.1.8" +toml = ">=0.10.1" +typed-ast = ">=1.4.0" +typing-extensions = ">=3.7.4" + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] + +[[package]] +name = "cepa" +version = "1.8.3" +description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "certifi" +version = "2021.10.8" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "cffi" +version = "1.15.0" +description = "Foreign Function Interface for Python calling C code." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "2.0.10" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" +optional = false +python-versions = ">=3.5.0" + +[package.extras] +unicode_backport = ["unicodedata2"] + +[[package]] +name = "click" +version = "7.1.2" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "colorama" +version = "0.4.4" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "cx-freeze" +version = "6.9" +description = "Create standalone executables from Python scripts" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cx-logging = {version = ">=3.0", markers = "sys_platform == \"win32\""} +importlib-metadata = ">=4.3.1" + +[[package]] +name = "cx-logging" +version = "3.0" +description = "Python and C interfaces for logging" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "dataclasses" +version = "0.8" +description = "A backport of the dataclasses module for Python 3.6" +category = "dev" +optional = false +python-versions = ">=3.6, <3.7" + +[[package]] +name = "dnspython" +version = "2.1.0" +description = "DNS toolkit" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +dnssec = ["cryptography (>=2.6)"] +doh = ["requests", "requests-toolbelt"] +idna = ["idna (>=2.1)"] +curio = ["curio (>=1.2)", "sniffio (>=1.1)"] +trio = ["trio (>=0.14.0)", "sniffio (>=1.1)"] + +[[package]] +name = "eventlet" +version = "0.33.0" +description = "Highly concurrent networking library" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +dnspython = ">=1.15.0" +greenlet = ">=0.3" +six = ">=1.10.0" + +[[package]] +name = "flask" +version = "1.1.4" +description = "A simple framework for building complex web applications." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +click = ">=5.1,<8.0" +itsdangerous = ">=0.24,<2.0" +Jinja2 = ">=2.10.1,<3.0" +Werkzeug = ">=0.15,<2.0" + +[package.extras] +dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] +docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] +dotenv = ["python-dotenv"] + +[[package]] +name = "flask-socketio" +version = "5.0.1" +description = "Socket.IO integration for Flask applications" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +Flask = ">=0.9" +python-socketio = ">=5.0.2" + +[[package]] +name = "gevent" +version = "21.12.0" +description = "Coroutine-based network library" +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5" + +[package.dependencies] +cffi = {version = ">=1.12.2", markers = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\""} +greenlet = {version = ">=1.1.0,<2.0", markers = "platform_python_implementation == \"CPython\""} +"zope.event" = "*" +"zope.interface" = "*" + +[package.extras] +dnspython = ["dnspython (>=1.16.0,<2.0)", "idna"] +docs = ["repoze.sphinx.autointerface", "sphinxcontrib-programoutput", "zope.schema"] +monitor = ["psutil (>=5.7.0)"] +recommended = ["cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "backports.socketpair", "psutil (>=5.7.0)"] +test = ["requests", "objgraph", "cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "futures", "mock", "backports.socketpair", "contextvars (==2.4)", "coverage (>=5.0)", "coveralls (>=1.7.0)", "psutil (>=5.7.0)"] + +[[package]] +name = "gevent-websocket" +version = "0.10.1" +description = "Websocket handler for the gevent pywsgi server, a Python network library" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +gevent = "*" + +[[package]] +name = "greenlet" +version = "1.1.2" +description = "Lightweight in-process concurrent programming" +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" + +[package.extras] +docs = ["sphinx"] + +[[package]] +name = "idna" +version = "3.3" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "importlib-metadata" +version = "4.8.3" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +perf = ["ipython"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] + +[[package]] +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "itsdangerous" +version = "1.1.0" +description = "Various helpers to pass data to untrusted environments and back." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "jinja2" +version = "2.11.3" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +MarkupSafe = ">=0.23" + +[package.extras] +i18n = ["Babel (>=0.8)"] + +[[package]] +name = "markupsafe" +version = "2.0.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "onionshare-cli" +version = "2.5" +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." +category = "main" +optional = false +python-versions = "^3.6" +develop = true + +[package.dependencies] +cepa = "1.8.3" +click = "*" +colorama = "*" +eventlet = "*" +flask = "1.1.4" +flask-socketio = "5.0.1" +gevent-websocket = "*" +psutil = "*" +pynacl = "*" +pysocks = "*" +requests = {version = "*", extras = ["socks"]} +unidecode = "*" +urllib3 = "*" + +[package.source] +type = "directory" +url = "../cli" + +[[package]] +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" + +[[package]] +name = "pathspec" +version = "0.9.0" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "psutil" +version = "5.9.0" +description = "Cross-platform lib for process and system monitoring in Python." +category = "main" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pynacl" +version = "1.5.0" +description = "Python binding to the Networking and Cryptography (NaCl) library" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = ">=1.4.1" + +[package.extras] +docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"] +tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"] + +[[package]] +name = "pyparsing" +version = "3.0.6" +description = "Python parsing module" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pyside2" +version = "5.15.2" +description = "Python bindings for the Qt cross-platform application and UI framework" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.10" + +[package.dependencies] +shiboken2 = "5.15.2" + +[[package]] +name = "pysocks" +version = "1.7.1" +description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pytest" +version = "6.2.5" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +name = "pytest-faulthandler" +version = "2.0.1" +description = "py.test plugin that activates the fault handler module for tests (dummy package)" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +pytest = ">=5.0" + +[[package]] +name = "pytest-qt" +version = "4.0.2" +description = "pytest support for PyQt and PySide applications" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pytest = ">=3.0.0" + +[package.extras] +dev = ["pre-commit", "tox"] +doc = ["sphinx", "sphinx-rtd-theme"] + +[[package]] +name = "python-engineio" +version = "4.3.1" +description = "Engine.IO server and client for Python" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +asyncio_client = ["aiohttp (>=3.4)"] +client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] + +[[package]] +name = "python-socketio" +version = "5.5.1" +description = "Socket.IO server and client for Python" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +bidict = ">=0.21.0" +python-engineio = ">=4.3.0" + +[package.extras] +asyncio_client = ["aiohttp (>=3.4)"] +client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] + +[[package]] +name = "qrcode" +version = "7.3.1" +description = "QR Code image generator" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +all = ["zest.releaser", "tox", "pytest", "pytest", "pytest-cov", "pillow"] +dev = ["tox", "pytest"] +maintainer = ["zest.releaser"] +pil = ["pillow"] +test = ["pytest", "pytest-cov"] + +[[package]] +name = "regex" +version = "2021.11.10" +description = "Alternative regular expression module, to replace re." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "requests" +version = "2.27.1" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} +idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} +PySocks = {version = ">=1.5.6,<1.5.7 || >1.5.7", optional = true, markers = "extra == \"socks\""} +urllib3 = ">=1.21.1,<1.27" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] + +[[package]] +name = "shiboken2" +version = "5.15.2" +description = "Python / C++ bindings helper module" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.10" + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "typed-ast" +version = "1.5.1" +description = "a fork of Python 2 and 3 ast modules with type comment support" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "typing-extensions" +version = "4.0.1" +description = "Backported and Experimental Type Hints for Python 3.6+" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "unidecode" +version = "1.3.2" +description = "ASCII transliterations of Unicode text" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "urllib3" +version = "1.26.8" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" + +[package.extras] +brotli = ["brotlipy (>=0.6.0)"] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "werkzeug" +version = "1.0.1" +description = "The comprehensive WSGI web application library." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"] +watchdog = ["watchdog"] + +[[package]] +name = "zipp" +version = "3.6.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] + +[[package]] +name = "zope.event" +version = "4.5.0" +description = "Very basic event publishing system" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +docs = ["sphinx"] +test = ["zope.testrunner"] + +[[package]] +name = "zope.interface" +version = "5.4.0" +description = "Interfaces for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +docs = ["sphinx", "repoze.sphinx.autointerface"] +test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] +testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] + +[metadata] +lock-version = "1.1" +python-versions = ">=3.6,<3.10" +content-hash = "58bc422b26a9918e9bb78933ddc05a6fabb3cf9294ccc7a064ad9fc93ae28835" + +[metadata.files] +appdirs = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] +atomicwrites = [ + {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, + {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, +] +attrs = [ + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, +] +bidict = [ + {file = "bidict-0.21.4-py3-none-any.whl", hash = "sha256:3ac67daa353ecf853a1df9d3e924f005e729227a60a8dbada31a4c31aba7f654"}, + {file = "bidict-0.21.4.tar.gz", hash = "sha256:42c84ffbe6f8de898af6073b4be9ea7ccedcd78d3474aa844c54e49d5a079f6f"}, +] +black = [ + {file = "black-20.8b1.tar.gz", hash = "sha256:1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea"}, +] +cepa = [ + {file = "cepa-1.8.3.tar.gz", hash = "sha256:1dc6f0b324d37a2ed2ca274648ece8fd2c96a1d2f440f58c0ca17afd4b5ede7a"}, +] +certifi = [ + {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, + {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, +] +cffi = [ + {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"}, + {file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"}, + {file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"}, + {file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"}, + {file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"}, + {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"}, + {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"}, + {file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"}, + {file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"}, + {file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"}, + {file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"}, + {file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"}, + {file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"}, + {file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"}, + {file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"}, + {file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"}, + {file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"}, + {file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"}, + {file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"}, + {file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"}, + {file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"}, + {file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"}, + {file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"}, + {file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"}, + {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"}, +] +charset-normalizer = [ + {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"}, + {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"}, +] +click = [ + {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, + {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, +] +colorama = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] +cx-freeze = [ + {file = "cx_Freeze-6.9-cp310-cp310-win32.whl", hash = "sha256:776d4fb68a4831691acbd3c374362b9b48ce2e568514a73c3d4cb14d5dcf1470"}, + {file = "cx_Freeze-6.9-cp310-cp310-win_amd64.whl", hash = "sha256:243f36d35a034a409cd6247d8cb5d1fbfd7374e3e668e813d0811f64d6bd5ed3"}, + {file = "cx_Freeze-6.9-cp36-cp36m-win32.whl", hash = "sha256:ffc855eabc735b693e2d604d71dce6d52d78a6ba1070c55d51e786dd68ed232c"}, + {file = "cx_Freeze-6.9-cp36-cp36m-win_amd64.whl", hash = "sha256:fe4e32a0c75b2b54491882926bf3ba12f8a3d589822a68a8be7c09f1dcca5546"}, + {file = "cx_Freeze-6.9-cp37-cp37m-win32.whl", hash = "sha256:99c292e7a31cb343efc0cf47f82220a44a4a3b8776651624cd8ee03c23104940"}, + {file = "cx_Freeze-6.9-cp37-cp37m-win_amd64.whl", hash = "sha256:738ab22f3a3f6bc220b16dccf2aa0603c3cd271b2a7a9d9480dab82311308b23"}, + {file = "cx_Freeze-6.9-cp38-cp38-win32.whl", hash = "sha256:c1c75df572858e623d0aa39771cd984c0abd8aacb43b2aca2d12d0bc95f25566"}, + {file = "cx_Freeze-6.9-cp38-cp38-win_amd64.whl", hash = "sha256:0788c895c47fdcf375151ce78ff42336c01aca7bc43daecb8f8f8356cdc42b43"}, + {file = "cx_Freeze-6.9-cp39-cp39-win32.whl", hash = "sha256:a31f5ddbc80b29e297370d868791470b0e3e9062db45038c23293a76ed039018"}, + {file = "cx_Freeze-6.9-cp39-cp39-win_amd64.whl", hash = "sha256:30708f603076713c0a839cdfb34f4126d68e9d61afb3d9a59daa9cf252033872"}, + {file = "cx_Freeze-6.9.tar.gz", hash = "sha256:673aa3199af2ef87fc03a43a30e5d78b27ced2cedde925da89c55b5657da267b"}, +] +cx-logging = [ + {file = "cx_Logging-3.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:9fcd297e5c51470521c47eff0f86ba844aeca6be97e13c3e2114ebdf03fa3c96"}, + {file = "cx_Logging-3.0-cp36-cp36m-win32.whl", hash = "sha256:0df4be47c5022cc54316949e283403214568ef599817ced0c0972183d6d4fabb"}, + {file = "cx_Logging-3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:203ca92ee7c15d5dfe1fcdfcef7b39d0123eba5c6d8c2388b6e7db6b961a5362"}, + {file = "cx_Logging-3.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:20daa71b2a30f61d09bcf55dbda002c10f0c7c691f53cb393fc6485410fa2484"}, + {file = "cx_Logging-3.0-cp37-cp37m-win32.whl", hash = "sha256:5be5f905e8d34a3326e28d428674cdc2d57912fdf6e25b8676d63f76294eb4e0"}, + {file = "cx_Logging-3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:04e4b61e2636dc8ae135937655af6626362aefc7f6175e86888a244b61001823"}, + {file = "cx_Logging-3.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:1bf0ebc79a7baa331c7deaf57088c234b82710286dfad453ff0c55eee0122b72"}, + {file = "cx_Logging-3.0-cp38-cp38-win32.whl", hash = "sha256:d98a59a47e99fa430b3f6d2a979e27509852d2c43e204f43bd0168e7ec97f469"}, + {file = "cx_Logging-3.0-cp38-cp38-win_amd64.whl", hash = "sha256:bb2e91019e5905415f795eef994de60ace5ae186fc4fe3d358e2d8feebb24992"}, + {file = "cx_Logging-3.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:b6f4a9b750e02a180517f779d174a1c7db651981cd37e5623235b87da9774dfd"}, + {file = "cx_Logging-3.0-cp39-cp39-win32.whl", hash = "sha256:e7cca28e8ee4082654b6062cc4d06f83d48f1a7e2d152bab020c9e3e373afb90"}, + {file = "cx_Logging-3.0-cp39-cp39-win_amd64.whl", hash = "sha256:302e9c4f65a936c288a4fa59a90e7e142d9ef994aa29676731acafdcccdbb3f5"}, + {file = "cx_Logging-3.0.tar.gz", hash = "sha256:ba8a7465facf7b98d8f494030fb481a2e8aeee29dc191e10383bb54ed42bdb34"}, +] +dataclasses = [ + {file = "dataclasses-0.8-py3-none-any.whl", hash = "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf"}, + {file = "dataclasses-0.8.tar.gz", hash = "sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97"}, +] +dnspython = [ + {file = "dnspython-2.1.0-py3-none-any.whl", hash = "sha256:95d12f6ef0317118d2a1a6fc49aac65ffec7eb8087474158f42f26a639135216"}, + {file = "dnspython-2.1.0.zip", hash = "sha256:e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4"}, +] +eventlet = [ + {file = "eventlet-0.33.0-py2.py3-none-any.whl", hash = "sha256:d10a8fcc9e33381905d9873303fde96ebe3541c03fb795055d2c7347dce0639c"}, + {file = "eventlet-0.33.0.tar.gz", hash = "sha256:80144f489c1bb273a51b6f96ff9785a382d2866b9bab1f5bd748385019f4141f"}, +] +flask = [ + {file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"}, + {file = "Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196"}, +] +flask-socketio = [ + {file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"}, + {file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"}, +] +gevent = [ + {file = "gevent-21.12.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:2afa3f3ad528155433f6ac8bd64fa5cc303855b97004416ec719a6b1ca179481"}, + {file = "gevent-21.12.0-cp27-cp27m-win32.whl", hash = "sha256:177f93a3a90f46a5009e0841fef561601e5c637ba4332ab8572edd96af650101"}, + {file = "gevent-21.12.0-cp27-cp27m-win_amd64.whl", hash = "sha256:a5ad4ed8afa0a71e1927623589f06a9b5e8b5e77810be3125cb4d93050d3fd1f"}, + {file = "gevent-21.12.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:eae3c46f9484eaacd67ffcdf4eaf6ca830f587edd543613b0f5c4eb3c11d052d"}, + {file = "gevent-21.12.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e1899b921219fc8959ff9afb94dae36be82e0769ed13d330a393594d478a0b3a"}, + {file = "gevent-21.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c21cb5c9f4e14d75b3fe0b143ec875d7dbd1495fad6d49704b00e57e781ee0f"}, + {file = "gevent-21.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:542ae891e2aa217d2cf6d8446538fcd2f3263a40eec123b970b899bac391c47a"}, + {file = "gevent-21.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:0082d8a5d23c35812ce0e716a91ede597f6dd2c5ff508a02a998f73598c59397"}, + {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:da8d2d51a49b2a5beb02ad619ca9ddbef806ef4870ba04e5ac7b8b41a5b61db3"}, + {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cfff82f05f14b7f5d9ed53ccb7a609ae8604df522bb05c971bca78ec9d8b2b9"}, + {file = "gevent-21.12.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:7909780f0cf18a1fc32aafd8c8e130cdd93c6e285b11263f7f2d1a0f3678bc50"}, + {file = "gevent-21.12.0-cp36-cp36m-win32.whl", hash = "sha256:bb5cb8db753469c7a9a0b8a972d2660fe851aa06eee699a1ca42988afb0aaa02"}, + {file = "gevent-21.12.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c43f081cbca41d27fd8fef9c6a32cf83cb979345b20abc07bf68df165cdadb24"}, + {file = "gevent-21.12.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:74fc1ef16b86616cfddcc74f7292642b0f72dde4dd95aebf4c45bb236744be54"}, + {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc2fef0f98ee180704cf95ec84f2bc2d86c6c3711bb6b6740d74e0afe708b62c"}, + {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08b4c17064e28f4eb85604486abc89f442c7407d2aed249cf54544ce5c9baee6"}, + {file = "gevent-21.12.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:973749bacb7bc4f4181a8fb2a7e0e2ff44038de56d08e856dd54a5ac1d7331b4"}, + {file = "gevent-21.12.0-cp37-cp37m-win32.whl", hash = "sha256:6a02a88723ed3f0fd92cbf1df3c4cd2fbd87d82b0a4bac3e36a8875923115214"}, + {file = "gevent-21.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f289fae643a3f1c3b909d6b033e6921b05234a4907e9c9c8c3f1fe403e6ac452"}, + {file = "gevent-21.12.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:3baeeccc4791ba3f8db27179dff11855a8f9210ddd754f6c9b48e0d2561c2aea"}, + {file = "gevent-21.12.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05c5e8a50cd6868dd36536c92fb4468d18090e801bd63611593c0717bab63692"}, + {file = "gevent-21.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d86438ede1cbe0fde6ef4cc3f72bf2f1ecc9630d8b633ff344a3aeeca272cdd"}, + {file = "gevent-21.12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:01928770972181ad8866ee37ea3504f1824587b188fcab782ef1619ce7538766"}, + {file = "gevent-21.12.0-cp38-cp38-win32.whl", hash = "sha256:3c012c73e6c61f13c75e3a4869dbe6a2ffa025f103421a6de9c85e627e7477b1"}, + {file = "gevent-21.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:b7709c64afa8bb3000c28bb91ec42c79594a7cb0f322e20427d57f9762366a5b"}, + {file = "gevent-21.12.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ec21f9eaaa6a7b1e62da786132d6788675b314f25f98d9541f1bf00584ed4749"}, + {file = "gevent-21.12.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22ce1f38fdfe2149ffe8ec2131ca45281791c1e464db34b3b4321ae9d8d2efbb"}, + {file = "gevent-21.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ccffcf708094564e442ac6fde46f0ae9e40015cb69d995f4b39cc29a7643881"}, + {file = "gevent-21.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24d3550fbaeef5fddd794819c2853bca45a86c3d64a056a2c268d981518220d1"}, + {file = "gevent-21.12.0-cp39-cp39-win32.whl", hash = "sha256:2bcec9f80196c751fdcf389ca9f7141e7b0db960d8465ed79be5e685bfcad682"}, + {file = "gevent-21.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:3dad62f55fad839d498c801e139481348991cee6e1c7706041b5fe096cb6a279"}, + {file = "gevent-21.12.0-pp27-pypy_73-win_amd64.whl", hash = "sha256:9f9652d1e4062d4b5b5a0a49ff679fa890430b5f76969d35dccb2df114c55e0f"}, + {file = "gevent-21.12.0.tar.gz", hash = "sha256:f48b64578c367b91fa793bf8eaaaf4995cb93c8bc45860e473bf868070ad094e"}, +] +gevent-websocket = [ + {file = "gevent-websocket-0.10.1.tar.gz", hash = "sha256:7eaef32968290c9121f7c35b973e2cc302ffb076d018c9068d2f5ca8b2d85fb0"}, + {file = "gevent_websocket-0.10.1-py3-none-any.whl", hash = "sha256:17b67d91282f8f4c973eba0551183fc84f56f1c90c8f6b6b30256f31f66f5242"}, +] +greenlet = [ + {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"}, + {file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"}, + {file = "greenlet-1.1.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d"}, + {file = "greenlet-1.1.2-cp27-cp27m-win32.whl", hash = "sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713"}, + {file = "greenlet-1.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40"}, + {file = "greenlet-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d"}, + {file = "greenlet-1.1.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8"}, + {file = "greenlet-1.1.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d"}, + {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497"}, + {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1"}, + {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58"}, + {file = "greenlet-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965"}, + {file = "greenlet-1.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708"}, + {file = "greenlet-1.1.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23"}, + {file = "greenlet-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee"}, + {file = "greenlet-1.1.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c"}, + {file = "greenlet-1.1.2-cp35-cp35m-win32.whl", hash = "sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963"}, + {file = "greenlet-1.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e"}, + {file = "greenlet-1.1.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168"}, + {file = "greenlet-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f"}, + {file = "greenlet-1.1.2-cp36-cp36m-win32.whl", hash = "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa"}, + {file = "greenlet-1.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d"}, + {file = "greenlet-1.1.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5"}, + {file = "greenlet-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe"}, + {file = "greenlet-1.1.2-cp37-cp37m-win32.whl", hash = "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc"}, + {file = "greenlet-1.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06"}, + {file = "greenlet-1.1.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b"}, + {file = "greenlet-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2"}, + {file = "greenlet-1.1.2-cp38-cp38-win32.whl", hash = "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd"}, + {file = "greenlet-1.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3"}, + {file = "greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3"}, + {file = "greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3"}, + {file = "greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf"}, + {file = "greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd"}, + {file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"}, +] +idna = [ + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, +] +importlib-metadata = [ + {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"}, + {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +itsdangerous = [ + {file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash = "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"}, + {file = "itsdangerous-1.1.0.tar.gz", hash = "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"}, +] +jinja2 = [ + {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, + {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, +] +markupsafe = [ + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, + {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +onionshare-cli = [] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +pathspec = [ + {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, + {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +psutil = [ + {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"}, + {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"}, + {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:cb8d10461c1ceee0c25a64f2dd54872b70b89c26419e147a05a10b753ad36ec2"}, + {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:7641300de73e4909e5d148e90cc3142fb890079e1525a840cf0dfd39195239fd"}, + {file = "psutil-5.9.0-cp27-none-win32.whl", hash = "sha256:ea42d747c5f71b5ccaa6897b216a7dadb9f52c72a0fe2b872ef7d3e1eacf3ba3"}, + {file = "psutil-5.9.0-cp27-none-win_amd64.whl", hash = "sha256:ef216cc9feb60634bda2f341a9559ac594e2eeaadd0ba187a4c2eb5b5d40b91c"}, + {file = "psutil-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90a58b9fcae2dbfe4ba852b57bd4a1dded6b990a33d6428c7614b7d48eccb492"}, + {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d41f8b3e9ebb6b6110057e40019a432e96aae2008951121ba4e56040b84f3"}, + {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:742c34fff804f34f62659279ed5c5b723bb0195e9d7bd9907591de9f8f6558e2"}, + {file = "psutil-5.9.0-cp310-cp310-win32.whl", hash = "sha256:8293942e4ce0c5689821f65ce6522ce4786d02af57f13c0195b40e1edb1db61d"}, + {file = "psutil-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:9b51917c1af3fa35a3f2dabd7ba96a2a4f19df3dec911da73875e1edaf22a40b"}, + {file = "psutil-5.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e9805fed4f2a81de98ae5fe38b75a74c6e6ad2df8a5c479594c7629a1fe35f56"}, + {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c51f1af02334e4b516ec221ee26b8fdf105032418ca5a5ab9737e8c87dafe203"}, + {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32acf55cb9a8cbfb29167cd005951df81b567099295291bcfd1027365b36591d"}, + {file = "psutil-5.9.0-cp36-cp36m-win32.whl", hash = "sha256:e5c783d0b1ad6ca8a5d3e7b680468c9c926b804be83a3a8e95141b05c39c9f64"}, + {file = "psutil-5.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d62a2796e08dd024b8179bd441cb714e0f81226c352c802fca0fd3f89eeacd94"}, + {file = "psutil-5.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d00a664e31921009a84367266b35ba0aac04a2a6cad09c550a89041034d19a0"}, + {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7779be4025c540d1d65a2de3f30caeacc49ae7a2152108adeaf42c7534a115ce"}, + {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5"}, + {file = "psutil-5.9.0-cp37-cp37m-win32.whl", hash = "sha256:df2c8bd48fb83a8408c8390b143c6a6fa10cb1a674ca664954de193fdcab36a9"}, + {file = "psutil-5.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d7b433519b9a38192dfda962dd8f44446668c009833e1429a52424624f408b4"}, + {file = "psutil-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3400cae15bdb449d518545cbd5b649117de54e3596ded84aacabfbb3297ead2"}, + {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2237f35c4bbae932ee98902a08050a27821f8f6dfa880a47195e5993af4702d"}, + {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a"}, + {file = "psutil-5.9.0-cp38-cp38-win32.whl", hash = "sha256:76cebf84aac1d6da5b63df11fe0d377b46b7b500d892284068bacccf12f20666"}, + {file = "psutil-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:3151a58f0fbd8942ba94f7c31c7e6b310d2989f4da74fcbf28b934374e9bf841"}, + {file = "psutil-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:539e429da49c5d27d5a58e3563886057f8fc3868a5547b4f1876d9c0f007bccf"}, + {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58c7d923dc209225600aec73aa2c4ae8ea33b1ab31bc11ef8a5933b027476f07"}, + {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3611e87eea393f779a35b192b46a164b1d01167c9d323dda9b1e527ea69d697d"}, + {file = "psutil-5.9.0-cp39-cp39-win32.whl", hash = "sha256:4e2fb92e3aeae3ec3b7b66c528981fd327fb93fd906a77215200404444ec1845"}, + {file = "psutil-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d190ee2eaef7831163f254dc58f6d2e2a22e27382b936aab51c835fc080c3d3"}, + {file = "psutil-5.9.0.tar.gz", hash = "sha256:869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pycparser = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] +pynacl = [ + {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d"}, + {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858"}, + {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b"}, + {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff"}, + {file = "PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543"}, + {file = "PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93"}, + {file = "PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"}, +] +pyparsing = [ + {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"}, + {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"}, +] +pyside2 = [ + {file = "PySide2-5.15.2-5.15.2-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:4f17a0161995678110447711d685fcd7b15b762810e8f00f6dc239bffb70a32e"}, + {file = "PySide2-5.15.2-5.15.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0558ced3bcd7f9da638fa8b7709dba5dae82a38728e481aac8b9058ea22fcdd9"}, + {file = "PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-macosx_10_13_intel.whl", hash = "sha256:976cacf01ef3b397a680f9228af7d3d6273b9254457ad4204731507c1f9e6c3c"}, + {file = "PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-manylinux1_x86_64.whl", hash = "sha256:081d8c8a6c65fb1392856a547814c0c014e25ac04b38b987d9a3483e879e9634"}, + {file = "PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win32.whl", hash = "sha256:087a0b719bb967405ea85fd202757c761f1fc73d0e2397bc3a6a15376782ee75"}, + {file = "PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl", hash = "sha256:1316aa22dd330df096daf7b0defe9c00297a66e0b4907f057aaa3e88c53d1aff"}, +] +pysocks = [ + {file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"}, + {file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"}, + {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, +] +pytest = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] +pytest-faulthandler = [ + {file = "pytest-faulthandler-2.0.1.tar.gz", hash = "sha256:ed72bbce87ac344da81eb7d882196a457d4a1026a3da4a57154dacd85cd71ae5"}, + {file = "pytest_faulthandler-2.0.1-py2.py3-none-any.whl", hash = "sha256:236430ba962fd1c910d670922be55fe5b25ea9bc3fc6561a0cafbb8759e7504d"}, +] +pytest-qt = [ + {file = "pytest-qt-4.0.2.tar.gz", hash = "sha256:dfc5240dec7eb43b76bcb5f9a87eecae6ef83592af49f3af5f1d5d093acaa93e"}, + {file = "pytest_qt-4.0.2-py2.py3-none-any.whl", hash = "sha256:e03847ac02a890ccaac0fde1748855b9dce425aceba62005c6cfced6cf7d5456"}, +] +python-engineio = [ + {file = "python-engineio-4.3.1.tar.gz", hash = "sha256:6e1d26977ffefe3b7da1b5df7a8750aedc7686da8201cd90daf36693db122489"}, + {file = "python_engineio-4.3.1-py3-none-any.whl", hash = "sha256:85986067cb9f7695347954d4e03491f7d45152c5428c07109a9707e04e8942cb"}, +] +python-socketio = [ + {file = "python-socketio-5.5.1.tar.gz", hash = "sha256:ac8e64d59a15d1c31a4fe8434f4ff16d0f640c824ba517dce7ca99e95f0cd36a"}, + {file = "python_socketio-5.5.1-py3-none-any.whl", hash = "sha256:d0b98474064ac239a618649ca67f5288827705d36bd5f7615a473b37965baf61"}, +] +qrcode = [ + {file = "qrcode-7.3.1.tar.gz", hash = "sha256:375a6ff240ca9bd41adc070428b5dfc1dcfbb0f2507f1ac848f6cded38956578"}, +] +regex = [ + {file = "regex-2021.11.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9345b6f7ee578bad8e475129ed40123d265464c4cfead6c261fd60fc9de00bcf"}, + {file = "regex-2021.11.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:416c5f1a188c91e3eb41e9c8787288e707f7d2ebe66e0a6563af280d9b68478f"}, + {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0538c43565ee6e703d3a7c3bdfe4037a5209250e8502c98f20fea6f5fdf2965"}, + {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ee1227cf08b6716c85504aebc49ac827eb88fcc6e51564f010f11a406c0a667"}, + {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6650f16365f1924d6014d2ea770bde8555b4a39dc9576abb95e3cd1ff0263b36"}, + {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30ab804ea73972049b7a2a5c62d97687d69b5a60a67adca07eb73a0ddbc9e29f"}, + {file = "regex-2021.11.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68a067c11463de2a37157930d8b153005085e42bcb7ad9ca562d77ba7d1404e0"}, + {file = "regex-2021.11.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:162abfd74e88001d20cb73ceaffbfe601469923e875caf9118333b1a4aaafdc4"}, + {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9ed0b1e5e0759d6b7f8e2f143894b2a7f3edd313f38cf44e1e15d360e11749b"}, + {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:473e67837f786404570eae33c3b64a4b9635ae9f00145250851a1292f484c063"}, + {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2fee3ed82a011184807d2127f1733b4f6b2ff6ec7151d83ef3477f3b96a13d03"}, + {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:d5fd67df77bab0d3f4ea1d7afca9ef15c2ee35dfb348c7b57ffb9782a6e4db6e"}, + {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5d408a642a5484b9b4d11dea15a489ea0928c7e410c7525cd892f4d04f2f617b"}, + {file = "regex-2021.11.10-cp310-cp310-win32.whl", hash = "sha256:98ba568e8ae26beb726aeea2273053c717641933836568c2a0278a84987b2a1a"}, + {file = "regex-2021.11.10-cp310-cp310-win_amd64.whl", hash = "sha256:780b48456a0f0ba4d390e8b5f7c661fdd218934388cde1a974010a965e200e12"}, + {file = "regex-2021.11.10-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:dba70f30fd81f8ce6d32ddeef37d91c8948e5d5a4c63242d16a2b2df8143aafc"}, + {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1f54b9b4b6c53369f40028d2dd07a8c374583417ee6ec0ea304e710a20f80a0"}, + {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fbb9dc00e39f3e6c0ef48edee202f9520dafb233e8b51b06b8428cfcb92abd30"}, + {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666abff54e474d28ff42756d94544cdfd42e2ee97065857413b72e8a2d6a6345"}, + {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5537f71b6d646f7f5f340562ec4c77b6e1c915f8baae822ea0b7e46c1f09b733"}, + {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2e07c6a26ed4bea91b897ee2b0835c21716d9a469a96c3e878dc5f8c55bb23"}, + {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ca5f18a75e1256ce07494e245cdb146f5a9267d3c702ebf9b65c7f8bd843431e"}, + {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:74cbeac0451f27d4f50e6e8a8f3a52ca074b5e2da9f7b505c4201a57a8ed6286"}, + {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:3598893bde43091ee5ca0a6ad20f08a0435e93a69255eeb5f81b85e81e329264"}, + {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:50a7ddf3d131dc5633dccdb51417e2d1910d25cbcf842115a3a5893509140a3a"}, + {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:61600a7ca4bcf78a96a68a27c2ae9389763b5b94b63943d5158f2a377e09d29a"}, + {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:563d5f9354e15e048465061509403f68424fef37d5add3064038c2511c8f5e00"}, + {file = "regex-2021.11.10-cp36-cp36m-win32.whl", hash = "sha256:93a5051fcf5fad72de73b96f07d30bc29665697fb8ecdfbc474f3452c78adcf4"}, + {file = "regex-2021.11.10-cp36-cp36m-win_amd64.whl", hash = "sha256:b483c9d00a565633c87abd0aaf27eb5016de23fed952e054ecc19ce32f6a9e7e"}, + {file = "regex-2021.11.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fff55f3ce50a3ff63ec8e2a8d3dd924f1941b250b0aac3d3d42b687eeff07a8e"}, + {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32d2a2b02ccbef10145df9135751abea1f9f076e67a4e261b05f24b94219e36"}, + {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53db2c6be8a2710b359bfd3d3aa17ba38f8aa72a82309a12ae99d3c0c3dcd74d"}, + {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2207ae4f64ad3af399e2d30dde66f0b36ae5c3129b52885f1bffc2f05ec505c8"}, + {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5ca078bb666c4a9d1287a379fe617a6dccd18c3e8a7e6c7e1eb8974330c626a"}, + {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd33eb9bdcfbabab3459c9ee651d94c842bc8a05fabc95edf4ee0c15a072495e"}, + {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05b7d6d7e64efe309972adab77fc2af8907bb93217ec60aa9fe12a0dad35874f"}, + {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:42b50fa6666b0d50c30a990527127334d6b96dd969011e843e726a64011485da"}, + {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6e1d2cc79e8dae442b3fa4a26c5794428b98f81389af90623ffcc650ce9f6732"}, + {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:0416f7399e918c4b0e074a0f66e5191077ee2ca32a0f99d4c187a62beb47aa05"}, + {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:ce298e3d0c65bd03fa65ffcc6db0e2b578e8f626d468db64fdf8457731052942"}, + {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dc07f021ee80510f3cd3af2cad5b6a3b3a10b057521d9e6aaeb621730d320c5a"}, + {file = "regex-2021.11.10-cp37-cp37m-win32.whl", hash = "sha256:e71255ba42567d34a13c03968736c5d39bb4a97ce98188fafb27ce981115beec"}, + {file = "regex-2021.11.10-cp37-cp37m-win_amd64.whl", hash = "sha256:07856afef5ffcc052e7eccf3213317fbb94e4a5cd8177a2caa69c980657b3cb4"}, + {file = "regex-2021.11.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba05430e819e58544e840a68b03b28b6d328aff2e41579037e8bab7653b37d83"}, + {file = "regex-2021.11.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7f301b11b9d214f83ddaf689181051e7f48905568b0c7017c04c06dfd065e244"}, + {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aaa4e0705ef2b73dd8e36eeb4c868f80f8393f5f4d855e94025ce7ad8525f50"}, + {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:788aef3549f1924d5c38263104dae7395bf020a42776d5ec5ea2b0d3d85d6646"}, + {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f8af619e3be812a2059b212064ea7a640aff0568d972cd1b9e920837469eb3cb"}, + {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85bfa6a5413be0ee6c5c4a663668a2cad2cbecdee367630d097d7823041bdeec"}, + {file = "regex-2021.11.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f23222527b307970e383433daec128d769ff778d9b29343fb3496472dc20dabe"}, + {file = "regex-2021.11.10-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:da1a90c1ddb7531b1d5ff1e171b4ee61f6345119be7351104b67ff413843fe94"}, + {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f5be7805e53dafe94d295399cfbe5227f39995a997f4fd8539bf3cbdc8f47ca8"}, + {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a955b747d620a50408b7fdf948e04359d6e762ff8a85f5775d907ceced715129"}, + {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:139a23d1f5d30db2cc6c7fd9c6d6497872a672db22c4ae1910be22d4f4b2068a"}, + {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ca49e1ab99593438b204e00f3970e7a5f70d045267051dfa6b5f4304fcfa1dbf"}, + {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:96fc32c16ea6d60d3ca7f63397bff5c75c5a562f7db6dec7d412f7c4d2e78ec0"}, + {file = "regex-2021.11.10-cp38-cp38-win32.whl", hash = "sha256:0617383e2fe465732af4509e61648b77cbe3aee68b6ac8c0b6fe934db90be5cc"}, + {file = "regex-2021.11.10-cp38-cp38-win_amd64.whl", hash = "sha256:a3feefd5e95871872673b08636f96b61ebef62971eab044f5124fb4dea39919d"}, + {file = "regex-2021.11.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f7f325be2804246a75a4f45c72d4ce80d2443ab815063cdf70ee8fb2ca59ee1b"}, + {file = "regex-2021.11.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:537ca6a3586931b16a85ac38c08cc48f10fc870a5b25e51794c74df843e9966d"}, + {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef2afb0fd1747f33f1ee3e209bce1ed582d1896b240ccc5e2697e3275f037c7"}, + {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:432bd15d40ed835a51617521d60d0125867f7b88acf653e4ed994a1f8e4995dc"}, + {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b43c2b8a330a490daaef5a47ab114935002b13b3f9dc5da56d5322ff218eeadb"}, + {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:962b9a917dd7ceacbe5cd424556914cb0d636001e393b43dc886ba31d2a1e449"}, + {file = "regex-2021.11.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa8c626d6441e2d04b6ee703ef2d1e17608ad44c7cb75258c09dd42bacdfc64b"}, + {file = "regex-2021.11.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3c5fb32cc6077abad3bbf0323067636d93307c9fa93e072771cf9a64d1c0f3ef"}, + {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:cd410a1cbb2d297c67d8521759ab2ee3f1d66206d2e4328502a487589a2cb21b"}, + {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e6096b0688e6e14af6a1b10eaad86b4ff17935c49aa774eac7c95a57a4e8c296"}, + {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:529801a0d58809b60b3531ee804d3e3be4b412c94b5d267daa3de7fadef00f49"}, + {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0f594b96fe2e0821d026365f72ac7b4f0b487487fb3d4aaf10dd9d97d88a9737"}, + {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2409b5c9cef7054dde93a9803156b411b677affc84fca69e908b1cb2c540025d"}, + {file = "regex-2021.11.10-cp39-cp39-win32.whl", hash = "sha256:3b5df18db1fccd66de15aa59c41e4f853b5df7550723d26aa6cb7f40e5d9da5a"}, + {file = "regex-2021.11.10-cp39-cp39-win_amd64.whl", hash = "sha256:83ee89483672b11f8952b158640d0c0ff02dc43d9cb1b70c1564b49abe92ce29"}, + {file = "regex-2021.11.10.tar.gz", hash = "sha256:f341ee2df0999bfdf7a95e448075effe0db212a59387de1a70690e4acb03d4c6"}, +] +requests = [ + {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, + {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, +] +shiboken2 = [ + {file = "shiboken2-5.15.2-5.15.2-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:03f41b0693b91c7f89627f1085a4ecbe8591c03f904118a034854d935e0e766c"}, + {file = "shiboken2-5.15.2-5.15.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ae8ca41274cfa057106268b6249674ca669c5b21009ec49b16d77665ab9619ed"}, + {file = "shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-macosx_10_13_intel.whl", hash = "sha256:edc12a4df2b5be7ca1e762ab94e331ba9e2fbfe3932c20378d8aa3f73f90e0af"}, + {file = "shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-manylinux1_x86_64.whl", hash = "sha256:4aee1b91e339578f9831e824ce2a1ec3ba3a463f41fda8946b4547c7eb3cba86"}, + {file = "shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win32.whl", hash = "sha256:89c157a0e2271909330e1655892e7039249f7b79a64a443d52c512337065cde0"}, + {file = "shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl", hash = "sha256:14a33169cf1bd919e4c4c4408fffbcd424c919a3f702df412b8d72b694e4c1d5"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +typed-ast = [ + {file = "typed_ast-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d8314c92414ce7481eee7ad42b353943679cf6f30237b5ecbf7d835519e1212"}, + {file = "typed_ast-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b53ae5de5500529c76225d18eeb060efbcec90ad5e030713fe8dab0fb4531631"}, + {file = "typed_ast-1.5.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:24058827d8f5d633f97223f5148a7d22628099a3d2efe06654ce872f46f07cdb"}, + {file = "typed_ast-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a6d495c1ef572519a7bac9534dbf6d94c40e5b6a608ef41136133377bba4aa08"}, + {file = "typed_ast-1.5.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:de4ecae89c7d8b56169473e08f6bfd2df7f95015591f43126e4ea7865928677e"}, + {file = "typed_ast-1.5.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:256115a5bc7ea9e665c6314ed6671ee2c08ca380f9d5f130bd4d2c1f5848d695"}, + {file = "typed_ast-1.5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:7c42707ab981b6cf4b73490c16e9d17fcd5227039720ca14abe415d39a173a30"}, + {file = "typed_ast-1.5.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:71dcda943a471d826ea930dd449ac7e76db7be778fcd722deb63642bab32ea3f"}, + {file = "typed_ast-1.5.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4f30a2bcd8e68adbb791ce1567fdb897357506f7ea6716f6bbdd3053ac4d9471"}, + {file = "typed_ast-1.5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ca9e8300d8ba0b66d140820cf463438c8e7b4cdc6fd710c059bfcfb1531d03fb"}, + {file = "typed_ast-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9caaf2b440efb39ecbc45e2fabde809cbe56272719131a6318fd9bf08b58e2cb"}, + {file = "typed_ast-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9bcad65d66d594bffab8575f39420fe0ee96f66e23c4d927ebb4e24354ec1af"}, + {file = "typed_ast-1.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:591bc04e507595887160ed7aa8d6785867fb86c5793911be79ccede61ae96f4d"}, + {file = "typed_ast-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:a80d84f535642420dd17e16ae25bb46c7f4c16ee231105e7f3eb43976a89670a"}, + {file = "typed_ast-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:38cf5c642fa808300bae1281460d4f9b7617cf864d4e383054a5ef336e344d32"}, + {file = "typed_ast-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5b6ab14c56bc9c7e3c30228a0a0b54b915b1579613f6e463ba6f4eb1382e7fd4"}, + {file = "typed_ast-1.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2b8d7007f6280e36fa42652df47087ac7b0a7d7f09f9468f07792ba646aac2d"}, + {file = "typed_ast-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:b6d17f37f6edd879141e64a5db17b67488cfeffeedad8c5cec0392305e9bc775"}, + {file = "typed_ast-1.5.1.tar.gz", hash = "sha256:484137cab8ecf47e137260daa20bafbba5f4e3ec7fda1c1e69ab299b75fa81c5"}, +] +typing-extensions = [ + {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"}, + {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"}, +] +unidecode = [ + {file = "Unidecode-1.3.2-py3-none-any.whl", hash = "sha256:215fe33c9d1c889fa823ccb66df91b02524eb8cc8c9c80f9c5b8129754d27829"}, + {file = "Unidecode-1.3.2.tar.gz", hash = "sha256:669898c1528912bcf07f9819dc60df18d057f7528271e31f8ec28cc88ef27504"}, +] +urllib3 = [ + {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, + {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"}, +] +werkzeug = [ + {file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"}, + {file = "Werkzeug-1.0.1.tar.gz", hash = "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"}, +] +zipp = [ + {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"}, + {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"}, +] +"zope.event" = [ + {file = "zope.event-4.5.0-py2.py3-none-any.whl", hash = "sha256:2666401939cdaa5f4e0c08cf7f20c9b21423b95e88f4675b1443973bdb080c42"}, + {file = "zope.event-4.5.0.tar.gz", hash = "sha256:5e76517f5b9b119acf37ca8819781db6c16ea433f7e2062c4afc2b6fbedb1330"}, +] +"zope.interface" = [ + {file = "zope.interface-5.4.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:7df1e1c05304f26faa49fa752a8c690126cf98b40b91d54e6e9cc3b7d6ffe8b7"}, + {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2c98384b254b37ce50eddd55db8d381a5c53b4c10ee66e1e7fe749824f894021"}, + {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:08f9636e99a9d5410181ba0729e0408d3d8748026ea938f3b970a0249daa8192"}, + {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ea1d73b7c9dcbc5080bb8aaffb776f1c68e807767069b9ccdd06f27a161914a"}, + {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:273f158fabc5ea33cbc936da0ab3d4ba80ede5351babc4f577d768e057651531"}, + {file = "zope.interface-5.4.0-cp27-cp27m-win32.whl", hash = "sha256:a1e6e96217a0f72e2b8629e271e1b280c6fa3fe6e59fa8f6701bec14e3354325"}, + {file = "zope.interface-5.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:877473e675fdcc113c138813a5dd440da0769a2d81f4d86614e5d62b69497155"}, + {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f7ee479e96f7ee350db1cf24afa5685a5899e2b34992fb99e1f7c1b0b758d263"}, + {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:b0297b1e05fd128d26cc2460c810d42e205d16d76799526dfa8c8ccd50e74959"}, + {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:af310ec8335016b5e52cae60cda4a4f2a60a788cbb949a4fbea13d441aa5a09e"}, + {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:9a9845c4c6bb56e508651f005c4aeb0404e518c6f000d5a1123ab077ab769f5c"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0b465ae0962d49c68aa9733ba92a001b2a0933c317780435f00be7ecb959c702"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:5dd9ca406499444f4c8299f803d4a14edf7890ecc595c8b1c7115c2342cadc5f"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:469e2407e0fe9880ac690a3666f03eb4c3c444411a5a5fddfdabc5d184a79f05"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:52de7fc6c21b419078008f697fd4103dbc763288b1406b4562554bd47514c004"}, + {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:3dd4952748521205697bc2802e4afac5ed4b02909bb799ba1fe239f77fd4e117"}, + {file = "zope.interface-5.4.0-cp35-cp35m-win32.whl", hash = "sha256:dd93ea5c0c7f3e25335ab7d22a507b1dc43976e1345508f845efc573d3d779d8"}, + {file = "zope.interface-5.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:3748fac0d0f6a304e674955ab1365d515993b3a0a865e16a11ec9d86fb307f63"}, + {file = "zope.interface-5.4.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:66c0061c91b3b9cf542131148ef7ecbecb2690d48d1612ec386de9d36766058f"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:d0c1bc2fa9a7285719e5678584f6b92572a5b639d0e471bb8d4b650a1a910920"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2876246527c91e101184f63ccd1d716ec9c46519cc5f3d5375a3351c46467c46"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:334701327f37c47fa628fc8b8d28c7d7730ce7daaf4bda1efb741679c2b087fc"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:71aace0c42d53abe6fc7f726c5d3b60d90f3c5c055a447950ad6ea9cec2e37d9"}, + {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5bb3489b4558e49ad2c5118137cfeaf59434f9737fa9c5deefc72d22c23822e2"}, + {file = "zope.interface-5.4.0-cp36-cp36m-win32.whl", hash = "sha256:1c0e316c9add0db48a5b703833881351444398b04111188069a26a61cfb4df78"}, + {file = "zope.interface-5.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f0c02cbb9691b7c91d5009108f975f8ffeab5dff8f26d62e21c493060eff2a1"}, + {file = "zope.interface-5.4.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:7d97a4306898b05404a0dcdc32d9709b7d8832c0c542b861d9a826301719794e"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:867a5ad16892bf20e6c4ea2aab1971f45645ff3102ad29bd84c86027fa99997b"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5f931a1c21dfa7a9c573ec1f50a31135ccce84e32507c54e1ea404894c5eb96f"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:194d0bcb1374ac3e1e023961610dc8f2c78a0f5f634d0c737691e215569e640d"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:8270252effc60b9642b423189a2fe90eb6b59e87cbee54549db3f5562ff8d1b8"}, + {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:15e7d1f7a6ee16572e21e3576d2012b2778cbacf75eb4b7400be37455f5ca8bf"}, + {file = "zope.interface-5.4.0-cp37-cp37m-win32.whl", hash = "sha256:8892f89999ffd992208754851e5a052f6b5db70a1e3f7d54b17c5211e37a98c7"}, + {file = "zope.interface-5.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2e5a26f16503be6c826abca904e45f1a44ff275fdb7e9d1b75c10671c26f8b94"}, + {file = "zope.interface-5.4.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:0f91b5b948686659a8e28b728ff5e74b1be6bf40cb04704453617e5f1e945ef3"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:4de4bc9b6d35c5af65b454d3e9bc98c50eb3960d5a3762c9438df57427134b8e"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf68f4b2b6683e52bec69273562df15af352e5ed25d1b6641e7efddc5951d1a7"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:63b82bb63de7c821428d513607e84c6d97d58afd1fe2eb645030bdc185440120"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:db1fa631737dab9fa0b37f3979d8d2631e348c3b4e8325d6873c2541d0ae5a48"}, + {file = "zope.interface-5.4.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f44e517131a98f7a76696a7b21b164bcb85291cee106a23beccce454e1f433a4"}, + {file = "zope.interface-5.4.0-cp38-cp38-win32.whl", hash = "sha256:a9506a7e80bcf6eacfff7f804c0ad5350c8c95b9010e4356a4b36f5322f09abb"}, + {file = "zope.interface-5.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:3c02411a3b62668200910090a0dff17c0b25aaa36145082a5a6adf08fa281e54"}, + {file = "zope.interface-5.4.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:0cee5187b60ed26d56eb2960136288ce91bcf61e2a9405660d271d1f122a69a4"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:a8156e6a7f5e2a0ff0c5b21d6bcb45145efece1909efcbbbf48c56f8da68221d"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:205e40ccde0f37496904572035deea747390a8b7dc65146d30b96e2dd1359a83"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:3f24df7124c323fceb53ff6168da70dbfbae1442b4f3da439cd441681f54fe25"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:5208ebd5152e040640518a77827bdfcc73773a15a33d6644015b763b9c9febc1"}, + {file = "zope.interface-5.4.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:17776ecd3a1fdd2b2cd5373e5ef8b307162f581c693575ec62e7c5399d80794c"}, + {file = "zope.interface-5.4.0-cp39-cp39-win32.whl", hash = "sha256:d4d9d6c1a455d4babd320203b918ccc7fcbefe308615c521062bc2ba1aa4d26e"}, + {file = "zope.interface-5.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:0cba8477e300d64a11a9789ed40ee8932b59f9ee05f85276dbb4b59acee5dd09"}, + {file = "zope.interface-5.4.0.tar.gz", hash = "sha256:5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e"}, +] diff --git a/desktop/pyproject.toml b/desktop/pyproject.toml index 79056ada..4c87cca8 100644 --- a/desktop/pyproject.toml +++ b/desktop/pyproject.toml @@ -1,41 +1,27 @@ -[tool.briefcase] -project_name = "OnionShare" -bundle = "org.onionshare" -version = "2.4" -url = "https://onionshare.org" -license = "GPLv3" -author = 'Micah Lee' -author_email = "micah@micahflee.com" +[tool.poetry] +name = "onionshare" +version = "2.5" +description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service." +authors = ["Micah Lee "] +license = "GPLv3+" -[tool.briefcase.app.onionshare] -formal_name = "OnionShare" -description = "Securely and anonymously share files, host websites, and chat with friends using the Tor network" -icon = "src/onionshare/resources/onionshare" -sources = ['src/onionshare'] -requires = [ - "./onionshare_cli-2.4-py3-none-any.whl", - "pyside2==5.15.1", - "qrcode" -] +[tool.poetry.dependencies] +python = ">=3.6,<3.10" +onionshare_cli = {path = "../cli", develop = true} +PySide2 = "5.15.2" +qrcode = "*" +cx_freeze = "*" -[tool.briefcase.app.onionshare.macOS] -requires = [] +[tool.poetry.dev-dependencies] +black = "*" +pytest = "*" +pytest-faulthandler = "*" +pytest-qt = "*" -[tool.briefcase.app.onionshare.linux] -requires = [] -system_requires = [ - "tor", - "obfs4proxy", - "gcc", - "python3-dev", -] +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" -[tool.briefcase.app.onionshare.windows] -requires = ["pywin32"] - -# Mobile deployments -[tool.briefcase.app.onionshare.iOS] -requires = [] - -[tool.briefcase.app.onionshare.android] -requires = [] +[tool.poetry.scripts] +onionshare = 'onionshare:main' +onionshare-cli = 'onionshare_cli:main' diff --git a/desktop/scripts/bridges/__init__.py b/desktop/scripts/bridges/__init__.py new file mode 100644 index 00000000..e2495e38 --- /dev/null +++ b/desktop/scripts/bridges/__init__.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +OnionShare | https://onionshare.org/ + +Copyright (C) 2014-2022 Micah Lee, et al. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +import os +import requests + + +class UpdateTorBridges: + """ + Update the built-in Tor Bridges in OnionShare's torrc templates. + """ + + def __init__(self, root_path): + self.root_path = root_path + torrc_template_dir = os.path.join( + self.root_path, os.pardir, "cli/onionshare_cli/resources" + ) + endpoint = "https://bridges.torproject.org/moat/circumvention/builtin" + r = requests.post( + endpoint, + headers={"Content-Type": "application/vnd.api+json"}, + ) + if r.status_code != 200: + print( + f"There was a problem fetching the latest built-in bridges: status_code={r.status_code}" + ) + return False + + result = r.json() + + if "errors" in result: + print( + f"There was a problem fetching the latest built-in bridges: errors={result['errors']}" + ) + return False + + for bridge_type in ["meek", "obfs4", "snowflake"]: + if result[bridge_type]: + if bridge_type == "meek": + torrc_template_extension = "meek_lite_azure" + else: + torrc_template_extension = bridge_type + torrc_template = os.path.join( + self.root_path, + torrc_template_dir, + f"torrc_template-{torrc_template_extension}", + ) + + with open(torrc_template, "w") as f: + f.write(f"# Enable built-in {bridge_type} bridge\n") + bridges = result[bridge_type] + # Sorts the bridges numerically by IP, since they come back in + # random order from the API each time, and create noisy git diff. + bridges.sort(key=lambda s: s.split()[1]) + for item in bridges: + if bridge_type == "meek": + # obfs4proxy expects the bridge type to be meek_lite, and the url/front params + # are missing in the Tor API response, so we have to add them in ourselves. + bridge = item.replace("meek", "meek_lite") + f.write( + f"Bridge {bridge} url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com\n" + ) + else: + f.write(f"Bridge {item}\n") diff --git a/desktop/scripts/build-meek-client.py b/desktop/scripts/build-meek-client.py index af58173a..3d81d62f 100755 --- a/desktop/scripts/build-meek-client.py +++ b/desktop/scripts/build-meek-client.py @@ -3,7 +3,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -48,10 +48,10 @@ def main(): os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) ) if platform.system() == "Windows": - dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor", "Tor") + dist_path = os.path.join(root_path, "onionshare", "resources", "tor", "Tor") bin_filename = "meek-client.exe" else: - dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor") + dist_path = os.path.join(root_path, "onionshare", "resources", "tor") bin_filename = "meek-client" bin_path = os.path.join(os.path.expanduser("~"), "go", "bin", bin_filename) diff --git a/desktop/scripts/check_lacked_trans.py b/desktop/scripts/check_lacked_trans.py deleted file mode 100755 index 2456c995..00000000 --- a/desktop/scripts/check_lacked_trans.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -""" -Check translation lacked or disused. - -Example: -in OnionShare directory -$ check_lacked_trans.py -de disused choose_file -de disused gui_starting_server -de lacked gui_canceled -de lacked gui_starting_server1 -de lacked gui_starting_server2 -de lacked gui_starting_server3 -en disused choose_file -es disused choose_file -es disused gui_starting_server -... - - -1. search `{{strings.translation_key}}` and `strings._('translation_key')` - from .py or .html files. -2. load translation key from locale/*.json. -3. compare these. - -""" - - -import argparse -import re -import os -import codecs -import json -import sys - - -def arg_parser(): - desc = __doc__.strip().splitlines()[0] - p = argparse.ArgumentParser(description=desc) - p.add_argument( - "-d", - default=".", - help="onionshare directory", - metavar="ONIONSHARE_DIR", - dest="onionshare_dir", - ) - p.add_argument( - "--show-all-keys", - action="store_true", - help="show translation key in source and exit", - ), - p.add_argument( - "-l", - default="all", - help="language code (default: all)", - metavar="LANG_CODE", - dest="lang_code", - ) - return p - - -def files_in(*dirs): - dir = os.path.join(*dirs) - files = os.listdir(dir) - return [os.path.join(dir, f) for f in files] - - -def main(): - parser = arg_parser() - args = parser.parse_args() - - dir = args.onionshare_dir - - src = ( - files_in(dir, "onionshare_gui") - + files_in(dir, "onionshare_gui/tab") - + files_in(dir, "onionshare_gui/tab/mode") - + files_in(dir, "onionshare_gui/tab/mode/chat_mode") - + files_in(dir, "onionshare_gui/tab/mode/receive_mode") - + files_in(dir, "onionshare_gui/tab/mode/share_mode") - + files_in(dir, "onionshare_gui/tab/mode/website_mode") - + files_in(dir, "install/scripts") - ) - filenames = [p for p in src if p.endswith(".py")] - - lang_code = args.lang_code - - translate_keys = set() - for filename in filenames: - # load translate key from python source - with open(filename) as f: - src = f.read() - - # find all the starting strings - start_substr = "strings._\(" - starting_indices = [m.start() for m in re.finditer(start_substr, src)] - - for starting_i in starting_indices: - # are we dealing with single quotes or double quotes? - quote = None - inc = 0 - while True: - quote_i = starting_i + len("strings._(") + inc - if src[quote_i] == '"': - quote = '"' - break - if src[quote_i] == "'": - quote = "'" - break - inc += 1 - - # find the starting quote - starting_i = src.find(quote, starting_i) - if starting_i: - starting_i += 1 - # find the ending quote - ending_i = src.find(quote, starting_i) - if ending_i: - key = src[starting_i:ending_i] - translate_keys.add(key) - - if args.show_all_keys: - for k in sorted(translate_keys): - print(k) - sys.exit() - - if lang_code == "all": - locale_files = [f for f in files_in(dir, "share/locale") if f.endswith(".json")] - else: - locale_files = [ - f - for f in files_in(dir, "share/locale") - if f.endswith("%s.json" % lang_code) - ] - for locale_file in locale_files: - with codecs.open(locale_file, "r", encoding="utf-8") as f: - trans = json.load(f) - # trans -> {"key1": "translate-text1", "key2": "translate-text2", ...} - locale_keys = set(trans.keys()) - - disused = locale_keys - translate_keys - lacked = translate_keys - locale_keys - - locale, ext = os.path.splitext(os.path.basename(locale_file)) - for k in sorted(disused): - print(locale, "disused", k) - - for k in sorted(lacked): - print(locale, "lacked", k) - - -if __name__ == "__main__": - main() diff --git a/desktop/scripts/dev.bat b/desktop/scripts/dev.bat deleted file mode 100644 index 9b537a90..00000000 --- a/desktop/scripts/dev.bat +++ /dev/null @@ -1,3 +0,0 @@ -cd src -python -c "import onionshare; onionshare.main()" %* -cd .. \ No newline at end of file diff --git a/desktop/scripts/dev.sh b/desktop/scripts/dev.sh deleted file mode 100755 index 18fade68..00000000 --- a/desktop/scripts/dev.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# Run OnionShare desktop, allowing you to use command-line arguments - -SCRIPTS_DIR=$( cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd ) -cd "$SCRIPTS_DIR" - -cd ../src -python -c "import onionshare; onionshare.main()" $@ diff --git a/desktop/scripts/get-tor-linux.py b/desktop/scripts/get-tor-linux.py index 51beb475..2882a591 100755 --- a/desktop/scripts/get-tor-linux.py +++ b/desktop/scripts/get-tor-linux.py @@ -3,7 +3,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -31,13 +31,14 @@ import hashlib import shutil import subprocess import requests +from bridges import UpdateTorBridges def main(): - tarball_url = "https://dist.torproject.org/torbrowser/11.0a10/tor-browser-linux64-11.0a10_en-US.tar.xz" - tarball_filename = "tor-browser-linux64-11.0a10_en-US.tar.xz" + tarball_url = "https://dist.torproject.org/torbrowser/11.0.4/tor-browser-linux64-11.0.4_en-US.tar.xz" + tarball_filename = "tor-browser-linux64-11.0.4_en-US.tar.xz" expected_tarball_sha256 = ( - "5d3e2ebc4fb6a10f44624359bc2a5a151a57e8402cbd8563d15f9b2524374f1f" + "05a5fd6d633ca84c33bbd3e2f8ffca2d2fa2105032a430b07d3c0cf062d9e15f" ) # Build paths @@ -46,7 +47,7 @@ def main(): ) working_path = os.path.join(root_path, "build", "tor") tarball_path = os.path.join(working_path, tarball_filename) - dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor") + dist_path = os.path.join(root_path, "onionshare", "resources", "tor") # Make sure dirs exist if not os.path.exists(working_path): @@ -126,6 +127,9 @@ def main(): print(f"Tor binaries extracted to: {dist_path}") + # Fetch the built-in bridges + UpdateTorBridges(root_path) + if __name__ == "__main__": main() diff --git a/desktop/scripts/get-tor-osx.py b/desktop/scripts/get-tor-osx.py index 80d7aee8..b973a90a 100755 --- a/desktop/scripts/get-tor-osx.py +++ b/desktop/scripts/get-tor-osx.py @@ -3,7 +3,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -32,12 +32,14 @@ import shutil import subprocess import requests +from bridges import UpdateTorBridges + def main(): - dmg_url = "https://dist.torproject.org/torbrowser/11.0a10/TorBrowser-11.0a10-osx64_en-US.dmg" - dmg_filename = "TorBrowser-11.0a10-osx64_en-US.dmg" + dmg_url = "https://dist.torproject.org/torbrowser/11.0.4/TorBrowser-11.0.4-osx64_en-US.dmg" + dmg_filename = "TorBrowser-11.0.4-osx64_en-US.dmg" expected_dmg_sha256 = ( - "c6823a28fd28205437564815f93011ff93b7972da2a8ce16919adfc65909e7b9" + "309a67c8a82ae266756d7cf5ea00e94d9242e59d55eaff97dcd6201da3c8449c" ) # Build paths @@ -49,7 +51,7 @@ def main(): "/Volumes", "Tor Browser", "Tor Browser.app", "Contents" ) dmg_path = os.path.join(working_path, dmg_filename) - dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor") + dist_path = os.path.join(root_path, "onionshare", "resources", "tor") if not os.path.exists(dist_path): os.makedirs(dist_path, exist_ok=True) @@ -113,6 +115,9 @@ def main(): # Eject dmg subprocess.call(["diskutil", "eject", "/Volumes/Tor Browser"]) + # Fetch the built-in bridges + UpdateTorBridges(root_path) + if __name__ == "__main__": main() diff --git a/desktop/scripts/get-tor-windows.py b/desktop/scripts/get-tor-windows.py index 8ca2e79f..513ff168 100644 --- a/desktop/scripts/get-tor-windows.py +++ b/desktop/scripts/get-tor-windows.py @@ -2,7 +2,7 @@ """ OnionShare | https://onionshare.org/ -Copyright (C) 2014-2021 Micah Lee, et al. +Copyright (C) 2014-2022 Micah Lee, et al. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -31,12 +31,14 @@ import shutil import subprocess import requests +from bridges import UpdateTorBridges + def main(): - exe_url = "https://dist.torproject.org/torbrowser/11.0a10/torbrowser-install-11.0a10_en-US.exe" - exe_filename = "torbrowser-install-11.0a10_en-US.exe" + exe_url = "https://dist.torproject.org/torbrowser/11.0.4/torbrowser-install-11.0.4_en-US.exe" + exe_filename = "torbrowser-install-11.0.4_en-US.exe" expected_exe_sha256 = ( - "f567dd8368dea0a8d7bbf7c19ece7840f93d493e70662939b92f5058c8dc8d2d" + "c7073f58f49a225bcf7668a5630e94f5f5e96fb7bed095feebf3bf8417bd3d07" ) # Build paths root_path = os.path.dirname( @@ -44,7 +46,7 @@ def main(): ) working_path = os.path.join(root_path, "build", "tor") exe_path = os.path.join(working_path, exe_filename) - dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor") + dist_path = os.path.join(root_path, "onionshare", "resources", "tor") # Make sure the working folder exists if not os.path.exists(working_path): @@ -98,6 +100,9 @@ def main(): os.path.join(working_path, "Data"), os.path.join(dist_path, "Data", "Tor") ) + # Fetch the built-in bridges + UpdateTorBridges(root_path) + if __name__ == "__main__": main() diff --git a/desktop/scripts/rebuild-cli.py b/desktop/scripts/rebuild-cli.py deleted file mode 100755 index f9a43554..00000000 --- a/desktop/scripts/rebuild-cli.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python3 -""" -This script builds the CLI python wheel, copies it to the desktop folder, -and installs it in the virtual environment. -""" - -import inspect -import os -import glob -import subprocess -import shutil - - -def main(): - # Build paths - root_path = os.path.dirname( - os.path.dirname( - os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) - ) - ) - cli_path = os.path.join(root_path, "cli") - desktop_path = os.path.join(root_path, "desktop") - - # Delete old wheels - for filename in glob.glob(os.path.join(cli_path, "dist", "*.whl")): - os.remove(filename) - - # Build new wheel - subprocess.call(["poetry", "install"], cwd=cli_path) - subprocess.call(["poetry", "build"], cwd=cli_path) - wheel_filename = glob.glob(os.path.join(cli_path, "dist", "*.whl"))[0] - wheel_basename = os.path.basename(wheel_filename) - shutil.copyfile( - wheel_filename, - os.path.join(desktop_path, wheel_basename), - ) - - # Reinstall the new wheel - subprocess.call(["pip", "uninstall", "onionshare-cli", "-y"]) - subprocess.call(["pip", "install", os.path.join(desktop_path, wheel_basename)]) - subprocess.call(["pip", "install", "typing-extensions"]) - - -if __name__ == "__main__": - main() diff --git a/desktop/setup-freeze.py b/desktop/setup-freeze.py new file mode 100644 index 00000000..76ff6061 --- /dev/null +++ b/desktop/setup-freeze.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +OnionShare | https://onionshare.org/ + +Copyright (C) 2014-2022 Micah Lee, et al. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" +import os +import sys +import platform +import shutil +import cx_Freeze +from cx_Freeze import setup, Executable + +# There's an obscure cx_Freeze bug that I'm hitting that's preventing the macOS +# package from getting built. This is some monkeypatching to fix it. + +if platform.system() == "Darwin" or platform.system() == "Linux": + import importlib_metadata + import pathlib + from pathlib import Path + from tempfile import TemporaryDirectory + + class CustomPackagePath(pathlib.PurePosixPath): + def __init__(self, filename): + self.long_filename = str(filename) + self.short_filename = "/".join(filename.as_posix().split("/")[-2:]) + super(CustomPackagePath, self).__init__() + + def read_text(self, encoding="utf-8"): + with self.locate().open(encoding=encoding) as stream: + return stream.read() + + def read_binary(self): + with self.locate().open("rb") as stream: + return stream.read() + + def locate(self): + return Path(self.long_filename) + + def as_posix(self): + return self.short_filename + + class DistributionCache(importlib_metadata.PathDistribution): + _cachedir = TemporaryDirectory(prefix="cxfreeze-") + + @staticmethod + def at(path): + return DistributionCache(Path(path)) + + at.__doc__ = importlib_metadata.PathDistribution.at.__doc__ + + @classmethod + def from_name(cls, name): + distribution = super().from_name(name) + temp_dir = Path(cls._cachedir.name) + dist_dir = None + files = distribution.files or [] + prep = importlib_metadata.Prepared(distribution.name) + normalized = prep.normalized + legacy_normalized = prep.legacy_normalized + for file in files: + # patch: the onionshare and onionshare_cli files are using absolute paths, which break everything + if name in ["onionshare", "onionshare_cli"]: + if ".dist-info" not in file.as_posix(): + continue + + file = CustomPackagePath(file) + + if ( + not file.match(f"{name}-*.dist-info/*") + and not file.match(f"{distribution.name}-*.dist-info/*") + and not file.match(f"{normalized}-*.dist-info/*") + and not file.match(f"{legacy_normalized}-*.dist-info/*") + ): + continue + src_path = file.locate() + if not src_path.exists(): + continue + dst_path = temp_dir / file.as_posix() + if dist_dir is None: + dist_dir = dst_path.parent + dist_dir.mkdir(exist_ok=True) + shutil.copy2(src_path, dst_path) + if dist_dir is None: + raise importlib_metadata.PackageNotFoundError(name) + return cls.at(dist_dir) + + from_name.__doc__ = importlib_metadata.PathDistribution.from_name.__doc__ + + cx_Freeze.module.DistributionCache = DistributionCache + + +# Discover the version +with open(os.path.join("..", "cli", "onionshare_cli", "resources", "version.txt")) as f: + version = f.read().strip() + + +# Build +include_files = [(os.path.join("..", "LICENSE"), "LICENSE")] + +if platform.system() == "Windows": + include_msvcr = True + gui_base = "Win32GUI" + exec_icon = os.path.join("onionshare", "resources", "onionshare.ico") + +elif platform.system() == "Darwin": + import PySide2 + import shiboken2 + + include_msvcr = False + gui_base = None + exec_icon = None + include_files += [ + ( + os.path.join(PySide2.__path__[0], "libpyside2.abi3.5.15.dylib"), + "libpyside2.abi3.5.15.dylib", + ), + ( + os.path.join(shiboken2.__path__[0], "libshiboken2.abi3.5.15.dylib"), + "libshiboken2.abi3.5.15.dylib", + ), + ] + +elif platform.system() == "Linux": + include_msvcr = False + gui_base = None + exec_icon = None + + if not shutil.which("patchelf"): + print("Install the patchelf package") + sys.exit() + +setup( + name="onionshare", + version=version, + description="Securely and anonymously share files, host websites, and chat with friends using the Tor network", + options={ + # build_exe, for Windows and macOS + "build_exe": { + "packages": [ + "cffi", + "engineio", + "engineio.async_drivers.gevent", + "engineio.async_drivers.gevent_uwsgi", + "gevent", + "jinja2.ext", + "onionshare", + "onionshare_cli", + "PySide2", + "PySide2.QtCore", + "PySide2.QtGui", + "PySide2.QtWidgets", + ], + "excludes": [ + "test", + "tkinter", + "PySide2.Qt3DAnimation", + "PySide2.Qt3DCore", + "PySide2.Qt3DExtras", + "PySide2.Qt3DInput", + "PySide2.Qt3DLogic", + "PySide2.Qt3DRender", + "PySide2.QtCharts", + "PySide2.QtConcurrent", + "PySide2.QtDataVisualization", + "PySide2.QtHelp", + "PySide2.QtLocation", + "PySide2.QtMultimedia", + "PySide2.QtMultimediaWidgets", + "PySide2.QtNetwork", + "PySide2.QtOpenGL", + "PySide2.QtOpenGLFunctions", + "PySide2.QtPositioning", + "PySide2.QtPrintSupport", + "PySide2.QtQml", + "PySide2.QtQuick", + "PySide2.QtQuickControls2", + "PySide2.QtQuickWidgets", + "PySide2.QtRemoteObjects", + "PySide2.QtScript", + "PySide2.QtScriptTools", + "PySide2.QtScxml", + "PySide2.QtSensors", + "PySide2.QtSerialPort", + "PySide2.QtSql", + "PySide2.QtTest", + "PySide2.QtTextToSpeech", + "PySide2.QtUiTools", + "PySide2.QtWebChannel", + "PySide2.QtWebEngine", + "PySide2.QtWebEngineCore", + "PySide2.QtWebEngineWidgets", + "PySide2.QtWebSockets", + "PySide2.QtXml", + "PySide2.QtXmlPatterns", + ], + "include_files": include_files, + "include_msvcr": include_msvcr, + }, + # bdist_mac, making the macOS app bundle + "bdist_mac": { + "iconfile": os.path.join("onionshare", "resources", "onionshare.icns"), + "bundle_name": "OnionShare" + }, + }, + executables=[ + Executable( + "package/onionshare.py", + base=gui_base, + icon=exec_icon, + ), + Executable( + "package/onionshare-cli.py", + base=None, + icon=exec_icon, + ), + ], +) diff --git a/desktop/src/setup.py b/desktop/setup.py similarity index 52% rename from desktop/src/setup.py rename to desktop/setup.py index 95cad942..24359907 100644 --- a/desktop/src/setup.py +++ b/desktop/setup.py @@ -1,36 +1,14 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -OnionShare | https://onionshare.org/ - -Copyright (C) 2014-2021 Micah Lee, et al. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -""" +# This file is used to build the Snapcraft and Flatpak packages import setuptools -version = "2.4" +# The version must be hard-coded because Snapcraft won't have access to ../cli +version = "2.5" setuptools.setup( name="onionshare", 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="Securely and anonymously share files, host websites, and chat with friends using the Tor network", author="Micah Lee", author_email="micah@micahflee.com", maintainer="Micah Lee", diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py index 9fbb4309..2bf762e1 100644 --- a/desktop/tests/gui_base_test.py +++ b/desktop/tests/gui_base_test.py @@ -177,6 +177,13 @@ class GuiBaseTest(unittest.TestCase): tab.get_mode().toggle_history.click() self.assertEqual(tab.get_mode().history.isVisible(), not currently_visible) + def javascript_is_correct_mime_type(self, tab, file): + """Test that the javascript file send.js is fetchable and that its MIME type is correct""" + path = f"{tab.get_mode().web.static_url_path}/js/{file}" + url = f"http://127.0.0.1:{tab.app.port}/{path}" + r = requests.get(url) + self.assertTrue(r.headers["Content-Type"].startswith("text/javascript;")) + def history_indicator(self, tab, indicator_count="1"): """Test that we can make sure the history is toggled off, do an action, and the indicator works""" # Make sure history is toggled off diff --git a/desktop/tests/test_gui_chat.py b/desktop/tests/test_gui_chat.py index 786782f7..ee6c0787 100644 --- a/desktop/tests/test_gui_chat.py +++ b/desktop/tests/test_gui_chat.py @@ -61,6 +61,7 @@ class TestChat(GuiBaseTest): tab = self.new_chat_tab() self.run_all_chat_mode_started_tests(tab) self.view_chat(tab) + self.javascript_is_correct_mime_type(tab, "chat.js") self.change_username(tab) self.run_all_chat_mode_stopping_tests(tab) self.close_all_tabs() diff --git a/desktop/tests/test_gui_receive.py b/desktop/tests/test_gui_receive.py index ca69c957..3921c6a2 100644 --- a/desktop/tests/test_gui_receive.py +++ b/desktop/tests/test_gui_receive.py @@ -1,3 +1,4 @@ +import glob import pytest import os import requests @@ -35,17 +36,17 @@ class TestReceive(GuiBaseTest): now = datetime.now() for _ in range(10): date_dir = now.strftime("%Y-%m-%d") - if identical_files_at_once: - time_dir = now.strftime("%H%M%S-1") - else: - time_dir = now.strftime("%H%M%S") + time_dir = now.strftime("%H%M%S") receive_mode_dir = os.path.join( tab.settings.get("receive", "data_dir"), date_dir, time_dir ) - expected_filename = os.path.join(receive_mode_dir, expected_basename) - if os.path.exists(expected_filename): - exists = True - break + # The directories have microseconds in the name, so we need + # to use globbing against directory names containing the same + # second in order to try to find the file. + for path in glob.glob(receive_mode_dir + "*"): + if os.path.exists(os.path.join(path, expected_basename)): + exists = True + break now = now - timedelta(seconds=1) self.assertTrue(exists) @@ -83,17 +84,18 @@ class TestReceive(GuiBaseTest): for _ in range(10): date_dir = now.strftime("%Y-%m-%d") time_dir = now.strftime("%H%M%S") - expected_filename = os.path.join( + expected_estimated_filename = os.path.join( tab.settings.get("receive", "data_dir"), date_dir, - f"{time_dir}-message.txt", + f"{time_dir}*-message.txt", ) - if os.path.exists(expected_filename): - with open(expected_filename) as f: - assert f.read() == message + for path in glob.glob(expected_estimated_filename): + if os.path.exists(path): + with open(path) as f: + assert f.read() == message - exists = True - break + exists = True + break now = now - timedelta(seconds=1) self.assertTrue(exists) @@ -122,6 +124,7 @@ class TestReceive(GuiBaseTest): def run_all_receive_mode_tests(self, tab): """Submit files and messages in receive mode and stop the share""" self.run_all_receive_mode_setup_tests(tab) + self.javascript_is_correct_mime_type(tab, "receive.js") self.upload_file(tab, self.tmpfile_test, "test.txt") self.history_widgets_present(tab) self.counter_incremented(tab, 1) diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py index 2cc48d17..ba175fa9 100644 --- a/desktop/tests/test_gui_share.py +++ b/desktop/tests/test_gui_share.py @@ -197,6 +197,7 @@ class TestShare(GuiBaseTest): self.tmpfile_test ) self.web_page(tab, "Total size") + self.javascript_is_correct_mime_type(tab, "send.js") self.download_share(tab) self.history_widgets_present(tab) self.server_is_stopped(tab) diff --git a/docs/build.sh b/docs/build.sh index e30d6b31..85a045e2 100755 --- a/docs/build.sh +++ b/docs/build.sh @@ -3,7 +3,7 @@ VERSION=$(cat ../cli/onionshare_cli/resources/version.txt) # Supported locales -LOCALES="en fi pl pt_BR ru tr uk" +LOCALES="en fr de el it nb_NO pl pt_BR ru es tr uk" # Generate English .po files make gettext diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree index e36dddee..8e03765f 100644 Binary files a/docs/gettext/.doctrees/advanced.doctree and b/docs/gettext/.doctrees/advanced.doctree differ diff --git a/docs/gettext/.doctrees/develop.doctree b/docs/gettext/.doctrees/develop.doctree index e3a6bd6a..67238fc5 100644 Binary files a/docs/gettext/.doctrees/develop.doctree and b/docs/gettext/.doctrees/develop.doctree differ diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle index 9619e47c..6136c751 100644 Binary files a/docs/gettext/.doctrees/environment.pickle and b/docs/gettext/.doctrees/environment.pickle differ diff --git a/docs/gettext/.doctrees/features.doctree b/docs/gettext/.doctrees/features.doctree index 3c7f575c..8f0c8e3e 100644 Binary files a/docs/gettext/.doctrees/features.doctree and b/docs/gettext/.doctrees/features.doctree differ diff --git a/docs/gettext/.doctrees/help.doctree b/docs/gettext/.doctrees/help.doctree index c733889f..33ed6597 100644 Binary files a/docs/gettext/.doctrees/help.doctree and b/docs/gettext/.doctrees/help.doctree differ diff --git a/docs/gettext/.doctrees/index.doctree b/docs/gettext/.doctrees/index.doctree index e79b6478..5571c00b 100644 Binary files a/docs/gettext/.doctrees/index.doctree and b/docs/gettext/.doctrees/index.doctree differ diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree index 22d1cf79..b6d0da35 100644 Binary files a/docs/gettext/.doctrees/install.doctree and b/docs/gettext/.doctrees/install.doctree differ diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree index 9c8ff96e..7986938c 100644 Binary files a/docs/gettext/.doctrees/security.doctree and b/docs/gettext/.doctrees/security.doctree differ diff --git a/docs/gettext/.doctrees/tor.doctree b/docs/gettext/.doctrees/tor.doctree index d1b40318..baf8a41a 100644 Binary files a/docs/gettext/.doctrees/tor.doctree and b/docs/gettext/.doctrees/tor.doctree differ diff --git a/docs/gettext/advanced.pot b/docs/gettext/advanced.pot index cbb1a2e6..0c0beb6f 100644 --- a/docs/gettext/advanced.pot +++ b/docs/gettext/advanced.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot index 0e69a5c4..4a6cd8af 100644 --- a/docs/gettext/develop.pot +++ b/docs/gettext/develop.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/features.pot b/docs/gettext/features.pot index ed794467..c55bf091 100644 --- a/docs/gettext/features.pot +++ b/docs/gettext/features.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/help.pot b/docs/gettext/help.pot index 38237877..fc618538 100644 --- a/docs/gettext/help.pot +++ b/docs/gettext/help.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/index.pot b/docs/gettext/index.pot index 431f6d84..d57f1150 100644 --- a/docs/gettext/index.pot +++ b/docs/gettext/index.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/install.pot b/docs/gettext/install.pot index b0cb6c4d..a6c23cc0 100644 --- a/docs/gettext/install.pot +++ b/docs/gettext/install.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/security.pot b/docs/gettext/security.pot index c68c04e2..123f2747 100644 --- a/docs/gettext/security.pot +++ b/docs/gettext/security.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/sphinx.pot b/docs/gettext/sphinx.pot index 454a1718..500e619f 100644 --- a/docs/gettext/sphinx.pot +++ b/docs/gettext/sphinx.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/gettext/tor.pot b/docs/gettext/tor.pot index 7fd4bc5b..14168f16 100644 --- a/docs/gettext/tor.pot +++ b/docs/gettext/tor.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: OnionShare 2.4.1\n" +"Project-Id-Version: OnionShare 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-23 19:33-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/poetry.lock b/docs/poetry.lock index 3bc4f44a..50625b81 100644 --- a/docs/poetry.lock +++ b/docs/poetry.lock @@ -16,7 +16,7 @@ python-versions = ">=3.5" [[package]] name = "babel" -version = "2.9.0" +version = "2.9.1" description = "Internationalization utilities" category = "main" optional = false @@ -27,27 +27,34 @@ pytz = ">=2015.7" [[package]] name = "certifi" -version = "2020.11.8" +version = "2021.10.8" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = "*" [[package]] -name = "chardet" -version = "3.0.4" -description = "Universal encoding detector for Python 2 and 3" +name = "charset-normalizer" +version = "2.0.10" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false -python-versions = "*" +python-versions = ">=3.5.0" + +[package.extras] +unicode_backport = ["unicodedata2"] [[package]] name = "click" -version = "7.1.2" +version = "8.0.3" description = "Composable command line interface toolkit" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.6" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" @@ -101,7 +108,7 @@ http2 = ["h2 (>=3,<5)"] [[package]] name = "httpx" -version = "0.18.1" +version = "0.18.2" description = "The next generation HTTP client." category = "main" optional = false @@ -110,7 +117,7 @@ python-versions = ">=3.6" [package.dependencies] async-generator = {version = "*", markers = "python_version < \"3.7\""} certifi = "*" -httpcore = ">=0.13.0,<0.14.0" +httpcore = ">=0.13.3,<0.14.0" rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]} sniffio = "*" @@ -120,15 +127,15 @@ http2 = ["h2 (>=3.0.0,<4.0.0)"] [[package]] name = "idna" -version = "2.10" +version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.5" [[package]] name = "imagesize" -version = "1.2.0" +version = "1.3.0" description = "Getting image size from png/jpeg/jpeg2000/gif file" category = "main" optional = false @@ -136,52 +143,71 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "immutables" -version = "0.15" +version = "0.16" description = "Immutable Collections" category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" + +[package.dependencies] +typing-extensions = {version = ">=3.7.4.3", markers = "python_version < \"3.8\""} [package.extras] -test = ["flake8 (>=3.8.4,<3.9.0)", "pycodestyle (>=2.6.0,<2.7.0)"] +test = ["flake8 (>=3.8.4,<3.9.0)", "pycodestyle (>=2.6.0,<2.7.0)", "mypy (>=0.910)", "pytest (>=6.2.4,<6.3.0)"] + +[[package]] +name = "importlib-metadata" +version = "4.8.3" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +perf = ["ipython"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] [[package]] name = "jinja2" -version = "2.11.2" +version = "3.0.3" description = "A very fast and expressive template engine." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.6" [package.dependencies] -MarkupSafe = ">=0.23" +MarkupSafe = ">=2.0" [package.extras] -i18n = ["Babel (>=0.8)"] +i18n = ["Babel (>=2.7)"] [[package]] name = "markupsafe" -version = "1.1.1" +version = "2.0.1" description = "Safely add untrusted strings to HTML/XML markup." category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +python-versions = ">=3.6" [[package]] name = "packaging" -version = "20.4" +version = "21.3" description = "Core utilities for Python packages" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" [package.dependencies] -pyparsing = ">=2.0.2" -six = "*" +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pygments" -version = "2.7.2" +version = "2.11.2" description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false @@ -189,15 +215,18 @@ python-versions = ">=3.5" [[package]] name = "pyparsing" -version = "2.4.7" +version = "3.0.6" description = "Python parsing module" category = "main" optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = ">=3.6" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pytz" -version = "2020.4" +version = "2021.3" description = "World timezone definitions, modern and historical" category = "main" optional = false @@ -205,21 +234,21 @@ python-versions = "*" [[package]] name = "requests" -version = "2.25.0" +version = "2.27.1" description = "Python HTTP for Humans." category = "main" 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.*, !=3.5.*" [package.dependencies] certifi = ">=2017.4.17" -chardet = ">=3.0.2,<4" -idna = ">=2.5,<3" +charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} +idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} urllib3 = ">=1.21.1,<1.27" [package.extras] -security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] [[package]] name = "rfc3986" @@ -235,14 +264,6 @@ idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} [package.extras] idna2008 = ["idna"] -[[package]] -name = "six" -version = "1.15.0" -description = "Python 2 and 3 compatibility utilities" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" - [[package]] name = "sniffio" version = "1.2.0" @@ -256,15 +277,15 @@ contextvars = {version = ">=2.1", markers = "python_version < \"3.7\""} [[package]] name = "snowballstemmer" -version = "2.0.0" -description = "This package provides 26 stemmers for 25 languages generated from Snowball algorithms." +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." category = "main" optional = false python-versions = "*" [[package]] name = "sphinx" -version = "3.3.1" +version = "3.5.4" description = "Python documentation generator" category = "main" optional = false @@ -274,7 +295,7 @@ python-versions = ">=3.5" alabaster = ">=0.7,<0.8" babel = ">=1.3" colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.12" +docutils = ">=0.12,<0.17" imagesize = "*" Jinja2 = ">=2.3" packaging = "*" @@ -290,8 +311,8 @@ sphinxcontrib-serializinghtml = "*" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=3.5.0)", "flake8-import-order", "mypy (>=0.790)", "docutils-stubs"] -test = ["pytest", "pytest-cov", "html5lib", "typed-ast", "cython"] +lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"] +test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] [[package]] name = "sphinx-intl" @@ -312,13 +333,14 @@ transifex = ["transifex_client (>=0.11)"] [[package]] name = "sphinx-rtd-theme" -version = "0.5.0" +version = "0.5.2" description = "Read the Docs theme for Sphinx" category = "main" optional = false python-versions = "*" [package.dependencies] +docutils = "<0.17" sphinx = "*" [package.extras] @@ -350,11 +372,11 @@ test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "1.0.3" +version = "2.0.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" [package.extras] lint = ["flake8", "mypy", "docutils-stubs"] @@ -385,7 +407,7 @@ test = ["pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.4" +version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." category = "main" optional = false @@ -395,9 +417,17 @@ python-versions = ">=3.5" lint = ["flake8", "mypy", "docutils-stubs"] test = ["pytest"] +[[package]] +name = "typing-extensions" +version = "4.0.1" +description = "Backported and Experimental Type Hints for Python 3.6+" +category = "main" +optional = false +python-versions = ">=3.6" + [[package]] name = "urllib3" -version = "1.26.2" +version = "1.26.8" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false @@ -408,6 +438,18 @@ brotli = ["brotlipy (>=0.6.0)"] secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +[[package]] +name = "zipp" +version = "3.6.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] + [metadata] lock-version = "1.1" python-versions = "^3.6" @@ -423,20 +465,20 @@ async-generator = [ {file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"}, ] babel = [ - {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"}, - {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"}, + {file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"}, + {file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"}, ] certifi = [ - {file = "certifi-2020.11.8-py2.py3-none-any.whl", hash = "sha256:1f422849db327d534e3d0c5f02a263458c3955ec0aae4ff09b95f195c59f4edd"}, - {file = "certifi-2020.11.8.tar.gz", hash = "sha256:f05def092c44fbf25834a51509ef6e631dc19765ab8a57b4e7ab85531f0a9cf4"}, + {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, + {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, ] -chardet = [ - {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, - {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, +charset-normalizer = [ + {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"}, + {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"}, ] click = [ - {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, - {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, + {file = "click-8.0.3-py3-none-any.whl", hash = "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3"}, + {file = "click-8.0.3.tar.gz", hash = "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"}, ] colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, @@ -458,139 +500,168 @@ httpcore = [ {file = "httpcore-0.13.3.tar.gz", hash = "sha256:5d674b57a11275904d4fd0819ca02f960c538e4472533620f322fc7db1ea0edc"}, ] httpx = [ - {file = "httpx-0.18.1-py3-none-any.whl", hash = "sha256:ad2e3db847be736edc4b272c4d5788790a7e5789ef132fc6b5fef8aeb9e9f6e0"}, - {file = "httpx-0.18.1.tar.gz", hash = "sha256:0a2651dd2b9d7662c70d12ada5c290abcf57373b9633515fe4baa9f62566086f"}, + {file = "httpx-0.18.2-py3-none-any.whl", hash = "sha256:979afafecb7d22a1d10340bafb403cf2cb75aff214426ff206521fc79d26408c"}, + {file = "httpx-0.18.2.tar.gz", hash = "sha256:9f99c15d33642d38bce8405df088c1c4cfd940284b4290cacbfb02e64f4877c6"}, ] idna = [ - {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, - {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] imagesize = [ - {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"}, - {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"}, + {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"}, + {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"}, ] immutables = [ - {file = "immutables-0.15-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:6728f4392e3e8e64b593a5a0cd910a1278f07f879795517e09f308daed138631"}, - {file = "immutables-0.15-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f0836cd3bdc37c8a77b192bbe5f41dbcc3ce654db048ebbba89bdfe6db7a1c7a"}, - {file = "immutables-0.15-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:8703d8abfd8687932f2a05f38e7de270c3a6ca3bd1c1efb3c938656b3f2f985a"}, - {file = "immutables-0.15-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b8ad986f9b532c026f19585289384b0769188fcb68b37c7f0bd0df9092a6ca54"}, - {file = "immutables-0.15-cp36-cp36m-win_amd64.whl", hash = "sha256:6f117d9206165b9dab8fd81c5129db757d1a044953f438654236ed9a7a4224ae"}, - {file = "immutables-0.15-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b75ade826920c4e490b1bb14cf967ac14e61eb7c5562161c5d7337d61962c226"}, - {file = "immutables-0.15-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:b7e13c061785e34f73c4f659861f1b3e4a5fd918e4395c84b21c4e3d449ebe27"}, - {file = "immutables-0.15-cp37-cp37m-win_amd64.whl", hash = "sha256:3035849accee4f4e510ed7c94366a40e0f5fef9069fbe04a35f4787b13610a4a"}, - {file = "immutables-0.15-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b04fa69174e0c8f815f9c55f2a43fc9e5a68452fab459a08e904a74e8471639f"}, - {file = "immutables-0.15-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:141c2e9ea515a3a815007a429f0b47a578ebeb42c831edaec882a245a35fffca"}, - {file = "immutables-0.15-cp38-cp38-win_amd64.whl", hash = "sha256:cbe8c64640637faa5535d539421b293327f119c31507c33ca880bd4f16035eb6"}, - {file = "immutables-0.15-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:a0a4e4417d5ef4812d7f99470cd39347b58cb927365dd2b8da9161040d260db0"}, - {file = "immutables-0.15-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:3b15c08c71c59e5b7c2470ef949d49ff9f4263bb77f488422eaa157da84d6999"}, - {file = "immutables-0.15-cp39-cp39-win_amd64.whl", hash = "sha256:2283a93c151566e6830aee0e5bee55fc273455503b43aa004356b50f9182092b"}, - {file = "immutables-0.15.tar.gz", hash = "sha256:3713ab1ebbb6946b7ce1387bb9d1d7f5e09c45add58c2a2ee65f963c171e746b"}, + {file = "immutables-0.16-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:acbfa79d44228d96296279068441f980dc63dbed52522d9227ff9f4d96c6627e"}, + {file = "immutables-0.16-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c9ed003eacb92e630ef200e31f47236c2139b39476894f7963b32bd39bafa3"}, + {file = "immutables-0.16-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a396314b9024fa55bf83a27813fd76cf9f27dce51f53b0f19b51de035146251"}, + {file = "immutables-0.16-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a2a71678348fb95b13ca108d447f559a754c41b47bd1e7e4fb23974e735682d"}, + {file = "immutables-0.16-cp36-cp36m-win32.whl", hash = "sha256:064001638ab5d36f6aa05b6101446f4a5793fb71e522bc81b8fc65a1894266ff"}, + {file = "immutables-0.16-cp36-cp36m-win_amd64.whl", hash = "sha256:1de393f1b188740ca7b38f946f2bbc7edf3910d2048f03bbb8d01f17a038d67c"}, + {file = "immutables-0.16-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fcf678a3074613119385a02a07c469ec5130559f5ea843c85a0840c80b5b71c6"}, + {file = "immutables-0.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a307eb0984eb43e815dcacea3ac50c11d00a936ecf694c46991cd5a23bcb0ec0"}, + {file = "immutables-0.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7a58825ff2254e2612c5a932174398a4ea8fbddd8a64a02c880cc32ee28b8820"}, + {file = "immutables-0.16-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:798b095381eb42cf40db6876339e7bed84093e5868018a9e73d8e1f7ab4bb21e"}, + {file = "immutables-0.16-cp37-cp37m-win32.whl", hash = "sha256:19bdede174847c2ef1292df0f23868ab3918b560febb09fcac6eec621bd4812b"}, + {file = "immutables-0.16-cp37-cp37m-win_amd64.whl", hash = "sha256:9ccf4c0e3e2e3237012b516c74c49de8872ccdf9129739f7a0b9d7444a8c4862"}, + {file = "immutables-0.16-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d59beef203a3765db72b1d0943547425c8318ecf7d64c451fd1e130b653c2fbb"}, + {file = "immutables-0.16-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0020aaa4010b136056c20a46ce53204e1407a9e4464246cb2cf95b90808d9161"}, + {file = "immutables-0.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edd9f67671555af1eb99ad3c7550238487dd7ac0ac5205b40204ed61c9a922ac"}, + {file = "immutables-0.16-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:298a301f85f307b4c056a0825eb30f060e64d73605e783289f3df37dd762bab8"}, + {file = "immutables-0.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b779617f5b94486bfd0f22162cd72eb5f2beb0214a14b75fdafb7b2c908ed0cb"}, + {file = "immutables-0.16-cp38-cp38-win32.whl", hash = "sha256:511c93d8b1bbbf103ff3f1f120c5a68a9866ce03dea6ac406537f93ca9b19139"}, + {file = "immutables-0.16-cp38-cp38-win_amd64.whl", hash = "sha256:b651b61c1af6cda2ee201450f2ffe048a5959bc88e43e6c312f4c93e69c9e929"}, + {file = "immutables-0.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:aa7bf572ae1e006104c584be70dc634849cf0dc62f42f4ee194774f97e7fd17d"}, + {file = "immutables-0.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:50793a44ba0d228ed8cad4d0925e00dfd62ea32f44ddee8854f8066447272d05"}, + {file = "immutables-0.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:799621dcdcdcbb2516546a40123b87bf88de75fe7459f7bd8144f079ace6ec3e"}, + {file = "immutables-0.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7bcf52aeb983bd803b7c6106eae1b2d9a0c7ab1241bc6b45e2174ba2b7283031"}, + {file = "immutables-0.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:734c269e82e5f307fb6e17945953b67659d1731e65309787b8f7ba267d1468f2"}, + {file = "immutables-0.16-cp39-cp39-win32.whl", hash = "sha256:a454d5d3fee4b7cc627345791eb2ca4b27fa3bbb062ccf362ecaaa51679a07ed"}, + {file = "immutables-0.16-cp39-cp39-win_amd64.whl", hash = "sha256:2505d93395d3f8ae4223e21465994c3bc6952015a38dc4f03cb3e07a2b8d8325"}, + {file = "immutables-0.16.tar.gz", hash = "sha256:d67e86859598eed0d926562da33325dac7767b7b1eff84e232c22abea19f4360"}, +] +importlib-metadata = [ + {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"}, + {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"}, ] jinja2 = [ - {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"}, - {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"}, + {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, + {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, ] markupsafe = [ - {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"}, - {file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"}, - {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, + {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, + {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, + {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, + {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, + {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, + {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, ] packaging = [ - {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"}, - {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"}, + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] pygments = [ - {file = "Pygments-2.7.2-py3-none-any.whl", hash = "sha256:88a0bbcd659fcb9573703957c6b9cff9fab7295e6e76db54c9d00ae42df32773"}, - {file = "Pygments-2.7.2.tar.gz", hash = "sha256:381985fcc551eb9d37c52088a32914e00517e57f4a21609f48141ba08e193fa0"}, + {file = "Pygments-2.11.2-py3-none-any.whl", hash = "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65"}, + {file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"}, ] pyparsing = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, + {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"}, + {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"}, ] pytz = [ - {file = "pytz-2020.4-py2.py3-none-any.whl", hash = "sha256:5c55e189b682d420be27c6995ba6edce0c0a77dd67bfbe2ae6607134d5851ffd"}, - {file = "pytz-2020.4.tar.gz", hash = "sha256:3e6b7dd2d1e0a59084bcee14a17af60c5c562cdc16d828e8eba2e683d3a7e268"}, + {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"}, + {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"}, ] requests = [ - {file = "requests-2.25.0-py2.py3-none-any.whl", hash = "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"}, - {file = "requests-2.25.0.tar.gz", hash = "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8"}, + {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, + {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, ] rfc3986 = [ {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"}, {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"}, ] -six = [ - {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, - {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, -] sniffio = [ {file = "sniffio-1.2.0-py3-none-any.whl", hash = "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663"}, {file = "sniffio-1.2.0.tar.gz", hash = "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"}, ] snowballstemmer = [ - {file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"}, - {file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"}, + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, ] sphinx = [ - {file = "Sphinx-3.3.1-py3-none-any.whl", hash = "sha256:d4e59ad4ea55efbb3c05cde3bfc83bfc14f0c95aa95c3d75346fcce186a47960"}, - {file = "Sphinx-3.3.1.tar.gz", hash = "sha256:1e8d592225447104d1172be415bc2972bd1357e3e12fdc76edf2261105db4300"}, + {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"}, + {file = "Sphinx-3.5.4.tar.gz", hash = "sha256:19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"}, ] sphinx-intl = [ {file = "sphinx-intl-2.0.1.tar.gz", hash = "sha256:b25a6ec169347909e8d983eefe2d8adecb3edc2f27760db79b965c69950638b4"}, {file = "sphinx_intl-2.0.1-py3.8.egg", hash = "sha256:2ff97cba0e4e43249e339a3c29dd2f5b63c25ce794050aabca320ad95f5c5b55"}, ] sphinx-rtd-theme = [ - {file = "sphinx_rtd_theme-0.5.0-py2.py3-none-any.whl", hash = "sha256:373413d0f82425aaa28fb288009bf0d0964711d347763af2f1b65cafcb028c82"}, - {file = "sphinx_rtd_theme-0.5.0.tar.gz", hash = "sha256:22c795ba2832a169ca301cd0a083f7a434e09c538c70beb42782c073651b707d"}, + {file = "sphinx_rtd_theme-0.5.2-py2.py3-none-any.whl", hash = "sha256:4a05bdbe8b1446d77a01e20a23ebc6777c74f43237035e76be89699308987d6f"}, + {file = "sphinx_rtd_theme-0.5.2.tar.gz", hash = "sha256:32bd3b5d13dc8186d7a42fc816a23d32e83a4827d7d9882948e7b837c232da5a"}, ] sphinxcontrib-applehelp = [ {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, @@ -601,8 +672,8 @@ sphinxcontrib-devhelp = [ {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, ] sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"}, - {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"}, + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, ] sphinxcontrib-jsmath = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, @@ -613,10 +684,18 @@ sphinxcontrib-qthelp = [ {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, ] sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"}, - {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"}, + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] +typing-extensions = [ + {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"}, + {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"}, ] urllib3 = [ - {file = "urllib3-1.26.2-py2.py3-none-any.whl", hash = "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"}, - {file = "urllib3-1.26.2.tar.gz", hash = "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08"}, + {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, + {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"}, +] +zipp = [ + {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"}, + {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"}, ] diff --git a/docs/source/conf.py b/docs/source/conf.py index 74fa88cc..36679497 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,6 +1,6 @@ project = "OnionShare" author = copyright = "Micah Lee, et al." -version = release = "2.4.1" +version = release = "2.5" extensions = ["sphinx_rtd_theme"] templates_path = ["_templates"] @@ -8,18 +8,20 @@ exclude_patterns = [] languages = [ ("English", "en"), # English - ("Finnish", "fi"), # Finnish + ("Français", "fr"), # French + ("Deutsch", "de"), # German + ("Ελληνικά", "el"), # Greek + ("Italiano", "it"), # Italian + ("Norsk Bokmål", "nb_NO"), # Norwegian Bokmål ("Polish", "pl"), # Polish ("Portuguese (Brazil)", "pt_BR"), # Portuguese (Brazil)) - # ("Deutsch", "de"), # German - # ("Ελληνικά", "el"), # Greek ("Русский", "ru"), # Russian - # ("Español", "es"), # Spanish + ("Español", "es"), # Spanish ("Türkçe", "tr"), # Turkish ("Українська", "uk"), # Ukrainian ] -versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.4.1"] +versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.5"] html_theme = "sphinx_rtd_theme" html_logo = "_static/logo.png" diff --git a/docs/source/locale/de/LC_MESSAGES/advanced.po b/docs/source/locale/de/LC_MESSAGES/advanced.po index 5aecf28f..29e8a947 100644 --- a/docs/source/locale/de/LC_MESSAGES/advanced.po +++ b/docs/source/locale/de/LC_MESSAGES/advanced.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-09-09 19:49-0700\n" -"PO-Revision-Date: 2021-09-13 10:46+0000\n" -"Last-Translator: nautilusx \n" +"PO-Revision-Date: 2021-12-04 15:52+0000\n" +"Last-Translator: Jannes Leßmann \n" "Language-Team: de \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 @@ -54,16 +54,15 @@ msgstr "" "purpurfarbenen Stecknadelsymbol links dem Status des Dienstes." #: ../../source/advanced.rst:18 -#, fuzzy msgid "" "When you quit OnionShare and then open it again, your saved tabs will " "start opened. You'll have to manually start each service, but when you do" " they will start with the same OnionShare address and private key." msgstr "" "Wenn du OnionShare beendest und dann wieder öffnest, werden deine " -"gespeicherten Reiter wieder geöffnet. Du musst dann zwar jeden Dienst " -"manuell starten, aber wenn du dies tust, starten die Dienste mit " -"derselben OnionShare-Adresse und mit demselben Passwort wie zuvor." +"gespeicherten Tabs wieder geöffnet. Du musst dann zwar jeden Dienst manuell " +"starten, aber wenn du dies tust, starten die Dienste mit derselben " +"OnionShare-Adresse und mit demselben Passwort wie zuvor." #: ../../source/advanced.rst:21 msgid "" @@ -83,28 +82,29 @@ msgid "" "By default, all OnionShare services are protected with a private key, " "which Tor calls \"client authentication\"." msgstr "" +"Standardmäßig werden alle OnionShare-Dienste mit einem privaten Schlüssel " +"gesichert. Dies wird im Tor-Kontext \"Client-Authentifizierung\" genannt." #: ../../source/advanced.rst:30 msgid "" "When browsing to an OnionShare service in Tor Browser, Tor Browser will " "prompt for the private key to be entered." msgstr "" +"Wenn du einen OnionShare-Dienst im Tor-Browser aufrufst, wird Tor-Browser " +"dich auffordern, den privaten Schlüssel einzugeben." #: ../../source/advanced.rst:32 -#, fuzzy msgid "" "Sometimes you might want your OnionShare service to be accessible to the " "public, like if you want to set up an OnionShare receive service so the " "public can securely and anonymously send you files. In this case, it's " "better to disable the private key altogether." msgstr "" -"Manchmal könntest du wollen, dass dein OnionShare-Service der " -"Öffentlichkeit zugänglich ist; dies ist beispielsweise der Fall, wenn du " -"einen OnionShare-Empfangsdienst einrichten möchtest, über den dir die " -"Öffentlichkeit sicher und anonym Dateien schicken können. In diesem Fall " -"wäre es besser, das Passwort komplett zu deaktivieren. Wenn du dies nicht" -" tust, könnte jemand deinen Dienst anhalten, wenn er 20 mal das Passwort " -"falsch eingibt, selbst wenn er das richtige Passwort kennt." +"Manchmal könntest du wollen, dass dein OnionShare-Service der Öffentlichkeit " +"zugänglich ist; dies ist beispielsweise der Fall, wenn du einen OnionShare-" +"Empfangsdienst einrichten möchtest, über den dir die Öffentlichkeit sicher " +"und anonym Dateien schicken kann. In diesem Fall wäre es besser, den " +"privaten Schlüssel komplett zu deaktivieren." #: ../../source/advanced.rst:35 msgid "" @@ -113,6 +113,10 @@ msgid "" "server. Then the server will be public and won't need a private key to " "view in Tor Browser." msgstr "" +"Um den privaten Schlüssel für einen Tab zu deaktivieren, setze ein Kreuz in " +"das \"Dies ist ein öffentlicher OnionShare-Service (Deaktiviert den privaten " +"Schlüssel)\" Kästchen bevor du den Server startest. Dadurch wird der Server " +"öffentlich Zugänglich, wodurch kein privater Schlüssel mehr benötigt wird." #: ../../source/advanced.rst:40 msgid "Custom Titles" @@ -183,7 +187,6 @@ msgstr "" "gemäß Zeitsteuerung starten würde." #: ../../source/advanced.rst:60 -#, fuzzy msgid "" "**Scheduling an OnionShare service to automatically stop can be useful to" " limit exposure**, like if you want to share secret documents while " @@ -191,10 +194,10 @@ msgid "" "days." msgstr "" "**Der automatische, zeigesteuerte Stopp eines OnionShare-Dienstes kann " -"sinnvoll sein, um den Dienst nicht mehr als nötig einem Zugriff von außen" -" auszusetzen**; beispielsweise, wenn du geheime Dokumente freigeben " -"möchtest und diese nicht länger als für ein paar Tage über das Internet " -"zugänglich sein sollen." +"sinnvoll sein, um den Dienst nicht mehr als nötig einem Zugriff von Außen " +"auszusetzen**; beispielsweise, wenn du geheime Dokumente freigeben möchtest " +"und diese nicht länger als für ein paar Tage über das Internet zugänglich " +"sein sollen." #: ../../source/advanced.rst:67 msgid "Command-line Interface" @@ -235,6 +238,10 @@ msgid "" "`_ " "in the git repository." msgstr "" +"Um mehr Informationen darüber zu bekommen, wie du es auf verschiedenen " +"Betriebssystem installieren kannst, schau dir die `CLI README Datei " +"`_ im " +"Git-Repository an." #: ../../source/advanced.rst:83 msgid "" diff --git a/docs/source/locale/de/LC_MESSAGES/develop.po b/docs/source/locale/de/LC_MESSAGES/develop.po index de402daf..dbdace47 100644 --- a/docs/source/locale/de/LC_MESSAGES/develop.po +++ b/docs/source/locale/de/LC_MESSAGES/develop.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-09-09 19:15-0700\n" -"PO-Revision-Date: 2021-09-19 15:37+0000\n" -"Last-Translator: register718 \n" +"PO-Revision-Date: 2021-12-04 15:52+0000\n" +"Last-Translator: Jannes Leßmann \n" "Language-Team: de \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -183,7 +183,6 @@ msgstr "" "Zum Beispiel::" #: ../../source/develop.rst:165 -#, fuzzy msgid "" "In this case, you load the URL ``http://127.0.0.1:17641`` in a normal " "web-browser like Firefox, instead of using the Tor Browser. The private " @@ -191,7 +190,7 @@ msgid "" msgstr "" "In diesem Fall lädst du die URL ``http://127.0.0.1:17614`` in einem normalen " "Webbrowser wie Firefox anstelle des Tor Browsers. Der private Schlüssel wird " -"bei lokalen Betrieb eigentlich nicht benötigt." +"im lokalen Betrieb für gewöhnlich nicht benötigt." #: ../../source/develop.rst:168 msgid "Contributing Translations" diff --git a/docs/source/locale/de/LC_MESSAGES/features.po b/docs/source/locale/de/LC_MESSAGES/features.po index aca23e44..cec61390 100644 --- a/docs/source/locale/de/LC_MESSAGES/features.po +++ b/docs/source/locale/de/LC_MESSAGES/features.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2021-09-09 19:15-0700\n" -"PO-Revision-Date: 2021-11-28 19:16+0000\n" -"Last-Translator: ilumium \n" -"Language-Team: de \n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" +"PO-Revision-Date: 2021-12-04 15:52+0000\n" +"Last-Translator: Jannes Leßmann \n" "Language: de\n" +"Language-Team: de \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.10-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/features.rst:4 msgid "How OnionShare Works" @@ -36,12 +35,12 @@ msgstr "" #: ../../source/features.rst:8 msgid "By default, OnionShare web addresses are protected with a private key." msgstr "" -"Standardmäßig wird die OnionShare Webadresse mit einem privaten Schlüssel " +"OnionShare-Webadressen werden standardmäßig mit einem privaten Schlüssel " "geschützt." #: ../../source/features.rst:10 msgid "OnionShare addresses look something like this::" -msgstr "OnionShare Adressen sehen in etwa so aus:" +msgstr "OnionShare-Adressen sehen in etwa so aus:" #: ../../source/features.rst:14 msgid "And private keys might look something like this::" @@ -54,12 +53,13 @@ msgid "" "or using something less secure like unencrypted email, depending on your " "`threat model `_." msgstr "" -"Sie sind für die sichere Weitergabe dieser URL und des privaten Schlüssels " -"verantwortlich. Die Weitergabe kann z.B. über eine verschlüsselte Chat-" -"Nachricht, oder eine weniger sichere Kommunikationsmethode wie eine " -"unverschlüsselte E-Mail erfolgen. Dies Entscheidung wie Sie Ihren Schlüssel " -"weitergeben sollten Sie aufgrund Ihres persönlichen `threat model " -"`_ treffen." +"Sie sind für die sichere Weitergabe dieser URL und des privaten " +"Schlüssels verantwortlich. Die Weitergabe kann z.B. über eine " +"verschlüsselte Chat-Nachricht, oder eine weniger sichere " +"Kommunikationsmethode, wie eine unverschlüsselte E-Mail, erfolgen. Dies " +"Entscheidung wie Sie Ihren Schlüssel weitergeben sollten Sie aufgrund " +"Ihres persönlichen `Sicherheitsmodells `_ treffen." #: ../../source/features.rst:20 msgid "" @@ -68,10 +68,11 @@ msgid "" " Tor Browser will then prompt for the private key, which the people can " "also then copy and paste in." msgstr "" -"Die Empfänger Ihrer URL müssen diesen in ihrem `Tor Browser `_ öffnen, um auf den OnionShare-Dienst zuzugreifen. Der Tor " -"Browser wird nach einem privaten Schlüssel fragen, der ebenfalls vom " -"Empfänger eingegeben werden muss." +"Die Empfänger Ihrer URL müssen diese in ihrem `Tor Browser " +"`_ öffnen, um auf den OnionShare-Dienst " +"zuzugreifen. Der Tor Browser wird nach einem privaten Schlüssel fragen, " +"welcher anschließend vom Empfänger, z.B. über Copy-Paste, eingegeben " +"werden kann." #: ../../source/features.rst:24 msgid "" @@ -80,11 +81,11 @@ msgid "" "until your laptop is unsuspended and on the internet again. OnionShare " "works best when working with people in real-time." msgstr "" -"Wenn du OnionShare auf deinem Laptop laufen lässt, um jemandem Dateien zu " -"schicken, und du den Laptop in den Ruhemodus versetzt, ehe die Dateien " -"gesendet wurden, wird der Dienst so lange nicht erreichbar sein wie der " -"Laptop im Ruhezustand ist. OnionShare funktioniert am besten, wenn du mit " -"den Leuten, mit denen du Dateien teilst, in Echtzeit in Verbindung stehst." +"Solltest du deinen Laptop in den Ruhemodus versetzen und währenddessen " +"Dateien mit jemandem teilen, so werden die Dateien erst versandt, sobald " +"sich dein Laptop nicht mehr im Ruhemodus befindet. OnionShare " +"funktioniert am besten, wenn du mit den Leuten, mit denen du Dateien " +"teilst, in Echtzeit in Verbindung stehst." #: ../../source/features.rst:26 msgid "" @@ -132,11 +133,11 @@ msgid "" " files have been sent (uncheck to allow downloading individual files)\" " "box." msgstr "" -"Sobald jemand deine Dateien vollständig heruntergeladen hat, wird OnionShare " -"das Teilen der Dateien automatisch beenden und die Webseite vom Internet " -"nehmen. Um mehreren Personen das Herunterladen zu ermöglichen, öffne die " -"Einstellungen von OnionShare und entferne den Haken bei „Server nach " -"Download der Dateien stoppen“." +"Sobald jemand deine Dateien vollständig heruntergeladen hat, wird " +"OnionShare das Teilen der Dateien automatisch beenden und die Webseite " +"vom Internet nehmen. Um mehreren Personen das Herunterladen zu " +"ermöglichen, öffne die Einstellungen von OnionShare und entferne den " +"Haken bei „Server nach Download der Dateien stoppen“." #: ../../source/features.rst:42 msgid "" @@ -169,10 +170,11 @@ msgid "" " stay secure, or the person is otherwise exposed to danger, use an " "encrypted messaging app." msgstr "" -"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und schicke " -"sie der Person, die die Dateien empfangen soll. Falls die Dateien vor " -"Anderen geschützt bleiben sollen oder die Empfängerperson anderweitig in " -"Gefahr ist, nutze einen verschlüsselten Messenger zum senden der Adresse." +"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und " +"schicke sie der Person, die die Dateien empfangen soll. Falls die Dateien" +" vor Anderen geschützt bleiben sollen oder die Empfängerperson " +"anderweitig in Gefahr ist, nutze einen verschlüsselten Messenger zum " +"senden der Adresse." #: ../../source/features.rst:50 msgid "" @@ -180,10 +182,10 @@ msgid "" "with the private key, the files can be downloaded directly from your " "computer by clicking the \"Download Files\" link in the corner." msgstr "" -"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 " -"enthalten ist, kann sie die Dateien direkt von deinem Rechner über den Link „" -"Dateien herunterladen” in der Ecke herunterladen." +"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 enthalten ist, kann sie die Dateien direkt von deinem Rechner " +"über den Link „Dateien herunterladen” in der Ecke herunterladen." #: ../../source/features.rst:55 msgid "Receive Files and Messages" @@ -313,7 +315,8 @@ msgstr "" "Ähnlich wie bei bösartigen E-Mail-Anhängen kann es sein, dass jemand " "versucht deinen Rechner anzugreifen, indem er eine bösartige Datei auf " "deinen OnionShare-Dienst hochlädt. OnionShare selbst hat keine " -"Sicherheitsmechanismen, um deinen Rechner vor solchen Angriffen zu schützen." +"Sicherheitsmechanismen, um deinen Rechner vor solchen Angriffen zu " +"schützen." #: ../../source/features.rst:90 msgid "" @@ -349,8 +352,8 @@ msgid "" "basis." msgstr "" "Wenn du deinen eigenen anonymen OnionShare-Briefkasten betreiben willst, " -"solltest du dies auf einem separaten, eigens dafür eingerichteten Rechner " -"tun, der immer läuft und mit dem Internet verbunden ist; nicht mit dem " +"solltest du dies auf einem separaten, eigens dafür eingerichteten Rechner" +" tun, der immer läuft und mit dem Internet verbunden ist; nicht mit dem " "Rechner, den du sonst regelmäßig benutzt." #: ../../source/features.rst:99 @@ -361,10 +364,11 @@ msgid "" "to give it a custom title (see :ref:`custom_titles`)." msgstr "" "Falls du deine OnionShare-Adresse auf deiner Webseite oder deinen Social " -"Media-Profilen veröffentlichen willst, solltest du den entsprechenden Reiter " -"speichern (siehe :ref:`save_tabs`) und den Service als öffentlich festlegen. " -"(siehe :ref:`disable password`). In diesem Fall wäre es auch eine gute Idee, " -"einen benutzerdefinierten Titel festzulegen (siehe :ref:`custom_titles`)." +"Media-Profilen veröffentlichen willst, solltest du den entsprechenden " +"Reiter speichern (siehe :ref:`save_tabs`) und den Service als öffentlich " +"festlegen. (siehe :ref:`disable password`). In diesem Fall wäre es auch " +"eine gute Idee, einen benutzerdefinierten Titel festzulegen (siehe " +":ref:`custom_titles`)." #: ../../source/features.rst:102 msgid "Host a Website" @@ -419,16 +423,16 @@ msgid "" "page." msgstr "" "Standardmäßig sichert OnionShare deine Webseite, indem es einen strikten " -"`Content-Security-Policy `_-Header setzt. Das verhindert allerdings auch das " -"Laden von Inhalten von Drittanbietern innerhalb deiner Webseite." +"`Content-Security-Policy " +"`_-Header setzt. " +"Das verhindert allerdings auch das Laden von Inhalten von Drittanbietern " +"innerhalb deiner Webseite." #: ../../source/features.rst:121 +#, fuzzy 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." +"JavaScript libraries from CDNs, you have two options:" msgstr "" "Falls du auch Inhalte von Drittanbieter-Webseiten laden willst, wie z.B. " "Inhalte oder JavaScript-Bibliotheken von CDNs, musst du einen Haken bei " @@ -436,11 +440,22 @@ msgstr "" "von Drittanbietern auf deiner Onion-Webseite einzubinden)“ setzen, bevor " "du den Dienst startest." +#: ../../source/features.rst:123 +msgid "" +"You can disable sending a Content Security Policy header by checking the " +"\"Don't send Content Security Policy header (allows your website to use " +"third-party resources)\" box before starting the service." +msgstr "" + #: ../../source/features.rst:124 +msgid "You can send a custom Content Security Policy header." +msgstr "" + +#: ../../source/features.rst:127 msgid "Tips for running a website service" msgstr "Tipps zum Betreiben eines Webseiten-Dienstes" -#: ../../source/features.rst:126 +#: ../../source/features.rst:129 msgid "" "If you want to host a long-term website using OnionShare (meaning not " "just to quickly show someone something), it's recommended you do it on a " @@ -449,16 +464,16 @@ msgid "" " (see :ref:`save_tabs`) so you can resume the website with the same " "address if you close OnionShare and re-open it later." msgstr "" -"Falls du eine Webseite längerfristig über OnionShare anbieten (also nicht " -"nur kurz jemandem etwas zeigen) möchtest, solltest du dies auf einem " -"separaten, eigens dafür eingerichteten Rechner tun, der immer läuft und mit " -"dem Internet verbunden ist; nicht auf dem Rechner, den du sonst regelmäßig " -"benutzt. Außerdem solltest du den entsprechenden Reiter speichern (see " -":ref:`save_tabs`), so dass du die Webseite dann mit derselben Adresse " -"anbieten kannst, wenn OnionShare zwischenzeitig beendet und neu gestartet " -"wird." +"Falls du eine Webseite längerfristig über OnionShare anbieten (also nicht" +" nur kurz jemandem etwas zeigen) möchtest, solltest du dies auf einem " +"separaten, eigens dafür eingerichteten Rechner tun, der immer läuft und " +"mit dem Internet verbunden ist; nicht auf dem Rechner, den du sonst " +"regelmäßig benutzt. Außerdem solltest du den entsprechenden Reiter " +"speichern (see :ref:`save_tabs`), so dass du die Webseite dann mit " +"derselben Adresse anbieten kannst, wenn OnionShare zwischenzeitig beendet" +" und neu gestartet wird." -#: ../../source/features.rst:129 +#: ../../source/features.rst:132 msgid "" "If your website is intended for the public, you should run it as a public" " service (see :ref:`turn_off_private_key`)." @@ -466,11 +481,11 @@ msgstr "" "Wenn du deine Webseite öffentlich betreiben willst, solltest du sie als " "öffentlichen Dienst starten (see :ref:`disable_passwords`)." -#: ../../source/features.rst:132 +#: ../../source/features.rst:135 msgid "Chat Anonymously" msgstr "Anonym chatten" -#: ../../source/features.rst:134 +#: ../../source/features.rst:137 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\"." @@ -479,19 +494,20 @@ msgstr "" "aufsetzen, der nichts aufzeichnet. Öffne einfach einen Chat-Reiter und " "klicke auf „Chat starten“." -#: ../../source/features.rst:138 +#: ../../source/features.rst:141 msgid "" "After you start the server, copy the OnionShare address and private key " "and send them 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 and private key." msgstr "" -"Nachdem du den Dienst gestartest hast, kopiere die OnionShare-Adresse und " -"schicke sie den Leuten, die dem anonymen Chat beitreten sollen. Falls es " -"wichtig ist, den Teilnehmerkreis strikt zu beschränken, solltest du einen " -"verschlüsselten Messenger zum Teilen der OnionShare-Adresse verwenden." +"Nachdem du den Dienst gestartest hast, kopiere die OnionShare-Adresse und" +" schicke sie den Leuten, die dem anonymen Chat beitreten sollen. Falls es" +" wichtig ist, den Teilnehmerkreis strikt zu beschränken, solltest du " +"einen verschlüsselten Messenger zum Teilen der OnionShare-Adresse " +"verwenden." -#: ../../source/features.rst:143 +#: ../../source/features.rst:146 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 " @@ -503,7 +519,7 @@ msgstr "" "Teilnehmer muss im Tor Browser seinen Sicherheitslevel auf „Standard“ " "oder „Safer“ (anstelle von Safest) setzen." -#: ../../source/features.rst:146 +#: ../../source/features.rst:149 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 " @@ -516,7 +532,7 @@ msgstr "" "Chatverlauf wird nicht angezeigt, selbst wenn andere bereits zuvor im " "Chatroot gechattet hatten, da der Chatverlauf nirgendwo gespeichert wird." -#: ../../source/features.rst:152 +#: ../../source/features.rst:155 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." @@ -524,7 +540,7 @@ msgstr "" "In einem OnionShare-Chatroom ist jeder anonym. Jeder kann seinen Namen " "beliebig ändern und die Identität der Nutzer kann nicht überprüft werden." -#: ../../source/features.rst:155 +#: ../../source/features.rst:158 msgid "" "However, if you create an OnionShare chat room and securely send the " "address only to a small group of trusted friends using encrypted " @@ -536,11 +552,11 @@ msgstr "" " nur an eine kleine Anzahl vertrauenswürdiger Freunde über einen " "verschlüsselten Kanal geschickt hast." -#: ../../source/features.rst:158 +#: ../../source/features.rst:161 msgid "How is this useful?" msgstr "Wozu soll das gut sein?" -#: ../../source/features.rst:160 +#: ../../source/features.rst:163 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." @@ -549,7 +565,7 @@ msgstr "" "verschlüsselten Messenger benutzen solltest? Sie hinterlassen weniger " "Spuren." -#: ../../source/features.rst:162 +#: ../../source/features.rst:165 msgid "" "If you for example send a message to a Signal group, a copy of your " "message ends up on each device (the smartphones, and computers if they " @@ -560,8 +576,11 @@ msgid "" "rooms don't store any messages anywhere, so the problem is reduced to a " "minimum." msgstr "" +"Solltest du zum Beispiel eine Nachricht an eine Signal-Gruppe schicken, " +"dann bleibt eine Kopie deiner Nachricht auf jedem Gerät aller Teilnehmer " +"der Gruppe." -#: ../../source/features.rst:165 +#: ../../source/features.rst:168 msgid "" "OnionShare chat rooms can also be useful for people wanting to chat " "anonymously and securely with someone without needing to create any " @@ -571,17 +590,17 @@ msgid "" "anonymity." msgstr "" "OnionShare-Chats ermöglichen es außerdem einander unbekannten Personen, " -"miteinander zu chatten ohne dafür eigene Benutzerkonten erstellen zu müssen. " -"Beispielsweise könnte eine Quelle einem Journalisten über eine Wegwerf-E" -"-Mail-Adresse eine OnionShare-Adresse schicken und dann warten, bis der " -"Journalist den Chat betritt, ohne dass die Quelle dabei ihre Anonymität " -"gefährdet." +"miteinander zu chatten ohne dafür eigene Benutzerkonten erstellen zu " +"müssen. Beispielsweise könnte eine Quelle einem Journalisten über eine " +"Wegwerf-E-Mail-Adresse eine OnionShare-Adresse schicken und dann warten, " +"bis der Journalist den Chat betritt, ohne dass die Quelle dabei ihre " +"Anonymität gefährdet." -#: ../../source/features.rst:169 +#: ../../source/features.rst:172 msgid "How does the encryption work?" msgstr "Wie funktioniert die Verschlüsselung?" -#: ../../source/features.rst:171 +#: ../../source/features.rst:174 msgid "" "Because OnionShare relies on Tor onion services, connections between the " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " @@ -598,7 +617,7 @@ msgstr "" "WebSockets weiterschickt, wiederum durch deren eigene E2EE-Onion-" "Verbindungen." -#: ../../source/features.rst:173 +#: ../../source/features.rst:176 msgid "" "OnionShare doesn't implement any chat encryption on its own. It relies on" " the Tor onion service's encryption instead." @@ -935,3 +954,4 @@ msgstr "" #~ "Datenbank). OnionShare-Chatrooms speichern " #~ "nirgendwo Nachrichten, so dass dieses " #~ "Problem auf ein Minimum reduziert ist." + diff --git a/docs/source/locale/de/LC_MESSAGES/tor.po b/docs/source/locale/de/LC_MESSAGES/tor.po index 6e5d0fd0..59e41adf 100644 --- a/docs/source/locale/de/LC_MESSAGES/tor.po +++ b/docs/source/locale/de/LC_MESSAGES/tor.po @@ -7,34 +7,34 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2021-09-09 19:15-0700\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-09-13 10:46+0000\n" "Last-Translator: nautilusx \n" -"Language-Team: de \n" "Language: de\n" +"Language-Team: de \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/tor.rst:2 msgid "Connecting to Tor" msgstr "Mit dem Tor-Netzwerk verbinden" #: ../../source/tor.rst:4 +#, fuzzy 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." +"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in" +" the bottom right of the OnionShare window to open the Tor Settings tab." msgstr "" "Lege fest, wie OnionShare sich mit Tor verbinden soll, indem du auf das " "„⚙“-Symbol am unteren rechten Rand vom OnionShare-Fenster klickst, um die" " entsprechenden Einstellungen zu sehen." #: ../../source/tor.rst:9 -msgid "Use the ``tor`` bundled with OnionShare" -msgstr "Die integrierte Tor-Version benutzen" +msgid "Use the Tor version built into OnionShare" +msgstr "" #: ../../source/tor.rst:11 msgid "" @@ -59,10 +59,54 @@ msgstr "" "nutzen kannst." #: ../../source/tor.rst:18 +msgid "Getting Around Censorship" +msgstr "" + +#: ../../source/tor.rst:20 +#, fuzzy +msgid "" +"If your access to the internet is censored, you can configure OnionShare " +"to connect to the Tor network using `Tor bridges `_. If OnionShare connects to Tor without " +"one, you don't need to use a bridge." +msgstr "" +"Falls dein Internetzugang zensiert wird, kannst du OnionShare so " +"konfigurieren, dass es sich mit dem Tor-Netzwerk verbindet, indem du " +"`Tor-Bridges `_ " +"benutzt. Wenn OnionShare sich ohne eine Brücke mit Tor verbindet, " +"brauchst du keine Brücke zu benutzen." + +#: ../../source/tor.rst:22 +msgid "" +"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor" +" version built into OnionShare\" and check the \"Use a bridge\" checkbox." +msgstr "" + +#: ../../source/tor.rst:25 +msgid "" +"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges " +"is recommended over using `meek-azure`." +msgstr "" + +#: ../../source/tor.rst:29 +msgid "" +"If using a built-in bridge doesn't work, you can request a bridge from " +"torproject.org. You will have to solve a CAPTCHA in order to request a " +"bridge. (This makes it more difficult for governments or ISPs to block " +"access to Tor bridges.)" +msgstr "" + +#: ../../source/tor.rst:33 +msgid "" +"You also have the option of using a bridge that you learned about from a " +"trusted source." +msgstr "" + +#: ../../source/tor.rst:36 msgid "Attempt auto-configuration with Tor Browser" msgstr "Versuche automatische Konfiguration mittels Tor Browser" -#: ../../source/tor.rst:20 +#: ../../source/tor.rst:38 msgid "" "If you have `downloaded the Tor Browser `_ " "and don't want two ``tor`` processes running, you can use the ``tor`` " @@ -75,11 +119,11 @@ msgstr "" "Damit dies funktionierst, musst du den Tor Browser im Hintergrund " "geöffnet lassen, so lange du OnionShare nutzt." -#: ../../source/tor.rst:24 +#: ../../source/tor.rst:42 msgid "Using a system ``tor`` in Windows" msgstr "Nutze einen systemweiten Tor-Dienst in Windows" -#: ../../source/tor.rst:26 +#: ../../source/tor.rst:44 msgid "" "This is fairly advanced. You'll need to know how edit plaintext files and" " do stuff as an administrator." @@ -87,7 +131,7 @@ msgstr "" "Nur etwas für Fortgeschrittene. Hierfür musst du wissen, wie du " "Textdateien editierst und mit Administratorrechten arbeitest." -#: ../../source/tor.rst:28 +#: ../../source/tor.rst:46 msgid "" "Download the Tor Windows Expert Bundle `from " "`_. Extract the compressed file" @@ -100,7 +144,7 @@ msgstr "" "``C:\\Programme (x86)\\``. Benenne den entpackten Ordner, der ``Data`` " "und ``Tor`` beinhaltet, nach ``tor-win32`` um." -#: ../../source/tor.rst:32 +#: ../../source/tor.rst:50 msgid "" "Make up a control port password. (Using 7 words in a sequence like " "``comprised stumble rummage work avenging construct volatile`` is a good " @@ -114,7 +158,7 @@ msgstr "" "--hash-password`` aus, um einen Hash deines Passworts zu erzeugen. Zum " "Beispiel::" -#: ../../source/tor.rst:39 +#: ../../source/tor.rst:57 msgid "" "The hashed password output is displayed after some warnings (which you " "can ignore). In the case of the above example, it is " @@ -124,7 +168,7 @@ msgstr "" "ignorieren kannst). In meinem Fall war es " "``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``." -#: ../../source/tor.rst:41 +#: ../../source/tor.rst:59 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 " @@ -134,7 +178,7 @@ msgstr "" "win32\\torrc`` und füge den Passwort-Hash ein, wobei " "``HashedControlPassword`` mit dem gerade erzeugten ersetzt wird::" -#: ../../source/tor.rst:46 +#: ../../source/tor.rst:64 msgid "" "In your administrator command prompt, install ``tor`` as a service using " "the appropriate ``torrc`` file you just created (as described in " @@ -146,11 +190,11 @@ msgstr "" "`_ für " "weitere Informationen). Zum Beispiel so::" -#: ../../source/tor.rst:50 +#: ../../source/tor.rst:68 msgid "You are now running a system ``tor`` process in Windows!" msgstr "Jetzt hast du einen systemweiten Tor-Dienst in Windows am Laufen!" -#: ../../source/tor.rst:52 +#: ../../source/tor.rst:70 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using control port\", and " @@ -168,11 +212,11 @@ msgstr "" " dann auf „Verbindung zu Tor testen“. Wenn alles geklappt hat, sollte " "„Mit dem Tor-Controller verbunden“ erscheinen." -#: ../../source/tor.rst:61 +#: ../../source/tor.rst:79 msgid "Using a system ``tor`` in macOS" msgstr "Benutze einen systemweiten Tor-Dienst in macOS" -#: ../../source/tor.rst:63 +#: ../../source/tor.rst:81 msgid "" "First, install `Homebrew `_ if you don't already have " "it, and then install Tor::" @@ -180,15 +224,15 @@ msgstr "" "Installiere zunächst `Homebrew `_, falls du es noch " "nicht hast. Installiere dann Tor::" -#: ../../source/tor.rst:67 +#: ../../source/tor.rst:85 msgid "Now configure Tor to allow connections from OnionShare::" msgstr "Konfiguriere Tor nun so, dass es Verbindungen von OnionShare aus zulässt::" -#: ../../source/tor.rst:74 +#: ../../source/tor.rst:92 msgid "And start the system Tor service::" msgstr "Und starte den systemweiten Tor-Dienst::" -#: ../../source/tor.rst:78 +#: ../../source/tor.rst:96 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using socket file\", and " @@ -203,17 +247,17 @@ msgstr "" "Identifizierung, oder Identifizierung über Cookie“. Klicke auf den Button" " „Verbindung zu Tor testen“." -#: ../../source/tor.rst:84 ../../source/tor.rst:104 +#: ../../source/tor.rst:102 ../../source/tor.rst:122 msgid "If all goes well, you should see \"Connected to the Tor controller\"." msgstr "" "Falls alles geklappt hat, solltest du „Mit dem Tor-Controller verbunden“ " "sehen." -#: ../../source/tor.rst:87 +#: ../../source/tor.rst:105 msgid "Using a system ``tor`` in Linux" msgstr "Einen systemweiten Tor-Dienst unter Linux nutzen" -#: ../../source/tor.rst:89 +#: ../../source/tor.rst:107 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 " @@ -224,7 +268,7 @@ msgstr "" "ähnliche Distribution nutzt, empfiehlt sich das `offizielle Repository " "`_ des Tor-Projekts." -#: ../../source/tor.rst:91 +#: ../../source/tor.rst:109 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 " @@ -235,7 +279,7 @@ msgstr "" "konfiguriere OnionShare so, dass es sich über die Socket-Datei des " "systemweiten Tor-Dienstes verbindet." -#: ../../source/tor.rst:93 +#: ../../source/tor.rst:111 msgid "" "Add your user to the ``debian-tor`` group by running this command " "(replace ``username`` with your actual username)::" @@ -243,7 +287,7 @@ msgstr "" "Füge deinen Benutzer der Gruppe ``debian-tor`` mit folgendem Befehl hinzu" " (ersetze dabei ``Nutzername`` mit deinem tatsächlichen Nutzernamen)::" -#: ../../source/tor.rst:97 +#: ../../source/tor.rst:115 msgid "" "Reboot your computer. After it boots up again, open OnionShare and click " "the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" " @@ -259,41 +303,6 @@ msgstr "" "wähle “Keine Authentifizierung, oder Authentizifierung über Cookie“. " "Klicke dann auf den Knopf „Teste die Verbindung zu Tor“." -#: ../../source/tor.rst:107 -msgid "Using Tor bridges" -msgstr "Über Tor-Bridges" - -#: ../../source/tor.rst:109 -msgid "" -"If your access to the internet is censored, you can configure OnionShare " -"to connect to the Tor network using `Tor bridges " -"`_. If OnionShare " -"connects to Tor without one, you don't need to use a bridge." -msgstr "" -"Falls dein Internetzugang zensiert wird, kannst du OnionShare so " -"konfigurieren, dass es sich mit dem Tor-Netzwerk verbindet, indem du `Tor-" -"Bridges `_ benutzt. " -"Wenn OnionShare sich ohne eine Brücke mit Tor verbindet, brauchst du keine " -"Brücke zu benutzen." - -#: ../../source/tor.rst:111 -msgid "To configure bridges, click the \"⚙\" icon in OnionShare." -msgstr "Um Bridges einzustellen, klicke auf das „⚙“-Symbol in OnionShare." - -#: ../../source/tor.rst:113 -msgid "" -"You can use the built-in obfs4 pluggable transports, the built-in " -"meek_lite (Azure) pluggable transports, or custom bridges, which you can " -"obtain from Tor's `BridgeDB `_. If you " -"need to use a bridge, try the built-in obfs4 ones first." -msgstr "" -"Du kannst die integrierten „obfs4 pluggable transports“, die integrierten" -" „meek_lite (Amazon) pluggable transports“ oder benutzerdefinierte " -"Bridges verwenden; letztere findest du in Tors `Bridge-Datenbank " -"`_. Falls du eine Bridge benutzen musst," -" solltest du zuerst die intergrierten „obfs4 pluggable transports“ " -"probieren." - #~ msgid "Using a system Tor in Mac OS X" #~ msgstr "" @@ -455,3 +464,33 @@ msgstr "" #~ "win32`` um, so dass sich in diesem" #~ " Ordner die beiden Ordner ``Data`` " #~ "und ``Tor`` befinden." + +#~ msgid "Use the ``tor`` bundled with OnionShare" +#~ msgstr "Die integrierte Tor-Version benutzen" + +#~ msgid "Using Tor bridges" +#~ msgstr "Über Tor-Bridges" + +#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare." +#~ msgstr "Um Bridges einzustellen, klicke auf das „⚙“-Symbol in OnionShare." + +#~ msgid "" +#~ "You can use the built-in obfs4 " +#~ "pluggable transports, the built-in " +#~ "meek_lite (Azure) pluggable transports, or " +#~ "custom bridges, which you can obtain " +#~ "from Tor's `BridgeDB " +#~ "`_. If you need " +#~ "to use a bridge, try the built-" +#~ "in obfs4 ones first." +#~ msgstr "" +#~ "Du kannst die integrierten „obfs4 " +#~ "pluggable transports“, die integrierten " +#~ "„meek_lite (Amazon) pluggable transports“ oder" +#~ " benutzerdefinierte Bridges verwenden; letztere" +#~ " findest du in Tors `Bridge-Datenbank" +#~ " `_. Falls du " +#~ "eine Bridge benutzen musst, solltest du" +#~ " zuerst die intergrierten „obfs4 pluggable" +#~ " transports“ probieren." + diff --git a/docs/source/locale/el/LC_MESSAGES/features.po b/docs/source/locale/el/LC_MESSAGES/features.po index 323492c6..ba01cf23 100644 --- a/docs/source/locale/el/LC_MESSAGES/features.po +++ b/docs/source/locale/el/LC_MESSAGES/features.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2021-09-09 19:15-0700\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-10-09 09:04+0000\n" "Last-Translator: george kitsoukakis \n" -"Language-Team: el \n" "Language: el\n" +"Language-Team: el \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/features.rst:4 msgid "How OnionShare Works" @@ -37,8 +36,8 @@ msgstr "" #: ../../source/features.rst:8 msgid "By default, OnionShare web addresses are protected with a private key." msgstr "" -"Από προεπιλογή, οι διευθύνσεις διαδικτύου του OnionShare προστατεύονται με " -"ένα ιδιωτικό κλειδί." +"Από προεπιλογή, οι διευθύνσεις διαδικτύου του OnionShare προστατεύονται " +"με ένα ιδιωτικό κλειδί." #: ../../source/features.rst:10 msgid "OnionShare addresses look something like this::" @@ -56,10 +55,10 @@ msgid "" "`threat model `_." msgstr "" "Είστε υπεύθυνοι για την ασφαλή κοινοποίηση της διεύθυνσης URL και του " -"ιδιωτικού κλειδιού χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, " -"όπως ένα κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο ασφαλές, " -"όπως μη κρυπτογραφημένο ηλεκτρονικό ταχυδρομείο, ανάλογα με το `μοντέλο " -"απειλής `_." +"ιδιωτικού κλειδιού χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής " +"σας, όπως ένα κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο " +"ασφαλές, όπως μη κρυπτογραφημένο ηλεκτρονικό ταχυδρομείο, ανάλογα με το " +"`μοντέλο απειλής `_." #: ../../source/features.rst:20 msgid "" @@ -79,11 +78,11 @@ msgid "" "until your laptop is unsuspended and on the internet again. OnionShare " "works best when working with people in real-time." msgstr "" -"Εάν χρησιμοποιήσετε το OnionShare στον φορητό υπολογιστή σας για να στείλετε " -"αρχεία και ο υπολογιστής αυτός κλείσει προτού ολοκληρωθεί η μεταφορά, δεν θα " -"είναι δυνατή η ολοκλήρωση της έως ότου συνδεθεί ξανά στο Διαδίκτυο. Το " -"OnionShare λειτουργεί καλύτερα όταν συνεργάζεστε με τον παραλήπτη σε " -"πραγματικό χρόνο." +"Εάν χρησιμοποιήσετε το OnionShare στον φορητό υπολογιστή σας για να " +"στείλετε αρχεία και ο υπολογιστής αυτός κλείσει προτού ολοκληρωθεί η " +"μεταφορά, δεν θα είναι δυνατή η ολοκλήρωση της έως ότου συνδεθεί ξανά στο" +" Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα όταν συνεργάζεστε με τον " +"παραλήπτη σε πραγματικό χρόνο." #: ../../source/features.rst:26 msgid "" @@ -132,11 +131,11 @@ msgid "" " files have been sent (uncheck to allow downloading individual files)\" " "box." msgstr "" -"Με την ολοκλήρωση αποστολής των αρχείων σας, το OnionShare σταματά αυτόματα " -"τον διακομιστή, αφαιρώντας την ιστοσελίδα από το Διαδίκτυο. Για να " -"επιτρέψετε τη λήψη από περισσότερους χρήστες, αποεπιλέξτε το \"Τερματισμός " -"διαμοιρασμού με την ολοκλήρωση αποστολής (αποεπιλέξτε ώστε να επιτρέπεται η " -"λήψη μεμονωμένων αρχείων)\"." +"Με την ολοκλήρωση αποστολής των αρχείων σας, το OnionShare σταματά " +"αυτόματα τον διακομιστή, αφαιρώντας την ιστοσελίδα από το Διαδίκτυο. Για " +"να επιτρέψετε τη λήψη από περισσότερους χρήστες, αποεπιλέξτε το " +"\"Τερματισμός διαμοιρασμού με την ολοκλήρωση αποστολής (αποεπιλέξτε ώστε " +"να επιτρέπεται η λήψη μεμονωμένων αρχείων)\"." #: ../../source/features.rst:42 msgid "" @@ -168,10 +167,10 @@ msgid "" " stay secure, or the person is otherwise exposed to danger, use an " "encrypted messaging app." msgstr "" -"Τώρα που αποκτήσατε το OnionShare, αντιγράψτε και στείλτε τη διεύθυνση λήψης " -"των αρχείων σας και το ιδιωτικό κλειδί. Εάν χρειάζεστε περισσότερη ασφάλεια " -"ή ο αποδέκτης δεν είναι έμπιστος, χρησιμοποιήστε μια εφαρμογή αποστολής " -"κρυπτογραφημένου μηνύματος." +"Τώρα που αποκτήσατε το OnionShare, αντιγράψτε και στείλτε τη διεύθυνση " +"λήψης των αρχείων σας και το ιδιωτικό κλειδί. Εάν χρειάζεστε περισσότερη " +"ασφάλεια ή ο αποδέκτης δεν είναι έμπιστος, χρησιμοποιήστε μια εφαρμογή " +"αποστολής κρυπτογραφημένου μηνύματος." #: ../../source/features.rst:50 msgid "" @@ -179,9 +178,9 @@ msgid "" "with the private key, the files can be downloaded directly from your " "computer by clicking the \"Download Files\" link in the corner." msgstr "" -"Ο αποδέκτης θα πρέπει να αντιγράψει τη διεύθυνση στο Tor Browser. Μετά τη " -"σύνδεση με το ιδιωτικό κλειδί, τα αρχεία μπορούν να ληφθούν απευθείας από " -"τον υπολογιστή σας με κλικ στον σύνδεσμο \"Λήψη αρχείων\"." +"Ο αποδέκτης θα πρέπει να αντιγράψει τη διεύθυνση στο Tor Browser. Μετά τη" +" σύνδεση με το ιδιωτικό κλειδί, τα αρχεία μπορούν να ληφθούν απευθείας " +"από τον υπολογιστή σας με κλικ στον σύνδεσμο \"Λήψη αρχείων\"." #: ../../source/features.rst:55 msgid "Receive Files and Messages" @@ -309,9 +308,9 @@ msgid "" "protect your system from malicious files." msgstr "" "Όπως και με τα κακόβουλα συνημμένα e-mail, είναι πιθανό κάποιος να " -"προσπαθήσει να επιτεθεί στον υπολογιστή σας ανεβάζοντας ένα κακόβουλο αρχείο " -"στην υπηρεσία σας OnionShare, το οποίο δεν διαθέτει μηχανισμούς ασφαλείας " -"από κακόβουλα αρχεία." +"προσπαθήσει να επιτεθεί στον υπολογιστή σας ανεβάζοντας ένα κακόβουλο " +"αρχείο στην υπηρεσία σας OnionShare, το οποίο δεν διαθέτει μηχανισμούς " +"ασφαλείας από κακόβουλα αρχεία." #: ../../source/features.rst:90 msgid "" @@ -345,10 +344,10 @@ msgid "" " and connected to the internet, and not on the one you use on a regular " "basis." msgstr "" -"Εάν θέλετε να φιλοξενήσετε το δικό σας ανώνυμο dropbox χρησιμοποιώντας το " -"OnionShare, συνιστάται να το κάνετε σε έναν ξεχωριστό, μεμονωμένο υπολογιστή " -"που είναι πάντα ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο και όχι σε " -"αυτόν που χρησιμοποιείτε καθημερινά." +"Εάν θέλετε να φιλοξενήσετε το δικό σας ανώνυμο dropbox χρησιμοποιώντας το" +" OnionShare, συνιστάται να το κάνετε σε έναν ξεχωριστό, μεμονωμένο " +"υπολογιστή που είναι πάντα ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο" +" και όχι σε αυτόν που χρησιμοποιείτε καθημερινά." #: ../../source/features.rst:99 msgid "" @@ -357,10 +356,11 @@ msgid "" "public service (see :ref:`turn_off_private_key`). It's also a good idea " "to give it a custom title (see :ref:`custom_titles`)." msgstr "" -"Εάν σκοπεύετε να δημοσιεύσετε τη διεύθυνση OnionShare στην ιστοσελίδα ή στα " -"κοινωνικά σας δίκτυα, αποθηκεύστε την καρτέλα (δείτε :ref:`save_tabs`) και " -"εκτελέστε την σαν δημόσια υπηρεσία (δείτε :ref:`turn_off_private_key`). " -"Επίσης μπορείτε να προσθέσετε το δικό σας τίτλο (δείτε :ref:`custom_titles`)." +"Εάν σκοπεύετε να δημοσιεύσετε τη διεύθυνση OnionShare στην ιστοσελίδα ή " +"στα κοινωνικά σας δίκτυα, αποθηκεύστε την καρτέλα (δείτε " +":ref:`save_tabs`) και εκτελέστε την σαν δημόσια υπηρεσία (δείτε " +":ref:`turn_off_private_key`). Επίσης μπορείτε να προσθέσετε το δικό σας " +"τίτλο (δείτε :ref:`custom_titles`)." #: ../../source/features.rst:102 msgid "Host a Website" @@ -415,28 +415,38 @@ msgid "" "However, this prevents third-party content from loading inside the web " "page." msgstr "" -"Από προεπιλογή το OnionShare σας βοηθά στην προστασία της ιστοσελίδας σας " -"ορίζοντας την επικεφαλίδα `Περιεχόμενο πολιτικής ασφαλείας `_. Ωστόσο, αυτό εμποδίζει τη " -"φόρτωση περιεχομένου τρίτων εντός της ιστοσελίδας." +"Από προεπιλογή το OnionShare σας βοηθά στην προστασία της ιστοσελίδας σας" +" ορίζοντας την επικεφαλίδα `Περιεχόμενο πολιτικής ασφαλείας " +"`_. Ωστόσο, αυτό " +"εμποδίζει τη φόρτωση περιεχομένου τρίτων εντός της ιστοσελίδας." #: ../../source/features.rst:121 +#, fuzzy 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." +"JavaScript libraries from CDNs, you have two options:" +msgstr "" +"Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία " +"ή βιβλιοθήκες JavaScript από CDNs, επιλέξτε το πλαίσιο \"Μην στέλνετε την" +" κεφαλίδα Πολιτικής Ασφαλείας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας" +" να χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσίας." + +#: ../../source/features.rst:123 +msgid "" +"You can disable sending a Content Security Policy header by checking the " +"\"Don't send Content Security Policy header (allows your website to use " +"third-party resources)\" box before starting the service." msgstr "" -"Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία ή " -"βιβλιοθήκες JavaScript από CDNs, επιλέξτε το πλαίσιο \"Μην στέλνετε την " -"κεφαλίδα Πολιτικής Ασφαλείας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας να " -"χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσίας." #: ../../source/features.rst:124 +msgid "You can send a custom Content Security Policy header." +msgstr "" + +#: ../../source/features.rst:127 msgid "Tips for running a website service" msgstr "Συμβουλές για εκτέλεση μιας υπηρεσίας ιστοσελίδας" -#: ../../source/features.rst:126 +#: ../../source/features.rst:129 msgid "" "If you want to host a long-term website using OnionShare (meaning not " "just to quickly show someone something), it's recommended you do it on a " @@ -445,14 +455,15 @@ msgid "" " (see :ref:`save_tabs`) so you can resume the website with the same " "address if you close OnionShare and re-open it later." msgstr "" -"Εάν θέλετε να φιλοξενήσετε μια μακροσκελή ιστοσελίδα με το OnionShare (που " -"σημαίνει πως χρειάζεται χρόνος για περιήγηση), συνιστάται να το κάνετε σε " -"έναν ξεχωριστό, αυτόνομο υπολογιστή που είναι πάντα ενεργοποιημένος και " -"συνδεδεμένος στο Διαδίκτυο και όχι σε αυτόν που χρησιμοποιείτε σε τακτική " -"βάση. Αποθηκεύστε την καρτέλα (δείτε: :ref:`save_tabs`) ώστε να μπορείτε να " -"ξανανοίξετε την ίδια διεύθυνση εάν κλείσετε το OnionShare." +"Εάν θέλετε να φιλοξενήσετε μια μακροσκελή ιστοσελίδα με το OnionShare " +"(που σημαίνει πως χρειάζεται χρόνος για περιήγηση), συνιστάται να το " +"κάνετε σε έναν ξεχωριστό, αυτόνομο υπολογιστή που είναι πάντα " +"ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο και όχι σε αυτόν που " +"χρησιμοποιείτε σε τακτική βάση. Αποθηκεύστε την καρτέλα (δείτε: " +":ref:`save_tabs`) ώστε να μπορείτε να ξανανοίξετε την ίδια διεύθυνση εάν " +"κλείσετε το OnionShare." -#: ../../source/features.rst:129 +#: ../../source/features.rst:132 msgid "" "If your website is intended for the public, you should run it as a public" " service (see :ref:`turn_off_private_key`)." @@ -460,11 +471,11 @@ msgstr "" "Εάν η ιστοσελίδα σας προορίζεται για δημόσια χρήση, πρέπει να δηλωθεί ως " "δημόσια υπηρεσία (δείτε :ref:`turn_off_private_key`)." -#: ../../source/features.rst:132 +#: ../../source/features.rst:135 msgid "Chat Anonymously" msgstr "Συνομιλήστε ανώνυμα" -#: ../../source/features.rst:134 +#: ../../source/features.rst:137 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\"." @@ -473,7 +484,7 @@ msgstr "" "δωμάτιο συνομιλίας που δεν καταγράφει τίποτα. Απλά ανοίξτε μια καρτέλα " "συνομιλίας και κάντε κλικ \"Έναρξη διακομιστή συνομιλίας\"." -#: ../../source/features.rst:138 +#: ../../source/features.rst:141 msgid "" "After you start the server, copy the OnionShare address and private key " "and send them to the people you want in the anonymous chat room. If it's " @@ -481,11 +492,11 @@ msgid "" "to send out the OnionShare address and private key." msgstr "" "Μετά την εκκίνηση του διακομιστή, αντιγράψτε και στείλτε τη διεύθυνση " -"OnionShare και το ιδιωτικό κλειδί, από ένα ανώνυμο δωμάτιο συνομιλίας. Εάν " -"είναι σημαντικό να περιορίσετε ποιος μπορεί να συμμετάσχει, χρησιμοποιήστε " -"μια εφαρμογή ανταλλαγής μηνυμάτων με κρυπτογράφηση." +"OnionShare και το ιδιωτικό κλειδί, από ένα ανώνυμο δωμάτιο συνομιλίας. " +"Εάν είναι σημαντικό να περιορίσετε ποιος μπορεί να συμμετάσχει, " +"χρησιμοποιήστε μια εφαρμογή ανταλλαγής μηνυμάτων με κρυπτογράφηση." -#: ../../source/features.rst:143 +#: ../../source/features.rst:146 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 " @@ -498,7 +509,7 @@ msgstr "" "ασφάλεια του Tor Browser σε \"Βασικό\" ή \"Ασφαλέστερο\" και όχι σε " "\"Ασφαλέστατο\"." -#: ../../source/features.rst:146 +#: ../../source/features.rst:149 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 " @@ -511,7 +522,7 @@ msgstr "" "πουθενά, δεν εμφανίζεται καθόλου ακόμα κι αν βρίσκεται συζήτηση σε " "εξέλιξη." -#: ../../source/features.rst:152 +#: ../../source/features.rst:155 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." @@ -520,7 +531,7 @@ msgstr "" "μπορεί να αλλάξει το όνομά του και δεν υπάρχει τρόπος επιβεβαίωσης της " "ταυτότητάς του." -#: ../../source/features.rst:155 +#: ../../source/features.rst:158 msgid "" "However, if you create an OnionShare chat room and securely send the " "address only to a small group of trusted friends using encrypted " @@ -533,11 +544,11 @@ msgstr "" "σίγουροι ότι τα άτομα που συμμετέχουν στην αίθουσα συνομιλίας είναι φίλοι" " σας." -#: ../../source/features.rst:158 +#: ../../source/features.rst:161 msgid "How is this useful?" msgstr "Σε τι χρησιμεύει;" -#: ../../source/features.rst:160 +#: ../../source/features.rst:163 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." @@ -547,7 +558,7 @@ msgstr "" "OnionShare; Τόσο λιγότερα μέσα επικοινωνίας χρησιμοποιείτε, τόσο λιγότερα" " ίχνη θα αφήσετε." -#: ../../source/features.rst:162 +#: ../../source/features.rst:165 msgid "" "If you for example send a message to a Signal group, a copy of your " "message ends up on each device (the smartphones, and computers if they " @@ -559,15 +570,16 @@ msgid "" "minimum." msgstr "" "Εάν, για παράδειγμα, στείλετε ένα μήνυμα σε μια ομάδα του Signal, ένα " -"αντίγραφο του μηνύματός σας καταλήγει σε κάθε συσκευή (τα κινητά και τους " -"υπολογιστές αν έχουν το Signal Desktop) κάθε μέλους της ομάδας. Ακόμη και αν " -"η εξαφάνιση μηνυμάτων είναι ενεργοποιημένη, είναι δύσκολο να επιβεβαιώσετε " -"ότι όλα τα αντίγραφα των μηνυμάτων έχουν πράγματι διαγραφεί και από " -"οποιαδήποτε άλλα μέρη (όπως βάσεις δεδομένων ειδοποιήσεων) στα οποία μπορεί " -"να έχουν αποθηκευτεί. Τα δωμάτια συνομιλίας του OnionShare δεν αποθηκεύουν " -"κανένα μήνυμα πουθενά, οπότε το πρόβλημα μειώνεται στο ελάχιστο." +"αντίγραφο του μηνύματός σας καταλήγει σε κάθε συσκευή (τα κινητά και τους" +" υπολογιστές αν έχουν το Signal Desktop) κάθε μέλους της ομάδας. Ακόμη " +"και αν η εξαφάνιση μηνυμάτων είναι ενεργοποιημένη, είναι δύσκολο να " +"επιβεβαιώσετε ότι όλα τα αντίγραφα των μηνυμάτων έχουν πράγματι διαγραφεί" +" και από οποιαδήποτε άλλα μέρη (όπως βάσεις δεδομένων ειδοποιήσεων) στα " +"οποία μπορεί να έχουν αποθηκευτεί. Τα δωμάτια συνομιλίας του OnionShare " +"δεν αποθηκεύουν κανένα μήνυμα πουθενά, οπότε το πρόβλημα μειώνεται στο " +"ελάχιστο." -#: ../../source/features.rst:165 +#: ../../source/features.rst:168 msgid "" "OnionShare chat rooms can also be useful for people wanting to chat " "anonymously and securely with someone without needing to create any " @@ -576,18 +588,18 @@ msgid "" "journalist to join the chat room, all without compromosing their " "anonymity." msgstr "" -"Τα δωμάτια συνομιλίας OnionShare είναι επίσης χρήσιμα για άτομα που θέλουν " -"να συνομιλήσουν ανώνυμα και με ασφάλεια χωρίς να χρειάζεται να δημιουργήσουν " -"λογαριασμό. Για παράδειγμα, μια πηγή μπορεί να στείλει μια διεύθυνση " -"OnionShare σε έναν δημοσιογράφο χρησιμοποιώντας μια διεύθυνση e-mail μιας " -"χρήσης και στη συνέχεια, να περιμένει τον δημοσιογράφο να συμμετάσχει στο " -"δωμάτιο συνομιλίας, χωρίς να διακυβεύεται η ανωνυμία του." +"Τα δωμάτια συνομιλίας OnionShare είναι επίσης χρήσιμα για άτομα που " +"θέλουν να συνομιλήσουν ανώνυμα και με ασφάλεια χωρίς να χρειάζεται να " +"δημιουργήσουν λογαριασμό. Για παράδειγμα, μια πηγή μπορεί να στείλει μια " +"διεύθυνση OnionShare σε έναν δημοσιογράφο χρησιμοποιώντας μια διεύθυνση " +"e-mail μιας χρήσης και στη συνέχεια, να περιμένει τον δημοσιογράφο να " +"συμμετάσχει στο δωμάτιο συνομιλίας, χωρίς να διακυβεύεται η ανωνυμία του." -#: ../../source/features.rst:169 +#: ../../source/features.rst:172 msgid "How does the encryption work?" msgstr "Πως λειτουργεί η κρυπτογράφηση του OnionShare;" -#: ../../source/features.rst:171 +#: ../../source/features.rst:174 msgid "" "Because OnionShare relies on Tor onion services, connections between the " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " @@ -603,7 +615,7 @@ msgstr "" "οποία στη συνέχεια το στέλνει σε όλα τα μέλη της συνομιλίας " "χρησιμοποιώντας WebSockets, μέσω των συνδέσεων onion E2EE." -#: ../../source/features.rst:173 +#: ../../source/features.rst:176 msgid "" "OnionShare doesn't implement any chat encryption on its own. It relies on" " the Tor onion service's encryption instead." @@ -1121,3 +1133,4 @@ msgstr "" #~ "αποθηκευτεί. Τα δωμάτια συνομιλίας OnionShare" #~ " δεν αποθηκεύουν μηνύματα πουθενά, οπότε" #~ " το πρόβλημα μειώνεται στο ελάχιστο." + diff --git a/docs/source/locale/el/LC_MESSAGES/tor.po b/docs/source/locale/el/LC_MESSAGES/tor.po index dc358baf..d1c4493b 100644 --- a/docs/source/locale/el/LC_MESSAGES/tor.po +++ b/docs/source/locale/el/LC_MESSAGES/tor.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2021-09-09 19:15-0700\n" -"PO-Revision-Date: 2021-10-09 09:04+0000\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" +"PO-Revision-Date: 2022-01-20 11:57+0000\n" "Last-Translator: george kitsoukakis \n" "Language-Team: el \n" "Language: el\n" @@ -16,8 +16,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"X-Generator: Weblate 4.11-dev\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/tor.rst:2 msgid "Connecting to Tor" @@ -25,15 +25,16 @@ msgstr "Σύνδεση στο Tor" #: ../../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." +"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in" +" the bottom right of the OnionShare window to open the Tor Settings tab." msgstr "" -"Επιλέξτε τον τρόπο σύνδεσης του OnionShare με το Tor κάνοντας κλικ στο " -"εικονίδιο \"⚙\" κάτω δεξιά για μετάβαση στις ρυθμίσεις." +"Επιλέξτε τον τρόπο σύνδεσης του OnionShare με το Tor, κάνοντας κλικ στο " +"εικονίδιο του Tor κάτω δεξιά στο παράθυρο του OnionShare για να ανοίξει η " +"καρτέλα των ρυθμίσεων." #: ../../source/tor.rst:9 -msgid "Use the ``tor`` bundled with OnionShare" -msgstr "Χρήση του κελύφους ``tor`` με το OnionShare" +msgid "Use the Tor version built into OnionShare" +msgstr "Χρήση της έκδοσης Tor στο OnioShare" #: ../../source/tor.rst:11 msgid "" @@ -56,10 +57,62 @@ msgstr "" "σύστημα ``tor`` ξεχωριστά." #: ../../source/tor.rst:18 +msgid "Getting Around Censorship" +msgstr "Παράκαμψη της λογοκρισίας" + +#: ../../source/tor.rst:20 +msgid "" +"If your access to the internet is censored, you can configure OnionShare " +"to connect to the Tor network using `Tor bridges `_. If OnionShare connects to Tor without " +"one, you don't need to use a bridge." +msgstr "" +"Εάν λογοκρίνεται η πρόσβασή σας στο Διαδίκτυο, μπορείτε να ρυθμίσετε το " +"OnionShare να συνδέεται με χρήση των `Tor bridges `_. Εάν το OnionShare συνδέεται απευθείας στο Tor, " +"δεν χρειάζεται να χρησιμοποιήσετε μια γέφυρα." + +#: ../../source/tor.rst:22 +msgid "" +"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor" +" version built into OnionShare\" and check the \"Use a bridge\" checkbox." +msgstr "" +"Για χρήση γέφυρας, ανοίξτε την καρτέλα ρυθμίσεων του Tor. Επιλέξτε το \"Χρήση" +" της έκδοσης Tor με το OnionShare\" και επιλέξτε το \"Χρήση γέφυρας\"." + +#: ../../source/tor.rst:25 +msgid "" +"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges " +"is recommended over using `meek-azure`." +msgstr "" +"Δοκιμάστε αρχικά μια ενσωματωμένη γέφυρα. Η χρήση των γεφυρών `obfs4` ή " +"`snowflake` προτείνονται με χρήση του `meek-azure`." + +#: ../../source/tor.rst:29 +msgid "" +"If using a built-in bridge doesn't work, you can request a bridge from " +"torproject.org. You will have to solve a CAPTCHA in order to request a " +"bridge. (This makes it more difficult for governments or ISPs to block " +"access to Tor bridges.)" +msgstr "" +"Εάν δεν λειτουργεί η χρήση ενσωματωμένης γέφυρας, μπορείτε να αιτηθείτε μια " +"γέφυρα από το torproject.org. Θα πρέπει να επιλύσετε το CAPTCHA για αίτηση " +"της γέφυρας. (Με αυτό τον τρόπο καθίσταται δυσκολότερο για τις κυβερνήσεις " +"και παρόχους να μπλοκάρουν τις γέφυρες του Tor)." + +#: ../../source/tor.rst:33 +msgid "" +"You also have the option of using a bridge that you learned about from a " +"trusted source." +msgstr "" +"Μπορείτε να χρησιμοποιήσετε μια γέφυρα που ήδη γνωρίσετε από μια έμπιστη " +"πηγή." + +#: ../../source/tor.rst:36 msgid "Attempt auto-configuration with Tor Browser" msgstr "Αυτόματη ρύθμιση με Tor Browser" -#: ../../source/tor.rst:20 +#: ../../source/tor.rst:38 msgid "" "If you have `downloaded the Tor Browser `_ " "and don't want two ``tor`` processes running, you can use the ``tor`` " @@ -72,11 +125,11 @@ msgstr "" "ότι πρέπει να διατηρήσετε το Tor Browser ανοιχτό στο παρασκήνιο ενώ " "χρησιμοποιείτε το OnionShare." -#: ../../source/tor.rst:24 +#: ../../source/tor.rst:42 msgid "Using a system ``tor`` in Windows" msgstr "Χρήση του συστήματος ``tor`` σε Windows" -#: ../../source/tor.rst:26 +#: ../../source/tor.rst:44 msgid "" "This is fairly advanced. You'll need to know how edit plaintext files and" " do stuff as an administrator." @@ -84,7 +137,7 @@ msgstr "" "Είναι αρκετά προχωρημένο. Θα πρέπει να γνωρίζετε επεξεργασία αρχείων " "απλού κειμένου και να μπορείτε να κάνετε εργασίες ως διαχειριστής." -#: ../../source/tor.rst:28 +#: ../../source/tor.rst:46 msgid "" "Download the Tor Windows Expert Bundle `from " "`_. Extract the compressed file" @@ -96,7 +149,7 @@ msgstr "" "αντιγράψτε το στο φάκελο ``C:\\Program Files (x86)\\`` μετονομάστε το " "φάκελο με περιεχόμενα τα ``Data`` και ``Tor`` σε ``tor-win32``." -#: ../../source/tor.rst:32 +#: ../../source/tor.rst:50 msgid "" "Make up a control port password. (Using 7 words in a sequence like " "``comprised stumble rummage work avenging construct volatile`` is a good " @@ -111,7 +164,7 @@ msgstr "" "χρησιμοποιήστε το ``tor. exe --hash-password`` για τη δημιουργία ενός " "αναγνωριστικού του κωδικού πρόσβασής σας. Για παράδειγμα::" -#: ../../source/tor.rst:39 +#: ../../source/tor.rst:57 msgid "" "The hashed password output is displayed after some warnings (which you " "can ignore). In the case of the above example, it is " @@ -122,7 +175,7 @@ msgstr "" "παράδειγμα, εμφανίζεται " "``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``." -#: ../../source/tor.rst:41 +#: ../../source/tor.rst:59 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 " @@ -132,7 +185,7 @@ msgstr "" "win32\\torrc`` και προσθέστε το αναγνωριστικό του κωδικού πρόσβασης, " "αντικαθιστώντας το ``HashedControlPassword`` με αυτό που δημιουργήθηκε::" -#: ../../source/tor.rst:46 +#: ../../source/tor.rst:64 msgid "" "In your administrator command prompt, install ``tor`` as a service using " "the appropriate ``torrc`` file you just created (as described in " @@ -144,11 +197,11 @@ msgstr "" "``torrc`` που μόλις δημιουργήσατε (όπως περιγράφεται σε " "``_). Όπως::" -#: ../../source/tor.rst:50 +#: ../../source/tor.rst:68 msgid "You are now running a system ``tor`` process in Windows!" msgstr "Εκτελείτε πλέον μια υπηρεσία του συστήματος ``tor`` σε Windows!" -#: ../../source/tor.rst:52 +#: ../../source/tor.rst:70 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using control port\", and " @@ -166,11 +219,11 @@ msgstr "" "Κάντε κλικ στο κουμπί \"Έλεγχος της σύνδεσης με το Tor\". Εάν όλα είναι " "σωστά θα δείτε το μήνυμα \"Εγινε σύνδεση με τον ελεγκτή Tor\"." -#: ../../source/tor.rst:61 +#: ../../source/tor.rst:79 msgid "Using a system ``tor`` in macOS" msgstr "Χρήση του συστήματος ``tor`` σε macOS" -#: ../../source/tor.rst:63 +#: ../../source/tor.rst:81 msgid "" "First, install `Homebrew `_ if you don't already have " "it, and then install Tor::" @@ -178,15 +231,15 @@ msgstr "" "Εγκαταστήστε αρχικά το `Homebrew `_ εάν δεν το έχετε " "ήδη. Στη συνέχεια εγκαταστήστε το Tor::" -#: ../../source/tor.rst:67 +#: ../../source/tor.rst:85 msgid "Now configure Tor to allow connections from OnionShare::" msgstr "Ρυθμίστε το Tor ώστε να επιτρέπει τις συνδέσεις από το OnionShare::" -#: ../../source/tor.rst:74 +#: ../../source/tor.rst:92 msgid "And start the system Tor service::" msgstr "Και ξεκινήστε την υπηρεσία του συστήματος Tor::" -#: ../../source/tor.rst:78 +#: ../../source/tor.rst:96 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using socket file\", and " @@ -201,17 +254,17 @@ msgstr "" "επαλήθευσης Tor\" επιλέξτε \"Χωρίς επαλήθευση ή επαλήθευση με cookie\". " "Κάντε κλικ στο κουμπί \"Έλεγχος σύνδεσης με το Tor\"." -#: ../../source/tor.rst:84 ../../source/tor.rst:104 +#: ../../source/tor.rst:102 ../../source/tor.rst:122 msgid "If all goes well, you should see \"Connected to the Tor controller\"." msgstr "" "εάν όλα είναι σωστά θα δείτε το μήνυμα \"Εγινε σύνδεση με τον ελεγκτή " "Tor\"." -#: ../../source/tor.rst:87 +#: ../../source/tor.rst:105 msgid "Using a system ``tor`` in Linux" msgstr "Χρήση του συστήματος ``tor`` σε Linux" -#: ../../source/tor.rst:89 +#: ../../source/tor.rst:107 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 " @@ -223,7 +276,7 @@ msgstr "" "Project από το επίσημο αποθετήριο `_." -#: ../../source/tor.rst:91 +#: ../../source/tor.rst:109 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 " @@ -234,7 +287,7 @@ msgstr "" "ρυθμίστε το OnionShare ώστε να συνδεθεί με το αρχείο μετάβασής σας στο " "σύστημα ``tor``." -#: ../../source/tor.rst:93 +#: ../../source/tor.rst:111 msgid "" "Add your user to the ``debian-tor`` group by running this command " "(replace ``username`` with your actual username)::" @@ -242,7 +295,7 @@ msgstr "" "Προσθέστε τον χρήστη σας στην ομάδα ``debian-tor`` εκτελόντας την εντολή " "(αντικαταστήστε το ``όνομα χρήστη`` με το δικό σας::" -#: ../../source/tor.rst:97 +#: ../../source/tor.rst:115 msgid "" "Reboot your computer. After it boots up again, open OnionShare and click " "the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" " @@ -258,41 +311,6 @@ msgstr "" "επιλέξτε \"Χωρίς επαλήθευση ή επαλήθευση με cookie\". Κάντε κλικ στο " "κουμπί \"Έλεγχος σύνδεσης με το Tor\"." -#: ../../source/tor.rst:107 -msgid "Using Tor bridges" -msgstr "Χρήση γεφυρών Tor" - -#: ../../source/tor.rst:109 -msgid "" -"If your access to the internet is censored, you can configure OnionShare " -"to connect to the Tor network using `Tor bridges " -"`_. If OnionShare " -"connects to Tor without one, you don't need to use a bridge." -msgstr "" -"Εάν λογοκρίνεται η πρόσβασή σας στο Διαδίκτυο, μπορείτε να ρυθμίσετε το " -"OnionShare να συνδέεται με χρήση των `Tor bridges `_. Εάν το OnionShare συνδέεται " -"απευθείας στο Tor, δεν χρειάζεται να χρησιμοποιήσετε μια γέφυρα." - -#: ../../source/tor.rst:111 -msgid "To configure bridges, click the \"⚙\" icon in OnionShare." -msgstr "" -"Για να ρυθμίσετε μια γέφυρα, κάντε κλικ στο εικονίδιο \"⚙\" του " -"OnionShare." - -#: ../../source/tor.rst:113 -msgid "" -"You can use the built-in obfs4 pluggable transports, the built-in " -"meek_lite (Azure) pluggable transports, or custom bridges, which you can " -"obtain from Tor's `BridgeDB `_. If you " -"need to use a bridge, try the built-in obfs4 ones first." -msgstr "" -"Μπορείτε να χρησιμοποιήσετε τις προεγκατεστημένες συνδέσεις obfs4, οι " -"ενσωματωμένες meek_lite (Azure) συνδέσεις ή οι προσαρμοσμένες γέφυρες, " -"τις οποίες μπορείτε να αποκτήσετε από το Tor `BridgeDB " -"`_. Εάν πρέπει να χρησιμοποιήσετε μια " -"γέφυρα, δοκιμάστε πρώτα τις obfs4." - #~ msgid "Using a system Tor in Mac OS X" #~ msgstr "" @@ -510,3 +528,33 @@ msgstr "" #~ "Files (x86)\\``. Μετονομάστε τον εξαχθέν " #~ "φάκελο σε ``Data`` και ``Tor`` μέσα " #~ "στο ``tor-win32``." + +#~ msgid "Use the ``tor`` bundled with OnionShare" +#~ msgstr "Χρήση του κελύφους ``tor`` με το OnionShare" + +#~ msgid "Using Tor bridges" +#~ msgstr "Χρήση γεφυρών Tor" + +#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare." +#~ msgstr "" +#~ "Για να ρυθμίσετε μια γέφυρα, κάντε " +#~ "κλικ στο εικονίδιο \"⚙\" του OnionShare." + +#~ msgid "" +#~ "You can use the built-in obfs4 " +#~ "pluggable transports, the built-in " +#~ "meek_lite (Azure) pluggable transports, or " +#~ "custom bridges, which you can obtain " +#~ "from Tor's `BridgeDB " +#~ "`_. If you need " +#~ "to use a bridge, try the built-" +#~ "in obfs4 ones first." +#~ msgstr "" +#~ "Μπορείτε να χρησιμοποιήσετε τις " +#~ "προεγκατεστημένες συνδέσεις obfs4, οι " +#~ "ενσωματωμένες meek_lite (Azure) συνδέσεις ή" +#~ " οι προσαρμοσμένες γέφυρες, τις οποίες " +#~ "μπορείτε να αποκτήσετε από το Tor " +#~ "`BridgeDB `_. Εάν " +#~ "πρέπει να χρησιμοποιήσετε μια γέφυρα, " +#~ "δοκιμάστε πρώτα τις obfs4." diff --git a/docs/source/locale/es/LC_MESSAGES/features.po b/docs/source/locale/es/LC_MESSAGES/features.po index 85e0a68b..9497a22e 100644 --- a/docs/source/locale/es/LC_MESSAGES/features.po +++ b/docs/source/locale/es/LC_MESSAGES/features.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2021-09-09 19:15-0700\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-10-09 09:04+0000\n" "Last-Translator: Zuhualime Akoochimoya \n" -"Language-Team: none\n" "Language: es\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/features.rst:4 msgid "How OnionShare Works" @@ -55,10 +54,11 @@ msgid "" "or using something less secure like unencrypted email, depending on your " "`threat model `_." msgstr "" -"Usted es responsable de compartir de forma segura la URL y la clave privada " -"mediante un canal de comunicación de su elección, como mensajes de chat " -"cifrados, o usando algo menos seguro como un email sin cifrar, dependiendo " -"de su `modelo de amenaza `_." +"Usted es responsable de compartir de forma segura la URL y la clave " +"privada mediante un canal de comunicación de su elección, como mensajes " +"de chat cifrados, o usando algo menos seguro como un email sin cifrar, " +"dependiendo de su `modelo de amenaza `_." #: ../../source/features.rst:20 msgid "" @@ -67,10 +67,10 @@ msgid "" " Tor Browser will then prompt for the private key, which the people can " "also then copy and paste in." msgstr "" -"Las personas a quienes envíe la URL para copiarla y pegarla dentro de su `" -"Navegador Tor `_ para acceder al servicio " -"OnionShare. El Navegador Tor les pedirá la clave privada, que en ese momento " -"también pueden copiar y pegar." +"Las personas a quienes envíe la URL para copiarla y pegarla dentro de su " +"`Navegador Tor `_ para acceder al servicio " +"OnionShare. El Navegador Tor les pedirá la clave privada, que en ese " +"momento también pueden copiar y pegar." #: ../../source/features.rst:24 msgid "" @@ -79,10 +79,11 @@ msgid "" "until your laptop is unsuspended and on the internet again. OnionShare " "works best when working with people in real-time." msgstr "" -"Si ejecuta OnionShare en su portátil para enviar archivos a alguien, y antes " -"de que sean enviados la suspende, el servicio no estará disponible hasta que " -"su portátil deje de estar suspendida, y se conecte de nuevo a Internet. " -"OnionShare funciona mejor cuando trabaja con personas en tiempo real." +"Si ejecuta OnionShare en su portátil para enviar archivos a alguien, y " +"antes de que sean enviados la suspende, el servicio no estará disponible " +"hasta que su portátil deje de estar suspendida, y se conecte de nuevo a " +"Internet. OnionShare funciona mejor cuando trabaja con personas en tiempo" +" real." #: ../../source/features.rst:26 msgid "" @@ -92,11 +93,11 @@ msgid "" "Tor onion services too, it also protects your anonymity. See the " ":doc:`security design ` for more info." msgstr "" -"Como su propia computadora es el servidor web, *ningún tercero puede acceder " -"a nada de lo que pasa en OnionShare*, ni siquiera sus desarrolladores. Es " -"completamente privado. Y como OnionShare también está basado en los " -"servicios onion de Tor, también protege tu anonimato. Mira el :doc:`diseño " -"de seguridad ` para más información." +"Como su propia computadora es el servidor web, *ningún tercero puede " +"acceder a nada de lo que pasa en OnionShare*, ni siquiera sus " +"desarrolladores. Es completamente privado. Y como OnionShare también está" +" basado en los servicios onion de Tor, también protege tu anonimato. Mira" +" el :doc:`diseño de seguridad ` para más información." #: ../../source/features.rst:29 msgid "Share Files" @@ -109,9 +110,9 @@ msgid "" "share, and click \"Start sharing\"." msgstr "" "Puede usar OnionShare para enviar archivos y carpetas a las personas en " -"forma segura y anónima. Solo abra una pestaña para compartir, arrastra hacia " -"ella los archivos y carpetas que deseas compartir, y haz clic en \"Empezar a " -"compartir\"." +"forma segura y anónima. Solo abra una pestaña para compartir, arrastra " +"hacia ella los archivos y carpetas que deseas compartir, y haz clic en " +"\"Empezar a compartir\"." #: ../../source/features.rst:35 ../../source/features.rst:112 msgid "" @@ -131,10 +132,10 @@ msgid "" "box." msgstr "" "Tan pronto como alguien termine de descargar tus archivos, OnionShare " -"detendrá automáticamente al servidor, removiendo al sitio web de Internet. " -"Para permitirles descargarlos a múltiples personas, desmarca la casilla " -"\"Detener compartición después de que los archivos han sido enviados (" -"desmarca para permitir la descarga de archivos individuales)\"." +"detendrá automáticamente al servidor, removiendo al sitio web de " +"Internet. Para permitirles descargarlos a múltiples personas, desmarca la" +" casilla \"Detener compartición después de que los archivos han sido " +"enviados (desmarca para permitir la descarga de archivos individuales)\"." #: ../../source/features.rst:42 msgid "" @@ -168,9 +169,9 @@ msgid "" "encrypted messaging app." msgstr "" "Ahora que tienes un OnionShare, copia la dirección y la clave privada y " -"envíaselas a la persona que quieres que reciba los archivos. Si necesitan " -"permanecer seguros, o si la persona está expuesta a cualquier otro peligro, " -"usa una aplicación de mensajería cifrada." +"envíaselas a la persona que quieres que reciba los archivos. Si necesitan" +" permanecer seguros, o si la persona está expuesta a cualquier otro " +"peligro, usa una aplicación de mensajería cifrada." #: ../../source/features.rst:50 msgid "" @@ -178,10 +179,10 @@ msgid "" "with the private key, the files can be downloaded directly from your " "computer by clicking the \"Download Files\" link in the corner." msgstr "" -"Esa persona debe cargar luego la dirección en el Navegador Tor. Después de " -"iniciar sesión con la clave privada, los archivos pueden descargarse " -"directamente desde tu computadora haciendo clic en el vínculo \"Descargar " -"Archivos\" en la esquina." +"Esa persona debe cargar luego la dirección en el Navegador Tor. Después " +"de iniciar sesión con la clave privada, los archivos pueden descargarse " +"directamente desde tu computadora haciendo clic en el vínculo \"Descargar" +" Archivos\" en la esquina." #: ../../source/features.rst:55 msgid "Receive Files and Messages" @@ -306,10 +307,11 @@ msgid "" "OnionShare service. OnionShare does not add any safety mechanisms to " "protect your system from malicious files." msgstr "" -"De la misma manera que con adjuntos maliciosos en correos electrónicos, es " -"posible que alguien pudiera intentar atacar tu computadora subiendo a tu " -"servicio OnionShare un archivo malicioso. OnionShare no añade ningún " -"mecanismo de seguridad para proteger tu sistema contra archivos maliciosos." +"De la misma manera que con adjuntos maliciosos en correos electrónicos, " +"es posible que alguien pudiera intentar atacar tu computadora subiendo a " +"tu servicio OnionShare un archivo malicioso. OnionShare no añade ningún " +"mecanismo de seguridad para proteger tu sistema contra archivos " +"maliciosos." #: ../../source/features.rst:90 msgid "" @@ -344,9 +346,10 @@ msgid "" " and connected to the internet, and not on the one you use on a regular " "basis." msgstr "" -"Si quieres alojar tu propio buzón anónimo usando OnionShare, es recomendado " -"que lo hagas en una computadora dedicada y separada, que siempre esté " -"encendida y conectada a Internet, y no en la que usas regularmente." +"Si quieres alojar tu propio buzón anónimo usando OnionShare, es " +"recomendado que lo hagas en una computadora dedicada y separada, que " +"siempre esté encendida y conectada a Internet, y no en la que usas " +"regularmente." #: ../../source/features.rst:99 msgid "" @@ -355,9 +358,9 @@ msgid "" "public service (see :ref:`turn_off_private_key`). It's also a good idea " "to give it a custom title (see :ref:`custom_titles`)." msgstr "" -"Si tu intención es publicitar la dirección OnionShare en tu sitio web o tus " -"perfiles de redes sociales, guarda la pestaña (ver :ref:`save_tabs`) y " -"ejecútala como un servicio público (ver :ref:`turn_off_private_key`). " +"Si tu intención es publicitar la dirección OnionShare en tu sitio web o " +"tus perfiles de redes sociales, guarda la pestaña (ver :ref:`save_tabs`) " +"y ejecútala como un servicio público (ver :ref:`turn_off_private_key`). " "También es una buena idea darle un título personalizado (ver " ":ref:`custom_titles`)." @@ -414,17 +417,17 @@ msgid "" "However, this prevents third-party content from loading inside the web " "page." msgstr "" -"Por defecto, OnionShare te ayuda a asegurar tu sitio web estableciendo un " -"encabezado de `Política de Seguridad de Contenido `_ estricto. Sin embargo, esto evitará que el " -"contenido de terceros sea cargado dentro de la página web." +"Por defecto, OnionShare te ayuda a asegurar tu sitio web estableciendo un" +" encabezado de `Política de Seguridad de Contenido " +"`_ estricto. Sin " +"embargo, esto evitará que el contenido de terceros sea cargado dentro de " +"la página web." #: ../../source/features.rst:121 +#, fuzzy 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." +"JavaScript libraries from CDNs, you have two options:" msgstr "" "Si quieres cargar contenido desde sitios web de terceros, como recursoss " "o bibliotecas JavaScript desde CDNs, entonces debes marcar la casilla " @@ -432,11 +435,22 @@ msgstr "" "(permite a tu sitio web usar recursos de terceros)\" antes de iniciar el " "servicio." +#: ../../source/features.rst:123 +msgid "" +"You can disable sending a Content Security Policy header by checking the " +"\"Don't send Content Security Policy header (allows your website to use " +"third-party resources)\" box before starting the service." +msgstr "" + #: ../../source/features.rst:124 +msgid "You can send a custom Content Security Policy header." +msgstr "" + +#: ../../source/features.rst:127 msgid "Tips for running a website service" msgstr "Consejos para correr un servicio de sitio web" -#: ../../source/features.rst:126 +#: ../../source/features.rst:129 msgid "" "If you want to host a long-term website using OnionShare (meaning not " "just to quickly show someone something), it's recommended you do it on a " @@ -445,26 +459,27 @@ msgid "" " (see :ref:`save_tabs`) so you can resume the website with the same " "address if you close OnionShare and re-open it later." msgstr "" -"Si quieres alojar un sitio web a largo plazo usando OnionShare (que no sea " -"solo para mostrarle algo a alguien rápidamente), es recomendado que lo hagas " -"en una computadora separada y dedicada, que siempre esté encendida y " -"conectada a Internet, y no en la que usas regularmente. Guarda la pestaña (" -"mira :ref:`save_tabs`) con el fin de que puedas reanudar al sitio web con la " -"misma dirección, si cierras OnionShare y lo vuelves a iniciar más tarde." +"Si quieres alojar un sitio web a largo plazo usando OnionShare (que no " +"sea solo para mostrarle algo a alguien rápidamente), es recomendado que " +"lo hagas en una computadora separada y dedicada, que siempre esté " +"encendida y conectada a Internet, y no en la que usas regularmente. " +"Guarda la pestaña (mira :ref:`save_tabs`) con el fin de que puedas " +"reanudar al sitio web con la misma dirección, si cierras OnionShare y lo " +"vuelves a iniciar más tarde." -#: ../../source/features.rst:129 +#: ../../source/features.rst:132 msgid "" "If your website is intended for the public, you should run it as a public" " service (see :ref:`turn_off_private_key`)." msgstr "" -"Si planeas que tu sitio web sea visto por el público, deberías ejecutarlo " -"como servicio público (see :ref:`turn_off_private_key`)." +"Si planeas que tu sitio web sea visto por el público, deberías ejecutarlo" +" como servicio público (see :ref:`turn_off_private_key`)." -#: ../../source/features.rst:132 +#: ../../source/features.rst:135 msgid "Chat Anonymously" msgstr "Chat Anónimo" -#: ../../source/features.rst:134 +#: ../../source/features.rst:137 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\"." @@ -473,20 +488,20 @@ msgstr "" "anónimo y seguro, que no registra nada. Solo abre una pestaña de chat y " "haz clic en \"Iniciar servidor de chat\"." -#: ../../source/features.rst:138 +#: ../../source/features.rst:141 msgid "" "After you start the server, copy the OnionShare address and private key " "and send them 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 and private key." msgstr "" -"Después de iniciar el servidor, copia la dirección de OnionShare y la clave " -"privada y envíaselas a las personas que deseas en la sala de charla anónima. " -"Si es importante limitar exactamente quién puede unirse, usa una aplicación " -"de mensajería cifrada para enviar la dirección de OnionShare y la clave " -"privada." +"Después de iniciar el servidor, copia la dirección de OnionShare y la " +"clave privada y envíaselas a las personas que deseas en la sala de charla" +" anónima. Si es importante limitar exactamente quién puede unirse, usa " +"una aplicación de mensajería cifrada para enviar la dirección de " +"OnionShare y la clave privada." -#: ../../source/features.rst:143 +#: ../../source/features.rst:146 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 " @@ -498,7 +513,7 @@ msgstr "" "por lo que todo aquel que quiera participar debe ajustar su nivel de " "seguridad a 'Estándar' o 'Más Seguro' en vez de a 'El Más Seguro'." -#: ../../source/features.rst:146 +#: ../../source/features.rst:149 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 " @@ -511,7 +526,7 @@ msgstr "" "en absoluto, aún si otros ya estaban chateando en el cuarto, porque ese " "historial no es guardado en ningún lado." -#: ../../source/features.rst:152 +#: ../../source/features.rst:155 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." @@ -520,7 +535,7 @@ msgstr "" "cambiar su nombre a cualquier cosa, y no hay manera de confirmar la " "identidad de nadie." -#: ../../source/features.rst:155 +#: ../../source/features.rst:158 msgid "" "However, if you create an OnionShare chat room and securely send the " "address only to a small group of trusted friends using encrypted " @@ -532,11 +547,11 @@ msgstr "" " mensajes cifrados, entonces puedes estar razonablemente seguro que las " "personas que se unan a él son tus amigos." -#: ../../source/features.rst:158 +#: ../../source/features.rst:161 msgid "How is this useful?" msgstr "¿Cómo es que esto es útil?" -#: ../../source/features.rst:160 +#: ../../source/features.rst:163 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." @@ -545,7 +560,7 @@ msgstr "" "cifrada, ¿cuál es el punto de un cuarto de chat OnionShare? Deja menos " "rastros." -#: ../../source/features.rst:162 +#: ../../source/features.rst:165 msgid "" "If you for example send a message to a Signal group, a copy of your " "message ends up on each device (the smartphones, and computers if they " @@ -560,13 +575,13 @@ msgstr "" "mensaje termina en cada dispositivo (los teléfonos inteligentes y " "computadoras, si usan Signal para escritorio) de cada miembro del grupo. " "Incluso si la opción desaparición de mensajes está activada, es difícil " -"confirmar si todas las copias de los mensajes han sido eliminadas de todos " -"los dispositivos, y cualesquiera otros lugares (como bases de datos de " -"notificaciones) donde puedan haber sido guardados. Las salas de charla de " -"OnionShare no guardan los mensajes en ningún lado, de forma que este " -"problema se reduce al mínimo." +"confirmar si todas las copias de los mensajes han sido eliminadas de " +"todos los dispositivos, y cualesquiera otros lugares (como bases de datos" +" de notificaciones) donde puedan haber sido guardados. Las salas de " +"charla de OnionShare no guardan los mensajes en ningún lado, de forma que" +" este problema se reduce al mínimo." -#: ../../source/features.rst:165 +#: ../../source/features.rst:168 msgid "" "OnionShare chat rooms can also be useful for people wanting to chat " "anonymously and securely with someone without needing to create any " @@ -575,18 +590,18 @@ msgid "" "journalist to join the chat room, all without compromosing their " "anonymity." msgstr "" -"Las salas de charla de OnionShare también pueden ser útiles para personas " -"anónimas que quieran charlar en forma segura con alguien sin necesitar crear " -"alguna cuenta. Por ejemplo, una fuente puede enviar una dirección OnionShare " -"a un periodista usando una dirección de correo electrónico descartable, y " -"luego esperar a que el periodista se una a la sala de charla, todo eso sin " -"comprometer su anonimato." +"Las salas de charla de OnionShare también pueden ser útiles para personas" +" anónimas que quieran charlar en forma segura con alguien sin necesitar " +"crear alguna cuenta. Por ejemplo, una fuente puede enviar una dirección " +"OnionShare a un periodista usando una dirección de correo electrónico " +"descartable, y luego esperar a que el periodista se una a la sala de " +"charla, todo eso sin comprometer su anonimato." -#: ../../source/features.rst:169 +#: ../../source/features.rst:172 msgid "How does the encryption work?" msgstr "¿Cómo funciona el cifrado?" -#: ../../source/features.rst:171 +#: ../../source/features.rst:174 msgid "" "Because OnionShare relies on Tor onion services, connections between the " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " @@ -602,7 +617,7 @@ msgstr "" "cual lo envía luego a todos los otros miembros del cuarto de chat usando " "WebSockets, a través de sus conexiones onion E2EE." -#: ../../source/features.rst:173 +#: ../../source/features.rst:176 msgid "" "OnionShare doesn't implement any chat encryption on its own. It relies on" " the Tor onion service's encryption instead." @@ -942,3 +957,4 @@ msgstr "" #~ "OnionShare no almacenan ningún mensaje " #~ "en ningún lugar, por lo que el " #~ "problema se reduce al mínimo." + diff --git a/docs/source/locale/es/LC_MESSAGES/help.po b/docs/source/locale/es/LC_MESSAGES/help.po index c17a4004..805c1b47 100644 --- a/docs/source/locale/es/LC_MESSAGES/help.po +++ b/docs/source/locale/es/LC_MESSAGES/help.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-08-20 13:37-0700\n" -"PO-Revision-Date: 2021-09-13 10:46+0000\n" -"Last-Translator: Zuhualime Akoochimoya \n" +"PO-Revision-Date: 2022-01-21 19:12+0000\n" +"Last-Translator: Allan Nordhøy \n" "Language-Team: none\n" "Language: es\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.9-dev\n" +"X-Generator: Weblate 4.11-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -66,8 +66,8 @@ msgstr "" "Si no eres capaz de encontrar una solución, o deseas hacer una pregunta o " "sugerir una nueva característica, por favor `envía una cuestión " "`_. Esto requiere `" -"crear una cuenta en GitHub `_." +"crear una cuenta en GitHub `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" diff --git a/docs/source/locale/es/LC_MESSAGES/tor.po b/docs/source/locale/es/LC_MESSAGES/tor.po index 69c03121..a78d72f0 100644 --- a/docs/source/locale/es/LC_MESSAGES/tor.po +++ b/docs/source/locale/es/LC_MESSAGES/tor.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2021-09-09 19:15-0700\n" -"PO-Revision-Date: 2021-09-13 10:46+0000\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" +"PO-Revision-Date: 2022-01-20 11:57+0000\n" "Last-Translator: Zuhualime Akoochimoya \n" "Language-Team: none\n" "Language: es\n" @@ -16,8 +16,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"X-Generator: Weblate 4.11-dev\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/tor.rst:2 msgid "Connecting to Tor" @@ -25,15 +25,16 @@ msgstr "Conectar a Tor" #: ../../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." +"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in" +" the bottom right of the OnionShare window to open the Tor Settings tab." msgstr "" "Elige una manera de conectar OnionShare a Tor haciendo clic en el ícono " -"\"⚙\" abajo a la derecha de la ventana OnionShare, para ir a sus ajustes." +"cebolla de Tor, abajo a la derecha de la ventana OnionShare, para ir a sus " +"ajustes." #: ../../source/tor.rst:9 -msgid "Use the ``tor`` bundled with OnionShare" -msgstr "Usar el ``tor`` incluido con OnionShare" +msgid "Use the Tor version built into OnionShare" +msgstr "Usa la versión de Tor incorporada dentro de OnionShare" #: ../../source/tor.rst:11 msgid "" @@ -57,10 +58,63 @@ msgstr "" "``tor`` de sistema, por su cuenta." #: ../../source/tor.rst:18 +msgid "Getting Around Censorship" +msgstr "Pasando por alto a la Censura" + +#: ../../source/tor.rst:20 +msgid "" +"If your access to the internet is censored, you can configure OnionShare " +"to connect to the Tor network using `Tor bridges `_. If OnionShare connects to Tor without " +"one, you don't need to use a bridge." +msgstr "" +"Si tu acceso a Internet está censurado, puedes configurar OnionShare para " +"conectarse a la red Tor usando `puentes Tor `_. Si OnionShare se conecta exitosamente a Tor, no necesitas " +"usar un puente." + +#: ../../source/tor.rst:22 +msgid "" +"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor" +" version built into OnionShare\" and check the \"Use a bridge\" checkbox." +msgstr "" +"Para usar un puente, abre la pestaña de Configuraciones de Tor. Debes " +"seleccionar \"Usar la versión de Tor incorporada dentro de OnionShare\" y " +"marcar la casilla \"Usar un puente\"." + +#: ../../source/tor.rst:25 +msgid "" +"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges " +"is recommended over using `meek-azure`." +msgstr "" +"Primero intenta usar un puente incorporado. Usar puentes `obfs4` o " +"`snowflake` es recomendado, en vez de usar `meek-azure`." + +#: ../../source/tor.rst:29 +msgid "" +"If using a built-in bridge doesn't work, you can request a bridge from " +"torproject.org. You will have to solve a CAPTCHA in order to request a " +"bridge. (This makes it more difficult for governments or ISPs to block " +"access to Tor bridges.)" +msgstr "" +"Si usar un puente incorporado no funciona, puedes solicitar un puente de " +"torproject.org. Tendrás que resolver un CAPTCHA a los efectos de solicitar " +"un puente. (Esto hace que sea más difícil a los gobiernos o ISPs bloquear el " +"acceso a los puentes Tor.)" + +#: ../../source/tor.rst:33 +msgid "" +"You also have the option of using a bridge that you learned about from a " +"trusted source." +msgstr "" +"También tienes la opción de usar un puente del que te hayas enterado por una " +"fuente confiable." + +#: ../../source/tor.rst:36 msgid "Attempt auto-configuration with Tor Browser" msgstr "Intentar configuración automática con el Navegador Tor" -#: ../../source/tor.rst:20 +#: ../../source/tor.rst:38 msgid "" "If you have `downloaded the Tor Browser `_ " "and don't want two ``tor`` processes running, you can use the ``tor`` " @@ -72,11 +126,11 @@ msgstr "" " del Navegador Tor. Ten en cuenta que necesitas mantenerlo abierto en " "segundo plano mientras estés usando OnionShare para que esto funcione." -#: ../../source/tor.rst:24 +#: ../../source/tor.rst:42 msgid "Using a system ``tor`` in Windows" msgstr "Usar un ``tor`` de sistema en Windows" -#: ../../source/tor.rst:26 +#: ../../source/tor.rst:44 msgid "" "This is fairly advanced. You'll need to know how edit plaintext files and" " do stuff as an administrator." @@ -84,7 +138,7 @@ msgstr "" "Esto es bastante avanzado. Necesitarás saber cómo editar archivos de " "texto y hacer cosas como administrador." -#: ../../source/tor.rst:28 +#: ../../source/tor.rst:46 msgid "" "Download the Tor Windows Expert Bundle `from " "`_. Extract the compressed file" @@ -97,7 +151,7 @@ msgstr "" "Renombra la carpeta extraida con las subcarpetas ``Data`` y ``Tor`` en " "ella a ``tor-win32``." -#: ../../source/tor.rst:32 +#: ../../source/tor.rst:50 msgid "" "Make up a control port password. (Using 7 words in a sequence like " "``comprised stumble rummage work avenging construct volatile`` is a good " @@ -111,7 +165,7 @@ msgstr "" "comando (``cmd``) como administrador, y usa ``tor.exe --hash-password`` " "para generar un hash de tu contraseña. Por ejemplo::" -#: ../../source/tor.rst:39 +#: ../../source/tor.rst:57 msgid "" "The hashed password output is displayed after some warnings (which you " "can ignore). In the case of the above example, it is " @@ -121,7 +175,7 @@ msgstr "" " (que puedes ignorar). En el caso del ejemplo de arriba, es " "``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``." -#: ../../source/tor.rst:41 +#: ../../source/tor.rst:59 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 " @@ -131,7 +185,7 @@ msgstr "" "win32\\torrc`` y escríbelo en él, reemplazando el " "``HashedControlPassword`` con el que acabas de generar:" -#: ../../source/tor.rst:46 +#: ../../source/tor.rst:64 msgid "" "In your administrator command prompt, install ``tor`` as a service using " "the appropriate ``torrc`` file you just created (as described in " @@ -144,11 +198,11 @@ msgstr "" "``_). De esta" " manera::" -#: ../../source/tor.rst:50 +#: ../../source/tor.rst:68 msgid "You are now running a system ``tor`` process in Windows!" msgstr "¡Ahora estás ejecutando un proceso ``tor`` de sistema en Windows!" -#: ../../source/tor.rst:52 +#: ../../source/tor.rst:70 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using control port\", and " @@ -166,11 +220,11 @@ msgstr "" "que elegiste arriba. Haz clic en el botón \"Probar Conexión a Tor\". Si " "todo va bien, deberías ver \"Conectado al controlador Tor\"." -#: ../../source/tor.rst:61 +#: ../../source/tor.rst:79 msgid "Using a system ``tor`` in macOS" msgstr "Usar un ``tor`` de sistema en macOS" -#: ../../source/tor.rst:63 +#: ../../source/tor.rst:81 msgid "" "First, install `Homebrew `_ if you don't already have " "it, and then install Tor::" @@ -178,15 +232,15 @@ msgstr "" "Primero, instala `Homebrew `_ si es que todavía no lo " "tienes, y luego instala Tor::" -#: ../../source/tor.rst:67 +#: ../../source/tor.rst:85 msgid "Now configure Tor to allow connections from OnionShare::" msgstr "Ahora configura Tor para permitir conexiones desde OnionShare::" -#: ../../source/tor.rst:74 +#: ../../source/tor.rst:92 msgid "And start the system Tor service::" msgstr "E inicia el servicio Tor de sistema::" -#: ../../source/tor.rst:78 +#: ../../source/tor.rst:96 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using socket file\", and " @@ -201,15 +255,15 @@ msgstr "" "autenticación de Tor\", elige \"Sin autenticación, o autenticación por " "cookies\". Haz clic en el botón \"Probar Conexión a Tor\"." -#: ../../source/tor.rst:84 ../../source/tor.rst:104 +#: ../../source/tor.rst:102 ../../source/tor.rst:122 msgid "If all goes well, you should see \"Connected to the Tor controller\"." msgstr "Si todo va bien, deberías ver \"Conectado al controlador Tor\"." -#: ../../source/tor.rst:87 +#: ../../source/tor.rst:105 msgid "Using a system ``tor`` in Linux" msgstr "Usando un ``tor`` de sistema en Linux" -#: ../../source/tor.rst:89 +#: ../../source/tor.rst:107 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 " @@ -221,7 +275,7 @@ msgstr "" "oficial `_ del Tor " "Project." -#: ../../source/tor.rst:91 +#: ../../source/tor.rst:109 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 " @@ -231,7 +285,7 @@ msgstr "" "caso de Debian y Ubuntu, ``debian-tor``) y configura OnionShare para " "conectarse al archivo socket de control de tu ``tor`` de sistema." -#: ../../source/tor.rst:93 +#: ../../source/tor.rst:111 msgid "" "Add your user to the ``debian-tor`` group by running this command " "(replace ``username`` with your actual username)::" @@ -239,7 +293,7 @@ msgstr "" "Agrega tu usuario al grupo ``debian-tor`` ejecutando este comando " "(reemplaza ``username`` con tu nombre de usuario real)::" -#: ../../source/tor.rst:97 +#: ../../source/tor.rst:115 msgid "" "Reboot your computer. After it boots up again, open OnionShare and click " "the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" " @@ -255,38 +309,6 @@ msgstr "" " \"Sin autenticación, o autenticación por cookies\". Haz clic en el botón" " \"Probar Conexión a Tor\"." -#: ../../source/tor.rst:107 -msgid "Using Tor bridges" -msgstr "Usar puentes Tor" - -#: ../../source/tor.rst:109 -msgid "" -"If your access to the internet is censored, you can configure OnionShare " -"to connect to the Tor network using `Tor bridges " -"`_. If OnionShare " -"connects to Tor without one, you don't need to use a bridge." -msgstr "" -"Si tu acceso a Internet está censurado, puedes configurar OnionShare para " -"conectarse a la red Tor usando `puentes Tor `_. Si OnionShare se conecta exitosamente a Tor, no " -"necesitas usar un puente." - -#: ../../source/tor.rst:111 -msgid "To configure bridges, click the \"⚙\" icon in OnionShare." -msgstr "Para configurar puentes, haz clic en el ícono \"⚙\" de OnionShare." - -#: ../../source/tor.rst:113 -msgid "" -"You can use the built-in obfs4 pluggable transports, the built-in " -"meek_lite (Azure) pluggable transports, or custom bridges, which you can " -"obtain from Tor's `BridgeDB `_. If you " -"need to use a bridge, try the built-in obfs4 ones first." -msgstr "" -"Puedes usar los transportes conectables obfs4 o meek_lite (Azure) " -"incorporados, o puentes personalizados, los cuales puedes obtener de la " -"`BridgeDB `_ de Tor. Si necesitas usar " -"un puente, intenta primero con los obfs4 incorporados." - #~ msgid "Using a system Tor in Mac OS X" #~ msgstr "Usando un Tor de sistema en macOS" @@ -445,3 +467,30 @@ msgstr "" #~ "Renómbrala a ``tor-win32``; dentro de" #~ " esa carpeta están las subcarpetas " #~ "``Data`` y ``Tor``." + +#~ msgid "Use the ``tor`` bundled with OnionShare" +#~ msgstr "Usar el ``tor`` incluido con OnionShare" + +#~ msgid "Using Tor bridges" +#~ msgstr "Usar puentes Tor" + +#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare." +#~ msgstr "Para configurar puentes, haz clic en el ícono \"⚙\" de OnionShare." + +#~ msgid "" +#~ "You can use the built-in obfs4 " +#~ "pluggable transports, the built-in " +#~ "meek_lite (Azure) pluggable transports, or " +#~ "custom bridges, which you can obtain " +#~ "from Tor's `BridgeDB " +#~ "`_. If you need " +#~ "to use a bridge, try the built-" +#~ "in obfs4 ones first." +#~ msgstr "" +#~ "Puedes usar los transportes conectables " +#~ "obfs4 o meek_lite (Azure) incorporados, " +#~ "o puentes personalizados, los cuales " +#~ "puedes obtener de la `BridgeDB " +#~ "`_ de Tor. Si " +#~ "necesitas usar un puente, intenta " +#~ "primero con los obfs4 incorporados." diff --git a/docs/source/locale/fr/LC_MESSAGES/advanced.po b/docs/source/locale/fr/LC_MESSAGES/advanced.po index 91db3662..3b3db2ba 100644 --- a/docs/source/locale/fr/LC_MESSAGES/advanced.po +++ b/docs/source/locale/fr/LC_MESSAGES/advanced.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-10-23 18:43+0000\n" "Last-Translator: aezjrareareare \n" -"Language-Team: none\n" "Language: fr\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n > 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/advanced.rst:2 msgid "Advanced Usage" @@ -35,11 +34,11 @@ msgid "" "useful if you want to host a website available from the same OnionShare " "address even if you reboot your computer." msgstr "" -"Tout dans OnionShare est temporaire par défaut. Si vous fermez un onglet, " -"son adresse n'existe plus et ne pourra plus être utilisée. Dans certains " -"cas, vous voudrez qu'un service OnionShare soit persistent. Cela est utile " -"si vous souhaitez héberger un site web dont l'adresse OnionShare reste " -"identique même après un redémarrage de votre ordinateur." +"Tout dans OnionShare est temporaire par défaut. Si vous fermez un onglet," +" son adresse n'existe plus et ne pourra plus être utilisée. Dans certains" +" cas, vous voudrez qu'un service OnionShare soit persistent. Cela est " +"utile si vous souhaitez héberger un site web dont l'adresse OnionShare " +"reste identique même après un redémarrage de votre ordinateur." #: ../../source/advanced.rst:13 msgid "" @@ -47,16 +46,16 @@ msgid "" "open it when I open OnionShare\" box before starting the server. When a " "tab is saved a purple pin icon appears to the left of its server status." msgstr "" -"Pour rendre un onglet persistant, cocher la case \"Enregistrer cet onglet et " -"l’ouvrir automatiquement quand j’ouvre OnionShare\" avant de démarrer le " -"serveur. Quand un onglet est sauvegardé un icône d'épingle violet apparaît à " -"la gauche du statut du serveur." +"Pour rendre un onglet persistant, cocher la case \"Enregistrer cet onglet" +" et l’ouvrir automatiquement quand j’ouvre OnionShare\" avant de démarrer" +" le serveur. Quand un onglet est sauvegardé un icône d'épingle violet " +"apparaît à la gauche du statut du serveur." #: ../../source/advanced.rst:18 msgid "" "When you quit OnionShare and then open it again, your saved tabs will " "start opened. You'll have to manually start each service, but when you do" -" they will start with the same OnionShare address and password." +" they will start with the same OnionShare address and private key." msgstr "" #: ../../source/advanced.rst:21 @@ -68,39 +67,59 @@ msgstr "" "ognon sera stocké dans votre ordinateur avec vos paramètres OnionShare." #: ../../source/advanced.rst:26 -msgid "Turn Off Passwords" +msgid "Turn Off Private Key" msgstr "" #: ../../source/advanced.rst:28 msgid "" -"By default, all OnionShare services are protected with the username " -"``onionshare`` and a randomly-generated password. If someone takes 20 " -"wrong guesses at the password, your onion service is automatically " -"stopped to prevent a brute force attack against the OnionShare service." +"By default, all OnionShare services are protected with a private key, " +"which Tor calls \"client authentication\"." msgstr "" -#: ../../source/advanced.rst:31 +#: ../../source/advanced.rst:30 +msgid "" +"When browsing to an OnionShare service in Tor Browser, Tor Browser will " +"prompt for the private key to be entered." +msgstr "" + +#: ../../source/advanced.rst:32 msgid "" "Sometimes you might want your OnionShare service to be accessible to the " "public, like if you want to set up an OnionShare receive service so the " "public can securely and anonymously send you files. In this case, it's " -"better to disable the password altogether. If you don't do this, someone " -"can force your server to stop just by making 20 wrong guesses of your " -"password, even if they know the correct password." +"better to disable the private key altogether." msgstr "" #: ../../source/advanced.rst:35 msgid "" -"To turn off the password for any tab, just check the \"Don't use a " -"password\" box before starting the server. Then the server will be public" -" and won't have a password." +"To turn off the private key for any tab, check the \"This is a public " +"OnionShare service (disables private key)\" box before starting the " +"server. Then the server will be public and won't need a private key to " +"view in Tor Browser." 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" msgstr "Programmation horaire" -#: ../../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 " @@ -108,26 +127,27 @@ msgid "" "scheduled time\", \"Stop onion service at scheduled time\", or both, and " "set the respective desired dates and times." msgstr "" -"OnionShare permet de planifier quand un service doit démarrer ou s'arrêter. " -"Avant de démarrer un serveur, cliquer \"Afficher les paramètres avancés\" " -"dans l'onglet et cocher une ou les deux cases \"Démarrer un service onion à " -"une heure prédéterminée\" ou \" Arrêter un service onion à une heure " -"prédéterminée\", et définissez les dates et heures souhaitées." +"OnionShare permet de planifier quand un service doit démarrer ou " +"s'arrêter. Avant de démarrer un serveur, cliquer \"Afficher les " +"paramètres avancés\" dans l'onglet et cocher une ou les deux cases " +"\"Démarrer un service onion à une heure prédéterminée\" ou \" Arrêter un " +"service onion à une heure prédéterminée\", et définissez les dates et " +"heures souhaitées." -#: ../../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." msgstr "" -"Si vous paramétrez un service pour qu'il démarre dans le futur, quand vous " -"cliquer le bouton \"Commencer le partage\", un compte à rebours s'affichera " -"jusqu'au démarrage du service. Si vous le paramétrez pour qu'il s'arrête " -"dans le futur, après son démarrage un compte à rebours jusqu'à son arrêt " -"automatique s'affichera." +"Si vous paramétrez un service pour qu'il démarre dans le futur, quand " +"vous cliquer le bouton \"Commencer le partage\", un compte à rebours " +"s'affichera jusqu'au démarrage du service. Si vous le paramétrez pour " +"qu'il s'arrête dans le futur, après son démarrage un compte à rebours " +"jusqu'à son arrêt automatique s'affichera." -#: ../../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 " @@ -136,30 +156,30 @@ msgid "" msgstr "" "**Planifier le démarrage automatique d'un service OnionShare peut être " "utilisé comme une veille automatique**, le service deviendra public à un " -"moment choisis dans le futur si quelque chose vous arrive. Si rien ne vous " -"arrive, vous pouvez annuler le service avant qu'il ne se lance." +"moment choisis dans le futur si quelque chose vous arrive. Si rien ne " +"vous arrive, vous pouvez annuler le service avant qu'il ne se lance." -#: ../../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 " +"making sure they're not available on the internet for more than a few " "days." msgstr "" -#: ../../source/advanced.rst:56 +#: ../../source/advanced.rst:67 msgid "Command-line Interface" msgstr "Interface en ligne de commande" -#: ../../source/advanced.rst:58 +#: ../../source/advanced.rst:69 msgid "" "In addition to its graphical interface, OnionShare has a command-line " "interface." msgstr "" -"En plus de son interface graphique, OnionShare dispose d'une interface en " -"ligne de commande." +"En plus de son interface graphique, OnionShare dispose d'une interface en" +" ligne de commande." -#: ../../source/advanced.rst:60 +#: ../../source/advanced.rst:71 msgid "" "You can install just the command-line version of OnionShare using " "``pip3``::" @@ -167,79 +187,47 @@ msgstr "" "Vous pouvez installez uniquement la version en ligne de commande " "d'OnionShare en utilisant ``pip3``::" -#: ../../source/advanced.rst:64 +#: ../../source/advanced.rst:75 msgid "" "Note that you will also need the ``tor`` package installed. In macOS, " "install it with: ``brew install tor``" msgstr "" -"Notez que vous aurez aussi besoin d'installer le paquet ``tor``. Sur macOS, " -"installez le avec : ``brew install tor``" +"Notez que vous aurez aussi besoin d'installer le paquet ``tor``. Sur " +"macOS, installez le avec : ``brew install tor``" -#: ../../source/advanced.rst:66 +#: ../../source/advanced.rst:77 msgid "Then run it like this::" msgstr "Puis lancez le avec ::" -#: ../../source/advanced.rst:70 +#: ../../source/advanced.rst:81 +msgid "" +"For information about installing it on different operating systems, see " +"the `CLI readme file " +"`_ " +"in the git repository." +msgstr "" + +#: ../../source/advanced.rst:83 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 "" -"Si vous installez OnionShare en utilisant le paquet Linux Snapcraft, vous " -"pouvez vous contentez de lancer ``onionshare.cli`` pour accéder à " +"Si vous installez OnionShare en utilisant le paquet Linux Snapcraft, vous" +" pouvez vous contentez de lancer ``onionshare.cli`` pour accéder à " "l'interface en ligne de commande." -#: ../../source/advanced.rst:73 +#: ../../source/advanced.rst:86 msgid "Usage" msgstr "Utilisation" -#: ../../source/advanced.rst:75 +#: ../../source/advanced.rst:88 msgid "" "You can browse the command-line documentation by running ``onionshare " "--help``::" msgstr "" -"Vous pouvez consultez la documentation de l'interface en ligne de commande " -"en lançant ``onionshare --help``::" - -#: ../../source/advanced.rst:132 -msgid "Legacy Addresses" -msgstr "" - -#: ../../source/advanced.rst:134 -msgid "" -"OnionShare uses v3 Tor onion services by default. These are modern onion " -"addresses that have 56 characters, for example::" -msgstr "" - -#: ../../source/advanced.rst:139 -msgid "" -"OnionShare still has support for v2 onion addresses, the old type of " -"onion addresses that have 16 characters, for example::" -msgstr "" - -#: ../../source/advanced.rst:143 -msgid "" -"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " -"not recommended, as v3 onion addresses are more secure." -msgstr "" - -#: ../../source/advanced.rst:145 -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 "" - -#: ../../source/advanced.rst:150 -msgid "" -"Tor Project plans to `completely deprecate v2 onion services " -"`_ on October 15, " -"2021, and legacy onion services will be removed from OnionShare before " -"then." -msgstr "" +"Vous pouvez consultez la documentation de l'interface en ligne de " +"commande en lançant ``onionshare --help``::" #~ msgid "Make a symbolic link to the OnionShare command line binary line this::" #~ msgstr "" @@ -439,3 +427,109 @@ msgstr "" #~ " services will soon be removed from" #~ " OnionShare as well." #~ msgstr "" + +#~ msgid "" +#~ "When you quit OnionShare and then " +#~ "open it again, your saved tabs " +#~ "will start opened. You'll have to " +#~ "manually start each service, but when" +#~ " you do they will start with " +#~ "the same OnionShare address and " +#~ "password." +#~ msgstr "" + +#~ msgid "Turn Off Passwords" +#~ msgstr "" + +#~ msgid "" +#~ "By default, all OnionShare services are" +#~ " protected with the username ``onionshare``" +#~ " and a randomly-generated password. " +#~ "If someone takes 20 wrong guesses " +#~ "at the password, your onion service " +#~ "is automatically stopped to prevent a" +#~ " brute force attack against the " +#~ "OnionShare service." +#~ msgstr "" + +#~ msgid "" +#~ "Sometimes you might want your OnionShare" +#~ " service to be accessible to the " +#~ "public, like if you want to set" +#~ " up an OnionShare receive service so" +#~ " the public can securely and " +#~ "anonymously send you files. In this " +#~ "case, it's better to disable the " +#~ "password altogether. If you don't do " +#~ "this, someone can force your server " +#~ "to stop just by making 20 wrong" +#~ " guesses of your password, even if" +#~ " they know the correct password." +#~ msgstr "" + +#~ 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 "" + +#~ 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 "" + +#~ msgid "Legacy Addresses" +#~ msgstr "" + +#~ msgid "" +#~ "OnionShare uses v3 Tor onion services" +#~ " by default. These are modern onion" +#~ " addresses that have 56 characters, " +#~ "for example::" +#~ msgstr "" + +#~ msgid "" +#~ "OnionShare still has support for v2 " +#~ "onion addresses, the old type of " +#~ "onion addresses that have 16 characters," +#~ " for example::" +#~ msgstr "" + +#~ msgid "" +#~ "OnionShare calls v2 onion addresses " +#~ "\"legacy addresses\", and they are not" +#~ " recommended, as v3 onion addresses " +#~ "are more secure." +#~ msgstr "" + +#~ 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 "" + +#~ msgid "" +#~ "Tor Project plans to `completely " +#~ "deprecate v2 onion services " +#~ "`_ on" +#~ " October 15, 2021, and legacy onion" +#~ " services will be removed from " +#~ "OnionShare before then." +#~ msgstr "" + diff --git a/docs/source/locale/fr/LC_MESSAGES/develop.po b/docs/source/locale/fr/LC_MESSAGES/develop.po index 4411341d..d43c9e72 100644 --- a/docs/source/locale/fr/LC_MESSAGES/develop.po +++ b/docs/source/locale/fr/LC_MESSAGES/develop.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-10-24 21:38+0000\n" "Last-Translator: aezjrareareare \n" -"Language-Team: none\n" "Language: fr\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n > 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/develop.rst:2 msgid "Developing OnionShare" @@ -40,13 +39,13 @@ msgid "" msgstr "" "OnionShare dipose d'une équipe Keybase ouverte pour discuter du projet, " "poser des questions, partager des idées et concents, et concevoir les " -"évolutions à venir. (C'est aussi une manière facile d'envoyer des messages " -"personnels chiffrés de bout-en-bout à d'autres personnes de la communauté " -"OnionShare, comme des adresses OnionShare.) Pour utiliser Keybase, " -"télécharger l'`application Keybase `_, créer un " -"compte, et `rejoignez cette équipe `_. " -"Dans l'application, allez à \"Teams\", cliquer sur \"Join a Team\", et " -"écrivez \"onionshare\"." +"évolutions à venir. (C'est aussi une manière facile d'envoyer des " +"messages personnels chiffrés de bout-en-bout à d'autres personnes de la " +"communauté OnionShare, comme des adresses OnionShare.) Pour utiliser " +"Keybase, télécharger l'`application Keybase " +"`_, créer un compte, et `rejoignez cette " +"équipe `_. Dans l'application, allez " +"à \"Teams\", cliquer sur \"Join a Team\", et écrivez \"onionshare\"." #: ../../source/develop.rst:12 msgid "" @@ -54,9 +53,9 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"OnionShare a aussi une `liste de diffusion `_ pour permettre aux développeurs et concepteurs " -"de discuter du projet." +"OnionShare a aussi une `liste de diffusion " +"`_ pour permettre " +"aux développeurs et concepteurs de discuter du projet." #: ../../source/develop.rst:15 msgid "Contributing Code" @@ -65,7 +64,7 @@ msgstr "Contribuer au code" #: ../../source/develop.rst:17 msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" #: ../../source/develop.rst:19 @@ -73,7 +72,7 @@ msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" @@ -83,10 +82,10 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Quand vous êtes prêt à contribuer au code, faites une demande d'extraction " -"dans le répertoire GitHub et un des mainteneurs du projet l'évaluera et si " -"possible posera des questions, demanderas des changements, la rejettera, ou " -"la fusionnera dans le projet." +"Quand vous êtes prêt à contribuer au code, faites une demande " +"d'extraction dans le répertoire GitHub et un des mainteneurs du projet " +"l'évaluera et si possible posera des questions, demanderas des " +"changements, la rejettera, ou la fusionnera dans le projet." #: ../../source/develop.rst:27 msgid "Starting Development" @@ -95,7 +94,7 @@ msgstr "Commencer le développement" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " @@ -109,8 +108,8 @@ msgid "" "source tree." msgstr "" "Ces fichiers contiennent les instructions techniques nécessaires et les " -"commandes nécessaires pour installer les dépendances pour votre plateforme, " -"et pour faire fonctionner OnionShare depuis les sources." +"commandes nécessaires pour installer les dépendances pour votre " +"plateforme, et pour faire fonctionner OnionShare depuis les sources." #: ../../source/develop.rst:35 msgid "Debugging tips" @@ -128,20 +127,21 @@ msgid "" "initialized, when events occur (like buttons clicked, settings saved or " "reloaded), and other debug info. For example::" msgstr "" -"Quand vous développez, il est pratique de faire tourner OnionShare depuis un " -"terminal et d'ajouter le paramètre ``--verbose`` (ou ``-v``) à la commande. " -"Cela affiche de nombreux messages utiles dans le terminal, comme le moment " -"où certains objets sont initialisés, quand des évènements se produisent (" -"comme des boutons qui sont cliqués, des paramètres qui sont sauvegardés ou " -"rechargés), et d'autres information de débogage. Par exemple ::" +"Quand vous développez, il est pratique de faire tourner OnionShare depuis" +" un terminal et d'ajouter le paramètre ``--verbose`` (ou ``-v``) à la " +"commande. Cela affiche de nombreux messages utiles dans le terminal, " +"comme le moment où certains objets sont initialisés, quand des évènements" +" se produisent (comme des boutons qui sont cliqués, des paramètres qui " +"sont sauvegardés ou rechargés), et d'autres information de débogage. Par " +"exemple ::" #: ../../source/develop.rst:117 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" msgstr "" -"Vous pouvez rajouter vos propres messages de débogage en activant la méthode " -"``Common.log`` depuis ``onionshare/common.py``. Par exemple ::" +"Vous pouvez rajouter vos propres messages de débogage en activant la " +"méthode ``Common.log`` depuis ``onionshare/common.py``. Par exemple ::" #: ../../source/develop.rst:121 msgid "" @@ -149,8 +149,8 @@ msgid "" "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" -"Cela peut être utilise quand on apprend la succession des évènements qui se " -"produisent lorsque l'on utilise OnionShare, ou la valeur de certaines " +"Cela peut être utilise quand on apprend la succession des évènements qui " +"se produisent lorsque l'on utilise OnionShare, ou la valeur de certaines " "variables avant et après qu'elles aient été manipulées." #: ../../source/develop.rst:124 @@ -163,22 +163,22 @@ msgid "" "altogether during development. You can do this with the ``--local-only`` " "flag. For example::" msgstr "" -"Tor est lent, et il est souvent pratique d'éviter de démarrer les services " -"ognons durant le développement. Vous pouvez faire ça avec le paramètre " -"``--local-only``. Par exemple ::" +"Tor est lent, et il est souvent pratique d'éviter de démarrer les " +"services ognons durant le développement. Vous pouvez faire ça avec le " +"paramètre ``--local-only``. Par exemple ::" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:165 msgid "" -"In this case, you load the URL ``http://onionshare:train-" -"system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" -" using the Tor Browser." +"In this case, you load the URL ``http://127.0.0.1:17641`` in a normal " +"web-browser like Firefox, instead of using the Tor Browser. The private " +"key is not actually needed in local-only mode, so you can ignore it." msgstr "" -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:168 msgid "Contributing Translations" msgstr "Contribuer aux traductions" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:170 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -189,51 +189,51 @@ msgstr "" "Aidez à rendre OnionShare plus facile à utiliser, plus familier et plus " "accueillant pour les gens en le traduisant sur `Hosted Weblate " "`_. Garder toujours le " -"terme \"OnionShare\" en lettre latine, et utiliser \"OnionShare (nom local)\"" -" si nécessaire." +"terme \"OnionShare\" en lettre latine, et utiliser \"OnionShare (nom " +"local)\" si nécessaire." -#: ../../source/develop.rst:171 +#: ../../source/develop.rst:172 msgid "To help translate, make a Hosted Weblate account and start contributing." msgstr "Pour aider à traduire, créez un compte Hosted Weblate et contribuer." -#: ../../source/develop.rst:174 +#: ../../source/develop.rst:175 msgid "Suggestions for Original English Strings" msgstr "Suggestions pour les lignes anglaises d'origine" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:177 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." msgstr "" -"Parfois les lignes anglaises de base sont fausses, ou ne correspondent pas " -"entre l'application et la documentation." +"Parfois les lignes anglaises de base sont fausses, ou ne correspondent " +"pas entre l'application et la documentation." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:179 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " "developers see the suggestion, and can potentially modify the string via " "the usual code review processes." msgstr "" -"Classer les améliorations sur les lignes sources en ajoutant @kingu à votre " -"commentaire Weblate, ou en ouvrant une \"issue\" GitHub ou requête " +"Classer les améliorations sur les lignes sources en ajoutant @kingu à " +"votre commentaire Weblate, ou en ouvrant une \"issue\" GitHub ou requête " "d'extraction. La dernière solution garanti que tout les développeurs en " -"amont voient la suggestion, et puisse potentiellement modifier la ligne à " -"travers les processus de vérification du code habituel." +"amont voient la suggestion, et puisse potentiellement modifier la ligne à" +" travers les processus de vérification du code habituel." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:183 msgid "Status of Translations" msgstr "État des traductions" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:184 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Voilà l'état actuel des traductions. Si vous voulez commencer une traduction " -"dans une nouvelle langue, merci d'écrire à la liste de diffusion : " -"onionshare-dev@lists.riseup.net" +"Voilà l'état actuel des traductions. Si vous voulez commencer une " +"traduction dans une nouvelle langue, merci d'écrire à la liste de " +"diffusion : onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" @@ -450,3 +450,42 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "" + +#~ msgid "" +#~ "OnionShare source code is to be " +#~ "found in this Git repository: " +#~ "https://github.com/micahflee/onionshare" +#~ msgstr "" + +#~ msgid "" +#~ "If you'd like to contribute code " +#~ "to OnionShare, it helps to join " +#~ "the Keybase team and ask questions " +#~ "about what you're thinking of working" +#~ " on. You should also review all " +#~ "of the `open issues " +#~ "`_ on " +#~ "GitHub to see if there are any " +#~ "you'd like to tackle." +#~ msgstr "" + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" + +#~ msgid "" +#~ "In this case, you load the URL " +#~ "``http://onionshare:train-system@127.0.0.1:17635`` in " +#~ "a normal web-browser like Firefox, " +#~ "instead of using the Tor Browser." +#~ msgstr "" + diff --git a/docs/source/locale/fr/LC_MESSAGES/features.po b/docs/source/locale/fr/LC_MESSAGES/features.po index 68eecf05..31f76aa0 100644 --- a/docs/source/locale/fr/LC_MESSAGES/features.po +++ b/docs/source/locale/fr/LC_MESSAGES/features.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-10-24 21:38+0000\n" "Last-Translator: aezjrareareare \n" -"Language-Team: none\n" "Language: fr\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n > 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/features.rst:4 msgid "How OnionShare Works" @@ -30,95 +29,104 @@ msgid "" "`_." msgstr "" "Les serveurs web sont démarrés automatiquement sur votre ordinateur et " -"rendus accessibles à autrui en tant que `service ognon `_ `Tor `_ ." +"rendus accessibles à autrui en tant que `service ognon " +"`_ `Tor " +"`_ ." #: ../../source/features.rst:8 -msgid "" -"By default, OnionShare web addresses are protected with a random " -"password. A typical OnionShare address might look something like this::" +msgid "By default, OnionShare web addresses are protected with a private key." msgstr "" -#: ../../source/features.rst:12 -msgid "" -"You're responsible for securely sharing that URL using a communication " -"channel of your choice like in an encrypted chat message, or using " -"something less secure like unencrypted e-mail, depending on your `threat " -"model `_." +#: ../../source/features.rst:10 +msgid "OnionShare addresses look something like this::" msgstr "" #: ../../source/features.rst:14 -msgid "" -"The people you send the URL to then copy and paste it into their `Tor " -"Browser `_ to access the OnionShare service." -msgstr "" - -#: ../../source/features.rst:16 -msgid "" -"If you run OnionShare on your laptop to send someone files, and then " -"suspend it before the files are sent, the service will not be available " -"until your laptop is unsuspended and on the Internet again. OnionShare " -"works best when working with people in real-time." +msgid "And private keys might look something like this::" msgstr "" #: ../../source/features.rst:18 msgid "" +"You're responsible for securely sharing that URL and private key using a " +"communication channel of your choice like in an encrypted chat message, " +"or using something less secure like unencrypted email, depending on your " +"`threat model `_." +msgstr "" + +#: ../../source/features.rst:20 +msgid "" +"The people you send the URL to then copy and paste it into their `Tor " +"Browser `_ to access the OnionShare service." +" Tor Browser will then prompt for the private key, which the people can " +"also then copy and paste in." +msgstr "" + +#: ../../source/features.rst:24 +msgid "" +"If you run OnionShare on your laptop to send someone files, and then " +"suspend it before the files are sent, the service will not be available " +"until your laptop is unsuspended and on the internet again. OnionShare " +"works best when working with people in real-time." +msgstr "" + +#: ../../source/features.rst:26 +msgid "" "Because your own computer is the web server, *no third party can access " "anything that happens in OnionShare*, not even the developers of " "OnionShare. It's completely private. And because OnionShare is based on " "Tor onion services too, it also protects your anonymity. See the " ":doc:`security design ` for more info." msgstr "" -"Parce que votre propre ordinateur est le serveur web, *aucun tiers ne peut " -"accéder à ce qui se passe sur OnionShare*, pas même les développeurs " -"d'OnionShare. C'est totalement confidentiel. Et parce que OnionShare est " -"basé sur les services oignons Tor, cela protège aussi votre anonyma. Voir le " -":doc:`security design `pour plus d'information." +"Parce que votre propre ordinateur est le serveur web, *aucun tiers ne " +"peut accéder à ce qui se passe sur OnionShare*, pas même les développeurs" +" d'OnionShare. C'est totalement confidentiel. Et parce que OnionShare est" +" basé sur les services oignons Tor, cela protège aussi votre anonyma. " +"Voir le :doc:`security design `pour plus d'information." -#: ../../source/features.rst:21 +#: ../../source/features.rst:29 msgid "Share Files" msgstr "Partager des fichiers" -#: ../../source/features.rst:23 +#: ../../source/features.rst:31 msgid "" "You can use OnionShare to send files and folders to people securely and " "anonymously. Open a share tab, drag in the files and folders you wish to " "share, and click \"Start sharing\"." msgstr "" -"Vous pouvez utiliser OnionShare pour envoyer des fichiers et des dosiers à " -"des personnes de manière sécurisé et anonyme. Ouvrez un onglet partage, " -"déplacez dedans les fichiers et les dossiers que vous souhaitez partager, et " -"cliquer \"Commencer à partager\"." +"Vous pouvez utiliser OnionShare pour envoyer des fichiers et des dosiers " +"à des personnes de manière sécurisé et anonyme. Ouvrez un onglet partage," +" déplacez dedans les fichiers et les dossiers que vous souhaitez " +"partager, et cliquer \"Commencer à partager\"." -#: ../../source/features.rst:27 ../../source/features.rst:93 +#: ../../source/features.rst:35 ../../source/features.rst:112 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 "" -"Après avoir ajouté les fichiers, vous allez voir certains paramètres. Soyez " -"certains de choisir les paramètres qui vous intéressent avant de commencer à " -"partager." +"Après avoir ajouté les fichiers, vous allez voir certains paramètres. " +"Soyez certains de choisir les paramètres qui vous intéressent avant de " +"commencer à partager." -#: ../../source/features.rst:31 +#: ../../source/features.rst:39 msgid "" "As soon as someone finishes downloading your files, OnionShare will " -"automatically stop the server, removing the website from the Internet. To" +"automatically stop the server, removing the website from the internet. To" " allow multiple people to download them, uncheck the \"Stop sharing after" " files have been sent (uncheck to allow downloading individual files)\" " "box." msgstr "" -#: ../../source/features.rst:34 +#: ../../source/features.rst:42 msgid "" "Also, if you uncheck this box, people will be able to download the " "individual files you share rather than a single compressed version of all" " the files." msgstr "" "Aussi, si vous décochez cette case, les personnes seront capables de " -"télécharger les fichiers individuels que vous partagez plutôt qu'une unique " -"version compressée de tout les fichiers." +"télécharger les fichiers individuels que vous partagez plutôt qu'une " +"unique version compressée de tout les fichiers." -#: ../../source/features.rst:36 +#: ../../source/features.rst:44 msgid "" "When you're ready to share, click the \"Start sharing\" button. You can " "always click \"Stop sharing\", or quit OnionShare, immediately taking the" @@ -126,68 +134,96 @@ msgid "" "to show the history and progress of people downloading files from you." msgstr "" "Quand vous être prêt à partager, cliquer sur le bouton \"Commencer à " -"partager\". Vous pouvez toujours cliquer \"Arrêter de partager\", ou quitter " -"OnionShare, mettant immédiatement le site hors-ligne. Vous pouvez aussi " -"cliquer l'icône \"↑\" dans le coin en haut à droite pour montrer " -"l'historique et la progression des personnes qui téléchargent vos fichiers." - -#: ../../source/features.rst:40 -msgid "" -"Now that you have a OnionShare, copy the address and send it to the " -"person you want to receive the files. If the files need to stay secure, " -"or the person is otherwise exposed to danger, use an encrypted messaging " -"app." -msgstr "" - -#: ../../source/features.rst:42 -msgid "" -"That person then must load the address in Tor Browser. After logging in " -"with the random password included in the web address, the files can be " -"downloaded directly from your computer by clicking the \"Download Files\"" -" link in the corner." -msgstr "" - -#: ../../source/features.rst:47 -msgid "Receive Files" -msgstr "" - -#: ../../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\"." -msgstr "" - -#: ../../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." -msgstr "" - -#: ../../source/features.rst:58 -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 "" -"Vous pouvez aussi cliquer l'icône \"↓\" dans le coin en haut à droite pour " -"montrer l'historique et la progression des personnes qui vous envoient des " +"partager\". Vous pouvez toujours cliquer \"Arrêter de partager\", ou " +"quitter OnionShare, mettant immédiatement le site hors-ligne. Vous pouvez" +" aussi cliquer l'icône \"↑\" dans le coin en haut à droite pour montrer " +"l'historique et la progression des personnes qui téléchargent vos " "fichiers." -#: ../../source/features.rst:60 -msgid "Here is what it looks like for someone sending you files." +#: ../../source/features.rst:48 +msgid "" +"Now that you have a OnionShare, copy the address and the private key and " +"send it to the person you want to receive the files. If the files need to" +" stay secure, or the person is otherwise exposed to danger, use an " +"encrypted messaging app." +msgstr "" + +#: ../../source/features.rst:50 +msgid "" +"That person then must load the address in Tor Browser. After logging in " +"with the private key, the files can be downloaded directly from your " +"computer by clicking the \"Download Files\" link in the corner." +msgstr "" + +#: ../../source/features.rst:55 +msgid "Receive Files and Messages" +msgstr "" + +#: ../../source/features.rst:57 +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 "" + +#: ../../source/features.rst:62 +msgid "You can browse for a folder to save messages and files that get submitted." 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." +"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 "" #: ../../source/features.rst:66 msgid "" +"You can check \"Use notification webhook\" and then choose a webhook URL " +"if you want to be notified when someone submits files or messages to your" +" OnionShare service. If you use this feature, OnionShare will make an " +"HTTP POST request to this URL whenever someone submits files or messages." +" For example, if you want to get an encrypted text messaging on the " +"messaging app `Keybase `_, you can start a " +"conversation with `@webhookbot `_, type " +"``!webhook create onionshare-alerts``, and it will respond with a URL. " +"Use that as the notification webhook URL. If someone uploads a file to " +"your receive mode service, @webhookbot will send you a message on Keybase" +" letting you know as soon as it happens." +msgstr "" + +#: ../../source/features.rst:71 +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:75 +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 "" +"Vous pouvez aussi cliquer l'icône \"↓\" dans le coin en haut à droite " +"pour montrer l'historique et la progression des personnes qui vous " +"envoient des fichiers." + +#: ../../source/features.rst:77 +msgid "Here is what it looks like for someone sending you files and messages." +msgstr "" + +#: ../../source/features.rst:81 +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 "" + +#: ../../source/features.rst:83 +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 " @@ -195,25 +231,25 @@ msgid "" "whistleblower submission system." msgstr "" "Mettre en place un service de récupération OnionSare est utile pour les " -"journalistes et celleux qui ont besoin d'accepter de manière sécurisée des " -"documents depuis une source anonyme. Utilisé de cette manière, OnionShare " -"est une sorte de plus légère, plus simple et pas aussi sécurisé version de `" -"SecureDrop `_, le système de soumission pour les " -"lanceurs d'alerte." +"journalistes et celleux qui ont besoin d'accepter de manière sécurisée " +"des documents depuis une source anonyme. Utilisé de cette manière, " +"OnionShare est une sorte de plus légère, plus simple et pas aussi " +"sécurisé version de `SecureDrop `_, le système " +"de soumission pour les lanceurs d'alerte." -#: ../../source/features.rst:69 +#: ../../source/features.rst:86 msgid "Use at your own risk" msgstr "Utiliser à vos propres risques" -#: ../../source/features.rst:71 +#: ../../source/features.rst:88 msgid "" -"Just like with malicious e-mail attachments, it's possible someone could " +"Just like with malicious email 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 "" -#: ../../source/features.rst:73 +#: ../../source/features.rst:90 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" @@ -222,48 +258,53 @@ msgid "" "`_ or in a `Qubes `_ " "disposableVM." msgstr "" -"Si vous recevez un document Office ou un PDF depuis OnionShare, vous pouvez " -"convertir ces documents en PDFs qui sont sans danger à ouvrir en utilisant `" -"Dangerzone `_. Vous pouvez aussi vous protéger en " -"ouvrant ces documents non approuvé en les ouvrant dans `Tails `_ ou dans machine virtuel jetable `Qubes `_." +"Si vous recevez un document Office ou un PDF depuis OnionShare, vous " +"pouvez convertir ces documents en PDFs qui sont sans danger à ouvrir en " +"utilisant `Dangerzone `_. Vous pouvez aussi " +"vous protéger en ouvrant ces documents non approuvé en les ouvrant dans " +"`Tails `_ ou dans machine virtuel jetable `Qubes" +" `_." -#: ../../source/features.rst:76 +#: ../../source/features.rst:92 +msgid "However, it is always safe to open text messages sent through OnionShare." +msgstr "" + +#: ../../source/features.rst:95 msgid "Tips for running a receive service" msgstr "Conseils pour faire tourner un service de réception" -#: ../../source/features.rst:78 +#: ../../source/features.rst:97 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 " +" and connected to the internet, and not on the one you use on a regular " "basis." msgstr "" -#: ../../source/features.rst:80 +#: ../../source/features.rst:99 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`)." +"public service (see :ref:`turn_off_private_key`). It's also a good idea " +"to give it a custom title (see :ref:`custom_titles`)." msgstr "" -#: ../../source/features.rst:83 +#: ../../source/features.rst:102 msgid "Host a Website" msgstr "Héberger un site web" -#: ../../source/features.rst:85 +#: ../../source/features.rst:104 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 "" "Pour héberger un site internet HTML statique avec OnionShare, ouvrez un " -"onglet site internet, déplacez les fichiers et dossiers qui composeront le " -"contenu statique dedans, et cliquez sur \"Commencer à partager\" quand vous " -"êtes prêt." +"onglet site internet, déplacez les fichiers et dossiers qui composeront " +"le contenu statique dedans, et cliquez sur \"Commencer à partager\" quand" +" vous êtes prêt." -#: ../../source/features.rst:89 +#: ../../source/features.rst:108 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, " @@ -272,91 +313,101 @@ msgid "" "websites that execute code or use databases. So you can't for example use" " WordPress.)" msgstr "" -"Si vous ajoutez un fichier ``index.html``, cela sera généré quand quelqu'un " -"chargera votre site. Vous pouvez aussi inclure n'importe quel autre type de " -"fichiers HTML, CSS ou JavaScript, ainsi que des images pour faire votre " -"site. (Notez que OnionShare ne supporte que l'hébergement de sites internets " -"\"statique\". Il ne peut pas héberger des sites internets qui éxécute du " -"code ou utilise des bases de données. Ainsi vous ne pouvez pas utilisez " -"WordPress.)" +"Si vous ajoutez un fichier ``index.html``, cela sera généré quand " +"quelqu'un chargera votre site. Vous pouvez aussi inclure n'importe quel " +"autre type de fichiers HTML, CSS ou JavaScript, ainsi que des images pour" +" faire votre site. (Notez que OnionShare ne supporte que l'hébergement de" +" sites internets \"statique\". Il ne peut pas héberger des sites " +"internets qui éxécute du code ou utilise des bases de données. Ainsi vous" +" ne pouvez pas utilisez WordPress.)" -#: ../../source/features.rst:91 +#: ../../source/features.rst:110 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 "" -"Si vous n'avez pas un fichier ``index.html``, cela montrera une liste des " -"répertoires à la place, et les personnes le chargeant pourront parcourir les " -"fichiers et les télécharger." +"Si vous n'avez pas un fichier ``index.html``, cela montrera une liste des" +" répertoires à la place, et les personnes le chargeant pourront parcourir" +" les fichiers et les télécharger." -#: ../../source/features.rst:98 +#: ../../source/features.rst:117 msgid "Content Security Policy" msgstr "Politique de sécurité du contenu" -#: ../../source/features.rst:100 +#: ../../source/features.rst:119 msgid "" "By default OnionShare helps secure your website by setting a strict " -"`Content Security Police " +"`Content Security Policy " "`_ header. " "However, this prevents third-party content from loading inside the web " "page." msgstr "" -#: ../../source/features.rst:102 +#: ../../source/features.rst:121 +#, fuzzy 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." +"JavaScript libraries from CDNs, you have two options:" msgstr "" -"Si vous voulez charger du contenu depuis des sites internets tiers, comme " -"des \"assets\" ou des bibliothèque JavaScript depuis des CDNs, vérifiez la " -"case « Ne pas envoyer d’en-tête Politique de sécurité de contenu (permet à " -"votre site Web d’utiliser des ressources tierces »." +"Si vous voulez charger du contenu depuis des sites internets tiers, comme" +" des \"assets\" ou des bibliothèque JavaScript depuis des CDNs, vérifiez " +"la case « Ne pas envoyer d’en-tête Politique de sécurité de contenu " +"(permet à votre site Web d’utiliser des ressources tierces »." -#: ../../source/features.rst:105 +#: ../../source/features.rst:123 +msgid "" +"You can disable sending a Content Security Policy header by checking the " +"\"Don't send Content Security Policy header (allows your website to use " +"third-party resources)\" box before starting the service." +msgstr "" + +#: ../../source/features.rst:124 +msgid "You can send a custom Content Security Policy header." +msgstr "" + +#: ../../source/features.rst:127 msgid "Tips for running a website service" msgstr "Conseils pour faire fonctionner un site web de service" -#: ../../source/features.rst:107 +#: ../../source/features.rst:129 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 " +"just to quickly show someone something), it's recommended you do it on a " +"separate, dedicated computer that is 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:110 +#: ../../source/features.rst:132 msgid "" "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_private_key`)." msgstr "" -#: ../../source/features.rst:113 +#: ../../source/features.rst:135 msgid "Chat Anonymously" msgstr "Discuter anonymement" -#: ../../source/features.rst:115 +#: ../../source/features.rst:137 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 "" -"Vous pouvez utilisez OnionShare pour mettre en place une salle de discussion " -"privée et sécurisée qui n'enregistre rien. Ouvez juste un onglet discussion " -"et cliquer \"Lancer le serveur de discussion\"." +"Vous pouvez utilisez OnionShare pour mettre en place une salle de " +"discussion privée et sécurisée qui n'enregistre rien. Ouvez juste un " +"onglet discussion et cliquer \"Lancer le serveur de discussion\"." -#: ../../source/features.rst:119 +#: ../../source/features.rst:141 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." +"After you start the server, copy the OnionShare address and private key " +"and send them 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 and private key." msgstr "" -#: ../../source/features.rst:124 +#: ../../source/features.rst:146 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 " @@ -365,11 +416,11 @@ msgid "" msgstr "" "Les gens peuvent rejoindre la salle de discussion en chargeant l'adresse " "OnionShare dans le navigateur Tor. La salle de discussion nécessite " -"JavaScript, celleux qui souhaitent rejoindre la salle de discussion doivent " -"mettre le niveau de sécurité de leur navigateur Tor à « Normal » ou « Plus " -"sûr », à la place de « Le plus sûr »." +"JavaScript, celleux qui souhaitent rejoindre la salle de discussion " +"doivent mettre le niveau de sécurité de leur navigateur Tor à « Normal » " +"ou « Plus sûr », à la place de « Le plus sûr »." -#: ../../source/features.rst:127 +#: ../../source/features.rst:149 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 " @@ -377,12 +428,12 @@ msgid "" "get displayed at all, even if others were already chatting in the room." msgstr "" "Quand une personne rejoint la salle de discussion, elle reçoit un nom " -"aléatoire. Elle peut changer son nom en tapant un nouveau nom dans l'espace " -"à gauche et en pressant ↵. Comme l'historique de la discussion n'est " -"enregistré nulle part, il n'est pas du tout affiché, même si d'autres " -"personnes étaient déjà en train de discuter dans la salle." +"aléatoire. Elle peut changer son nom en tapant un nouveau nom dans " +"l'espace à gauche et en pressant ↵. Comme l'historique de la discussion " +"n'est enregistré nulle part, il n'est pas du tout affiché, même si " +"d'autres personnes étaient déjà en train de discuter dans la salle." -#: ../../source/features.rst:133 +#: ../../source/features.rst:155 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." @@ -391,7 +442,7 @@ msgstr "" "N'importe qui peut changer son nom en n'importe quoi, et il n'y a aucun " "moyen de vérifier l'identité de quiconque." -#: ../../source/features.rst:136 +#: ../../source/features.rst:158 msgid "" "However, if you create an OnionShare chat room and securely send the " "address only to a small group of trusted friends using encrypted " @@ -400,27 +451,27 @@ msgid "" msgstr "" "Malgré cela, si vous créer une salle de discussion OnionShare et envoyer " "l'adresse de manière sécurisée à un petit groupe d'amies de confiance en " -"utilisant des messages chiffrées, vous pouvez être raisonnablement confiant " -"dans le fait que les personnes rejoignant la salle de discussion sont vos " -"amies." +"utilisant des messages chiffrées, vous pouvez être raisonnablement " +"confiant dans le fait que les personnes rejoignant la salle de discussion" +" sont vos amies." -#: ../../source/features.rst:139 +#: ../../source/features.rst:161 msgid "How is this useful?" msgstr "En quoi ceci est-il utile ?" -#: ../../source/features.rst:141 +#: ../../source/features.rst:163 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 "" -"Si vous avez besoin de déjà utiliser une messagerie chiffrée, quel est le " -"point du salle de discussion OnionShare ? Cela laisse moins de traces." +"Si vous avez besoin de déjà utiliser une messagerie chiffrée, quel est le" +" point du salle de discussion OnionShare ? Cela laisse moins de traces." -#: ../../source/features.rst:143 +#: ../../source/features.rst:165 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 " +"message ends up on each device (the smartphones, 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 " @@ -428,21 +479,21 @@ msgid "" "minimum." msgstr "" -#: ../../source/features.rst:146 +#: ../../source/features.rst:168 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 using a disposable email address, and then wait for the " "journalist to join the chat room, all without compromosing their " "anonymity." msgstr "" -#: ../../source/features.rst:150 +#: ../../source/features.rst:172 msgid "How does the encryption work?" msgstr "Comment marche le chiffrement ?" -#: ../../source/features.rst:152 +#: ../../source/features.rst:174 msgid "" "Because OnionShare relies on Tor onion services, connections between the " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " @@ -452,13 +503,14 @@ msgid "" " connections." msgstr "" "Parce que OnionShare repose sur les services ognon de Tor, la connexion " -"entre le navigateur Tor et OnionShare sont toutes chiffrées de bout-à-bout " -"(E2EE). Quand quelqu'un poste un message dans une discussion OnionShare, le " -"message est envoyé au serveur à travers la connexion ognon E2EE, qui l’envoi " -"ensuite à tout les autres membres de la salle de discussion en utilisant " -"WebSockets, à travers leurs connexions oignon E2EE." +"entre le navigateur Tor et OnionShare sont toutes chiffrées de " +"bout-à-bout (E2EE). Quand quelqu'un poste un message dans une discussion " +"OnionShare, le message est envoyé au serveur à travers la connexion ognon" +" E2EE, qui l’envoi ensuite à tout les autres membres de la salle de " +"discussion en utilisant WebSockets, à travers leurs connexions oignon " +"E2EE." -#: ../../source/features.rst:154 +#: ../../source/features.rst:176 msgid "" "OnionShare doesn't implement any chat encryption on its own. It relies on" " the Tor onion service's encryption instead." @@ -853,3 +905,206 @@ msgstr "" #~ "WebSockets, through their E2EE onion " #~ "connections." #~ msgstr "" + +#~ msgid "" +#~ "By default, OnionShare web addresses are" +#~ " protected with a random password. A" +#~ " typical OnionShare address might look " +#~ "something like this::" +#~ msgstr "" + +#~ msgid "" +#~ "You're responsible for securely sharing " +#~ "that URL using a communication channel" +#~ " of your choice like in an " +#~ "encrypted chat message, or using " +#~ "something less secure like unencrypted " +#~ "e-mail, depending on your `threat model" +#~ " `_." +#~ msgstr "" + +#~ msgid "" +#~ "The people you send the URL to " +#~ "then copy and paste it into their" +#~ " `Tor Browser `_ to" +#~ " access the OnionShare service." +#~ msgstr "" + +#~ msgid "" +#~ "If you run OnionShare on your " +#~ "laptop to send someone files, and " +#~ "then suspend it before the files " +#~ "are sent, the service will not be" +#~ " available until your laptop is " +#~ "unsuspended and on the Internet again." +#~ " OnionShare works best when working " +#~ "with people in real-time." +#~ msgstr "" + +#~ msgid "" +#~ "As soon as someone finishes downloading" +#~ " your files, OnionShare will automatically" +#~ " stop the server, removing the " +#~ "website from the Internet. To allow " +#~ "multiple people to download them, " +#~ "uncheck the \"Stop sharing after files" +#~ " have been sent (uncheck to allow " +#~ "downloading individual files)\" box." +#~ msgstr "" + +#~ msgid "" +#~ "Now that you have a OnionShare, " +#~ "copy the address and send it to" +#~ " the person you want to receive " +#~ "the files. If the files need to" +#~ " stay secure, or the person is " +#~ "otherwise exposed to danger, use an " +#~ "encrypted messaging app." +#~ msgstr "" + +#~ msgid "" +#~ "That person then must load the " +#~ "address in Tor Browser. After logging" +#~ " in with the random password included" +#~ " in the web address, the files " +#~ "can be downloaded directly from your " +#~ "computer by clicking the \"Download " +#~ "Files\" link in the corner." +#~ msgstr "" + +#~ 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 "" +#~ "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 "" + +#~ 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 "" + +#~ 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 "" + +#~ msgid "" +#~ "By default OnionShare helps secure your" +#~ " website by setting a strict `Content" +#~ " Security Police " +#~ "`_ " +#~ "header. However, this prevents third-" +#~ "party content from loading inside the" +#~ " web page." +#~ msgstr "" + +#~ 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 "" + +#~ msgid "" +#~ "If your website is intended for " +#~ "the public, you should run it as" +#~ " a public service (see " +#~ ":ref:`turn_off_passwords`)." +#~ msgstr "" + +#~ 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 "" + +#~ 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 "" + +#~ 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 "" + diff --git a/docs/source/locale/fr/LC_MESSAGES/help.po b/docs/source/locale/fr/LC_MESSAGES/help.po index bd870673..92e016c4 100644 --- a/docs/source/locale/fr/LC_MESSAGES/help.po +++ b/docs/source/locale/fr/LC_MESSAGES/help.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-10-21 05:01+0000\n" "Last-Translator: aezjrareareare \n" -"Language-Team: none\n" "Language: fr\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n > 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/help.rst:2 msgid "Getting Help" @@ -33,8 +32,8 @@ msgid "" "the sections first to see if anything answers your questions." msgstr "" "Vous trouverez ici des informations sur comment utiliser OnionShare. " -"Regardez les autres parties d'abord afin de voir si vos questions n'ont pas " -"déjà été répondues." +"Regardez les autres parties d'abord afin de voir si vos questions n'ont " +"pas déjà été répondues." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" @@ -43,9 +42,9 @@ msgstr "Vérifiez les signalement de problèmes sur GitHub (GitHub Issues)" #: ../../source/help.rst:12 msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" #: ../../source/help.rst:15 @@ -56,7 +55,7 @@ msgstr "Signaler un problème" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" @@ -70,8 +69,8 @@ msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" -"Voir :ref:`collaborer` sur comment rejoindre l'équipe Keybase utilisée pour " -"discuter du projet." +"Voir :ref:`collaborer` sur comment rejoindre l'équipe Keybase utilisée " +"pour discuter du projet." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" @@ -124,3 +123,25 @@ msgstr "" #~ "that we use to discuss the " #~ "project." #~ msgstr "" + +#~ msgid "" +#~ "If it isn't on the website, please" +#~ " check the `GitHub issues " +#~ "`_. It's " +#~ "possible someone else has encountered " +#~ "the same problem and either raised " +#~ "it with the developers, or maybe " +#~ "even posted a solution." +#~ msgstr "" + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" + diff --git a/docs/source/locale/fr/LC_MESSAGES/install.po b/docs/source/locale/fr/LC_MESSAGES/install.po index 324c441b..8f4d532d 100644 --- a/docs/source/locale/fr/LC_MESSAGES/install.po +++ b/docs/source/locale/fr/LC_MESSAGES/install.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-10-24 21:38+0000\n" "Last-Translator: aezjrareareare \n" -"Language-Team: none\n" "Language: fr\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n > 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/install.rst:2 msgid "Installation" @@ -32,11 +31,11 @@ msgid "" "You can download OnionShare for Windows and macOS from the `OnionShare " "website `_." msgstr "" -"Vous pouvez télécharger OnionShare pour Windows et macOS depuis le `site web " -"OnionShare `_." +"Vous pouvez télécharger OnionShare pour Windows et macOS depuis le `site " +"web OnionShare `_." #: ../../source/install.rst:12 -msgid "Install in Linux" +msgid "Linux" msgstr "" #: ../../source/install.rst:14 @@ -47,46 +46,60 @@ msgid "" "that you'll always use the newest version and run OnionShare inside of a " "sandbox." msgstr "" -"Il y a plusieurs façons d'installer OnionShare sur Linux, mais la méthode " -"recommendée est le paquet `Flatpak `_ ou `Snap " -"`_. Flatpak et Snap vous assure de toujours avoir la " -"dernière version d'OnionShare et executé dans un bac à sable (sandbox)." +"Il y a plusieurs façons d'installer OnionShare sur Linux, mais la méthode" +" recommendée est le paquet `Flatpak `_ ou `Snap " +"`_. Flatpak et Snap vous assure de toujours avoir " +"la dernière version d'OnionShare et executé dans un bac à sable " +"(sandbox)." #: ../../source/install.rst:17 msgid "" "Snap support is built-in to Ubuntu and Fedora comes with Flatpak support," " but which you use is up to you. Both work in all Linux distributions." msgstr "" -"Snap est supporté de manière native dans Ubuntu et Fedora intègre Flatpak, " -"mais c'est à vous de décider lequel vous souhaitez utiliser. Les deux " -"marchent sur toutes les distributions Linux." +"Snap est supporté de manière native dans Ubuntu et Fedora intègre " +"Flatpak, mais c'est à vous de décider lequel vous souhaitez utiliser. Les" +" deux marchent sur toutes les distributions Linux." #: ../../source/install.rst:19 msgid "" "**Install OnionShare using Flatpak**: " "https://flathub.org/apps/details/org.onionshare.OnionShare" msgstr "" -"**Installer OnionShare en utilisant Flatpak** : https://flathub.org/apps/" -"details/org.onionshare.OnionShare" +"**Installer OnionShare en utilisant Flatpak** : " +"https://flathub.org/apps/details/org.onionshare.OnionShare" #: ../../source/install.rst:21 msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare" msgstr "" -"**Installer OnionShare en utilisant Snap** : https://snapcraft.io/onionshare" +"**Installer OnionShare en utilisant Snap** : " +"https://snapcraft.io/onionshare" #: ../../source/install.rst:23 msgid "" "You can also download and install PGP-signed ``.flatpak`` or ``.snap`` " "packages from https://onionshare.org/dist/ if you prefer." msgstr "" -"Vous pouvez aussi télécharger et installer des paquets ``.flatpak`` ou ``." -"snap`` signé avec PGP depuis https://onionshare.org/dist/ si vous préférer." +"Vous pouvez aussi télécharger et installer des paquets ``.flatpak`` ou " +"``.snap`` signé avec PGP depuis https://onionshare.org/dist/ si vous " +"préférer." #: ../../source/install.rst:28 +msgid "Command-line only" +msgstr "" + +#: ../../source/install.rst:30 +msgid "" +"You can install just the command line version of OnionShare on any " +"operating system using the Python package manager ``pip``. See :ref:`cli`" +" for more information." +msgstr "" + +#: ../../source/install.rst:35 msgid "Verifying PGP signatures" msgstr "Vérifier les signatures PGP" -#: ../../source/install.rst:30 +#: ../../source/install.rst:37 msgid "" "You can verify that the package you download is legitimate and hasn't " "been tampered with by verifying its PGP signature. For Windows and macOS," @@ -95,16 +108,17 @@ msgid "" "rely on those alone if you'd like." msgstr "" "Vous pouvez vérifier que les paquets que vous téléchargés n'ont pas été " -"falsifiés en vérifiant la signature PGP. Pour Windows et macOS, cette étape " -"est optionnelle et procure une défense en profondeur : les exécutables " -"OnionShare incluent des signatures spécifiques aux systèmes, et vous pouvez " -"vous reposer uniquement sur celles-là si vous le souhaitez." +"falsifiés en vérifiant la signature PGP. Pour Windows et macOS, cette " +"étape est optionnelle et procure une défense en profondeur : les " +"exécutables OnionShare incluent des signatures spécifiques aux systèmes, " +"et vous pouvez vous reposer uniquement sur celles-là si vous le " +"souhaitez." -#: ../../source/install.rst:34 +#: ../../source/install.rst:41 msgid "Signing key" msgstr "Clé de signature" -#: ../../source/install.rst:36 +#: ../../source/install.rst:43 msgid "" "Packages are signed by Micah Lee, the core developer, using his PGP " "public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``." @@ -112,27 +126,28 @@ msgid "" "`_." msgstr "" -"Les paquets sont signés par Micah Lee, développeur principal, utilisant sa " -"clé PGP publique ayant comme empreinte " -"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Vous pouvez téléchargez sa clé " -"`depuis le serveur de clé openpgp.org. `_." +"Les paquets sont signés par Micah Lee, développeur principal, utilisant " +"sa clé PGP publique ayant comme empreinte " +"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Vous pouvez téléchargez sa " +"clé `depuis le serveur de clé openpgp.org. " +"`_." -#: ../../source/install.rst:38 +#: ../../source/install.rst:45 msgid "" "You must have GnuPG installed to verify signatures. For macOS you " "probably want `GPGTools `_, and for Windows you " "probably want `Gpg4win `_." msgstr "" -"Vous devez avoir installé GnuPG pour vérifier les signatures. Pour macOS, " -"vous voudrez probablement utilisé `GPGTools `_, et " -"pour Windows `Gpg4win `_." +"Vous devez avoir installé GnuPG pour vérifier les signatures. Pour macOS," +" vous voudrez probablement utilisé `GPGTools `_, " +"et pour Windows `Gpg4win `_." -#: ../../source/install.rst:41 +#: ../../source/install.rst:48 msgid "Signatures" msgstr "Signatures" -#: ../../source/install.rst:43 +#: ../../source/install.rst:50 msgid "" "You can find the signatures (as ``.asc`` files), as well as Windows, " "macOS, Flatpak, Snap, and source packages, at " @@ -140,54 +155,54 @@ msgid "" "OnionShare. You can also find them on the `GitHub Releases page " "`_." msgstr "" -"Vous pouvez trouver les signatures (en tant fichiers \".asc\"), ainsi que " -"les fichiers Windows, macOS, Flatpak, Snap et sources, à https://onionshare." -"org/dist/ in les dossiers correspondants à chaque version d'OnionShare. Vous " -"pouvez aussi les trouvez sur `la page des versions GitHub `_." +"Vous pouvez trouver les signatures (en tant fichiers \".asc\"), ainsi que" +" les fichiers Windows, macOS, Flatpak, Snap et sources, à " +"https://onionshare.org/dist/ in les dossiers correspondants à chaque " +"version d'OnionShare. Vous pouvez aussi les trouvez sur `la page des " +"versions GitHub `_." -#: ../../source/install.rst:47 +#: ../../source/install.rst:54 msgid "Verifying" msgstr "Vérifier" -#: ../../source/install.rst:49 +#: ../../source/install.rst:56 msgid "" "Once you have imported Micah's public key into your GnuPG keychain, " "downloaded the binary and and ``.asc`` signature, you can verify the " "binary for macOS in a terminal like this::" msgstr "" -"Une fois que vous avez importé la clé publique de Micah dans votre porte-clé " -"GnuPG, télécharger l'exécutable et la signature \".asc\", vous pouvez " -"vérifier l’exécutable pour macOS dans un terminal comme ceci ::" +"Une fois que vous avez importé la clé publique de Micah dans votre porte-" +"clé GnuPG, télécharger l'exécutable et la signature \".asc\", vous pouvez" +" vérifier l’exécutable pour macOS dans un terminal comme ceci ::" -#: ../../source/install.rst:53 +#: ../../source/install.rst:60 msgid "Or for Windows, in a command-prompt like this::" msgstr "Ou pour Windows, dans l'invite de commande comme ceci : :" -#: ../../source/install.rst:57 +#: ../../source/install.rst:64 msgid "The expected output looks like this::" msgstr "La sortie attendue ressemble à ::" -#: ../../source/install.rst:69 +#: ../../source/install.rst:76 msgid "" -"If you don't see 'Good signature from', there might be a problem with the" -" integrity of the file (malicious or otherwise), and you should not " -"install the package. (The \"WARNING:\" shown above, is not a problem with" -" the package, it only means you haven't already defined any level of " -"'trust' of Micah's PGP key.)" +"If you don't see ``Good signature from``, there might be a problem with " +"the integrity of the file (malicious or otherwise), and you should not " +"install the package. (The ``WARNING:`` shown above, is not a problem with" +" the package, it only means you haven't defined a level of \"trust\" of " +"Micah's PGP key.)" msgstr "" -#: ../../source/install.rst:71 +#: ../../source/install.rst:78 msgid "" "If you want to learn more about verifying PGP signatures, the guides for " "`Qubes OS `_ and" " the `Tor Project `_ may be useful." msgstr "" -"Si vous voulez en apprendre plus sur la vérification des signatures PGP, le " -"guide de `Qubes OS `" -"_ et du `Projet Tor `_ peuvent être utiles." +"Si vous voulez en apprendre plus sur la vérification des signatures PGP, " +"le guide de `Qubes OS `_ et du `Projet Tor `_ peuvent être utiles." #~ msgid "Install on Windows or macOS" #~ msgstr "" @@ -374,3 +389,20 @@ msgstr "" #~ "Project `_ may be helpful." #~ msgstr "" + +#~ msgid "Install in Linux" +#~ msgstr "" + +#~ msgid "" +#~ "If you don't see 'Good signature " +#~ "from', there might be a problem " +#~ "with the integrity of the file " +#~ "(malicious or otherwise), and you should" +#~ " not install the package. (The " +#~ "\"WARNING:\" shown above, is not a " +#~ "problem with the package, it only " +#~ "means you haven't already defined any" +#~ " level of 'trust' of Micah's PGP " +#~ "key.)" +#~ msgstr "" + diff --git a/docs/source/locale/fr/LC_MESSAGES/security.po b/docs/source/locale/fr/LC_MESSAGES/security.po index b522be90..c878e925 100644 --- a/docs/source/locale/fr/LC_MESSAGES/security.po +++ b/docs/source/locale/fr/LC_MESSAGES/security.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-03-10 10:02+0000\n" "Last-Translator: AO Localisation Lab \n" -"Language-Team: none\n" "Language: fr\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n > 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.5.2-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/security.rst:2 msgid "Security Design" @@ -48,13 +47,13 @@ msgid "" "server for that too. This avoids the traditional model of having to trust" " the computers of others." msgstr "" -"**Les tiers n’ont pas accès à ce qui se passe dans OnionShare.** Utiliser " -"OnionShare implique d’héberger des services directement sur votre " -"ordinateur. Quand vous partagez des fichiers avec OnionShare, ils ne sont " -"téléversés vers aucun serveur. Si vous créez un salon de conversation " -"OnionShare, votre ordinateur sert aussi de serveur à cet effet. Cela évite " -"le modèle traditionnel qui implique de faire confiance aux ordinateurs " -"d’autrui." +"**Les tiers n’ont pas accès à ce qui se passe dans OnionShare.** Utiliser" +" OnionShare implique d’héberger des services directement sur votre " +"ordinateur. Quand vous partagez des fichiers avec OnionShare, ils ne sont" +" téléversés vers aucun serveur. Si vous créez un salon de conversation " +"OnionShare, votre ordinateur sert aussi de serveur à cet effet. Cela " +"évite le modèle traditionnel qui implique de faire confiance aux " +"ordinateurs d’autrui." #: ../../source/security.rst:13 msgid "" @@ -67,12 +66,13 @@ msgid "" "the onion service's private key." msgstr "" "**Les systèmes d’écoute des réseaux ne peuvent pas surveiller ce qui se " -"passe en transit dans OnionShare.** La connexion entre le service onion de " -"Tor et le Navigateur Tor est chiffrée de bout en bout. Cela signifie que les " -"assaillants du réseau ne peuvent rien surveiller, sauf le trafic chiffré de " -"Tor. Même si le système d’écoute est un nœud malveillant utilisé pour " -"connecter le Navigateur Tor avec le service onion d’OnionShare, le trafic " -"est chiffré grâce à la clé privée du service onion." +"passe en transit dans OnionShare.** La connexion entre le service onion " +"de Tor et le Navigateur Tor est chiffrée de bout en bout. Cela signifie " +"que les assaillants du réseau ne peuvent rien surveiller, sauf le trafic " +"chiffré de Tor. Même si le système d’écoute est un nœud malveillant " +"utilisé pour connecter le Navigateur Tor avec le service onion " +"d’OnionShare, le trafic est chiffré grâce à la clé privée du service " +"onion." #: ../../source/security.rst:15 msgid "" @@ -82,80 +82,69 @@ msgid "" "Browser users, the Tor Browser users and eavesdroppers can't learn the " "identity of the OnionShare user." msgstr "" -"**L’anonymat des utilisateurs d’OnionShare est protégé par Tor.** OnionShare " -"et le Navigateur Tor protègent l’anonymat des utilisateurs. Tant que l’" -"utilisateur d’OnionShare communique anonymement l’adresse OnionShare aux " -"utilisateurs du Navigateur Tor, ni les utilisateurs du Navigateur Tor ni " -"aucun système d’écoute ne peuvent connaître l’identité de l’utilisateur " -"d’OnionShare." +"**L’anonymat des utilisateurs d’OnionShare est protégé par Tor.** " +"OnionShare et le Navigateur Tor protègent l’anonymat des utilisateurs. " +"Tant que l’utilisateur d’OnionShare communique anonymement l’adresse " +"OnionShare aux utilisateurs du Navigateur Tor, ni les utilisateurs du " +"Navigateur Tor ni aucun système d’écoute ne peuvent connaître l’identité " +"de l’utilisateur d’OnionShare." #: ../../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." +"services allowed the attacker to discover private ``.onion`` addresses. " +"If an attack discovers a private OnionShare address, they will also need " +"to guess the private key used for client authentication in order to " +"access it (unless the OnionShare user chooses make their service public " +"by turning off the private key -- see :ref:`turn_off_private_key`)." msgstr "" -"**Si un assaillant apprend l’existence du service onion, il ne peut quand " -"même accéder à rien.** Des attaques précédentes contre le réseau Tor pour " -"énumérer les services onion ont permis à l’assaillant de découvrir des " -"adresses .onion privées. Si un assaillant découvre une adresse OnionShare " -"privée, un mot de passe l’empêchera d’y accéder (à moins que l’utilisateur d’" -"OnionShare ne choisisse de le désactiver et de le rendre public). Le mot de " -"passe est généré en choisissant deux mots au hasard dans une liste de 6 800 " -"mots, ce qui équivaut à 6800², soit environ 46 millions de mots de passe " -"possibles. Il ne peut y avoir que vingt essais erronés avant qu’OnionShare n’" -"arrête le serveur, ce qui prévient les attaques par force brute contre le " -"mot de passe." #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" msgstr "Contre quoi OnionShare ne protège pas" #: ../../source/security.rst:22 +#, fuzzy 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." +"**Communicating the OnionShare address and private key might not be " +"secure.** Communicating the OnionShare address to people is the " +"responsibility of the OnionShare user. If sent insecurely (such as " +"through an email message monitored by an attacker), an eavesdropper can " +"tell that OnionShare is being used. If the eavesdropper loads the address" +" in Tor Browser while the service is still up, they can access it. To " +"avoid this, the address must be communicated 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 "" "**Communiquer l’adresse OnionShare pourrait ne pas être sûr** La " -"communication de l’adresse OnionShare à autrui est la responsabilité de l’" -"utilisateur d’OnionShare. Si elle est envoyée de façon non sécurisée (par " -"exemple par un courriel surveillé par un assaillant), une oreille indiscrète " -"peut en déduire qu’OnionShare est utilisé. Si la personne qui surveille " -"charge l’adresse dans le Navigateur Tor alors que le service est encore en " -"fonction, elle peut y accéder. Pour éviter cette situation, l’adresse doit " -"être communiquée de façon sécurisée, par un texto chiffré (probablement avec " -"les messages éphémères activés), un courriel chiffré ou en personne. Cela n’" -"est pas nécessaire si OnionShare est utilisé pour quelque chose qui n’est " -"pas secret." +"communication de l’adresse OnionShare à autrui est la responsabilité de " +"l’utilisateur d’OnionShare. Si elle est envoyée de façon non sécurisée " +"(par exemple par un courriel surveillé par un assaillant), une oreille " +"indiscrète peut en déduire qu’OnionShare est utilisé. Si la personne qui " +"surveille charge l’adresse dans le Navigateur Tor alors que le service " +"est encore en fonction, elle peut y accéder. Pour éviter cette situation," +" l’adresse doit être communiquée de façon sécurisée, par un texto chiffré" +" (probablement avec les messages éphémères activés), un courriel chiffré " +"ou en personne. Cela n’est pas nécessaire si OnionShare est utilisé pour " +"quelque chose qui n’est pas secret." #: ../../source/security.rst:24 +#, fuzzy 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." +"**Communicating the OnionShare address and private key might not be " +"anonymous.** Extra precautions must be taken to ensure the OnionShare " +"address is communicated anonymously. A new email or chat account, only " +"accessed over Tor, can be used to share the address. This isn't necessary" +" unless anonymity is a goal." msgstr "" "**Communiquer l’adresse OnionShare pourrait ne pas être anonyme.** Des " -"précautions supplémentaires doivent être prises pour faire en sorte que l’" -"adresse OnionShare est communiquée anonymement. Un nouveau compte de " -"courriel ou de dialogue en ligne auquel vous n’accédez que par Tor peut être " -"utilisé pour partager l’adresse. Ce n’est pas nécessaire, à moins que l’" -"anonymat ne soit l’objectif." +"précautions supplémentaires doivent être prises pour faire en sorte que " +"l’adresse OnionShare est communiquée anonymement. Un nouveau compte de " +"courriel ou de dialogue en ligne auquel vous n’accédez que par Tor peut " +"être utilisé pour partager l’adresse. Ce n’est pas nécessaire, à moins " +"que l’anonymat ne soit l’objectif." #~ msgid "Security design" #~ msgstr "" @@ -295,3 +284,47 @@ msgstr "" #~ " share the address. This isn't " #~ "necessary unless anonymity is a goal." #~ msgstr "" + +#~ 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 "" +#~ "**Si un assaillant apprend l’existence " +#~ "du service onion, il ne peut quand" +#~ " même accéder à rien.** Des attaques" +#~ " précédentes contre le réseau Tor " +#~ "pour énumérer les services onion ont " +#~ "permis à l’assaillant de découvrir des" +#~ " adresses .onion privées. Si un " +#~ "assaillant découvre une adresse OnionShare " +#~ "privée, un mot de passe l’empêchera " +#~ "d’y accéder (à moins que l’utilisateur" +#~ " d’OnionShare ne choisisse de le " +#~ "désactiver et de le rendre public). " +#~ "Le mot de passe est généré en " +#~ "choisissant deux mots au hasard dans " +#~ "une liste de 6 800 mots, ce " +#~ "qui équivaut à 6800², soit environ " +#~ "46 millions de mots de passe " +#~ "possibles. Il ne peut y avoir que" +#~ " vingt essais erronés avant qu’OnionShare" +#~ " n’arrête le serveur, ce qui prévient" +#~ " les attaques par force brute contre" +#~ " le mot de passe." + diff --git a/docs/source/locale/fr/LC_MESSAGES/tor.po b/docs/source/locale/fr/LC_MESSAGES/tor.po index 1218b25d..ec50194e 100644 --- a/docs/source/locale/fr/LC_MESSAGES/tor.po +++ b/docs/source/locale/fr/LC_MESSAGES/tor.po @@ -7,34 +7,34 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-10-22 20:45+0000\n" "Last-Translator: aezjrareareare \n" -"Language-Team: none\n" "Language: fr\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n > 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.9-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/tor.rst:2 msgid "Connecting to Tor" msgstr "Connexion à Tor" #: ../../source/tor.rst:4 +#, fuzzy 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." +"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in" +" the bottom right of the OnionShare window to open the Tor Settings tab." msgstr "" "Choisissez une façon de connecter OnionShare à Tor en cliquant sur " "l’icône ⚙ en bas à droite de la fenêtre d’OnionShare pour accéder à ses " "paramètres." #: ../../source/tor.rst:9 -msgid "Use the ``tor`` bundled with OnionShare" -msgstr "Utiliser le ``tor`` intégré à OnionShare" +msgid "Use the Tor version built into OnionShare" +msgstr "" #: ../../source/tor.rst:11 msgid "" @@ -59,10 +59,48 @@ msgstr "" "du système." #: ../../source/tor.rst:18 +msgid "Getting Around Censorship" +msgstr "" + +#: ../../source/tor.rst:20 +msgid "" +"If your access to the internet is censored, you can configure OnionShare " +"to connect to the Tor network using `Tor bridges `_. If OnionShare connects to Tor without " +"one, you don't need to use a bridge." +msgstr "" + +#: ../../source/tor.rst:22 +msgid "" +"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor" +" version built into OnionShare\" and check the \"Use a bridge\" checkbox." +msgstr "" + +#: ../../source/tor.rst:25 +msgid "" +"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges " +"is recommended over using `meek-azure`." +msgstr "" + +#: ../../source/tor.rst:29 +msgid "" +"If using a built-in bridge doesn't work, you can request a bridge from " +"torproject.org. You will have to solve a CAPTCHA in order to request a " +"bridge. (This makes it more difficult for governments or ISPs to block " +"access to Tor bridges.)" +msgstr "" + +#: ../../source/tor.rst:33 +msgid "" +"You also have the option of using a bridge that you learned about from a " +"trusted source." +msgstr "" + +#: ../../source/tor.rst:36 msgid "Attempt auto-configuration with Tor Browser" msgstr "Tenter la configuration automatique avec le Navigateur Tor" -#: ../../source/tor.rst:20 +#: ../../source/tor.rst:38 msgid "" "If you have `downloaded the Tor Browser `_ " "and don't want two ``tor`` processes running, you can use the ``tor`` " @@ -76,11 +114,11 @@ msgstr "" "ouvert en arrière-plan pendant que vous utilisez OnionShare pour que " "cette approche fonctionne." -#: ../../source/tor.rst:24 +#: ../../source/tor.rst:42 msgid "Using a system ``tor`` in Windows" msgstr "Utiliser un ``tor`` système dans Windows" -#: ../../source/tor.rst:26 +#: ../../source/tor.rst:44 msgid "" "This is fairly advanced. You'll need to know how edit plaintext files and" " do stuff as an administrator." @@ -89,19 +127,19 @@ msgstr "" " des fichiers en texte brut et effectuer des opérations en tant " "qu’administrateur." -#: ../../source/tor.rst:28 +#: ../../source/tor.rst:46 msgid "" "Download the Tor Windows Expert Bundle `from " "`_. Extract the compressed file" " and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename " "the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``." msgstr "" -"`Sur `_, téléchargez « Windows " -"Expert Bundle » de Tor `. Extrayez le fichier compressé et copiez le dossier " -"résultant sur ``C:\\Program Files (x86)\\`` Renommez en ``tor-win32`` le " -"dossier résultant qui comprend ``Data`` et ``Tor``." +"`Sur `_, téléchargez « " +"Windows Expert Bundle » de Tor `. Extrayez le fichier compressé et copiez" +" le dossier résultant sur ``C:\\Program Files (x86)\\`` Renommez en " +"``tor-win32`` le dossier résultant qui comprend ``Data`` et ``Tor``." -#: ../../source/tor.rst:32 +#: ../../source/tor.rst:50 msgid "" "Make up a control port password. (Using 7 words in a sequence like " "``comprised stumble rummage work avenging construct volatile`` is a good " @@ -116,7 +154,7 @@ msgstr "" "utilisé ``tor.exe --hash-password`` pour générer une empreinte de votre " "mot de passe. Par exemple :" -#: ../../source/tor.rst:39 +#: ../../source/tor.rst:57 msgid "" "The hashed password output is displayed after some warnings (which you " "can ignore). In the case of the above example, it is " @@ -127,7 +165,7 @@ msgstr "" "dessus, l’empreinte est " "``16:62C47B4E61BE73F26077E5CE7B180A2DFCB2F687D54248927AE82C0BCD``." -#: ../../source/tor.rst:41 +#: ../../source/tor.rst:59 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 " @@ -138,23 +176,24 @@ msgstr "" "remplaçant la valeur ``HashedControlPassword`` par l’empreinte que vous " "venez de générer :" -#: ../../source/tor.rst:46 +#: ../../source/tor.rst:64 msgid "" "In your administrator command prompt, install ``tor`` as a service using " "the appropriate ``torrc`` file you just created (as described in " "``_). Like " "this::" msgstr "" -"Dans votre invite de commande d’administrateur, installez ``tor`` en tant " -"que service en utilisant le fichier ``torrc`` approprié que vous venez de " -"créer (comme indiqué dans ``_). Comme ceci :" +"Dans votre invite de commande d’administrateur, installez ``tor`` en tant" +" que service en utilisant le fichier ``torrc`` approprié que vous venez " +"de créer (comme indiqué dans " +"``_). Comme " +"ceci :" -#: ../../source/tor.rst:50 +#: ../../source/tor.rst:68 msgid "You are now running a system ``tor`` process in Windows!" msgstr "Vous exécutez désormais un processus ``tor``système sur Windows." -#: ../../source/tor.rst:52 +#: ../../source/tor.rst:70 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using control port\", and " @@ -165,37 +204,37 @@ msgid "" "to the Tor controller\"." msgstr "" "Ouvrez OnionShare et cliquer l'icône \"⚙\". Dessous « Comment OnionShare " -"devrait-il se connecter à Tor ? » choisissez « Se connecter en utilisant le " -"port de contrôle », et configurez « Port de contrôle » à ``127.0.0.1`` et « " -"Port » à ``9051``. En dessous de « Paramètres d’authentification de Tor » " -"choisissez « Mot de passe » et définissez le mot de passe du port de " -"contrôle que vous avez sélectionné au-dessus. Cliquer sur le bouton « Tester " -"la connexion à Tor ». Si tout se passe bien, vous devriez voir « Vous êtes " -"connecté au contrôleur Tor. »." +"devrait-il se connecter à Tor ? » choisissez « Se connecter en utilisant " +"le port de contrôle », et configurez « Port de contrôle » à ``127.0.0.1``" +" et « Port » à ``9051``. En dessous de « Paramètres d’authentification de" +" Tor » choisissez « Mot de passe » et définissez le mot de passe du port " +"de contrôle que vous avez sélectionné au-dessus. Cliquer sur le bouton « " +"Tester la connexion à Tor ». Si tout se passe bien, vous devriez voir « " +"Vous êtes connecté au contrôleur Tor. »." -#: ../../source/tor.rst:61 +#: ../../source/tor.rst:79 msgid "Using a system ``tor`` in macOS" msgstr "Utilisez un système ``tor`` sur macOS" -#: ../../source/tor.rst:63 +#: ../../source/tor.rst:81 msgid "" "First, install `Homebrew `_ if you don't already have " "it, and then install Tor::" msgstr "" -"Si ce n’est pas déjà fait, installez d’abord `Homebrew `_, " -"puis installez Tor :" +"Si ce n’est pas déjà fait, installez d’abord `Homebrew " +"`_, puis installez Tor :" -#: ../../source/tor.rst:67 +#: ../../source/tor.rst:85 msgid "Now configure Tor to allow connections from OnionShare::" msgstr "" -"Maintenant, configurez Tor pour autoriser les connexions à partir d’" -"OnionShare :" +"Maintenant, configurez Tor pour autoriser les connexions à partir " +"d’OnionShare :" -#: ../../source/tor.rst:74 +#: ../../source/tor.rst:92 msgid "And start the system Tor service::" msgstr "Et démarrez le service Tor du système :" -#: ../../source/tor.rst:78 +#: ../../source/tor.rst:96 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using socket file\", and " @@ -211,29 +250,29 @@ msgstr "" "Pas d’authentification, ou authentification par témoin ». Cliquez sur le " "bouton « Tester la connexion à Tor »." -#: ../../source/tor.rst:84 ../../source/tor.rst:104 +#: ../../source/tor.rst:102 ../../source/tor.rst:122 msgid "If all goes well, you should see \"Connected to the Tor controller\"." msgstr "" -"Si tout se passe bien, vous devriez voir « Vous êtes connecté au contrôleur " -"Tor »." +"Si tout se passe bien, vous devriez voir « Vous êtes connecté au " +"contrôleur Tor »." -#: ../../source/tor.rst:87 +#: ../../source/tor.rst:105 msgid "Using a system ``tor`` in Linux" msgstr "Utiliser un ``tor`` système dans Linux" -#: ../../source/tor.rst:89 +#: ../../source/tor.rst:107 msgid "" "First, install the ``tor`` package. If you're using Debian, Ubuntu, or a " "similar Linux distro, It is recommended to use the Tor Project's " "`official repository `_." msgstr "" -"Tout d'abord, installez le paquet ``tor``. Si vous utilisez Debian, Ubuntu, " -"ou une distribution Linux similaire, il est recommandé d'utilisé le `" -"répertoire officiel `_ du " -"projet Tor." +"Tout d'abord, installez le paquet ``tor``. Si vous utilisez Debian, " +"Ubuntu, ou une distribution Linux similaire, il est recommandé d'utilisé " +"le `répertoire officiel `_ du projet Tor." -#: ../../source/tor.rst:91 +#: ../../source/tor.rst:109 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 " @@ -244,7 +283,7 @@ msgstr "" "configurez OnionShare pour se connecter au fichier de contrôle de " "l'interface de connexion de votre système ``tor``." -#: ../../source/tor.rst:93 +#: ../../source/tor.rst:111 msgid "" "Add your user to the ``debian-tor`` group by running this command " "(replace ``username`` with your actual username)::" @@ -252,7 +291,7 @@ msgstr "" "Ajoutez votre utilisateur au groupe ``debian-tor`` en exécutant cette " "commande (remplacez ``username`` par votre nom d'utilisateur) ::" -#: ../../source/tor.rst:97 +#: ../../source/tor.rst:115 msgid "" "Reboot your computer. After it boots up again, open OnionShare and click " "the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" " @@ -261,42 +300,14 @@ msgid "" "\"No authentication, or cookie authentication\". Click the \"Test " "Connection to Tor\" button." msgstr "" -"Redémarrez votre ordinateur. Après qu'il ait redémarré, ouvrez OnionShare et " -"cliquer l'icône \"⚙\". Dessous « Comment OnionShare devrait-il se connecter " -"à Tor ? » choisissez « Se connecter en utilisant un fichier d’interface de " -"connexion ». Définissez le fichier d’interface de connexion comme étant ``/" -"var/run/tor/control``. En dessous de « Paramètres d’authentification de Tor »" -" choisissez « Pas d’authentification, ou authentification par témoin ». " -"Cliquer sur le bouton « Tester la connexion à Tor »." - -#: ../../source/tor.rst:107 -msgid "Using Tor bridges" -msgstr "Utilisez les ponts Tor" - -#: ../../source/tor.rst:109 -msgid "" -"If your access to the Internet is censored, you can configure OnionShare " -"to connect to the Tor network using `Tor bridges " -"`_. If OnionShare " -"connects to Tor without one, you don't need to use a bridge." -msgstr "" - -#: ../../source/tor.rst:111 -msgid "To configure bridges, click the \"⚙\" icon in OnionShare." -msgstr "Pour configurer des ponts, cliquez sur l’icône « ⚙ » dans OnionShare." - -#: ../../source/tor.rst:113 -msgid "" -"You can use the built-in obfs4 pluggable transports, the built-in " -"meek_lite (Azure) pluggable transports, or custom bridges, which you can " -"obtain from Tor's `BridgeDB `_. If you " -"need to use a bridge, try the built-in obfs4 ones first." -msgstr "" -"Vous pouvez utiliser les transports enfichables fournis dans obfs4, ceux " -"fournis dans les transports enfichables meek_lite (Azure), ou des ponts " -"personnalisés, que vous pouvez obtenir depuis `la base de données des ponts " -"Tor `_. Si vous avez besoin d'utiliser un " -"pont, essayer ceux fournis dans obfs4 en premier." +"Redémarrez votre ordinateur. Après qu'il ait redémarré, ouvrez OnionShare" +" et cliquer l'icône \"⚙\". Dessous « Comment OnionShare devrait-il se " +"connecter à Tor ? » choisissez « Se connecter en utilisant un fichier " +"d’interface de connexion ». Définissez le fichier d’interface de " +"connexion comme étant ``/var/run/tor/control``. En dessous de « " +"Paramètres d’authentification de Tor » choisissez « Pas " +"d’authentification, ou authentification par témoin ». Cliquer sur le " +"bouton « Tester la connexion à Tor »." #~ msgid "Using a system Tor in Mac OS X" #~ msgstr "" @@ -537,3 +548,45 @@ msgstr "" #~ "if you don't already have it. " #~ "Then, install Tor::" #~ msgstr "" + +#~ msgid "Use the ``tor`` bundled with OnionShare" +#~ msgstr "Utiliser le ``tor`` intégré à OnionShare" + +#~ msgid "Using Tor bridges" +#~ msgstr "Utilisez les ponts Tor" + +#~ msgid "" +#~ "If your access to the Internet is" +#~ " censored, you can configure OnionShare " +#~ "to connect to the Tor network " +#~ "using `Tor bridges " +#~ "`_. If " +#~ "OnionShare connects to Tor without one," +#~ " you don't need to use a " +#~ "bridge." +#~ msgstr "" + +#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare." +#~ msgstr "Pour configurer des ponts, cliquez sur l’icône « ⚙ » dans OnionShare." + +#~ msgid "" +#~ "You can use the built-in obfs4 " +#~ "pluggable transports, the built-in " +#~ "meek_lite (Azure) pluggable transports, or " +#~ "custom bridges, which you can obtain " +#~ "from Tor's `BridgeDB " +#~ "`_. If you need " +#~ "to use a bridge, try the built-" +#~ "in obfs4 ones first." +#~ msgstr "" +#~ "Vous pouvez utiliser les transports " +#~ "enfichables fournis dans obfs4, ceux " +#~ "fournis dans les transports enfichables " +#~ "meek_lite (Azure), ou des ponts " +#~ "personnalisés, que vous pouvez obtenir " +#~ "depuis `la base de données des " +#~ "ponts Tor `_. Si" +#~ " vous avez besoin d'utiliser un pont," +#~ " essayer ceux fournis dans obfs4 en" +#~ " premier." + diff --git a/docs/source/locale/it/LC_MESSAGES/advanced.po b/docs/source/locale/it/LC_MESSAGES/advanced.po index c0a9f1f6..d9e08ac0 100644 --- a/docs/source/locale/it/LC_MESSAGES/advanced.po +++ b/docs/source/locale/it/LC_MESSAGES/advanced.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2020-12-02 19:29+0000\n" "Last-Translator: x \n" -"Language-Team: LANGUAGE \n" "Language: it\n" +"Language-Team: it \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/advanced.rst:2 msgid "Advanced Usage" @@ -36,10 +35,11 @@ msgid "" "address even if you reboot your computer." msgstr "" "Ogni cosa su OnionShare è temporanea per default. Se chiudi una tab di " -"OnionShare, il suo indirizzo non esiste più e non potrà essere utilizzata di " -"nuovo. A volte potresti avere bisogno di un servizio OnionShare permanente. " -"Può essere utile ad esempio se volessi ospitare un sito web disponibile allo " -"stesso indirizzo di OnionShare anche se riavvii il tuo computer." +"OnionShare, il suo indirizzo non esiste più e non potrà essere utilizzata" +" di nuovo. A volte potresti avere bisogno di un servizio OnionShare " +"permanente. Può essere utile ad esempio se volessi ospitare un sito web " +"disponibile allo stesso indirizzo di OnionShare anche se riavvii il tuo " +"computer." #: ../../source/advanced.rst:13 msgid "" @@ -47,19 +47,20 @@ msgid "" "open it when I open OnionShare\" box before starting the server. When a " "tab is saved a purple pin icon appears to the left of its server status." msgstr "" -"Per rendere permanente una qualsiasi scheda, seleziona la casella \"Salva " -"questa scheda, e aprirla automaticamente quando apro OnionShare\" prima di " -"avviare il server. Quando una scheda viene salvata, a sinistra dello stato " -"del server appare l'icona di uno spillo viola." +"Per rendere permanente una qualsiasi scheda, seleziona la casella \"Salva" +" questa scheda, e aprirla automaticamente quando apro OnionShare\" prima " +"di avviare il server. Quando una scheda viene salvata, a sinistra dello " +"stato del server appare l'icona di uno spillo viola." #: ../../source/advanced.rst:18 +#, fuzzy msgid "" "When you quit OnionShare and then open it again, your saved tabs will " "start opened. You'll have to manually start each service, but when you do" -" they will start with the same OnionShare address and password." +" they will start with the same OnionShare address and private key." msgstr "" -"Quando chiudi OnionShare e lo apri di nuovo le tue tab salvate saranno già " -"aperte. Dovrai avviare manualmente ogni servizio, ma quando lo farai " +"Quando chiudi OnionShare e lo apri di nuovo le tue tab salvate saranno " +"già aperte. Dovrai avviare manualmente ogni servizio, ma quando lo farai " "ripartiranno con lo stesso indirizzo OnionShare e password." #: ../../source/advanced.rst:21 @@ -67,58 +68,71 @@ msgid "" "If you save a tab, a copy of that tab's onion service secret key will be " "stored on your computer with your OnionShare settings." msgstr "" -"Se salvi una tab, una copia della chiave segreta dell'onion service della " -"tab sarà salvata sul tuo computer con le tue impostazioni di OnionShare." +"Se salvi una tab, una copia della chiave segreta dell'onion service della" +" tab sarà salvata sul tuo computer con le tue impostazioni di OnionShare." #: ../../source/advanced.rst:26 -msgid "Turn Off Passwords" -msgstr "Disattiva le Password" +msgid "Turn Off Private Key" +msgstr "" #: ../../source/advanced.rst:28 msgid "" -"By default, all OnionShare services are protected with the username " -"``onionshare`` and a randomly-generated password. If someone takes 20 " -"wrong guesses at the password, your onion service is automatically " -"stopped to prevent a brute force attack against the OnionShare service." +"By default, all OnionShare services are protected with a private key, " +"which Tor calls \"client authentication\"." msgstr "" -"Per impostazione predefinita, tutti i servizi OnionShare sono protetti con " -"il nome utente ``onionshare`` e una password generata casualmente. Se " -"qualcuno fa 20 tentativi sbagliati sulla password, il tuo servizio onion " -"viene automaticamente interrotto per prevenire un attacco di forza bruta " -"contro il servizio OnionShare." -#: ../../source/advanced.rst:31 +#: ../../source/advanced.rst:30 +msgid "" +"When browsing to an OnionShare service in Tor Browser, Tor Browser will " +"prompt for the private key to be entered." +msgstr "" + +#: ../../source/advanced.rst:32 +#, fuzzy msgid "" "Sometimes you might want your OnionShare service to be accessible to the " "public, like if you want to set up an OnionShare receive service so the " "public can securely and anonymously send you files. In this case, it's " -"better to disable the password altogether. If you don't do this, someone " -"can force your server to stop just by making 20 wrong guesses of your " -"password, even if they know the correct password." +"better to disable the private key altogether." msgstr "" -"A volte potresti volere che il tuo servizio OnionShare sia accessibile al " -"pubblico, ad esempio se desideri impostare un servizio di ricezione " +"A volte potresti volere che il tuo servizio OnionShare sia accessibile al" +" pubblico, ad esempio se desideri impostare un servizio di ricezione " "OnionShare in modo che il pubblico possa inviarti file in modo sicuro e " -"anonimo. In questo caso, è meglio disabilitare del tutto la password. Se non " -"lo fai, qualcuno può forzare l'arresto del tuo server semplicemente facendo " -"20 tentativi errati della tua password, anche se conosce la password " -"corretta." +"anonimo. In questo caso, è meglio disabilitare del tutto la password. Se " +"non lo fai, qualcuno può forzare l'arresto del tuo server semplicemente " +"facendo 20 tentativi errati della tua password, anche se conosce la " +"password corretta." #: ../../source/advanced.rst:35 msgid "" -"To turn off the password for any tab, just check the \"Don't use a " -"password\" box before starting the server. Then the server will be public" -" and won't have a password." +"To turn off the private key for any tab, check the \"This is a public " +"OnionShare service (disables private key)\" box before starting the " +"server. Then the server will be public and won't need a private key to " +"view in Tor Browser." msgstr "" -"Per disattivare la password per qualsiasi scheda, seleziona la casella \"Non " -"utilizzare una password\" prima di avviare il server. Quindi il server sarà " -"pubblico e non avrà una password." -#: ../../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" msgstr "Orari Programmati" -#: ../../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 " @@ -126,27 +140,27 @@ msgid "" "scheduled time\", \"Stop onion service at scheduled time\", or both, and " "set the respective desired dates and times." msgstr "" -"OnionShare supporta la pianificazione esattamente quando un servizio deve " -"essere avviato e interrotto. Prima di avviare un server, fai clic su \"Mostra" -" impostazioni avanzate\" nella relativa scheda, quindi seleziona le caselle " -"accanto a \"Avvia servizio onion all'ora pianificata\", \"Arresta il " -"servizio onion all'ora pianificata\" o entrambe e imposta le rispettive date " -"e ore desiderate." +"OnionShare supporta la pianificazione esattamente quando un servizio deve" +" essere avviato e interrotto. Prima di avviare un server, fai clic su " +"\"Mostra impostazioni avanzate\" nella relativa scheda, quindi seleziona " +"le caselle accanto a \"Avvia servizio onion all'ora pianificata\", " +"\"Arresta il servizio onion all'ora pianificata\" o entrambe e imposta le" +" rispettive date e ore desiderate." -#: ../../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." msgstr "" -"Se hai pianificato un servizio che sia avviato in futuro, quando fai clic " -"sul pulsante \"Avvia condivisione\" vedrai un timer che esegue il conto alla " -"rovescia fino all'avvio. Se hai programmato di interromperlo in futuro, dopo " -"l'avvio vedrai un conto alla rovescia fino a quando si fermerà " -"automaticamente." +"Se hai pianificato un servizio che sia avviato in futuro, quando fai clic" +" sul pulsante \"Avvia condivisione\" vedrai un timer che esegue il conto " +"alla rovescia fino all'avvio. Se hai programmato di interromperlo in " +"futuro, dopo l'avvio vedrai un conto alla rovescia fino a quando si " +"fermerà automaticamente." -#: ../../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 " @@ -159,31 +173,32 @@ msgstr "" "qualcosa. Se non ti succede nulla, puoi annullare il servizio prima " "dell'inizio programmato." -#: ../../source/advanced.rst:51 +#: ../../source/advanced.rst:60 +#, fuzzy 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 " +"making sure they're not available on the internet for more than a few " "days." msgstr "" -"**La pianificazione dell'arresto automatico di un servizio OnionShare può " -"essere utile per limitare l'esposizione**, ad esempio se desideri " +"**La pianificazione dell'arresto automatico di un servizio OnionShare può" +" essere utile per limitare l'esposizione**, ad esempio se desideri " "condividere documenti segreti assicurandoti che non siano disponibili su " "Internet per più di pochi giorni." -#: ../../source/advanced.rst:56 +#: ../../source/advanced.rst:67 msgid "Command-line Interface" msgstr "Interfaccia della riga di comando" -#: ../../source/advanced.rst:58 +#: ../../source/advanced.rst:69 msgid "" "In addition to its graphical interface, OnionShare has a command-line " "interface." msgstr "" -"Oltre alla sua interfaccia grafica, OnionShare ha un'interfaccia a riga di " -"comando." +"Oltre alla sua interfaccia grafica, OnionShare ha un'interfaccia a riga " +"di comando." -#: ../../source/advanced.rst:60 +#: ../../source/advanced.rst:71 msgid "" "You can install just the command-line version of OnionShare using " "``pip3``::" @@ -191,7 +206,7 @@ msgstr "" "Puoi installare solo la versione a riga di comando di OnionShare usando " "``pip3``::" -#: ../../source/advanced.rst:64 +#: ../../source/advanced.rst:75 msgid "" "Note that you will also need the ``tor`` package installed. In macOS, " "install it with: ``brew install tor``" @@ -199,87 +214,39 @@ msgstr "" "Nota che avrai anche bisogno del pacchetto ``tor`` installato. In macOS, " "installalo con: ``brew install tor``" -#: ../../source/advanced.rst:66 +#: ../../source/advanced.rst:77 msgid "Then run it like this::" msgstr "Quindi eseguilo in questo modo::" -#: ../../source/advanced.rst:70 +#: ../../source/advanced.rst:81 +msgid "" +"For information about installing it on different operating systems, see " +"the `CLI readme file " +"`_ " +"in the git repository." +msgstr "" + +#: ../../source/advanced.rst:83 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 "" -"Se hai installato OnionShare utilizzando il pacchetto Linux Snapcraft, puoi " -"anche eseguire semplicemente ``onionshare.cli`` per accedere alla versione " -"dell'interfaccia a riga di comando." +"Se hai installato OnionShare utilizzando il pacchetto Linux Snapcraft, " +"puoi anche eseguire semplicemente ``onionshare.cli`` per accedere alla " +"versione dell'interfaccia a riga di comando." -#: ../../source/advanced.rst:73 +#: ../../source/advanced.rst:86 msgid "Usage" msgstr "Utilizzo" -#: ../../source/advanced.rst:75 +#: ../../source/advanced.rst:88 msgid "" "You can browse the command-line documentation by running ``onionshare " "--help``::" msgstr "" -"Puoi sfogliare la documentazione della riga di comando eseguendo ``" -"onionshare --help``::" - -#: ../../source/advanced.rst:132 -msgid "Legacy Addresses" -msgstr "Indirizzi Obsoleti" - -#: ../../source/advanced.rst:134 -msgid "" -"OnionShare uses v3 Tor onion services by default. These are modern onion " -"addresses that have 56 characters, for example::" -msgstr "" -"OnionShare utilizza i servizi onion Tor v3 per impostazione predefinita. " -"Questi sono indirizzi onion moderni che hanno 56 caratteri, ad esempio:" - -#: ../../source/advanced.rst:139 -msgid "" -"OnionShare still has support for v2 onion addresses, the old type of " -"onion addresses that have 16 characters, for example::" -msgstr "" -"OnionShare ha ancora il supporto per gli indirizzi onion v2, il vecchio tipo " -"di indirizzi onion che hanno 16 caratteri, ad esempio:" - -#: ../../source/advanced.rst:143 -msgid "" -"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " -"not recommended, as v3 onion addresses are more secure." -msgstr "" -"OnionShare chiama gli indirizzi onion v2 \"indirizzi legacy\" e non sono " -"consigliati, poiché gli indirizzi onion v3 sono più sicuri." - -#: ../../source/advanced.rst:145 -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 "" -"Per utilizzare gli indirizzi legacy, prima di avviare un server fai clic su " -"\"Mostra impostazioni avanzate\" dalla relativa scheda e seleziona la " -"casella \"Utilizza un indirizzo legacy (servizio onion v2, sconsigliato)\". " -"Nella modalità legacy puoi facoltativamente attivare l'autenticazione del " -"client Tor. Una volta avviato un server in modalità legacy, non è possibile " -"rimuovere la modalità legacy in quella scheda. Invece è necessario avviare " -"un servizio separato in una scheda separata." - -#: ../../source/advanced.rst:150 -msgid "" -"Tor Project plans to `completely deprecate v2 onion services " -"`_ on October 15, " -"2021, and legacy onion services will be removed from OnionShare before " -"then." -msgstr "" -"Il Progetto Tor prevede di `deprecare completamente i servizi onion v2 " -"`_ il 15 ottobre 2021, " -"ei servizi onion legacy saranno rimossi da OnionShare prima di allora." +"Puoi sfogliare la documentazione della riga di comando eseguendo " +"``onionshare --help``::" #~ msgid "Make a symbolic link to the OnionShare command line binary line this::" #~ msgstr "" @@ -479,3 +446,120 @@ msgstr "" #~ " services will soon be removed from" #~ " OnionShare as well." #~ msgstr "" + +#~ msgid "Turn Off Passwords" +#~ msgstr "Disattiva le Password" + +#~ msgid "" +#~ "By default, all OnionShare services are" +#~ " protected with the username ``onionshare``" +#~ " and a randomly-generated password. " +#~ "If someone takes 20 wrong guesses " +#~ "at the password, your onion service " +#~ "is automatically stopped to prevent a" +#~ " brute force attack against the " +#~ "OnionShare service." +#~ msgstr "" +#~ "Per impostazione predefinita, tutti i " +#~ "servizi OnionShare sono protetti con il" +#~ " nome utente ``onionshare`` e una " +#~ "password generata casualmente. Se qualcuno " +#~ "fa 20 tentativi sbagliati sulla " +#~ "password, il tuo servizio onion viene" +#~ " automaticamente interrotto per prevenire " +#~ "un attacco di forza bruta contro " +#~ "il servizio OnionShare." + +#~ 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 "" +#~ "Per disattivare la password per " +#~ "qualsiasi scheda, seleziona la casella " +#~ "\"Non utilizzare una password\" prima di" +#~ " avviare il server. Quindi il server" +#~ " sarà pubblico e non avrà una " +#~ "password." + +#~ msgid "Legacy Addresses" +#~ msgstr "Indirizzi Obsoleti" + +#~ msgid "" +#~ "OnionShare uses v3 Tor onion services" +#~ " by default. These are modern onion" +#~ " addresses that have 56 characters, " +#~ "for example::" +#~ msgstr "" +#~ "OnionShare utilizza i servizi onion Tor" +#~ " v3 per impostazione predefinita. Questi" +#~ " sono indirizzi onion moderni che " +#~ "hanno 56 caratteri, ad esempio:" + +#~ msgid "" +#~ "OnionShare still has support for v2 " +#~ "onion addresses, the old type of " +#~ "onion addresses that have 16 characters," +#~ " for example::" +#~ msgstr "" +#~ "OnionShare ha ancora il supporto per " +#~ "gli indirizzi onion v2, il vecchio " +#~ "tipo di indirizzi onion che hanno " +#~ "16 caratteri, ad esempio:" + +#~ msgid "" +#~ "OnionShare calls v2 onion addresses " +#~ "\"legacy addresses\", and they are not" +#~ " recommended, as v3 onion addresses " +#~ "are more secure." +#~ msgstr "" +#~ "OnionShare chiama gli indirizzi onion v2" +#~ " \"indirizzi legacy\" e non sono " +#~ "consigliati, poiché gli indirizzi onion " +#~ "v3 sono più sicuri." + +#~ 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 "" +#~ "Per utilizzare gli indirizzi legacy, " +#~ "prima di avviare un server fai " +#~ "clic su \"Mostra impostazioni avanzate\" " +#~ "dalla relativa scheda e seleziona la " +#~ "casella \"Utilizza un indirizzo legacy " +#~ "(servizio onion v2, sconsigliato)\". Nella " +#~ "modalità legacy puoi facoltativamente attivare" +#~ " l'autenticazione del client Tor. Una " +#~ "volta avviato un server in modalità " +#~ "legacy, non è possibile rimuovere la " +#~ "modalità legacy in quella scheda. Invece" +#~ " è necessario avviare un servizio " +#~ "separato in una scheda separata." + +#~ msgid "" +#~ "Tor Project plans to `completely " +#~ "deprecate v2 onion services " +#~ "`_ on" +#~ " October 15, 2021, and legacy onion" +#~ " services will be removed from " +#~ "OnionShare before then." +#~ msgstr "" +#~ "Il Progetto Tor prevede di `deprecare" +#~ " completamente i servizi onion v2 " +#~ "`_ il" +#~ " 15 ottobre 2021, ei servizi onion" +#~ " legacy saranno rimossi da OnionShare " +#~ "prima di allora." + diff --git a/docs/source/locale/it/LC_MESSAGES/develop.po b/docs/source/locale/it/LC_MESSAGES/develop.po index cc8f5092..c5c42f67 100644 --- a/docs/source/locale/it/LC_MESSAGES/develop.po +++ b/docs/source/locale/it/LC_MESSAGES/develop.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2020-12-01 17:29+0000\n" "Last-Translator: x \n" -"Language-Team: LANGUAGE \n" "Language: it\n" +"Language-Team: it \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/develop.rst:2 msgid "Developing OnionShare" @@ -42,10 +41,11 @@ msgstr "" "domande, condividere idee e design, e pianificare sviluppi futuri. (Si " "tratta anche di un modo facile per mandare messaggi diretti protetti da " "crittografia end-to-end tra le persone che fanno parte della comunità di " -"OnionShare, simile agli indirizzi OnionShare.) Per usare Keybase, scarica l'`" -"app Keybase `_, crea un account, e `unisciti a " -"questo team `_. All'interno dell'app, " -"vai su \"Teams\", clicca \"Join a Team\", e scrivi \"onionshare\"." +"OnionShare, simile agli indirizzi OnionShare.) Per usare Keybase, scarica" +" l'`app Keybase `_, crea un account, e " +"`unisciti a questo team `_. " +"All'interno dell'app, vai su \"Teams\", clicca \"Join a Team\", e scrivi " +"\"onionshare\"." #: ../../source/develop.rst:12 msgid "" @@ -53,35 +53,37 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"OnionShare ha anche una `mailing list `_ per sviluppatori e designer che vogliono " -"discutere del progetto." +"OnionShare ha anche una `mailing list " +"`_ per " +"sviluppatori e designer che vogliono discutere del progetto." #: ../../source/develop.rst:15 msgid "Contributing Code" msgstr "Contribuire al Codice" #: ../../source/develop.rst:17 +#, fuzzy msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" "Il codice sorgente di OnionShare si trova in questo repository Git: " "https://github.com/micahflee/onionshare" #: ../../source/develop.rst:19 +#, fuzzy msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" -"Se desideri contribuire al codice di OnionShare, è utile entrare a far parte " -"del team di Keybase e porre domande su ciò su cui stai pensando di lavorare. " -"Dovresti anche esaminare tutte le `questioni aperte ` _ su GitHub per vedere se ce ne sono alcune " -"che vorresti affrontare." +"Se desideri contribuire al codice di OnionShare, è utile entrare a far " +"parte del team di Keybase e porre domande su ciò su cui stai pensando di " +"lavorare. Dovresti anche esaminare tutte le `questioni aperte " +"` _ su GitHub per vedere " +"se ce ne sono alcune che vorresti affrontare." #: ../../source/develop.rst:22 msgid "" @@ -91,8 +93,8 @@ msgid "" msgstr "" "Quando sei pronto per contribuire al codice, apri una richiesta pull nel " "repository GitHub e uno dei manutentori del progetto lo esaminerà ed " -"eventualmente farà domande, richiederà modifiche, lo rifiuterà o lo inserirà " -"nel progetto." +"eventualmente farà domande, richiederà modifiche, lo rifiuterà o lo " +"inserirà nel progetto." #: ../../source/develop.rst:27 msgid "Starting Development" @@ -101,17 +103,12 @@ msgstr "Avvio dello sviluppo" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " "graphical version." msgstr "" -"OnionShare è sviluppato in Python. Per iniziare, clona il repository Git su " -"https://github.com/micahflee/onionshare/ e quindi consulta il file `` cli/" -"README.md `` per sapere come configurare il tuo ambiente di sviluppo per la " -"versione a riga di comando e il file `` desktop/README.md`` per apprendere " -"come configurare l'ambiente di sviluppo per la versione grafica." #: ../../source/develop.rst:32 msgid "" @@ -140,19 +137,19 @@ msgid "" "reloaded), and other debug info. For example::" msgstr "" "Durante lo sviluppo, è conveniente eseguire OnionShare da un terminale e " -"aggiungere il flag ` --verbose`` (o ``-v``) al comando. Questo stampa molti " -"messaggi utili su terminale, come quando determinati oggetti vengono " -"inizializzati, quando si verificano eventi (come i pulsanti cliccati, le " -"impostazioni salvate o ricaricate) e altre informazioni di debug. Per " -"esempio::" +"aggiungere il flag ` --verbose`` (o ``-v``) al comando. Questo stampa " +"molti messaggi utili su terminale, come quando determinati oggetti " +"vengono inizializzati, quando si verificano eventi (come i pulsanti " +"cliccati, le impostazioni salvate o ricaricate) e altre informazioni di " +"debug. Per esempio::" #: ../../source/develop.rst:117 msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" msgstr "" -"Puoi aggiungere i tuoi messaggi di debug eseguendo il metodo ``Common.log`` " -"da ``onionshare/common.py``. Per esempio::" +"Puoi aggiungere i tuoi messaggi di debug eseguendo il metodo " +"``Common.log`` da ``onionshare/common.py``. Per esempio::" #: ../../source/develop.rst:121 msgid "" @@ -174,25 +171,26 @@ msgid "" "altogether during development. You can do this with the ``--local-only`` " "flag. For example::" msgstr "" -"Tor è lento ed è spesso conveniente saltare del tutto l'avvio dei servizi " -"onion durante lo sviluppo. Puoi farlo con il flag ``--local-only``. Per " +"Tor è lento ed è spesso conveniente saltare del tutto l'avvio dei servizi" +" onion durante lo sviluppo. Puoi farlo con il flag ``--local-only``. Per " "esempio::" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:165 +#, fuzzy msgid "" -"In this case, you load the URL ``http://onionshare:train-" -"system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" -" using the Tor Browser." +"In this case, you load the URL ``http://127.0.0.1:17641`` in a normal " +"web-browser like Firefox, instead of using the Tor Browser. The private " +"key is not actually needed in local-only mode, so you can ignore it." msgstr "" -"In questo caso, carichi l'URL ``http://onionshare:train-system@127.0.0." -"1:17635`` in un normale browser web come Firefox, invece di usare Tor " -"Browser." +"In questo caso, carichi l'URL ``http://onionshare:train-" +"system@127.0.0.1:17635`` in un normale browser web come Firefox, invece " +"di usare Tor Browser." -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:168 msgid "Contributing Translations" msgstr "Contribuire alle Traduzioni" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:170 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -201,53 +199,54 @@ msgid "" "needed." msgstr "" "Contribuisci a rendere OnionShare più facile da usare e più familiare e " -"accogliente per le persone traducendolo su `Hosted Weblate `_. Mantieni sempre \"OnionShare\" in " -"lettere latine e usa \"OnionShare (localname)\" se necessario." +"accogliente per le persone traducendolo su `Hosted Weblate " +"`_. Mantieni sempre " +"\"OnionShare\" in lettere latine e usa \"OnionShare (localname)\" se " +"necessario." -#: ../../source/develop.rst:171 +#: ../../source/develop.rst:172 msgid "To help translate, make a Hosted Weblate account and start contributing." msgstr "" "Per aiutare a tradurre, crea un account Hosted Weblate e inizia a " "contribuire." -#: ../../source/develop.rst:174 +#: ../../source/develop.rst:175 msgid "Suggestions for Original English Strings" msgstr "Suggerimenti per le Stringhe Originali in Inglese" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:177 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." msgstr "" -"A volte le stringhe inglesi originali sono sbagliate o non corrispondono tra " -"l'applicazione e la documentazione." +"A volte le stringhe inglesi originali sono sbagliate o non corrispondono " +"tra l'applicazione e la documentazione." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:179 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " "developers see the suggestion, and can potentially modify the string via " "the usual code review processes." msgstr "" -"Miglioramenti alla stringa sorgente del file aggiungendo @kingu al commento " -"di Weblate o aprendo un problema su GitHub o una richiesta pull. " -"Quest'ultimo garantisce che tutti gli sviluppatori a monte vedano il " +"Miglioramenti alla stringa sorgente del file aggiungendo @kingu al " +"commento di Weblate o aprendo un problema su GitHub o una richiesta pull." +" Quest'ultimo garantisce che tutti gli sviluppatori a monte vedano il " "suggerimento e possano potenzialmente modificare la stringa tramite i " "consueti processi di revisione del codice." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:183 msgid "Status of Translations" msgstr "Stato delle Traduzioni" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:184 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Ecco lo stato attuale della traduzione. Se vuoi iniziare una traduzione in " -"una lingua non ancora iniziata, scrivi alla mailing list: onionshare-" +"Ecco lo stato attuale della traduzione. Se vuoi iniziare una traduzione " +"in una lingua non ancora iniziata, scrivi alla mailing list: onionshare-" "dev@lists.riseup.net" #~ msgid "" @@ -465,3 +464,27 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "" + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" +#~ "OnionShare è sviluppato in Python. Per" +#~ " iniziare, clona il repository Git su" +#~ " https://github.com/micahflee/onionshare/ e quindi " +#~ "consulta il file `` cli/README.md `` " +#~ "per sapere come configurare il tuo " +#~ "ambiente di sviluppo per la versione " +#~ "a riga di comando e il file " +#~ "`` desktop/README.md`` per apprendere come " +#~ "configurare l'ambiente di sviluppo per " +#~ "la versione grafica." + diff --git a/docs/source/locale/it/LC_MESSAGES/features.po b/docs/source/locale/it/LC_MESSAGES/features.po index 6963a29c..17c89855 100644 --- a/docs/source/locale/it/LC_MESSAGES/features.po +++ b/docs/source/locale/it/LC_MESSAGES/features.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2020-12-02 19:29+0000\n" "Last-Translator: x \n" -"Language-Team: LANGUAGE \n" "Language: it\n" +"Language-Team: it \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/features.rst:4 msgid "How OnionShare Works" @@ -29,54 +28,66 @@ msgid "" "other people as `Tor `_ `onion services " "`_." msgstr "" -"I web server sono avviati localmente sul tuo computer e resi accessibili ad " -"altre persone come `Tor `_ `onion services " -"`_." +"I web server sono avviati localmente sul tuo computer e resi accessibili " +"ad altre persone come `Tor `_ `onion " +"services `_." #: ../../source/features.rst:8 -msgid "" -"By default, OnionShare web addresses are protected with a random " -"password. A typical OnionShare address might look something like this::" +#, fuzzy +msgid "By default, OnionShare web addresses are protected with a private key." msgstr "" -"Di default, gli indirizzi web di OnionShare sono protetti con una password " -"random. Un tipico esempio di indirizzo di OnionShare potrebbe somigliare a " -"questo::" +"Di default, gli indirizzi web di OnionShare sono protetti con una " +"password random. Un tipico esempio di indirizzo di OnionShare potrebbe " +"somigliare a questo::" -#: ../../source/features.rst:12 +#: ../../source/features.rst:10 +msgid "OnionShare addresses look something like this::" +msgstr "" + +#: ../../source/features.rst:14 +msgid "And private keys might look something like this::" +msgstr "" + +#: ../../source/features.rst:18 +#, fuzzy msgid "" -"You're responsible for securely sharing that URL using a communication " -"channel of your choice like in an encrypted chat message, or using " -"something less secure like unencrypted e-mail, depending on your `threat " -"model `_." +"You're responsible for securely sharing that URL and private key using a " +"communication channel of your choice like in an encrypted chat message, " +"or using something less secure like unencrypted email, depending on your " +"`threat model `_." msgstr "" "Sei responsabile della condivisione sicura di quell'URL utilizzando un " "canale di comunicazione a tua scelta come ad esempio un messaggio in una " "chat cifrata, o utilizzando qualcosa di meno sicuro come le e-mail non " -"cifrate, a seconda del tuo `threat model `_." +"cifrate, a seconda del tuo `threat model `_." -#: ../../source/features.rst:14 +#: ../../source/features.rst:20 +#, fuzzy msgid "" "The people you send the URL to then copy and paste it into their `Tor " "Browser `_ to access the OnionShare service." +" Tor Browser will then prompt for the private key, which the people can " +"also then copy and paste in." msgstr "" -"Le persone a cui invii l'URL da copiare e incollare nel loro `Tor Browser " -"`_ per accedere al servizio di OnionShare." +"Le persone a cui invii l'URL da copiare e incollare nel loro `Tor Browser" +" `_ per accedere al servizio di OnionShare." -#: ../../source/features.rst:16 +#: ../../source/features.rst:24 +#, fuzzy msgid "" "If you run OnionShare on your laptop to send someone files, and then " "suspend it before the files are sent, the service will not be available " -"until your laptop is unsuspended and on the Internet again. OnionShare " +"until your laptop is unsuspended and on the internet again. OnionShare " "works best when working with people in real-time." msgstr "" -"Se usi OnionShare sul tuo laptop per inviare a qualcuno dei file, e poi lo " -"sospendi prima che i file siano stati inviati, il servizio non sarà " +"Se usi OnionShare sul tuo laptop per inviare a qualcuno dei file, e poi " +"lo sospendi prima che i file siano stati inviati, il servizio non sarà " "funzionante fino a quando non avrai risvegliato il tuo laptop e sarà di " -"nuovo connesso a Internet. OnionShare funziona al meglio quando si lavora " -"con altre persone in tempo reale." +"nuovo connesso a Internet. OnionShare funziona al meglio quando si lavora" +" con altre persone in tempo reale." -#: ../../source/features.rst:18 +#: ../../source/features.rst:26 msgid "" "Because your own computer is the web server, *no third party can access " "anything that happens in OnionShare*, not even the developers of " @@ -84,28 +95,29 @@ msgid "" "Tor onion services too, it also protects your anonymity. See the " ":doc:`security design ` for more info." msgstr "" -"Dal momento che il tuo computer è il tuo web server, *nessuna terza parte " -"può avere accesso a quello che avviene dentro OnionShare*, nemmeno gli " -"sviluppatori di OnionShare. Tutto è completamente privato. E dal momento che " -"OnionShare sfrutta anche i Tor onion services, garantisce anche il tuo " -"anonimato. Guarda il :doc:`security design ` per maggiori " +"Dal momento che il tuo computer è il tuo web server, *nessuna terza parte" +" può avere accesso a quello che avviene dentro OnionShare*, nemmeno gli " +"sviluppatori di OnionShare. Tutto è completamente privato. E dal momento " +"che OnionShare sfrutta anche i Tor onion services, garantisce anche il " +"tuo anonimato. Guarda il :doc:`security design ` per maggiori " "informazioni." -#: ../../source/features.rst:21 +#: ../../source/features.rst:29 msgid "Share Files" msgstr "Condividi i file" -#: ../../source/features.rst:23 +#: ../../source/features.rst:31 msgid "" "You can use OnionShare to send files and folders to people securely and " "anonymously. Open a share tab, drag in the files and folders you wish to " "share, and click \"Start sharing\"." msgstr "" "Puoi usare OnionShare per inviare file e cartelle alle persone in modo " -"sicuro e anonimo. Apri una tab per la condivisione, trascina dentro i file e " -"le cartelle che vuoi condividere, e clicca \"Inizia la condivisione\"." +"sicuro e anonimo. Apri una tab per la condivisione, trascina dentro i " +"file e le cartelle che vuoi condividere, e clicca \"Inizia la " +"condivisione\"." -#: ../../source/features.rst:27 ../../source/features.rst:93 +#: ../../source/features.rst:35 ../../source/features.rst:112 msgid "" "After you add files, you'll see some settings. Make sure you choose the " "setting you're interested in before you start sharing." @@ -114,118 +126,139 @@ msgstr "" "selezionare le impostazioni che ti interessano prima di iniziare la " "condivisione." -#: ../../source/features.rst:31 +#: ../../source/features.rst:39 +#, fuzzy msgid "" "As soon as someone finishes downloading your files, OnionShare will " -"automatically stop the server, removing the website from the Internet. To" +"automatically stop the server, removing the website from the internet. To" " allow multiple people to download them, uncheck the \"Stop sharing after" " files have been sent (uncheck to allow downloading individual files)\" " "box." msgstr "" -"Non appena qualcuno finisce di scaricare i tuoi file, OnionShare arresterà " -"automaticamente il server, rimuovendo il sito web da Internet. Per " -"permettere a più persone di scaricare i tuoi file, deseleziona la casella " -"\"Interrompere la condivisione dopo che i file sono stati inviati (" -"deselezionare per consentire il download dei singoli file)\"." +"Non appena qualcuno finisce di scaricare i tuoi file, OnionShare " +"arresterà automaticamente il server, rimuovendo il sito web da Internet. " +"Per permettere a più persone di scaricare i tuoi file, deseleziona la " +"casella \"Interrompere la condivisione dopo che i file sono stati inviati" +" (deselezionare per consentire il download dei singoli file)\"." -#: ../../source/features.rst:34 +#: ../../source/features.rst:42 msgid "" "Also, if you uncheck this box, people will be able to download the " "individual files you share rather than a single compressed version of all" " the files." msgstr "" -"Inoltre, se si deseleziona questa casella, le persone potranno scaricare i " -"singoli file che si condividono individualmente piuttosto che una singola " -"versione compressa di tutti i file." +"Inoltre, se si deseleziona questa casella, le persone potranno scaricare " +"i singoli file che si condividono individualmente piuttosto che una " +"singola versione compressa di tutti i file." -#: ../../source/features.rst:36 +#: ../../source/features.rst:44 msgid "" "When you're ready to share, click the \"Start sharing\" button. You can " "always click \"Stop sharing\", or quit OnionShare, immediately taking the" " website down. You can also click the \"↑\" icon in the top-right corner " "to show the history and progress of people downloading files from you." msgstr "" -"Quando sei pronto a condividere, clicca il tasto \"Inizia la condivisione\". " -"Puoi sempre cliccare su \"Ferma la condivisione\", o uscire da OnionShare, " -"rimuovendo immediatamente il sito web. Puoi anche cliccare sull'icona \"↑\" " -"nell'angolo in alto a destra per mostrare la storia e lo stato di " -"avanzamento del download delle persone che scaricano i file da te." +"Quando sei pronto a condividere, clicca il tasto \"Inizia la " +"condivisione\". Puoi sempre cliccare su \"Ferma la condivisione\", o " +"uscire da OnionShare, rimuovendo immediatamente il sito web. Puoi anche " +"cliccare sull'icona \"↑\" nell'angolo in alto a destra per mostrare la " +"storia e lo stato di avanzamento del download delle persone che scaricano" +" i file da te." -#: ../../source/features.rst:40 +#: ../../source/features.rst:48 +#, fuzzy msgid "" -"Now that you have a OnionShare, copy the address and send it to the " -"person you want to receive the files. If the files need to stay secure, " -"or the person is otherwise exposed to danger, use an encrypted messaging " -"app." +"Now that you have a OnionShare, copy the address and the private key and " +"send it to the person you want to receive the files. If the files need to" +" stay secure, or the person is otherwise exposed to danger, use an " +"encrypted messaging app." msgstr "" -"Ora che hai un OnionShare, copia l'indirizzo e invialo alla persona che vuoi " -"riceva i file. Se i file devono rimanere al sicuro, o nel caso in cui la " -"persona sia esposta a dei pericoli, utilizza un'app di messaggistica cifrata." +"Ora che hai un OnionShare, copia l'indirizzo e invialo alla persona che " +"vuoi riceva i file. Se i file devono rimanere al sicuro, o nel caso in " +"cui la persona sia esposta a dei pericoli, utilizza un'app di " +"messaggistica cifrata." -#: ../../source/features.rst:42 +#: ../../source/features.rst:50 +#, fuzzy msgid "" "That person then must load the address in Tor Browser. After logging in " -"with the random password included in the web address, the files can be " -"downloaded directly from your computer by clicking the \"Download Files\"" -" link in the corner." +"with the private key, the files can be downloaded directly from your " +"computer by clicking the \"Download Files\" link in the corner." msgstr "" -"Quella persona deve quindi caricare l'indirizzo sul Tor Browser. Dopo aver " -"effettuato l'accesso con la password casuale inclusa nell'indirizzo web, i " -"file possono essere scaricati direttamente dal tuo computer cliccando il " -"link \"Download Files\" nell'angolo." +"Quella persona deve quindi caricare l'indirizzo sul Tor Browser. Dopo " +"aver effettuato l'accesso con la password casuale inclusa nell'indirizzo " +"web, i file possono essere scaricati direttamente dal tuo computer " +"cliccando il link \"Download Files\" nell'angolo." -#: ../../source/features.rst:47 -msgid "Receive Files" -msgstr "Ricevere file" +#: ../../source/features.rst:55 +msgid "Receive Files and Messages" +msgstr "" -#: ../../source/features.rst:49 +#: ../../source/features.rst:57 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\"." +"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 "" -"Puoi usare OnionShare per permettere alle persone di caricare in maniera " -"anonima i file direttamente sul tuo computer, trasformandolo " -"fondamentalmente nella tua dropbox anonima. Apri la \"scheda Ricevi\", " -"scegli dove vuoi salvare i file e altre impostazioni, quindi clicca su " -"\"Avvia la modalità di ricezione\"." -#: ../../source/features.rst:54 +#: ../../source/features.rst:62 +msgid "You can browse for a folder to save messages and files that get submitted." +msgstr "" + +#: ../../source/features.rst:64 msgid "" -"This starts the OnionShare service. Anyone loading this address in their " -"Tor Browser will be able to upload files to your computer." +"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 "" -"Questo avvia il servizio di OnionShare. Chiunque visiti questo indirizzo sul " -"proprio Browser Tor sarà in grado di caricare i file sul tuo computer." -#: ../../source/features.rst:58 +#: ../../source/features.rst:66 +msgid "" +"You can check \"Use notification webhook\" and then choose a webhook URL " +"if you want to be notified when someone submits files or messages to your" +" OnionShare service. If you use this feature, OnionShare will make an " +"HTTP POST request to this URL whenever someone submits files or messages." +" For example, if you want to get an encrypted text messaging on the " +"messaging app `Keybase `_, you can start a " +"conversation with `@webhookbot `_, type " +"``!webhook create onionshare-alerts``, and it will respond with a URL. " +"Use that as the notification webhook URL. If someone uploads a file to " +"your receive mode service, @webhookbot will send you a message on Keybase" +" letting you know as soon as it happens." +msgstr "" + +#: ../../source/features.rst:71 +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:75 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 "" -"Puoi anche cliccare l'icona della freccia in basso \"↓\" nell'angolo in alto " -"a destra per mostrare la cronologia e lo stato di avanzamento dei file che " -"ti sono stati inviati dalle persone." +"Puoi anche cliccare l'icona della freccia in basso \"↓\" nell'angolo in " +"alto a destra per mostrare la cronologia e lo stato di avanzamento dei " +"file che ti sono stati inviati dalle persone." -#: ../../source/features.rst:60 -msgid "Here is what it looks like for someone sending you files." +#: ../../source/features.rst:77 +#, fuzzy +msgid "Here is what it looks like for someone sending you files and messages." msgstr "Ecco come appare per qualcuno che ti sta inviando dei file." -#: ../../source/features.rst:64 +#: ../../source/features.rst:81 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." +"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 "" -"Quando qualcuno carica i file sul tuo servizio di ricezione, per " -"impostazione predefinita vengono salvati in una cartella chiamata " -"``OnionShare`` nella cartella principale del tuo computer, organizzata " -"automaticamente in sottocartelle separate in base al momento in cui i file " -"vengono caricati." -#: ../../source/features.rst:66 +#: ../../source/features.rst:83 msgid "" "Setting up an OnionShare receiving service is useful for journalists and " "others needing to securely accept documents from anonymous sources. When " @@ -234,28 +267,30 @@ msgid "" "whistleblower submission system." msgstr "" "L'impostazione di un servizio di ricezione di OnionShare è utile per i " -"giornalisti e altri che devono accettare in modo sicuro documenti da fonti " -"anonime. Quando viene utilizzato in questo modo, OnionShare è una sorta di " -"versione leggera, più semplice, non altrettanto sicura di `SecureDrop " -"`_, il sistema di segnalazione degli informatori." +"giornalisti e altri che devono accettare in modo sicuro documenti da " +"fonti anonime. Quando viene utilizzato in questo modo, OnionShare è una " +"sorta di versione leggera, più semplice, non altrettanto sicura di " +"`SecureDrop `_, il sistema di segnalazione degli" +" informatori." -#: ../../source/features.rst:69 +#: ../../source/features.rst:86 msgid "Use at your own risk" msgstr "Utilizzare a proprio rischio e pericolo" -#: ../../source/features.rst:71 +#: ../../source/features.rst:88 +#, fuzzy msgid "" -"Just like with malicious e-mail attachments, it's possible someone could " +"Just like with malicious email 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 "" -"Proprio come con gli allegati di posta elettronica dannosi, è possibile che " -"qualcuno possa tentare di attaccare il tuo computer caricando un file " -"dannoso sul tuo servizio OnionShare. OnionShare non aggiunge alcun " +"Proprio come con gli allegati di posta elettronica dannosi, è possibile " +"che qualcuno possa tentare di attaccare il tuo computer caricando un file" +" dannoso sul tuo servizio OnionShare. OnionShare non aggiunge alcun " "meccanismo di sicurezza per proteggere il tuo sistema da file dannosi." -#: ../../source/features.rst:73 +#: ../../source/features.rst:90 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" @@ -264,53 +299,61 @@ msgid "" "`_ or in a `Qubes `_ " "disposableVM." msgstr "" -"Se si riceve un documento Office o un PDF tramite OnionShare, è possibile " -"convertire questi documenti in PDF che possono essere aperti in sicurezza " -"utilizzando `Dangerzone `_. Puoi anche " -"proteggerti quando apri documenti non attendibili aprendoli in `Tails " -"`_ o in una macchina virtuale usa e " -"getta con`Qubes `_." +"Se si riceve un documento Office o un PDF tramite OnionShare, è possibile" +" convertire questi documenti in PDF che possono essere aperti in " +"sicurezza utilizzando `Dangerzone `_. Puoi " +"anche proteggerti quando apri documenti non attendibili aprendoli in " +"`Tails `_ o in una macchina " +"virtuale usa e getta con`Qubes `_." -#: ../../source/features.rst:76 +#: ../../source/features.rst:92 +msgid "However, it is always safe to open text messages sent through OnionShare." +msgstr "" + +#: ../../source/features.rst:95 msgid "Tips for running a receive service" msgstr "Consigli per la gestione di un servizio di ricezione" -#: ../../source/features.rst:78 +#: ../../source/features.rst:97 +#, fuzzy 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 " +" and connected to the internet, and not on the one you use on a regular " "basis." msgstr "" "Se desideri ospitare la tua casella personale anonima utilizzando " -"OnionShare, ti consigliamo di farlo su un computer dedicato separato, sempre " -"acceso e connesso a Internet, e non su quello che usi regolarmente." +"OnionShare, ti consigliamo di farlo su un computer dedicato separato, " +"sempre acceso e connesso a Internet, e non su quello che usi " +"regolarmente." -#: ../../source/features.rst:80 +#: ../../source/features.rst:99 +#, fuzzy msgid "" "If you intend to put the OnionShare address on your website or social " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a " -"public service (see :ref:`turn_off_passwords`)." +"public service (see :ref:`turn_off_private_key`). It's also a good idea " +"to give it a custom title (see :ref:`custom_titles`)." msgstr "" -"Se intendi inserire l'indirizzo OnionShare sul tuo sito web o sui profili " -"dei social media, salva la scheda (vedi :ref: `save_tabs`) ee gestiscila " -"come servizio pubblico (vedi :ref:` turn_off_passwords`)." +"Se intendi inserire l'indirizzo OnionShare sul tuo sito web o sui profili" +" dei social media, salva la scheda (vedi :ref: `save_tabs`) ee gestiscila" +" come servizio pubblico (vedi :ref:` turn_off_passwords`)." -#: ../../source/features.rst:83 +#: ../../source/features.rst:102 msgid "Host a Website" msgstr "Ospita un sito Web" -#: ../../source/features.rst:85 +#: ../../source/features.rst:104 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 "" -"Per ospitare un sito web HTML statico con OnionShare, apri una scheda del " -"sito Web, trascina i file e le cartelle che compongono il contenuto statico " -"e fai clic su \"Avvia condivisione\" quando sei pronto." +"Per ospitare un sito web HTML statico con OnionShare, apri una scheda del" +" sito Web, trascina i file e le cartelle che compongono il contenuto " +"statico e fai clic su \"Avvia condivisione\" quando sei pronto." -#: ../../source/features.rst:89 +#: ../../source/features.rst:108 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, " @@ -320,106 +363,121 @@ msgid "" " WordPress.)" msgstr "" "Se aggiungi un file ``index.html``, verrà visualizzato quando qualcuno " -"carica il tuo sito web. Dovresti anche includere qualsiasi altro file HTML, " -"file CSS, file JavaScript e immagini che compongono il sito web. (Tieni " -"presente che OnionShare supporta solo l'hosting di siti Web *statici*. Non " -"può ospitare siti Web che eseguono codice o utilizzano database. Quindi, ad " -"esempio, non puoi utilizzare WordPress.)" +"carica il tuo sito web. Dovresti anche includere qualsiasi altro file " +"HTML, file CSS, file JavaScript e immagini che compongono il sito web. " +"(Tieni presente che OnionShare supporta solo l'hosting di siti Web " +"*statici*. Non può ospitare siti Web che eseguono codice o utilizzano " +"database. Quindi, ad esempio, non puoi utilizzare WordPress.)" -#: ../../source/features.rst:91 +#: ../../source/features.rst:110 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 "" -"Se non hai un file ``index.html``, mostrerà invece un elenco di directory e " -"le persone che lo caricano possono esaminare i file e scaricarli." +"Se non hai un file ``index.html``, mostrerà invece un elenco di directory" +" e le persone che lo caricano possono esaminare i file e scaricarli." -#: ../../source/features.rst:98 +#: ../../source/features.rst:117 msgid "Content Security Policy" msgstr "Politica sulla Sicurezza dei Contenuti" -#: ../../source/features.rst:100 +#: ../../source/features.rst:119 +#, fuzzy msgid "" "By default OnionShare helps secure your website by setting a strict " -"`Content Security Police " +"`Content Security Policy " "`_ header. " "However, this prevents third-party content from loading inside the web " "page." msgstr "" -"Per impostazione predefinita, OnionShare aiuta a proteggere il tuo sito web " -"impostando una rigida intestazione della `Politica sulla sicurezza dei " -"contenuti `_. " +"Per impostazione predefinita, OnionShare aiuta a proteggere il tuo sito " +"web impostando una rigida intestazione della `Politica sulla sicurezza " +"dei contenuti `_. " "Tuttavia, ciò impedisce il caricamento di contenuti di terze parti " "all'interno della pagina web." -#: ../../source/features.rst:102 +#: ../../source/features.rst:121 +#, fuzzy 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." +"JavaScript libraries from CDNs, you have two options:" msgstr "" -"Se desideri caricare contenuti da siti Web di terze parti, come risorse o " -"librerie JavaScript da CDN, seleziona la casella \"Non inviare " -"l'intestazione della Politica di Sicurezza dei Contenuti (consente al tuo " -"sito web di utilizzare risorse di terze parti)\" prima di avviare il " +"Se desideri caricare contenuti da siti Web di terze parti, come risorse o" +" librerie JavaScript da CDN, seleziona la casella \"Non inviare " +"l'intestazione della Politica di Sicurezza dei Contenuti (consente al tuo" +" sito web di utilizzare risorse di terze parti)\" prima di avviare il " "servizio." -#: ../../source/features.rst:105 +#: ../../source/features.rst:123 +msgid "" +"You can disable sending a Content Security Policy header by checking the " +"\"Don't send Content Security Policy header (allows your website to use " +"third-party resources)\" box before starting the service." +msgstr "" + +#: ../../source/features.rst:124 +msgid "You can send a custom Content Security Policy header." +msgstr "" + +#: ../../source/features.rst:127 msgid "Tips for running a website service" msgstr "Suggerimenti per la gestione di un servizio di un sito web" -#: ../../source/features.rst:107 +#: ../../source/features.rst:129 +#, fuzzy 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 " +"just to quickly show someone something), it's recommended you do it on a " +"separate, dedicated computer that is 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 "" -"Se desideri ospitare un sito web a lungo termine utilizzando OnionShare (che " -"significa non qualcosa per mostrare rapidamente qualcosa a qualcuno), ti " -"consigliamo di farlo su un computer dedicato separato sempre acceso e " -"connesso a Internet, e non su quello che usi regolarmente. Salvare la scheda " -"(vedere :ref:`save_tabs`) in modo da poter riprendere il sito web con lo " -"stesso indirizzo se si chiude OnionShare e lo si riapre in seguito." +"Se desideri ospitare un sito web a lungo termine utilizzando OnionShare " +"(che significa non qualcosa per mostrare rapidamente qualcosa a " +"qualcuno), ti consigliamo di farlo su un computer dedicato separato " +"sempre acceso e connesso a Internet, e non su quello che usi " +"regolarmente. Salvare la scheda (vedere :ref:`save_tabs`) in modo da " +"poter riprendere il sito web con lo stesso indirizzo se si chiude " +"OnionShare e lo si riapre in seguito." -#: ../../source/features.rst:110 +#: ../../source/features.rst:132 +#, fuzzy msgid "" "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_private_key`)." msgstr "" "Se il tuo sito web è destinato al pubblico, dovresti gestirlo come un " "servizio pubblico (vedere :ref:`turn_off_passwords`)." -#: ../../source/features.rst:113 +#: ../../source/features.rst:135 msgid "Chat Anonymously" msgstr "Chatta in modo Anonimo" -#: ../../source/features.rst:115 +#: ../../source/features.rst:137 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 "" -"Puoi usare OnionShare per configurare una chat room privata e sicura che non " -"registra nulla. Basta aprire una scheda di chat e fare clic su \"Avvia " -"server della chat\"." +"Puoi usare OnionShare per configurare una chat room privata e sicura che " +"non registra nulla. Basta aprire una scheda di chat e fare clic su " +"\"Avvia server della chat\"." -#: ../../source/features.rst:119 +#: ../../source/features.rst:141 +#, fuzzy 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." +"After you start the server, copy the OnionShare address and private key " +"and send them 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 and private key." msgstr "" "Dopo aver avviato il server, copia l'indirizzo OnionShare e invialo alle " "persone che desideri nella chat room anonima. Se è importante limitare " "esattamente chi può partecipare, utilizza un'app di messaggistica " "crittografata per inviare l'indirizzo OnionShare." -#: ../../source/features.rst:124 +#: ../../source/features.rst:146 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 " @@ -427,12 +485,12 @@ msgid "" "\"Standard\" or \"Safer\", instead of \"Safest\"." msgstr "" "Le persone possono unirsi alla chat room caricando il proprio indirizzo " -"OnionShare nel Browser Tor. La chat room richiede JavasScript, quindi tutti " -"coloro che vogliono partecipare devono avere il proprio livello di sicurezza " -"Tor Browser impostato su \"Standard\" o \"Sicuro\", invece di \"Molto " -"sicuro\"." +"OnionShare nel Browser Tor. La chat room richiede JavasScript, quindi " +"tutti coloro che vogliono partecipare devono avere il proprio livello di " +"sicurezza Tor Browser impostato su \"Standard\" o \"Sicuro\", invece di " +"\"Molto sicuro\"." -#: ../../source/features.rst:127 +#: ../../source/features.rst:149 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 " @@ -440,21 +498,21 @@ msgid "" "get displayed at all, even if others were already chatting in the room." msgstr "" "Quando qualcuno si unisce alla chat room, gli viene assegnato un nome " -"casuale. Possono cambiare il loro nome digitando un nuovo nome nella casella " -"nel pannello di sinistra e premendo ↵. Poiché la cronologia della chat non " -"viene salvata da nessuna parte, non viene visualizzata affatto, anche se " -"altri stavano già chattando nella stanza." +"casuale. Possono cambiare il loro nome digitando un nuovo nome nella " +"casella nel pannello di sinistra e premendo ↵. Poiché la cronologia della" +" chat non viene salvata da nessuna parte, non viene visualizzata affatto," +" anche se altri stavano già chattando nella stanza." -#: ../../source/features.rst:133 +#: ../../source/features.rst:155 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 "" -"In una chat room di OnionShare, tutti sono anonimi. Chiunque può cambiare il " -"proprio nome in qualsiasi cosa e non c'è modo di confermare l'identità di " -"nessuno." +"In una chat room di OnionShare, tutti sono anonimi. Chiunque può cambiare" +" il proprio nome in qualsiasi cosa e non c'è modo di confermare " +"l'identità di nessuno." -#: ../../source/features.rst:136 +#: ../../source/features.rst:158 msgid "" "However, if you create an OnionShare chat room and securely send the " "address only to a small group of trusted friends using encrypted " @@ -462,15 +520,15 @@ msgid "" "room are your friends." msgstr "" "Tuttavia, se crei una chat room di OnionShare e invii in modo sicuro " -"l'indirizzo solo a un piccolo gruppo di amici fidati utilizzando messaggi " -"crittografati, puoi essere ragionevolmente sicuro che le persone che si " +"l'indirizzo solo a un piccolo gruppo di amici fidati utilizzando messaggi" +" crittografati, puoi essere ragionevolmente sicuro che le persone che si " "uniscono alla chat room siano i tuoi amici." -#: ../../source/features.rst:139 +#: ../../source/features.rst:161 msgid "How is this useful?" msgstr "In che modo è utile?" -#: ../../source/features.rst:141 +#: ../../source/features.rst:163 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." @@ -478,47 +536,40 @@ msgstr "" "Se devi già utilizzare un'app di messaggistica crittografata, qual è il " "punto di partenza di una chat room OnionShare? Lascia meno tracce." -#: ../../source/features.rst:143 +#: ../../source/features.rst:165 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 " +"message ends up on each device (the smartphones, 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 "" -"Se ad esempio invii un messaggio a un gruppo Signal, una copia del tuo " -"messaggio finisce su ogni dispositivo (i dispositivi e i computer se " -"configurano Signal Desktop) di ogni membro del gruppo. Anche se la scomparsa " -"dei messaggi è attiva, è difficile confermare che tutte le copie dei " -"messaggi vengono effettivamente eliminate da tutti i dispositivi e da " -"qualsiasi altro luogo (come i database delle notifiche) in cui potrebbero " -"essere state salvate. Le chat room di OnionShare non memorizzano alcun " -"messaggio da nessuna parte, quindi il problema è ridotto al minimo." -#: ../../source/features.rst:146 +#: ../../source/features.rst:168 +#, fuzzy 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 using a disposable email address, and then wait for the " "journalist to join the chat room, all without compromosing their " "anonymity." msgstr "" "Le chat room di OnionShare possono anche essere utili per le persone che " -"desiderano chattare in modo anonimo e sicuro con qualcuno senza dover creare " -"alcun account. Ad esempio, una fonte può inviare un indirizzo OnionShare a " -"un giornalista utilizzando un indirizzo email usa e getta, quindi attendere " -"che il giornalista si unisca alla chat room, il tutto senza compromettere il " -"proprio anonimato." +"desiderano chattare in modo anonimo e sicuro con qualcuno senza dover " +"creare alcun account. Ad esempio, una fonte può inviare un indirizzo " +"OnionShare a un giornalista utilizzando un indirizzo email usa e getta, " +"quindi attendere che il giornalista si unisca alla chat room, il tutto " +"senza compromettere il proprio anonimato." -#: ../../source/features.rst:150 +#: ../../source/features.rst:172 msgid "How does the encryption work?" msgstr "Come funziona la crittografia?" -#: ../../source/features.rst:152 +#: ../../source/features.rst:174 msgid "" "Because OnionShare relies on Tor onion services, connections between the " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " @@ -527,20 +578,20 @@ msgid "" "other members of the chat room using WebSockets, through their E2EE onion" " connections." msgstr "" -"Poiché OnionShare si basa sui servizi onion di Tor, le connessioni tra il " -"Browser Tor e OnionShare sono tutte crittografate end-to-end (E2EE). Quando " -"qualcuno pubblica un messaggio in una chat room OnionShare, lo invia al " -"server tramite la connessione E2EE onion, che quindi lo invia a tutti gli " -"altri membri della chat room utilizzando i WebSocket, attraverso le loro " -"connessioni E2EE onion." +"Poiché OnionShare si basa sui servizi onion di Tor, le connessioni tra il" +" Browser Tor e OnionShare sono tutte crittografate end-to-end (E2EE). " +"Quando qualcuno pubblica un messaggio in una chat room OnionShare, lo " +"invia al server tramite la connessione E2EE onion, che quindi lo invia a " +"tutti gli altri membri della chat room utilizzando i WebSocket, " +"attraverso le loro connessioni E2EE onion." -#: ../../source/features.rst:154 +#: ../../source/features.rst:176 msgid "" "OnionShare doesn't implement any chat encryption on its own. It relies on" " the Tor onion service's encryption instead." msgstr "" -"OnionShare non implementa alcuna crittografia della chat da solo. Si basa " -"invece sulla crittografia del servizio onion di Tor." +"OnionShare non implementa alcuna crittografia della chat da solo. Si basa" +" invece sulla crittografia del servizio onion di Tor." #~ msgid "How OnionShare works" #~ msgstr "" @@ -929,3 +980,91 @@ msgstr "" #~ "WebSockets, through their E2EE onion " #~ "connections." #~ msgstr "" + +#~ msgid "Receive Files" +#~ msgstr "Ricevere file" + +#~ 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 "" +#~ "Puoi usare OnionShare per permettere " +#~ "alle persone di caricare in maniera " +#~ "anonima i file direttamente sul tuo " +#~ "computer, trasformandolo fondamentalmente nella " +#~ "tua dropbox anonima. Apri la \"scheda" +#~ " Ricevi\", scegli dove vuoi salvare i" +#~ " file e altre impostazioni, quindi " +#~ "clicca su \"Avvia la modalità di " +#~ "ricezione\"." + +#~ msgid "" +#~ "This starts the OnionShare service. " +#~ "Anyone loading this address in their " +#~ "Tor Browser will be able to upload" +#~ " files to your computer." +#~ msgstr "" +#~ "Questo avvia il servizio di OnionShare." +#~ " Chiunque visiti questo indirizzo sul " +#~ "proprio Browser Tor sarà in grado " +#~ "di caricare i file sul tuo " +#~ "computer." + +#~ 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 "" +#~ "Quando qualcuno carica i file sul " +#~ "tuo servizio di ricezione, per " +#~ "impostazione predefinita vengono salvati in" +#~ " una cartella chiamata ``OnionShare`` nella" +#~ " cartella principale del tuo computer, " +#~ "organizzata automaticamente in sottocartelle " +#~ "separate in base al momento in cui" +#~ " i file vengono caricati." + +#~ 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 "" +#~ "Se ad esempio invii un messaggio a" +#~ " un gruppo Signal, una copia del " +#~ "tuo messaggio finisce su ogni " +#~ "dispositivo (i dispositivi e i computer" +#~ " se configurano Signal Desktop) di " +#~ "ogni membro del gruppo. Anche se " +#~ "la scomparsa dei messaggi è attiva, " +#~ "è difficile confermare che tutte le " +#~ "copie dei messaggi vengono effettivamente " +#~ "eliminate da tutti i dispositivi e " +#~ "da qualsiasi altro luogo (come i " +#~ "database delle notifiche) in cui " +#~ "potrebbero essere state salvate. Le chat" +#~ " room di OnionShare non memorizzano " +#~ "alcun messaggio da nessuna parte, quindi" +#~ " il problema è ridotto al minimo." + diff --git a/docs/source/locale/it/LC_MESSAGES/help.po b/docs/source/locale/it/LC_MESSAGES/help.po index 74f922ce..e17adab6 100644 --- a/docs/source/locale/it/LC_MESSAGES/help.po +++ b/docs/source/locale/it/LC_MESSAGES/help.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2020-12-01 17:29+0000\n" "Last-Translator: rc \n" -"Language-Team: LANGUAGE \n" "Language: it\n" +"Language-Team: it \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/help.rst:2 msgid "Getting Help" @@ -33,24 +32,25 @@ msgid "" "the sections first to see if anything answers your questions." msgstr "" "Puoi trovare le istruzioni su come usare OnionShare. Controlla prima in " -"tutte le varie sezioni per vedere se c'è già la risposta a quello che stai " -"cercando." +"tutte le varie sezioni per vedere se c'è già la risposta a quello che " +"stai cercando." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" msgstr "Controlla le issue su GitHub" #: ../../source/help.rst:12 +#, fuzzy msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" "Se non si trova sul sito, per favore controlla tra le `issue GitHub " -"`_. Qualche altra persona " -"potrebbe aver incontrato il tuo stesso problema e averlo già segnalato agli " -"sviluppatori o forse aver persino postato la soluzione." +"`_. Qualche altra persona" +" potrebbe aver incontrato il tuo stesso problema e averlo già segnalato " +"agli sviluppatori o forse aver persino postato la soluzione." #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" @@ -60,15 +60,10 @@ msgstr "Apri tu direttamente un'issue" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" -"Se non riesci a trovare una soluzione, o desideri chiedere una domanda o " -"suggerire una feature, per favre `apri una issue `_. Questo richiede di `creare un account " -"GitHub `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" @@ -79,8 +74,8 @@ msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" -"Guarda :ref:`collaborare` per scoprire come unirti al team Keybase usato per " -"parlare del progetto." +"Guarda :ref:`collaborare` per scoprire come unirti al team Keybase usato " +"per parlare del progetto." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" @@ -133,3 +128,23 @@ msgstr "" #~ "that we use to discuss the " #~ "project." #~ msgstr "" + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" +#~ "Se non riesci a trovare una " +#~ "soluzione, o desideri chiedere una " +#~ "domanda o suggerire una feature, per " +#~ "favre `apri una issue " +#~ "`_. Questo" +#~ " richiede di `creare un account " +#~ "GitHub `_." + diff --git a/docs/source/locale/it/LC_MESSAGES/install.po b/docs/source/locale/it/LC_MESSAGES/install.po index 1c6e82a1..e3edbe91 100644 --- a/docs/source/locale/it/LC_MESSAGES/install.po +++ b/docs/source/locale/it/LC_MESSAGES/install.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-04-09 19:26+0000\n" "Last-Translator: rc \n" -"Language-Team: it \n" "Language: it\n" +"Language-Team: it \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.6-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/install.rst:2 msgid "Installation" @@ -36,8 +35,8 @@ msgstr "" " `_." #: ../../source/install.rst:12 -msgid "Install in Linux" -msgstr "Installa su Linux" +msgid "Linux" +msgstr "" #: ../../source/install.rst:14 #, fuzzy @@ -86,10 +85,21 @@ msgstr "" "``.flatpak`` o ``.snap`` da https://onionshare.org/dist/." #: ../../source/install.rst:28 +msgid "Command-line only" +msgstr "" + +#: ../../source/install.rst:30 +msgid "" +"You can install just the command line version of OnionShare on any " +"operating system using the Python package manager ``pip``. See :ref:`cli`" +" for more information." +msgstr "" + +#: ../../source/install.rst:35 msgid "Verifying PGP signatures" msgstr "Verifica delle firme PGP" -#: ../../source/install.rst:30 +#: ../../source/install.rst:37 msgid "" "You can verify that the package you download is legitimate and hasn't " "been tampered with by verifying its PGP signature. For Windows and macOS," @@ -103,11 +113,11 @@ msgstr "" "OnionShare includono firme specifiche del sistema operativo e se lo vuoi " "puoi semplicemente fare affidamento solo su quelle." -#: ../../source/install.rst:34 +#: ../../source/install.rst:41 msgid "Signing key" msgstr "Signing key" -#: ../../source/install.rst:36 +#: ../../source/install.rst:43 msgid "" "Packages are signed by Micah Lee, the core developer, using his PGP " "public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``." @@ -122,7 +132,7 @@ msgstr "" "`_." -#: ../../source/install.rst:38 +#: ../../source/install.rst:45 msgid "" "You must have GnuPG installed to verify signatures. For macOS you " "probably want `GPGTools `_, and for Windows you " @@ -133,11 +143,11 @@ msgstr "" "per Windows è probabilmente necessario `Gpg4win " "`_." -#: ../../source/install.rst:41 +#: ../../source/install.rst:48 msgid "Signatures" msgstr "Firme" -#: ../../source/install.rst:43 +#: ../../source/install.rst:50 #, fuzzy msgid "" "You can find the signatures (as ``.asc`` files), as well as Windows, " @@ -152,11 +162,11 @@ msgstr "" "trovarli nella pagina `GitHub Releases page " "`_." -#: ../../source/install.rst:47 +#: ../../source/install.rst:54 msgid "Verifying" msgstr "Verifica in corso" -#: ../../source/install.rst:49 +#: ../../source/install.rst:56 #, fuzzy msgid "" "Once you have imported Micah's public key into your GnuPG keychain, " @@ -167,22 +177,22 @@ msgstr "" "scaricato il binario e scaricato la firma ``.asc``, è possibile " "verificare il binario per macOS in un terminale come questo::" -#: ../../source/install.rst:53 +#: ../../source/install.rst:60 msgid "Or for Windows, in a command-prompt like this::" msgstr "Oppure, per Windows, in un prompt dei comandi come questo::" -#: ../../source/install.rst:57 +#: ../../source/install.rst:64 msgid "The expected output looks like this::" msgstr "Il risultato atteso somiglia a questo::" -#: ../../source/install.rst:69 +#: ../../source/install.rst:76 #, fuzzy msgid "" -"If you don't see 'Good signature from', there might be a problem with the" -" integrity of the file (malicious or otherwise), and you should not " -"install the package. (The \"WARNING:\" shown above, is not a problem with" -" the package, it only means you haven't already defined any level of " -"'trust' of Micah's PGP key.)" +"If you don't see ``Good signature from``, there might be a problem with " +"the integrity of the file (malicious or otherwise), and you should not " +"install the package. (The ``WARNING:`` shown above, is not a problem with" +" the package, it only means you haven't defined a level of \"trust\" of " +"Micah's PGP key.)" msgstr "" "Se non viene visualizzato 'Good signature from', potrebbe verificarsi un " "problema con l'integrità del file (dannoso o meno) e non dovresti " @@ -190,7 +200,7 @@ msgstr "" "il pacchetto: significa solo che non hai già definito alcun livello di " "'fiducia' della chiave PGP di Micah.)" -#: ../../source/install.rst:71 +#: ../../source/install.rst:78 #, fuzzy msgid "" "If you want to learn more about verifying PGP signatures, the guides for " @@ -317,3 +327,7 @@ msgstr "" #~ "Project `_ may be helpful." #~ msgstr "" + +#~ msgid "Install in Linux" +#~ msgstr "Installa su Linux" + diff --git a/docs/source/locale/it/LC_MESSAGES/security.po b/docs/source/locale/it/LC_MESSAGES/security.po index 4cf98dfe..5a2f4e5e 100644 --- a/docs/source/locale/it/LC_MESSAGES/security.po +++ b/docs/source/locale/it/LC_MESSAGES/security.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-04-09 19:26+0000\n" "Last-Translator: rc \n" -"Language-Team: it \n" "Language: it\n" +"Language-Team: it \n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.6-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/security.rst:2 msgid "Security Design" @@ -90,41 +89,30 @@ msgstr "" 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." +"services allowed the attacker to discover private ``.onion`` addresses. " +"If an attack discovers a private OnionShare address, they will also need " +"to guess the private key used for client authentication in order to " +"access it (unless the OnionShare user chooses make their service public " +"by turning off the private key -- see :ref:`turn_off_private_key`)." msgstr "" -"**Se un utente malintenzionato viene a conoscenza del servizio onion, non " -"può comunque accedere a nulla.** Gli attacchi precedenti contro la rete Tor " -"per enumerare i servizi onion hanno consentito all'utente malintenzionato di " -"individuare indirizzi onion privati. Se un attacco rivela un indirizzo " -"OnionShare privato, una password impedirà loro di accedervi (a meno che " -"l'utente OnionShare non scelga di disattivarlo e renderlo pubblico). La " -"password viene generata scegliendo due parole casuali da un elenco di 6800 " -"parole, ovvero 6800² o circa 46 milioni di password possibili. Solo 20 " -"tentativi errati possono essere fatti prima che OnionShare fermi il server, " -"prevenendo attacchi di tipo brute force contro la password." #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" msgstr "Da cosa non ti protegge OnionShare" #: ../../source/security.rst:22 +#, fuzzy 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." +"**Communicating the OnionShare address and private key might not be " +"secure.** Communicating the OnionShare address to people is the " +"responsibility of the OnionShare user. If sent insecurely (such as " +"through an email message monitored by an attacker), an eavesdropper can " +"tell that OnionShare is being used. If the eavesdropper loads the address" +" in Tor Browser while the service is still up, they can access it. To " +"avoid this, the address must be communicated 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 "" "**Comunicare l'indirizzo OnionShare potrebbe non essere sicuro.** " "Comunicare l'indirizzo OnionShare agli utenti è responsabilità " @@ -139,19 +127,20 @@ msgstr "" "OnionShare per qualcosa che non è segreto." #: ../../source/security.rst:24 +#, fuzzy 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." +"**Communicating the OnionShare address and private key might not be " +"anonymous.** Extra precautions must be taken to ensure the OnionShare " +"address is communicated anonymously. A new email or chat account, only " +"accessed over Tor, can be used to share the address. This isn't necessary" +" unless anonymity is a goal." msgstr "" "**La comunicazione dell'indirizzo di OnionShare potrebbe non essere " "anonima.** Devono essere prese ulteriori precauzioni per garantire che " -"l'indirizzo OnionShare sia comunicato in maniera anonima. Per condividerlo " -"si possono utilizzare una nuova mail o un nuovo account di chat, a cui si " -"accede solo via Tor. Tutto questo non è necessario a meno che l'anonimato " -"non sia un tuo obiettivo." +"l'indirizzo OnionShare sia comunicato in maniera anonima. Per " +"condividerlo si possono utilizzare una nuova mail o un nuovo account di " +"chat, a cui si accede solo via Tor. Tutto questo non è necessario a meno " +"che l'anonimato non sia un tuo obiettivo." #~ msgid "Security design" #~ msgstr "" @@ -259,3 +248,45 @@ msgstr "" #~ "anonymity, such as co-workers who " #~ "know each other sharing work documents." #~ msgstr "" + +#~ 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 "" +#~ "**Se un utente malintenzionato viene a" +#~ " conoscenza del servizio onion, non " +#~ "può comunque accedere a nulla.** Gli " +#~ "attacchi precedenti contro la rete Tor" +#~ " per enumerare i servizi onion hanno" +#~ " consentito all'utente malintenzionato di " +#~ "individuare indirizzi onion privati. Se " +#~ "un attacco rivela un indirizzo " +#~ "OnionShare privato, una password impedirà " +#~ "loro di accedervi (a meno che " +#~ "l'utente OnionShare non scelga di " +#~ "disattivarlo e renderlo pubblico). La " +#~ "password viene generata scegliendo due " +#~ "parole casuali da un elenco di " +#~ "6800 parole, ovvero 6800² o circa " +#~ "46 milioni di password possibili. Solo" +#~ " 20 tentativi errati possono essere " +#~ "fatti prima che OnionShare fermi il " +#~ "server, prevenendo attacchi di tipo " +#~ "brute force contro la password." + diff --git a/docs/source/locale/it/LC_MESSAGES/tor.po b/docs/source/locale/it/LC_MESSAGES/tor.po index 405ea16e..1fa5e78f 100644 --- a/docs/source/locale/it/LC_MESSAGES/tor.po +++ b/docs/source/locale/it/LC_MESSAGES/tor.po @@ -7,17 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: 2021-04-09 19:26+0000\n" -"Last-Translator: rc \n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" +"PO-Revision-Date: 2022-01-20 11:57+0000\n" +"Last-Translator: albanobattistella \n" "Language-Team: it \n" "Language: it\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.6-dev\n" -"Generated-By: Babel 2.9.0\n" +"X-Generator: Weblate 4.11-dev\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/tor.rst:2 msgid "Connecting to Tor" @@ -25,16 +25,16 @@ msgstr "Connessione a Tor in corso" #: ../../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." +"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in" +" the bottom right of the OnionShare window to open the Tor Settings tab." msgstr "" -"Scegli un modo per collegare OnionShare a Tor cliccando l'icona \"⚙\" " -"nella parte inferiore destra della finestra di OnionShare per raggiungere" -" le impostazioni." +"Scegli un modo per connettere OnionShare a Tor facendo clic sull'icona Tor " +"onion in basso a destra nella finestra di OnionShare per aprire la scheda " +"Impostazioni Tor." #: ../../source/tor.rst:9 -msgid "Use the ``tor`` bundled with OnionShare" -msgstr "Usa ``tor`` fornito con OnionShare" +msgid "Use the Tor version built into OnionShare" +msgstr "Usa la versione Tor integrata in OnionShare" #: ../../source/tor.rst:11 msgid "" @@ -58,10 +58,63 @@ msgstr "" "sistema ``tor`` da soli." #: ../../source/tor.rst:18 +msgid "Getting Around Censorship" +msgstr "Come aggirare la censura" + +#: ../../source/tor.rst:20 +msgid "" +"If your access to the internet is censored, you can configure OnionShare " +"to connect to the Tor network using `Tor bridges `_. If OnionShare connects to Tor without " +"one, you don't need to use a bridge." +msgstr "" +"Se il tuo accesso a Internet è censurato, puoi configurare OnionShare per la " +"connessione alla rete Tor usando `Tor bridges `_. Se OnionShare si connette a Tor senza uno, non è necessario " +"utilizzare un bridge." + +#: ../../source/tor.rst:22 +msgid "" +"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor" +" version built into OnionShare\" and check the \"Use a bridge\" checkbox." +msgstr "" +"Per utilizzare un bridge, apri la scheda Impostazioni Tor. Devi selezionare " +"\"Usa la versione Tor incorporata in OnionShare\" e selezionare la casella " +"\"Usa un bridge\"." + +#: ../../source/tor.rst:25 +msgid "" +"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges " +"is recommended over using `meek-azure`." +msgstr "" +"Prova prima a usare un bridge integrato. Si consiglia di utilizzare i bridge " +"`obfs4` o `snowflake` rispetto a `meek-azure`." + +#: ../../source/tor.rst:29 +msgid "" +"If using a built-in bridge doesn't work, you can request a bridge from " +"torproject.org. You will have to solve a CAPTCHA in order to request a " +"bridge. (This makes it more difficult for governments or ISPs to block " +"access to Tor bridges.)" +msgstr "" +"Se l'utilizzo di un bridge integrato non funziona, puoi richiedere un bridge " +"da torproject.org. Dovrai risolvere un CAPTCHA per richiedere un bridge. (" +"Ciò rende più difficile per i governi o gli ISP bloccare l'accesso ai bridge " +"Tor.)" + +#: ../../source/tor.rst:33 +msgid "" +"You also have the option of using a bridge that you learned about from a " +"trusted source." +msgstr "" +"Hai anche la possibilità di utilizzare un bridge che hai appreso da una " +"fonte attendibile." + +#: ../../source/tor.rst:36 msgid "Attempt auto-configuration with Tor Browser" msgstr "Tenta la configurazione automatica con il Browser Tor" -#: ../../source/tor.rst:20 +#: ../../source/tor.rst:38 msgid "" "If you have `downloaded the Tor Browser `_ " "and don't want two ``tor`` processes running, you can use the ``tor`` " @@ -73,11 +126,11 @@ msgstr "" "processo `` tor`` dal Browser Tor. Tieni presente che devi tenere il " "Browser Tor aperto in background mentre usi OnionShare affinché funzioni." -#: ../../source/tor.rst:24 +#: ../../source/tor.rst:42 msgid "Using a system ``tor`` in Windows" msgstr "Utilizzando un sistema ``tor`` su Windows" -#: ../../source/tor.rst:26 +#: ../../source/tor.rst:44 msgid "" "This is fairly advanced. You'll need to know how edit plaintext files and" " do stuff as an administrator." @@ -85,19 +138,20 @@ msgstr "" "Questo è abbastanza avanzato. Avrai bisogno di sapere come modificare i " "file di testo in chiaro e fare cose come amministratore." -#: ../../source/tor.rst:28 +#: ../../source/tor.rst:46 msgid "" "Download the Tor Windows Expert Bundle `from " "`_. Extract the compressed file" " and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename " "the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``." msgstr "" -"Scarica il Tor Windows Expert Bundle `da `_. Estrai il file compresso e copia la cartella estratta in " -"``C:\\Program Files (x86)\\`` Rinomina le cartella all'interno che hanno il " -"nome ``Data`` e ``Tor`` in ``tor-win32``." +"Scarica il Tor Windows Expert Bundle `da " +"`_. Estrai il file compresso e " +"copia la cartella estratta in ``C:\\Program Files (x86)\\`` Rinomina le " +"cartella all'interno che hanno il nome ``Data`` e ``Tor`` in ``tor-" +"win32``." -#: ../../source/tor.rst:32 +#: ../../source/tor.rst:50 msgid "" "Make up a control port password. (Using 7 words in a sequence like " "``comprised stumble rummage work avenging construct volatile`` is a good " @@ -111,7 +165,7 @@ msgstr "" "comandi (``cmd``) come amministratore e usa ``tor. exe --hash-password`` " "per generare un hash della tua password. Per esempio::" -#: ../../source/tor.rst:39 +#: ../../source/tor.rst:57 msgid "" "The hashed password output is displayed after some warnings (which you " "can ignore). In the case of the above example, it is " @@ -121,7 +175,7 @@ msgstr "" "(che è possibile ignorare). Nel caso dell'esempio precedente, è " "``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``." -#: ../../source/tor.rst:41 +#: ../../source/tor.rst:59 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 " @@ -131,7 +185,7 @@ msgstr "" " '' e inseriscici l'output della password con l'hash, sostituendo " "``HashedControlPassword`` con quello appena generato:" -#: ../../source/tor.rst:46 +#: ../../source/tor.rst:64 msgid "" "In your administrator command prompt, install ``tor`` as a service using " "the appropriate ``torrc`` file you just created (as described in " @@ -144,12 +198,11 @@ msgstr "" "``_). Come " "questo::" -#: ../../source/tor.rst:50 +#: ../../source/tor.rst:68 msgid "You are now running a system ``tor`` process in Windows!" msgstr "Ora stai eseguendo un processo di sistema ``tor`` su Windows!" -#: ../../source/tor.rst:52 -#, fuzzy +#: ../../source/tor.rst:70 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using control port\", and " @@ -160,34 +213,34 @@ msgid "" "to the Tor controller\"." msgstr "" "Apri OnionShare e fai clic sull'icona \"⚙\" al suo interno. In \"Come " -"dovrebbe connettersi OnionShare a Tor?\" scegli \"Connetti utilizzando la " -"porta di controllo\" e imposta \"Porta di controllo\" su \"127.0.0.1\" e " -"\"Porta\" su \"9051\". In \"Impostazioni di autenticazione Tor\" scegli " -"\"Password\" e imposta la password sulla password della porta di controllo " -"che hai scelto sopra. Fai clic sul pulsante \"Prova connessione a Tor\". Se " -"tutto va bene, dovresti vedere \"Connesso al controller di Tor\"." +"dovrebbe OnionShare connettersi a Tor?\" scegli \"Connetti usando la porta " +"di controllo\" e imposta \"Porta di controllo\" su ``127.0.0.1`` e \"Porta\" " +"su ``9051``. In \"Impostazioni di autenticazione Tor\" scegli \"Password\" e " +"imposta la password sulla password della porta di controllo che hai scelto " +"sopra. Fai clic sul pulsante \"Test connessione a Tor\". Se tutto va bene, " +"dovresti vedere \"Connesso al controller Tor\"." -#: ../../source/tor.rst:61 +#: ../../source/tor.rst:79 msgid "Using a system ``tor`` in macOS" msgstr "Utilizzando un sistema ``tor`` su macOS" -#: ../../source/tor.rst:63 +#: ../../source/tor.rst:81 msgid "" "First, install `Homebrew `_ if you don't already have " "it, and then install Tor::" msgstr "" -"Innanzitutto, installa `Homebrew `_ se non lo hai " -"già. Quindi, installa Tor::" +"Innanzitutto, installa `Homebrew `_ se non lo " +"hai già. Quindi, installa Tor::" -#: ../../source/tor.rst:67 +#: ../../source/tor.rst:85 msgid "Now configure Tor to allow connections from OnionShare::" msgstr "Ora configura Tor per consentire le connessioni da OnionShare::" -#: ../../source/tor.rst:74 +#: ../../source/tor.rst:92 msgid "And start the system Tor service::" msgstr "E avvia il servizio di sistema Tor:" -#: ../../source/tor.rst:78 +#: ../../source/tor.rst:96 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using socket file\", and " @@ -202,15 +255,15 @@ msgstr "" "autenticazione di Tor\" scegli \"Nessuna autenticazione o autenticazione " "cookie\". Fai clic sul pulsante \"Prova connessione a Tor\"." -#: ../../source/tor.rst:84 ../../source/tor.rst:104 +#: ../../source/tor.rst:102 ../../source/tor.rst:122 msgid "If all goes well, you should see \"Connected to the Tor controller\"." msgstr "Se tutto va bene, dovresti vedere \"Connesso al controller di Tor\"." -#: ../../source/tor.rst:87 +#: ../../source/tor.rst:105 msgid "Using a system ``tor`` in Linux" msgstr "Utilizzando un sistema ``tor`` su Linux" -#: ../../source/tor.rst:89 +#: ../../source/tor.rst:107 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 " @@ -222,7 +275,7 @@ msgstr "" "`repository ufficiale del progetto Tor " "`_." -#: ../../source/tor.rst:91 +#: ../../source/tor.rst:109 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 " @@ -233,7 +286,7 @@ msgstr "" "OnionShare per connettersi al file socket di controllo del tuo sistema " "``tor``." -#: ../../source/tor.rst:93 +#: ../../source/tor.rst:111 msgid "" "Add your user to the ``debian-tor`` group by running this command " "(replace ``username`` with your actual username)::" @@ -241,7 +294,7 @@ msgstr "" "Aggiungi il tuo utente al gruppo ``debian-tor`` eseguendo questo comando " "(sostituisci ``username`` con il tuo nome utente effettivo):" -#: ../../source/tor.rst:97 +#: ../../source/tor.rst:115 msgid "" "Reboot your computer. After it boots up again, open OnionShare and click " "the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" " @@ -257,40 +310,6 @@ msgstr "" "autenticazione di Tor\" scegli \"Nessuna autenticazione o autenticazione " "cookie\". Fai clic sul pulsante \"Prova connessione a Tor\"." -#: ../../source/tor.rst:107 -msgid "Using Tor bridges" -msgstr "Usare i bridge di Tor" - -#: ../../source/tor.rst:109 -msgid "" -"If your access to the Internet is censored, you can configure OnionShare " -"to connect to the Tor network using `Tor bridges " -"`_. If OnionShare " -"connects to Tor without one, you don't need to use a bridge." -msgstr "" -"Se il tuo accesso a Internet è censurato, puoi configurare OnionShare per" -" connettersi alla rete Tor utilizzando `i bridge di " -"Tor`_. Se " -"OnionShare si connette a Tor senza uno, non è necessario utilizzare un " -"bridge." - -#: ../../source/tor.rst:111 -msgid "To configure bridges, click the \"⚙\" icon in OnionShare." -msgstr "Per configurare i bridge, fare clic sull'icona \"⚙\" in OnionShare." - -#: ../../source/tor.rst:113 -msgid "" -"You can use the built-in obfs4 pluggable transports, the built-in " -"meek_lite (Azure) pluggable transports, or custom bridges, which you can " -"obtain from Tor's `BridgeDB `_. If you " -"need to use a bridge, try the built-in obfs4 ones first." -msgstr "" -"È possibile utilizzare i trasporti collegabili obfs4 incorporati, i " -"trasporti collegabili meek_lite (Azure) incorporati o bridge " -"personalizzati, che è possibile ottenere da `BridgeDB " -"`_ di Tor. Se hai bisogno di " -"usare un bridge, prova prima quelli incorporati obfs4." - #~ msgid "Using a system Tor in Mac OS X" #~ msgstr "" @@ -507,3 +526,31 @@ msgstr "" #~ " estratta in ``C:\\Programmi(x86)\\`` Rinomina" #~ " la cartella estratta con ``Dati`` e" #~ " `` Tor`` in ``tor-win32``." + +#~ msgid "Use the ``tor`` bundled with OnionShare" +#~ msgstr "Usa ``tor`` fornito con OnionShare" + +#~ msgid "Using Tor bridges" +#~ msgstr "Usare i bridge di Tor" + +#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare." +#~ msgstr "Per configurare i bridge, fare clic sull'icona \"⚙\" in OnionShare." + +#~ msgid "" +#~ "You can use the built-in obfs4 " +#~ "pluggable transports, the built-in " +#~ "meek_lite (Azure) pluggable transports, or " +#~ "custom bridges, which you can obtain " +#~ "from Tor's `BridgeDB " +#~ "`_. If you need " +#~ "to use a bridge, try the built-" +#~ "in obfs4 ones first." +#~ msgstr "" +#~ "È possibile utilizzare i trasporti " +#~ "collegabili obfs4 incorporati, i trasporti " +#~ "collegabili meek_lite (Azure) incorporati o" +#~ " bridge personalizzati, che è possibile " +#~ "ottenere da `BridgeDB " +#~ "`_ di Tor. " +#~ "Se hai bisogno di usare un bridge," +#~ " prova prima quelli incorporati obfs4." diff --git a/docs/source/locale/ja/LC_MESSAGES/advanced.po b/docs/source/locale/ja/LC_MESSAGES/advanced.po index 8b9457ea..31b78cde 100644 --- a/docs/source/locale/ja/LC_MESSAGES/advanced.po +++ b/docs/source/locale/ja/LC_MESSAGES/advanced.po @@ -3,27 +3,29 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2022-01-11 05:54+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.10.1\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 msgid "Advanced Usage" -msgstr "" +msgstr "先進の使用" #: ../../source/advanced.rst:7 msgid "Save Tabs" -msgstr "" +msgstr "タブを保存する" #: ../../source/advanced.rst:9 msgid "" @@ -33,6 +35,9 @@ msgid "" "useful if you want to host a website available from the same OnionShare " "address even if you reboot your computer." msgstr "" +"OnionShareのデフォルト設定では、全ての機能は一時的です。OnionShareタブを閉じると、そのアドレスは消えて再びに使えません。場合によっては" +"永続的なOnionShareサービスが必要かもしれない。例えばパソコンを再起動しても、永続的なアドレスでOnionShareウェブサイトをホストしたい場合" +"には役立つでしょう。" #: ../../source/advanced.rst:13 msgid "" @@ -40,6 +45,8 @@ msgid "" "open it when I open OnionShare\" box before starting the server. When a " "tab is saved a purple pin icon appears to the left of its server status." msgstr "" +"タブを永続的にするのに、サービスを実行する前に「このタブを保存し、OnionShareがスタートアップの時に自動的に開く」というボックスをチェックする。保" +"存された場合、紫色のピンはタブの左側に表示されます。" #: ../../source/advanced.rst:18 msgid "" @@ -52,7 +59,7 @@ msgstr "" msgid "" "If you save a tab, a copy of that tab's onion service secret key will be " "stored on your computer with your OnionShare settings." -msgstr "" +msgstr "タブを保存すると、そのonionサービスの秘密鍵はOnionShare設定と一緒にパソコンに保存されます。" #: ../../source/advanced.rst:26 msgid "Turn Off Passwords" @@ -85,7 +92,7 @@ msgstr "" #: ../../source/advanced.rst:38 msgid "Scheduled Times" -msgstr "" +msgstr "予定した時間" #: ../../source/advanced.rst:40 msgid "" @@ -95,6 +102,9 @@ msgid "" "scheduled time\", \"Stop onion service at scheduled time\", or both, and " "set the respective desired dates and times." msgstr "" +"OnionShareでは、サービスの開始・停止する時間を予定することができます。サーバーを起動する前に、そのタブに「詳細設定を表示」をクリックして、「 " +"指定の日時にonionサービスを起動する 」または「 指定の日時にonionサービスを停止する " +"」それとも両方のボックスをチェックして、希望日時を入力する。" #: ../../source/advanced.rst:43 msgid "" @@ -103,6 +113,9 @@ msgid "" "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 "" +"サービスを将来に起動するよう設定した場合、「 共有を開始 " +"」ボタンをクリックすると開始時間までの減算カウンターが表示されます。将来に停止するよう設定した場合、「 共有を開始 " +"」ボタンをクリックすると普通に開始して、停止する時間までの減算カウンターは表示されます。" #: ../../source/advanced.rst:46 msgid "" @@ -111,6 +124,8 @@ msgid "" "time in the future if anything happens to you. If nothing happens to you," " you can cancel the service before it's scheduled to start." msgstr "" +"**自動的な起動を予定することで、OnionShareのサービスを「デッドマン装置」として使えます。** " +"最悪の事態が起きた場合、特定時間にサービスは自動的に立ち上がります。何も起きなかったら、立ち上がる時点の前に停止できます。" #: ../../source/advanced.rst:51 msgid "" @@ -122,29 +137,31 @@ msgstr "" #: ../../source/advanced.rst:56 msgid "Command-line Interface" -msgstr "" +msgstr "コマンドライン・インターフェース" #: ../../source/advanced.rst:58 msgid "" "In addition to its graphical interface, OnionShare has a command-line " "interface." -msgstr "" +msgstr "グラフィカル・インターフェースに加えて、OnionShareにはコマンドライン・インターフェースがあります。" #: ../../source/advanced.rst:60 msgid "" "You can install just the command-line version of OnionShare using " "``pip3``::" -msgstr "" +msgstr "``pip3``:: を利用して、OnionShareのコマンドライン版のみをインストールできます。" #: ../../source/advanced.rst:64 msgid "" "Note that you will also need the ``tor`` package installed. In macOS, " "install it with: ``brew install tor``" msgstr "" +"``tor`` パッケージもインストールする必要があるとご了承ください。macOSの場合は ``brew install tor`` " +"でインストールできます" #: ../../source/advanced.rst:66 msgid "Then run it like this::" -msgstr "" +msgstr "そして以下のコマンドで実行できます ::" #: ../../source/advanced.rst:70 msgid "" @@ -152,16 +169,18 @@ msgid "" "also just run ``onionshare.cli`` to access the command-line interface " "version." msgstr "" +"LinuxのSnapcraftパッケージでOnionShareをインストールした場合、``onionshare.cli`` " +"を実行するだけでコマンドライン・インターフェイスをアクセスできます。" #: ../../source/advanced.rst:73 msgid "Usage" -msgstr "" +msgstr "使用方法" #: ../../source/advanced.rst:75 msgid "" "You can browse the command-line documentation by running ``onionshare " "--help``::" -msgstr "" +msgstr "コマンドラインのドキュメンテーションを閲覧するには、 ``onionshare --help``::" #: ../../source/advanced.rst:132 msgid "Legacy Addresses" @@ -401,4 +420,3 @@ msgstr "" #~ " services will soon be removed from" #~ " OnionShare as well." #~ msgstr "" - diff --git a/docs/source/locale/ja/LC_MESSAGES/develop.po b/docs/source/locale/ja/LC_MESSAGES/develop.po index 79008008..17c8e22d 100644 --- a/docs/source/locale/ja/LC_MESSAGES/develop.po +++ b/docs/source/locale/ja/LC_MESSAGES/develop.po @@ -3,27 +3,29 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2022-01-20 11:57+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.11-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 msgid "Developing OnionShare" -msgstr "" +msgstr "OnionShareを開発する" #: ../../source/develop.rst:7 msgid "Collaborating" -msgstr "" +msgstr "コラボレーション" #: ../../source/develop.rst:9 msgid "" @@ -400,4 +402,3 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "" - diff --git a/docs/source/locale/ja/LC_MESSAGES/features.po b/docs/source/locale/ja/LC_MESSAGES/features.po index e71451fb..912833f1 100644 --- a/docs/source/locale/ja/LC_MESSAGES/features.po +++ b/docs/source/locale/ja/LC_MESSAGES/features.po @@ -3,23 +3,25 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-12-10 02:52+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/features.rst:4 msgid "How OnionShare Works" -msgstr "" +msgstr "OnionShareの仕組みの説明" #: ../../source/features.rst:6 msgid "" @@ -27,6 +29,9 @@ msgid "" "other people as `Tor `_ `onion services " "`_." msgstr "" +"ウェブサーバーが自宅のパソコンでローカルに作られ、`Tor `_ネットワーク上で " +"`「オニオン・サービス」 `_として閲覧できるようにされます。." #: ../../source/features.rst:8 msgid "" @@ -64,10 +69,13 @@ msgid "" "Tor onion services too, it also protects your anonymity. See the " ":doc:`security design ` for more info." msgstr "" +"ウェブサーバーは自宅のパソコンだからこそ、開発者さえも、*第三者はOnionShare内のコンテンツにアクセスできない。*完全にプライベートです。そしてO" +"nionShareはTorのオニオン・サービスに基づいているので、匿名性も守られています。詳しくは「`security design " +"`」という:doc:を訪れて下さい。" #: ../../source/features.rst:21 msgid "Share Files" -msgstr "" +msgstr "ファイルを共有" #: ../../source/features.rst:23 msgid "" @@ -75,12 +83,14 @@ msgid "" "anonymously. Open a share tab, drag in the files and folders you wish to " "share, and click \"Start sharing\"." msgstr "" +"OnionShareで、ファイルやフォルダーを安全そして匿名で他の人と共有できます。共有タブを開いて、共有したいファイルをドラッグアンドドロップして、「共" +"有を開始」をクリックする。" #: ../../source/features.rst:27 ../../source/features.rst:93 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 "ファイルを追加したら、設定は表示されます。共有を開始する前に、ふさわしい設定を選択して下さい。" #: ../../source/features.rst:31 msgid "" @@ -96,7 +106,7 @@ msgid "" "Also, if you uncheck this box, people will be able to download the " "individual files you share rather than a single compressed version of all" " the files." -msgstr "" +msgstr "このチェックを外すと、全ファイルの圧縮された版ではなく各ファイルを別々にダウンロードできるようにします。" #: ../../source/features.rst:36 msgid "" @@ -105,6 +115,8 @@ msgid "" " website down. You can also click the \"↑\" icon in the top-right corner " "to show the history and progress of people downloading files from you." msgstr "" +"共有の始めたい時に、「共有を開始」ボタンをクリックして下さい。いつでも「共有を停止」ボタンをクリックしたら、もしくはOnionShareを閉じたらウェブサ" +"イトは停止されます。右上にある「↑」ボタンをクリックすると、ファイルのダウンロード状態・歴史は表示されます。" #: ../../source/features.rst:40 msgid "" @@ -144,7 +156,7 @@ msgstr "" 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." @@ -166,10 +178,13 @@ msgid "" "quite as secure version of `SecureDrop `_, the " "whistleblower submission system." msgstr "" +"OnionShareのファイル受信サービスは匿名情報筋から安全に文書を受け入るのにジャーナリストなどに役立つでしょう。このように使うと、OnionShar" +"eはライトウェイト、単純、そして安全性の少し低い`SecureDrop `_(安全に匿名情報源から情報を入手するためのシステム)の代替品になります。" #: ../../source/features.rst:69 msgid "Use at your own risk" -msgstr "" +msgstr "自己責任で使って下さい" #: ../../source/features.rst:71 msgid "" @@ -188,10 +203,13 @@ msgid "" "`_ or in a `Qubes `_ " "disposableVM." msgstr "" +"OnionShareでオフィス文書やPDFを受信する場合、`Dangerzone `_を使って安全に開けるようなPDFファイルに変換できます。さらに、`Tails `_または`" +"Qubes `_ の使い捨て仮想マシンを使ってより安全に信頼できないファイルを開くことができます。" #: ../../source/features.rst:76 msgid "Tips for running a receive service" -msgstr "" +msgstr "ファイル受信サービスを管理するアドバイス" #: ../../source/features.rst:78 msgid "" @@ -210,7 +228,7 @@ msgstr "" #: ../../source/features.rst:83 msgid "Host a Website" -msgstr "" +msgstr "ウェブサイトをホストする" #: ../../source/features.rst:85 msgid "" @@ -218,6 +236,8 @@ msgid "" "the files and folders that make up the static content there, and click " "\"Start sharing\" when you are ready." msgstr "" +"OnionShareでスタティック型のウェブサイトをホストするのに、ウェブサイトのタブを開いて、スタティック型のコンテンツが含まれるファイルやフォルダーを" +"ドラッグアンドドロップして、そして「共有を開始」をクリックする。" #: ../../source/features.rst:89 msgid "" @@ -228,17 +248,20 @@ msgid "" "websites that execute code or use databases. So you can't for example use" " WordPress.)" msgstr "" +"``index.html``ファイルも追加すると、ウェブサイトがロードされる時にレンダーリングされます。サイトを構成するHTMLファイル、CSSファイル、" +"JavaScriptファイル、そして画像データも追加する必要があります。(OnionShareはスタティック型のウェブサイトのみをホストできることをご了承" +"ください。コードを実行するまたデータベースを利用するウェブサイトをホストできません。例えばWordPressを使えません。)" #: ../../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." -msgstr "" +msgstr "``index.html``ファイルがない場合はディレクトリのリストは表示され、サイトをロードする人々はファイルを閲覧、ダウンロードできます。" #: ../../source/features.rst:98 msgid "Content Security Policy" -msgstr "" +msgstr "コンテンツセキュリティポリシー" #: ../../source/features.rst:100 msgid "" @@ -259,7 +282,7 @@ msgstr "" #: ../../source/features.rst:105 msgid "Tips for running a website service" -msgstr "" +msgstr "ウェブサイトのサービスを管理するアドバイス" #: ../../source/features.rst:107 msgid "" @@ -279,13 +302,14 @@ msgstr "" #: ../../source/features.rst:113 msgid "Chat Anonymously" -msgstr "" +msgstr "匿名でチャット" #: ../../source/features.rst:115 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 "" +"OnionShareを使って、何も記録しないプライベート、安全なチャットルームを作れます。チャットタブを開いて、「チャットサーバーを始動」をクリックする。" #: ../../source/features.rst:119 msgid "" @@ -302,6 +326,8 @@ msgid "" "participate must have their Tor Browser security level set to " "\"Standard\" or \"Safer\", instead of \"Safest\"." msgstr "" +"他の人はTorブラウザでOnionShareのアドレスを訪れたらチャットに参加できます。チャットルームにはJavaScriptが必要だから、参加したい方は" +"Torブラウザのセキュリティレベルを「最も安全」ではなく「標準」または「より安全」に設定する必要があります。" #: ../../source/features.rst:127 msgid "" @@ -310,12 +336,14 @@ msgid "" "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 "" +"チャットルームに入る方はランダムのユーザ名を付けられます。左パネルにあるボックスに新しいユーザ名を入力して「↵」を押すと変更できます。入る前に他のユーザが" +"チャットしてたかどうかにもかかわらず、チャット歴史はどこにも保存されていないので表示されません。" #: ../../source/features.rst:133 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 "OnionShareのチャットルームに、皆は匿名です。誰でも自由にユーザ名を変更できる、そして身元を認証する方法はありません。" #: ../../source/features.rst:136 msgid "" @@ -324,16 +352,18 @@ msgid "" "messages, you can be reasonably confident the people joining the chat " "room are your friends." msgstr "" +"でもOnionShareのチャットルームを作って、安全な通信でアドレスを信頼できる友達の少人数グループのみと共有すれば、チャットルームに入るユーザは実際に" +"友達だとそれなりに確信できるでしょう。" #: ../../source/features.rst:139 msgid "How is this useful?" -msgstr "" +msgstr "これは何の役に立ちますか?" #: ../../source/features.rst:141 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 "どうぜ暗号化メッセンジャーアプリを使う必要あるなら、OnionShareのチャットルームには何の意味がありますか?より少ない痕跡を残します。" #: ../../source/features.rst:143 msgid "" @@ -359,7 +389,7 @@ msgstr "" #: ../../source/features.rst:150 msgid "How does the encryption work?" -msgstr "" +msgstr "暗号化の仕組みは何ですか?" #: ../../source/features.rst:152 msgid "" @@ -370,12 +400,15 @@ msgid "" "other members of the chat room using WebSockets, through their E2EE onion" " connections." msgstr "" +"OnionShareはTorオニオンサービスに頼るので、TorブラウザとOnionShareの間の接続は全て終端間暗号化されている(E2EE)。メッセージ" +"はOnionShareチャットルームに投稿されるとき、E2EEオニオン接続を介してサーバーに送られて、サーバーがWebSocketを使ってE2EEオニオン" +"接続を介して他のユーザに送ります。" #: ../../source/features.rst:154 msgid "" "OnionShare doesn't implement any chat encryption on its own. It relies on" " the Tor onion service's encryption instead." -msgstr "" +msgstr "OnionShare自体はチャットの暗号を実行せず、Torオニオンサービスの暗号に頼ります。" #~ msgid "How OnionShare works" #~ msgstr "" @@ -764,4 +797,3 @@ msgstr "" #~ "WebSockets, through their E2EE onion " #~ "connections." #~ msgstr "" - diff --git a/docs/source/locale/ja/LC_MESSAGES/help.po b/docs/source/locale/ja/LC_MESSAGES/help.po index d1eb81e9..8002b28b 100644 --- a/docs/source/locale/ja/LC_MESSAGES/help.po +++ b/docs/source/locale/ja/LC_MESSAGES/help.po @@ -3,37 +3,39 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-12-10 02:52+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 msgid "Getting Help" -msgstr "" +msgstr "サポートを受ける方法" #: ../../source/help.rst:5 msgid "Read This Website" -msgstr "" +msgstr "このサイトを見て回る" #: ../../source/help.rst:7 msgid "" "You will find instructions on how to use OnionShare. Look through all of " "the sections first to see if anything answers your questions." -msgstr "" +msgstr "OnionShareの説明書をここにアクセスできます。まずは見て回って、質問に回答する情報があるかどうかを確かめて下さい。" #: ../../source/help.rst:10 msgid "Check the GitHub Issues" -msgstr "" +msgstr "GitHubのissuesをチェック" #: ../../source/help.rst:12 msgid "" @@ -45,7 +47,7 @@ msgstr "" #: ../../source/help.rst:15 msgid "Submit an Issue Yourself" -msgstr "" +msgstr "新しいissueを提出する" #: ../../source/help.rst:17 msgid "" @@ -58,13 +60,13 @@ msgstr "" #: ../../source/help.rst:20 msgid "Join our Keybase Team" -msgstr "" +msgstr "Keybaseチームに参加する" #: ../../source/help.rst:22 msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." -msgstr "" +msgstr "プロジェクトを議論するためのKeybaseチームに参加する方法の詳しくは:ref:`協力`を訪れて下さい。" #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" @@ -117,4 +119,3 @@ msgstr "" #~ "that we use to discuss the " #~ "project." #~ msgstr "" - diff --git a/docs/source/locale/ja/LC_MESSAGES/index.po b/docs/source/locale/ja/LC_MESSAGES/index.po index 2ad2653c..ba5b8e7c 100644 --- a/docs/source/locale/ja/LC_MESSAGES/index.po +++ b/docs/source/locale/ja/LC_MESSAGES/index.po @@ -3,27 +3,30 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-09-03 11:46-0700\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-12-10 02:52+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.8.0\n" #: ../../source/index.rst:2 msgid "OnionShare's documentation" -msgstr "" +msgstr "OnionShareのドキュメンテーション" #: ../../source/index.rst:6 msgid "" "OnionShare is an open source tool that lets you securely and anonymously " "share files, host websites, and chat with friends using the Tor network." msgstr "" - +"OnionShareはTorネットワークを利用して安全そして匿名でファイルを共有させる、ウェブサイトをホストさせる、そして友達とチャットさせるオープンソー" +"スのツールです。" diff --git a/docs/source/locale/ja/LC_MESSAGES/install.po b/docs/source/locale/ja/LC_MESSAGES/install.po index 8a1e3472..55957ac6 100644 --- a/docs/source/locale/ja/LC_MESSAGES/install.po +++ b/docs/source/locale/ja/LC_MESSAGES/install.po @@ -3,33 +3,36 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2022-01-17 06:55+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.10.1\n" "Generated-By: Babel 2.9.0\n" #: ../../source/install.rst:2 msgid "Installation" -msgstr "" +msgstr "インストールする方法" #: ../../source/install.rst:5 msgid "Windows or macOS" -msgstr "" +msgstr "WindowsやmacOS" #: ../../source/install.rst:7 msgid "" "You can download OnionShare for Windows and macOS from the `OnionShare " "website `_." msgstr "" +"WindowsやmacOSの場合は`OnionShareホームページ `_からダウンロードできます。" #: ../../source/install.rst:12 msgid "Install in Linux" @@ -43,32 +46,41 @@ msgid "" "that you'll always use the newest version and run OnionShare inside of a " "sandbox." msgstr "" +"Linuxの場合は、様々なインストールする方法がありますが、勧められる方法は`Flatpak `_ または`" +"Snap `_のパッケージの利用です。FlatpakやSnapでは、必ず最新バージョンを入手できます、そしてサンドボックスに実行されます。" #: ../../source/install.rst:17 msgid "" "Snap support is built-in to Ubuntu and Fedora comes with Flatpak support," " but which you use is up to you. Both work in all Linux distributions." msgstr "" +"UbuntuにはSnapのサポートが組み込まれて、そしてFedoraにはFlatpakのサポートが組み込まれているけど、両方とも全てのLinuxディストリ" +"ビューションに実行できるのでお好みで選んで下さい。" #: ../../source/install.rst:19 msgid "" "**Install OnionShare using Flatpak**: " "https://flathub.org/apps/details/org.onionshare.OnionShare" msgstr "" +"**FlatpakでOnionShareをインストール**: https://flathub.org/apps/details/org." +"onionshare.OnionShare" #: ../../source/install.rst:21 msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare" -msgstr "" +msgstr "**SnapでOnionShareをインストール**: https://snapcraft.io/onionshare" #: ../../source/install.rst:23 msgid "" "You can also download and install PGP-signed ``.flatpak`` or ``.snap`` " "packages from https://onionshare.org/dist/ if you prefer." msgstr "" +"もしよろしければ、PGP署名された``.flatpak`` や ``.snap``パッケージを https://onionshare.org/dist/ " +"からダウンロードしてインストールできます。" #: ../../source/install.rst:28 msgid "Verifying PGP signatures" -msgstr "" +msgstr "PGP署名を確認する方法" #: ../../source/install.rst:30 msgid "" @@ -78,10 +90,12 @@ msgid "" "binaries include operating system-specific signatures, and you can just " "rely on those alone if you'd like." msgstr "" +"PGP署名を確認することによって、ダウンロードしたパッケージが改ざんされていないかを確認できます。WindowsやmacOSの場合、OnionShareバ" +"イナリーにはOSに特有の署名があるので、確認は任意です。もしよろしければ、OS署名のみに頼ることができます。" #: ../../source/install.rst:34 msgid "Signing key" -msgstr "" +msgstr "署名キー" #: ../../source/install.rst:36 msgid "" @@ -91,6 +105,10 @@ msgid "" "`_." msgstr "" +"パッケージは主任開発者のMicah " +"Leeさんに署名されています。公開キー指紋は``927F419D7EC82C2F149C1BD1403C2657CD994F73``。Micah " +"Leeさんの公開鍵を` keys.openpgp.org のキーサーバーからダウンロードできます `_。" #: ../../source/install.rst:38 msgid "" @@ -98,10 +116,12 @@ msgid "" "probably want `GPGTools `_, and for Windows you " "probably want `Gpg4win `_." msgstr "" +"署名を確認するのに、GnuPGをインストールする必要があります。macOSの場合は`GPGTools `_、そしてWindowsの場合は`Gpg4win `_を利用できます。" #: ../../source/install.rst:41 msgid "Signatures" -msgstr "" +msgstr "署名" #: ../../source/install.rst:43 msgid "" @@ -111,10 +131,14 @@ msgid "" "OnionShare. You can also find them on the `GitHub Releases page " "`_." msgstr "" +"署名(``.asc`` " +"ファイルの形として)そしてWindows、macOS、Flatpak、Snap、またはソースのパッケージはhttps://onionshare.org/" +"dist/ から入手できます(各バージョンのフォルダーに)。`GitHubのリリースページ `_にもあります。" #: ../../source/install.rst:47 msgid "Verifying" -msgstr "" +msgstr "確認する方法" #: ../../source/install.rst:49 msgid "" @@ -122,14 +146,16 @@ msgid "" "downloaded the binary and and ``.asc`` signature, you can verify the " "binary for macOS in a terminal like this::" msgstr "" +"Micah Leeさんの公開キーをGnuPGキーチェーンにインポートしたら、そしてバイナリーと``.asc`` " +"署名をダウンロードしたら、macOSでターミナルに以下のように確認できます::" #: ../../source/install.rst:53 msgid "Or for Windows, in a command-prompt like this::" -msgstr "" +msgstr "またはWindowsの場合はコマンド・プロンプトで以下のように::" #: ../../source/install.rst:57 msgid "The expected output looks like this::" -msgstr "" +msgstr "予想される出力は以下のように表示されるはず::" #: ../../source/install.rst:69 msgid "" @@ -147,6 +173,9 @@ msgid "" " the `Tor Project `_ may be useful." msgstr "" +"PGP署名を確認する方法の詳しくは、`Qubes OS `_または`Torプロジェクト `_のガイドは役立つでしょう。" #~ msgid "Install on Windows or macOS" #~ msgstr "" @@ -333,4 +362,3 @@ msgstr "" #~ "Project `_ may be helpful." #~ msgstr "" - diff --git a/docs/source/locale/ja/LC_MESSAGES/security.po b/docs/source/locale/ja/LC_MESSAGES/security.po index 05816266..666a5baf 100644 --- a/docs/source/locale/ja/LC_MESSAGES/security.po +++ b/docs/source/locale/ja/LC_MESSAGES/security.po @@ -3,35 +3,37 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-12-10 02:52+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/security.rst:2 msgid "Security Design" -msgstr "" +msgstr "セキュリティー設計" #: ../../source/security.rst:4 msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works." -msgstr "" +msgstr "まずはOnionShareの仕組みを理解するには、:ref:`how_it_works`を訪れて下さい。" #: ../../source/security.rst:6 msgid "Like all software, OnionShare may contain bugs or vulnerabilities." -msgstr "" +msgstr "全てのソフトウェアのように、OnionShareにバグや脆弱性があるかもしれない。" #: ../../source/security.rst:9 msgid "What OnionShare protects against" -msgstr "" +msgstr "OnionShareが防衛できる脅威" #: ../../source/security.rst:11 msgid "" @@ -42,6 +44,9 @@ msgid "" "server for that too. This avoids the traditional model of having to trust" " the computers of others." msgstr "" +"**第三者はOnionShare内のデータやプロセスにアクセスできません。** OnionShareでは、全てのサービスは自宅のパソコンから直接にホストさ" +"れます。OnionShareでファイルを共有するときに、外部サーバーにアップロードされません。OnionShareのチャットルームを作るときにも、自宅のパ" +"ソコンはサーバー役になります。つまり、第三者のパソコンを信頼するという従来型モデルの必要がありません。" #: ../../source/security.rst:13 msgid "" @@ -53,6 +58,9 @@ msgid "" "Browser with OnionShare's onion service, the traffic is encrypted using " "the onion service's private key." msgstr "" +"**ネットワーク上の盗聴者がOnionShareで送受信されるデータを傍受できません。** TorオニオンサービスとTorブラウザの間の接続は終端間暗号化" +"されます。つまり、ネットワーク盗聴者は解読できないTorトラフィックしか傍受できません。たとえ盗聴者は悪用rendezvousノードを使ってTorブラウザ" +"/OnionShareのオニオンサービス間のトラフィックをルーティングしても、オニオンサービスの秘密鍵で暗号化されるから解読できません。" #: ../../source/security.rst:15 msgid "" @@ -62,6 +70,8 @@ msgid "" "Browser users, the Tor Browser users and eavesdroppers can't learn the " "identity of the OnionShare user." msgstr "" +"**OnionShareユーザの匿名性はTorに保護されます。** OnionShareとTorブラウザはユーザの匿名性を保護します。OnionShare" +"ユーザが匿名でTorブラウザのユーザとアドレスを共有する限り、誰もがOnionShareユーザの身元を突き止めることができません。" #: ../../source/security.rst:17 msgid "" @@ -79,7 +89,7 @@ msgstr "" #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" -msgstr "" +msgstr "OnionShareが防衛できない脅威" #: ../../source/security.rst:22 msgid "" @@ -241,4 +251,3 @@ msgstr "" #~ " share the address. This isn't " #~ "necessary unless anonymity is a goal." #~ msgstr "" - diff --git a/docs/source/locale/ja/LC_MESSAGES/sphinx.po b/docs/source/locale/ja/LC_MESSAGES/sphinx.po index f2cc8ed5..ab86033a 100644 --- a/docs/source/locale/ja/LC_MESSAGES/sphinx.po +++ b/docs/source/locale/ja/LC_MESSAGES/sphinx.po @@ -3,25 +3,26 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-09-03 11:37-0700\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-12-10 02:52+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.8.0\n" #: ../../source/_templates/versions.html:10 msgid "Versions" -msgstr "" +msgstr "バージョン" #: ../../source/_templates/versions.html:18 msgid "Languages" -msgstr "" - +msgstr "言語" diff --git a/docs/source/locale/ja/LC_MESSAGES/tor.po b/docs/source/locale/ja/LC_MESSAGES/tor.po index f73d3756..e9303230 100644 --- a/docs/source/locale/ja/LC_MESSAGES/tor.po +++ b/docs/source/locale/ja/LC_MESSAGES/tor.po @@ -3,23 +3,25 @@ # This file is distributed under the same license as the OnionShare package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2020-12-13 15:48-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2022-01-18 19:31+0000\n" +"Last-Translator: Taro Tanaka \n" "Language-Team: LANGUAGE \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.11-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/tor.rst:2 msgid "Connecting to Tor" -msgstr "" +msgstr "Torと接続する方法" #: ../../source/tor.rst:4 msgid "" @@ -35,7 +37,7 @@ msgstr "" 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 "" +msgstr "OnionShareのTor接続設定の中で、これは一番簡単そして確実なデフォルト方法です。こういうわけで、ほとんどのユーザに勧められます。" #: ../../source/tor.rst:14 msgid "" @@ -44,10 +46,12 @@ msgid "" "with other ``tor`` processes on your computer, so you can use the Tor " "Browser or the system ``tor`` on their own." msgstr "" +"OnionShareを開くと、すでに設定されてる``tor``プロセスはバックグラウンドに実行されてOnionShareに利用されます。パソコンに他の``" +"tor``プロセスと妨げないので、無事にTorブラウザまたはシステムの``tor``を同時に使えます。" #: ../../source/tor.rst:18 msgid "Attempt auto-configuration with Tor Browser" -msgstr "" +msgstr "Torブラウザとの自動的な設定を試す" #: ../../source/tor.rst:20 msgid "" @@ -56,16 +60,19 @@ msgid "" "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 "" +"`Torブラウザをダウンロード`_してたら、余計な``tor``プロセスを実行したくない場合はOn" +"ionShareがTorブラウザの``tor``プロセスを利用できます。OnionShareを利用する間にTorブラウザを開いたままにしておく必要があるこ" +"とに留意して下さい。" #: ../../source/tor.rst:24 msgid "Using a system ``tor`` in Windows" -msgstr "" +msgstr "Windowsのシステム``tor``を利用" #: ../../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 "" +msgstr "これはかなり先進の設定です。プレーンテキストファイルの編集そして管理者としてパソコンをいじり方を知る必要があります。" #: ../../source/tor.rst:28 msgid "" @@ -74,6 +81,10 @@ msgid "" " and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename " "the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``." msgstr "" +"`_からTorの「Windows Expert " +"Bundle」をダウンロードする。圧縮したファイルを解凍して、解凍されたフォルダーを``C:\\Program Files (x86)\\" +"``にコピーする。解凍されたフォルダー名を「``Data``」に変えて、その中の「``Tor``」フォルダーを「``tor-" +"win32``」に名前を変える。" #: ../../source/tor.rst:32 msgid "" @@ -83,6 +94,9 @@ msgid "" "administrator, and use ``tor.exe --hash-password`` to generate a hash of " "your password. For example::" msgstr "" +"コントロールポートのパスワードを作る(7語の順序は良いパスワードになります、例えば``comprised stumble rummage work " +"avenging construct volatile``)。次は管理者としてコマンド・プロンプトを開いて(``cmd``)、「``tor.exe " +"--hash-password``」を入力してパスワードのハッシュを生成する。例えば::" #: ../../source/tor.rst:39 msgid "" @@ -90,6 +104,8 @@ msgid "" "can ignore). In the case of the above example, it is " "``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``." msgstr "" +"警告メッセージの後、ハッシュ化パスワードの出力は表示されます(警告を無視しても問題ありません)。以上の例の場合は「``16:00322E903D96DE9" +"86058BB9ABDA91E010D7A863768635AC38E213FDBEF``」になります。" #: ../../source/tor.rst:41 msgid "" @@ -97,6 +113,8 @@ msgid "" "win32\\torrc`` and put your hashed password output in it, replacing the " "``HashedControlPassword`` with the one you just generated::" msgstr "" +"次は``C:\\Program Files (x86)\\tor-win32\\torrc`` に新しいテキストファイルを作成して、生成したハッシュ化パス" +"ワードの出力を「``HashedControlPassword``」を上書きするようにファイルの中に入力する::" #: ../../source/tor.rst:46 msgid "" @@ -105,10 +123,12 @@ msgid "" "``_). Like " "this::" msgstr "" +"管理者のコマンド・プロンプトに、先に生成した``torrc``ファイルを使ってサービスとして``tor``をインストールする(``_に説明される通りに)。以下のように::" #: ../../source/tor.rst:50 msgid "You are now running a system ``tor`` process in Windows!" -msgstr "" +msgstr "Windowsに``tor``のシステムプロセスを実行するようになりました!" #: ../../source/tor.rst:52 msgid "" @@ -120,24 +140,28 @@ msgid "" "Connection to Tor\" button. If all goes well, you should see \"Connected " "to the Tor controller\"." msgstr "" +"OnionShareを開いて、下にある \"⚙\"アイコンをクリックする" +"。「OnionShareがどうやってTorと接続して欲しい?」の下に、「コントロールポートを使用して接続する」を選択し、「コントロールポート」を``127" +".0.0.1``、そして「ポート」を``9051``に設定する。「Tor認証設定」に「パスワード」を選択し、この前に作ったコントロールポートのパスワードに" +"設定する。「Torへの接続をテストする」ボタンをクリックする。全てがうまくいくと「Torコントローラーと接続完了」が表示されます。" #: ../../source/tor.rst:61 msgid "Using a system ``tor`` in macOS" -msgstr "" +msgstr "macOSのシステム``tor``を利用" #: ../../source/tor.rst:63 msgid "" "First, install `Homebrew `_ if you don't already have " "it, and then install Tor::" -msgstr "" +msgstr "まずは`Homebrew `_をインストールして、そしてTorをインストールする::" #: ../../source/tor.rst:67 msgid "Now configure Tor to allow connections from OnionShare::" -msgstr "" +msgstr "次はTorをOnionShareからの接続を受け入れるように設定する::" #: ../../source/tor.rst:74 msgid "And start the system Tor service::" -msgstr "" +msgstr "そしてシステムのTorサービスを実行する::" #: ../../source/tor.rst:78 msgid "" @@ -147,14 +171,18 @@ msgid "" "Under \"Tor authentication settings\" choose \"No authentication, or " "cookie authentication\". Click the \"Test Connection to Tor\" button." msgstr "" +"OnionShareを開いて、下にある \"⚙\"アイコンをクリックする" +"。「OnionShareがどうやってTorと接続して欲しい?」の下に、「ソケットファイル」を選択し、ソケットファイルを``/usr/local/var/" +"run/tor/control." +"socket``に設定する。「Tor認証設定」に「認証なし、それともクッキー認証」を選択する。「Torへの接続をテストする」ボタンをクリックする。" #: ../../source/tor.rst:84 ../../source/tor.rst:104 msgid "If all goes well, you should see \"Connected to the Tor controller\"." -msgstr "" +msgstr "全てがうまくいくと「Torコントローラーと接続完了」が表示されます。" #: ../../source/tor.rst:87 msgid "Using a system ``tor`` in Linux" -msgstr "" +msgstr "Linuxのシステム``tor``を利用" #: ../../source/tor.rst:89 msgid "" @@ -163,6 +191,8 @@ msgid "" "`official repository `_." msgstr "" +"まずは``tor``パッケージをインストールする。Debian、Ubuntu、または似てるようなディストリビューションを使う場合は、Torプロジェクトの`" +"公式リポジトリ `_を使うようお進められます。" #: ../../source/tor.rst:91 msgid "" @@ -170,12 +200,15 @@ msgid "" "case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to " "connect to your system ``tor``'s control socket file." msgstr "" +"次は``tor``プロセスを実行するグループ(DebianやUbuntuの場合は``debian-" +"tor``)にユーザを追加して、OnionShareをシステム``tor``のコントロールソケットファイルと接続できるように設定する。" #: ../../source/tor.rst:93 msgid "" "Add your user to the ``debian-tor`` group by running this command " "(replace ``username`` with your actual username)::" msgstr "" +"以下のコマンドを実行してユーザを``debian-tor``グループに追加できます(``username``に実際のユーザ名と書き換えて下さい)::" #: ../../source/tor.rst:97 msgid "" @@ -186,6 +219,9 @@ msgid "" "\"No authentication, or cookie authentication\". Click the \"Test " "Connection to Tor\" button." msgstr "" +"パソコンを再起動する。そしてOnionShareを開いて、下にある \"⚙\"アイコンをクリックする" +"。「OnionShareがどうやってTorと接続して欲しい?」の下に、「ソケットファイル」を選択し、ソケットファイルを``/var/run/tor/" +"control``に設定する。「Tor認証設定」に「認証なし、それともクッキー認証」を選択する。「Torへの接続をテストする」ボタンをクリックする。" #: ../../source/tor.rst:107 msgid "Using Tor bridges" @@ -443,4 +479,3 @@ msgstr "" #~ "if you don't already have it. " #~ "Then, install Tor::" #~ msgstr "" - diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po b/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po index ce99aef2..8fb19012 100644 --- a/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po +++ b/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2020-11-19 08:28+0000\n" "Last-Translator: Kurt Eilertsen \n" -"Language-Team: none\n" "Language: nb_NO\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/advanced.rst:2 msgid "Advanced Usage" @@ -35,11 +34,11 @@ msgid "" "useful if you want to host a website available from the same OnionShare " "address even if you reboot your computer." msgstr "" -"Alt i OnionShare er midlertidig som forvalg. Hvis du lukker en OnionShare-" -"fane, blir den borte, og kan ikke brukes igjen. Noen ganger kan det hende du " -"ønsker at en OnionShare-tjeneste skal vedvare. Dette er nyttig hvis du vil " -"vertstjene en nettside tilgjengelig fra samme OnionShare, uansett om du " -"utfører omstart av datamaskinen." +"Alt i OnionShare er midlertidig som forvalg. Hvis du lukker en " +"OnionShare-fane, blir den borte, og kan ikke brukes igjen. Noen ganger " +"kan det hende du ønsker at en OnionShare-tjeneste skal vedvare. Dette er " +"nyttig hvis du vil vertstjene en nettside tilgjengelig fra samme " +"OnionShare, uansett om du utfører omstart av datamaskinen." #: ../../source/advanced.rst:13 msgid "" @@ -48,19 +47,20 @@ msgid "" "tab is saved a purple pin icon appears to the left of its server status." msgstr "" "For å gjøre en fane vedvarende, huk av «Lagre denne fanen og åpne den " -"automatisk sammen med OnionShare»-boksen, før du starter tjeneren. Når en " -"fane er lagret, vil et lilla stifteikon vises til venstre for dens " +"automatisk sammen med OnionShare»-boksen, før du starter tjeneren. Når en" +" fane er lagret, vil et lilla stifteikon vises til venstre for dens " "tjenerstatus." #: ../../source/advanced.rst:18 +#, fuzzy msgid "" "When you quit OnionShare and then open it again, your saved tabs will " "start opened. You'll have to manually start each service, but when you do" -" they will start with the same OnionShare address and password." +" they will start with the same OnionShare address and private key." msgstr "" -"Når du avslutter OnionShare og så åpner det igjen, vil dine lagrede faner " -"starte åpnet. Du må manuelt starte hver tjeneste, men når du gjør det vil de " -"starte med samme OnionShare-adresse og -passord." +"Når du avslutter OnionShare og så åpner det igjen, vil dine lagrede faner" +" starte åpnet. Du må manuelt starte hver tjeneste, men når du gjør det " +"vil de starte med samme OnionShare-adresse og -passord." #: ../../source/advanced.rst:21 msgid "" @@ -72,51 +72,66 @@ msgstr "" "innstillinger." #: ../../source/advanced.rst:26 -msgid "Turn Off Passwords" -msgstr "Skru av passord" +msgid "Turn Off Private Key" +msgstr "" #: ../../source/advanced.rst:28 msgid "" -"By default, all OnionShare services are protected with the username " -"``onionshare`` and a randomly-generated password. If someone takes 20 " -"wrong guesses at the password, your onion service is automatically " -"stopped to prevent a brute force attack against the OnionShare service." +"By default, all OnionShare services are protected with a private key, " +"which Tor calls \"client authentication\"." msgstr "" -"Som forvalg er alle OnionShare-tjenester beskyttet med brukernavnet " -"`onionshare`, og et tilfeldig generert passord. Hvis noen gjetter passordet " -"20 ganger, vil din onion-tjeneste automatisk stoppes for å forhindre et " -"totalsøksangrep mot OnionShare-tjenesten." -#: ../../source/advanced.rst:31 +#: ../../source/advanced.rst:30 +msgid "" +"When browsing to an OnionShare service in Tor Browser, Tor Browser will " +"prompt for the private key to be entered." +msgstr "" + +#: ../../source/advanced.rst:32 +#, fuzzy msgid "" "Sometimes you might want your OnionShare service to be accessible to the " "public, like if you want to set up an OnionShare receive service so the " "public can securely and anonymously send you files. In this case, it's " -"better to disable the password altogether. If you don't do this, someone " -"can force your server to stop just by making 20 wrong guesses of your " -"password, even if they know the correct password." +"better to disable the private key altogether." msgstr "" "Noen ganger kan de hende at du ønsker at OnionShare-tjenesten skal være " "tilgjengelig for alle, som når du ønsker å sette opp en OnionShare-" -"mottakstjeneste slik at hvem som helst anonymt kan sende deg filer. I sådant " -"fall, er det bedre å skru av passordet helt og holdent. Hvis du ikke gjør " -"dette, kan noen få tjeneren din til å stoppe ved å skrive inn passordet feil " -"20 ganger, selv om de kanskje vet det riktige passordet." +"mottakstjeneste slik at hvem som helst anonymt kan sende deg filer. I " +"sådant fall, er det bedre å skru av passordet helt og holdent. Hvis du " +"ikke gjør dette, kan noen få tjeneren din til å stoppe ved å skrive inn " +"passordet feil 20 ganger, selv om de kanskje vet det riktige passordet." #: ../../source/advanced.rst:35 msgid "" -"To turn off the password for any tab, just check the \"Don't use a " -"password\" box before starting the server. Then the server will be public" -" and won't have a password." +"To turn off the private key for any tab, check the \"This is a public " +"OnionShare service (disables private key)\" box before starting the " +"server. Then the server will be public and won't need a private key to " +"view in Tor Browser." msgstr "" -"For å skru av passordet for en fane, velg «Ikke bruk passord»-boksen før du " -"starter tjeneren. Den vil så bli offentlig, og vil ikke ha et passord." -#: ../../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" msgstr "Planlagte tider" -#: ../../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 " @@ -124,13 +139,13 @@ msgid "" "scheduled time\", \"Stop onion service at scheduled time\", or both, and " "set the respective desired dates and times." msgstr "" -"OnionShare støtter planlegging for akkurat når en tjeneste skal starte og " -"stoppe. Før du starter en tjener, klikk på «Vis avanserte innstillinger» i " -"dens fane, og klikk så på boksene ved enten «Start løktjeneste ved planlagt " -"tidspunkt», «stopp løktjeneste ved planlagt tidspunkt», eller begge, og sett " -"opp tilhørende dato og tider du ønsker at ting skal skje." +"OnionShare støtter planlegging for akkurat når en tjeneste skal starte og" +" stoppe. Før du starter en tjener, klikk på «Vis avanserte innstillinger»" +" i dens fane, og klikk så på boksene ved enten «Start løktjeneste ved " +"planlagt tidspunkt», «stopp løktjeneste ved planlagt tidspunkt», eller " +"begge, og sett opp tilhørende dato og tider du ønsker at ting skal skje." -#: ../../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 " @@ -142,7 +157,7 @@ msgstr "" "planlagt stopp i fremtiden, vil du se en nedtelling til den stoppes " "automatisk." -#: ../../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 " @@ -151,25 +166,26 @@ msgid "" msgstr "" "**Planlagt oppstart av en OnionShare-tjeneste kan fungere som en " "dødmannsknapp**, der din tjeneste vil bli gjort offentlig på et gitt " -"tidspunkt i fremtiden hvis noe skjer med deg. Hvis ingenting skjer, kan du " -"avbryte tjenesten før dens planlagte oppstart." +"tidspunkt i fremtiden hvis noe skjer med deg. Hvis ingenting skjer, kan " +"du avbryte tjenesten før dens planlagte oppstart." -#: ../../source/advanced.rst:51 +#: ../../source/advanced.rst:60 +#, fuzzy 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 " +"making sure they're not available on the internet for more than a few " "days." msgstr "" "**Planlagt stopp av en OnionShare-tjeneste er nyttig for å begrense " -"publisitet**, hvis du ønsker å dele hemmelige dokumenter og ikke vil at de " -"skal være tilgjengelige i mer enn et par dager." +"publisitet**, hvis du ønsker å dele hemmelige dokumenter og ikke vil at " +"de skal være tilgjengelige i mer enn et par dager." -#: ../../source/advanced.rst:56 +#: ../../source/advanced.rst:67 msgid "Command-line Interface" msgstr "Kommandolinjegrensesnitt" -#: ../../source/advanced.rst:58 +#: ../../source/advanced.rst:69 msgid "" "In addition to its graphical interface, OnionShare has a command-line " "interface." @@ -177,7 +193,7 @@ msgstr "" "I tillegg til det grafiske grensesnittet, har OnionShare et " "kommandolinjegrensesnitt." -#: ../../source/advanced.rst:60 +#: ../../source/advanced.rst:71 msgid "" "You can install just the command-line version of OnionShare using " "``pip3``::" @@ -185,33 +201,41 @@ msgstr "" "Du kan installere kun kommandolinjeversjonen av OnionShare ved bruk av " "``pip3``::" -#: ../../source/advanced.rst:64 +#: ../../source/advanced.rst:75 msgid "" "Note that you will also need the ``tor`` package installed. In macOS, " "install it with: ``brew install tor``" msgstr "" -"Merk at du også trenger ``tor``-pakken. I macOS kan du installere den med : " -"``brew install tor``" +"Merk at du også trenger ``tor``-pakken. I macOS kan du installere den med" +" : ``brew install tor``" -#: ../../source/advanced.rst:66 +#: ../../source/advanced.rst:77 msgid "Then run it like this::" msgstr "Kjør den så slik::" -#: ../../source/advanced.rst:70 +#: ../../source/advanced.rst:81 +msgid "" +"For information about installing it on different operating systems, see " +"the `CLI readme file " +"`_ " +"in the git repository." +msgstr "" + +#: ../../source/advanced.rst:83 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 "" -"Hvis du har installer OnionShare ved bruk av Snapcraft-pakken for Linux, kan " -"du også bare kjøre ``onionshare.cli`` for å få tilgang til versjonen med " -"kommandolinjegrensesnittet." +"Hvis du har installer OnionShare ved bruk av Snapcraft-pakken for Linux, " +"kan du også bare kjøre ``onionshare.cli`` for å få tilgang til versjonen " +"med kommandolinjegrensesnittet." -#: ../../source/advanced.rst:73 +#: ../../source/advanced.rst:86 msgid "Usage" msgstr "Bruk" -#: ../../source/advanced.rst:75 +#: ../../source/advanced.rst:88 msgid "" "You can browse the command-line documentation by running ``onionshare " "--help``::" @@ -219,61 +243,6 @@ msgstr "" "Du kan utforske kommandolinje-dokumentasjonen ved å kjøre ``onionshare " "--help``::" -#: ../../source/advanced.rst:132 -msgid "Legacy Addresses" -msgstr "Gammeldagse adresser" - -#: ../../source/advanced.rst:134 -msgid "" -"OnionShare uses v3 Tor onion services by default. These are modern onion " -"addresses that have 56 characters, for example::" -msgstr "" -"OnionShare bruker v3-løktjeenster fra Tor som forvalg. Disse er moderne " -"løkadresser med 56 tegn, for eksempel::" - -#: ../../source/advanced.rst:139 -msgid "" -"OnionShare still has support for v2 onion addresses, the old type of " -"onion addresses that have 16 characters, for example::" -msgstr "" -"OnionShare har fremdeles støtte for v2-løkadresser, den gamle typen som kun " -"har 16 tegn, for eksempel::" - -#: ../../source/advanced.rst:143 -msgid "" -"OnionShare calls v2 onion addresses \"legacy addresses\", and they are " -"not recommended, as v3 onion addresses are more secure." -msgstr "" -"OnionShare kaller v2-løkadresser «gammeldagse adresser», og de anbefales " -"ikke, siden v3-løkadresser er sikrere." - -#: ../../source/advanced.rst:145 -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 "" -"For å bruke gammeldagse adresser klikker du «Vis avanserte innstillinger» " -"fra en fane før du starter en tjener, og velger «Bruk en gammeldags adresse " -"(v2-løktjeneste, anbefales ikke)-boksen. I gammeldags modus kan du " -"alternativt skru på Tor-klientverifisering. Når du starter en tjener i " -"gammeldags modus, kan du ikke fjerne gammeldags modus for denne fanen. Du må " -"istedenfor starte en egen tjeneste i en egen fane." - -#: ../../source/advanced.rst:150 -msgid "" -"Tor Project plans to `completely deprecate v2 onion services " -"`_ on October 15, " -"2021, and legacy onion services will be removed from OnionShare before " -"then." -msgstr "" -"Tor-prosjektet planlegger å `_ 15 Oktober, 2021, og gammeldagse løktjeenster vil bli fjernet " -"fra OnionShare før den tid." - #~ msgid "Make a symbolic link to the OnionShare command line binary line this::" #~ msgstr "" @@ -472,3 +441,112 @@ msgstr "" #~ " services will soon be removed from" #~ " OnionShare as well." #~ msgstr "" + +#~ msgid "Turn Off Passwords" +#~ msgstr "Skru av passord" + +#~ msgid "" +#~ "By default, all OnionShare services are" +#~ " protected with the username ``onionshare``" +#~ " and a randomly-generated password. " +#~ "If someone takes 20 wrong guesses " +#~ "at the password, your onion service " +#~ "is automatically stopped to prevent a" +#~ " brute force attack against the " +#~ "OnionShare service." +#~ msgstr "" +#~ "Som forvalg er alle OnionShare-tjenester" +#~ " beskyttet med brukernavnet `onionshare`, " +#~ "og et tilfeldig generert passord. Hvis" +#~ " noen gjetter passordet 20 ganger, " +#~ "vil din onion-tjeneste automatisk " +#~ "stoppes for å forhindre et " +#~ "totalsøksangrep mot OnionShare-tjenesten." + +#~ 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 "" +#~ "For å skru av passordet for en " +#~ "fane, velg «Ikke bruk passord»-boksen " +#~ "før du starter tjeneren. Den vil " +#~ "så bli offentlig, og vil ikke ha" +#~ " et passord." + +#~ msgid "Legacy Addresses" +#~ msgstr "Gammeldagse adresser" + +#~ msgid "" +#~ "OnionShare uses v3 Tor onion services" +#~ " by default. These are modern onion" +#~ " addresses that have 56 characters, " +#~ "for example::" +#~ msgstr "" +#~ "OnionShare bruker v3-løktjeenster fra Tor " +#~ "som forvalg. Disse er moderne " +#~ "løkadresser med 56 tegn, for eksempel::" + +#~ msgid "" +#~ "OnionShare still has support for v2 " +#~ "onion addresses, the old type of " +#~ "onion addresses that have 16 characters," +#~ " for example::" +#~ msgstr "" +#~ "OnionShare har fremdeles støtte for " +#~ "v2-løkadresser, den gamle typen som kun" +#~ " har 16 tegn, for eksempel::" + +#~ msgid "" +#~ "OnionShare calls v2 onion addresses " +#~ "\"legacy addresses\", and they are not" +#~ " recommended, as v3 onion addresses " +#~ "are more secure." +#~ msgstr "" +#~ "OnionShare kaller v2-løkadresser «gammeldagse " +#~ "adresser», og de anbefales ikke, siden" +#~ " v3-løkadresser er sikrere." + +#~ 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 "" +#~ "For å bruke gammeldagse adresser klikker" +#~ " du «Vis avanserte innstillinger» fra " +#~ "en fane før du starter en tjener," +#~ " og velger «Bruk en gammeldags " +#~ "adresse (v2-løktjeneste, anbefales ikke)-boksen. " +#~ "I gammeldags modus kan du alternativt" +#~ " skru på Tor-klientverifisering. Når " +#~ "du starter en tjener i gammeldags " +#~ "modus, kan du ikke fjerne gammeldags " +#~ "modus for denne fanen. Du må " +#~ "istedenfor starte en egen tjeneste i " +#~ "en egen fane." + +#~ msgid "" +#~ "Tor Project plans to `completely " +#~ "deprecate v2 onion services " +#~ "`_ on" +#~ " October 15, 2021, and legacy onion" +#~ " services will be removed from " +#~ "OnionShare before then." +#~ msgstr "" +#~ "Tor-prosjektet planlegger å " +#~ "`_ 15" +#~ " Oktober, 2021, og gammeldagse løktjeenster" +#~ " vil bli fjernet fra OnionShare før" +#~ " den tid." + diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/develop.po b/docs/source/locale/nb_NO/LC_MESSAGES/develop.po index d12cbafb..2017d89f 100644 --- a/docs/source/locale/nb_NO/LC_MESSAGES/develop.po +++ b/docs/source/locale/nb_NO/LC_MESSAGES/develop.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2020-11-19 08:28+0000\n" "Last-Translator: Allan Nordhøy \n" -"Language-Team: none\n" "Language: nb_NO\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/develop.rst:2 msgid "Developing OnionShare" @@ -39,13 +38,13 @@ msgid "" "click \"Join a Team\", and type \"onionshare\"." msgstr "" "OnionShare har et åpent Keybase-team for å diskutere prosjektet, stille " -"spørsmål, dele ideer og design, og legge planer for fremtidig utvikling. (" -"Det er også en enkel måte å sende end-to-end krypterte direktemeldinger til " -"andre i OnionShare-fellesskapet, som OnionShare-adresser.) For å bruke " -"Keybase, last ned `Keybase-appen ` _ , lag en " -"konto, og `bli med i dette teamet ` _. " -"Gå til \"Teams\" i appen, klikk \"Bli med i et team\" og skriv \"onionshare\"" -"." +"spørsmål, dele ideer og design, og legge planer for fremtidig utvikling. " +"(Det er også en enkel måte å sende end-to-end krypterte direktemeldinger " +"til andre i OnionShare-fellesskapet, som OnionShare-adresser.) For å " +"bruke Keybase, last ned `Keybase-appen ` _ ," +" lag en konto, og `bli med i dette teamet " +"` _. Gå til \"Teams\" i appen, klikk " +"\"Bli med i et team\" og skriv \"onionshare\"." #: ../../source/develop.rst:12 msgid "" @@ -53,33 +52,37 @@ msgid "" "`_ for developers " "and and designers to discuss the project." msgstr "" -"OnionShare har også en `postliste ` _ for utviklere og designere for å diskutere prosjektet." +"OnionShare har også en `postliste ` _ for utviklere og designere for å diskutere " +"prosjektet." #: ../../source/develop.rst:15 msgid "Contributing Code" msgstr "Kodebidrag" #: ../../source/develop.rst:17 +#, fuzzy msgid "" "OnionShare source code is to be found in this Git repository: " -"https://github.com/micahflee/onionshare" +"https://github.com/onionshare/onionshare" msgstr "" -"OnionShare-kildekoden finnes i dette Git-depotet: https://github.com/" -"micahflee/onionshare" +"OnionShare-kildekoden finnes i dette Git-depotet: " +"https://github.com/micahflee/onionshare" #: ../../source/develop.rst:19 +#, fuzzy msgid "" "If you'd like to contribute code to OnionShare, it helps to join the " "Keybase team and ask questions about what you're thinking of working on. " "You should also review all of the `open issues " -"`_ on GitHub to see if " +"`_ on GitHub to see if " "there are any you'd like to tackle." msgstr "" -"Hvis du vil bidra med kode til OnionShare, hjelper det å bli med i Keybase-" -"teamet og stille spørsmål om hva du tenker å jobbe med. Du bør også " -"gjennomgå alle de `åpne problemene ` _ på GitHub for å se om det er noen du vil takle." +"Hvis du vil bidra med kode til OnionShare, hjelper det å bli med i " +"Keybase-teamet og stille spørsmål om hva du tenker å jobbe med. Du bør " +"også gjennomgå alle de `åpne problemene " +"` _ på GitHub for å se om" +" det er noen du vil takle." #: ../../source/develop.rst:22 msgid "" @@ -87,9 +90,10 @@ msgid "" "repository and one of the project maintainers will review it and possibly" " ask questions, request changes, reject it, or merge it into the project." msgstr "" -"Når du er klar til å bidra med kode, åpner du en pull-forespørsel i GitHub-" -"depotet, og en av prosjektansvarlige vil gjennomgå den og muligens stille " -"spørsmål, be om endringer, avvise den eller slå den sammen i prosjektet." +"Når du er klar til å bidra med kode, åpner du en pull-forespørsel i " +"GitHub-depotet, og en av prosjektansvarlige vil gjennomgå den og muligens" +" stille spørsmål, be om endringer, avvise den eller slå den sammen i " +"prosjektet." #: ../../source/develop.rst:27 msgid "Starting Development" @@ -98,17 +102,12 @@ msgstr "Utviklingsstart" #: ../../source/develop.rst:29 msgid "" "OnionShare is developed in Python. To get started, clone the Git " -"repository at https://github.com/micahflee/onionshare/ and then consult " +"repository at https://github.com/onionshare/onionshare/ and then consult " "the ``cli/README.md`` file to learn how to set up your development " "environment for the command-line version, and the ``desktop/README.md`` " "file to learn how to set up your development environment for the " "graphical version." msgstr "" -"OnionShare er utviklet i Python. For å komme i gang kloner du Git-depotet på " -"https://github.com/micahflee/onionshare/ og konsulterer deretter filen `` " -"cli / README.md '' for å lære hvordan du konfigurerer utviklingsmiljøet for " -"kommandolinjeversjonen. , og filen 'desktop / README.md' for å lære hvordan " -"du konfigurerer utviklingsmiljøet ditt for den grafiske versjonen." #: ../../source/develop.rst:32 msgid "" @@ -116,9 +115,9 @@ msgid "" "install dependencies for your platform, and to run OnionShare from the " "source tree." msgstr "" -"Disse filene inneholder de nødvendige tekniske instruksjonene og kommandoene " -"for å installere avhengigheter for plattformen din, og for å kjøre " -"OnionShare fra kildetreet." +"Disse filene inneholder de nødvendige tekniske instruksjonene og " +"kommandoene for å installere avhengigheter for plattformen din, og for å " +"kjøre OnionShare fra kildetreet." #: ../../source/develop.rst:35 msgid "Debugging tips" @@ -136,11 +135,11 @@ msgid "" "initialized, when events occur (like buttons clicked, settings saved or " "reloaded), and other debug info. For example::" msgstr "" -"Når du utvikler, er det praktisk å kjøre OnionShare fra en terminal og legge " -"til `` --verbose '' (eller `` -v '') -flagget til kommandoen. Dette skriver " -"ut mange nyttige meldinger til terminalen, for eksempel når visse objekter " -"initialiseres, når hendelser inntreffer (som knapper som er klikket, " -"innstillinger lagret eller lastet inn på nytt) og annen " +"Når du utvikler, er det praktisk å kjøre OnionShare fra en terminal og " +"legge til `` --verbose '' (eller `` -v '') -flagget til kommandoen. Dette" +" skriver ut mange nyttige meldinger til terminalen, for eksempel når " +"visse objekter initialiseres, når hendelser inntreffer (som knapper som " +"er klikket, innstillinger lagret eller lastet inn på nytt) og annen " "feilsøkingsinformasjon. For eksempel::" #: ../../source/develop.rst:117 @@ -148,8 +147,8 @@ msgid "" "You can add your own debug messages by running the ``Common.log`` method " "from ``onionshare/common.py``. For example::" msgstr "" -"Du kan legge til dine egne feilsøkingsmeldinger ved å kjøre `` Common.log '' " -"-metoden fra `` onionshare / common.py ''. For eksempel::" +"Du kan legge til dine egne feilsøkingsmeldinger ved å kjøre `` Common.log" +" '' -metoden fra `` onionshare / common.py ''. For eksempel::" #: ../../source/develop.rst:121 msgid "" @@ -157,9 +156,9 @@ msgid "" "using OnionShare, or the value of certain variables before and after they" " are manipulated." msgstr "" -"Dette kan være nyttig når du lærer hendelseskjeden som oppstår når du bruker " -"OnionShare, eller verdien av visse variabler før og etter at de blir " -"manipulert." +"Dette kan være nyttig når du lærer hendelseskjeden som oppstår når du " +"bruker OnionShare, eller verdien av visse variabler før og etter at de " +"blir manipulert." #: ../../source/develop.rst:124 msgid "Local Only" @@ -171,25 +170,26 @@ msgid "" "altogether during development. You can do this with the ``--local-only`` " "flag. For example::" msgstr "" -"Tor er treg, og det er ofte praktisk å hoppe over å starte onion tjenester " -"helt under utvikling. Du kan gjøre dette med flagget `` - bare lokal ''. For " -"eksempel::" +"Tor er treg, og det er ofte praktisk å hoppe over å starte onion " +"tjenester helt under utvikling. Du kan gjøre dette med flagget `` - bare " +"lokal ''. For eksempel::" -#: ../../source/develop.rst:164 +#: ../../source/develop.rst:165 +#, fuzzy msgid "" -"In this case, you load the URL ``http://onionshare:train-" -"system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of" -" using the Tor Browser." +"In this case, you load the URL ``http://127.0.0.1:17641`` in a normal " +"web-browser like Firefox, instead of using the Tor Browser. The private " +"key is not actually needed in local-only mode, so you can ignore it." msgstr "" "I dette tilfellet laster du inn URL-en `` http: // onionshare: train-" -"system@127.0.0.1: 17635 '' i en vanlig nettleser som Firefox, i stedet for å " -"bruke Tor-nettleseren." +"system@127.0.0.1: 17635 '' i en vanlig nettleser som Firefox, i stedet " +"for å bruke Tor-nettleseren." -#: ../../source/develop.rst:167 +#: ../../source/develop.rst:168 msgid "Contributing Translations" msgstr "Bidra med oversettelser" -#: ../../source/develop.rst:169 +#: ../../source/develop.rst:170 msgid "" "Help make OnionShare easier to use and more familiar and welcoming for " "people by translating it on `Hosted Weblate " @@ -197,30 +197,31 @@ msgid "" "\"OnionShare\" in latin letters, and use \"OnionShare (localname)\" if " "needed." msgstr "" -"Hjelp med å gjøre OnionShare enklere å bruke og mer kjent og imøtekommende " -"for folk ved å oversette den på `Hosted Weblate ` _. Oppbevar alltid \"OnionShare\" med latinske " -"bokstaver, og bruk \"OnionShare (lokalt navn)\" om nødvendig." +"Hjelp med å gjøre OnionShare enklere å bruke og mer kjent og " +"imøtekommende for folk ved å oversette den på `Hosted Weblate " +"` _. Oppbevar alltid " +"\"OnionShare\" med latinske bokstaver, og bruk \"OnionShare (lokalt " +"navn)\" om nødvendig." -#: ../../source/develop.rst:171 +#: ../../source/develop.rst:172 msgid "To help translate, make a Hosted Weblate account and start contributing." msgstr "" -"For å hjelpe deg med å oversette, lag en Hosted Weblate-konto og begynn å " -"bidra." +"For å hjelpe deg med å oversette, lag en Hosted Weblate-konto og begynn å" +" bidra." -#: ../../source/develop.rst:174 +#: ../../source/develop.rst:175 msgid "Suggestions for Original English Strings" msgstr "Forslag til originale engelske strenger" -#: ../../source/develop.rst:176 +#: ../../source/develop.rst:177 msgid "" "Sometimes the original English strings are wrong, or don't match between " "the application and the documentation." msgstr "" -"Noen ganger er de originale engelske strengene feil, eller samsvarer ikke " -"mellom applikasjonen og dokumentasjonen." +"Noen ganger er de originale engelske strengene feil, eller samsvarer ikke" +" mellom applikasjonen og dokumentasjonen." -#: ../../source/develop.rst:178 +#: ../../source/develop.rst:179 msgid "" "File source string improvements by adding @kingu to your Weblate comment," " or open a GitHub issue or pull request. The latter ensures all upstream " @@ -229,22 +230,22 @@ msgid "" msgstr "" "Filkildeforbedringer ved å legge til @kingu i Weblate-kommentaren, eller " "åpne et GitHub-problem eller forespørsel. Sistnevnte sikrer at alle " -"oppstrøms utviklere ser forslaget, og potensielt kan endre strengen via de " -"vanlige kodegjennomgangsprosessene." +"oppstrøms utviklere ser forslaget, og potensielt kan endre strengen via " +"de vanlige kodegjennomgangsprosessene." -#: ../../source/develop.rst:182 +#: ../../source/develop.rst:183 msgid "Status of Translations" msgstr "Oversettelsesstatus" -#: ../../source/develop.rst:183 +#: ../../source/develop.rst:184 msgid "" "Here is the current translation status. If you want start a translation " "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Her er gjeldende oversettelsesstatus. Hvis du vil starte en oversettelse på " -"et språk som ikke er startet, kan du skrive til adresselisten: onionshare-" -"dev@lists.riseup.net" +"Her er gjeldende oversettelsesstatus. Hvis du vil starte en oversettelse " +"på et språk som ikke er startet, kan du skrive til adresselisten: " +"onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" @@ -461,3 +462,27 @@ msgstr "" #~ msgid "Do the same for other untranslated lines." #~ msgstr "" + +#~ msgid "" +#~ "OnionShare is developed in Python. To" +#~ " get started, clone the Git " +#~ "repository at https://github.com/micahflee/onionshare/ " +#~ "and then consult the ``cli/README.md`` " +#~ "file to learn how to set up " +#~ "your development environment for the " +#~ "command-line version, and the " +#~ "``desktop/README.md`` file to learn how " +#~ "to set up your development environment" +#~ " for the graphical version." +#~ msgstr "" +#~ "OnionShare er utviklet i Python. For " +#~ "å komme i gang kloner du Git-" +#~ "depotet på https://github.com/micahflee/onionshare/ " +#~ "og konsulterer deretter filen `` cli " +#~ "/ README.md '' for å lære hvordan" +#~ " du konfigurerer utviklingsmiljøet for " +#~ "kommandolinjeversjonen. , og filen 'desktop" +#~ " / README.md' for å lære hvordan " +#~ "du konfigurerer utviklingsmiljøet ditt for " +#~ "den grafiske versjonen." + diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/features.po b/docs/source/locale/nb_NO/LC_MESSAGES/features.po index 19804774..c95a6911 100644 --- a/docs/source/locale/nb_NO/LC_MESSAGES/features.po +++ b/docs/source/locale/nb_NO/LC_MESSAGES/features.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2020-11-20 17:28+0000\n" "Last-Translator: Allan Nordhøy \n" -"Language-Team: none\n" "Language: nb_NO\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/features.rst:4 msgid "How OnionShare Works" @@ -34,47 +33,59 @@ msgstr "" "`-løktjenester`_." #: ../../source/features.rst:8 -msgid "" -"By default, OnionShare web addresses are protected with a random " -"password. A typical OnionShare address might look something like this::" +#, fuzzy +msgid "By default, OnionShare web addresses are protected with a private key." msgstr "" -"Som forvalg er OnionShare-vevadresser beskyttet med et tilfeldig passord. En " -"typisk OnionShare-adresse ser slik ut:" +"Som forvalg er OnionShare-vevadresser beskyttet med et tilfeldig passord." +" En typisk OnionShare-adresse ser slik ut:" -#: ../../source/features.rst:12 +#: ../../source/features.rst:10 +msgid "OnionShare addresses look something like this::" +msgstr "" + +#: ../../source/features.rst:14 +msgid "And private keys might look something like this::" +msgstr "" + +#: ../../source/features.rst:18 +#, fuzzy msgid "" -"You're responsible for securely sharing that URL using a communication " -"channel of your choice like in an encrypted chat message, or using " -"something less secure like unencrypted e-mail, depending on your `threat " -"model `_." +"You're responsible for securely sharing that URL and private key using a " +"communication channel of your choice like in an encrypted chat message, " +"or using something less secure like unencrypted email, depending on your " +"`threat model `_." msgstr "" "Du er ansvarlig for å dele nettadressen på sikkert vis ved bruk av en " "kommunikasjonskanal du velger, som f.eks. en kryptert slydringsmelding, " -"eller noe mindre sikkert, som ukryptert e-post, avhengig av din `" -"trusselmodell `_." +"eller noe mindre sikkert, som ukryptert e-post, avhengig av din " +"`trusselmodell `_." -#: ../../source/features.rst:14 +#: ../../source/features.rst:20 +#, fuzzy msgid "" "The people you send the URL to then copy and paste it into their `Tor " "Browser `_ to access the OnionShare service." +" Tor Browser will then prompt for the private key, which the people can " +"also then copy and paste in." msgstr "" "Folkene du sender nettadressen til kopierer den så inn i deres `Tor-" -"nettleser `_ for å få tilgang til OnionShare-" -"tjenesten." +"nettleser `_ for å få tilgang til " +"OnionShare-tjenesten." -#: ../../source/features.rst:16 +#: ../../source/features.rst:24 +#, fuzzy msgid "" "If you run OnionShare on your laptop to send someone files, and then " "suspend it before the files are sent, the service will not be available " -"until your laptop is unsuspended and on the Internet again. OnionShare " +"until your laptop is unsuspended and on the internet again. OnionShare " "works best when working with people in real-time." msgstr "" "Hvis du kjører OnionShare på din bærbare for å sende noen filer, og så " "sender den i hvilemodus før filene er sendt, vil ikke tjenesten være " -"tilgjengelig igjen før den går ut av hvilemodus og er på Internett igjen. " -"OnionShare fungerer best når folk jobber sammen i sanntid." +"tilgjengelig igjen før den går ut av hvilemodus og er på Internett igjen." +" OnionShare fungerer best når folk jobber sammen i sanntid." -#: ../../source/features.rst:18 +#: ../../source/features.rst:26 msgid "" "Because your own computer is the web server, *no third party can access " "anything that happens in OnionShare*, not even the developers of " @@ -82,17 +93,17 @@ msgid "" "Tor onion services too, it also protects your anonymity. See the " ":doc:`security design ` for more info." msgstr "" -"Fordi din egen datamaskin er vevtjeneren, *har ingen tredjepart tilgang til " -"noe som skjer i OnionShare*, ikke engang utviklerne av OnionShare. Det er " -"helt privat. Og fordi OnionShare er basert på Tor-løktjenester også, " -"beskytter det anonymiteten din. Sjekk :doc:`sikkerhetsdesign ` " -"for mer info." +"Fordi din egen datamaskin er vevtjeneren, *har ingen tredjepart tilgang " +"til noe som skjer i OnionShare*, ikke engang utviklerne av OnionShare. " +"Det er helt privat. Og fordi OnionShare er basert på Tor-løktjenester " +"også, beskytter det anonymiteten din. Sjekk :doc:`sikkerhetsdesign " +"` for mer info." -#: ../../source/features.rst:21 +#: ../../source/features.rst:29 msgid "Share Files" msgstr "Del filer" -#: ../../source/features.rst:23 +#: ../../source/features.rst:31 msgid "" "You can use OnionShare to send files and folders to people securely and " "anonymously. Open a share tab, drag in the files and folders you wish to " @@ -102,37 +113,41 @@ msgstr "" "anonymt. Åpne en delingsfane, dra inn filene og mappene du vil dele, og " "klikk «Begynn deling»." -#: ../../source/features.rst:27 ../../source/features.rst:93 +#: ../../source/features.rst:35 ../../source/features.rst:112 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 "" -"Etter at du har lagt til filer, vil du se noen innstillinger. Forsikre deg " -"om at du velger den innstillingen du er interessert i før du begynner å dele." +"Etter at du har lagt til filer, vil du se noen innstillinger. Forsikre " +"deg om at du velger den innstillingen du er interessert i før du begynner" +" å dele." -#: ../../source/features.rst:31 +#: ../../source/features.rst:39 +#, fuzzy msgid "" "As soon as someone finishes downloading your files, OnionShare will " -"automatically stop the server, removing the website from the Internet. To" +"automatically stop the server, removing the website from the internet. To" " allow multiple people to download them, uncheck the \"Stop sharing after" " files have been sent (uncheck to allow downloading individual files)\" " "box." msgstr "" "Så snart noen laster ned filene dine, vil OnionShare automatisk stoppe " -"tjeneren, noe som fjerner nettsiden fra Internett. For å tillate flerfoldige " -"folk å laste dem ned, fjern avhukingen av «Slutt å dele etter at filer har " -"blitt sendt (fjern avhuking for å laste ned individuelle filer)»-boksen." +"tjeneren, noe som fjerner nettsiden fra Internett. For å tillate " +"flerfoldige folk å laste dem ned, fjern avhukingen av «Slutt å dele etter" +" at filer har blitt sendt (fjern avhuking for å laste ned individuelle " +"filer)»-boksen." -#: ../../source/features.rst:34 +#: ../../source/features.rst:42 msgid "" "Also, if you uncheck this box, people will be able to download the " "individual files you share rather than a single compressed version of all" " the files." msgstr "" -"Når du avhuker denne boksen, vil folk kunne laste ned de individuelle filene " -"du deler, snarere enn en enkelt sammenpakket versjon av alle filene." +"Når du avhuker denne boksen, vil folk kunne laste ned de individuelle " +"filene du deler, snarere enn en enkelt sammenpakket versjon av alle " +"filene." -#: ../../source/features.rst:36 +#: ../../source/features.rst:44 msgid "" "When you're ready to share, click the \"Start sharing\" button. You can " "always click \"Stop sharing\", or quit OnionShare, immediately taking the" @@ -140,82 +155,102 @@ msgid "" "to show the history and progress of people downloading files from you." msgstr "" "Når du er klar til å dele, klikk «Begynn deling»-knappen. Du kan alltids " -"klikke «Stopp deling», eller avslutte OnionShare, noe som umiddelbart tar " -"ned nettsiden. Du kan også klikke «↑»-ikonet øverst i høyre hjørne for å " -"vise historikken og framdriften for dem som laster ned filer fra deg." +"klikke «Stopp deling», eller avslutte OnionShare, noe som umiddelbart tar" +" ned nettsiden. Du kan også klikke «↑»-ikonet øverst i høyre hjørne for å" +" vise historikken og framdriften for dem som laster ned filer fra deg." -#: ../../source/features.rst:40 +#: ../../source/features.rst:48 +#, fuzzy msgid "" -"Now that you have a OnionShare, copy the address and send it to the " -"person you want to receive the files. If the files need to stay secure, " -"or the person is otherwise exposed to danger, use an encrypted messaging " -"app." +"Now that you have a OnionShare, copy the address and the private key and " +"send it to the person you want to receive the files. If the files need to" +" stay secure, or the person is otherwise exposed to danger, use an " +"encrypted messaging app." msgstr "" "Nå som du har en OnionShare, kopier adressen og send den til personen du " "ønsker å sende filene til. Hvis filene må forbli sikre, eller personen " "ellers er gjenstand for fare, bruk et kryptert meldingsprogram." -#: ../../source/features.rst:42 +#: ../../source/features.rst:50 +#, fuzzy msgid "" "That person then must load the address in Tor Browser. After logging in " -"with the random password included in the web address, the files can be " -"downloaded directly from your computer by clicking the \"Download Files\"" -" link in the corner." +"with the private key, the files can be downloaded directly from your " +"computer by clicking the \"Download Files\" link in the corner." msgstr "" -"Personen må deretter laste inn adressen i Tor-nettleseren. Etter å ha logget " -"inn med det tilfeldige passordet som er å finne i nettadressen, kan filene " -"lastes ned direkte til din datamaskin ved å klikke «Last end filer»-lenken i " -"hjørnet." +"Personen må deretter laste inn adressen i Tor-nettleseren. Etter å ha " +"logget inn med det tilfeldige passordet som er å finne i nettadressen, " +"kan filene lastes ned direkte til din datamaskin ved å klikke «Last end " +"filer»-lenken i hjørnet." -#: ../../source/features.rst:47 -msgid "Receive Files" -msgstr "Mottak av filer" +#: ../../source/features.rst:55 +msgid "Receive Files and Messages" +msgstr "" -#: ../../source/features.rst:49 +#: ../../source/features.rst:57 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\"." +"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 "" -"Du kan bruke OnionShare for å la folk laste opp filer anonymt, direkte til " -"din datamaskin, noe som effektivt sett gjør den til en anonym postboks. Åpne " -"en «Mottaksfane», velg hvor du ønsker å lagre filene og andre innstillinger, " -"og klikk så «Start mottaksmodus»." -#: ../../source/features.rst:54 +#: ../../source/features.rst:62 +msgid "You can browse for a folder to save messages and files that get submitted." +msgstr "" + +#: ../../source/features.rst:64 msgid "" -"This starts the OnionShare service. Anyone loading this address in their " -"Tor Browser will be able to upload files to your computer." +"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 "" -"Dette starter OnionShare-tjenesten. Alle som laster inn denne adressen i " -"deres Tor-nettleser vil kunne laste opp filer til din datamaskin." -#: ../../source/features.rst:58 +#: ../../source/features.rst:66 +msgid "" +"You can check \"Use notification webhook\" and then choose a webhook URL " +"if you want to be notified when someone submits files or messages to your" +" OnionShare service. If you use this feature, OnionShare will make an " +"HTTP POST request to this URL whenever someone submits files or messages." +" For example, if you want to get an encrypted text messaging on the " +"messaging app `Keybase `_, you can start a " +"conversation with `@webhookbot `_, type " +"``!webhook create onionshare-alerts``, and it will respond with a URL. " +"Use that as the notification webhook URL. If someone uploads a file to " +"your receive mode service, @webhookbot will send you a message on Keybase" +" letting you know as soon as it happens." +msgstr "" + +#: ../../source/features.rst:71 +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:75 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 "" -"Du kan også klikke «↓»-ikonet i øvre høyre hjørne for å vise historikken og " -"framdriften for folk som sender filer til deg." +"Du kan også klikke «↓»-ikonet i øvre høyre hjørne for å vise historikken " +"og framdriften for folk som sender filer til deg." -#: ../../source/features.rst:60 -msgid "Here is what it looks like for someone sending you files." +#: ../../source/features.rst:77 +#, fuzzy +msgid "Here is what it looks like for someone sending you files and messages." msgstr "Det ser slik ut når noen sender deg filer." -#: ../../source/features.rst:64 +#: ../../source/features.rst:81 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." +"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 "" -"Når noen laster opp filer til din mottakstjeneste, vil de som forvalg bli " -"lastet ned til en mappe som heter ``OnionShare`` i hjemmemappen på din " -"datamaskin, i automatisk organiserte undermapper basert på når de ble lastet " -"opp." -#: ../../source/features.rst:66 +#: ../../source/features.rst:83 msgid "" "Setting up an OnionShare receiving service is useful for journalists and " "others needing to securely accept documents from anonymous sources. When " @@ -223,28 +258,30 @@ msgid "" "quite as secure version of `SecureDrop `_, the " "whistleblower submission system." msgstr "" -"Å sette opp en OnionShare-tjeneste er nyttig for journalister og andre som " -"må motta dokumenter fra anonyme kilder. Når det brukes på denne måten, er " -"OnionShare en lettere, enklere, ikke helt like sikker versjon av `SecureDrop " -"` fløyteblåserinnsendelsessystemet." +"Å sette opp en OnionShare-tjeneste er nyttig for journalister og andre " +"som må motta dokumenter fra anonyme kilder. Når det brukes på denne " +"måten, er OnionShare en lettere, enklere, ikke helt like sikker versjon " +"av `SecureDrop ` " +"fløyteblåserinnsendelsessystemet." -#: ../../source/features.rst:69 +#: ../../source/features.rst:86 msgid "Use at your own risk" msgstr "Bruk på egen risiko" -#: ../../source/features.rst:71 +#: ../../source/features.rst:88 +#, fuzzy msgid "" -"Just like with malicious e-mail attachments, it's possible someone could " +"Just like with malicious email 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 "" -"Akkurat som for skadelige e-postvedlegg, er det mulig at noen kan prøve å " -"angripe datamaskinen din ved å laste opp en skadelig fil til din OnionShare-" -"tjeneste. OnionShare legger ikke til noen sikkerhetsfunksjoner for å " -"beskytte systemet ditt fra skadelige filer." +"Akkurat som for skadelige e-postvedlegg, er det mulig at noen kan prøve å" +" angripe datamaskinen din ved å laste opp en skadelig fil til din " +"OnionShare-tjeneste. OnionShare legger ikke til noen sikkerhetsfunksjoner" +" for å beskytte systemet ditt fra skadelige filer." -#: ../../source/features.rst:73 +#: ../../source/features.rst:90 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" @@ -253,53 +290,61 @@ msgid "" "`_ or in a `Qubes `_ " "disposableVM." msgstr "" -"Hvis du mottar et office-dokument, eller en PDF gjennom OnionShare, kan du " -"konvertere disse dokumentene til PDF-er som er trygge å åpne ved bruk av `" -"Dangerzone `. Du kan også beskytte deg selv når " -"du åpner ubetrodde dokumenter ved å åpne dem i `Tails ` i en engangs-VM fra `Qubes `." +"Hvis du mottar et office-dokument, eller en PDF gjennom OnionShare, kan " +"du konvertere disse dokumentene til PDF-er som er trygge å åpne ved bruk " +"av `Dangerzone `. Du kan også beskytte deg " +"selv når du åpner ubetrodde dokumenter ved å åpne dem i `Tails " +"` i en engangs-VM fra `Qubes `." -#: ../../source/features.rst:76 +#: ../../source/features.rst:92 +msgid "However, it is always safe to open text messages sent through OnionShare." +msgstr "" + +#: ../../source/features.rst:95 msgid "Tips for running a receive service" msgstr "Tips for kjøring av en mottakstjeneste" -#: ../../source/features.rst:78 +#: ../../source/features.rst:97 +#, fuzzy 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 " +" and connected to the internet, and not on the one you use on a regular " "basis." msgstr "" "Hvis du ønsker å vertstjene din egne anonyme postboks ved bruk av " -"OnionShare, anbefales det at du gjør dette på en egen, dedikert datamaskin " -"som alltid er påslått og koblet til Internett, og ikke den du bruker til " -"vanlig." +"OnionShare, anbefales det at du gjør dette på en egen, dedikert " +"datamaskin som alltid er påslått og koblet til Internett, og ikke den du " +"bruker til vanlig." -#: ../../source/features.rst:80 +#: ../../source/features.rst:99 +#, fuzzy msgid "" "If you intend to put the OnionShare address on your website or social " "media profiles, save the tab (see :ref:`save_tabs`) and run it as a " -"public service (see :ref:`turn_off_passwords`)." +"public service (see :ref:`turn_off_private_key`). It's also a good idea " +"to give it a custom title (see :ref:`custom_titles`)." msgstr "" -"Hvis du har til hensikt å legge OnionShare-adressen på din nettside eller " -"sosiale mediaprofiler, lagre fanen (sjekk :ref:`save_tabs`) og kjør den som " -"en offentlig tjeneste (sjekk :ref:`turn_off_passwords`)." +"Hvis du har til hensikt å legge OnionShare-adressen på din nettside eller" +" sosiale mediaprofiler, lagre fanen (sjekk :ref:`save_tabs`) og kjør den " +"som en offentlig tjeneste (sjekk :ref:`turn_off_passwords`)." -#: ../../source/features.rst:83 +#: ../../source/features.rst:102 msgid "Host a Website" msgstr "Vertstjen en nettside" -#: ../../source/features.rst:85 +#: ../../source/features.rst:104 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 "" "For å vertstjene en statisk HTML-nettside med OnionShare, kan du åpne en " -"nettsidefane, dra filene og mappene som utgjør det statiske innholdet dit, " -"og klikke på «Begynn deling» når du er klar." +"nettsidefane, dra filene og mappene som utgjør det statiske innholdet " +"dit, og klikke på «Begynn deling» når du er klar." -#: ../../source/features.rst:89 +#: ../../source/features.rst:108 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, " @@ -308,105 +353,120 @@ msgid "" "websites that execute code or use databases. So you can't for example use" " WordPress.)" msgstr "" -"Hvis du legger til en ``index.html``-fil, vil den vises når noen laster inn " -"nettsiden din. Du kan også inkludere andre HTML-filer, som CSS-filer, " -"JavaScript-filer, og bilder på nettsiden. (Merk at OnionShare kun støtter " -"vertstjening av *statiske* nettsider. Den kan ikke vertstjene nettsider som " -"kjører kode eller bruker databaser. Så du kan for eksempel ikke bruke " -"WordPress.)" +"Hvis du legger til en ``index.html``-fil, vil den vises når noen laster " +"inn nettsiden din. Du kan også inkludere andre HTML-filer, som CSS-filer," +" JavaScript-filer, og bilder på nettsiden. (Merk at OnionShare kun " +"støtter vertstjening av *statiske* nettsider. Den kan ikke vertstjene " +"nettsider som kjører kode eller bruker databaser. Så du kan for eksempel " +"ikke bruke WordPress.)" -#: ../../source/features.rst:91 +#: ../../source/features.rst:110 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 "" -"Hvis du ikke har en ``index.html``-fil, vil den vise en kategoriopplisting " -"istedenfor, og folk som laster den inn kan se gjennom filene og laste dem " -"ned." +"Hvis du ikke har en ``index.html``-fil, vil den vise en " +"kategoriopplisting istedenfor, og folk som laster den inn kan se gjennom " +"filene og laste dem ned." -#: ../../source/features.rst:98 +#: ../../source/features.rst:117 msgid "Content Security Policy" msgstr "Sikkerhetspraksis for innhold" -#: ../../source/features.rst:100 +#: ../../source/features.rst:119 +#, fuzzy msgid "" "By default OnionShare helps secure your website by setting a strict " -"`Content Security Police " +"`Content Security Policy " "`_ header. " "However, this prevents third-party content from loading inside the web " "page." msgstr "" -"Som forvalg sikrer OnionSHare din nettside ved å håndheve en streng `" -"sikkerhetspraksis for innhold `_ i toppteksten. Dog forhindrer dette " -"tredjepartsinnhold fra å bli lastet inn inne i nettsiden." +"Som forvalg sikrer OnionSHare din nettside ved å håndheve en streng " +"`sikkerhetspraksis for innhold " +"`_ i toppteksten. " +"Dog forhindrer dette tredjepartsinnhold fra å bli lastet inn inne i " +"nettsiden." -#: ../../source/features.rst:102 +#: ../../source/features.rst:121 +#, fuzzy 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." +"JavaScript libraries from CDNs, you have two options:" msgstr "" "Hvis du vil laste inn innhold fra tredjeparts nettsteder, som eiendeler " "eller JavaScript-biblioteker fra CDN, merker du av i boksen \"Ikke send " -"innholdssikkerhetspolicyhode (lar nettstedet ditt bruke tredjepartsressurser)" -"\" før du starter tjenesten." +"innholdssikkerhetspolicyhode (lar nettstedet ditt bruke " +"tredjepartsressurser)\" før du starter tjenesten." -#: ../../source/features.rst:105 +#: ../../source/features.rst:123 +msgid "" +"You can disable sending a Content Security Policy header by checking the " +"\"Don't send Content Security Policy header (allows your website to use " +"third-party resources)\" box before starting the service." +msgstr "" + +#: ../../source/features.rst:124 +msgid "You can send a custom Content Security Policy header." +msgstr "" + +#: ../../source/features.rst:127 msgid "Tips for running a website service" msgstr "Tips for kjøring av en nettside-tjeneste" -#: ../../source/features.rst:107 +#: ../../source/features.rst:129 +#, fuzzy 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 " +"just to quickly show someone something), it's recommended you do it on a " +"separate, dedicated computer that is 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 "" -"Hvis du vil være vert for et langsiktig nettsted ved hjelp av OnionShare (" -"som ikke betyr noe for raskt å vise noen noe), anbefales det at du gjør det " -"på en separat, dedikert datamaskin som alltid er slått på og koblet til " -"Internett, og ikke på den du bruker på en jevnlig basis. Lagre fanen (se: " -"ref: `save_tabs`), slik at du kan gjenoppta nettstedet med samme adresse " -"hvis du lukker OnionShare og åpner det senere." +"Hvis du vil være vert for et langsiktig nettsted ved hjelp av OnionShare " +"(som ikke betyr noe for raskt å vise noen noe), anbefales det at du gjør " +"det på en separat, dedikert datamaskin som alltid er slått på og koblet " +"til Internett, og ikke på den du bruker på en jevnlig basis. Lagre fanen " +"(se: ref: `save_tabs`), slik at du kan gjenoppta nettstedet med samme " +"adresse hvis du lukker OnionShare og åpner det senere." -#: ../../source/features.rst:110 +#: ../../source/features.rst:132 +#, fuzzy msgid "" "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_private_key`)." msgstr "" "Hvis din nettside er tiltenkt offentligheten, burde du kjøre det som en " "offentlig tjeneste (sjekk: ref:`turn_off_passwords`)." -#: ../../source/features.rst:113 +#: ../../source/features.rst:135 msgid "Chat Anonymously" msgstr "Sludre anonymt" -#: ../../source/features.rst:115 +#: ../../source/features.rst:137 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 "" -"Du kan bruke OnionShare til å sette opp et privat, sikkert praterom som ikke " -"logger noe. Åpne en pratefane og klikk «Start pratetjener»." +"Du kan bruke OnionShare til å sette opp et privat, sikkert praterom som " +"ikke logger noe. Åpne en pratefane og klikk «Start pratetjener»." -#: ../../source/features.rst:119 +#: ../../source/features.rst:141 +#, fuzzy 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." +"After you start the server, copy the OnionShare address and private key " +"and send them 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 and private key." msgstr "" -"Når du har startet serveren, kopierer du OnionShare-adressen og sender den " -"til personene du vil ha i det anonyme chatterommet. Hvis det er viktig å " -"begrense nøyaktig hvem som kan delta, bruk en kryptert meldingsapp for å " -"sende OnionShare-adressen." +"Når du har startet serveren, kopierer du OnionShare-adressen og sender " +"den til personene du vil ha i det anonyme chatterommet. Hvis det er " +"viktig å begrense nøyaktig hvem som kan delta, bruk en kryptert " +"meldingsapp for å sende OnionShare-adressen." -#: ../../source/features.rst:124 +#: ../../source/features.rst:146 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 " @@ -414,11 +474,11 @@ msgid "" "\"Standard\" or \"Safer\", instead of \"Safest\"." msgstr "" "Folk kan bli med i praterommet ved å laste OnionShare-adressen i Tor " -"Browser. Praterommet krever JavasScript, så alle som ønsker å delta må ha " -"sitt sikkerhetsnivå for Tor Browser satt til \"Standard\" eller \"Safer\", i " -"stedet for \"Safest\"." +"Browser. Praterommet krever JavasScript, så alle som ønsker å delta må ha" +" sitt sikkerhetsnivå for Tor Browser satt til \"Standard\" eller " +"\"Safer\", i stedet for \"Safest\"." -#: ../../source/features.rst:127 +#: ../../source/features.rst:149 #, fuzzy msgid "" "When someone joins the chat room they get assigned a random name. They " @@ -426,83 +486,77 @@ msgid "" "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 "" -"Når noen blir med i praterommet, får de et tilfeldig navn. De kan endre navn " -"ved å skrive et nytt navn i boksen i venstre panel og trykke på «↵». Siden " -"sludrehistorikken ikke er lagret noe sted, blir den ikke vist i det hele " -"tatt, selv om andre allerede prater i rommet." +"Når noen blir med i praterommet, får de et tilfeldig navn. De kan endre " +"navn ved å skrive et nytt navn i boksen i venstre panel og trykke på «↵»." +" Siden sludrehistorikken ikke er lagret noe sted, blir den ikke vist i " +"det hele tatt, selv om andre allerede prater i rommet." -#: ../../source/features.rst:133 +#: ../../source/features.rst:155 #, fuzzy 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 "" -"I et OnionShare-sludrerom er alle anonyme. Alle kan endre navnet sitt til " -"hva som helst, og det går ikke an å bekrefte noens identitet." +"I et OnionShare-sludrerom er alle anonyme. Alle kan endre navnet sitt til" +" hva som helst, og det går ikke an å bekrefte noens identitet." -#: ../../source/features.rst:136 +#: ../../source/features.rst:158 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 "" -"Dog, hvis du oppretter et OnionShare-sludringsrom og sikkert sender adressen " -"til kun et lite knippe betrodde venner ved bruk av krypterte meldinger, kan " -"du være ganske sikker på at folkene som tar del i sludringsrommet er vennene " -"dine." +"Dog, hvis du oppretter et OnionShare-sludringsrom og sikkert sender " +"adressen til kun et lite knippe betrodde venner ved bruk av krypterte " +"meldinger, kan du være ganske sikker på at folkene som tar del i " +"sludringsrommet er vennene dine." -#: ../../source/features.rst:139 +#: ../../source/features.rst:161 msgid "How is this useful?" msgstr "Hvordan er dette nyttig?" -#: ../../source/features.rst:141 +#: ../../source/features.rst:163 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 "" -"Hvis man bruke et kryptert meldingsprogram fra før av, hva er da poenget med " -"et OnionShare-praterom? Det levner færre spor." +"Hvis man bruke et kryptert meldingsprogram fra før av, hva er da poenget " +"med et OnionShare-praterom? Det levner færre spor." -#: ../../source/features.rst:143 +#: ../../source/features.rst:165 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 " +"message ends up on each device (the smartphones, 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 "" -"Hvis du for eksempel sender en melding til en Signal-gruppe, vil en kopi av " -"den ende opp på hver enhet (enhetene, og datamaskinene hvis de har satt opp " -"Signal Desktop) for hvert medlem av gruppen. Selv om forsvinningsmeldinger " -"er påskrudd, er det vanskelig å bekrefte at alle kopiene av meldingene " -"faktisk er slettet fra alle enheter, og fra alle andre steder (som " -"merknadsdatabaser) de har blitt lagret i. OnionShare-sludrerom lagrer ingen " -"meldinger noensteds hen, så problemet er redusert til et minimum." -#: ../../source/features.rst:146 +#: ../../source/features.rst:168 +#, fuzzy 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 using a disposable email address, and then wait for the " "journalist to join the chat room, all without compromosing their " "anonymity." msgstr "" -"OnionShare-praterom kan også være nyttig for folk som ønsker å prate anonymt " -"og sikkert med noen uten å opprette en konto. For eksempel, en kilde kan " -"sende en OnionShare-adresse til en journalist ved hjelp av en engangs e-" -"postadresse, og så vente på at journalisten skal ta del i praterommet, helt " -"uten å miste anonymiteten." +"OnionShare-praterom kan også være nyttig for folk som ønsker å prate " +"anonymt og sikkert med noen uten å opprette en konto. For eksempel, en " +"kilde kan sende en OnionShare-adresse til en journalist ved hjelp av en " +"engangs e-postadresse, og så vente på at journalisten skal ta del i " +"praterommet, helt uten å miste anonymiteten." -#: ../../source/features.rst:150 +#: ../../source/features.rst:172 msgid "How does the encryption work?" msgstr "Hvordan fungerer krypteringen?" -#: ../../source/features.rst:152 +#: ../../source/features.rst:174 msgid "" "Because OnionShare relies on Tor onion services, connections between the " "Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When " @@ -511,19 +565,19 @@ msgid "" "other members of the chat room using WebSockets, through their E2EE onion" " connections." msgstr "" -"Fordi OnionShare avhenger av Tor-onion tjenester, er tilkoblinger mellom Tor-" -"nettleseren og OnionShare ende-til-ende -kryptert (E2EE). Når noen poster en " -"melding i et OnionShare-praterom, sender de den til en tjener gjennom E2EE-" -"onion tilkobling, som sender den til alle andre medlemmer i praterommet med " -"WebSockets, gjennom deres E2EE-onion tjenester." +"Fordi OnionShare avhenger av Tor-onion tjenester, er tilkoblinger mellom " +"Tor-nettleseren og OnionShare ende-til-ende -kryptert (E2EE). Når noen " +"poster en melding i et OnionShare-praterom, sender de den til en tjener " +"gjennom E2EE-onion tilkobling, som sender den til alle andre medlemmer i " +"praterommet med WebSockets, gjennom deres E2EE-onion tjenester." -#: ../../source/features.rst:154 +#: ../../source/features.rst:176 msgid "" "OnionShare doesn't implement any chat encryption on its own. It relies on" " the Tor onion service's encryption instead." msgstr "" -"OnionShare implementerer ingen sludringskryptering på egenhånd. Det avhenger " -"av Tor-løktjenestens kryptering istedenfor." +"OnionShare implementerer ingen sludringskryptering på egenhånd. Det " +"avhenger av Tor-løktjenestens kryptering istedenfor." #~ msgid "How OnionShare works" #~ msgstr "" @@ -912,3 +966,87 @@ msgstr "" #~ "WebSockets, through their E2EE onion " #~ "connections." #~ msgstr "" + +#~ msgid "Receive Files" +#~ msgstr "Mottak av filer" + +#~ 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 kan bruke OnionShare for å la" +#~ " folk laste opp filer anonymt, " +#~ "direkte til din datamaskin, noe som " +#~ "effektivt sett gjør den til en " +#~ "anonym postboks. Åpne en «Mottaksfane», " +#~ "velg hvor du ønsker å lagre filene" +#~ " og andre innstillinger, og klikk så" +#~ " «Start mottaksmodus»." + +#~ msgid "" +#~ "This starts the OnionShare service. " +#~ "Anyone loading this address in their " +#~ "Tor Browser will be able to upload" +#~ " files to your computer." +#~ msgstr "" +#~ "Dette starter OnionShare-tjenesten. Alle " +#~ "som laster inn denne adressen i " +#~ "deres Tor-nettleser vil kunne laste " +#~ "opp filer til din datamaskin." + +#~ 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 "" +#~ "Når noen laster opp filer til din" +#~ " mottakstjeneste, vil de som forvalg " +#~ "bli lastet ned til en mappe som" +#~ " heter ``OnionShare`` i hjemmemappen på " +#~ "din datamaskin, i automatisk organiserte " +#~ "undermapper basert på når de ble " +#~ "lastet opp." + +#~ 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 "" +#~ "Hvis du for eksempel sender en " +#~ "melding til en Signal-gruppe, vil " +#~ "en kopi av den ende opp på " +#~ "hver enhet (enhetene, og datamaskinene " +#~ "hvis de har satt opp Signal " +#~ "Desktop) for hvert medlem av gruppen." +#~ " Selv om forsvinningsmeldinger er påskrudd," +#~ " er det vanskelig å bekrefte at " +#~ "alle kopiene av meldingene faktisk er" +#~ " slettet fra alle enheter, og fra " +#~ "alle andre steder (som merknadsdatabaser) " +#~ "de har blitt lagret i. OnionShare-" +#~ "sludrerom lagrer ingen meldinger noensteds " +#~ "hen, så problemet er redusert til " +#~ "et minimum." + diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/help.po b/docs/source/locale/nb_NO/LC_MESSAGES/help.po index 83ec0b04..ec11fb70 100644 --- a/docs/source/locale/nb_NO/LC_MESSAGES/help.po +++ b/docs/source/locale/nb_NO/LC_MESSAGES/help.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-11-15 14:42-0800\n" -"PO-Revision-Date: 2020-11-19 08:28+0000\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" +"PO-Revision-Date: 2022-01-21 19:11+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: none\n" "Language: nb_NO\n" @@ -16,8 +16,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" -"Generated-By: Babel 2.9.0\n" +"X-Generator: Weblate 4.11-dev\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/help.rst:2 msgid "Getting Help" @@ -32,19 +32,20 @@ msgid "" "You will find instructions on how to use OnionShare. Look through all of " "the sections first to see if anything answers your questions." msgstr "" -"Du finner instruks i detaljert bruk av OnionShare. Se gjennom alle delene " -"først for å se om ditt spørsmål er besvart." +"Du finner instruks i detaljert bruk av OnionShare. Se gjennom alle delene" +" først for å se om ditt spørsmål er besvart." #: ../../source/help.rst:10 msgid "Check the GitHub Issues" msgstr "Sjekk GitHub-feilrapportene" #: ../../source/help.rst:12 +#, fuzzy msgid "" "If it isn't on the website, please check the `GitHub issues " -"`_. It's possible someone" -" else has encountered the same problem and either raised it with the " -"developers, or maybe even posted a solution." +"`_. It's possible " +"someone else has encountered the same problem and either raised it with " +"the developers, or maybe even posted a solution." msgstr "" "Hvis det ikke er å finne på nettsiden, sjekk `GitHub-feilsporeren " "`_. Det er mulig at noen " @@ -59,15 +60,14 @@ msgstr "Send inn en feilrapport selv" msgid "" "If you are unable to find a solution, or wish to ask a question or " "suggest a new feature, please `submit an issue " -"`_. This requires " +"`_. This requires " "`creating a GitHub account `_." msgstr "" -"Hvis du ikke finner en løsning, eller ønsker å stille et spørsmål eller " -"foreslå en ny funksjon, `send inn en feilrapport `_. Dette krever `opprettelse av GitHub-" -"konto `_." +"Hvis du ikke finner en løsning, eller vil foreslå en ny funksjon kan du `" +"sende inn en forespørsel `_. Dette krever `en GitHub-konto `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" @@ -78,8 +78,8 @@ msgid "" "See :ref:`collaborating` on how to join the Keybase team used to discuss " "the project." msgstr "" -"Sjekk :ref:`collaborating` for info om hvordan du tar del i Keybase-laget " -"brukt til diskusjon av prosjektet." +"Sjekk :ref:`collaborating` for info om hvordan du tar del i Keybase-laget" +" brukt til diskusjon av prosjektet." #~ msgid "If you need help with OnionShare, please follow the instructions below." #~ msgstr "" @@ -132,3 +132,22 @@ msgstr "" #~ "that we use to discuss the " #~ "project." #~ msgstr "" + +#~ msgid "" +#~ "If you are unable to find a " +#~ "solution, or wish to ask a " +#~ "question or suggest a new feature, " +#~ "please `submit an issue " +#~ "`_. This " +#~ "requires `creating a GitHub account " +#~ "`_." +#~ msgstr "" +#~ "Hvis du ikke finner en løsning, " +#~ "eller ønsker å stille et spørsmål " +#~ "eller foreslå en ny funksjon, `send " +#~ "inn en feilrapport " +#~ "`_. Dette" +#~ " krever `opprettelse av GitHub-konto " +#~ "`_." diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/install.po b/docs/source/locale/nb_NO/LC_MESSAGES/install.po index e314cb74..482bc293 100644 --- a/docs/source/locale/nb_NO/LC_MESSAGES/install.po +++ b/docs/source/locale/nb_NO/LC_MESSAGES/install.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-01-10 16:32+0000\n" "Last-Translator: Allan Nordhøy \n" -"Language-Team: none\n" "Language: nb_NO\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.1-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/install.rst:2 msgid "Installation" @@ -36,8 +35,8 @@ msgstr "" "nettsiden `_." #: ../../source/install.rst:12 -msgid "Install in Linux" -msgstr "Installasjon på Linux" +msgid "Linux" +msgstr "" #: ../../source/install.rst:14 #, fuzzy @@ -49,9 +48,10 @@ msgid "" "sandbox." msgstr "" "Det er forskjellige måter å installere OnionShare i Linux|GNU, men den " -"anbefalte måten er å enten bruke `Flatpak `_ eller `" -"Snapcraft `_-pakken. Flatpak og Snapcraft sørger for " -"at du alltid har den nyeste versjonen, og kjører OnionShare i en sandkasse." +"anbefalte måten er å enten bruke `Flatpak `_ eller " +"`Snapcraft `_-pakken. Flatpak og Snapcraft sørger " +"for at du alltid har den nyeste versjonen, og kjører OnionShare i en " +"sandkasse." #: ../../source/install.rst:17 #, fuzzy @@ -74,8 +74,8 @@ msgstr "" #, fuzzy msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare" msgstr "" -"**Installer OnionShare ved bruk av Snapcraft**: https://snapcraft.io/" -"onionshare" +"**Installer OnionShare ved bruk av Snapcraft**: " +"https://snapcraft.io/onionshare" #: ../../source/install.rst:23 #, fuzzy @@ -88,10 +88,21 @@ msgstr "" "det." #: ../../source/install.rst:28 +msgid "Command-line only" +msgstr "" + +#: ../../source/install.rst:30 +msgid "" +"You can install just the command line version of OnionShare on any " +"operating system using the Python package manager ``pip``. See :ref:`cli`" +" for more information." +msgstr "" + +#: ../../source/install.rst:35 msgid "Verifying PGP signatures" msgstr "Bekreftelse av PGP-signaturer" -#: ../../source/install.rst:30 +#: ../../source/install.rst:37 msgid "" "You can verify that the package you download is legitimate and hasn't " "been tampered with by verifying its PGP signature. For Windows and macOS," @@ -105,11 +116,11 @@ msgstr "" "binærfilen har operativsystem-spesifikke signaturer, og du kan bare stole" " på dem hvis du ønsker det." -#: ../../source/install.rst:34 +#: ../../source/install.rst:41 msgid "Signing key" msgstr "Signering av nøkkel" -#: ../../source/install.rst:36 +#: ../../source/install.rst:43 msgid "" "Packages are signed by Micah Lee, the core developer, using his PGP " "public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``." @@ -124,7 +135,7 @@ msgstr "" "`_." -#: ../../source/install.rst:38 +#: ../../source/install.rst:45 msgid "" "You must have GnuPG installed to verify signatures. For macOS you " "probably want `GPGTools `_, and for Windows you " @@ -135,11 +146,11 @@ msgstr "" "Windows vil du antagelig ønske å bruke `Gpg4win " "`_." -#: ../../source/install.rst:41 +#: ../../source/install.rst:48 msgid "Signatures" msgstr "Signaturer" -#: ../../source/install.rst:43 +#: ../../source/install.rst:50 #, fuzzy msgid "" "You can find the signatures (as ``.asc`` files), as well as Windows, " @@ -154,11 +165,11 @@ msgstr "" "`GitHub-utgivelsessiden " "`_." -#: ../../source/install.rst:47 +#: ../../source/install.rst:54 msgid "Verifying" msgstr "Bekreftelse" -#: ../../source/install.rst:49 +#: ../../source/install.rst:56 #, fuzzy msgid "" "Once you have imported Micah's public key into your GnuPG keychain, " @@ -169,29 +180,29 @@ msgstr "" "nøkkelknippe, lastet ned binærfilen, og lastet ned ``.asc``-signaturen, " "kan du bekrefte den kjørbare binærfilen for macOS i en terminal slik::" -#: ../../source/install.rst:53 +#: ../../source/install.rst:60 msgid "Or for Windows, in a command-prompt like this::" msgstr "Eller for WIndows, i en kommandoledetekst slik::" -#: ../../source/install.rst:57 +#: ../../source/install.rst:64 msgid "The expected output looks like this::" msgstr "Forventet utdata ser slik ut::" -#: ../../source/install.rst:69 +#: ../../source/install.rst:76 #, fuzzy msgid "" -"If you don't see 'Good signature from', there might be a problem with the" -" integrity of the file (malicious or otherwise), and you should not " -"install the package. (The \"WARNING:\" shown above, is not a problem with" -" the package, it only means you haven't already defined any level of " -"'trust' of Micah's PGP key.)" +"If you don't see ``Good signature from``, there might be a problem with " +"the integrity of the file (malicious or otherwise), and you should not " +"install the package. (The ``WARNING:`` shown above, is not a problem with" +" the package, it only means you haven't defined a level of \"trust\" of " +"Micah's PGP key.)" msgstr "" "Hvis du ikke ser «God signatur fra» er det kanskje et problem med filen " "(ondsinnet eller av annen årsak), og du bør ikke installere pakken. " "(ADVARSEL vist ovenfor er ikke et problem med pakken; det betyr kun at du" " ikke allerede har etablert et tillits-nivå til Micah sin PGP-nøkkel." -#: ../../source/install.rst:71 +#: ../../source/install.rst:78 #, fuzzy msgid "" "If you want to learn more about verifying PGP signatures, the guides for " @@ -318,3 +329,7 @@ msgstr "" #~ "Project `_ may be helpful." #~ msgstr "" + +#~ msgid "Install in Linux" +#~ msgstr "Installasjon på Linux" + diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/security.po b/docs/source/locale/nb_NO/LC_MESSAGES/security.po index effe102a..10f36afe 100644 --- a/docs/source/locale/nb_NO/LC_MESSAGES/security.po +++ b/docs/source/locale/nb_NO/LC_MESSAGES/security.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-05-10 22:38+0000\n" "Last-Translator: Jonas Matisen \n" -"Language-Team: none\n" "Language: nb_NO\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/security.rst:2 msgid "Security Design" @@ -87,40 +86,30 @@ msgstr "" 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." +"services allowed the attacker to discover private ``.onion`` addresses. " +"If an attack discovers a private OnionShare address, they will also need " +"to guess the private key used for client authentication in order to " +"access it (unless the OnionShare user chooses make their service public " +"by turning off the private key -- see :ref:`turn_off_private_key`)." msgstr "" -"**Hvis en angriper lærer om løketjenesten, kan den fremdeles ikke få tilgang " -"til noe. ** Tidligere angrep mot Tor-nettverket for å oppregne løketjenester " -"tillot angriperen å oppdage private .onion-adresser. Hvis et angrep oppdager " -"en privat OnionShare-adresse, vil et passord hindre dem i å få tilgang til " -"den (med mindre OnionShare-brukeren velger å slå den av og gjøre den " -"offentlig). Passordet genereres ved å velge to tilfeldige ord fra en liste " -"på 6800 ord, noe som gir 6800², eller omtrent 46 millioner mulige passord. " -"Bare 20 feil gjetninger kan gjøres før OnionShare stopper serveren, og " -"forhindrer brute force-angrep mot passordet." #: ../../source/security.rst:20 msgid "What OnionShare doesn't protect against" msgstr "Hva OnionShare ikke beskytter mot" #: ../../source/security.rst:22 +#, fuzzy 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." +"**Communicating the OnionShare address and private key might not be " +"secure.** Communicating the OnionShare address to people is the " +"responsibility of the OnionShare user. If sent insecurely (such as " +"through an email message monitored by an attacker), an eavesdropper can " +"tell that OnionShare is being used. If the eavesdropper loads the address" +" in Tor Browser while the service is still up, they can access it. To " +"avoid this, the address must be communicated 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 "" "**Å kommunisere OnionShare-adressen er ikke nødvendigvis sikkert.** Å " "dele OnionShare-adressen til folk er OnionShare-brukerens ansvar. Hvis " @@ -134,17 +123,19 @@ msgstr "" "brukes for noe som ikke er hemmelig." #: ../../source/security.rst:24 +#, fuzzy 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." +"**Communicating the OnionShare address and private key might not be " +"anonymous.** Extra precautions must be taken to ensure the OnionShare " +"address is communicated anonymously. A new email or chat account, only " +"accessed over Tor, can be used to share the address. This isn't necessary" +" unless anonymity is a goal." msgstr "" -"** Kommunikasjon av OnionShare-adressen er kanskje ikke anonym. ** Ekstra " -"forholdsregler må tas for å sikre at OnionShare-adressen kommuniseres " -"anonymt. En ny e-post eller chat-konto, kun tilgjengelig via Tor, kan brukes " -"til å dele adressen. Dette er ikke nødvendig med mindre anonymitet er et mål." +"** Kommunikasjon av OnionShare-adressen er kanskje ikke anonym. ** Ekstra" +" forholdsregler må tas for å sikre at OnionShare-adressen kommuniseres " +"anonymt. En ny e-post eller chat-konto, kun tilgjengelig via Tor, kan " +"brukes til å dele adressen. Dette er ikke nødvendig med mindre anonymitet" +" er et mål." #~ msgid "Security design" #~ msgstr "" @@ -252,3 +243,44 @@ msgstr "" #~ "anonymity, such as co-workers who " #~ "know each other sharing work documents." #~ msgstr "" + +#~ 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 "" +#~ "**Hvis en angriper lærer om " +#~ "løketjenesten, kan den fremdeles ikke få" +#~ " tilgang til noe. ** Tidligere angrep" +#~ " mot Tor-nettverket for å oppregne" +#~ " løketjenester tillot angriperen å oppdage" +#~ " private .onion-adresser. Hvis et " +#~ "angrep oppdager en privat OnionShare-" +#~ "adresse, vil et passord hindre dem " +#~ "i å få tilgang til den (med " +#~ "mindre OnionShare-brukeren velger å slå" +#~ " den av og gjøre den offentlig). " +#~ "Passordet genereres ved å velge to " +#~ "tilfeldige ord fra en liste på " +#~ "6800 ord, noe som gir 6800², eller" +#~ " omtrent 46 millioner mulige passord. " +#~ "Bare 20 feil gjetninger kan gjøres " +#~ "før OnionShare stopper serveren, og " +#~ "forhindrer brute force-angrep mot " +#~ "passordet." + diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/tor.po b/docs/source/locale/nb_NO/LC_MESSAGES/tor.po index 39190459..89c9828c 100644 --- a/docs/source/locale/nb_NO/LC_MESSAGES/tor.po +++ b/docs/source/locale/nb_NO/LC_MESSAGES/tor.po @@ -7,33 +7,33 @@ msgid "" msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" -"POT-Creation-Date: 2020-12-13 15:48-0800\n" +"POT-Creation-Date: 2022-01-17 10:28-0800\n" "PO-Revision-Date: 2021-01-10 16:32+0000\n" "Last-Translator: Allan Nordhøy \n" -"Language-Team: none\n" "Language: nb_NO\n" +"Language-Team: none\n" +"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.1-dev\n" -"Generated-By: Babel 2.9.0\n" +"Generated-By: Babel 2.9.1\n" #: ../../source/tor.rst:2 msgid "Connecting to Tor" msgstr "Tilkobling til Tor" #: ../../source/tor.rst:4 +#, fuzzy 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." +"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in" +" the bottom right of the OnionShare window to open the Tor Settings tab." msgstr "" "Velg en måte å koble OnionShare til Tor ved å klikke på \"⚙\"-ikonet " "nederst til høyre i OnionShare-vinduet for å komme til de innstillingene." #: ../../source/tor.rst:9 -msgid "Use the ``tor`` bundled with OnionShare" -msgstr "Bruk Tor som det kommer, innebygd i OnionShare" +msgid "Use the Tor version built into OnionShare" +msgstr "" #: ../../source/tor.rst:11 msgid "" @@ -57,10 +57,53 @@ msgstr "" "Tor-nettleseren på systemet, eller ``tor`` på egenhånd." #: ../../source/tor.rst:18 +msgid "Getting Around Censorship" +msgstr "" + +#: ../../source/tor.rst:20 +#, fuzzy +msgid "" +"If your access to the internet is censored, you can configure OnionShare " +"to connect to the Tor network using `Tor bridges `_. If OnionShare connects to Tor without " +"one, you don't need to use a bridge." +msgstr "" +"Hvis din tilgang til Internett er sensurert, kan du sette opp OnionShare " +"slik at det kobler til Tor-nettverket ved bruk av `Tor-broer " +"`_. Hvis OnionShare" +" klarer å koble til uten, trenger du ikke å bruke en bro." + +#: ../../source/tor.rst:22 +msgid "" +"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor" +" version built into OnionShare\" and check the \"Use a bridge\" checkbox." +msgstr "" + +#: ../../source/tor.rst:25 +msgid "" +"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges " +"is recommended over using `meek-azure`." +msgstr "" + +#: ../../source/tor.rst:29 +msgid "" +"If using a built-in bridge doesn't work, you can request a bridge from " +"torproject.org. You will have to solve a CAPTCHA in order to request a " +"bridge. (This makes it more difficult for governments or ISPs to block " +"access to Tor bridges.)" +msgstr "" + +#: ../../source/tor.rst:33 +msgid "" +"You also have the option of using a bridge that you learned about from a " +"trusted source." +msgstr "" + +#: ../../source/tor.rst:36 msgid "Attempt auto-configuration with Tor Browser" msgstr "Forsøk automatisk oppsett med Tor-nettleseren" -#: ../../source/tor.rst:20 +#: ../../source/tor.rst:38 msgid "" "If you have `downloaded the Tor Browser `_ " "and don't want two ``tor`` processes running, you can use the ``tor`` " @@ -73,11 +116,11 @@ msgstr "" "nettleseren. Ha i minne at du må ha Tor-nettleseren åpen i bakgrunnen " "mens du bruker OnionShare for at dette skal virke." -#: ../../source/tor.rst:24 +#: ../../source/tor.rst:42 msgid "Using a system ``tor`` in Windows" msgstr "Bruk av systemets Tor i Windows" -#: ../../source/tor.rst:26 +#: ../../source/tor.rst:44 msgid "" "This is fairly advanced. You'll need to know how edit plaintext files and" " do stuff as an administrator." @@ -85,7 +128,7 @@ msgstr "" "Dette er ganske avansert. Du må vite hvordan du redigerer filer i " "klartekst og gjøre ting som administrator." -#: ../../source/tor.rst:28 +#: ../../source/tor.rst:46 #, fuzzy msgid "" "Download the Tor Windows Expert Bundle `from " @@ -93,12 +136,13 @@ msgid "" " and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename " "the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``." msgstr "" -"Last ned ekspertknippet for Tor på Windows `fra `_. Pakk ut de komprimerte filene og kopier det utpakkede " -"innholdet til ``C:\\Programfiler (x86)\\`` Gi den utpakkede mappen det nye " -"navnet ``Data`` og ``Tor`` inne i den til ``tor-win32``." +"Last ned ekspertknippet for Tor på Windows `fra " +"`_. Pakk ut de komprimerte " +"filene og kopier det utpakkede innholdet til ``C:\\Programfiler (x86)\\``" +" Gi den utpakkede mappen det nye navnet ``Data`` og ``Tor`` inne i den " +"til ``tor-win32``." -#: ../../source/tor.rst:32 +#: ../../source/tor.rst:50 msgid "" "Make up a control port password. (Using 7 words in a sequence like " "``comprised stumble rummage work avenging construct volatile`` is a good " @@ -112,7 +156,7 @@ msgstr "" "administrator og bruke ``tor.exe --hash-password`` for å generere en " "sjekksum for ditt passord. For eksempel::" -#: ../../source/tor.rst:39 +#: ../../source/tor.rst:57 msgid "" "The hashed password output is displayed after some warnings (which you " "can ignore). In the case of the above example, it is " @@ -122,7 +166,7 @@ msgstr "" " kan se bort fra). For eksmplet ovenfor, er den " "``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``." -#: ../../source/tor.rst:41 +#: ../../source/tor.rst:59 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 " @@ -132,7 +176,7 @@ msgstr "" " og sett inn den sjekksummerte utdataen for passordet i den, slik at det " "erstatter ``HashedControlPassword`` med det du akkurat genererte::" -#: ../../source/tor.rst:46 +#: ../../source/tor.rst:64 msgid "" "In your administrator command prompt, install ``tor`` as a service using " "the appropriate ``torrc`` file you just created (as described in " @@ -143,11 +187,11 @@ msgstr "" "bruke den egnede ``torrc``-filen du akkurat oppretet (som beskrevet i " "``_). Slik::" -#: ../../source/tor.rst:50 +#: ../../source/tor.rst:68 msgid "You are now running a system ``tor`` process in Windows!" msgstr "Du kjører nå en systembasert``tor``-prosess i Windows!" -#: ../../source/tor.rst:52 +#: ../../source/tor.rst:70 #, fuzzy msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " @@ -166,11 +210,11 @@ msgstr "" "ovenfor. Klikk på \"Test tilkoblingen til Tor\"-knappen. Hvis alt går " "bra, vil du se \"Tilkoblet til Tor-kontrolleren\"." -#: ../../source/tor.rst:61 +#: ../../source/tor.rst:79 msgid "Using a system ``tor`` in macOS" msgstr "Bruk av systemets Tor i macOS" -#: ../../source/tor.rst:63 +#: ../../source/tor.rst:81 #, fuzzy msgid "" "First, install `Homebrew `_ if you don't already have " @@ -179,15 +223,15 @@ msgstr "" "Først må du installere `Homebrew `_ hvis du ikke " "allerede har det, og så installere Tor::" -#: ../../source/tor.rst:67 +#: ../../source/tor.rst:85 msgid "Now configure Tor to allow connections from OnionShare::" msgstr "Sett opp Tor for å tillate tilkoblinger fra OnionShare::" -#: ../../source/tor.rst:74 +#: ../../source/tor.rst:92 msgid "And start the system Tor service::" msgstr "Og start den systembaserte Tor-tjenesten::" -#: ../../source/tor.rst:78 +#: ../../source/tor.rst:96 msgid "" "Open OnionShare and click the \"⚙\" icon in it. Under \"How should " "OnionShare connect to Tor?\" choose \"Connect using socket file\", and " @@ -203,15 +247,15 @@ msgstr "" "kakebasert identitetsbekreftelse\". Klikk på \"Test tilkobling til " "Tor\"-knappen." -#: ../../source/tor.rst:84 ../../source/tor.rst:104 +#: ../../source/tor.rst:102 ../../source/tor.rst:122 msgid "If all goes well, you should see \"Connected to the Tor controller\"." msgstr "Hvis alt går bra, vil du se «Tilkoblet til Tor-kontrolleren»." -#: ../../source/tor.rst:87 +#: ../../source/tor.rst:105 msgid "Using a system ``tor`` in Linux" msgstr "Bruk av systemets Tor på Linux" -#: ../../source/tor.rst:89 +#: ../../source/tor.rst:107 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 " @@ -223,7 +267,7 @@ msgstr "" "`offisielle pakkebrønn `_." -#: ../../source/tor.rst:91 +#: ../../source/tor.rst:109 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 " @@ -233,7 +277,7 @@ msgstr "" "``tor``-prosessen (som for Debian og Ubuntu er ``debian-tor`` og setter " "opp OnionShare til å koblet til ditt systems ``tor``-kontrollsocket-fil." -#: ../../source/tor.rst:93 +#: ../../source/tor.rst:111 msgid "" "Add your user to the ``debian-tor`` group by running this command " "(replace ``username`` with your actual username)::" @@ -241,7 +285,7 @@ msgstr "" "Legg så til din bruker i ``debian-tor``-gruppen ved å kjøre denne " "kommandoen (erstatt ``username`` med ditt faktiske brukernavn)::" -#: ../../source/tor.rst:97 +#: ../../source/tor.rst:115 msgid "" "Reboot your computer. After it boots up again, open OnionShare and click " "the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" " @@ -250,47 +294,14 @@ msgid "" "\"No authentication, or cookie authentication\". Click the \"Test " "Connection to Tor\" button." msgstr "" -"Utfør en omstart av datamaskinen. Etter at den starter opp igjen, åpner du " -"OnionShare og klikker på \"⚙\"-ikonet i det. Under «Hvordan skal OnionShare " -"koble til Tor?» velger du «Koble til ved bruk av socket-fil». Sett socket-" -"fil til å være ``/var/run/tor/control``. Under «Innstillinger for Tor-" -"identitetsbekreftelse» velger du «Ingen identitetsbekreftelse, eller " -"kakebasert identitetsbekreftelse». Klikk så «Test tilkobling til " +"Utfør en omstart av datamaskinen. Etter at den starter opp igjen, åpner " +"du OnionShare og klikker på \"⚙\"-ikonet i det. Under «Hvordan skal " +"OnionShare koble til Tor?» velger du «Koble til ved bruk av socket-fil». " +"Sett socket-fil til å være ``/var/run/tor/control``. Under «Innstillinger" +" for Tor-identitetsbekreftelse» velger du «Ingen identitetsbekreftelse, " +"eller kakebasert identitetsbekreftelse». Klikk så «Test tilkobling til " "Tor»-knappen." -#: ../../source/tor.rst:107 -msgid "Using Tor bridges" -msgstr "Bruk av Tor-broer" - -#: ../../source/tor.rst:109 -msgid "" -"If your access to the Internet is censored, you can configure OnionShare " -"to connect to the Tor network using `Tor bridges " -"`_. If OnionShare " -"connects to Tor without one, you don't need to use a bridge." -msgstr "" -"Hvis din tilgang til Internett er sensurert, kan du sette opp OnionShare " -"slik at det kobler til Tor-nettverket ved bruk av `Tor-broer " -"`_. Hvis OnionShare" -" klarer å koble til uten, trenger du ikke å bruke en bro." - -#: ../../source/tor.rst:111 -msgid "To configure bridges, click the \"⚙\" icon in OnionShare." -msgstr "For å sette opp broer, åpne OnionShare-innstillingene." - -#: ../../source/tor.rst:113 -#, fuzzy -msgid "" -"You can use the built-in obfs4 pluggable transports, the built-in " -"meek_lite (Azure) pluggable transports, or custom bridges, which you can " -"obtain from Tor's `BridgeDB `_. If you " -"need to use a bridge, try the built-in obfs4 ones first." -msgstr "" -"Du kan bruke den pluggbare transporten obfs4, den innebygde meek_lite " -"(Azure)-pluggbare transporten, eller egendefinerte broer, som du kan finne i " -"Tor sin `BridgeDB `_. Hvis du må bruke en " -"bro, prøv de innebygde obfs4-baserte broene først." - #~ msgid "Using a system Tor in Mac OS X" #~ msgstr "Bruk av systemets Tor på macOS" @@ -505,3 +516,31 @@ msgstr "" #~ " Files (x86)\\`` Gi mappen med " #~ "``Data`` og``Tor`` nytt navn til " #~ "``tor-win32``." + +#~ msgid "Use the ``tor`` bundled with OnionShare" +#~ msgstr "Bruk Tor som det kommer, innebygd i OnionShare" + +#~ msgid "Using Tor bridges" +#~ msgstr "Bruk av Tor-broer" + +#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare." +#~ msgstr "For å sette opp broer, åpne OnionShare-innstillingene." + +#~ msgid "" +#~ "You can use the built-in obfs4 " +#~ "pluggable transports, the built-in " +#~ "meek_lite (Azure) pluggable transports, or " +#~ "custom bridges, which you can obtain " +#~ "from Tor's `BridgeDB " +#~ "`_. If you need " +#~ "to use a bridge, try the built-" +#~ "in obfs4 ones first." +#~ msgstr "" +#~ "Du kan bruke den pluggbare transporten" +#~ " obfs4, den innebygde meek_lite " +#~ "(Azure)-pluggbare transporten, eller egendefinerte" +#~ " broer, som du kan finne i Tor" +#~ " sin `BridgeDB `_. " +#~ "Hvis du må bruke en bro, prøv " +#~ "de innebygde obfs4-baserte broene først." + diff --git a/docs/source/locale/pt_BR/LC_MESSAGES/advanced.po b/docs/source/locale/pt_BR/LC_MESSAGES/advanced.po index 869a27a0..2f9cc266 100644 --- a/docs/source/locale/pt_BR/LC_MESSAGES/advanced.po +++ b/docs/source/locale/pt_BR/LC_MESSAGES/advanced.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-09-09 19:49-0700\n" -"PO-Revision-Date: 2021-10-24 21:38+0000\n" -"Last-Translator: Gabriel Cardoso \n" +"PO-Revision-Date: 2021-12-02 14:52+0000\n" +"Last-Translator: Venilson Carneiro \n" "Language-Team: pt_BR \n" "Language: pt_BR\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.9-dev\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/advanced.rst:2 @@ -111,6 +111,10 @@ msgid "" "server. Then the server will be public and won't need a private key to " "view in Tor Browser." msgstr "" +"Para desligar a chave privada para qualquer aba, marque a caixa \"Este é um " +"serviço público OnionShare (desativa a chave privada)\" antes de iniciar o " +"servidor. Então o servidor será público e não precisará de uma chave privada " +"para visualizar no Tor Browser." #: ../../source/advanced.rst:40 msgid "Custom Titles" @@ -122,12 +126,17 @@ msgid "" "see the default title for the type of service. For example, the default " "title of a chat service is \"OnionShare Chat\"." msgstr "" +"Por padrão, quando as pessoas carregam um serviço OnionShare no Tor Browser " +"elas vêem o título padrão para o tipo de serviço. Por exemplo, o título " +"padrão de um serviço de bate-papo é \"OnionShare Chat\"." #: ../../source/advanced.rst:44 msgid "" "If you want to choose a custom title, set the \"Custom title\" setting " "before starting a server." msgstr "" +"Se você quiser escolher um título personalizado, defina a configuração " +"\"Título personalizado\" antes de iniciar um servidor." #: ../../source/advanced.rst:47 msgid "Scheduled Times" diff --git a/docs/source/locale/pt_BR/LC_MESSAGES/features.po b/docs/source/locale/pt_BR/LC_MESSAGES/features.po index fd574ba1..aa0d01d4 100644 --- a/docs/source/locale/pt_BR/LC_MESSAGES/features.po +++ b/docs/source/locale/pt_BR/LC_MESSAGES/features.po @@ -8,16 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-11-23 19:33-0800\n" -"PO-Revision-Date: 2021-09-19 15:37+0000\n" -"Last-Translator: souovan \n" -"Language: pt_BR\n" +"PO-Revision-Date: 2021-12-02 14:52+0000\n" +"Last-Translator: Venilson Carneiro \n" "Language-Team: pt_BR \n" "Language: pt_BR\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.9-dev\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/features.rst:4 @@ -229,6 +228,18 @@ msgid "" "your receive mode service, @webhookbot will send you a message on Keybase" " letting you know as soon as it happens." msgstr "" +"Você pode verificar \"Use o webhook de notificação\" e então escolher uma " +"URL webhook se você quiser ser notificado quando alguém enviar arquivos ou " +"mensagens para seu serviço OnionShare. Se você usar este recurso, o " +"OnionShare fará um pedido HTTP POST para esta URL sempre que alguém enviar " +"arquivos ou mensagens. Por exemplo, se você quiser obter uma mensagem de " +"texto criptografada no aplicativo de mensagens `Keybase `_, você pode iniciar uma conversa com `@webhookbot `_, digite ``!webhook create onionshare-alerts```, e ele " +"responderá com uma URL. Use isso como a URL do webhook de notificação. Se " +"alguém carregar um arquivo para seu serviço de modo de recebimento, @" +"webhookbot lhe enviará uma mensagem no Keybase para que você saiba assim que " +"acontecer." #: ../../source/features.rst:71 msgid "" @@ -405,15 +416,12 @@ msgstr "" "terceiros seja carregado dentro da página da web." #: ../../source/features.rst:121 -#, fuzzy msgid "" "If you want to load content from third-party websites, like assets or " "JavaScript libraries from CDNs, you have two options:" msgstr "" "Se você deseja carregar conteúdo de sites de terceiros, como ativos ou " -"bibliotecas JavaScript de CDNs, marque a caixa \"Não enviar o cabeçalho " -"Política de Segurança de Conteúdo (permite que seu site use recursos de " -"terceiros)\" antes de iniciar o serviço." +"bibliotecas JavaScript de CDNs, você tem duas opções:" #: ../../source/features.rst:123 msgid "" @@ -421,10 +429,16 @@ msgid "" "\"Don't send Content Security Policy header (allows your website to use " "third-party resources)\" box before starting the service." msgstr "" +"Você pode desativar o envio de um cabeçalho da Política de Segurança de " +"Conteúdo marcando a caixa \"Não enviar cabeçalho da Política de Segurança de " +"Conteúdo (permite que seu website use recursos de terceiros)\" antes de " +"iniciar o serviço." #: ../../source/features.rst:124 msgid "You can send a custom Content Security Policy header." msgstr "" +"Você pode enviar um cabeçalho personalizado da Política de Segurança de " +"Conteúdo." #: ../../source/features.rst:127 msgid "Tips for running a website service" diff --git a/docs/source/locale/pt_BR/LC_MESSAGES/install.po b/docs/source/locale/pt_BR/LC_MESSAGES/install.po index 179cc61c..9d5b2a93 100644 --- a/docs/source/locale/pt_BR/LC_MESSAGES/install.po +++ b/docs/source/locale/pt_BR/LC_MESSAGES/install.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-09-09 19:16-0700\n" -"PO-Revision-Date: 2021-10-23 18:43+0000\n" +"PO-Revision-Date: 2021-12-02 14:52+0000\n" "Last-Translator: Gabriel Cardoso \n" "Language-Team: pt_BR \n" "Language: pt_BR\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.9-dev\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/install.rst:2 @@ -184,7 +184,6 @@ msgid "The expected output looks like this::" msgstr "O resultado esperado se parece com isso::" #: ../../source/install.rst:76 -#, fuzzy msgid "" "If you don't see ``Good signature from``, there might be a problem with " "the integrity of the file (malicious or otherwise), and you should not " @@ -195,8 +194,8 @@ msgstr "" "Se você não ver 'Boa assinatura de', pode haver um problema com a " "integridade do arquivo (malicioso ou outro) e você não deve instalar o " "pacote. (O \"AVISO:\" mostrado acima não é um problema com o pacote, " -"significa apenas que você ainda não definiu nenhum nível de 'confiança' " -"da chave PGP de Micah.)" +"significa apenas que você ainda não definiu nenhum nível de 'confiança' da " +"chave PGP de Micah.)" #: ../../source/install.rst:78 msgid "" diff --git a/docs/source/locale/pt_BR/LC_MESSAGES/tor.po b/docs/source/locale/pt_BR/LC_MESSAGES/tor.po index 0047ed53..342515d1 100644 --- a/docs/source/locale/pt_BR/LC_MESSAGES/tor.po +++ b/docs/source/locale/pt_BR/LC_MESSAGES/tor.po @@ -8,16 +8,15 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-11-23 19:33-0800\n" -"PO-Revision-Date: 2021-09-19 15:37+0000\n" -"Last-Translator: souovan \n" -"Language: pt_BR\n" +"PO-Revision-Date: 2021-12-02 14:52+0000\n" +"Last-Translator: Venilson Carneiro \n" "Language-Team: pt_BR \n" "Language: pt_BR\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.9-dev\n" +"X-Generator: Weblate 4.10-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/tor.rst:2 @@ -25,17 +24,16 @@ msgid "Connecting to Tor" msgstr "Conectando ao Tor" #: ../../source/tor.rst:4 -#, fuzzy msgid "" "Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in" " the bottom right of the OnionShare window to open the Tor Settings tab." msgstr "" -"Escolha um jeito de conectar o OnionShare ao Tor clicando no icone \"⚙\" " -"no canto inferior direito da janela do OnionShare para acessar as opções." +"Escolha uma forma de conectar o OnionShare ao Tor clicando no icone \"⚙\" no " +"canto inferior direito da janela do OnionShare para acessar as opções." #: ../../source/tor.rst:9 msgid "Use the Tor version built into OnionShare" -msgstr "" +msgstr "Use a versão do Tor que está integrada no OnionShare" #: ../../source/tor.rst:11 msgid "" @@ -60,7 +58,7 @@ msgstr "" #: ../../source/tor.rst:18 msgid "Getting Around Censorship" -msgstr "" +msgstr "Contornando a Censura" #: ../../source/tor.rst:20 msgid "" @@ -69,18 +67,27 @@ msgid "" "manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without " "one, you don't need to use a bridge." msgstr "" +"Se o seu acesso à internet for censurado, você pode configurar o OnionShare " +"para conectar-se à rede Tor usando `Tor bridges ` _. Se o OnionShare se conectar à rede Tor sem o uso de uma " +"bridge, você não precisa usa-las." #: ../../source/tor.rst:22 msgid "" "To use a bridge, open the Tor Settings tab. You must select \"Use the Tor" " version built into OnionShare\" and check the \"Use a bridge\" checkbox." msgstr "" +"Para usar uma ponte, abra a aba Configurações do Tor. Você deve selecionar " +"\"Use the Tor version built into OnionShare\" e marcar a caixa de seleção " +"\"Use a bridge\"." #: ../../source/tor.rst:25 msgid "" "Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges " "is recommended over using `meek-azure`." msgstr "" +"Tente usar primeiro uma ponte embutida. Recomenda-se utilizar pontes \"obfs4" +"\" ou \"snowflake\" em vez de utilizar \"meek-azure\"." #: ../../source/tor.rst:29 msgid "" @@ -89,12 +96,18 @@ msgid "" "bridge. (This makes it more difficult for governments or ISPs to block " "access to Tor bridges.)" msgstr "" +"Se o uso de uma ponte integrada não funcionar, você pode solicitar uma ponte " +"ao torproject.org. Você terá que resolver um CAPTCHA para poder solicitar " +"uma ponte. (Isto torna mais difícil para os governos ou ISPs (provedores de " +"internet) bloquearem o acesso às pontes Tor)." #: ../../source/tor.rst:33 msgid "" "You also have the option of using a bridge that you learned about from a " "trusted source." msgstr "" +"Você também tem a opção de usar uma ponte que você teve acesso a partir de " +"uma fonte confiável." #: ../../source/tor.rst:36 msgid "Attempt auto-configuration with Tor Browser" @@ -576,4 +589,3 @@ msgstr "" #~ "do Tor. Se você precisa usar uma" #~ " ponte, tente primeiro as obfs4 " #~ "integradas." - diff --git a/docs/source/locale/ru/LC_MESSAGES/features.po b/docs/source/locale/ru/LC_MESSAGES/features.po index d1f90dfb..160834bf 100644 --- a/docs/source/locale/ru/LC_MESSAGES/features.po +++ b/docs/source/locale/ru/LC_MESSAGES/features.po @@ -8,15 +8,16 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-11-23 19:33-0800\n" -"PO-Revision-Date: 2021-09-25 12:36+0000\n" +"PO-Revision-Date: 2021-12-16 21:41+0000\n" "Last-Translator: Alexander Tarasenko \n" -"Language: ru\n" "Language-Team: ru \n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.10\n" "Generated-By: Babel 2.9.0\n" #: ../../source/features.rst:4 @@ -420,16 +421,12 @@ msgstr "" "содержимого из сторонних источников." #: ../../source/features.rst:121 -#, fuzzy msgid "" "If you want to load content from third-party websites, like assets or " "JavaScript libraries from CDNs, you have two options:" msgstr "" -"Если требуется загрузить и использовать содержимое из сторонних " -"иточников, например активы или библиотеки JavaScript из CDN, то нужно " -"установить флажок \"Не отправлять заголовок политики безопасности " -"контента\" перед запуском сервиса. Это позволит вебсайту использовать " -"сторонние источники содержимого." +"Если требуется загрузить и использовать содержимое из сторонних иточников, " +"например активы или библиотеки JavaScript из CDN, у вас есть две возможности:" #: ../../source/features.rst:123 msgid "" @@ -437,10 +434,15 @@ msgid "" "\"Don't send Content Security Policy header (allows your website to use " "third-party resources)\" box before starting the service." msgstr "" +"Вы можете отключить отправку заголовка \"Content Security Policy\" отметив " +"флажок \"Не отправлять заголовок Contenct Security Policy (разрешить сайту " +"использовать сторонние ресурсы)\" перед запуском сервиса." #: ../../source/features.rst:124 msgid "You can send a custom Content Security Policy header." msgstr "" +"Вы можете отправить самостоятельно настроенный заголовок Content Security " +"Policy." #: ../../source/features.rst:127 msgid "Tips for running a website service" @@ -1111,4 +1113,3 @@ msgstr "" #~ "быть сохранены. OnionShare не хранит " #~ "какие-либо сообщения, так что описанная " #~ "проблема сведена к минимуму." - diff --git a/docs/source/locale/ru/LC_MESSAGES/tor.po b/docs/source/locale/ru/LC_MESSAGES/tor.po index 38f8f3f4..3320f6ee 100644 --- a/docs/source/locale/ru/LC_MESSAGES/tor.po +++ b/docs/source/locale/ru/LC_MESSAGES/tor.po @@ -8,15 +8,16 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-11-23 19:33-0800\n" -"PO-Revision-Date: 2021-09-23 15:36+0000\n" +"PO-Revision-Date: 2021-12-17 04:52+0000\n" "Last-Translator: Alexander Tarasenko \n" -"Language: ru\n" "Language-Team: ru \n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.10\n" "Generated-By: Babel 2.9.0\n" #: ../../source/tor.rst:2 @@ -24,18 +25,17 @@ msgid "Connecting to Tor" msgstr "Подключение к сети Тор" #: ../../source/tor.rst:4 -#, fuzzy msgid "" "Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in" " the bottom right of the OnionShare window to open the Tor Settings tab." msgstr "" -"Чтобы выбрать способ подключения OnionShare к сети Tor, нажмите на значок" -" \"⚙\" в нижнем правом углу окна OnionShare. Так Вы попадёте в настройки " +"Чтобы выбрать способ подключения OnionShare к сети Tor, нажмите на значок \"⚙" +"\" в нижнем правом углу окна OnionShare. Так Вы попадёте в настройки " "приложения." #: ../../source/tor.rst:9 msgid "Use the Tor version built into OnionShare" -msgstr "" +msgstr "Использовать версию Tor встроенную в OnionShare" #: ../../source/tor.rst:11 msgid "" @@ -59,33 +59,36 @@ msgstr "" #: ../../source/tor.rst:18 msgid "Getting Around Censorship" -msgstr "" +msgstr "Обойти цензуру" #: ../../source/tor.rst:20 -#, fuzzy msgid "" "If your access to the internet is censored, you can configure OnionShare " "to connect to the Tor network using `Tor bridges `_. If OnionShare connects to Tor without " "one, you don't need to use a bridge." msgstr "" -"В случае, если доступ к сети Интернет подвергается цензуре, можно " -"настроить подключение OnionShare к сети Tor при помощи `мостов Tor` " -"`_. В случае, если " -"OnionShare успешно подключается к сети Tor, использование сетевого моста " -"необязательно." +"Если доступ к сети Интернет подвергается цензуре, можно настроить " +"подключение OnionShare к сети Tor при помощи `мостов Tor` `_. Если OnionShare успешно подключается " +"к сети Tor, использование сетевого моста необязательно." #: ../../source/tor.rst:22 msgid "" "To use a bridge, open the Tor Settings tab. You must select \"Use the Tor" " version built into OnionShare\" and check the \"Use a bridge\" checkbox." msgstr "" +"Чтобы изспользовать мост, откройте вкладку \"Настройки Tor\". Нужно выбрать " +"пункт \"Использовать версию Tor встроенную в OnionShare\" и установить " +"флажок \"Использовать мост\"." #: ../../source/tor.rst:25 msgid "" "Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges " "is recommended over using `meek-azure`." msgstr "" +"Попробуйте сначала использовать встроенные мосты. Бльше рекомендуется " +"использование мостов `obfs4` или `snowflake`, нежели `meek-azure`." #: ../../source/tor.rst:29 msgid "" @@ -94,12 +97,18 @@ msgid "" "bridge. (This makes it more difficult for governments or ISPs to block " "access to Tor bridges.)" msgstr "" +"Если встроенный мост не работает, вы можете запросить мост с сайта " +"torproject.org. Вам придётся пройти проверку CAPTCHA чтобы запросить мост. (" +"Это затрудняет правительству и поставщикам услуг интернета блокировку мостов " +"Tor.)" #: ../../source/tor.rst:33 msgid "" "You also have the option of using a bridge that you learned about from a " "trusted source." msgstr "" +"Также вы можете использовать мост, о котором вы узнали из доверенного " +"источника." #: ../../source/tor.rst:36 msgid "Attempt auto-configuration with Tor Browser" @@ -569,4 +578,3 @@ msgstr "" #~ "`_. Если использование" #~ " мостов необходимо, рекомендуется в первую" #~ " очередь попробовать транспорты obfs4." - diff --git a/docs/source/locale/uk/LC_MESSAGES/develop.po b/docs/source/locale/uk/LC_MESSAGES/develop.po index 6fb98d08..ce95f506 100644 --- a/docs/source/locale/uk/LC_MESSAGES/develop.po +++ b/docs/source/locale/uk/LC_MESSAGES/develop.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-09-09 19:15-0700\n" -"PO-Revision-Date: 2021-09-10 20:35+0000\n" +"PO-Revision-Date: 2022-01-21 18:55+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.9-dev\n" +"X-Generator: Weblate 4.11-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/develop.rst:2 @@ -249,9 +249,8 @@ msgid "" "in a language not yet started, please write to the mailing list: " "onionshare-dev@lists.riseup.net" msgstr "" -"Тут знаходиться поточний стан перекладу. Якщо ви хочете розпочати " -"переклад відсутньою тут мовою, будь ласка, напишіть нам до списку " -"розсилання: onionshare-dev@lists.riseup.net" +"Ось поточний стан перекладу. Якщо ви хочете розпочати переклад відсутньою " +"тут мовою, напишіть нам до списку розсилання: onionshare-dev@lists.riseup.net" #~ msgid "" #~ "OnionShare is developed in Python. To" diff --git a/docs/source/locale/uk/LC_MESSAGES/help.po b/docs/source/locale/uk/LC_MESSAGES/help.po index 072cc117..22d2af6b 100644 --- a/docs/source/locale/uk/LC_MESSAGES/help.po +++ b/docs/source/locale/uk/LC_MESSAGES/help.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-08-20 13:37-0700\n" -"PO-Revision-Date: 2021-09-10 21:34+0000\n" +"PO-Revision-Date: 2022-01-21 18:55+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.9-dev\n" +"X-Generator: Weblate 4.11-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/help.rst:2 @@ -34,7 +34,7 @@ msgid "" "the sections first to see if anything answers your questions." msgstr "" "Цей вебсайт містить настанови щодо користування OnionShare. Спочатку " -"перегляньте всі розділи, щоб дізнатися, чи містять вони відповідей на ваші " +"перегляньте всі розділи, щоб дізнатися, чи містять вони відповіді на ваші " "запитання." #: ../../source/help.rst:10 @@ -66,10 +66,10 @@ msgid "" "for-a-new-github-account/>`_." msgstr "" "Якщо не можете знайти як виправити свою проблему або хочете запитати чи " -"запропонувати нову функцію, `поставте питання `_. Для цього потрібно `створити обліковий запис " -"GitHub `_." +"запропонувати нову функцію, `створіть обговорення `_. Для цього потрібно `створити обліковий " +"запис GitHub `_." #: ../../source/help.rst:20 msgid "Join our Keybase Team" diff --git a/docs/source/locale/uk/LC_MESSAGES/install.po b/docs/source/locale/uk/LC_MESSAGES/install.po index 283a49ef..55285596 100644 --- a/docs/source/locale/uk/LC_MESSAGES/install.po +++ b/docs/source/locale/uk/LC_MESSAGES/install.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: OnionShare 2.3\n" "Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n" "POT-Creation-Date: 2021-09-09 19:15-0700\n" -"PO-Revision-Date: 2021-10-08 07:03+0000\n" +"PO-Revision-Date: 2022-01-21 18:55+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: none\n" "Language: uk\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.9-dev\n" +"X-Generator: Weblate 4.11-dev\n" "Generated-By: Babel 2.9.0\n" #: ../../source/install.rst:2 @@ -50,9 +50,9 @@ msgid "" msgstr "" "Існують різні способи встановлення OnionShare на Linux, але радимо " "використовувати пакунок `Flatpak `_ або пакунок " -"Snapcraft `Snap `_. Flatpak і Snapcraft " -"гарантують, що ви завжди користуватиметеся найновішою версією та " -"запускатимете OnionShare в пісочниці." +"Snapcraft `Snap `_. Flatpak і Snapcraft гарантують, " +"що ви завжди користуватиметеся найновішою версією та запускатимете " +"OnionShare у пісочниці." #: ../../source/install.rst:17 msgid "" @@ -96,7 +96,7 @@ msgid "" msgstr "" "Ви можете встановити версію OnionShare для командного рядка на будь-яку " "операційну систему за допомогою менеджера пакунків Python ``pip``. " -"Перегляньте :rref:`cli` для отримання додаткових відомостей." +"Перегляньте :ref:`cli` для отримання додаткових відомостей." #: ../../source/install.rst:35 msgid "Verifying PGP signatures" diff --git a/security/2021 Penetration Test Report.pdf b/security/2021 Penetration Test Report.pdf new file mode 100644 index 00000000..4a041994 Binary files /dev/null and b/security/2021 Penetration Test Report.pdf differ diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index b07faab9..acdc3fd2 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,6 @@ name: onionshare base: core18 -version: '2.4.1' +version: '2.5' summary: Securely and anonymously share files, host websites, and chat using Tor description: | OnionShare lets you securely and anonymously send and receive files. It works by starting @@ -38,13 +38,18 @@ apps: parts: onionshare: - source: ./desktop/src + source: ./desktop plugin: python python-version: python3 python-packages: + - setuptools - psutil - - pyside2 == 5.15.2 - qrcode + - pyside2 == 5.15.2 + # Force using setup.py, prevent using setup-freeze.py or poetry + override-build: | + rm setup-freeze.py pyproject.toml poetry.lock || true + snapcraftctl build stage-packages: - libasound2 - libatk1.0-0 @@ -114,19 +119,7 @@ parts: plugin: python python-version: python3 python-packages: - - click - - flask - - flask-socketio == 5.0.1 - - psutil - - pysocks - - requests - - unidecode - - urllib3 - - eventlet - - setuptools - - pynacl - - colorama - - cepa == 1.8.3 + - poetry stage-packages: - build-essential - libssl-dev @@ -139,8 +132,8 @@ parts: after: [tor, obfs4, snowflake-client, meek-client] tor: - source: https://dist.torproject.org/tor-0.4.6.8.tar.gz - source-checksum: sha256/15ce1a37b4cc175b07761e00acdcfa2c08f0d23d6c3ab9c97c464bd38cc5476a + source: https://dist.torproject.org/tor-0.4.6.9.tar.gz + source-checksum: sha256/c7e93380988ce20b82aa19c06cdb2f10302b72cfebec7c15b5b96bcfc94ca9a9 source-type: tar plugin: autotools build-packages: @@ -176,7 +169,8 @@ parts: # Not sure why I have to do this, but it works override-build: | cd meek-client - go build -o /root/parts/meek-client/install/bin ./... + mkdir /root/parts/meek-client/install/bin + go build -o /root/parts/meek-client/install/bin/meek-client ./... source: https://git.torproject.org/pluggable-transports/meek.git source-type: git source-tag: v0.37.0