Merge remote-tracking branch 'onionshare/main' into weblate

This commit is contained in:
emma peel 2024-02-12 12:42:58 +01:00
commit 65d0e46584
163 changed files with 4466 additions and 3594 deletions

View File

@ -1,5 +1,5 @@
name: Build
run-name: Build win64, mac (Intel) 🚀
run-name: Build Windows (x86_64), macOS (Intel), Snap, and Flatpak 🚀
on:
push:
branches:
@ -17,10 +17,10 @@ jobs:
- name: Install python
uses: actions/setup-python@v4
with:
python-version: '3.10.11'
python-version: "3.11.6"
- name: Install poetry
run: C:\hostedtoolcache\windows\Python\3.10.11\x64\python -m pip install poetry
run: C:\hostedtoolcache\windows\Python\3.11.6\x64\python -m pip install poetry
- name: Restore cache - poetry
uses: actions/cache@v3
@ -31,8 +31,8 @@ jobs:
- name: Install poetry dependencies
run: |
cd desktop
C:\hostedtoolcache\windows\Python\3.10.11\x64\Scripts\poetry install
C:\hostedtoolcache\windows\Python\3.10.11\x64\Scripts\poetry env list --full-path
C:\hostedtoolcache\windows\Python\3.11.6\x64\Scripts\poetry install
C:\hostedtoolcache\windows\Python\3.11.6\x64\Scripts\poetry env list --full-path
- name: Restore cache - tor
uses: actions/cache@v3
@ -41,7 +41,14 @@ jobs:
key: ${{ runner.os }}-win64-tor-${{ hashFiles('desktop/scripts/get-tor.py') }}
- name: Get tor binaries from Tor Browser (64-bit)
run: cd desktop && C:\hostedtoolcache\windows\Python\3.10.11\x64\Scripts\poetry run python .\scripts\get-tor.py win64
run: cd desktop && C:\hostedtoolcache\windows\Python\3.11.6\x64\Scripts\poetry run python .\scripts\get-tor.py win64
- name: Install Go >=1.21.1
uses: actions/setup-go@v4
with:
go-version: ">=1.21.1"
cache: false
- run: go version
- name: Restore cache - obfs4proxy
uses: actions/cache@v3
@ -94,13 +101,13 @@ jobs:
- name: Build OnionShare
run: |
cd desktop
C:\hostedtoolcache\windows\Python\3.10.11\x64\Scripts\poetry run python .\setup-freeze.py build
C:\hostedtoolcache\windows\Python\3.10.11\x64\Scripts\poetry run python .\scripts\build-windows.py cleanup-build
C:\hostedtoolcache\windows\Python\3.11.6\x64\Scripts\poetry run python .\setup-freeze.py build
C:\hostedtoolcache\windows\Python\3.11.6\x64\Scripts\poetry run python .\scripts\build-windows.py cleanup-build
- name: Compress
shell: pwsh
run: |
mv desktop\build\exe.win-amd64-3.10\ ~\onionshare-win64
mv desktop\build\exe.win-amd64-3.11\ ~\onionshare-win64
Compress-Archive -LiteralPath ~\onionshare-win64 -DestinationPath ~\onionshare-win64.zip
- uses: actions/upload-artifact@v3
@ -108,17 +115,14 @@ jobs:
name: win64-build
path: ~\onionshare-win64.zip
# TODO: Someday, build universal2 mac binaries. Right now it's blocked because Github Actions doesn't support
# M1 Mac VMs: https://github.com/actions/runner-images/issues/2187
build-mac-intel:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Install Python 3.10.9 (universal2)
- name: Install Python 3.11.6 (universal2)
run: |
curl -L https://www.python.org/ftp/python/3.10.9/python-3.10.9-macos11.pkg --output ~/Downloads/python.pkg
curl -L https://www.python.org/ftp/python/3.11.6/python-3.11.6-macos11.pkg --output ~/Downloads/python.pkg
sudo installer -pkg ~/Downloads/python.pkg -target /
- name: Install poetry
@ -134,7 +138,7 @@ jobs:
- name: Install poetry dependencies
run: |
cd desktop
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry install
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry install
- name: Restore cache - tor
uses: actions/cache@v3
@ -145,7 +149,7 @@ jobs:
- name: Get tor binaries from Tor Browser
run: |
cd desktop
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry run python ./scripts/get-tor.py macos
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry run python ./scripts/get-tor.py macos
- name: Restore cache - obfs4proxy
uses: actions/cache@v3
@ -196,17 +200,18 @@ jobs:
run: |
brew install libiodbc
cd ~/Downloads
curl -O -L https://github.com/PostgresApp/PostgresApp/releases/download/v2.5.12/Postgres-2.5.12-14.dmg
hdiutil attach Postgres-2.5.12-14.dmg
cp -r /Volumes/Postgres-2.5.12-14/Postgres.app /Applications/
hdiutil detach /Volumes/Postgres-2.5.12-14
curl -O -L https://github.com/PostgresApp/PostgresApp/releases/download/v2.6.5/Postgres-2.6.5-14.dmg
hdiutil attach Postgres-2.6.5-14.dmg
cp -r /Volumes/Postgres-2.6.5-14/Postgres.app /Applications/
hdiutil detach /Volumes/Postgres-2.6.5-14
- name: Build OnionShare
run: |
cd desktop
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry run python ./setup-freeze.py build
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry run python ./setup-freeze.py bdist_mac
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry run python ./scripts/build-macos.py cleanup-build
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry run python ./setup-freeze.py bdist_mac
rm -rf build/OnionShare.app/Contents/Resources/lib
mv build/exe.macosx-10.9-universal2-3.11/lib build/OnionShare.app/Contents/Resources/
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry run python ./scripts/build-macos.py cleanup-build
- name: Compress
run: |
@ -215,7 +220,7 @@ jobs:
- uses: actions/upload-artifact@v3
with:
name: mac-build
name: mac-intel-build
path: ~/onionshare-macos-intel.tar.gz
build-flatpak:
@ -233,13 +238,13 @@ jobs:
uses: actions/cache@v3
with:
path: flatpak/.flatpak-builder
key: flatpak-.flatpak-builder
key: flatpak-.flatpak-builder-${{ hashFiles('flatpak/org.onionshare.OnionShare.yaml') }}
- name: Restore cache - build
uses: actions/cache@v3
with:
path: flatpak/build
key: flatpak-build
key: flatpak-build-${{ hashFiles('flatpak/org.onionshare.OnionShare.yaml') }}
- name: Flatpak build
run: |
@ -257,14 +262,32 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Restore cache - lxd
uses: actions/cache@v3
with:
path: ~/lxd_cache.tar.gz
key: snap-lxd-${{ hashFiles('snap/snapcraft.yaml') }}
- name: Decompress cached content to lxd directory
run: |
if [ -f "~/lxd_cache.tar.gz" ]; then
sudo tar -xzf ~/lxd_cache.tar.gz -C /
fi
- name: Install dependencies
run: |
sudo lxd init --auto
sudo lxc storage list
sudo snap install snapcraft --classic
sudo ufw disable
- name: Build snap
run: sudo snapcraft --use-lxd
run: sudo snapcraft
- name: Compress lxd directory and set proper permissions
run: |
sudo tar -czf ~/lxd_cache.tar.gz /var/snap/lxd/common/lxd/storage-pools/default
sudo chown $USER:$USER ~/lxd_cache.tar.gz
- uses: actions/upload-artifact@v3
with:

View File

@ -29,10 +29,11 @@ jobs:
- run: |
cd cli
poetry run pytest -v ./tests
poetry run onionshare-cli --local-only ./tests --auto-stop-timer 2 --verbose
poetry run onionshare-cli --local-only --receive --auto-stop-timer 2 --verbose
poetry run onionshare-cli --local-only --website ../docs --auto-stop-timer 2 --verbose
poetry run onionshare-cli --local-only --chat --auto-stop-timer 5 --verbose
poetry run onionshare-cli --local-only ./tests --auto-stop-timer 2 --qr --verbose
poetry run onionshare-cli --local-only ./tests --auto-start-timer 2 --auto-stop-timer 2 --qr --verbose
poetry run onionshare-cli --local-only --receive --auto-stop-timer 2 --qr --verbose
poetry run onionshare-cli --local-only --website ../docs --auto-stop-timer 2 --qr --verbose
poetry run onionshare-cli --local-only --chat --auto-stop-timer 5 --qr --verbose
test-desktop:
runs-on: ubuntu-latest

View File

@ -2,8 +2,11 @@
## 2.6.1
* Upgrade Tor, Meek, and obfs4proxy versions
* Release updates: Automate builds with CI, make just 64-bit Windows release, make both Intel and Apple Silicon macOS releases
* Upgrade dependencies, including Tor, meek, and snowflake
* Bug fix: Restore the primary_action mode settings in a tab after OnionShare reconnects to Tor
* Bug fix: Fix issue with auto-connecting to Tor with persistent tabs open
* Bug fix: Fix packaging issue where Windows version of OnionShare conflicts with Windows version of Dangerzone
## 2.6

View File

@ -19,15 +19,47 @@ Unless you're a core OnionShare developer making a release, you'll probably neve
- [ ] `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
### Update dependencies
Check `cli/pyproject.toml` to see if any hard-coded versions should be updated. Then, update the dependencies like this:
```sh
cd cli
poetry update
cd ..
```
If you update `flask-socketio`, ensure that you also update the [socket.io.min.js](https://github.com/micahflee/onionshare/blob/develop/cli/onionshare_cli/resources/static/js/socket.io.min.js) file to a version that is [supported](https://flask-socketio.readthedocs.io/en/latest/#version-compatibility) by the updated version of `flask-socketio`.
Check `desktop/pyproject.toml` to see if any hard-coded versions should be updated. Then, update the dependencies like this:
```
cd desktop
poetry update
cd ..
```
Update the docs dependencies like this:
```
cd docs
poetry update
cd ..
```
Update the versions of `meek`, `obfs4proxy`, and `snowflake` in the `desktop/scripts/build-pt-*` scripts, both the bash and PowerShell scripts. You can find the latest versions by looking at the tags in their git repos: [meek](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/meek/-/tags), [obfs4proxy](https://gitlab.com/yawning/obfs4/-/tags), [snowflake](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/tags).
### Update the documentation
- [ ] Update all of the documentation in `docs` to cover new features, including taking new screenshots if necessary
### Finalize localization
- [ ] Merge all the translations from weblate
- [ ] Merge all the translations from weblate:
```
git remote add weblate https://hosted.weblate.org/projects/onionshare/translations/
git pull weblate main
```
- [ ] In `docs` run `poetry run ./check-weblate.py [API_KEY]` to see which translations are >90% in the app and docs
- [ ] Edit `cli/onionshare_cli/settings.py`, make sure `self.available_locales` lists only locales that are >90% translated
- [ ] From the `desktop` folder in the virtual env, run `./scripts/countries-update-list.py` to make sure the localized country list for censorship circumvention is available in all available languages
@ -46,50 +78,53 @@ In `snap/snapcraft.yaml`:
- [ ] The `tor`, `libevent`, `obfs4`, `snowflake-client`, and `meek-client` parts should be updated if necessary
- [ ] In the `onionshare` part, in the `override-pull` section, all of the dependencies in the `requirements.txt` file should match the dependencies listed in `cli/pyproject.toml` and `desktop/pyproject.toml`, with the exception of PySide2
- [ ] With every commit to the `main` branch, Snapcraft's CI should trigger builds. Make sure the builds all succeeded at https://snapcraft.io/onionshare/builds (you must be logged in), and test them. You can install them with: `snap install onionshare --edge`
To test locally:
- Install snapcraft with: `sudo snap install snapcraft --classic`
- Build snap with: `snapcraft`
- Install with: `sudo snap install ./onionshare_${VERSION}_amd64.snap --devmode`
To in the edge branch:
With every commit to the `main` branch, Snapcraft's CI should trigger builds. Make sure the builds all succeeded at https://snapcraft.io/onionshare/builds (you must be logged in), and test them. You can install them with: `snap install onionshare --edge`
### Make sure the Flatpak packaging works
In `flatpak/org.onionshare.OnionShare.yaml`:
- [ ] Update `tor`, `libevent`, `obfs4`, `meek-client`, and `snowflake-client` dependencies, if necessary
- [ ] Built the latest python dependencies using [this tool](https://github.com/flatpak/flatpak-builder-tools/blob/master/pip/flatpak-pip-generator) (see below)
- [ ] Test the Flatpak package, ensure it works
- [ ] Update `tor` and `libevent`
- [ ] Update `obfs4proxy`, `meek-client`, and `snowflake-client` dependencies, if necessary using [this tool](https://github.com/micahflee/flatpak-builder-tools/tree/fix-go/go):
```sh
cd flatpak-builder-tools/go
# For each these, incorporate the output into the Flatpak maniest
# Make sure to update the version numbers
./flatpak-go-deps.py git.torproject.org/pluggable-transports/meek.git/meek-client@v0.38.0
./flatpak-go-deps.py git.torproject.org/pluggable-transports/snowflake.git/client@v2.6.0
./flatpak-go-deps.py gitlab.com/yawning/obfs4.git/obfs4proxy@obfs4proxy-0.0.14
```
Merge the output of each of these commands into the Flatpak manifest.
- [ ] Update the Python dependencies using [this tool](https://github.com/flatpak/flatpak-builder-tools/blob/master/pip/flatpak-pip-generator) along with `flatpak/poetry-to-requirements.py`:
```sh
cd flatpak-build-tools/pip
# get onionshare-cli dependencies
./flatpak-pip-generator $(../../onionshare/flatpak/poetry-to-requirements.py ../../onionshare/cli/pyproject.toml)
../flatpak-json2yaml.py ./python3-modules.json
mv python3-modules.yml onionshare-cli.yaml
# get onionshare dependencies
./flatpak-pip-generator $(../../onionshare/flatpak/poetry-to-requirements.py ../../onionshare/desktop/pyproject.toml | grep -v PySide6)
../flatpak-json2yaml.py ./python3-modules.json
mv python3-modules.yml onionshare-desktop.yaml
```
Now, merge `onionshare-desktop.yaml` and `onionshare-cli.yaml` into the Flatpak manifest.
- [ ] Build and test the Flatpak package to ensure it works:
```sh
flatpak-builder build --force-clean --jobs=$(nproc) --install-deps-from=flathub --install --user flatpak/org.onionshare.OnionShare.yaml
flatpak run org.onionshare.OnionShare
```
pip3 install toml requirements-parser
# clone flatpak-build-tools
git clone https://github.com/flatpak/flatpak-builder-tools.git
# get onionshare-cli dependencies
cd poetry
./flatpak-poetry-generator.py ../../onionshare/cli/poetry.lock
cd ..
# get onionshare dependencies
cd pip
./flatpak-pip-generator $(python3 -c 'import toml; print("\n".join(toml.loads(open("../../onionshare/desktop/pyproject.toml").read())["tool"]["poetry"]["dependencies"]))' |grep -vi onionshare_cli |grep -vi python | grep -vi pyside6 | grep -vi cx_freeze |tr "\n" " ")
cd ..
# convert to yaml
./flatpak-json2yaml.py -o onionshare-cli.yml poetry/generated-poetry-sources.json
./flatpak-json2yaml.py -o onionshare.yml pip/python3-modules.json
```
Now, merge `onionshare-cli.yml` and `onionshare.yml` into the Flatpak manifest.
Build and test the Flatpak package before publishing:
```sh
flatpak-builder build --force-clean --install-deps-from=flathub --install --user org.onionshare.OnionShare.yaml
flatpak run org.onionshare.OnionShare
```
### Update to the latest version of Tor
- [ ] Edit `desktop/scripts/get-tor.py` to use the latest version of Tor Browser, and the latest sha256 checksums.
- [ ] Update the version of `meek`, `obfs4proxy`, and `snowflake` in the `desktop/scripts/build-pt-*` scripts, both the bash and PowerShell scripts.
### Create a signed git tag
@ -125,70 +160,104 @@ From https://snapcraft.io/onionshare/releases (you must be logged in), promote t
### Windows release
Set up the packaging environment:
Create a Windows 11 VM, and set it up like this:
- Install the Windows SDK from here: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ and add `C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool` to the path (you'll need it for `signtool.exe`)
- Install [git for Windows](https://git-scm.com/download/win).
- Install the latest version of 3.11 [from python.org](https://www.python.org/downloads/).
- Install [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/), making sure to check "Desktop development with C++".
- Download and install [7-Zip (x64)](https://7-zip.org/). Add `C:\Program Files\7-Zip` to your path.
- Download and install [gpg4win](https://gpg4win.org/). Add `C:\Program Files (x86)\GnuPG\bin` to your path.
- Install the Windows SDK from here: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/.
- 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.
- Go to https://wixtoolset.org/docs/wix3/ and download and install WiX toolset. I downloaded `wix311.exe`. Add `C:\Program Files (x86)\WiX Toolset v3.11\bin` to the path.
Github Actions will build the binaries. Find the Github Actions `build` workflow, switch to the summary tab, and download:
Clone the OnionShare git repo and checkout the release tag.
- `build-win32`
- `build-win64`
If you've used this git repo for a previous release, clean it up:
Extract these files, change to the `desktop` folder, and run:
- In the `onionshare/desktop` folder, delete `build` and `dist` from the previous build.
- Delete the poetry environment. You can find its name by run `poetry env list`, and then you can delete it with `poetry env remove [ENV_NAME]`.
Install Poetry and deps. Open a Developer PowerShell for VS window, change to the `onionshare` folder, and run:
```powershell
cd desktop
pip install poetry
poetry install
```
Github Actions will build the binaries. Find the Github Actions `build` workflow, switch to the summary tab, download `win64-build.zip`, and copy it to the Windows packaging environment.
Extract `win64-build.zip`. Run:
```
poetry run python .\scripts\build-windows.py codesign [onionshare_win32_path] [onionshare_win64_path]
poetry run python .\scripts\build-windows.py package [onionshare_win32_path] [onionshare_win64_path]
poetry run python .\scripts\build-windows.py codesign [path]
poetry run python .\scripts\build-windows.py package [path]
```
This will create:
- `desktop/dist/OnionShare-win32-$VERSION.msi`
- `desktop/dist/OnionShare-win64-$VERSION.msi`
### macOS release
In order to make a universal2 binary, you must run this one a Mac with Apple Silicon. To keep a clean environment, you can use VM.
In order to make a universal2 binary, you must following these instructions using a Mac with Apple Silicon. To keep a clean environment, you can use VM.
Set up the VM like this:
- Install [Homebrew](https://brew.sh/)
- `brew install create-dmg libiodbc`
- Install the latest Python 3.10 from https://www.python.org/downloads/
- Install the latest Python 3.11 from https://www.python.org/downloads/
- Install ARM64 version of Go from https://go.dev/dl/
- Install "Postgres.app with PostgreSQL 14 (Universal)" from https://postgresapp.com/downloads.html (required for cx_Freeze build step)
- Install "Postgres.app with PostgreSQL 14 (Universal)" from https://postgresapp.com/downloads.html
Clone the OnionShare git repo and checkout the release tag.
If you've used this git repo for a previous release, clean it up:
```sh
cd desktop
rm -rf build dist
# Delete the old poetry environment
poetry env remove $(poetry env list | grep "(Activated)" | cut -d" " -f1)
```
Install and build dependencies:
```sh
cd desktop
python3 -m pip install poetry
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry install
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry run python ./scripts/get-tor.py macos
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry install
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry run python ./scripts/get-tor.py macos
./scripts/build-pt-obfs4proxy.sh
./scripts/build-pt-snowflake.sh
./scripts/build-pt-meek.sh
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry run python ./setup-freeze.py build
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry run python ./setup-freeze.py bdist_mac
/Library/Frameworks/Python.framework/Versions/3.10/bin/poetry run python ./scripts/build-macos.py cleanup-build
cd build
tar -czvf ~/onionshare-macos-universal2.tar.gz OnionShare.app
```
Set up the packaging environment:
- Install create-dmg: `brew install create-dmg`
Github Actions will build the binaries. Find the Github Actions `build` workflow, switch to the summary tab, and download:
- `build-mac`
Extract these files, change to the `desktop` folder, and run:
Make the Apple Silicon app bundle:
```sh
poetry run python ./scripts/build-macos.py codesign [app_path]
poetry run python ./scripts/build-macos.py package [app_path]
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry run python ./setup-freeze.py bdist_mac
rm -rf build/OnionShare.app/Contents/Resources/lib
mv build/exe.macosx-10.9-universal2-3.11/lib build/OnionShare.app/Contents/Resources/
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry run python ./scripts/build-macos.py cleanup-build
```
The Apple Silicon app bundle will be in `build` folder called `OnionShare.app`.
Github Actions will build the Intel app bundle. Find the Github Actions `build` workflow, switch to the summary tab, and download the `mac-intel-build` artifact. Extract it, and you'll get the Intel `OnionShare.app` folder.
Next, merge these two app bundles into a single universal2 app bundle:
```sh
poetry run ./scripts/macos-merge-universal.py [intel_app_path] [silicon_app_path] [universal2_app_path]
```
Finally, code sign and package the universal2 app bundle:
```sh
poetry run python ./scripts/build-macos.py codesign [universal2_app_path]
poetry run python ./scripts/build-macos.py package [universal2_app_path]
```
The will create `dist/OnionShare-$VERSION.dmg`.

View File

@ -31,7 +31,7 @@ from .web import Web
from .onion import TorErrorProtocolError, TorTooOldEphemeral, TorTooOldStealth, Onion
from .onionshare import OnionShare
from .mode_settings import ModeSettings
from qrcode import QRCode
def main(cwd=None):
"""
@ -119,6 +119,13 @@ def main(cwd=None):
default=False,
help="Share files: Continue sharing after files have been sent (default is to stop sharing)",
)
parser.add_argument(
"--qr",
action="store_true",
dest="qr",
default=False,
help="Display a QR code in the terminal for share links",
)
# Receive args
parser.add_argument(
"--data-dir",
@ -190,6 +197,7 @@ def main(cwd=None):
autostart_timer = int(args.autostart_timer)
autostop_timer = int(args.autostop_timer)
autostop_sharing = not bool(args.no_autostop_sharing)
print_qr = bool(args.qr)
data_dir = args.data_dir
webhook_url = args.webhook_url
disable_text = args.disable_text
@ -229,6 +237,7 @@ def main(cwd=None):
mode_settings.set("general", "public", public)
mode_settings.set("general", "autostart_timer", autostart_timer)
mode_settings.set("general", "autostop_timer", autostop_timer)
mode_settings.set("general", "qr", print_qr)
if persistent_filename:
mode_settings.set("persistent", "mode", mode)
if mode == "share":
@ -382,6 +391,16 @@ def main(cwd=None):
f"Give this address to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}"
)
print(url)
if mode_settings.get("general", "qr"):
qr = QRCode()
qr.add_data(url)
print("Onion address as QR code:")
qr.print_ascii()
if not mode_settings.get("general", "public"):
qr.clear()
qr.add_data(app.auth_string)
print("Private key as QR code:")
qr.print_ascii()
print("")
print("Waiting for the scheduled time before starting...")
app.onion.cleanup(False)
@ -465,6 +484,17 @@ def main(cwd=None):
print("Give this address and private key to the recipient:")
print(url)
print(f"Private key: {app.auth_string}")
if mode_settings.get("general", "qr"):
qr = QRCode()
qr.add_data(url)
print("Onion address as QR code:")
qr.print_ascii()
if not mode_settings.get("general", "public"):
qr.clear()
qr.add_data(app.auth_string)
print("Private key as QR code:")
qr.print_ascii()
print("")
print("Press Ctrl+C to stop the server")

View File

@ -1,3 +1,3 @@
# Enable built-in snowflake bridge
Bridge snowflake 192.0.2.3:80 2B280B23E1107BB62ABFC40DDCC8824814F80A72 fingerprint=2B280B23E1107BB62ABFC40DDCC8824814F80A72 url=https://snowflake-broker.torproject.net.global.prod.fastly.net/ front=cdn.sstatic.net ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn
Bridge snowflake 192.0.2.4:80 8838024498816A039FCBBAB14E6F40A0843051FA fingerprint=8838024498816A039FCBBAB14E6F40A0843051FA url=https://snowflake-broker.torproject.net.global.prod.fastly.net/ front=cdn.sstatic.net ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.net:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn
Bridge snowflake 192.0.2.3:80 2B280B23E1107BB62ABFC40DDCC8824814F80A72 fingerprint=2B280B23E1107BB62ABFC40DDCC8824814F80A72 url=https://snowflake-broker.torproject.net.global.prod.fastly.net/ front=foursquare.com ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn
Bridge snowflake 192.0.2.4:80 8838024498816A039FCBBAB14E6F40A0843051FA fingerprint=8838024498816A039FCBBAB14E6F40A0843051FA url=https://snowflake-broker.torproject.net.global.prod.fastly.net/ front=foursquare.com ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.net:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn

View File

@ -1 +1 @@
2.6.1
2.6.1.dev1

View File

@ -55,42 +55,48 @@ 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
"af": "Afrikaans", # Afrikaans
"sq": "Shqip", # Albanian
"ar": "العربية", # Arabic
"be": "Беларуская", # Belarusian
# "bn": "বাংলা", # Bengali
# "ca": "Català", # Catalan
# "zh_Hant": "正體中文 (繁體)", # Traditional Chinese
"ca": "Català", # Catalan
"zh_Hant": "正體中文 (繁體)", # Traditional Chinese
"zh_Hans": "中文 (简体)", # Simplified Chinese
"hr": "Hrvatski", # Croatian
"cs": "čeština", # Czech
# "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
"is": "Íslenska", # Icelandic
# "id": "Bahasa Indonesia", # Indonesian
# "ga": "Gaeilge", # Irish
# "it": "Italiano", # Italian
"it": "Italiano", # Italian
"ja": "日本語", # Japanese
# "ckb": "Soranî", # Kurdish (Central)
# "lt": "Lietuvių Kalba", # Lithuanian
# "nb_NO": "Norsk Bokmål", # Norwegian Bokmål
# "fa": "فارسی", # Persian
# "pl": "Polski", # Polish
# "pt_BR": "Português (Brasil)", # Portuguese Brazil
"lt": "Lietuvių Kalba", # Lithuanian
"nb_NO": "Norsk Bokmål", # Norwegian Bokmål
"fa": "فارسی", # Persian
"pl": "Polski", # Polish
"pt_BR": "Português (Brasil)", # Portuguese Brazil
# "pt_PT": "Português (Portugal)", # Portuguese Portugal
# "ro": "Română", # Romanian
# "ru": "Русский", # Russian
"ru": "Русский", # Russian
"sn": "chiShona", # Shona
# "sr_Latn": "Srpska (latinica)", # Serbian (latin)
# "sk": "Slovenčina", # Slovak
"sv": "Svenska", # Swedish
"es": "Español", # Spanish
"sw": "Kiswahili", # Swahili
"sv": "Svenska", # Swedish
# "te": "తెలుగు", # Telugu
"tr": "Türkçe", # Turkish
"uk": "Українська", # Ukrainian
"vi": "Tiếng Việt", # Vietnamese
}
# These are the default settings. They will get overwritten when loading from disk

View File

@ -131,7 +131,7 @@ class SendBaseModeWeb:
self.set_file_info_custom(filenames, processed_size_callback)
def directory_listing(self, filenames, path="", filesystem_path=None):
def directory_listing(self, filenames, path="", filesystem_path=None, add_trailing_slash=False):
# Tell the GUI about the directory listing
history_id = self.cur_history_id
self.cur_history_id += 1
@ -150,12 +150,12 @@ class SendBaseModeWeb:
breadcrumbs_leaf = breadcrumbs.pop()[0]
# If filesystem_path is None, this is the root directory listing
files, dirs = self.build_directory_listing(path, filenames, filesystem_path)
files, dirs = self.build_directory_listing(path, filenames, filesystem_path, add_trailing_slash)
return self.directory_listing_template(
path, files, dirs, breadcrumbs, breadcrumbs_leaf
)
def build_directory_listing(self, path, filenames, filesystem_path):
def build_directory_listing(self, path, filenames, filesystem_path, add_trailing_slash=False):
files = []
dirs = []
@ -168,9 +168,14 @@ class SendBaseModeWeb:
is_dir = os.path.isdir(this_filesystem_path)
if is_dir:
dirs.append(
{"link": os.path.join(f"/{path}", filename), "basename": filename}
)
if add_trailing_slash:
dirs.append(
{"link": os.path.join(f"/{path}", filename, ""), "basename": filename}
)
else:
dirs.append(
{"link": os.path.join(f"/{path}", filename), "basename": filename}
)
else:
size = os.path.getsize(this_filesystem_path)
size_human = self.common.human_readable_filesize(size)

View File

@ -365,7 +365,8 @@ class Web:
)
self.waitress.run()
except Exception as e:
raise WaitressException(f"Error starting Waitress: {e}")
if not self.waitress.shutdown:
raise WaitressException(f"Error starting Waitress: {e}")
def stop(self, port):
"""
@ -398,6 +399,7 @@ class Web:
def waitress_custom_shutdown(self):
"""Shutdown the Waitress server immediately"""
# Code borrowed from https://github.com/Pylons/webtest/blob/4b8a3ebf984185ff4fefb31b4d0cf82682e1fcf7/webtest/http.py#L93-L104
self.waitress.shutdown = True
while self.waitress._map:
triggers = list(self.waitress._map.values())
for trigger in triggers:

View File

@ -84,12 +84,13 @@ class WebsiteModeWeb(SendBaseModeWeb):
return self.stream_individual_file(self.files[index_path])
else:
# Otherwise, render directory listing
# Otherwise, render directory listing, and enforce trailing slash
# which can help with relative asset links in sub-directories.
filenames = []
for filename in os.listdir(filesystem_path):
filenames.append(filename)
filenames.sort()
return self.directory_listing(filenames, path, filesystem_path)
return self.directory_listing(filenames, path, filesystem_path, True)
# If it's a file
elif os.path.isfile(filesystem_path):
@ -112,7 +113,7 @@ class WebsiteModeWeb(SendBaseModeWeb):
# Root directory listing
filenames = list(self.root_files)
filenames.sort()
return self.directory_listing(filenames, path)
return self.directory_listing(filenames, path, None, True)
else:
# If the path isn't found, throw a 404

1316
cli/poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
[tool.poetry]
name = "onionshare_cli"
version = "2.6.1"
version = "2.6.1.dev1"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
authors = ["Micah Lee <micah@micahflee.com>"]
license = "GPLv3+"
@ -34,6 +34,12 @@ gevent-websocket = "*"
stem = "1.8.1"
waitress = "^2.1.2"
werkzeug = ">=2.3.4"
packaging = "^23.1"
gevent = "^23.9.1"
wheel = "^0.41.2"
cffi = "^1.15.1"
cython = "^3.0.2"
qrcode = "^7.4.2"
[tool.poetry.dev-dependencies]
pytest = ">=7.2.0"

View File

@ -9,7 +9,7 @@ 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 the latest version of 3.10 [from python.org](https://www.python.org/downloads/). For Windows, make sure to check the box to add python to the path on the first page of the installer.
Make sure you have Python 3 installed. If you're using Windows or macOS, install the latest version of 3.11 [from python.org](https://www.python.org/downloads/). For Windows, make sure to check the box to add python to the path on the first page of the installer.
Make sure you have [poetry](https://python-poetry.org/) installed:
@ -27,13 +27,15 @@ poetry install
### Get Tor
**Linux users:** In Ubuntu you may need the `libxcb-xinerama0` package installed.
**Linux users:**
- On Debian/Debian-based distributions you may need the `libxcb-xinerama0` and `libxcb-cursor0` packages installed.
- On Fedora/CentOS you may need the `libxcb-*` and `xcb-util-*` packages installed.
**Windows users:**
- Download and install 7-Zip (x64) from https://7-zip.org/download.html. [Add](https://medium.com/@kevinmarkvi/how-to-add-executables-togit fethc-your-path-in-windows-5ffa4ce61a53) `C:\Program Files\7-Zip` to your path.
- Download and install gpg4win from https://gpg4win.org/. Add `C:\Program Files (x86)\GnuPG\bin` to your path too.
- Download and install [7-Zip (x64)](https://7-zip.org/). Add `C:\Program Files\7-Zip` to your path.
- Download and install [gpg4win](https://gpg4win.org/). Add `C:\Program Files (x86)\GnuPG\bin` to your path.
Download Tor Browser and extract the binaries for your platform. The platform must be `win64`, `macos`, or `linux64`.
Download Tor Browser and extract the binaries for your platform. The platform must be `win64`, `macos`, or `linux-x86_64`.
```sh
poetry run python ./scripts/get-tor.py [platform]

View File

@ -144,10 +144,6 @@ def main():
common = Common()
common.display_banner()
# Required for macOS Big Sur: https://stackoverflow.com/a/64878899
if common.platform == "Darwin":
os.environ["QT_MAC_WANTS_LAYER"] = "1"
# Start the Qt app
global qtapp
qtapp = Application(common)

View File

@ -471,6 +471,10 @@ class GuiCommon:
QPushButton {
padding: 5px 10px;
}""",
"receive_options": """
QCheckBox:disabled {
color: #666666;
}""",
# Tor Settings dialogs
"tor_settings_error": """
QLabel {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"AF": "Afghanistan", "AL": "Albania", "DZ": "Algeria", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antartide", "AG": "Antigua e Barbuda", "SA": "Arabia Saudita", "AR": "Argentina", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "AZ": "Azerbaigian", "BS": "Bahamas", "BH": "Bahrein", "BD": "Bangladesh", "BB": "Barbados", "BE": "Belgio", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BY": "Bielorussia", "BO": "Bolivia", "BA": "Bosnia ed Erzegovina", "BW": "Botswana", "BR": "Brasile", "BN": "Brunei", "BG": "Bulgaria", "BF": "Burkina Faso", "BI": "Burundi", "KH": "Cambogia", "CM": "Camerun", "CA": "Canada", "CV": "Capo Verde", "BQ": "Caraibi olandesi", "CZ": "Cechia", "TD": "Ciad", "CL": "Cile", "CN": "Cina", "CY": "Cipro", "VA": "Citt\u00e0 del Vaticano", "CO": "Colombia", "KM": "Comore", "CD": "Congo - Kinshasa", "CG": "Congo-Brazzaville", "KP": "Corea del Nord", "KR": "Corea del Sud", "CI": "Costa d\u2019Avorio", "CR": "Costa Rica", "HR": "Croazia", "CU": "Cuba", "CW": "Cura\u00e7ao", "DK": "Danimarca", "DM": "Dominica", "EC": "Ecuador", "EG": "Egitto", "SV": "El Salvador", "AE": "Emirati Arabi Uniti", "ER": "Eritrea", "EE": "Estonia", "ET": "Etiopia", "FJ": "Figi", "PH": "Filippine", "FI": "Finlandia", "FR": "Francia", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "GS": "Georgia del Sud e Sandwich australi", "DE": "Germania", "GH": "Ghana", "JM": "Giamaica", "JP": "Giappone", "GI": "Gibilterra", "DJ": "Gibuti", "JO": "Giordania", "GR": "Grecia", "GD": "Grenada", "GL": "Groenlandia", "GP": "Guadalupa", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GQ": "Guinea Equatoriale", "GW": "Guinea-Bissau", "GY": "Guyana", "GF": "Guyana francese", "HT": "Haiti", "HN": "Honduras", "IN": "India", "ID": "Indonesia", "IR": "Iran", "IQ": "Iraq", "IE": "Irlanda", "IS": "Islanda", "BV": "Isola Bouvet", "CX": "Isola Christmas", "IM": "Isola di Man", "NF": "Isola Norfolk", "AX": "Isole \u00c5land", "KY": "Isole Cayman", "CC": "Isole Cocos (Keeling)", "CK": "Isole Cook", "FO": "Isole F\u00e6r \u00d8er", "FK": "Isole Falkland", "HM": "Isole Heard e McDonald", "PN": "Isole Pitcairn", "SB": "Isole Salomone", "TC": "Isole Turks e Caicos", "VI": "Isole Vergini Americane", "VG": "Isole Vergini Britanniche", "IL": "Israele", "IT": "Italia", "KZ": "Kazakistan", "KE": "Kenya", "KG": "Kirghizistan", "KI": "Kiribati", "KW": "Kuwait", "LA": "Laos", "LS": "Lesotho", "LV": "Lettonia", "LB": "Libano", "LR": "Liberia", "LY": "Libia", "LI": "Liechtenstein", "LT": "Lituania", "LU": "Lussemburgo", "MK": "Macedonia del Nord", "MG": "Madagascar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldive", "ML": "Mali", "MT": "Malta", "MA": "Marocco", "MQ": "Martinica", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Messico", "MD": "Moldavia", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MZ": "Mozambico", "MM": "Myanmar (Birmania)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "NO": "Norvegia", "NC": "Nuova Caledonia", "NZ": "Nuova Zelanda", "OM": "Oman", "NL": "Paesi Bassi", "PK": "Pakistan", "PW": "Palau", "PA": "Panam\u00e1", "PG": "Papua Nuova Guinea", "PY": "Paraguay", "PE": "Per\u00f9", "PF": "Polinesia francese", "PL": "Polonia", "PT": "Portogallo", "PR": "Portorico", "QA": "Qatar", "HK": "RAS di Hong Kong", "MO": "RAS di Macao", "GB": "Regno Unito", "CF": "Repubblica Centrafricana", "DO": "Repubblica Dominicana", "RE": "Riunione", "RO": "Romania", "RW": "Ruanda", "RU": "Russia", "EH": "Sahara occidentale", "KN": "Saint Kitts e Nevis", "LC": "Saint Lucia", "MF": "Saint Martin", "VC": "Saint Vincent e Grenadine", "BL": "Saint-Barth\u00e9lemy", "PM": "Saint-Pierre e Miquelon", "WS": "Samoa", "AS": "Samoa americane", "SM": "San Marino", "SH": "Sant\u2019Elena", "ST": "S\u00e3o Tom\u00e9 e Pr\u00edncipe", "SN": "Senegal", "RS": "Serbia", "SC": "Seychelles", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SY": "Siria", "SK": "Slovacchia", "SI": "Slovenia", "SO": "Somalia", "ES": "Spagna", "LK": "Sri Lanka", "US": "Stati Uniti", "SS": "Sud Sudan", "ZA": "Sudafrica", "SD": "Sudan", "SR": "Suriname", "SJ": "Svalbard e Jan Mayen", "SE": "Svezia", "CH": "Svizzera", "SZ": "Swaziland", "TJ": "Tagikistan", "TW": "Taiwan", "TZ": "Tanzania", "TF": "Terre australi francesi", "IO": "Territorio britannico dell\u2019Oceano Indiano", "TH": "Thailandia", "TL": "Timor Est", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad e Tobago", "TN": "Tunisia", "TR": "Turchia", "TM": "Turkmenistan", "UA": "Ucraina", "UG": "Uganda", "HU": "Ungheria", "UY": "Uruguay", "UZ": "Uzbekistan", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis e Futuna", "YE": "Yemen", "ZM": "Zambia", "ZW": "Zimbabwe"}

View File

@ -0,0 +1 @@
{"AF": "Afuganistani", "AR": "Ajentina", "AX": "\u00c5land Islands", "AL": "Albania", "DZ": "Aljeria", "US": "Amerika", "AD": "Andora", "AO": "Angola", "AI": "Anguila", "AQ": "Antarctica", "AG": "Antigua ne Barbuda", "AM": "Armenia", "AW": "Arubha", "AU": "Australia", "AT": "Austria", "AZ": "Azabajani", "BS": "Bahama", "BH": "Bahareni", "BD": "Bangladeshi", "BB": "Barbados", "BY": "Belarusi", "BZ": "Belize", "BE": "Beljium", "BJ": "Benini", "BM": "Bermuda", "BT": "Bhutani", "BO": "Bolivia", "BW": "Botswana", "BV": "Bouvet Island", "BA": "Boznia ne Herzegovina", "BR": "Brazil", "IO": "British Indian Ocean Territory", "BF": "Bukinafaso", "BG": "Bulgaria", "BI": "Burundi", "BN": "Burunei", "BQ": "Caribbean Netherlands", "CF": "Central African Republic", "TD": "Chadi", "CL": "Chile", "CN": "China", "NF": "Chitsuwa cheNorfolk", "CX": "Christmas Island", "CC": "Cocos (Keeling) Islands", "CU": "Cuba", "CW": "Cura\u00e7ao", "CY": "Cyprus", "CZ": "Czech Republic", "CD": "Democratic Republic of the Congo", "DK": "Denmark", "DJ": "Djibouti", "DM": "Dominica", "DO": "Dominican Republic", "TL": "East Timor", "EC": "Ecuador", "EG": "Egypt", "SV": "El Salvador", "GQ": "Equatorial Guinea", "ER": "Eritrea", "EE": "Estonia", "ET": "Etiopia", "FO": "Faroe Islands", "FJ": "Fiji", "FI": "Finland", "FR": "France", "GF": "French Guiana", "PF": "French Polynesia", "TF": "French Southern Territories", "GA": "Gabon", "GM": "Gambia", "GE": "Georgia", "DE": "Germany", "GH": "Ghana", "GI": "Gibraltar", "GR": "Greece", "GL": "Greenland", "GD": "Grenada", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heard & McDonald Islands", "HN": "Honduras", "HK": "Hong Kong SAR China", "HU": "Hungary", "IS": "Iceland", "IN": "India", "ID": "Indonesia", "IR": "Iran", "IQ": "Iraq", "IE": "Ireland", "IM": "Isle of Man", "IT": "Italy", "CI": "Ivory Coast", "IL": "Izuraeri", "JM": "Jamaica", "JP": "Japan", "JO": "Jordan", "KH": "Kambodia", "CM": "Kameruni", "CA": "Kanada", "KZ": "Kazakhstan", "KE": "Kenya", "KI": "Kiribati", "CO": "Kolombia", "KM": "Komoro", "CG": "Kongo", "HR": "Korasia", "KP": "Korea, North", "KR": "Korea, South", "CR": "Kostarika", "KW": "Kuwait", "KG": "Kyrgyzstan", "LA": "Laos", "LV": "Latvia", "LB": "Lebanon", "LS": "Lesotho", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Lithuania", "LU": "Luxembourg", "MO": "Macao SAR China", "MG": "Madagascar", "MW": "Malawi", "MY": "Malaysia", "MV": "Maldives", "ML": "Mali", "MT": "Malta", "MQ": "Martinique", "MR": "Mauritania", "MU": "Mauritius", "YT": "Mayotte", "MX": "Mexico", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MA": "Morocco", "MZ": "Mozambique", "MM": "Myanmar", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NL": "Netherlands", "NC": "New Caledonia", "NZ": "New Zealand", "NI": "Nicaragua", "NE": "Niger", "NG": "Nigeria", "NU": "Niue", "MK": "North Macedonia", "NO": "Norway", "OM": "Oman", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua New Guinea", "PY": "Paraguay", "PE": "Peru", "PH": "Philippines", "PN": "Pitcairn", "PL": "Poland", "PT": "Portugal", "PR": "Puerto Rico", "QA": "Qatar", "RE": "R\u00e9union", "RO": "Romania", "RU": "Russia", "RW": "Rwanda", "SH": "Saint Helena", "KN": "Saint Kitts and Nevis", "LC": "Saint Lucia", "PM": "Saint Pierre and Miquelon", "VC": "Saint Vincent and the Grenadines", "WS": "Samoa", "AS": "Samoa ye Amerika", "SM": "San Marino", "ST": "S\u00e3o Tom\u00e9 and Pr\u00edncipe", "SA": "Saudi Arabia", "SN": "Senegal", "RS": "Serbia", "SC": "Seychelles", "SL": "Sierra Leone", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SO": "Somalia", "ZA": "South Africa", "GS": "South Georgia & South Sandwich Islands", "SS": "South Sudan", "ES": "Spain", "LK": "Sri Lanka", "BL": "St. Barth\u00e9lemy", "MF": "St. Martin", "SD": "Sudan", "SR": "Suriname", "SJ": "Svalbard & Jan Mayen", "SZ": "Swaziland", "SE": "Sweden", "CH": "Switzerland", "SY": "Syria", "TW": "Taiwan", "TJ": "Tajikistan", "TZ": "Tanzania", "TH": "Thailand", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad and Tobago", "TN": "Tunisia", "TR": "Turkey", "TM": "Turkmenistan", "UG": "Uganda", "UA": "Ukraine", "AE": "United Arab Emirates", "GB": "United Kingdom", "UY": "Uruguay", "UZ": "Uzbekistan", "VU": "Vanuatu", "VA": "Vatican State", "VE": "Venezuela", "VN": "Vietnam", "WF": "Wallis and Futuna", "EH": "Western Sahara", "YE": "Yemen", "ZM": "Zambia", "ZW": "Zimbabwe", "SB": "Zvitsuwa zvaSolomon", "VI": "Zvitsuwa zveAmerika", "CV": "Zvitsuwa zveCape Verde", "KY": "Zvitsuwa zveCayman", "CK": "Zvitsuwa zveCook", "FK": "Zvitsuwa zveFalklands", "VG": "Zvitsuwa zveHingirandi", "TC": "Zvitsuwa zveTurk neCaico"}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"AF": "Afghanistan", "ZA": "Afrika Kusini", "IS": "Aisilandi", "AR": "Ajentina", "AL": "Albania", "DZ": "Aljeria", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antaktiki", "AG": "Antigua na Barbuda", "AM": "Armenia", "AW": "Aruba", "AU": "Australia", "AT": "Austria", "IE": "Ayalandi", "AZ": "Azerbaijani", "BB": "Babadosi", "BS": "Bahama", "BH": "Bahareni", "BD": "Bangladeshi", "BY": "Belarus", "BZ": "Belize", "BJ": "Benin", "BM": "Bermuda", "BT": "Bhutan", "BO": "Bolivia", "BA": "Bosnia na Hezegovina", "BW": "Botswana", "BR": "Brazil", "BN": "Brunei", "BF": "Bukinafaso", "BG": "Bulgaria", "BI": "Burundi", "CV": "Cape Verde", "TD": "Chad", "CZ": "Chechia", "CL": "Chile", "CI": "Cote d\u2019Ivoire", "HR": "Croatia", "CU": "Cuba", "CW": "Curacao", "CY": "Cyprus", "DK": "Denmark", "DM": "Dominika", "EC": "Ecuador", "SV": "El Salvador", "IO": "Eneo la Uingereza katika Bahari Hindi", "ER": "Eritrea", "EE": "Estonia", "ET": "Ethiopia", "AE": "Falme za Kiarabu", "FJ": "Fiji", "GA": "Gabon", "GM": "Gambia", "GH": "Ghana", "GI": "Gibraltar", "GN": "Gine", "GW": "Ginebisau", "GL": "Greenland", "GD": "Grenada", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GF": "Guiana ya Ufaransa", "GQ": "Guinea ya Ikweta", "GY": "Guyana", "HT": "Haiti", "TF": "Himaya za Kusini za Kifaranza", "HN": "Honduras", "HK": "Hong Kong SAR China", "HU": "Hungaria", "IN": "India", "ID": "Indonesia", "IQ": "Iraki", "IR": "Iran", "IL": "Israeli", "IT": "Italia", "JM": "Jamaika", "CF": "Jamhuri ya Afrika ya Kati", "DO": "Jamhuri ya Dominika", "CD": "Jamhuri ya Kidemokrasia ya Kongo", "JP": "Japani", "DJ": "Jibuti", "GE": "Jojia", "JO": "Jordan", "KH": "Kambodia", "CM": "Kameruni", "CA": "Kanada", "KZ": "Kazakistani", "KE": "Kenya", "KI": "Kiribati", "KG": "Kirigizistani", "BV": "Kisiwa cha Bouvet", "HM": "Kisiwa cha Heard na Visiwa vya McDonald", "CX": "Kisiwa cha Krismasi", "IM": "Kisiwa cha Man", "NF": "Kisiwa cha Norfolk", "CO": "Kolombia", "KM": "Komoro", "CG": "Kongo - Brazzaville", "KP": "Korea Kaskazini", "KR": "Korea Kusini", "CR": "Kostarika", "KW": "Kuwait", "LA": "Laos", "LV": "Latvia", "LB": "Lebanon", "LS": "Lesoto", "LR": "Liberia", "LY": "Libya", "LI": "Liechtenstein", "LT": "Lithuania", "LU": "Luxembourg", "MG": "Madagaska", "MO": "Makau SAR China", "MW": "Malawi", "MV": "Maldives", "MY": "Malesia", "ML": "Mali", "MT": "Malta", "US": "Marekani", "MQ": "Martinique", "MK": "Masedonia ya Kaskazini", "YT": "Mayotte", "MX": "Meksiko", "EG": "Misri", "VA": "Mji wa Vatican", "MD": "Moldova", "MC": "Monaco", "MN": "Mongolia", "ME": "Montenegro", "MS": "Montserrat", "MU": "Morisi", "MR": "Moritania", "MA": "Morocco", "MZ": "Msumbiji", "MM": "Myanmar (Burma)", "NA": "Namibia", "NR": "Nauru", "NP": "Nepal", "NC": "New Caledonia", "NE": "Niger", "NG": "Nigeria", "NI": "Nikaragwa", "NU": "Niue", "NO": "Norway", "NZ": "Nyuzilandi", "OM": "Oman", "PK": "Pakistani", "PW": "Palau", "PA": "Panama", "PG": "Papua New Guinea", "PY": "Paraguay", "PE": "Peru", "PL": "Poland", "PF": "Polynesia ya Ufaransa", "PR": "Puerto Rico", "QA": "Qatar", "RE": "Reunion", "RO": "Romania", "RW": "Rwanda", "EH": "Sahara Magharibi", "WS": "Samoa", "AS": "Samoa ya Marekani", "SM": "San Marino", "PM": "Santapierre na Miquelon", "ST": "S\u00e3o Tom\u00e9 na Pr\u00edncipe", "SA": "Saudia", "SN": "Senegali", "RS": "Serbia", "SL": "Siera Leoni", "SG": "Singapore", "SX": "Sint Maarten", "SK": "Slovakia", "SI": "Slovenia", "SO": "Somalia", "LK": "Sri Lanka", "BL": "St. Barthelemy", "SH": "St. Helena", "KN": "St. Kitts na Nevis", "LC": "St. Lucia", "MF": "St. Martin", "VC": "St. Vincent na Grenadines", "SD": "Sudan", "SS": "Sudan Kusini", "SR": "Suriname", "SJ": "Svalbard na Jan Mayen", "SY": "Syria", "TH": "Tailandi", "TW": "Taiwan", "TJ": "Tajikistani", "TZ": "Tanzania", "TL": "Timor-Leste", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad na Tobago", "TN": "Tunisia", "TM": "Turkmenistan", "BE": "Ubelgiji", "CN": "Uchina", "GB": "Ufalme wa Muungano", "FR": "Ufaransa", "PH": "Ufilipino", "FI": "Ufini", "UG": "Uganda", "GR": "Ugiriki", "ES": "Uhispania", "NL": "Uholanzi", "BQ": "Uholanzi ya Karibiani", "DE": "Ujerumani", "UA": "Ukraine", "PT": "Ureno", "UY": "Uruguay", "RU": "Urusi", "SC": "Ushelisheli", "SZ": "Uswazi", "SE": "Uswidi", "CH": "Uswisi", "TR": "Uturuki", "UZ": "Uzibekistani", "VU": "Vanuatu", "VE": "Venezuela", "VN": "Vietnam", "AX": "Visiwa vya Aland", "KY": "Visiwa vya Cayman", "CC": "Visiwa vya Cocos (Keeling)", "CK": "Visiwa vya Cook", "FK": "Visiwa vya Falkland", "FO": "Visiwa vya Faroe", "GS": "Visiwa vya Georgia Kusini na Sandwich Kusini", "PN": "Visiwa vya Pitcairn", "SB": "Visiwa vya Solomon", "TC": "Visiwa vya Turks na Caicos", "VI": "Visiwa vya Virgin, Marekani", "VG": "Visiwa vya Virgin, Uingereza", "WF": "Wallis na Futuna", "YE": "Yemeni", "ZM": "Zambia", "ZW": "Zimbabwe"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -77,7 +77,6 @@
"gui_server_autostop_timer_expired": "Die outo-stoptydhouer het reeds afgeloop. Pas dit aan om te begin deel.",
"gui_server_autostart_timer_expired": "Die geskeduleerde tyd is verstreke. Verstel dit om met deel te begin met.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Die outo-stoptyd kan nie dieselfde of vroeër as die outo-begintyd wees nie. Pas dit aan om te begin deel.",
"share_via_onionshare": "Deel d.m.v. OnionShare",
"gui_share_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres en privaat sleutel kan u lêers <b>aflaai</b> d.m.v. die <b>Tor Browser</b>: <img src=\"{}\" />",
"gui_website_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres en privaat sleutel kan u webwerf <b>besoek</b> d.m.v. die <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres kan lêers d.m.v. die <b>Tor Browser</b> na u rekenaar <b>oplaai</b>: <img src='{}' />",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "لقد قُطع الاتصل بشبكة تور.",
"gui_server_started_after_autostop_timer": "لقد بلغ مؤقت الإيقاف التلقائي أجله قبل بدء الخادم. يُرجى إنشاء مشاركة جديدة.",
"gui_server_autostop_timer_expired": "لقد بلغ مؤقت الإيقاف التلقائي أجله. يُرجى ضبطه للبدء بالمشاركة.",
"share_via_onionshare": "شارك باستعمال OnionShare",
"gui_share_url_description": "إن <b>أي شخص</b> لديه عنوان OnionShare هذا سيكون بوسعه <b>تنزيل</b> تلك الملفات باستخدام <b>متصفح تور</b>: <img src='{}' />",
"gui_receive_url_description": "يمكن <b>لأيّ شخص</b> لديه عنوان OnionShare هذا <b>رفع</b> الملفات إلى حاسوبك باستعمال <b>متصفح تور</b> : <img src='{}' />",
"gui_url_label_persistent": "لن تتوقف هذه المشاركة تلقائيا.<br><br>كل مشاركة لاحقة ستعيد استخدام نفس العنوان. (لاستخدام عناوين ذات الاستعمال الوحيد، عطّل خيار ”استخدم عنوانا دائما“ في الإعدادات.",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "Запланаваны час супаў. Абнавіце яго, каб пачаць адпраўку.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Час аўтаспынення не можа быць такім жа або больш раннім, чым час аўтазапуску. Калі ласка, адрэгулюйце яго для пачатку сумеснага выкарыстання.",
"gui_server_doesnt_support_stealth": "Нажаль, гэтая версія Tor не падтрымлівае стэлс-рэжым (аўтэнтыфікацыю кліента). Паспрабуйце з дапамогай навейшай версіі Tor або скарыстайцеся агульнадаступным рэжымам, калі ён не павінен быць прыватным.",
"share_via_onionshare": "Падзяліцца праз OnionShare",
"gui_share_url_description": "<b>Любы</b>, выкарыстоўваючы гэты адрас і прыватны ключ, можа <b>спампоўваць</b> вашы файлы праз <b>браўзер Tor</b>: <img src='{}' />",
"gui_share_url_public_description": "<b>Любы</b>, які выкарыстоўвае гэты адрас OnionShare, можа <b>спампоўваць</b> вашы файлы праз <b>браўзер Tor</b>: <img src='{}' />",
"gui_website_url_description": "<b>Любы</b>, выкарыстоўваючы гэты адрас і прыватны ключ, можа <b>наведаць</b> ваш сайт праз <b>браўзер Tor</b>: <img src='{}' />",

View File

@ -1,68 +1,68 @@
{
"not_a_readable_file": "Файлът {0:s} няма права за четене.",
"other_page_loaded": "Зареден адрес",
"close_on_autostop_timer": "Услугата е изключена поради достигнато време за автоматично изключване",
"closing_automatically": "Изтеглянето е завършено, услугата е спряна",
"large_filesize": "Предупреждение: изпращането са голям обем от данни може да отнеме часове",
"not_a_readable_file": "{0:s} не е четаем файл.",
"other_page_loaded": "Адресът е зареден",
"close_on_autostop_timer": "Спряно, защото автоматично спиращият таймер приключи",
"closing_automatically": "Спряно, защото свалянето приключи",
"large_filesize": "Предупреждение: изпращане на голям дял може да отнеме часове",
"systray_menu_exit": "Изход",
"gui_drag_and_drop": "Плъзнете и пуснете тук файловете и папките, които искате да споделяте",
"gui_add": "Добавяне",
"gui_drag_and_drop": "Плъзнете и пуснете файлове и папки за да започнете споделяне",
"gui_add": "Добавете",
"gui_choose_items": "Изберете",
"gui_share_start_server": "Споделяне",
"gui_share_stop_server": "Изключване на споделянето",
"gui_share_stop_server_autostop_timer": "Изключване на споделянето ({})",
"gui_receive_start_server": "Включване на режим получаване",
"gui_receive_stop_server": "Изключване на режим получаване",
"gui_receive_stop_server_autostop_timer": "Изключване на режим получаване (остават {})",
"gui_copy_url": "Копиране на адреса",
"gui_canceled": "Отказано",
"gui_copied_url_title": "Адресът на OnionShare е копиран",
"gui_copied_url": "Адресът на OnionShare е копиран",
"gui_please_wait": "Включване… Щракнете за отменяне.",
"gui_share_start_server": "Започнете споделянето",
"gui_share_stop_server": "Спрете споделянето",
"gui_share_stop_server_autostop_timer": "Спрете споделянето ({} остават)",
"gui_receive_start_server": "Стартирайте получаващ режим",
"gui_receive_stop_server": "Спрете получаващия режим",
"gui_receive_stop_server_autostop_timer": "Спрете получаващия режим ({} остават)",
"gui_copy_url": "Копирайте адрес",
"gui_canceled": "Отменен",
"gui_copied_url_title": "OnionShare адресът е копиран",
"gui_copied_url": "OnionShare адресът е копиран към клипборда",
"gui_please_wait": "Започва... кликни за отменяне.",
"gui_quit_warning_quit": "Изход",
"zip_progress_bar_format": "Компресиране: %p%",
"zip_progress_bar_format": "Компресира: %p%",
"gui_settings_window_title": "Настройки",
"gui_settings_autoupdate_label": "Проверка за обновяване",
"gui_settings_autoupdate_option": "Известие при ново издание",
"gui_settings_autoupdate_label": "Провери за нова версия",
"gui_settings_autoupdate_option": "Уведоми ме, когато е налице нова версия",
"gui_settings_autoupdate_timestamp": "Последна проверка: {}",
"gui_settings_autoupdate_timestamp_never": "Никога",
"gui_settings_autoupdate_check_button": "Проверяване за ново издание",
"gui_settings_connection_type_label": "Как OnionShare да се свързва с мрежата на Тор?",
"gui_settings_connection_type_bundled_option": "Използване на вграденото в OnionShare издание на Тор",
"gui_settings_connection_type_automatic_option": "Опитване на автоматична настройка чрез четеца Тор",
"gui_settings_connection_type_control_port_option": "Свързване, чрез порт за управление",
"gui_settings_connection_type_socket_file_option": "Свързване, чрез файл на сокет",
"gui_settings_connection_type_test_button": "Проверка на връзката към Тор",
"gui_settings_control_port_label": "Порт за управление",
"gui_settings_socket_file_label": "Файл на сокет",
"gui_settings_socks_label": "Порт на SOCKS",
"gui_settings_authenticate_no_auth_option": "Без удостоверяване, нито с бисквитка",
"gui_settings_autoupdate_check_button": "Проверете за нова версия",
"gui_settings_connection_type_label": "Как OnionShare да се свържe с Тор?",
"gui_settings_connection_type_bundled_option": "Използвай Тор версия, вградена в OnionShare",
"gui_settings_connection_type_automatic_option": "Опит за автоматична конфигурация с Тор браузъра",
"gui_settings_connection_type_control_port_option": "Свържете, използвайки контролен порт",
"gui_settings_connection_type_socket_file_option": "Свържете се използвайки сокет",
"gui_settings_connection_type_test_button": "Тест на връзката с Тор",
"gui_settings_control_port_label": "Контролен порт",
"gui_settings_socket_file_label": "Сокет файл",
"gui_settings_socks_label": "SOCKS порт",
"gui_settings_authenticate_no_auth_option": "Без автентикация или cookie автентикация",
"gui_settings_authenticate_password_option": "Парола",
"gui_settings_password_label": "Парола",
"gui_settings_tor_bridges": "Свързване, чрез мостове на Тор?",
"gui_settings_meek_lite_expensive_warning": "Внимание: Проектът Тор бива таксуван при всяко ползване на мостовете meek-azure.<br><br>За това ги използвайте само ако не можете да се свържете с Тор директно, чрез obfs4 или обикновени мостове.",
"gui_settings_tor_bridges_invalid": "Нито един от въведените от вас мостове не работи. Проверете ги или добавете други.",
"gui_settings_tor_bridges": "Поддръжка на Тор мост",
"gui_settings_meek_lite_expensive_warning": "Предупреждение: meek_lite мостовета са много скъпи за проекта Тор. <br> <br> Използвайте ги само, ако не можете да се свържете пряко чрез obfs4 транспорти или други нормални мостове с Тор.",
"gui_settings_tor_bridges_invalid": "Нито един от добавените от Вас мостове работят.\nПроверете ги отново или добавете други.",
"gui_settings_button_save": "Запазване",
"gui_settings_button_cancel": "Отказ",
"gui_settings_button_help": "Помощ",
"settings_error_unknown": "Грешка при свързване с контролер на Тор поради грешни настройки.",
"settings_error_automatic": "Грешка при свързване с контролер на Тор. Четецът Тор (достъпен от torproject. org) работи ли?",
"settings_error_socket_port": "Грешка при свързване с контролер на Тор в {}:{}.",
"settings_error_socket_file": "Грешка при свързване с контролер на Тор чрез файла на сокет {}.",
"settings_error_auth": "Свързано с {}:{}, грешка при удостоверяване. Може би това не е контролер на Тор?",
"settings_error_missing_password": "Свързан с контролер на Тор, но той изисква парола за удостоверяване.",
"settings_error_unreadable_cookie_file": "Свързан с Тор контролер, но паролата е грешна, или на потребителя ви да не е позволено да чете файла с бисквитките.",
"settings_error_bundled_tor_not_supported": "Изданието Тор, вградено в OnionShare не работи в режим на разработчик под Windows или macOS.",
"settings_error_bundled_tor_timeout": "Установяването на връзка с мрежата на Тор отнема твърде много време. Уверете се, че има връзка с интернет и системният часовник е верен.",
"settings_error_bundled_tor_broken": "OnionShare не може да се свърже с Тор във фонов режим:\n{}",
"settings_test_success": "Свързан с контролер на Тор.\n\nИздание на Тор: {}\nПоддържа временни услуги на Onion: {}\nПоддържа удостоверяване на клиента: {}\nПоддържа следващо поколение адреси .onion: {}.",
"error_tor_protocol_error": "Възникнала е грешка в Тор: {}",
"connecting_to_tor": "Свързване към мрежата на Тор",
"update_available": "Има ново издание на OnionShare. За да го изтеглите <a href='{}'>щракнете тук</a>.<br><br>Използвате {}, последно издание {}.",
"update_error_check_error": "Грешка при проверка за ново издание: вероятно не сте свързани към Тор или страницата на OnionShare е недостъпна.",
"update_error_invalid_latest_version": "Грешка при проверка за ново издание: страницата на OnionShare съобщава, че новото издание е неразпознато: '{}'…",
"update_not_available": "Изпозвате псоледното издание на OnionShare.",
"gui_tor_connection_ask": "За да бъде възстановена връзката с Тор да бъдат ли отворени настройките?",
"settings_error_unknown": "Не мога да се свържа с Тор контролера, защото Вашите настройки не правят смисъл.",
"settings_error_automatic": "Не мога да се свържа с Тор контролера. Стартиран ли е Тор браузерът във фонов режим (достъпен от torproject. org)?",
"settings_error_socket_port": "Не мога да се свържа с Тор контролера в {}:{}.",
"settings_error_socket_file": "Не мога да се свържа с Тор контролера, използвайки сокет файл {}.",
"settings_error_auth": "Свързан с {}:{}, но не може да се идентифицира. Може би това не е Тор контролер?",
"settings_error_missing_password": "Свързан с Тор контролер, но той изисква парола за идентификация.",
"settings_error_unreadable_cookie_file": "Свързан с Тор контролер, но паролата може да е грешна, или на Вашият потребител да не е позволено да чете бисквитката файл.",
"settings_error_bundled_tor_not_supported": "Използване на Тор версия, идваща с OnionShare не работи в режим на разработчик под Windows или macOS.",
"settings_error_bundled_tor_timeout": "Oтнема прекалено дълго време да се свържа с Тор. Може би не сте свързани с интернет или системният часовник е неточен?",
"settings_error_bundled_tor_broken": "OnionShare не можа да се свърже с Тор във фонов режим:\n{}",
"settings_test_success": "Свързан с Тор контролер.\n\nТор версия: {}\nПоддържа ephemeral onion services: {}\nПоддържа клиент автентикация: {}\nПоддържа следваща генерация .onion адреси: {}",
"error_tor_protocol_error": "Станала е грешка с Тор: {}",
"connecting_to_tor": "Свързване към Тор мрежата",
"update_available": "Има нов OnionShare. <a href='{}'>Кликнете тук</a>, за да го изтеглите.<br><br>Вие използвате {}, а последният е {}.",
"update_error_check_error": "Не мога да проверя за нови версии: OnionShare сайтът казва, че не разпознава последната версия '{}'…",
"update_error_invalid_latest_version": "Не мога да проверя за нова версия: Може би не сте свързани към Тор или OnionShare уебсайтът е изключен?",
"update_not_available": "Вие изпозвате псоледната версия на OnionShare.",
"gui_tor_connection_ask": "Отворете настройките, за да възстановите връзката с Тор?",
"gui_tor_connection_ask_open_settings": "Да",
"gui_tor_connection_ask_quit": "Изход",
"gui_tor_connection_error_settings": "Опитайте да промените в настройките как OnionShare се свързва с Тор.",
@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Връзката с Тор е прекъсната.",
"gui_server_started_after_autostop_timer": "Изчакването за автоматично изключване е изтекло преди сървърът да се включи. Споделете отново.",
"gui_server_autostop_timer_expired": "Изчакването за автоматично изключване е изтекло. Променете времето и споделете отново.",
"share_via_onionshare": "Споделяне чрез OnionShare",
"gui_share_url_description": "<b>Всеки</b>, имащ адреса на OnionShare и частния ключ може да <b>изтегли</b> файловете чрез <b>Четеца Тор</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Всеки</b>, имащ адреса на OnionShare и частния ключ може да <b>изпрати</b> файлове на това устройство чрез <b>Четеца Тор</b>: <img src='{}' />",
"gui_url_label_persistent": "Този дял няма да спре автоматично.<br><br>Всеки следващ дял ще използва повторно адреса. (За да използвате еднократни адреси, изключете \"Използвайте постоянен адрес\" в настройките)",
@ -85,10 +84,10 @@
"gui_status_indicator_receive_started": "Получаване",
"gui_file_info": "{} файла, {}",
"gui_file_info_single": "{} файл, {}",
"history_in_progress_tooltip": "{} в изпълнение",
"history_completed_tooltip": "{} завършени",
"gui_receive_mode_warning": "Режимът на получаване дава възможност на други хора да качват файлове на вашето устройство.<br><br><b>Някои файлове, ако бъдат отворени, биха могли да поемат контрола върху устройството ви. Отваряйте файлове само от хора, на които имате доверие, или ако знаете какво правите.</b>",
"systray_page_loaded_title": "Отворена е страница",
"history_in_progress_tooltip": "{} е в прогрес",
"history_completed_tooltip": "{} завършено",
"gui_receive_mode_warning": "Режим на приемане позволява на хора да качват файлове на Вашия компютър.<br><br><b>Някои файлове могат потенциално да поемат контрол над компютъра Ви, ако ги отворите. Отваряйте единствено неща от хора, на които вярвате или ако знаете какво правите.</b>",
"systray_page_loaded_title": "OnionShare страницата е заредена",
"gui_settings_language_label": "Предпочитан език",
"gui_settings_language_changed_notice": "За да влезе в сила промяната на езика е необходим рестарт на OnionShare.",
"incorrect_password": "Невярна парола",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "টর এর সাথে যোগাযোগ বিচ্ছিন্ন হয়ে গেছে।",
"gui_server_started_after_autostop_timer": "সার্ভার শুরু হওয়ার আগেই স্বয়ংক্রিয়-বন্ধ ঘড়ির সময় শেষ হয়ে গেছে। অনুগ্রহ করে আবার নতুনভাবে শেয়ার করো।",
"gui_server_autostop_timer_expired": "অটো-স্টপ টাইমারের সময় ইতিমধ্যেই শেষ হয়ে গিয়েছে। দয়া করে, শেয়ারিং শুরু করতে নতুনভাবে সময় সেট করো।",
"share_via_onionshare": "OnionShare এর মাধমে শেয়ার করো",
"gui_share_url_description": "যার কাছেই এই ঠিকানা এবং ব্যক্তিগত কী থাকবে সে ই <b>টর ব্রাউজার</b> ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে <b>যে কেউ</b> আপনার ফাইল(গুলি) <b>ডাউনলোড</b> করতে পারবে:<img src='{}' />",
"gui_receive_url_description": "যার কাছেই এই ঠিকানা এবং ব্যক্তিগত কী থাকবে সে ই <b>টর ব্রাউজার</b> ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে <b>যে কেউ</b> আপনার কম্পিউটারে ফাইল <b>আপলোড</b> করতে পারবে:<img src='{}' />",
"gui_url_label_persistent": "এই শেয়ার অটো-স্টপ হবে না ।<br><br> কারণ, প্রতিটি শেয়ার এই একই স্থায়ী ঠিকানা ব্যবহার করে। (অস্থায়ী ঠিকানা ব্যবহার করতে, সেটিংসে গিয়ে 'স্থায়ী ঠিকানা ব্যবহার করুন' অপশনটির টিক চিহ্ন উঠিয়ে দিন)",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "S'ha perdut la connexió amb Tor.",
"gui_server_started_after_autostop_timer": "El temporitzador de finalització automàtica ha acabat abans que s'iniciés el servidor. Torneu a compartir-ho.",
"gui_server_autostop_timer_expired": "El temporitzador de finalització automàtica ja s'ha acabat. Ajusteu-lo per a poder compartir.",
"share_via_onionshare": "Comparteix-ho amb l'OnionShare",
"gui_share_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>baixar</b> els vostres fitxers fent servir el <b>Navegador Tor</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>pujar</b> fitxers al vostre ordinador fent servir el <b>Navegador Tor</b>: <img src='{}' />",
"gui_url_label_persistent": "Aquest recurs no es tancarà ell sol.<br><br>Cada recurs compartit reutilitzarà aquesta mateixa adreça. (Si voleu crear una adreça diferent per a cada recurs, desactiveu l'opció «Utilitza una adreça persistent» a les opcions.)",

View File

@ -72,7 +72,6 @@
"gui_server_autostop_timer_expired": "Demê otomotîk-sekinandin ji berê de qediya. Ji kerema xwe dem dirêj bike ji bo weşan destpê bike.",
"gui_server_autostart_timer_expired": "Demê pilankirî derbas bû. Ji kerema xwe dîsa dirêj bike ji bo weşan destpê bike.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Demê otomatîk-qedandin nikare ji demê otomatîk-despêkirin kêmtir and wek heve bibe. Ji kerema xwe demê wê dirêjtir bike ji bo weşan despê bike.",
"share_via_onionshare": "Bi rêya OnionShare parve bike",
"gui_share_url_description": "<b>Her kesî</b> bi vê malpera OnionShare bikare <b>belgeryên te bi</b> TorBrowser <b>berjêr bike</b>: <img src='{}' />",
"gui_website_url_description": "<b>Her kesî</b> bi vê malpera OnionShare dikare <b>were li ser</b> malpera te <b>dema TorBrowser bikar tîne</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Her kesekî</b> bi vê malpera OnionShare dikare <b>belgeran li ser komputera te bi kar anîna</b> Tor Broweser <b>bar bike</b>: <img src='{}' />",

View File

@ -108,7 +108,6 @@
"moat_captcha_error": "Nesprávné řešení. Zkuste to prosím znovu.",
"moat_solution_empty_error": "Zadejte znaky z obrázku",
"mode_tor_not_connected_label": "OnionShare není připojen k síti Tor",
"share_via_onionshare": "Sdílet přes OnionShare",
"gui_url_instructions_public_mode": "Odeslat adresu OnionShare uvedenou níže:",
"gui_client_auth_instructions": "Dále zašlete soukromý klíč pro umožnění přístupu k Vaší službě OnionShare :",
"gui_status_indicator_chat_stopped": "Připraveno chatovat",

View File

@ -64,7 +64,6 @@
"gui_tor_connection_lost": "Der er ikke oprettet forbindelse til Tor.",
"gui_server_started_after_autostop_timer": "Timeren med automatisk stop løb ud inden serveren startede. Opret venligst en ny deling.",
"gui_server_autostop_timer_expired": "Timeren med automatisk stop er allerede løbet ud. Juster den venligst for at begynde at dele.",
"share_via_onionshare": "Del via OnionShare",
"gui_copied_url_title": "Kopierede OnionShare-adresse",
"gui_url_label_persistent": "Delingen stopper ikke automatisk.<br><br>Enhver efterfølgende deling bruger den samme adresse igen (hvis du vil bruge engangsadresser, så deaktivér \"Brug vedvarende adresse\", i indstillingerne).",
"gui_url_label_stay_open": "Delingen stopper ikke automatisk.",

View File

@ -66,7 +66,6 @@
"gui_tor_connection_ask_open_settings": "Ja",
"gui_tor_connection_error_settings": "Versuche in den Einstellungen zu ändern, wie sich OnionShare mit dem Tor-Netzwerk verbindet.",
"gui_tor_connection_canceled": "Konnte keine Verbindung zu Tor herstellen.\n\nStelle sicher, dass du mit dem Internet verbunden bist, öffne OnionShare erneut und richte die Verbindung zu Tor ein.",
"share_via_onionshare": "Teilen mit OnionShare",
"gui_share_url_description": "<b>Jeder</b> kann mit dieser OnionShare-Adresse und dem privaten Schlüssel deine Dateien mit dem <b>Tor Browser</b> <b>herunterladen</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse und dem privaten Schlüssel kann mit dem <b>Tor Browser</b> Dateien auf deinen Computer <b>hochladen</b>: <img src='{}' />",
"gui_url_label_persistent": "Diese Freigabe wird nicht automatisch beendet.<br><br>Jede folgende Freigabe wird die Adresse erneut nutzen. (Um Adressen nur einmal zu nutzen, schalte „Nutze beständige Adressen“ in den Einstellungen aus.)",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Έγινε αποσύνδεση από το δίκτυο του Tor.",
"gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.",
"gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.",
"share_via_onionshare": "Μοιραστείτε μέσω OnionShare",
"gui_share_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare και το ιδιωτικό κλειδί μπορεί να <b>κατεβάσει</b> τα αρχεία σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare και το ιδιωτικό κλειδί μπορεί να <b>ανεβάσει</b> αρχεία στον υπολογιστή σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.<br><br>Όσοι μοιράζονται αρχεία μαζί σας θα μπορέσουν να ξαναχρησιμοποιήσουν αυτή τη διεύθυνση αργότερα. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "The scheduled time has already passed. Please adjust it to start sharing.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "The auto-stop time can't be the same or earlier than the auto-start time. Please adjust it to start sharing.",
"gui_server_doesnt_support_stealth": "Sorry, this version of Tor doesn't support stealth (client authentication). Please try with a newer version of Tor, or use 'public' mode if it doesn't need to be private.",
"share_via_onionshare": "Share via OnionShare",
"gui_share_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
"gui_share_url_public_description": "<b>Anyone</b> with this OnionShare address can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
"gui_website_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>visit</b> your website using the <b>Tor Browser</b>: <img src='{}' />",
@ -151,6 +150,7 @@
"history_requests_tooltip": "{} web requests",
"error_cannot_create_data_dir": "Could not create OnionShare data folder: {}",
"gui_receive_mode_warning": "Receive mode lets people upload files to your computer.<br><br><b>Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.</b>",
"gui_chat_mode_explainer": "Chat mode lets you chat interactively with others, in Tor Browser.<br><br><b>Chat history is not stored in OnionShare. The chat history will disappear when you close Tor Browser.</b>",
"gui_open_folder_error": "Could not open the folder with xdg-open. The file is here: {}",
"gui_settings_language_label": "Language",
"gui_settings_theme_label": "Theme",
@ -205,7 +205,7 @@
"gui_close_tab_warning_receive_description": "Close tab that is receiving files?",
"gui_close_tab_warning_chat_description": "Close tab that is hosting a chat server?",
"gui_close_tab_warning_website_description": "Close tab that is hosting a website?",
"gui_close_tab_warning_close": "Close",
"gui_close_tab_warning_close": "Ok",
"gui_close_tab_warning_cancel": "Cancel",
"gui_quit_warning_title": "Quit OnionShare?",
"gui_quit_warning_description": "Quit and close all tabs, even though sharing is active in some of them?",

View File

@ -54,7 +54,6 @@
"gui_tor_connection_lost": "Se desconectó de Tor.",
"gui_server_started_after_autostop_timer": "El temporizador de parada automática expiró antes de que se iniciara el servidor. Por favor vuelve a compartirlo.",
"gui_server_autostop_timer_expired": "El temporizador de parada automática ya expiró. Por favor ajústalo para comenzar a compartir.",
"share_via_onionshare": "Compartir con OnionShare",
"gui_share_url_description": "<b>Cualquiera</b> con esta dirección OnionShare y la clave privada puede <b>descargar</b> tus archivos usando el <b>Navegador Tor</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Cualquiera</b> con esta dirección de OnionShare y clave privada puede <b>subir</b> archivos a tu ordenador usando el <b>Navegador Tor</b>: <img src='{}' />",
"gui_url_label_persistent": "Este recurso compartido no se detendrá automáticamente.<br><br>Cada recurso compartido subsiguiente reutilizará la dirección. (Para usar direcciones una sola vez, desactiva la opción «Usar dirección persistente» en la configuración.)",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "اتصال با Tor قطع شده است.",
"gui_server_started_after_autostop_timer": "زمان‌سنج توقف خودکار، قبل از آغاز کارساز به پایان رسید. لطفا یک هم‌رسانی جدید درست کنید.",
"gui_server_autostop_timer_expired": "زمان‌سنج توقف خودکار به پایان رسید. لطفا برای آغاز هم‌رسانی آن را تنظیم کنید.",
"share_via_onionshare": "هم‌رسانی با OnionShare",
"gui_share_url_description": "<b>هر کس</b> با این نشانی OnionShare و کلید خصوصی می‌تواند توسط <b>مرورگر Tor </b> فایل‌های شما را <b>بارگیری کند‮</b>:<img src='{}' />",
"gui_receive_url_description": "<b>هر کس</b> با این نشانی OnionShare و کلید خصوصی می‌تواند توسط <b>مرورگر Tor </b> فایل‌هایی را بر روی رایانه شما <b>بارگذاری کند‮</b>:<img src='{}' />",
"gui_url_label_persistent": "این هم‌رسانی به صورت خودکار متوقف نمی‌شود.<br><br>هم‌رسانی‌های بعدی هم از همین نشانی استفاده می‌کنند. (برای استفاده از نشانی‌های یک‌بارمصرف، گزینه «استفاده از آدرس پایا» را در تنظیمات غیرفعال کنید.)",

View File

@ -71,7 +71,6 @@
"gui_tor_connection_lost": "Tor-yhteys katkaistu.",
"gui_server_started_after_autostop_timer": "Automaattinen loputusajastin pysäytti toiminnon ennen palvelimen käynnistymistä. Luo uusi jako.",
"gui_server_autostop_timer_expired": "Automaattinen pysäytysajastin päättyi jo. Säädä se jaon aloittamiseksi.",
"share_via_onionshare": "Jaa OnionSharella",
"gui_share_url_description": "<b>Kaikki</b> joilla on tämä OnionShare-osoite voivat <b>ladata</b> tiedostojasi käyttämällä <b>Tor-selainta</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Kaikki</b> joilla on tämä OnionShare-osoite voivat <b>lähettää</b>tiedostoja tietokoneellesi käyttämällä <b>Tor-selainta</b>: <img src='{}' />",
"gui_url_label_persistent": "Tämä jako ei pysähdy automaattisesti.<br><br>Jokainen seuraava jako käyttää osoitetta uudelleen. (Jos haluat käyttää kertaluontoisia osoitteita, sammuta \"Käytä pysyvää osoitetta\" asetuksissa.)",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -58,7 +58,6 @@
"gui_tor_connection_ask_open_settings": "Oui",
"gui_tor_connection_ask_quit": "Fermer",
"gui_tor_connection_lost": "Vous êtes déconnecté de Tor.",
"share_via_onionshare": "Partager avec OnionShare",
"gui_share_url_description": "<b>Quiconque</b> disposant de cette adresse OnionShare et de cette clé privée peut <b>télécharger</b> vos fichiers en utilisant le <b>Navigateur Tor</b> : <img src='{}' />",
"gui_receive_url_description": "<b>Quiconque</b> disposant de cette adresse OnionShare et de cette clé privée peut <b>téléverser</b> des fichiers vers votre ordinateur en utilisant le <b>Navigateur Tor</b> : <img src='{}' />",
"gui_url_label_persistent": "Ce partage ne sarrêtera pas automatiquement.<br><br>Tout partage subséquent réutilisera ladresse. (Pour des adresses qui ne peuvent être utilisées quune fois, désactivez « Utiliser une adresse persistante » dans les paramètres.)",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Dícheangailte ó Tor.",
"gui_server_started_after_autostop_timer": "Bhí an t-amadóir uathstoptha caite sular thosaigh an freastalaí. Caithfidh tú comhroinnt nua a chruthú.",
"gui_server_autostop_timer_expired": "Tá an t-amadóir uathstoptha caite cheana. Caithfidh tú é a athshocrú sular féidir leat comhaid a chomhroinnt.",
"share_via_onionshare": "Comhroinn trí OnionShare",
"gui_share_url_description": "Tá <b>aon duine</b> a bhfuil an seoladh agus eochair phríobháideach seo OnionShare aige/aici in ann do chuid comhad a <b>íoslódáil</b> le <b>Brabhsálaí Tor</b>: <img src='{}' />",
"gui_receive_url_description": "Tá <b>aon duine</b> a bhfuil an seoladh agus eochair phríobháideach seo OnionShare aige/aici in ann comhaid a <b>uaslódáil</b> go dtí do ríomhaire le <b>Brabhsálaí Tor</b>: <img src='{}' />",
"gui_url_label_persistent": "Ní stopfaidh an chomhroinnt seo go huathoibríoch.<br><br>Úsáidfear an seoladh seo arís gach uair a dhéanfaidh tú comhroinnt. (Chun seoladh aon uaire a úsáid, múch \"Úsáid seoladh seasmhach\" sna socruithe.)",

View File

@ -72,7 +72,6 @@
"gui_server_autostop_timer_expired": "O temporizador de detención automática esgotouse. Configúrao para comezar a compartir.",
"gui_server_autostart_timer_expired": "A hora programada xa pasou. Configúraa para comezar a compartir.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "A hora de detención automática non pode ser a mesma ou anterior á hora de inicio. Configúraa para comezar a compartir.",
"share_via_onionshare": "Compartir vía OnionShare",
"gui_share_url_description": "<b>Calquera</b> con este enderezo OnionShare e chave privada pode <b>descargar</b> os teus ficheiros usando o <b>Tor Browser</b>: <img src='{}' />",
"gui_website_url_description": "<b>Calquera</b>con este enderezo OnionShare e chave privada pode <b>visitar</b> o teu sition web usando <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Calquera</b> con este enderezo OnionShare e chave privada pode <b>subir</b> ficheiros ó teu ordenador usando <b>Tor Browser</b>: <img src='{}' />",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -72,7 +72,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -71,7 +71,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -77,7 +77,6 @@
"gui_server_autostop_timer_expired": "Vrijeme timera za automatsko prekidanje je već isteklo. Za pokretanje dijeljenja, podesi vrijeme.",
"gui_server_autostart_timer_expired": "Planirano vrijeme je već prošlo. Za pokretanje dijeljenja, podesi vrijeme.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko prekidanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.",
"share_via_onionshare": "Dijeli putem OnionSharea",
"gui_share_url_description": "<b>Svatko</b> s ovom OnionShare adresom i privatnim ključem može <b>preuzeti</b> tvoje datoteke koristeći <b>Tor preglednik</b>: <img src='{}' />",
"gui_website_url_description": "<b>Svatko</b> s ovom OnionShare adresom i privatnim ključem može <b>posjetiti</b> tvoju web-stranicu koristeći <b>Tor preglednik</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Svatko</b> s ovom OnionShare adresom i privatnim ključem može <b>prenijeti</b> datoteke na tvoje računalo koristeći <b>Tor preglednik</b>: <img src='{}' />",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Terputus dari Tor.",
"gui_server_started_after_autostop_timer": "Timer berhenti otomatis habis sebelum server dimulai. Silakan buat pembagian baru.",
"gui_server_autostop_timer_expired": "Timer berhenti otomatis sudah habis. Silakan sesuaikan untuk mulai berbagi.",
"share_via_onionshare": "Bagikan via OnionShare",
"gui_share_url_description": "<b>Siapa saja</b> dengan alamat OnionShare ini dapat <b>mengunduh</b> berkas Anda menggunakan <b>Tor Browser</b>:<img src='{}' />",
"gui_receive_url_description": "<b>Siapa saja</b> dengan alamat OnionShare ini dapat <b>mengunggah</b> berkas ke komputer Anda menggunakan <b>Tor Browser</b>:<img src='{}' />",
"gui_url_label_persistent": "Pembagian ini tidak akan berhenti otomatis.<br><br>Setiap pembagian selanjutnya menggunakan lagi alamat tersebut. (Untuk menggunakan alamat sekali pakai, matikan \"Gunakan alamat persisten\" di pengaturan.)",

View File

@ -69,7 +69,6 @@
"gui_tor_connection_canceled": "Tókst ekki að tengjast Tor.\n\nGakktu úr skugga um að þú sért tengd/ur internetinu, opnaðu síðan aftur OnionShare og settu upp tengingu þess við Tor.",
"gui_tor_connection_lost": "Aftengt frá Tor.",
"gui_server_autostop_timer_expired": "Sjálfvirkri niðurtalningu er þegar lokið. Lagaðu hana til að hefja deilingu.",
"share_via_onionshare": "Deila með OnionShare",
"gui_share_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang og þennan einkalykil getur <b>sótt</b> skrárnar þínar með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang og einkalykil getur <b>sent skrár inn</b> á tölvuna þína með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
"gui_url_label_persistent": "Deiling þessarar sameignar mun ekki stöðvast sjálfvirkt.<br><br>Allar deilingar sem á eftir koma munu endurnýta vistfangið. (Til að nota eins-skiptis vistföng skaltu slökkva á \"Nota viðvarandi vistföng\" í stillingunum.)",

View File

@ -74,9 +74,8 @@
"gui_tor_connection_lost": "Disconnesso da Tor.",
"gui_server_started_after_autostop_timer": "Il timer ad arresto automatico si è fermato prima dell'avvio del server. Si prega di fare una nuova condivisione.",
"gui_server_autostop_timer_expired": "Il timer di arresto automatico è già scaduto. Si prega di modificarlo per iniziare la condivisione.",
"share_via_onionshare": "Condividi via OnionShare",
"gui_share_url_description": "<b>1 Tutti</b>2 con questo l'indirizzo di OnionShare possono <b>3 scaricare</b>4 i tuoi file usando <b>5 il Browser Tor</b>6: <img src='{}' />7",
"gui_receive_url_description": "<b>1 Tutti</b>2 con questo indirizzo OnionShare possono <b>3 caricare</b>4 file nel tuo computer usando <b>5 Tor Browser</b>6: <img src='{}' />7",
"gui_share_url_description": "<b>Tutti</b> con questo indirizzo OnionShare possono <b>scaricare</b> i tuoi file usando il <b>Browser Tor</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Tutti</b> con questo indirizzo OnionShare possono <b>caricare</b> file nel tuo computer usando il <b>Browser Tor</b>: <img src='{}' />",
"gui_url_label_persistent": "Questa condivisione non si arresterà automaticamente. <br> <br> Ogni successiva condivisione riutilizza l'indirizzo. (Per utilizzare indirizzi monouso, disattivare \"Usa indirizzo persistente\" nelle impostazioni.)",
"gui_url_label_stay_open": "Questa condivisione non si arresterà automaticamente.",
"gui_url_label_onetime": "Questa condivisione verrà interrotta dopo il primo completamento.",

View File

@ -72,7 +72,6 @@
"gui_tor_connection_lost": "Torから切断されました。",
"gui_server_started_after_autostop_timer": "サーバーが起動した前、自動停止タイマーがタイムアウトしました。再びファイル共有をして下さい。",
"gui_server_autostop_timer_expired": "自動停止タイマーはすでにタイムアウトしています。共有し始めるにはタイマーを調整して下さい。",
"share_via_onionshare": "OnionShareで共有する",
"gui_share_url_description": "このOnionShareアドレスと秘密鍵を持つ限り<b>誰でも</b>は<b>Tor Browser</b>を利用してこのファイルを<b>ダウンロードできます</b><img src='{}' />",
"gui_receive_url_description": "このOnionShareアドレスと秘密鍵を持つ限り<b>誰でも</b>は<b>Tor Browser</b>を利用してこのPCにファイルを<b>アップロードできます</b><img src='{}' />",
"gui_url_label_persistent": "このファイル共有には自動停止はありません。<br><br>その次の共有は同じアドレスを再利用します。1回限りのアドレスには、設定で「永続的アドレス」を無効にして下さい。",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -76,7 +76,6 @@
"gui_server_autostop_timer_expired": "កម្មវិធីកំណត់ម៉ោងបញ្ឈប់ដោយស្វ័យប្រវត្តិបានផុតពេលហើយ។ សូមកែតម្រូវវា ដើម្បីចាប់ផ្តើមការបញ្ជូន។",
"gui_server_autostart_timer_expired": "ពេលវេលាដែលបានកំណត់ កន្លងផុតទៅហើយ។ សូមកែតម្រូវវា ដើម្បីចាប់ផ្តើមការបញ្ជូន។",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "កម្មវិធីកំណត់ម៉ោងបញ្ឈប់ដោយស្វ័យប្រវត្តិមិនអាចដូចគ្នា ឬ មុនកម្មវិធីកំណត់ម៉ោងដោយស្វ័យប្រវត្តិចាប់ផ្តើមនោះទេ។ សូមកែតម្រូវវា ដើម្បីចាប់ផ្តើមការបញ្ជូន។",
"share_via_onionshare": "បញ្ជូនតាមរយៈ OnionShare",
"gui_share_url_description": "<b>នរណាក៏ដោយ</b> ដែលមានអាសយដ្ឋាន OnionShare និងកូនសោសម្ងាត់នេះ អាច <b>ទាញយក</b> ឯកសាររបស់អ្នកដោយប្រើ <b>កម្មវិធីរុករក Tor</b>: <img src='{}' />",
"gui_receive_url_description": "<b>នរណាក៏ដោយ</b> ដែលមានអាសយដ្ឋាន OnionShare និងកូនសោសម្ងាត់នេះ អាច <b>ផ្ទុកឡើង </b> ឯកសារទៅកុំព្យូទ័ររបស់អ្នក ដោយប្រើ <b>កម្មវិធីរុករក Tor</b>: <img src='{}' />",
"gui_url_label_persistent": "ការបញ្ជូននេះនឹងមិនឈប់ដោយស្វ័យប្រវត្តិទេ។<br><br>រាល់ការបញ្ជូនបន្តបន្ទាប់ ប្រើអាសយដ្ឋានដដែល។ (ដើម្បីប្រើអាសយដ្ឋានតែម្តង សូមបិទ \"ប្រើអាសយដ្ឋានជាប់ជានិច្ច\" នៅក្នុងការកំណត់។ )",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -76,7 +76,6 @@
"gui_server_autostop_timer_expired": "Automatinio sustabdymo laikmatis jau baigėsi. Sureguliuokite jį, kad pradėtumėte dalintis.",
"gui_server_autostart_timer_expired": "Numatytas laikas jau praėjo. Pakoreguokite jį, kad galėtumėte pradėti dalintis.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Automatinio sustabdymo laikas negali būti toks pat arba ankstesnis už automatinio paleidimo laiką. Sureguliuokite jį, kad galėtumėte pradėti dalytis.",
"share_via_onionshare": "Bendrinti per „OnionShare“",
"gui_share_url_description": "<b>Visi</b>, turintys šį „OnionShare“ adresą ir privatųjį raktą gali <b>atsisiųsti</b> jūsų failus, naudodamiesi <b>„Tor“Naršykle</b>: <img src='{}' />",
"gui_website_url_description": "<b>Kiekvienas</b>, turintis šį „OnionShare“ adresą ir privatųjį raktą, gali <b>apsilankyti</b> jūsų svetainėje naudodamas <b>„Tor“ naršyklę</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Kiekvienas</b>, turintis šį „OnionShare“ adresą ir privatųjį raktą, gali <b>įkelti</b> failus į jūsų kompiuterį naudodamas <b>„Tor“ naršyklę</b>: <img src='{}' />",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -71,7 +71,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Frakoblet fra Tor.",
"gui_server_started_after_autostop_timer": "Tidsavbruddsuret gikk ut før tjeneren startet. Lag en ny deling.",
"gui_server_autostop_timer_expired": "Tidsavbruddsuret har gått ut allerede. Juster det for å starte deling.",
"share_via_onionshare": "Del via OnionShare",
"gui_share_url_description": "<b>Alle</b> som har denne OnionShare-adressen og tilhørende privat nøkkel kan <b>Laste ned</b> filene dine ved bruk av <b>Tor-Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Alle</b> som har denne OnionShare-adressen og tilhørende privat nøkkel kan <b>Laste opp</b> filer til din datamaskin ved bruk av <b>Tor-Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Delingen vil ikke stoppe automatisk.<br><br>Hver påfølgende deling vil gjenbruke adressen. (For engangsadresser, skru av \"Bruk vedvarende adresse\" i innstillingene.)",

View File

@ -59,7 +59,6 @@
"gui_tor_connection_canceled": "Kon niet verbinden met Tor.\n\nZorg dat je met het internet verbonden bent, herstart OnionShare en configureer de verbinding met Tor.",
"gui_server_started_after_autostop_timer": "De auto-stop timer verliep, voordat de server startte. Maak een nieuwe share aan.",
"gui_server_autostop_timer_expired": "De auto-stop timer is al verlopen. Stel een nieuwe tijd in om te beginnen met delen.",
"share_via_onionshare": "Deel via OnionShare",
"gui_share_start_server": "Start met delen",
"gui_share_stop_server": "Stop met delen",
"gui_share_stop_server_autostop_timer": "Stop met Delen ({})",
@ -71,7 +70,7 @@
"gui_settings_meek_lite_expensive_warning": "Waarschuwing: De meek_lite bridges zijn erg kostbaar voor het Tor Project om uit te voeren. <br><br> Gebruik ze alleen als je niet direct met Tor kan verbinden, via obfs4 transports, of andere normale bridges.",
"gui_settings_tor_bridges_invalid": "Geen van de bridges die je hebt toegevoegd werken. Controleer ze of voeg andere toe.",
"gui_tor_connection_lost": "De verbinding met Tor is verbroken.",
"gui_share_url_description": "<b>1Iedereen</b>2 met dit OnionShare-adres kan je bestanden <b>3binnenhalen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />",
"gui_share_url_description": "<b>Iedereen</b> met dit OnionShare-adres kan je bestanden <b>binnenhalen</b> met de <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Iedereen</b> met dit OnionShare adres kan bestanden op je computer <b>plaatsen</b> met de <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Deze share stopt niet vanzelf. <br><br>Elke volgende share zal het adres hergebruiken. (Om eenmalige adressen te gebruiken, zet \"Gebruik vast adres\" uit in de settings.)",
"gui_url_label_stay_open": "Deze share stopt niet automatisch.",
@ -122,7 +121,7 @@
"gui_status_indicator_receive_scheduled": "Gepland…",
"gui_share_mode_autostop_timer_waiting": "Verzenden afronden…",
"gui_receive_mode_autostop_timer_waiting": "Wachten tot ontvangen klaar is…",
"gui_website_url_description": "<b>1Iedereen</b>2 met dit OnionShare-adres kan je bestanden <b>3bezoeken</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />",
"gui_website_url_description": "<b>Iedereen</b> met dit OnionShare-adres kan je bestanden <b>bezoeken</b> met de <b>Tor Browser</b>: <img src='{}' />",
"gui_website_mode_no_files": "Nog Geen Website Gedeeld",
"incorrect_password": "Foutief wachtwoord",
"error_cannot_create_data_dir": "Kon geen OnionShare datamap aanmaken: {}",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Odłączony od sieci Tor.",
"gui_server_started_after_autostop_timer": "Czas automatycznego zatrzymania upłynął przed uruchomieniem serwera. Utwórz nowy udział.",
"gui_server_autostop_timer_expired": "Czas automatycznego zatrzymania już upłynął. Dostosuj go, aby rozpocząć udostępnianie.",
"share_via_onionshare": "Udostępniaj przez OnionShare",
"gui_share_url_description": "<b>Każdy</b> z tym adresem OnionShare oraz kluczem prywatnym może <b>pobrać</b> Twoje pliki za pomocą przeglądarki <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Każdy</b> z tym adresem OnionShare oraz kluczem prywatnym może <b>przesyłać</b> pliki na Twój komputer za pomocą przeglądarki <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Ten udział nie zatrzyma się automatycznie.<br><br>Każdy kolejny udział ponownie użyje tego adresu. (Aby użyć adresów jednorazowych, wyłącz w ustawieniach „Użyj stałego adresu”.)",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Desconectado do Tor.",
"gui_server_started_after_autostop_timer": "O cronômetro de parada automática acabou antes que o servidor fosse iniciado. Por favor, faça um novo compartilhamento.",
"gui_server_autostop_timer_expired": "O cronômetro já esgotou. Por favor, ajuste-o para começar a compartilhar.",
"share_via_onionshare": "Compartilhar via OnionShare",
"gui_share_url_description": "<b>Qualquer pessoa</b> com este endereço e esta chave privada do OnionShare pode <b>baixar</b> seus arquivos usando o <b>Navegador Tor</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare e chave privada pode <b>carregar</b> arquivos no seu computador usando o <b>Navegador Tor</b>: <img src='{}' />",
"gui_url_label_persistent": "Este compartilhamento não vai ser encerrado automaticamente.<br><br>Todos os compartilhamentos posteriores reutilizarão este endereço. (Para usar um endereço novo a cada vez, desative a opção \"Usar o mesmo endereço\" nas configurações.)",
@ -253,6 +252,5 @@
"gui_autoconnect_bridge_detect_manual": "Selecione meu país para configurações de ponte manualmente",
"gui_autoconnect_could_not_connect_to_tor_api": "Não foi possível conectar-se à API do Tor. Verifique se você está conectado à Internet antes de tentar novamente.",
"gui_autoconnect_circumventing_censorship_starting_meek": "Estabelecendo uma ponte meek para fronting de domínio…",
"gui_close_tab_warning_chat_description": "Fechar a guia que está hospedando um servidor de bate-papo?",
"waitress_web_server_error": "Ocorreu um problema ao iniciar o servidor web"
"gui_close_tab_warning_chat_description": "Fechar a guia que está hospedando um servidor de bate-papo?"
}

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Desconectado da rede Tor.",
"gui_server_started_after_autostop_timer": "O cronómetro de paragem automática atingiu o tempo limite antes do servidor iniciar. Crie uma nova partilha.",
"gui_server_autostop_timer_expired": "O cronómetro de paragem automática expirou. Por favor, ajuste-o para começar a partilhar.",
"share_via_onionshare": "Partilhar via OnionShare",
"gui_share_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>descarregar</b> os seus ficheiros utilizando o <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>enviar</b> ficheiros para o seu computador utilizando o <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Esta partilha não vai ser encerrada automaticamente.<br><br>Todas as partilhas posteriores utilizarão este endereço. (Para usar endereços de uma só utilização, desative a opção \"Usar endereço persistente\" nas configurações.)",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Deconectat de la Tor.",
"gui_server_started_after_autostop_timer": "Cronometrul de oprire automată a expirat înainte de pornirea serverului. Vă rugăm să faceți o nouă partajare.",
"gui_server_autostop_timer_expired": "Timpul pentru cronometrul auto-stop a expirat deja. Vă rugăm să îl modificați pentru a începe distribuirea.",
"share_via_onionshare": "Partajați prin OnionShare",
"gui_share_url_description": "<b>Oricine</b> are această adresă OnionShare poate <b>descărca</b> fișierele dvs. folosind <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Oricine</b> are această adresă OnionShare poate <b>încărca</b> fișiere pe computerul dvs. folosind <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Această partajare nu se va opri automat. <br> <br> Fiecare acțiune ulterioară reutilizează adresa. (Pentru a utiliza adrese unice, dezactivați „Utilizați adresa persistentă” din setări.)",

View File

@ -73,7 +73,6 @@
"gui_tor_connection_lost": "Сеть Tor не подключена.",
"gui_server_started_after_autostop_timer": "Время стоп-таймера истекло до того, как сервер был запущен. Пожалуйста, отправьте файлы заново.",
"gui_server_autostop_timer_expired": "Время стоп-таймера истекло. Пожалуйста, отрегулируйте его для начала отправки.",
"share_via_onionshare": "Поделиться через OnionShare",
"gui_share_url_description": "<b>Кто угодно</b> c этим адресом OnionShare и секретным ключом может <b>скачать</b> Ваши файлы при помощи <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Кто угодно</b> c этим адресом OnionShare и секретным ключом может <b>загрузить</b> файлы на ваш компьютер с помощью<b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Эта отправка не будет завершена автоматически.<br><br>Каждая последующая отправка будет повторно использовать данный адрес. (Чтобы использовать одноразовый адрес, отключите опцию \"Использовать устаревший адрес\" в настройках.)",

View File

@ -115,8 +115,6 @@
"gui_server_autostop_timer_expired": "",
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -72,7 +72,6 @@
"gui_server_autostop_timer_expired": "Časovač automatického zastavenia už vypršal. Upravte ho tak, aby sa začal zdieľať.",
"gui_server_autostart_timer_expired": "Plánovaný čas už uplynul. Upravte ho tak, aby sa začal zdieľať.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Čas automatického zastavenia nemôže byť rovnaký alebo skorší ako čas automatického spustenia. Upravte ho, aby ste mohli začať zdieľať.",
"share_via_onionshare": "Zdieľať cez OnionShare",
"gui_share_url_description": "<b>Ktokoľvek</b> s touto adresou OnionShare si môže <b>stiahnuť</b> vaše súbory pomocou <b>Tor Browser</b>: <img src='{}' />",
"gui_website_url_description": "<b>Ktokoľvek</b> s touto adresou OnionShare môže <b>navštíviť</b> váš web pomocou <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Ktokoľvek</b> s touto adresou OnionShare môže <b>nahrať</b> súbory do vášho počítača pomocou <b>Tor Browser</b>: <img src='{}' />",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -72,7 +72,6 @@
"gui_tor_connection_lost": "haijaunganishwa na Tor.",
"gui_server_started_after_autostop_timer": "Auto-stop timer imetoka kabla haijahifadhiwa. tafadhali hakikisha unasambaza.",
"gui_server_autostop_timer_expired": "Auto-stop timer tayari imetoka. tafadhali sogeza ili uanze kusambaza.",
"share_via_onionshare": "sambaza kupitia OnionShare",
"gui_share_url_description": "<b>yeyote</b>mwenye anuani ya OnionShare na private key anaweza <b>kupakua</b>kwa kutumia faili lako la <b>kivinjari cha Tor</b>: <img src='{}' />",
"gui_receive_url_description": "<b> yeyote </b>: mwenye anuani ya OnionShare na private key anaweza <b> kupakia </b> mafaili kwenye kompyuta yako kwa kutumia <b> Tor Browser </b>:<img src='{}' />",
"gui_url_label_persistent": "ukisambaza haiwezi kusimama, <br><br> na kila utakapotumia itahitaji utumie tna anuani. ( ili kutumia anuani ya moja kwa moja, zima \"tumia anuani inayoendelea\" kwenye mpangilio.)",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "Koha e planifikuar kaloi tashmë. Ju lutemi, rregullojeni, që të fillohet të ndahet me të tjerë.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Koha për vetëndalje smund të jetë e njëjtë ose më herët se koha për vetënisje. Ju lutemi, që të fillohet ndarje me të tjerë, rregullojeni.",
"gui_server_doesnt_support_stealth": "Na ndjeni, ky version i Tor-it smbulon “stealth” (mirëfilltësim klientësh). Ju lutemi, provoni me një version më të ri të Tor-it, ose përdorni mënyrën 'public', nëse sështë e nevojshme të jetë private.",
"share_via_onionshare": "Ndajeni me të tjerë përmes OnionShare-it",
"gui_share_url_description": "<b>Cilido</b> me këtë adresë OnionShare dhe kyç privat mundet <b>të shkarkojë</b> kartelat tuaja duke përdorur <b>Shfletuesin Tor</b>: <img src='{}' />",
"gui_share_url_public_description": "<b>Cilido</b> me këtë adresë OnionShare mundet <b>të shkarkojë</b> kartelat tuaja duke përdorur <b>Shfletuesin Tor</b>: <img src='{}' />",
"gui_website_url_description": "<b>Cilido</b> me këtë adresë OnionShare dhe kyç privat mundet <b>të vizitojë</b> sajtin tuaj duke përdorur <b>Shfletuesin Tor</b>: <img src='{}' />",

View File

@ -77,7 +77,6 @@
"gui_server_autostop_timer_expired": "Tajmer automatskog zaustavljanja je već odbrojao. Podesi ga da bi započelo deljenje.",
"gui_server_autostart_timer_expired": "Predviđeno vreme je već prošlo. Podesi ga da bi započelo deljenje.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vreme automatskog zaustavljanja ne može biti isto ili ranije od vremena početka automatskog pokretanja. Podesi ga da bi započelo deljenje.",
"share_via_onionshare": "Deljenje pomoću OnionShare",
"gui_share_url_description": "<b>Svako</b> sa ovom OnionShare adresom i privatnim ključem može <b>preuzeti</b> tvoje datoteke koristeći <b>Tor Browser</b>: <img src='{}' />",
"gui_website_url_description": "<b>Bilo ko</b> sa ovom OnionShare adresom i privatnim ključem može <b>posetiti</b> tvoju web-stranicu koristeći <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Bilo ko</b> sa ovom OnionShare adresom i privatnim ključem može <b>poslati</b> datoteke na tvoj računar koristeći <b>Tor Browser</b>: <img src='{}' />",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "Frånkopplad från Tor.",
"gui_server_started_after_autostop_timer": "Tiden för den automatiska stopp-tidtagaren löpte ut innan servern startades.\nGör en ny delning.",
"gui_server_autostop_timer_expired": "Den automatiska stopp-tidtagaren har redan löpt ut. Justera den för att starta delning.",
"share_via_onionshare": "Dela med OnionShare",
"gui_share_url_description": "<b>Vem som helst</b> med denna OnionShare-adress och privata nyckel kan <b>ladda ner</b> dina filer med hjälp av <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Alla</b> med denna OnionShare-adress och privata nyckel kan <b>ladda upp</b> filer till din dator med <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Denna delning kommer inte automatiskt att avslutas.<br>< br>Varje efterföljande delning återanvänder adressen. (För att använda engångsadresser, stäng av \"Använd beständig adress\" i inställningarna.)",

View File

@ -76,7 +76,6 @@
"gui_server_autostop_timer_expired": "Tayari muda wa auto-stop timer umekwiasha. Tafadhali rekebisha na uanze kusambaza.",
"gui_server_autostart_timer_expired": "Wakati uliopangwa tayari umepita. Tafadhali irekebishe ili kuanza kusambaza.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Muda wa kuisha hauwezi kuwa sawa na muda wa kuanza. Tafadhali rekebisha ili kuanza kusambaza.",
"share_via_onionshare": "Sambaza kupitia OnionShare",
"gui_share_url_description": "<b>Yeyote</b> mwenye hizi anwani za OnionShare pamoja na alama za kipekee binafsi anaweza <b>kupakua</b> mafaili yako kwa kutumia<b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Yeyote</b> mwenye hii anwani ya OnionShare na private key anaweza<b>oakia</b> mafaili katika kompyuta yako kwa kutumia <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Hii anuani inaweza kusimama.<br><br>Hivyo unaweza kutumia baadae. (Unaweza kutumia mara moja , zima halafu tumia anuani inayoendelea kwenye mpangilio.)",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -76,7 +76,6 @@
"gui_server_autostop_timer_expired": "స్వయంచాలితంగా ఆగు సమయ సూచీ సమయాతీతమయిపోయినది. పంచుకోవడం మొదలుపెట్టడానికి దానిని నవీకరించండి.",
"gui_server_autostart_timer_expired": "నిర్ణీత సమయం ఇప్పటికే దాటిపోయింది. పంచుకోవడం ప్రారంభించడం కొరకు దయచేసి దానిని నవీకరించండి.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "స్వయంచాలక ఆగు సమయం అనేది స్వయంచాలక ప్రారంభ సమయంతో సమానంగా లేదా అంతకు ముందు ఉండకూడదు. పంచుకోవడం ప్రారంభించడం కొరకు దయచేసి దానిని నవీకరించండి.",
"share_via_onionshare": "OnionShare చేయి",
"gui_share_url_description": "ఈOnionShare చిరునామా గల <b>ఎవరైనా</b> మీ దస్త్రాలను <b>Tor విహారిణి</b>తో <b>దింపుకోవచ్చు</b>: <img src='{}' />",
"gui_receive_url_description": "ఈOnionShare చిరునామా గల <b>ఎవరైనా</b> మీ దస్త్రాలను <b>Tor విహారిణి</b>తో <b>ఎక్కించుకోవచ్చు</b>:<img src='{}' />",
"gui_url_label_persistent": "ఈ పంచుకొనబడిన అంశం స్వయంచాలితంగా ఆపబడదు.<br><br>తదుపరి పంచుకోబడిన ప్రతి అంశం ఈ చిరునామాను మరల వాడుకుంటుంది. (ఒక్కసారికి మాత్రం వాడగలిగే చిరునామాలను వాడాలనుకుంటే, అమరికలలో \"నిరంతర చిరునామాను వాడు\"ని అచేతనం చేయండి.)",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -71,7 +71,6 @@
"gui_tor_connection_lost": "Tor bağlantısı kesildi.",
"gui_server_started_after_autostop_timer": "Otomatik durdurma sayacı, sunucu başlamadan önce sona erdi. Lütfen yeni bir paylaşım yapın.",
"gui_server_autostop_timer_expired": "Otomatik durdurma sayacı zaten sona ermiş. Paylaşımı başlatmak için sayacı ayarlayın.",
"share_via_onionshare": "OnionShare ile paylaş",
"gui_share_url_description": "Bu OnionShare adresine ve kişisel anahtara sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak dosyalarınızı <b>indirebilir</b>: <img src='{}' />",
"gui_receive_url_description": "Bu OnionShare adresine ve kişisel anahtara sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak dosyaları bilgisayarınıza <b>yükleyebilir</b>: <img src='{}' />",
"gui_url_label_persistent": "Bu paylaşım otomatik olarak durdurulmayacak.<br><br>Sonraki her paylaşımda adres yeniden kullanılır (bir kerelik adresleri kullanmak için, ayarlardan \"Kalıcı adres kullanılsın\" seçeneğini kapatın.)",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"gui_server_doesnt_support_stealth": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_share_url_public_description": "",
"gui_website_url_description": "",

View File

@ -76,7 +76,6 @@
"gui_server_autostop_timer_expired": "Час автостопу збіг. Налаштуйте його, щоб розпочати надсилання.",
"gui_server_autostart_timer_expired": "Запланований час збіг. Оновіть його, щоб почати надсилання.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Час автостопу не може бути однаковим або ранішим за час автозапуску. Налаштуйте його, щоб почати надсилання.",
"share_via_onionshare": "Поділитися через OnionShare",
"gui_share_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси та приватного ключа, може <b>завантажити</b> ваші файли, через <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси та приватного ключа, може <b>вивантажити</b> файли на ваш комп'ютер через <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "Це надсилання не припинятиметься автоматично.<br><br>Кожне наступне надсилання використовує ту ж адресу. (Для використання одноразової адреси, вимкніть «Використовувати постійну адресу» в налаштуваннях.)",

View File

@ -116,7 +116,6 @@
"gui_server_autostart_timer_expired": "Thời gian được lịch trình đã qua mất rồi. Xin vui lòng điều chỉnh nó để bắt đầu chia sẻ.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Thời gian tự động dừng không thể trùng khớp hoặc sớm hơn thời gian tự động bắt đầu. Xin vui lòng điều chỉnh nó để bắt đầu chia sẻ.",
"gui_server_doesnt_support_stealth": "Xin lỗi, phiên bản này của Tor không hỗ trợ tàng hình (xác thực máy khách). Xin vui lòng thử lại với một phiên bản mới hơn của Tor, hoặc sử dụng chế độ 'công cộng' nếu nó không cần phải được riêng tư.",
"share_via_onionshare": "Chia sẻ thông qua OnionShare",
"gui_share_url_description": "<b>Bất kỳ ai</b> có địa chỉ OnionShare và khóa key cá nhân này đều có thể <b>tải xuống</b> các tệp của bạn bằng cách sử dụng <b>Trình duyệt Tor</b>: <img src='{}' />",
"gui_share_url_public_description": "<b>Bất kỳ ai</b> có địa chỉ OnionShare này có thể <b>tải xuống</b> các tập tin của bạn bằng cách sử dụng <b>Trình duyệt Tor Browser</b>: <img src='{}' />",
"gui_website_url_description": "<b>Bất kỳ ai</b> có địa chỉ OnionShare và khoá key cá nhân này có thể <b>ghé thăm</b> trang web của bạn bằng cách sử dụng <b>Trình duyệt Tor Browser</b>: <img src='{}' />",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "",
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
"gui_url_label_persistent": "",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "已断开与 Tor 的连接。",
"gui_server_started_after_autostop_timer": "在服务器启动之前,自动停止定时器的计时已到。请建立一个新的共享。",
"gui_server_autostop_timer_expired": "自动停止定时器计时已到。请对其调整以开始共享。",
"share_via_onionshare": "通过 OnionShare 共享",
"gui_share_url_description": "<b>任何人</b>只要有这个 OnionShare 地址和私钥,都可以用<b> Tor Browser </b>来<b>下载</b>你的文件:<img src='{}' />",
"gui_receive_url_description": "<b>任何人</b>只要有 OnionShare 地址和私钥,都可以用 <b>Tor 浏览器</b><b>上传</b>文件到你的计算机:<img src='{}' />",
"gui_url_label_persistent": "这个共享不会自动停止。<br><br>每个后续共享都会重复使用这个地址。(要使用一次性地址,请在设置中关闭“使用持久地址”。)",

View File

@ -70,7 +70,6 @@
"gui_tor_connection_lost": "已斷開Tor連接。",
"gui_server_started_after_autostop_timer": "在服務器啓動之前,自動停止的定時器的計時已到。請建立一個新的共享。",
"gui_server_autostop_timer_expired": "自動停止計時器時間已到。請調整它來開始分享。",
"share_via_onionshare": "使用OnionShare分享",
"gui_share_url_description": "<b>任何人</b>只要擁有這個地址就可以<b>下載</b>你的檔案經由<b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>任何人</b>只要擁有這個地址就可以<b>上傳</b>檔案到你的電腦經由<b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "此次分享不會自動停止。<br><br>隨後的所有分享序列將會繼續使用相同的地址。(如要使用一次性地址,請在設定裡關掉\"使用永久地址\"的選項。)",

View File

@ -80,6 +80,11 @@ class ChatMode(Mode):
header_label = QtWidgets.QLabel(strings._("gui_new_tab_chat_button"))
header_label.setStyleSheet(self.common.gui.css["mode_header_label"])
# Chat mode explainer
chat_mode_explainer = QtWidgets.QLabel(strings._("gui_chat_mode_explainer"))
chat_mode_explainer.setMinimumHeight(80)
chat_mode_explainer.setWordWrap(True)
# Top bar
top_bar_layout = QtWidgets.QHBoxLayout()
# Add space at the top, same height as the toggle history bar in other modes
@ -89,6 +94,7 @@ class ChatMode(Mode):
self.main_layout = QtWidgets.QVBoxLayout()
self.main_layout.addLayout(top_bar_layout)
self.main_layout.addWidget(header_label)
self.main_layout.addWidget(chat_mode_explainer)
self.main_layout.addWidget(self.primary_action, stretch=1)
self.main_layout.addWidget(self.server_status)
self.main_layout.addWidget(MinimumSizeWidget(700, 0))

View File

@ -85,12 +85,14 @@ class ReceiveMode(Mode):
self.disable_text_checkbox.setText(
strings._("mode_settings_receive_disable_text_checkbox")
)
self.disable_text_checkbox.setStyleSheet(self.common.gui.css["receive_options"])
self.disable_files_checkbox = self.settings.get("receive", "disable_files")
self.disable_files_checkbox = QtWidgets.QCheckBox()
self.disable_files_checkbox.clicked.connect(self.disable_files_checkbox_clicked)
self.disable_files_checkbox.setText(
strings._("mode_settings_receive_disable_files_checkbox")
)
self.disable_files_checkbox.setStyleSheet(self.common.gui.css["receive_options"])
disable_layout = QtWidgets.QHBoxLayout()
disable_layout.addWidget(self.disable_text_checkbox)
disable_layout.addWidget(self.disable_files_checkbox)
@ -235,11 +237,21 @@ class ReceiveMode(Mode):
self.settings.set(
"receive", "disable_text", self.disable_text_checkbox.isChecked()
)
if self.disable_text_checkbox.isChecked():
# Prevent also disabling files if text is disabled
self.disable_files_checkbox.setDisabled(True)
else:
self.disable_files_checkbox.setDisabled(False)
def disable_files_checkbox_clicked(self):
self.settings.set(
"receive", "disable_files", self.disable_files_checkbox.isChecked()
)
if self.disable_files_checkbox.isChecked():
# Prevent also disabling text if files is disabled
self.disable_text_checkbox.setDisabled(True)
else:
self.disable_text_checkbox.setDisabled(False)
def webhook_url_checkbox_clicked(self):
if self.webhook_url_checkbox.isChecked():

View File

@ -97,7 +97,7 @@ class TorSettingsTab(QtWidgets.QWidget):
self.bridge_use_checkbox = QtWidgets.QCheckBox(
strings._("gui_settings_bridge_use_checkbox")
)
self.bridge_use_checkbox.stateChanged.connect(
self.bridge_use_checkbox.clicked.connect(
self.bridge_use_checkbox_state_changed
)
@ -529,15 +529,17 @@ class TorSettingsTab(QtWidgets.QWidget):
self.connection_type_socks.hide()
self.connection_type_bridges_radio_group.show()
def bridge_use_checkbox_state_changed(self, state):
def bridge_use_checkbox_state_changed(self):
"""
'Use a bridge' checkbox changed
"""
if state == QtCore.Qt.Checked:
if self.bridge_use_checkbox.isChecked():
self.common.log("TorSettingsTab", "bridge_use_checkbox_state_changed", "Use bridge checkbox toggled on")
self.bridge_settings.show()
self.bridge_builtin_radio.click()
self.bridge_builtin_dropdown.setCurrentText("obfs4")
else:
self.common.log("TorSettingsTab", "bridge_use_checkbox_state_changed", "Use bridge checkbox toggled off")
self.bridge_settings.hide()
def bridge_builtin_radio_toggled(self, checked):

View File

@ -24,6 +24,6 @@
<update_contact>micah@micahflee.com</update_contact>
<content_rating type="oars-1.1" />
<releases>
<release type="development" date="2022-10-18" version="2.6.1" />
<release type="development" date="2023-10-17" version="2.6.1.dev1" />
</releases>
</component>

1591
desktop/poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
[tool.poetry]
name = "onionshare"
version = "2.6.1"
version = "2.6.1.dev1"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
authors = ["Micah Lee <micah@micahflee.com>"]
license = "GPLv3+"
@ -8,7 +8,7 @@ license = "GPLv3+"
[tool.poetry.dependencies]
python = ">=3.8,<3.12"
onionshare_cli = {path = "../cli", develop = true}
PySide6 = "6.5.1.1"
PySide6 = "6.5.2"
qrcode = "*"
werkzeug = "*"
python-gnupg = "*"

Some files were not shown because too many files have changed in this diff Show More